(*Fastest (at MRB's end) as of 25 Jul 2014.*)
DateString[]
prec=3000000;(*Number of required decimals.*)ClearSystemCache[];
T0=SessionTime[];
expM[pre_]:=Module[{a,d,s,k,bb,c,n,end,iprec,xvals,x,pc,cores=12,tsize=2^7,chunksize,start=1,ll,ctab,pr=Floor[1.005 pre]},chunksize=cores*tsize;
n=Floor[1.32 pr];
end=Ceiling[n/chunksize];
Print["Iterations required: ",n];
Print["end ",end];
Print[end*chunksize];d=ChebyshevT[n,3];
{b,c,s}={SetPrecision[-1,1.1*n],-d,0};
iprec=Ceiling[pr/27];
Do[xvals=Flatten[ParallelTable[Table[ll=start+j*tsize+l;
x=N[E^(Log[ll]/(ll)),iprec];
pc=iprec;
While[pc<pr,pc=Min[3 pc,pr];
x=SetPrecision[x,pc];
y=x^ll-ll;
x=x (1-2 y/((ll+1) y+2 ll ll));];(*N[Exp[Log[ll]/ll],pr]*)x,{l,0,tsize-1}],{j,0,cores-1},Method->"EvaluationsPerKernel"->4]];
ctab=ParallelTable[Table[c=b-c;
ll=start+l-2;
b*=2 (ll+n) (ll-n)/((ll+1) (2 ll+1));
c,{l,chunksize}],Method->"EvaluationsPerKernel"->2];
s+=ctab.(xvals-1);
start+=chunksize;
Print["done iter ",k*chunksize," ",SessionTime[]-T0];,{k,0,end-1}];
N[-s/d,pr]];
t2=Timing[MRBtest2=expM[prec];];DateString[]
Print[MRBtest2]
MRBtest2-MRBtest2M

MRBtest2M=
0.1878596424620671202485179340542732300559030949001387861720046840894772315646602137032966544331074969038423458562580190612313700947592266304389293488961841208373366260816136027381263793734352832125527639621714893217020762820621715167154084126804483635416719985197680252759893899391445798350556135096485210712078444230958681294976885269495642042555864836704410425279524710606660926339748341031157816786416689154600342222588380025455396892947114212218910509832871227730802003644521539053639505533220347062755115981282803951021926491467317629351619065981601866424582495069720338199295842093551516251439935760076459329128145170908242491588320416906640933443591480670556469280678700702811500938060693813938595336065798740556206234870432936073781956460310476395066489306136064552806751519350828083737671929686639810309494963749627738304984632456347931157530028921252329181619562697369707486576547607117801719578736830096590226066875365630551656736128815020143875613668655221067430537059103973575619148909369077798320355119336240463725349410542836369971702441855165483727935882200813448096105880203064781961959695375628783481233497638586301014072725292301472333336250918584024803704048881967676760119858111679169352796852044160027086137228688945101510291998853690572865928708687542549253379439534758970356331344038263888798665619598073351473990256577813317226107612797585272274277730898577492230597096257256271883675575297887925361687673940354321451362772549229313126276435732144621618778637715420542312822344629539653290332217147982028075984221065564890048536858707083268874877377635047689160983185536281667159108412193420164386000258508426556435006954832830120546193205155935040023508351261335921740897007329784277128967365161960225077117388084262325697885465378690462227085674874747093069357326668590856162823753865512432975647464914619179575869342996208149878536663170197264534260468378010759055148678719039578315060452444190757044511382058533398469219482879476486575931785958165274929778220959774409113714342169296245931753245373401299593995004917912983680848547143925846704238528608320053664510586678151196459676079196431734307671534498300497128869401656600427062111079053164721504556329943884005211152390168773115456961028369205036896108806031603660382896533239383524154510137534165673472607464891120088099838152046695415026377035573283592996630642717305158972116351999161135954670315408725287243998197872502746797388638897056867435377857981058556192492185716949135673462704077491448799682065482817465880642236348160780950777057939313495829806602825272128491688809230325290270059917755059615835919993190869393039736611646514858219972925337106768738686235047915879737968269847878082223410618789674667450680064404065553875213281494980700209858132220620109011265903449717410801063247564712834609549284370065147450218226120415643930308859826426256828126092491136733967235933714534216902560140050169469983875907342920361729301531400405936246406781400779475613077369732409923529464794580778164607696240864595666084141126399988575739429315226283898798436350719371486573491962025428443510411472841973814933807066222573191021481585745042886728477250434386718443149128948635448929492143259660847149600072534066215387561341325254274130158182476636432111506809477451406309160928029719327606796946860926362081763442272977546326737161110302220019498455407233859679972956745318490433826332931888160330054013690316104309973777863934393135621496549969937314205819065334661573835222280871390934331325238360305287172314811151029705856281299558991830381071966308132701670498617683168329529053798760030666570203435884960342104811488681216083611944605571913973292970683232645094571537170202325175198220852151188427534658891812172660333192804801174759046131898449720722068248919153933258002624627216176424468747789609764906070479605351740205227992021112876539835381740117955267003375831396078847726709215700142824833574188212706558826075722384346836425460624376294972557208442910901014692032297634008831340381640372911311314959883048662944964532193113574956453912385456662881566099860325447839862878014756977228191151861520827628240145565179425383818619479339940149759987240427388505644114375607952021157910255398765366539323158492006532957070559185522267542845736812670699565824674762111599567798871089943129103401442549765937135216907789286769520555697938362195599913809621446502826784457775198333561874495799884353199090550456424061091609429751367477262251350611686791529453643717739913922126483778806203872768088381032267284933085939078772734728272526200188560744654953143832715829738195578665687162281676008390755269474337748054271709338897975317018906895514393940484553829830198169253659797476778546865045859640238175930139996122667668117389670502033292349080513690067470281709256521198479569202858477768560978920686214307401593342577726291016675234940557410020728689850147927742910664313694152819958560981976523216255318623764260591320667123942398310748008900676975706071323330124919595164681348037017813465191315867929857287732916688418340910468985045586338702080224627886226585108344417513498504421116568218222998754499581462790411184613045060455209360748256545275517200607017954887685549741215532466305748511978982300426960294115561663611052184067618404408420577009448304051496226563691004769069952226210407501860405189791633723026242316050412254095537339512293852038247505422294475660109384786103393194658649556153005590496471112849528802805392486458758049960956250934534340717512363180249471804716026083285325604962965630926137051863164004544724183144178230959140684196200542317602825258033557137187197749706095638405572081005734625534225409962369435518649069954441362738002845612477994044771186814090823166229647921970410366376817828213762170555058012192535855369549964352848207934382757626927253830750036250866566664777093178393928364851729231383388552304739238698007624439232145406091398908761883311503746220354304045361199620110097515767445327112293915456438047739068546583939714369184927288646389493262430293295569429737981620789956989387490887284763595899525346760045321679018262730111750509478478148743781465125129316177480325600819752340939199060870394235066830278541751890742401163129057837802020156209152646634040182798014804529150997698497282536382010250096291114802464067630145156583055383077335541091429799715916028562276123398757970754106432918740606589082237396662894829669374085990636280260544182152427735645800878454526256041562186013643859907381431566567951349889494966493735039664072144588279736909251791830517271808406210782550432941978722726932590928072492067316169201266878277559355064454982986555679755536184899978937723398706477849984610013717451209586661801786396151869866795495995973570881693026132897172526982659434374587089190488036129616141327629504947787432591791176774606337011599462602653644319023313979869598491854622129326044459949916618373629106163570597550492094640484903387579780982042701016635451092119415235198142801904716253769395355257807463753877230736625757528615689340369116774076414089252584071629680253418752400213965704615611372706997173154242250714136977533053938222631737160355068530517511138588469894505654831155507605396128525648225336964136180653159733404043749446633889721278416851930506253125833571198193973061873742571964696118786336432675699497858221644253350690931355003112829216296271098834681530937730662596151339914986890179148859343301761214268783946917109306485048645859732664349920042009846039358574149952397154174336004380995983989933378167036757727755613172607981745353359102876960974064592942521228542044788634809907075670034881188126091404100651275142204208280600165985249440465379172445689791335543257050380242200961715424247460429269351061065799413628044003253361142784089118030202525510270258247077931110315712323962523414646295949365109798453625310123080323825404640130939710330873160957447426440506313692067220775705926411703291252923275074336292293389738609229176941546567276291718770022303735517320238693362187158830149823123764914348316857007117495688185868789483821815803290561922043914268041672430804571345126668721031184168573747374845723039510549541540527687434992927936709622404787032905959753642266627765514441059257483831923659845139702283727069978439952332633905114238126082704917209310221972462347369229734097797684257946011830431359653728486086725915719189040814686196820405835786639602197284650266257660416212205528715850629485877256945148978885915907474770520968201573834968249163260909117899444616257323077521808190234276911690742013973535366149195899016434855287634850651379150931580610609639756369227177463164761742991456916805197819208411174388151243336533186211008296285983739620769715008344638071076345752372968162692384196664513983441124529813633193403728628814100761990783445166373619675739117922405314609739328756218853104230065917069279757763637722497549743173752475693668929196839866226450278207422649504418145297971422930603923980264420416044069136603856509762999320152435858163639067084413753907425945531517475401425226162050701405234312797967013086515333059068925682981902420536042999128347248757746404334001196647544943649584359267460777611298593782877989387653499858781619736778054641326227983853775974766944915955838526970902479985385654752171183919856439547911096426846117201599727845439646789928991079803882148161521601317404482083729562537745160915766989486102538869333022297932350037959091573485255800127492856241916037122043473729924132237495541395651090991275389270424700906506819588513580741659465997388225184184513415981605070837364180164702539096483823737689090699460014235118009320818544810936770665623436807834946325295029936043823140735895491214578505088779694152701771678821985095632214338609568258448361720074677071654458885576778595539905994620257164361856970264060693929305816936162590138996807358634220052766697637855103451086179224564226128239702771208827658799676491538934419668918334259157581265649741005032642182100444483635987088989741612987459135595764493454346929931473009293080432343114901582605077977287377472271100193889978852977085833995352323699069611985830069116330397282793883620169149382007197467419112787287453186624603614109414498979768387810954359442293304289489404213991891836482759378800715563990347294452256094601620469865870820084791651534288200978910174880510921446324607785422013852332369297111305456402453261228539974635224497324697518240658824162653763107743243979211891688092382676221546909347569268051380610978316492255340335603305736037618290822356276406807201838659441694068406098565244147876864919916567447276593667007236962485366008045416509551304136536191916978414593480093824971562438074068459854851716159798196253860948005491147227580572941475477993581883965383509503919050983683754016135237422798212858926354391472591942349282065027819618196699288340896085088576477215412818924970687364490528717894691708134742308111683960176354713836849998553329885946041525031875461939178284045992604614584359401376727402001065169632189335945793606640608117529336884631168578843204807560045075629995977771222036343795033916345590030172228250061139958559985257516406605385301948984604103652539551511382198567212412383361565779391552341296160037642158883107649779408020949064372608624521600656886246406120686715725006483068783232661381236819432171471683982869515105019000739668093994551357186482669659962648096453321683625906306422079655821526849468597834620698000080931649194282402173216650367793207285814350330505678114296446519206566978436236737219533235193975556725104856917302069986909332744699406070021628028687187302887712173769986302648237890600242854108130608888289245081587536780102574581818769930068498889459086326611842327392433360103201730166809564393992744902929060099753278285209034253871200811396859596418180467094665299286180112819379449830915238971967522027449154348219558950608141278090507254039464281439934627877698832822201626382771519847249056547351959150555305436215588649041026903209559417212456446283882963592471001729823728834755511787501549993302176048671764630382120416486427378475138672664861332417914816694984358757746430912726188847682678197760276723699729518177439706052469342529340674001408684399159942296698211997533689426515692041390017553455015572398206034416392733642661064392015330703199897334019020430296546122295962446191610456862966762339088935795907336613381747544658097779818353777736123735627439558826977640514893346225038749485495341232180531284464575817358355449326579403403428769395807663777538022474880722459135164569106315893831622285880956468974488317488860818691531831771266521746220924676713608734216326184042492571156037146889422302959051852931067288988153147477344031373231313270541614191666423836570227033322047244667806423291151090376257228236153172118359769573650205109863764125956780154320210952573243983829155611604876463645323176438742195398185479703543516420925334709497305989556942531555439467910486183014182540522175177700224293692938377301106707014019987315440627228655841402199635031693740941026206885066345571013895652955457691274788122516546892705056504830598091995690857489647086768127711046588208491685957069665918570898900949620853637362382820671261519273735998241873253653648967092769353326126015628486941189355256833652808099623394589545937293576587241334303090774449886802415344211087720274356484647228136687992786525538129512516785149101684845645099639767636786665107057556867177308436415309753815288675999908655812708012009753709770615015452217082213307695615311939811896796423785153770613434997452421366821536023015192853289322870843315148372236602295610719230992169312124174167735903654586023066510449740091031721382377879734391891572663346686262960892334566299864484676882535787636517079488239330985907265434895162302991675720723589728065369488077080083574157483806862708144289603998498449262084455398552668840778950777426182443349884425484407423687057942473317668831074511818766450168180054979587323899158303499783540813384073922681184069985334980022036475875759852115727703986996139390968464720388156220632333257945560128571966968541004652088664993837226388090884023197080022741232323888316697539389864005825953648583566808824276689575722296985930033714729847404743987587229186456271172528492627230879510183116483154421281777289042082806627357885347324127165179979415918061275765045786020552144438339915360164739145181309018271307248849269635519640493004473977425781737626832872464174571096440617584717467495079015211896674971134750672962944035576134124819151082631887900955900550468532969576733792319650252838915660108602921295494349543068180935833181077918223232436365379100182381308333555093494259411388940556347332863054514818631980124191272450909844920115832154224297988881636695691058020421190138472647261303427425275715619125016133918528460716583649443116302691447087807767440531893836040104937620039302209749932735484663048448395258951263943503512139324315735177146815010009884837805221186008375921727708349610047700921781285743269921802151145732520668971794288416352318760632357909293202129040206313445883813259886695732307581379319247012060820411053619106284190990834856267765954817938453675189977674311672610622780555237747789416467397752042924520692175624950533587783576857680438524230323463035003356936255635775904234108696390478848857809443749761626611313788403796069055371098960295275696894671683675204925367948854151377696597969332742428517995748894755413654369268011149426976405341045575413099879769456718958725312122681183720666623432402284584405225940820184329615761874221060267397773020404524513471113979169514989564522322547207180711933885509233043227782366117381113048881774233855506243408033489878986267374911272051435551413261969183603388194872449539338066510743477924100601261312774447941114650379984813478630031876879153028319656863234257787512387130993763053232202882526546476602086245548108917754636290266089644902108115129377789403843626358977505027166954818582038588109802693689613633590497705827307583079305598739672651763606151581664793906002440768820101049779920146452637210901248327809484895204954347161913748763063923363858991293324024582408885257026749598039577701842150708298407239016025337766649300948720092982241643891437908265119304442541050552807991917948053368035262246645277287783078289459646254021804957630729129108333923094530273753280778498927491822330472375115296319843668941738669216326569884068930946287699033725584386998926706133664711147434504310139045314701388064335593273015867222242927139362273709142377681023978373166891404768862577965161285386763815996178714739081932810862791375246519473400671747111942678492933782649999294360143391473606799657581464903675444137836415065461911994356843328423766428283344539804301319855332957917194561888280333576203006652322820052212123669911153764034214950808951833442800206577002253805400986155908190961145114776345419859442256780294473811347605154051236037164470751760299740530677936993890539451848009439198226041686497130224463874588691899748351739018099520711230253545355500581992183406865150463105595760478314385637047501124759487410109270602489069658583374604383478348484930178213964194839385144925647277465082292579778321343048291119668635474836770113760295128604458733597759226183067192328479213348449535063204606336186517048302654535489522404613416116994367023270470731218992222256386230040338828094359233786923022855762836786013669227031592534264621244428378765588528202128171666492174447867065845794196895771118311479932087047055142418933368056533942917991311384954677685169631949724795156429870211077832480491968735781531701163882215101452381703474481254099379826139661846484161312995141459851985727636638051897234888733144138975131052427060952310352405884204517158476583874657578667782376540194470121009643294650148725441541389518808517684466658385903493405465915985997583079245425741442492848468246529816572138341352600699335663092063466575684423018970920324722153844937008235676195144688007679708919720377512275362682569880338079176291499067431547924589372234315750760825166601020619471727370810776565246529323544299815024567940910746335428128365935709722529592051380900449972670550761360630789105464040800098304035750609803803876685943925157809306921997284530779965820361053326897213338054601411501474903033858259822260260081326006660164707261192235355668653692529476343233781036875239242249362536140714366953838670816426712086886616984883469245826060662789568186222860233454292604122641328538279808767763555887157217928906251327784479601226265984049355429694054746812186890353208892583553575259839115604981439699633887418667778042466321383881809496103855829183517269206953364535931303678378498518706289237127502725721962273439612724781292219538395937533339439361986047097517131250161214409109858342568419981464169295165047707426750249274749311118203896692227706181357320467850686675449584966072256238791574548478336377640433461192639627575070933363612638740280337409245469330801732907007006663592424309042355629267592226809373231960831277577158880372513608294073145328978962617023917701702973148048031854732170764666046132038374782863547584273237150649133122534226183733288659492311120931578844328275103107162964035056261558618802536163364323685548845299441088387636316531262045887381106607541972571020908654974804145880689936025867902085444816482219583022933191213721987133187973067041502598522783313851408343609821280820897561247983645668880552921342200028577127687773658548872717988339665732671465316377375975613454101183630241970836125733602655640239637092870052676799404289488219959141471039782208744020628656392930720818818801773809204021656945971312822774748816787213141466496768390162980683822974469561496601975005800671986579331130821381571979254212800446329201101184562123477353516066986590899247806861869578697549807813949237302629991120385501267267476084714062634628848264796122641609352165633560230441182100301361394348997733931769545307766668604314594240554518620851564628616016203668434225441591947996872783590330763449799696866751567565640560662772482747389751927600712936582292921380138777935133161682578395280684358971043493422365267787888110857435047571184341067738834888111063205372454559034817808248285041677258252313875490428666253625468625664892592155095029823956040498267843405910970637688477070712581813657812279962601649881610320103933248382530264473382871430584970161873102453789417256164066704185837433024508885968326868759802269307702552310990895688033514170275981845256683270124396327236348071576899033349040089499230699844887026635492900721554778266420153300800350553965454628314177969092949928422423501481327597528686093083381346074187826144549543465705302027979424455829710205400766940140641650475327363434581389379092959719104578590330711702887098819214036467019274193188964581169239878348557702646530947985048136926976858526185538497185018546853924726839101432834346440532341565079249055910255675754454364443756818889364776669571553861922451288770471769512519501902538411725690057783737444669548975585324688456909362911507077173763495923415697728002167180097706146437709854985271541376436293946147189984635466935022017899994755200308548900224968747539069575035117487336323484128543633209789089483677288953547325444270696072599457378372474875661477319511738434877030424215265376674459306637691469526085188669584233449066251795695711687429733185921882643088519085565831258398180740030743921584150191305987920084686307509585565480698841413009438777244992525267310923456065995342097783290439806716851855824697398817017579173961090832963196974607555858554131449547707647214217918274476103041221925706425108632886703553675746832048673661776268634243349438546962756761413438134219123012679131244260348537373420099542166637387241333127019328815740025439392623200972241347010465803872131779938606625954293432362689760147669219208146300873971608268108238767249478442516805460473712353311081111532820513070962794459897738223167682213073655910930964706733167354582052411381364558103213764995410731449779005179253940032437364247168458150040442855493738486672849923019976697904527752494782585309884713108065095478418337163588247689675211349272909521949295783683508316745816655691816982524379964658313343450439401713307577981935910211806200421433779243492302821412442298973130196164950687976472395367649495665540467956020009324265811415708277688889313666207378339458184986574662711703813601964842284024384988027528369976364210234545842598663852409758914413948136567009653385136927775215759189423883034751023495421007372557643130389293644061004674855113295744885965281709458463657678879110387668360832296919253100353817791420137567501451850831232532881073450629549408274964387475185809036589484650764053464412331259787381234418381716709958130757891277505861633973561683669364188340365999984034463707348487222473340323617314571102943790827285933884326178531874904367020010622580633236489540354780969413416257163454321407806490052637916573297313798883942764563516946737526126240474865607887409344581561037046857717460621566892456998298292208461879996851152926725866079201100866551037604474222158354659318703505465193567715084865138443397093548659502679042707950917904254854602202873667959195618975689306949630978202437777180995998428539711272379477670495342167484199477746833064895403141022031591991595946678651827030746055011397638995100790638145902626543036702294663292536413583587403456507593810755474715006815046008150475953237430972468880752429911949127586288403271963240612254989475473485281538246044887251366344186562526867489104572080935613353250566964754579295733565729992484601312607961122907711799343146374089366439440889050412753912179798847436396536783898276403280164244066798417266216661238075695830427013502863183188399960642397372316323790231808090188276228941708036916238606153072658381234290240073082980026012540191393019722790430330786988038965173446952521212904254386403900928300313974038422553068906062606468082768394243377374229365130971604563540924286795485433786158587584584348104919648607552925178446607360175620892293233543509100419487489911039899681787331609440367905522469230062545458286570838290843352017556232025658652089222623940323765210410473762705146330370221682246153453584130678864993884889708654935583841551851263016830809260701213178547871685589085054561495933860793125539130468897909826151815085061783846944106952555029036770791834989946790178692416287683059768283287698205513538740697790322208384539972755394020421540226849545816308280386625511073009196358936635869177954792036304974430366283749745105555873545546061057176863008148204126036515243416522476631150772530019661419354749378273936486068912064538357221067812499334049930172431396003101825487452826252847910572360120533210948129475542534762875821841154650977025780764568592290529519038847686230280328393829467243183898061923108890583858633452474805280386287309152296805964421852406445260260660479768569012695864834499091927245561931889215336743552361313066500498435322425688309274021302873930310237438475271571032468474508299705500854924587232033759310737908159939639868058375042649265601037600580902653205199242241789165686011304514343425012828563060954710385807551431515948984522672153933421230279277645222631886330800809081780918558781350090794750884273536661836100200500466151158733991779409361223160289698934116117597077204516703660486372410823080202968980252099157247595631501730840667733109918122170714734844322662609841032448261250101235925443852862714341052345714551532869789826973165543321546890493765907387839924810490900863976410624180557615733888589794213237371924443762515156681395713125691781296587861879187224143247027766631203242653737769995512924228362668829448613439916358519543495912127155393304574434054083000440172705300620060726385096119292020675578006588443115585406124684529286596197039819622477402533201261537393428023223854625612067355874257383173737533461758634333367905464826492854526848193654509775595903820836299369867430220866341001419672880023496784634827008428969679576169224314972408545548971531698694954576414421430194490670782119722270835005782729140477069804410980002587304638039737245088794008410590251404461051359803383564816439356742137259523291355380457843842381555284045263927896011462581691658479666251315659173953069544585652261127167478785866309091463562906968800122693145283998917467261767482281150847259830933151152971862419175147434431688273197901060192541533931843651681627644818755472008442241178604180920645802308173848519682857017967689180154109143438288386768050591598306597801786168579882345354974968764136927766054229392121351482153679131089950654340773653799059232867749304044736683718908608184405948650508001407933046536177733394187996854906492697819732619941419800928244640004489506893807676457931666629850078995408456620419976127743514943413263742905934517144968683703398715573864224029064232735935559881537542658716185722423335032925088632283720275328236819839702900063509695043729236637898785959775770521528926242674179042980508920563899529724492827553722823243591859528059784146517225348770469763814908853493694784067876131010842163218972781247688757944953260283346797865523978143641361267126251907084209516709382940595167678755657096151924602974191726417986091776646075353341814160379766975541122767661989508827092140457549872145843731384579802885824256644215883774278983206025236145360163774962053556454434645011350020516362089977481786640890866866038056315374247139983923853549724072264276381291236244151266816677711532370498080798254212188192467233441699091366127142025690689920648930251854714984535853733444520392537287015107696189782992991746148364820344563316154073782878313205067504668114676470317944771110479449791245551547650017061755175520672860116782569414364157256147168016844075247343769193403485899839849602613579576667070783216578016861337796497647899688874168962523252786031971334612242395349851171459253280328133636535715982537935407256953046523748170542280629381344840591223005714508761610638271806991907794115447307092677862955962347480964430883170135407856547610936640257243436828904157309078828570309665510807808242385491705157322479313224706213262400101151519601653353987191977254592639628623846105746489347755128777976730529950403553910448307619974301729175320332864753729915429367947650828286165025710896329166844073440562431528590331811700760445162484775235688762108923439760347695262603540453356052604665769394309876245624395957474744481645002462815294656459308230128278999159828228375852031554344504731325384184836702114322658583124186965520123470491669926444469046780406986001169532361548425817290195753490052424998783248838182877223076948343669447678564906417772141108038521956973802350431605216388192532849251242016499501004974003282378644495521082709528360141743208191729576533151365391256165689128589730126877984388288714635470397786474085026076006867819830276875227777431254492070736413845476334966928770889640259706198897600283825326010658798678241775993900431250617872735081156183897761925972760591033104862620429338183513232950405360122701353087144140181667788646810695858512858286811355409389481048326222149849871587124172688776723786704529721965635039484217683844413325549523979668801119839913495504464096179300041814233278540781046044316749222401513699864446515855805060930500153651193792516717923571402748186970587144817697364240254472713272458038344239242190914050152411047579844295406506101191593405530418688302201370311241329289058309212879869852548460946156410265764222229921697162583696913570211881989366960119483276547433534398689663333733368285029189201870399285266169538947533458922578202512811388707059349690946537258560748459282845785829360609691036310008980322161751766334198432647104184218947031139604694357956040130217288508943099527998590725869139617050942890109812166870131576515406110845126635222122986169696571202468071020980754287412741284164417491002374197072539825990482721002213755128838488072750012508821583129588402321731879498686704813260547432259612490651053883150472847238209193922367201436175498643785115143645711250105425218581113164411851199797162251680104554253445974420519264400574267871304010156686191857158030171621823147077214210201008310926919845935940865135390920424080540474942363937655491921493888760804131644201271970662198425514559139155019134481554912908575106116806608328908511243097220716362846157962608413182908941428927704166500468769439126763225716703789492088631719937053514878508540166378928993809653635209694824470735630445828496972197493210719027187688601347305352748474489913193562707158996306143602130048331860065681656997753197606012753252513142056763964723175872132492388787623561846224399108044569717966238815780466967611209039268016090594517106885792215954020963419490296109522492917079316435934261947521544930882637204957102195362932507075345501758337502206491366049199086826255658003865457876022128757818756018795390369299206272105948734818108580169377396508520077305805397016494264719341027582207462077231632628216502184011422590823971699376026544977709187098116189584992944477424631300147131092570700626573545007234813279709549105782684320271552425223850696098437151599114726835259081310166597364294669600415807400587304686548886627875630595950017472554908871631158591707211083274436173588683371319421080465365823398878444826825166409810183551408224901133300041712603211036915317306606860210844743246092445116715867701134751235627787493325426442737036247108605556250735626267023385871906260669167650261596916201755094814166670386250229954187628310766431899333112742559908687478914817230481380878997751392095177439643911845559551827507682254035390565912644636787233688398061329074947371682481006623460668635717679488483947833708954754489709572982917193522199614150744170668397381534410614503146244815620762382450669225360996636342794945874007336633291925898466908963703524273596170792184176564637277529362220604806201981531612798126580270132841321464448963695072017476247995340062911509304493813461020541290830985080402598279737321240201518217320235885156798403823885445139978770857805056257872002881886489568730149157454095321457290879981448362033461854209508620460676642606116237376665728182710968885202813081872158951628666525430783278062603282932329420697653546496847557523646255977688870448648029991442692220497297573016414242382518184459882779015740391939207240006401177095324930600815103567689952996322339521887804354408252690146620437679471145023328577418940249424053866673688794930270928278510497383473849415585233080497308066915605354638922742546431881270318852710409183964824989372738571398602846155344177961265032437190570675943662624606052503560011333404065966270370438068364385441337929759989946939351548475183455745481506856357957271108187143032339437279430930434327126689636304833178751732852862832765978004649229347113733547099044864639122892957094631833145706674919089478592509386454300728280393819325062289030879610159915700266384883137633353666863998382291455986336436915129638222891056970851172400738364135207960791614046305223605983014740370309491303015446875231855927893153598618259164921681878483681637331950016342532975036641473746470177193727361096651537710015832903682424375421392806726724411547364677370591247463741377233943143265395893090020095552197812606974196616320367311738504102377338426056138533640936243298600291886164481866771490584866574739661079527832431808226132197278014066266591525137524869467121385581692042195799866389527767052312087142839817124462266979113283636746694578402059763790506829966109600104364991249735796076303826462754781162822872069704886763272185259953072175236667034275086424458393967009741191803775352475606523408296987616633458074218430235813933716789161456301824861054159353476740093524953331903813743957749571024976029029495229609300210217956224052855800669028819311913543720605638781938121128543803949570933796343429938140986286424597948631749165688602947875464843632902392796858255196585491975488488450382612780602685806805778381660581497806801353321403171666633529760433116419479369751273597612533939722801778536738196872105723176270219449657918256993946642844830481093926228252920635038183901760590277547653867529440286417482514338728181126335486204122810303069545367797911171059801284824244306728038017035047968509837561282962305596633865164685246164611338345156943043816488987931239235553350615240000533205291836236168351677931847428082240641942170127963412381874968793266743436203214989045264602398279357768559847495517185712642052340564355375190701595895610683908579932899380043829051386991703786527315045203539544647118157191316020582435647962299194068736935659330327952601233382579893912650964438088385148773553268205628531570754716128328348892272467966035511219253417857616877109690256870854510298412006142481548199625764562300410429665675564110363373189559648613480051098123753842860628171361121353301659770487902392783778881062590963726010375782732593147079194724694971380826947667764038522387042377471893551516661163439611399571423779370119113719987162450794869942656319776904296026831181420709961194708151687413591150957609277898979006830233031714552014552062848111912624017742148416684071301789191208238943384168722221852856051515949686476639225524116792738678793782107751164761563016431806204818485836112328768995681044029794370646820511068664294513261484085099332421938320909246442288347495776013160050015276912126492606679535994211915938116045754131289625249866627207109882925576025700132233582019110261229785486937926559584014220795280444992254207398820211034347915468764604850315360870070547826302149621029597451900599895737856356848352754396734952485277013452023503317790421615695517941665033609729464688752036206729675581470407721202443542422996528857135615181173745865778101255157324602823958767315439756722656698438301005327219603867225276995088282537626229762849647000091672515225908105860731508518389536250919241676233026643266037191794456224640399303290522409922033317323329201394562602715208759915899155965425282161034523956618989747000352600353970410567352251094721561710938584708495333292990500473389958501919604100312889688519387872447279120673951733909198809696912775013429950127081253893724680261629956160971817497868751911137494464014200436696043047443696753828392982562931500945963789478165642951287608144221052966455881015569222786013678153681055172345349460100659608479043714586730196499954085721397565275137122907635156683226996980121536184481587947829711506944554506552634621707442891744160844235871349310764354484172996523550987279301663728132685359684134127839133915005135741266890623957132969349993619111783990211843100919193818293287210446162701929286100487328920684530440998909893609781245018986082011871078857752603647066767346678472862994741640157062556596164815222958041104694353837502176879092544036149811107925510280509622984119707518553457946560881313762677458421919837016606640956745950179490123187928882948779912868608746640661981271863011202962757897775258045108156428950471961997207310027351712603593843509127597845594342245670442220783552205988510432588104963764656898359131393832478559260596767054348367170516044080236076665813564285697615871520867976389111719779224719748098206946341082060360721953020161947199765747821050841197407931812042286006128277150664655610375682851814215155350670386148403260015455522065419533769815673863601038695782303383497508167976623779383644160471755894464233188089193806683110332534686544145006389863990456985413620931752765790074798630228967201803331243819695318320114292448371179296987430607341090482409339297238022016362490980716860868365557110643219670520362551497983701248483344824611350424398775009303391069596540701598864081467247768817575900349296767981566039039671408774211673146116035267953765614347106993849242490910478247319468636524972717243732996368537328193090922897865134007170430433264326632291405114147313868136689971763933117113744317142262036609620946046845038706844362438102397381785066216348462977027654601443077065873702768452989512287375422388463263833661982247806965625134075263305702547125168127912269274784253744784268814186193560617031137518081075393215222790519899645597123033219524303704743016746045843764506656154889921635519037315157177201046908242351262162672209040423543610287676389047283228105397107907239729022685284763344461030900011253898476849115439150611636514726923659202240406768910306503424373079791469364210820790733242248876402157053679846988030863251490399067734252465561148307116480119209768852872901356459680355785421715489660092983891431492763228855583195050140825912648279311793863208315029914534665305002272547027576166140927098191876751826119921499200444239991853407354646822545388023650406734824063890208269950621285630686581253189553841346179860896581365885135014272541401789202437545825821208317982911774880299197617397486091723286085059574012544708527535958127245578819575386805706865053073173779459499867960737410492642277148999950595451748237656683692057874448482087166904377263539252785560207220704420374198703697049323564728729900664479648184235816518237701529109465926593165501678117349517875039883550176773844712502958768559326543713549416514015727999807120128281066925296128538936023197027975512736204336745995900033611539001084138323731774688123989603826247346669092834435946048890471037534165751635505331026969785877872830869297795154051970782878787733982738336079191533763863031879764186082271965896033445631518886685943534820350121653400629674795932226631089865298422020454915268901798347029012869132337245709952859869487219596659803855903876492649443186799968002142330224760680543971239496146088090658024835619642377015191681561650182010652903124131912258030491467368466559168189315590532972127636482266915338353846285195377667068995730681162712172699583344030525618406028636537743979442043430855320447233904928440229834304209180926257738642828743496432358299666460046963444847468498824417572111468975739622323420387000439830321013674138559759624172056295382708305836562138234546234638761614344570939067136011502672350941149726712479449111094624611887397547139124402993093673549610147198072845917946476883334232248500949802513990125661085724442066063863020589300514234153413529836742266821508386876839458102331640397376824615382436518072839652318027513205311382629280823246208458231090976575176887543441519587268664830152190433799315095912138501839424837577537743610407301239899790556067208664143812167861411801196245392957352669611399122806082604801182805199855007969066516702393592869812473047408561850324224756434553543271090883071167356738070642288818559593501295057668893201936848007832383672806541865613639404987627981228245182796870598180839575977530224470383259047027320385077960264874177899898435300116015235572930645907713993995925882769324686087506659100736038889811023113458069269058966654294012034507583495936759101243364745008313979240701268666571812168900265738562849387814596322048529509042738836708008077625443922348865175152531205901180490248077305140810677014620254353872782176475139545194641741198600676070542793021882705304165648436366021031966383249235783969703376242443724656564230510842975009679235763912273497854834708680467122729155652590879935684444084301410166071459249305637806649163071410322212103932560053402106137510130860643926003573325449012534870525864864811125632031182452625384815996019062788576270927061165137205147701023120022153154321346997556116078654385006346370828787256429308760978271043286140696969162464076625504553746930739791007519678265782225857333035119559405860244857847547241879907880388885374490132729271904863485179159217307805682709311099552993194232543043626009347038839626782901135958686518555712868972321838523835425068354718171939902360926790765238481780513532850665580016141779587056498960623184542864528536973594054499286001147676864550871865834620773003530579258299623519232683652132310013680035715294572311325484711304225615817408361028890318040557609563373313084987764003636444046738419606456178297746038824685648811322350534604694255462407581087067408733731303021142707995946177717626281627201443175100616219104763366013094916406774069906400192925540557375361022983878873012971771189305802976620560884685147863226545310099480876534288321304096247395943063730312564482532540774240733906905627052388749096480488970674467425367919725391018861708670307588034457605878346422680687906981128221384077212280217850054884615130782790811843729974448916514289070393990814809623507070931467866375602441060860967086760240697293757427251133766823406104191494494133460185862144247202542486249225554953749990337428861727884345406049802154274165261443376645556919858041836570386403691014796876830208323806538935441055645085989389739761489082957743262605643809332622125482144946110775874257493993074295587226390442432060866262249309789213347043574259923589257736464002900123840716142145163184391952104295413850567838159663549604603078684012422603041747012104030566798054885125809162166957097064462200291791894824116223105544680715645589081540415001965821435720016447731563548875389063959013079754485708271644806558193353731969091580629129086090110570274472849765074134299936231512044158843626015520487949781927568040516434470695841119317503217608883468103733277146216402528030980302003356797629956359839163428722988315405030869497181695124307569215372235612200013603030884896994325160636145815042403950603760293618262178967887183174698012045682302169377541735339105505247438722111214396017657950158632919444130093949435259404350944220048839554243931273303646764280531483227995297327961296264666335606727011713597669374814296589471576918482537973188819938569973912390251823775589075158114323661103313409310827288634549160877642802071646138642455490203483604451082688715704205440988823620649940452150957803310840286832351952319171592203224697462105275005808678948302409427160266685168056819605736093135920212628823614830074919193531796509928917704810583905693185539963291073968156557873608438302927109997652132482089196200134469254734445057725038077156548689193721624516577073298852591326197500929327376904902737401161913934823187248780833469789140070318065244190066050948180951337049259373060752260372895793084261340631340537975540818847500435351748129372796736929333644241025201729668548097779073855799794845430491049055862750220663726203580348944501867567673465414477867621516847049694661873496462054302206999786057390442604356818727322279085089741541217315530875763506467746375331182452498509999182297157352103176541399583373689365954628346553661773442226146534558440201501349116185968743376864936074815180316283038986389470871480489687253969306510783505749687770666550465905047867248798178366775485655503630832161754831008232712688622594893871574360842682939156678514394095368868278601847089733956017607197044608339959047998129244632484363845800967278117448886441586846922726431112888454159316963770723784474334236579790351654554010898432493107788462646248617797662887565741378434040350896352036100410151246618792140571770561057932921402608125184031721452363336116607479137380740759573534072539752751899884126710760736716512221855180365862342382254757626122495485824657065082372833163805680102485046484622165459818986221562019706719294108790816646710289473912795797664484676838170368219800072601133864058442345346103826261698750116085334681661889719362757237195731747716075257844912236577769510328325174234558509862983630249008503033703291401822634846211293946325865644351319418892313520933733231593209531348084035366512727453141462791062919211897122087983432550458374577283249490643591388431466175526855104930430401259962422993020275366207821945434263552756754892370664803795141353853438146259179256208154682483348078688335039367120394974529909298481254740437832872412087031657595196776149540299109410980084375615902766789470551955923993796078127005630173917524292549317798088203764766407552955990473332211779730361168605822570920753317566537147620170447513771012714606330765760518433751884728651169971389456785331284909533502327593246733712285965223511992713018393077302559421630183153459114238387791867108974026341197247158000179971425180481496319930163546097147619284073101400581975182532914517167603993999258456648846981225081936536438373737429123199412116759941684111827139198310142847362906948373304111322399580208630479346829088961970521775271277092952500389604288213283611209568134379731833906592735850505418144086626625184250641393272977899145445480666440589532003944779219640069070042251677944196407898217172247074327290362239103804271376621564321863026681337416418466075187939514585110894939898613670362474685412738205292457377147011490644165554894633279129886354691443841316580953855668494554325765945900484050128649264648182318984984207890017381026280178031101339027871481628134464230946942086853509092998217382459122223368175865963890387083335591767040764589322763683617839064768931248133963868134499427025134249899281856778950552409058771744684575309478176459412131383396406252735241622280085494310938647732985926510237486141137556647668497195450204971193017312895850114311655739126812969501928087765243448515808817917392659482685875577026125074408481770442876582380156527974065727236019547229757481039333644210898395479555055382171981098450233600219721638374556504898049943096786025149909599322801438468515931853233009885389270944768831370110698138064482665371585457189841693591434532638187209409934847538943721183678294519014360900541811797148800222906498201173340129681194176398298710228118073877464737434111739353148463504883205683641334369870083270135063579593117868423708029255319831673687225288027824192931974816222364015632667766560404528584913440937278653953548212078280013848814321888968311731843007702522646352203693331215149270686277843856563759167020430672465624772032862876655143716195828071470775580539812375416514614868912650242844682721696937102520199451070806554927342767712413297111768034605055714342951316451974460702392268564794468770946845231434209478360442068721501806239771300186519159804380390687126006589941063465770334823015181983748040000191360356733104011122702383258534722745612612985488230016307057687893483008995322871177113458437673072952535487721995045131226266505912725027066002433934094187500606150348454816676745237886193614071544464850200566629551020953021435509311162770759332323574185276838476923916757573567597535003361265131223638841781549780161833773414045382909167144885874793804306141824065245939187297549329592321093416679236787132857339274281102908029959343416500984750625606498166241504254563848145252310016817839074925652141314461383727908525413999737575424061726959959020940730281439651845469011872577257381810000846177112778957625957554623335081299316936149960821580793418143513238506290662073289613862447738899462123287796562569549058458900178093512366385374549267896573796281277205648568144293032587892285647102006154949929761840383130893946114523158553611189371990631978874635943663301050183111421068524094576097022307216380787528118416309924594173931349646891641908170572806293815603811470844380798701230915323370782138119607230989248325597152921353967974030458053896480365994657848554218047126625652439927871954148175269853373302654693424145825851337197513591132997772353065476963267871825411205280056867208273850519846353566208850962217088418957970246919764074271683146329998393197122173988218822307805398044271072118937055084674202010500937920766027848177949065617655878065362194470644249490312353529738625408781827992449143523096523990238705381653813334053048639352308399767704343938469451886915212209068386635542587798127509998604843325534759542136558030698668523474453441743154221571956458825264040769581235762757162476979013135989015300923921546361811979565652999639194170414870638120509422483157662608767091259970606947940380403922287918742782906992012162113682412253539364480894637350885128828116029735494821739885151795237770337590741918913508576451374940647721702975601635654465662309225465006156792764433248331673592733392457805244131569666299549591040475135545652290901350852670102552350664564275507748690487897356302722825830011199458774548255560589024458858066177849584138572362308454383816425159021089404960125575087252993580351312530717949878312712333067193045009285716093965959263373343404397722656696080077254782941065231802765793950165307279166441804681291040587559742370802769625810704498376937721579615873156200125051474263080452350013705557598461891528455288088452758183963445479974329526907379867202289589387868488500031481201937410063457232754969239533018760438835637063052983221115135480504316987994246000283118736666946015969375544275952134809819583107425531941834496252459067086919417761356576874478677531437826480111070973776125984120155889438636629914504246670485011016440389389136894653352224830597719685558969250167918034645850496205339491056524765216616702821408067641806293687531683805771251361640602160575616042404137570751966896596497624133204076053260530361164468146704068659470558547877578725494898554238645692138305234695573635047874112986265131643816125876968524050032460295392451361759556734727943790655232185745532036110355360975443192481963919972175751677785204106946433922323888583949589989242731052339736529015995160028921535824226249272028992440895741570678599777152132231550066251856401420495516450690894730583840336754022390140214376209652966634035828082958707702924756572823534751779595901575573917239345359258632482996620281339143777596128221959650716330327159269561799574476657338160661996500860659252264172405171096168541436711949610913697242369439648593476023333470496803556380769249218201271807415300956221041395165547231546329278414075088651490868173595314429190224006979696089996244093071087948567615520500182203044352462084202717375425355020343467350112645815580370152483826563942087860238727178238858515603687851099131430417632842685016548331445660954851270444852431786445155017152454028622943019471716920976355257590702208856153898811312313625335926135015985493378474924894103278855546363969309342401414669067989459381180518967244179267588949453109702209894992104983887587653707846871557124259137671953067429145218964044697379862699697621804766040888705971877348128038891066613551632263650398121480708082069725978566632778336182664582124263939098998835168947569017736351181021475002739661980173767784796028158672807665770366910277992533419258547967728092610346911456779727915708001209986456922780668025107671151391965918433233878975700904438482817676217223730917419557910907148720852213057883247788809060310286135626973050442640231365298982024609976483753985199767658245616865292053170856708651915451246628103417204190561603774105397814516961661732850931338691090304435448600246090047309494835878884423012030408005570341975110599906439525622593020403111044698652944689021093604836527461407466611644992731979692502998629754888276714378539871024723624592520642412155419379632992219408953401480279690865705283719731220278834408674028228262156173012439448765101937736237390951982166157456913826565688280203512947235488603155661777649938357993950276066626796306464221572302270952318639917935320450961060683591994078416337832163653817240587448323057199297334237521743438819736404652509100545767381403115914103346892706759055119921447758352514584605917193133066368177190606692635574465845230890902416325028979277421946736658272003462896808794183013806068458561468220731518948467847038173947877151408401062340976285219880985569707711406103582546610356465593170495102949293207262409942260902721684122085578581299626993073255413873344678406607337186070190457894205611299841065274444331240182128523928499535171111861870326192128546260124003344113222825581566388834651642473280016987725536027472923243610872431037884031190281035128950041979827560308255824190525467536057572500453604830819677562071478028904649525658433737426715868726152070834856718758107795243547507294995953451256477604916560150604337482033067694445748066855819305193381699236414498895117514825151097627657033646221660378664420870927186985737021553262253106214521683201178673299953324431998402460111748461882047902591289756286136162539963109172200203267929402591534731415875513401316748074402816320443291784883086412576674871154869576102215726995056554707801911633592647058582013996994687260230434359318429967483057648771135673687608675872355684224117305590389639397415908897059626122996546760644347689805691571047729175063842446278961466644803160849222724088321038537984094091713887153699448448436876275260153899062405486491421461170677999002238904906694196837058507589714984127388895711857588340468573915887645722804540106904637925435441863452757485010750628366085864924876718700818382759416333641930618780868034174594358467770042311674075464606373651090691376198441592769754637405585902516375004658508196993417810823958950892304460760948615583048142558869608732808296623284202455701863999580697690847626870721597527044360704504320842346070943712861663674905348185527622194004003238159324650585458477426293134555092517411607528903228785507554028824559377049191061918046433129221969738795857246864429424658242448634312514822949901755543849779899193115462765140365213938392332872224824699067626419790988318227345312065020334656218521053960088452776500862061129917824452677500469491164384833816371429745429958577440131743079236247683335758434801616219987347397104001312893432563573421883468817621816226056733824569083912956563292379981335333597870613116909417216371232186334008483333351228369651144222612145125448514074449097488295060403904253711332447048098527582484004858758040950986796157360113682462516802390792784372273354133365680499791387289672456644289009813533913878838609183192143693030792542157694653606208428541098097354801157938771572386846811946671523761155044748396074554346212839840669439756669536107847754866097168613111080681012880860363266059228688554179195303077986158548009587085772159013573804903224500587492761949334578758267512380995922947128439409746509568312730527881884370873804055628675964719526405567384662149140161611271836366233330869540253705063766117991332142054385438426045983156709758910097301143003174351220796844969349341442653318543297714916637644143005847665430605645149452609247009667665856262977319493675691166406297681055020330388360128885530487978929471627809855093128101571949325005575375161041311297266735333745648883569631843073303185599930079232734231064767172226982059150223643617391814257558112693695812470115309920556822825192681377735532800682750598945610415891095111922867429677360060050993978348927519953990234805346686693267678915369632004654599218601760007188979786924775687021903041445198610641825663974393537905651842838103299765196204024943962771311481122470930565842025969937831292739673717035488552298536087284352251667777433785465773436725762676173538229897569169323504646841796169251496228071734318574597864203460539899520713978307174911564825695950892495964252455903658663800274972145815684461041198311654878011150301060570698351352054791594667255359374380749992373598435656884101046723658500809676430939684556565308001223660624750098395120092326461493129856798969001998875481359568661869543540742922264215813502607481067434898246050973266751835390863389326679949285924095590436518946410640358961983430809852706528589878271716622206487272270180547446545096393628042505287910437576485425829335615906325560717552283280333948292558512922541765595865559781413003007432218924612359017823539548585226082665650278530219945696220510848630204818049420178652376808579915574976476570156700971948490876394420983358536016739760869905931291909648501816775569254817309568374426747705124801674787080951849098599775855352038423742095532587017905901351449627689910858272569540581510798398688425135832754456682898975830738779749017291253596402108486775987038910131047895677835307609722263233619925728557014964637412234924940489811437155804748545951875257993531793872066345194722383042357551519926011384838178031189271607792954390486916103699503837285470787092325484832929424720390760415339807095169517405639054870270919646440941541202756226910334712942322343616633389471071389935533087837193426887553797178253264269701482533052278438820939128832193342203458761789377211754579901628319931675770200693866498433569015123516636580982737689230991760310033176260740358689820928790983829602228025577018471150316963041902461184336313893485617366342578556738351097930781794611003708477200159640796202156999130405696031596023456494292672386270695042838373515633070749194363357364793339085292517464413963006435845447073453107625912969781446686444654428756876510246169091193071150159714738093409393052186737898418910537072021593487028246945514495599102784732037541230026186376580761772539282458220345633670620977484654017525362027094962633043713949626358418744793417197838528936295243448811620579677259959182793743628178592436263004247651249992120881015224717436766099962387217234268744214651615989499793356064717778506244578419089941711943008067236140581601283667928127554617130377687805893516323682200025068327430591194213379129053268567012883704072503806147532509333399692077818680114766065131727987005891106400269650922771773087680757416043132013394483206163233459571264194610223446893571681605313242537601763006998810371487031481568844150770295333963519058727377594829165607971096491726495245415387323283748967423184192717845892451844770218219094650333228064337602289472302702437500210211181019198332036788969096070601796391174148367122955685324972560014065938515927379884141973633445705080940302445858555632066138239706200456864081294298750126833124745656011268656297205360365795677246418029489593694889319146515374003791026098917020021660039788843916098674159813839659896953274795324840033675166839389709207392299275346507667195626044128530071863643484851727343560373357514038664497679481391855200597952040165437692177703920254023355187503339817439745271323053396103827736935512695777754937186957255764965171671816993612817851183646903354782844310259650511704981530399419038143774371373708999012090718825784431638598609531741599348606485215004053446444438646009443000974270492411485069347156321866261464816340014643348593683629716302488551195921304684473935729060754250618892315097207346100873051236998524862153895082956506009093754172851026863323612278735179962051408620659915663455577075179192454792568955328451443404657503474300382625057675873672436653475962370403759524857751590315710432217574149385083508168374608301287838067229604899642379655656868189839113623756595407466717650901130063454362290200949081485800874559336626891570286047359910519833334350570811418201917167950420712832012060404611137843184834774194509912595115942942038276960027241353203490198784527270516206669599903361549161422914536660824659476589648213834236229673228859748451448431637890267052661967032515694048399015478826392254998433675703433991788339053858712741109800778443376164268385932207775314139351551026432482243032213916288365233845394057256790275620208371516700554094491486246721922497288932278400018962722344380983955710746434596527148962685369096617595158007784508278089237029541524537804015598665726202013923374411100644716956255522665348320835845086462894044249034326247404265868862235398866597169340570527797732181167667859528989772810442750779079220201686944350619227701737279595091093210552896746993614329204107627533448283906695406145705913031412038024041115654829149350088860156299737121166897472490304774575411499073803342377192064917252158673664030258131129141489443770696962210132389813253449436310492572931938568071982978347569018277982956765884667721140902195089738694978449160264230712453334626757279927080608060930565834730229854574982583790497571580196693734611119655352368013963814363934085167078012688612062830705596828405049012096777192870997800030987790457267060004320424548383639642617164313777606259256122031706614317220370867763708637456189663234605859454149536280879422484037862410762768857493976163475899055665630444675411465527396103275599431737503527851209526398470450737017522809625781809369116854519525552356653351854493759826555103385654132702900759801463809941906467284862779076482381877097697907928730645417321304616399314193862912324234924618748377467273405781366673061559688720632710412434491467815127589449871345921810976979085219756934263492980374900430407446991547588926383282975694661140577940137077198695895584564639098549713702451887699812410323364017472008232284901923529385964055798028513438823917780397895736152091544943392852071785352825947111576968872458243210208555494364006777512598666687294722676583201562682377228340572806145380281065332308314964485664369941374457568478201866766654080851837214758395665985112044340188521050538970136074312641210794030371903664863820756044681781938882990417090648340851482075606308294894211612927158835909235477173112498284370299724484309137765444328357295778456682729292030959394076831307240422191126571040195109826320591991765103158067005794130508437519531700941401289371919447595464050790937857693809822362210058830152044349119495689638739253405081284425577005291239552300329509395053794672396818664310540979257564720907255966547417535295655296316560686588043435758016869330705199802388805914298632595072999977863194474038081534657086617219668078364407740862017759919454909270761281347174896976491037626832055426903270212075997518027950328962496836819991883414047384904945275275760971423718319040542005104876138182575351991296426474609591013240483503091630416460550386042753566545322533750650496935740997128359766261445651977459583328667977822622041460447757886904281723163613733570779594865465188299363604960532259345104551651395626030473639987026743206438884119310881643694868558311569079542802378030973438792548223005022400770176924062615630898630233210698703477898052397462629135742570547579108568310813469621262726463887028472793950172626850322897200070637546049661716510448029361519849939996668910962332313196541949132342149110124349956339706033276970293300446819961288673689151822151386566773635683596281667492750860938180387140325608353895915960489687468187234856703232834989781396879085498713053313267632280154772085385026493596773656111741198542048909021752472758982413887050380096891075409167428933990171570761102279106800918594122876006573547887055279106994274417052718337232887744812355487946300442757523329935485520824872829820479518786910148599574442184244891002621035049199156052045167792300519490374353178756385754037327979865631475906799526857736709538784773709328416576495151370933324186261537694966405536815283322310888020975619424552285179180534764082975829894432851680506750500150370061984534983458606545180321010538895825359153898257310535344173774054883483218580750812735506951810113598726982023275457048713003382439573122790376782159109729989867041446626269940737984483682535597172873497033679994383660697746115579852444283503869489622215477971804685545768578103155821048782037907076685657431204177686459447129039485561965547994299154373900956412637414924513267811057415421081907136042248105019408471527093073428852440561117075566827624712072937889853736328341503988442540096845176886546507644203290043200573543834153441296718968055149258651792731033921149614498077344769637899685095432706160625019083401016661477634896988992382366955099959087606204591321419947239699019915285870640303616439960039368059175736935009184275984500277132088118996292443163700062210588338091911778810115335354836899501499022464749460163560076207971897928318735945699573075018495929179310904146960408888295538639129314356751712446014642812994496429472336116407799085406127765976236647141928330935208917636474622995359688366578175945298453639065497937542379965693142509455092652276589001174863238910160714386815963261086434998787465782074196014840845348949705633392489248952860102799570809385290113517537624430124025083763391437006877291540220579373282527513647625970868087519183799986641218562910185942942025180155794023356299530914858674988862615595278772401914277422401239484778407232125963157180099693362432731056181834516513441754771434820283213829093488525787466498243095720413918500442158330505062463168180201928776939075299922513373096716116918612088541559034223589235428279236935052078769697424153453075968058507286804345619288741712881953147932988364735982690910048941791159763066587862031122487323576457012915705009860258481705106790884342756061766864913768417117733501005267609304300363996249441541463686410132977845830396744677290036400005339447826550364058429019750025314635030149763709403590921843214574538844580113181339550474226800369299756334273253874555729626196124579171898765788169267715652292578794058242391148084263639615664590935701429807958166268003461190411891255376608341887833031978062450180631732270745995037117957702891889002127013740579818954960026196680707836911961090674412808516069420492152913482623525722543280551937146686624269721501498776119621791715572685228668160224251629582421817103282829043418233103089822595979769955288313954145593904609957678561450261549390315493796881779872585659327941707444545373611360486397854528497559344678099731263218326461766512755905259854525236765970367479968234821525602865259468373563241425986326862130764986761059406709740991487019619424363979298823424954305272602618860130436124546958474212428818262676548742124115563320421997114148119121702536640353607710549826299587274515246634492510997033030825504251547501269877868498327892127995534724710530522138295650176056384609221223638919797605313663930333424944530903025888369450788905182911078320452358243481016765391652407077888663183826494228968358006451253831875136009794486300882254268053696585883086474800107257792056969919591051671807841868904947241509102935470037168415537276523747816328589293518247206217355815223422852911990935712868341628589131047499978767372083433658269475632376356362970865583751238492921618063104790052318361579947580422724616409468732232387300120497126121530148714114349263365578063250118502916811055163853008905599796570215496684692497523238403566851222891018814283053293675424573830398024937440173858086457106990021891997195042804864324583139792321554138566890511045209824555926431390401305806358368517879445745173011770410461930161160798964758788691808238478717769917298856020287548844364817650377337221962523474538265943267250313417700779713162028330039935716900138963623861915304790297410406232482297912978734312809368689202778645590811798648839283484756421949529412468736380071821253112034448653649776438004298045544774971578038246404244192452295294753313817157035989984868136007155472786364592372766928856516989669762344371028496698557283771567449272731557004571907232657623067431104927967569142997603545172965352811702437763622044976755823526218996191285480168048501429173650480563933332698737648867393842045475360500216924769758831640732319711684324400654405606377481842135112635416121854465648969558623917344341245092168326098572814669034817470889326599834980541152490264966411645062867369165274647787199889933234825411574258008020109348398695795465188318062540030471296656948625326841549202584851024150724852693642696699039868312130551079488128006706591782485122867772192734576783557522316080014635450121193046519165747957662104730952432210887917150782386635086620855759306594343046104778777202055793412665525939819794687740811804915842125121005364898792161999154963362860026191319285811991531900373360538510044112757003804422699467464609869235450394282008251370072133468590040250056916426126784304360420120609388761779533942001611488905976418159614569416003076639290374610671446591933147869883619017579977592634797699829684924575413364192873350285679101256670550752705353888293478480622172232079884438783071955499203793812487283195754653901774910806741381169777349989256700360007112579662394811935676421002337290192586829270093349948596990242948602190410521680041171581598709472176582182060772087899223855308621736422197612866641741498467468594517320295994510817165358808175426949806937672551743051200414992534803849633152242608232965750440879798458248773859525255176064493811726945368078147736110840517531855737852465674022379262816448914446925069864967225643036554155584736628281951405311508141103997916228313908316130227075406473826796754819539843788740480142893078270130534654201664813045093067089187318461488297517745671350431128279683722895849100965886020731457170756842933978379961752646777039336127443154262510382775809640674425194362557062798983667305396723330695655933349256607672497123817727070986354920628624970554736760165786221404814912870832433632482436135442819388600499922381061502852454190320354235517094823131978228787324393915302080123618637512266387822172481270276837998571901203554581503560411719332058384537097540730465960070209996195897754100051263676901064121157817473748752013287718051694108205873364498882683210370082782852408455829100561275289837470866256829056685261776384488301514421028638430176635423474107248087941852905571294862435979923539440752900860799863650670299972190771210926326161286086404732393029092395400018954774198389108855300988143963979712233587915592870145696506731539543194873408477809286316403285387336861322393031377608087318937496625077510499120142587224655358559482665477418430770198062710074409773982390560247557029868574325462942620363467713226685437049636430233191642820013024841141073552601612206092144547845816842569357368323220316757924050715407144499164508507605403838755776989237745073270422285738117596531334875248547954901839076232435721225085243147106595157906196640093010531156252927300955769809663420732665314912788010865676057829958598263165580946450490095058917798698357355705705968633663037969880758684199295568325381858696325307494813056845358404767632925526586791929820762206242261798144802877183261751062022889552393529114058392530433568030304898928233784106652269138439545564956605029666157995923313536047556055857183607294523419274842846611915410065601364864973454926593690507323641686561811704491476065007207485897402572489154479835449878846102176387029949547328742168840858090700480365283960085643882858753615218590770285348555522206158155404445644900743836623881989859762271261674370959210972373671388840591397713604066532592054827793373835195222888428055004327613061462836764800690885453473552758060199560034151012323619732652148732778367883505383442942956141567765708186223344115847654594579492947511111294841464173388800459897972192813831985409067493973387553112066849067684118300473486136366246477205812535170418907999337205682831170780904022751349491991262660095103173189370668824969373755396938283836429985364668168190711238468952917171820466361084173136678996066405798629390315468629800067134583334320456104902740828249612485412790732277986744557661537563028458103872349581226618984981356205293714886605501616555017542399544362625787431122823224794494308906848162328110884796222718306947151995741601233274572403948542300652683216811037805315589208234929045391829391331723311397434681442552198655691656605680078232011225279509462090653313505322977911933676763325239446719486421065154828647426849999376969118736610926977880915066856136821347565923620683258542699198909533030480697106397620912214173282310133105048832507371882213408061024757373618449083762189051698522173016494017085821605734908427069574731018711788121855927076861250609555481777439912887714857294167978618581769802847287157298742121049541899898743102812691037931836511884696360227847739482594287067624497790752034258627603269900711305938203906153879970702439207421572584316641495758074487677515056804355939921009047400243235758332639376094790777802647385260464805209479532573835158685437682632632657080074003772213555736859942157443231871868666197637916323024725928567410522340831906237417630732633191431409696824121748893418906581781433677208920925391725156064300393751729445058252800184915401118530856238736846279096878361461530908059541085149281512713579918055166434525705345757680920023597944930886670383407534904054380095715369378576662605173133277336078484640925893533797956132730055010686385730676414209762395990332115676905619820429663010583639821725281927826591187304769504545501193662414518464302486518394376946281089756021162125407384413884636794695373099742975577622252396806678767409047628427049994278043482689983367980010390379002980120173307901439918208246648429008138564240277610557895989565253761464725747241422488986344866063952650116397327306004205752395902809139749996553849894605253877117135084948475572093499144682516994766686326681423444982100652244355998285318904077747951238823830680521937575431624429817761718544179477347113988230931826857909960984394556330502333257904114708411324528016987941987566955853609768899722413516293015469795243333690421904488263626933438003241956975420949608321480396992784769383380618502038349998491561280455362308257304010071021388164109652479210669526630284290454909741091932791613042269864722639218559973879655457901016395597653384166138883485867258899105623595374060287673803728454628828970431868276364412726955839245463671108688386643361511712961852705571247763055243575628305107840354516587685063926639406536960497029744618668868324731064142508428613125494029909149675812978546947241567595684092369216505149348245182963980103842919670847738639091831129099442703898880783999763953064345595694298797656486940250917452682376851149849748606355108272680631490008403636273116069076332018561352580625996709987102007924793483515246526324005325505562141664590356521087988690666004125517444569432894507732054812482006378829013729223088732819948385067959159869003043867710373629434011000575426735364019432167425150192437130093055839843759059150215808041380975107851987742562874992031899972242510521385451163354821715761195045373098994826796454949877873881352889100484389713322388524490161113362680645515717748219796450373797214370813804606950536032797890423724933636158685389688000804826116656899226385489670959002016929455127892974385715246548379132046014856893338145748567673435968463280393717959846667998617472584622782201385188678796273321906872631718053247648165968818412101684611491080121562532242601498034476336325035540188899031353062461372380884611498659723100615411663574580551526332479577792463708664276900256773342988242648737910923731194396383548560089726987740072362712383975363760637381680235303863239688470033977027806668498337852265695964226548344057226583851753865574499687398596723198472176858580051873811348668613244133997992008535056009762374211129872821168941697355119995820942775148468310909295856371184740133209326779238271725874676050005861675376524677586408887565801897978623146896643400109639599011506633633699805468150642071866516104348077875566241705394651957924642670454885961089753673264986388532139700379421090694228349446833172207570087334329411786204231986643895530428119434009261435905753321167217236952797880252833173332721348283740139467176052851268541250202994949899495375015399135848817402021610866340828650679864135343916785826385986737150487934193142035819651885626726022681525023269785262345600098258918937743149727443785675426505888894544545800262954945287224492802100019377808461948296229136907871248922459292780528571415685599602421924821996543882160594475306618467618997324622023440309068732918465551737915730518128901718417021593016729697668064276052313769668869237227658234011331685549923642394677807104286200512873052701037277850342893803484543893967551388730581790635204887272216638633398854545986042924900733687469080717706636049435184057141701162659833401809657019114348662926583876815864634631494868637502276447281055039704141996676590006046630511102793580543178306279975980859984639173983868496894370238714854875650926013358632193144439316511076374881437069512954721225393499942412812869216810471502600278495612149126976104847392239807739186783668997843045584688244701088857885582380925038083458423068041202490782510024562740051410805131873497897710732091597366755615776654400389339236860958612596492561450478793671025196790635410296320157784523714981739354476196660662044103145628933458190542815884865444898498667932620608215094553401477854078996453840471100356561282744729326594853584074790901471013427550995027143815978088864345489764818797130384327197565166582864483523386870712281653156888004069990451143924672929263431939372313688158309974483534561140097144624521048680102452917092781638768016505293217797979172924376081809412444271327896466002665424079693447418095288266581197331137910712054442303152899930612001111700115233180909774367803959796797820182647039603351650223361059416993061635925531763393499703925570933985614962186059172435225898196678363438053686146572668501900384038384970185115306787814313141304623384590075407247491002766238908030737934285812397028130041281845968615483577568104663065656779347017404778097679291817121588644538290176725086433629385708907616372449318376398532514385389592969482295174465072120751564931530165568596044359607523405636490573322379334232155855707840604515551774872463312130895312759301237394509370459440990453575123822353182682895676063786422158029022877543979863429129630476547181204045260830661728740470395628538557687091209821542751192481313402096786256713495831279994317555470151136537195575004474107927100101566829988691646433531304782722137657667758114803555903655652132109753620855690429404649593048707754951415532925864477535383368466092744316812931784485684138951397545336208459149694389068180334632979562560927739807111929930926449756502382024417137987337538033930225309522817292542476996143386224312980237218766244295474779982890252670703674413901017323537811662779901471910872528789854639662593036241129339785448439115376598991186207843285142437755289739338035084614071050114189485443446683823532805634536692774138999197965738097005056289059782364983087649788445658367295825577616932729075424241146424741421159490147626420692477400952919675013598985842537333132840193911832898292601008196359303648148248735334663371476053121225357990016315339976577778273576332562126806323710564334793938892515695015647182648293562259829408316857788685234193651585263507229644316924403326643436888772366297678905249124353665933542405978164654923855249563402102585836903793470092706751270743662166539808810370724030210339036549242447845386611473072606302982046904905942199177861418398868331306569483396316008830306254758506794832604339930482175824573861971105084541986844049980280717635753100022976076903047549242786322599732595908924542785740865959738225515204296403324250157755300008748797408451347649303947673019545808958058523723385968845866628861799067378678244624918501808015990934753867208022012784191307891112756174896843695665948045588338248510935935277349556278472755504314703968551667042415847364689609091535100760330609403511377393772695194612995982027496870249374315477981499275404372661562664458507789452729031656092126958304737945473968877482535399488912038247375178414296020099650494025803852164281190354796015774736734064624603220768316214484530500730168199837661238098358150196432197743410433590158475278554199938862677275609520766609581469451633658452815520783483301222976747046570566691593460042375167945087269685773438138825277782345837450181722845172764211787676426767886048658790691852051476272379035814885718067712056323240753123844573753634135626845382366707677629877673933565491940988755859710467397634366387564556687806447185252633886086123264866549307447035760934326773901142514602370163600877346347894073777812413024211767491776816147250971713727058623189598618772025584950804856117535790059431052621234211904845271479081973396814664161265273558737783008511239249142269299901062134140461309441707086268803455854741550950267516349631097581456843777144684108982618999629128250421079683537884434753049859810611166361624045056258342108535936468757920353380924147292195028975275088987604116114611865133666881187539959801432447301359166022030898409691587032109998083995935869909045191768855497427297112498341391070632092012295299286323952590637159832093931852332604238244764152211060291990049799715466188281976966978016310607056088635876729567675238844582597234553775148327306960654528130518986477487025090706490088837953708393492836919993742067042189079545998985740685557820227838504333656999621259170600886444228865235783406408520137103021679546249625261020537784052296653359427839260548001350518913811979139642994114858491053327443100468054736815012560166171237651321055285210736708134896441938712767893906744027063241640603857470722201105744617078692534629895127688915210890990323445748296783036231067649093197804954473910079211877780471851747254424403960892620312784333971713091023856066775271400407028935083871690510845368769651873909271579896095673796632175402157632547037384682187131010862167461077716066280595882334842517193367506767685488072634414136690437960169644108202939312822567593859730745611885577503871136427091052167812522230811426821266136421808733099631746079716177383880423379576718191060069981377284368096267166028676930276814326082850878231142368508942633771598899925941200080641068496368188006691559295665068973096243935651932107663159808572897330375689561877484527139485341702607966926595545521423130005284539938171770433657234579017157516532291601979368507259460695139023426838051619907891955314114440247548031082210629037825552410137364507961562829634973027395518174814757350384710126213254291246752956060673534267572966126970484033816611439035429757691650456651607672569510891924256346883438767852583549456291123072408265345443309758015388569779834687861812364325478444571614759234090787408447722972736396956731613357997300668229214057297898131169043157105029481763021747920671612566047267173580688822698951302965486191552736773995188687067293617522486312131667706561057618237550728804690485285597909136205219357091424402756782418377082660632591551992520456862500172812363486671769908713195888937498124307114840252514020356023549804830950606471052610777964851874708922544578694015809678693632257015441954283859233894005231232722339075901959503231616542692052301246672925884155997111215707532563351944621473431665270991447501736180540052224082445866687463987845609605422344215099440761880578160212679662210632340983326014854643927610046409603220906909840474505359672687469502888762463123644485122013919447422514830838929160731420399045952613181010617506235056367003820843367655266806319890773285931594531219675862107748426096835078774928817623738070546363721386441890636154875096021942308622660709492539118301180215637842706081430674170585450643850548046766734671983130596168153245348236478566620601843341568240424712137081164343584793012132559501603095132128871023090644967917132962964583792703598832998083395207162371287137150998714562195525939730050734635942119605746128851183531575491802902042368101091178390342950689304046905402877076709385732383889502926774694283635813253641661512940805325096206503283297444938184950418608716298296740782338815078655157823652983322205272841712791235723232406789533705271117358999673464491274336299802990455235734265516871182061534844997567000198058586616013560670803596635598261289205365069741934754451231248361624004523056655314062730850964380534997842524253896991081357368220979935355523331361965010221463908249601304993378086263919803851583863451493020247836102691812312172771440239118466817735156412017503088189264250004474197128795119803963454444047784689518163571651223012416701539121599407485598023049365869373364650685988717849253546146130535478560507792809389383881837165506121735142570502679584880169311241394667614606544859125084673681633767310287457279188329638889020672386231962352970776531599621416001309054364152185898687189103662345380187716221662425273291825215735287081211940080272894104730429914842923886216070379384080086685618817278019634975842283488678756286560353730628208328482909011778152712602016853387641992321371106227553283488946254827173000752290678828483470117511820774043087631716718617883283966833534635153022455399682033109908112774428186521002715865604533560697975547349169991730632899320874998433074711915170182484555730424729642549400572151186316815260644095006178078355483855311010515952738071724005085284323257553855842119257183841687034560559494798920089831033367966670164736769822412441365552651726732132943474017733882735668623147097343935680292165702702340829478354837476554032340263115234248457914580651065227719352739646540877399519656713343822909792716637957157392300762147249109987241810838722076737766857248729004735604260210736740716468470596592009627304912148925189651224461900036335985809974339561582106885236271609370557293237347578452928369125553957627976808343641008534601054089038223585892163316587895686023794381526055737969432584729850767400716998836966472906143767342498350735951364668616132828578595580663739671783362874378252545069460784803467262805573374545457853520506761093400010717929140065937467310485628310710426790395769594983252397602325523289777952049525220743392566593611450046786074872847486658178079407400986323319978627471760817720590460445166266302631658008245236187490809843484785186327637170656312473923776674614394353167865898413308377080573894587655699247432350069993649846812215938012446796356133276610476598486091635135214760576467278580709993821914032574313957675986882835222781220553278514650054196366635624334224368691376408792128332202793247140446491618284332011996928974360215008880205684907988516041743054408306192642593482397146950303651254658878229337825246098432857342692614427493494297457943633286322265947131843781460818933970446829512442321225059355791098599850188284511645363703467497809635251172260164517729200389400068086902468273598254322029846395425476223948550827316927895442922653285203833286720592320284992201418442605204579624451784914619101509569612095243574649943538038104802200747373829433221007072190516552605364342659860889365160232720429469624571358553773958754172479316705674898649890864878120041735671581939243737468556921731107419562443873789508024402069292592601700795083616602363570921282284874952411913229137454476224188319544451329637030659283578351912587119314625220907138395268536893665895419598764792798553396447426737547616123981204673716675880639622903909432714222382108760018930058394860603007001424382912702105147169896067823685079708989959143800311046093108376399488795534722266935183357874340078956349157604656237110199581814080600548506577829993259037199221869444445699869883472632249792106249045615345640658447917285320508620784005705828334360416848174248647664972423224903685785783863190570223458381219989427588835610857690137819073306248626190705659176315509375999369806876307757563120104775550790758765511228721782508081813322896256241870744825198156846311504559309947242286048194562395018358207501919614217911892013584950646874839529563362918050673255575400762070693869087347962278434334775678261431281516186791880386847567981072047107978917937634386163714984748853042723094359102727760879942514028091044173966388868922167144593325749332988578478255880123652927948342797217510287742246135675396125527201232145438346446682941278341204137413308858747587585064841047082889914003328092729593559621875945758098805165456065599323007894815179449050053956102011657994319857847966157436262812262716560327012504077928883299649504158406240031687457774617042859433293964808902941499315744807568641990546043227459319335765073888671165545625155408059027638424891471143108755404863888822635131134416254701482878043307527332817379069590109644137668524336250716009019303804657216526251420337892513268545415415089599505518101319961061763264844563955214857435952712592178419202695661851914794195861374086447186048298534876962569192878220819519610758728198732120782827962540403903104730882285560809639698743801485691334668636141936460865980428458491610531709664112963360284769156892901095336202946681132441654243527282365799638854384315418647656355945946129042794495958575758566929002402386276002721797529909081605087277261811368167440582519603217391065607865802055474249983177447070141018196658331080880681727658611809758333356331041423411893468600563156578071216784926985169719774663406495356726074619647582440791552984091085635344667185969220583626073019871244732572363523168449676821346661472890463758254108203062486902643051495251221705509500033794901335926979881129864637770325304092716089846070497681360916257189499407949660353780536572785672875554374694686637518868368720507554430077354098426700510797308334246451432902622875111466025143143207787134355801944933462984821363736671211541416342225471140497743993402021334248175765208586165533327563108737683952213696702043472618585152466536702760618922388927635467104716626148383338601571348903163427228349857427564202592718956810445447055401676476999239306882120941671766585939097807647085806239850459652099442535843115190660799974943785842329357190846625175801987395371821856324856734502418752001045039001285618539344491098611561016276522992451688757209011271966764790987847275434321807931371332400994379101193724560353964787372277739296239160327966226130753295265769748942510793442939187418156435336433280618085224935098052925923680556155568478199582783282904103789371497822249576971730302238918924317549057593009907246524110403947195730824359841536688009223446538668756458143306010087843379722434596689907081644953222975777392574773222923420765770609096465246896072007252775173738033825153782101342443168451391791865101581016226579349499079876645930803005311446886704457314006396907693054905733155040967085268206174307472072820193067532644546905908383823292443385544326916474369561919131961801145004404346547278953068646475737631953375428947831926501394587328574546505850289162335994551504741327123979825131974624633692344909008476031474121522468394419709757277730367850507405768164261504595952931383511139409064292645749856685505586920769774085136407818147463912390998393447681645056619993428714779605994425963110868912713763591359057538737849292125113638316874952342305652249105196515505820794054960495974180808841426984444077602292746445306515092195960545018660861329643450378125794544221498357229563160555199587933282418380091714560742036066503780623289148593471784478200803933429585645693926517133027100583463549951198221971867819264439817653015352835396035681746038518465365083296011190799338327030086288340274222759347515576339993392034705393236895325547658291341421971629893972407164981845613867343714351918083280895249208802338036015860348042021013586457200501257048319936634790209552782307143747356353824860041179023072119068532691333282896359009951879889229319895779796920387066201654849226500046816311918569561716865226261065711350335821796909005719130203978673985403901435771012163779451188826034012701912920287852395543131728964232633868480246555843330326245359602996392787601076382119610948670893609524547775254023821447739819058772846971110734525105190372425563800005934599623515571471687154624820569897077295390931761406926511837691410743063035731821679157372758360930100705227028277813977572446315651002687236447455292873726123910624074228968731340979674029316441326886095396367404653025490185761723065367062800790697013482267722211785079842797037598850851293873215069260732491849713600269626263946098118012483986347463726065544427579988275491807271529233271221447092573324835602147970908293135172001450041551909314188661436031136337480064424020080358629395297600600149789598572831203275748593851629402622199275569711048738227591653256724051667085932681723226043901462221081166717187552166887799689224117920044297479348754671680272428588771321945114769173324967352390753812332324075407193622449891864982031437285158457749460082187233162306249334626266536506107570118245607639289343417342442186249363697608358234731817216945363760595786982955480981607951579239266402221874553787656079366573635089664937040910363317281170118339377390619218837859247616080739825716904088643516262877198175202065042272976607247297672188964752182350342864172439020558890183278743225649723282639040520707455559080844903379156862760620993898284700710580975149265023278705227878989075413363171136196869103881222718033200620150878461930944711382661176112251737232954370291611903427121741186735256543302905327141880707263816878172663371992432278367627782959784145607885706526983925449442296783777256226855237880533468613170862390354283803801989796092841806079370428315562770067431072904391158682432456332213915418201329562153617715194878422765357743923000651340577804687795491582466480324176711265512794586886890451158301730906305230789178070210431837991575660242825943678008345874873058218128192044853370442594538409097074374302644255411990717553555838621075701008271376170340540032961321660338394285139475969759393683310604709340671570211313349372577793339347744709256634284656942154885732401976039828746591830243601960765119043620307393094091194994845944963351977954751412833179085347842774139622480298138611210832255454239888897027054204096592111895283725529305763914836251774768671347770215561595837202862014901448796367195730564707557792185051491360299578538069738425833438794467796645224346278964734193082002909790763399203488263269492002890976105081515417403353682513418663286460504933830235491761544714180490159847254086951252190693227398009458236023759561813677312603284927934821350236156229208731680277956267065369065187216045955785972766939046026131837962347403623925897816140770335052145035740815286685444464403988202841911343231610890530256936624046444090978565922264106607460015861613185585337557551138819900104789855033921537538323432810613216102321234883839946575021535029934074783698118445864005264804962136588721322609544600851213972302865800709178296444796184453389926163703727965013730186866110658041753111973989624415932724472651946982635613328195656351331594804446626250339493550795857790046396689823604183501773503939007708618170464306496258518871598440396514362826101657665564456522530045231299288328134403491602503475157004191434792459858472709435168434030595111969358685238810852653680431941674441859544146674601245999990065589149496805471287755996535442945756746644237605552280773037419530664643607479601251084121499244146609673345973428752603710509246235423772872029848644178596400449783229594447671442535383218242948635798859310917345002909206113009279996271473894417148696278210655084700800338806365931807906431848400241736454474846544732672512256957585010050363100870521109274985400895898946322652166977182964807813230032055094345947550538936115964595557500498645654192362882945841876287020640827362942845219260641438115407667078009442164477792726228956078974667309021641832468882139452507702017203279922654579735812202286965960371516346265376735483834377040658054795244170967381497497529747088596293805942856954686216136048967608689428963832698935319643031417452923278234975584547079218864567585329745351064794130083887307124650529745472859477888548328624487880685633499422521253893303819363795057757144245748131200042130063635645080845089396580401932816551269796772812598829643397437542640859983028165987878858314542599852397298738114718197021818519740172609143187644040492481295402278307010688300810580024178142294882135234124377870161812507543520406820007693985324802132632980443879535584519940215579324664408209738357548029697552837115572591398526191115031431435284939192729662341784374688440380412461699399842796919394359136684082968980504217522188890909248186686062374904662892717361607858390717021013670362338505320440121103357555880295172278118064309046795203599984554774575721904458634150214981204614662251148837189120608361440177521590785360687068902065547877077616601783301239907556728772376840085863525772915914539507153495332322129088590549681355073876333835466364760447070109603308088979089920334249034477795822639306292052058206776587245570965319721515785972233616542554956872040203854205299845899342636078379858759619463961314118255904376763423739422669403921520246960704249471097392284669219375268618188612239573255146920251438449907310084663854384289133370564652181406825977216125432577532037165384639759412712041997073516500160482719399009779263261152639033571578295475026440126195953644029043547648796027399214403525061965022590028262468908115751886107134624517479414327057503442718963880611571188427285419569664377391499802104791036730442779834575564552389607409437568203127062390944170324454030820285644265197781161116865842340839755202893854200432409172165362366188700327459510061584845650403919794226940668403782854689996128839674815607085575247414864898236485042612388760308850819682850784961061417727251969572878960608257627646006266861768544859898528002144759891579420780115995417802282297632976191662034694218125416781268685278279243595648140657678842969817480370814574806500387098471496936270365293965964327352604958103639416725070242028842194070985255897604455228589217470897871511389333495522022872388338567946405696934691974976554339895047371583773382471718929078207570187782675674984999464589817680268687092217874947620954719023777030535550039799578260807550226968494002925506765257997279867772159294660734679800021408781596470863474307608762589925209549132514096289933689803844166015742455602880606287049318805877176306309942953017337999450993124336228077427299487822491932210942113677369804262660591545558261398429629746875639460348167806909778651652100174482112837339927103919183636849881397299894252828558588491599162101951193142884828409299764937339860587554937765250619989981490865874108180058972047672533163584253179172564142035257713847592454066689598951887412896205324112265239445980893150575871646508226743410266153759280790092268081245870784043626288977083443105590699299932289418205620597080776496983266495365819224734969533191476212886094561606615510830001504548622042322513949689713886399286406221562198932167802435621117514009529576884748094155232073538632759988838082884480009609500884179135296285719407231608330115162370538590139295354823341517742604414280656359265654770398739044012681595116350996775072043513468383993855442494776307732342661596121214388588217580862893686074229774831414912928962332349605825238157330820546106035896036608762857193320399076796322540607162458701014624345454567887607143102254385123399514030507094261579068940480820448309550562132820541076456471864984895960088596657590291450210738407403544403467385045986451612510516889919561576127223532081815387610418231326883107630550005007128010613887772669465861543566231506036811502848409499929225397499070820014602989821675308470868307139647278736190898234854840379929936034226802339144297479405714349191295459895447726265605949520306752360449799374988233097130884582093255925909913118209726177901441194167459166843339977085527792749475113746348076181070616503651206339420566541446401493260104853267676185226719432929607324195309339360677350835471814831257787341823319027745548642203201872156957317322920129879584663559624081308718019398367572068652536970803841907801972487065804015689536317315709203454585127721090269379288527680922881134558165234855570807362625492208722631900227519238530451928860669842806753157780667947677683429536721196745632088771112008011415099630457081880675165382690815458566604499668756442417655270640716833192725384892325909205029735830086641893100671308858521383771690731188228062608399607192779897112872431179023660920399600426574544171271388029450022258479447198282784685374541955748209539218827385332346953880322086565010208237998273329847556341656144634171741697864181478975156567395054277543897376964685643056808080585030094137973779955414252110937625387522477435424855452966137347122782315021614769316667747622957177733717153424830169667401989720240695221332320335939438768535071718727372010813868503188648404401772592409878628107768609698629913234960997269447818599374180181597052719604083600275218765222694379242692015192894284982453826208880599109909515688980206120711016882498190201781615498168281065676767117613463124111482288055239343467942510597294643441220453947027024725638699465229602979351691653356150075975195236055016583132843633268555467147489944547702588714563579868054238066855357603134312989424050685548836017748683982747428260670195651811208712450001591122953019451383691822791058841151052960772876464890551302461883125653234354869520058554365494961193854945107428037433050110988389163891515598458003947516088417822444253904166600789863276055005145858132624385203139807457813567548210398590742006235650566982379631612526211395247591578574381637102124970319225638328440452922935121113355401686580549531305129218931132357141593002572346141588940719624300806774078588027962324486551175395228709668077209041647197338333086274372893721281467476311338767163939845332385088397391186481857512358480718643886459484531769876082401052721736715770470143775472621413510776112162578630060109434059915853324104299203696210923351524197611670778299945408105271790691426387512075005440667976168306570840394859218995181188146170030618861071114950244587590828368957049407224840462632930322227519018902496479574048534994343818066451077096785248817915483934155242973631465272776334381792905799047330480610634939057375420690570470006163687624192231722730858268649224326204349473983396058656484988081255468268444308958083876879921521440433058970188533382720735855203061076986699837806696584560042777654183539075840219839701851696285955345653275240942143155966720345904756348104888270061003185095020186853140371009491855512258186207820753920391521932817423777738864359285314253591857073917589436996282220726822083913780014142165294855267855048439643647605905833882810433376576852619209090595297464212325164046882373221589890339264197479073077388261763090512531088872791145875766447251818910005800577715432739792844507276637138362848580711264772814649050159312886119357198588642430713785455922902423308158804633503045860347691492182084837494106718431421510594475227861519437812894554581679479570510303282700706681229277720669470445578649935490887815158528181718984282584860264169281800255690255816793374861674413561804577043385604023206480330023366467852178667208220578824493553817614744110182945638896022665466036666112951876540027438213991186498929834952330463593714374663471436929836624520244080828743238422213036432303408813465492634676870838326237231126097136891900355128644362361644076739984783723858870032024520870578224687531372839171020082104015859831825537089016787182957228810130758182533047089799638965757106768798931027999443784716658239564817278303821259509994786328266990321790503743278764902185663229396988940905204478516154900061208663136150521573813556895672964830619323015967438163011699518266553485655036641243189126035766043331446739555649725948419000011380318023671225953602831244197045563827196810129934722657948801044791846171127332156874241149669260632254975046637036341600450621482664393893772299266567190287091460143036378433356898020507536714526587889220629995793604089112568552489323853913644979824535343173522370416709219223206578369777337605810926696387904643391162407045260025506060831975895904022817576447511304491438833740503319462284862659873448259447373644861386309732175817953382530861772128429284543860455820326304367705651435652038833051520366455243423463653295098814397878230660381789026806603173765169924684242227531028982124713197989225058591044015686085353589806526356354871092754437149502005740299360603353069940976546134133829037842298025461472421467611020509658581324864881216262573235856559964394748032819388271164708478720109373629849622412913924485580664220182651232780583957837782094364064204298725827693216512414320999489655151809905687893792419593810096641784375711697434210899502707448784269236466359854011739956123924903673485797486891929425307958852623659633614386648779182339854604464580180694211384503723320048020177509850283093046915258173712109838530124613513377686862518497453111046900672073415171808124039641222675500732454348699530410511689399197149012342567661858595381055307231437539831960592547637872550583000938514988243170441144794937820494442313818042819687772541455298397303714423595395003157816508801837608410761342813446647347526176850563464851733426949977075943260629027399729810092669230572632019304242075850111097246076053739878800330321296062328929314283632586068784395195373713020269136153213171242351679603861615018210386034002860006275279215429950955062190300937257217744808345019875684527179106586080616565695155191505689644214772058065208860861516212391233122872508844139336664701784625018848480909377653177293126774613991468140369913997910340928383282268164437877996010360930452610440759160725639816219133903354419867131967143617787261337725071512497062686655110693340077387647444707894704159080944093474941848056713885304093587424953316010548884482950898729814979910227190436585213299777547152257409469122033790011262311274925178374835760504233455096998685990880669748460565232298592625137441822109737596091378638951064878879043806775589449814253912618450911445574537050162893696949053855613228230735527064098328256992268033121125455284310423353774126436165685580044337348871341814751939600645249579375218455609765699711988008134226786475068737418759122637292858303969697759353768764206883726789855304331860655338560213473163682570150749682230987264286820453569834355338129549171657756485812412735458593592570988470558634168847677449409207939000157862969589079737320694154378967776292137537442062190872785661700160037662498656350915244187662414158235541153468486936302801108962831294787028041959419001245572220237893755568720041754600703106305149318522400754156088850017159558032592946279853050753549964471745416762731093027708867665463112031642134670875209462316623829597243792296334071368668662514318895296297625959186166273738918710210070696167335055789078869823891663815036188274966655172353412831215142407996713673926329682356573787845488819798150861042260515017562097344384569652298960539406323211120391048654105334365132786052008849478486438031411611110377844933988097949717680095154060706866541189817413692963930638129583593007059106931479784114938550532779639803910487748943738089079113137937883717377003398181278327093184611820176526403993498838455327924337108859616111372546551810350937304372434342388147647130497624566533002865126784562403688436549183601015936884714233900209494613246241405245702975454064809579516215295716465797603459220780508109788165600877309932579491032273022971814039218041736766126217758359377652593589880115159221853309038529152288705187066489674106875516427652997322606509512929874175418378274094197071214648076295081806384559304566529492218822843162539052150535515946299376702824906142110925121743638795144415532889374991369390654204812404483703305410614698548633829047401011776106910401150546501125576221424076428888286943742894551809642841624973543352941095723187545124007670091965908424521545363357876499231824656934876378354986522963393798377212853796375953661141612146806698786676056920612253644499433554877919209423574705804424986917106352520158729397914836010521621786627108895360174170156187599874212523955718877770577755231105257632707913105101895060396866621733127696637147492974722797653511284459202583606702756176042237379395562986681512039667797626751085823980099667019274869786458270690744102117327597935499833137794753944138920635595195507353783593398765836525421128695912282168628726566522455123214395721043089711704084346714714424948791629641686270161419519454846103815429487192613861442234965993910693070044865850741429740362170070780963290691117437659522094802103543320236855599605117151906166841972128250689153564082832379369008727896897611452200554965090578976845008286990681417095053513087245371742961256534244089863493261073214151968115906321291645887823768880948961449374086946662772298082241290606679397728457783764323595367946342633091083159771152718780342878571611246112976038045746596809302321111355473278488312186564187863530453837348702545516759170474244251025039510688121329492144273680577459942900071711383383928026237172071478754426202271977157561738571233226613569325197328323030484001324365385101037962782635033920411767230964001706944636885568905594250616786563897226440452583155032827630513322330379667698232085659633092425315466238100006628235252547042376052521917175903066423887404197200059061092152601809876053573820929860146885692888968702335588824565953969013338532925161014601213134854088467937826660949196794457991745987720930856286932556796087768833165374770689184485021774495147677680749890691563597787516958364355325081404025715289798673299646327741681865819398431904473826594985686898596039269065550004945504109493629621627447291317326221413386300026624911542001728324132935086728853781526661357019818515227450304266385607790565120361249148926975734445933601214933436344957546882666932402672951209585541479391656966008023195041643818888027749347121376905542128256912153303049954358158430779995750750938352013510806758412977222594569225622134565019988669381326152006803376353827726765139934319130285223072518849120648990011925396996349354067700324624477310324730161916344984437861745661061847759053730031590049748518664719954070484073125906040522402113959826564122881885056445755105646517401715367514406687227097351746903539917793028702651691423110041172644374314795940091562989690091736630825479231074878030195595292965291756373597137355813587944252490075509190138246257251798551897794382742924430108772091806716652454952997352012930666725993152840598014561790282862402565002590660999903720601279407567491484291217245684315831334719614493151534608416318539563494351982573874021662715187073117939212362441254692898588329451024383711233165642686490195977348349684330995495074650568394839407655450067168426801027811132548200446190239649555260734902067223780364445921553048393553847168203911887620991288824804630348012903741578968330399203978182335316942033137911080527571600157820709431600354101977610194629648224902919633968925868867903604266615913567718403307853743090173665267948914707198610935302923040140925471286458633039491675879618601721734920430691617293678944717474337315294700810354973168441992416304304514896646378447017862198116260738570435538046076482755006300748868737438060722906305273888722461598958261981859886997250058966400615066194223607109857703663277879257875595777070683110484201078734652392365330899233795004338174177070576570556800903156561282850707821417140636297524669860139994390197808346881376056020482315506053292188340325352926520029312747802591024398416730123398934024308577315630875113371749409553721268569583253331883004442809731360356788414340065163310342395161015616840177515792374858214676805100022278317892453686800294545094840696997179060251415440538305493255908158159323352274500643885709511338241777063041715415651006864410449617787855426955443815589436037216347816525151553608154371200652744362665309646380861183101004261592995189739298223299522874600316719724317342796639485934071317956885856157605703412785357044575087222220858489745729814537083434521368242601633679978720827214344814662160171871757755574257501578653767424736647523717342021816948901837503691177278670869350349138751372483627551215174575080634302361816862590555804584415371400226008193923557573498884603280473078902318410957859197952500509930440911471889892260476003311281123570144998577707823023631847813902343534017345030941464581289799520311366571214724230130023608617540720978533516009392869155727554448927498179362515957553477361064166300438581489515818685941163313033519101376195552027889483467633461794993888360399455909449994343134725398730354642808099398065035383272131854272299326591409363245663556895523043864395985263103484810299839207851582771436547578707340814106782879446148095206856303031920045324615798543243577483292759720932042734821823920862276280700133028004815220141300772568002325672732969851718922705388835062717336905811054069501488867295378079938416774378119284630148349329867548277712097662195879641957370408824379938062672207587151144462307725726498476505348181854291707687587610351948847369411591009312473825838600160664897023649543052588090289727938728362488772574118257317352441435940409715016393546848138991913137274310333600645735047546029376361011536897730938510275178657692771948873612572149732905631404519208389481630693164216510663614074651383992051391597123960684471784568718006529915477613970101957918171145095643714928403456122924880743375164001622517684609116989753086226282582234848438444226328690103991996149938409591344095650577806927700968816393007604272830552914088956881585068284444583623266758513751585512088717467686997650157268434127150679901426753029672745634593244940555258230071279120798097170716894828428543675943796034130202347141145505684970595872912569717252810949540810727732806248981723232200408091097479791692808618979631571830724757811955831139359101300547734013623526666488101204331938633648288895433539082663640820239990939782477286479667079816766786842462250096109958658916064018842585284592864292445354318883383882233706584485508468837177684812634858862563153355942498898631413233742872545025064671442412268701674920498574760441104438483909115718667106639363397100037399143882872549385451200831130845574937073686184634609432206680138665163987602205898803284531107777524232364235323222691520711976178482782254389228657944348977691576820801119748340386099481251681951168643889497710984120662097234807423415314551790134613826047357063945308392810197125525651132262498246038340182625071960480330235605092867698113630392341970972615264558372542639664900631977772758843288080864658012265738336197494188027974595270794108139045948097503304736271077945371666037715924929328719479701532762416352074043489311896762686619642841994719642484558363661361291998424557515749757314565202091072197693570625620100811766620816765539591287094567473824852032860361729000260466729392275450716154834793708665113477354526495967762509710369261976419279933604461377785359495974964922754432498782358825992540960652821352458079263186977848487141091137778887099819906819134114504051551911678942818770793389259362684829779119358443899089413775586384430969190923123929123920350885269440970311205456929302892912315374553897969523512020893572266596201727602135327388143937949852243209869914143558401177394223983141518744816684716200623221508484481642530515074137841200209973735637611120487141815720420603357804396643038368091640717513655819633500058622453417190908103549585635278357440592391064217137962850901936661017514174944415038101063478181330714209696534320485613332707442332206819052446577850336302579423510918670244300727803175536264308735746692987601573888635998366935756032002828504981761100708443431724893421415005210154046077874816545076753555702806351989886628662806674091107625681548946956227142041069669570840979338300771845789614616526950746205428190699928190960456972405509086590538667727125585903036265691665674692516964748381508972662724105944676584329406487687275580675046439454712167595108056930758866091415857050821126106409401258492090498949304150647705401433639212469729848355657312552579898385035836644792610554369643908757831734164255002094277141273419185711300294104321953488905195650754358764860770143494761332944226393190796923919370316614163735122170841067812566717765059795891876561582349929503476930569642030942193668130522489247454014188264471241322958106321580795880690560910742657036038267544952694599385179714291569495694401850980843340135139665779517047874085662758124871150138833577149284006097937332777105944919112268601670027143146764363477769197978438380852163530519838010487320754734093818393693867859176180287946297623373427094521344179295026630677031347193094031509941196354405500027472444417537542562826347004930552292803356106023934747411068915900381802865783396896083332678114044690033598765112018064958517217940658666724751115828157691145576523336129786451777122493469749746389322633231341118868577470111793105715315770743210921567136488717240384882529044521363433257435423255982586356697607689352838470816979593217295819838683911433793565168786973423986154859221883936249726421026259864075324633041844408595339185491537789210487152593603851833502703145404575264857134666179909478047509041709828173140309712221382021652919155586014510038995841521010124101859034805396121018200508597963537752819494711973519932935408836854920527977097227269011392769567468976089877560068514145355643695151163322453864615204968891909979100923505355482462264729465603409679854017197349700510052969451965329184097408459649561851673868813680537352831333685104413091748664998253758025670273473464816488766093779525483783025549671802746299468497731241692865750265774395000285317566895716213052796519173374294644562330904688066662024970922338914483784504568697973389123938106775761352925155490964511674749756891568548930584068060105748838792134908509647711258797418965750952813633595685689513208912234073634068166963684673111403152303976514865239860307348927450979834630023836070944076066227570472209925060194702346784773856741380684726889176705543239709037990090447588671339533089445337976243821596473019368823209285040293989458832431631986589007243989389907764675687456374296311790883868006597811104160734390365021252418459976955529398777786902754623131606087459423826305145090834739394895153660008996696416237340175168870534248901506121173745550096237519514256785531379783498455117144947602751769590736734693919438349902157162055170583671893908281146236734235383274053208131469537345155931296216713036812928973258759096293657213222214758179339038914979029581469674533942566407024377174331899096605199457850453879213986964255372399487327232361643712227713136087587941497176066358526752586654260820498849632039714906182671814588635117110862582812687609158878843689096069591575271909911991826011276967679726306566985707213087825070742526533112484792872077255630675114949895221770540728685761669094943616648081762605323639699492623810868665763910034349071060256216761962008178652676557100654848775602369362960611340325694042050810178675503583113897241170158249495343202498560400264533761405743934723490874014582766426762015835123574021262502893711625056567645446569392245184642011343934435699846285997234042820006878560357913130408599429156136249034596754510563315036737990289939576790017915011972421945293125334414633935733831638395879819758164851080145205830818699833861425144784847231009429754901603740358687886906418425091658134664945516618869019674296527943980131269603453563881175184330155954519462849186768433472405572727835257143114182528669766477105632091041571618695973363294070579092742283987569261070152586382393952461241016057412000925173651752254088240319379180874210158831949864542909391282223662969780360663706715813654756253406873800150900325639059076575310116478922714742476124989872810811277387575692837451409737961712418876959898904192867415192571928470800491647133745472182374154021869968870942918171243663271110634963110100575466231953852627302369732991519787010885140156556045877480645982988182938232483374654404762665613804070998911481013989873903436311549342260670433877753696086255314063891158078944195347265827566291256607101367137941409173333362642773366294377196163234275987988133627588734221564981871453160209710631194704215707341484132803602162171579432069299631081398972000529377056692006103284678404739896243759792560998321774077401474920916330349311898082051428341300151055148536229517507031012955604601519509020918856221692481187108222664105264634028080827825719190091798790169226330369183872841219287452808655799171897232828737857864275160726245557097551727323663706915776035327850137200764330787634647347090215090682689485051837892992853927891364654843105340390043248485733721511366786158813802084981857973072176687224617228168407076496579967821602316658082124350895646598279938744326933900663533937551444029853301199728418482719355624232396715123579602607778117977644981855173147073783622520529000241002537310586797258517524519672469792143595068261184141550377104012495330224122231472342357389806443173999394048675378530307527041481154280793460468501488058079026171486194434489256486430577615012401762200862699750903952571792587009279394811930037410194954689630758725490731134618630499038303131189113924240183679930891657751523434411658931882788640883463990468484394661005346044446813477096776132638035369893156426854225007474517625839510089364905641029145312188458980108233920155904810953374380354211950647677092421123725934389146683773534474552064769438074076903889327935898971831400948084715414682433466468286543228337209196781828410430990898661179219856623908018938955761953319291629521114292782806411787090556401086259021827126208918864227151056175285339581342887454137855528609777621857908720490784914560702801985129314569297132485413039617312534599526973583071691536139007194888332514039702524216663603301639825876282867959615509023980021950391914632088347496781394237821645297457354191526472947107417441807212850815865007617601945953123716906189593266443096160813360708940320356722511964532082956127130000167752457899422182396401156430219090152416461284585482927935590962821458867670232002766585996285752973852320507618647660489395104185316507063771435612442386176592214837638670798054504009164251113441969077141027756892450139625001570005519341456283112884902784173374661171363751593986363937136639019141853259588635781773485863751889242300955981578304311924238783157709549178750760530155591124359012823510388951044398229927670393464604123280552607291007629266766848800154422591466206355168643314387000103829307249480843388605640269735201806606758998076167785316005619634360151275816791818713331771429263080059763854299714738787829295987673288673405114828745018295111764081879312140212429382086300827919363199264853830467212681109535241745236545332479692182436504554375351810132311015850034213868115125525573155398449110025863216072260741844523540459614504813152651097533434585580217892133705747248742387006677553155220226097803935665968576182215594248727253304954380694737528492542056878447168303909752851092286806977250486609205392488353180217219821466411191207420585863377681858629554495799666949406734535468630327563873461915118982402638141724051408010707353783686821634205548494350943077395575402078237658188459736306974351470729658525305036549816658250929824044223911731265120520822643221295925333090666729409848664927394741587938089685924435638029301782472091666885631138117952282665599113585392577370113175723313151191534650737451091406594105952565805681129204498821337476037292606130791860109073791837247752615995366487112211761762531549058874483338519883601080824629740934350500223005029961652483524820713894676309189606725507504751846395821872596491570517492797750756618845787517602030453028337711030176855305912304054112764407291450258461801630435654933766966418545201093657856503683015588507948488332053577998326308185677937892396589864005903438487337566116630467762144014368765992310585180295443282342312358888424350979713361301943740936152479416482198071675010199707235012201018005994596750860844525386884308673471343573475775462640775660294832977559609107979878101469956766407160304951820104909835854981473412880532193437884631964414914805232543073136823265611402530907958612962129681256954465450563163182178069992593734814116427119628547455650929865586949824231746760893678573103312400491988162345185945037692351044936969273057623246589076970441200031304275536301800100920966591429825950698565133230148034034627600563791415689014942947702408421410051400233737978871265174202239401410233009875280195940867247522364318219812267355024781051109418239383592443422731159580535735133892213627145139310051674981963703895202123224980204902542194695203754455849715984041778985290800120630347635622045039168060403161103683790364167959342268252128704477322343649687721394373653608798357559787749880730192949634269697604033493701142471805011117826590838123489958994135012780920388318920563251980103630470437925145682626113670013026983528774218359678509614447038217653569416330596885768657869251927163269758580250629890990867862618406133320238587881797156019860512404998870225016930219472079865225960764387531783001599971738154648482048343853559567050605767939847949158730853508573091635809299505824068722647187225910939366790835958577665392713911249194656397685861442998811319342761484193140458975819850091844290852064673719805667662148134889773584079606038902394108588720919471444342729976658797741686250674828034493097176291419204337883463327841423043464191411928284884446799503822973191630544715984953465052708991626425169613907034936209770821494477019190207193705540247673110979408275182254752602317298771128992228424089922518438082693546778952260208064104286608757286788238057194708833822325529447564885847386077729729088149682843423951475913593544696378674017581625822889843884299902893430563330765898626399102572776103023670485234564791841363295661095717550695815655258193737065752182581857807159247885689790159905344449539700517498670529827480534523735989979230532449537708779615438955594126517685015589523009027952794897071606761063753320979445813380816758445088979402253292565505947464389563659665152762386560997333958310098432838570218843447377500140010460618458197342026455170494728305086245932199369227926772389456919107737277582054978995274366189281015528661977007204149485234739879678806451612689809874775553342713265372460710206413895246726198157316840972065006476365385896402968143214746963914166391054311075145327276788365262367021140291660421747201853649114928602057011785508488524815564496667336124091046072555616341597574853166757465446305298326758817147809275201125293198132215158169483402471158054224471992792462239902949739326309309845328117987841201132728980091620878905682786246257935197192862848797199113293571837179423992549239033595939031402665084046152765481533400668074784347430795446206957591347627982075366224429337802038461757008768955447100984961888404835281122007690557218659572008644186873519532963468637121314060054321372449752319495594938808128225340144497704549681890209998451894770968896415430612828356051693395325263626922788912882204382224304374230284786749124650756822811860777657248822491186264800572976886509372469128658993093504130075870153550186053560613543184730319980165196342813339572801445998274649506725042404142691454348943315601197435312127698043937585032404667347853224376940493825009849009987964932623203946852555263072808754151204259127962628771694440126547689004211203702719488403512979235393300414056186667546598595569017495040330887820780442181009176118143282187932466637924865932723002549398621943127404059220931585329083922114739525941538906094117106717667285177485497880893162758809506520247636946386132693109270633731744750623606271907629905708140051882561675398399710403584933037757999331380853953757472647700996938566245582517435976329235275244977593401203986433869909663946210916118973464285721601058542439288437182157994730146837282971595022392279082091951077258240217993610127867395294031018023587910812655689987068393477116841499570623547643886790253291413055998416270003176264690852458244488017698472186542621327735774772038567028221548790706772309896644104550983953583458090448515920999377769031017970255188778707249813323705413138531588914821890029948306214344083617509666027491421634090343033868548329322411210153598310786844499501585201476468443749717705517561767875646551748278805091082120476063211442788783139059379683538334083058452918332203686939775048091080879305941832999460273222902333345910664946315285640754039088943819231960941036604734867993821114418915759100493545009519917851931770605304706967130879001325775283050201755668860044119082666241803877503007316676213827911634129981687309128628795935397694831422305818352192732349872634117651307109717902789616526234942584014505402851209866967684948648542403680918506142702437768613202395537054688921126456504828503012802692137998111089639105118152463230360083759025468167880525024100221282912810966667752699399520401414381481230943631280805492116005550462823691786849466865765377522600793714113461105324790759469280450271706704641305846867412356645271544278822663050453759057598542324156279194238064159880630155250396743684017941276432411695789198948036006962030577520415468744859261370667303576468486957758658900471752706674822962628659183771812609843758944169606908387540772589898522916590431602360563807681953225198185618299173493122569433824027309303502992032211983152113180610924111854415251292693792035822892429280657809413529148603330984311307244914323059145398054008444699904065639984601268340983561239376165910183057667345579006570963085197104131140240369933499434991679937087678100685431611661514659563573450585701796197292309539312231723341788384038895260776396960542557113114707267808860729620210394999126320087680108562918609272814006783178666551070716254580527035531050405271693574865057130112750345397514597368171798645794137801028021915703851502132851785787274791277217697475680309892826074520153894933697701240826665454064539912331635685107611864035703547688633989246762408895981964626819271124735407442372328383751803886990263854336918009605348732334890665124078169048348009032498491735090842563661304771748414716489769649696177583371394720233298639613431363677505797243995429881245115633741570142565999924708461345108435011798751384083317919389414987546669020097330503668907394042278872005704747044010201610599272023185157360835934330698167808202137094591330161562718142056000525254548785931450202608367946009621844319498859287427612324817137186747363376459919828256133309144147389592925616642217471346783863306622862472218859057465784088304876511046591069532985295118715084358000765591284543160615560346669858480978671033649896819206431049072690832489005917161277751875970474045331674741373885008713909550630159892642912764268346195563747835739371204814087277883059673049599533477982327277081215476543882439175598889623914474520422540889756375721516115687338674624954170323451697255219871387865858882711165430393366346990146628363607863257225989447220857013777749832470129947816354425408931917147438386416881052875135649608854464450614504082105457411400894735807541748481829478314257231472792172447773960917244132957321768937806106506306052921659271850729164783983009846243573668114097736408330349101825273973191323450627112353766511103186894086760428675908731628414585878357850602717532216301839573679448756596826638513985682284012042165228727247392749453374077933951749052126712212034198091319734012945498725858109515692434484463560725455416813791507272123202410368895403333787510401175681493819034863938245673978165560400285954058594908587630405735805195348772415656487738480860323824910211329684440213485954996153916863676235685653468458424141142629808424832607650843118658531372774223161763881533643679333162181657445176453872384740283705582189640351275003974203200956517721355424219302008645536121148419246971994807463817208666460204072906979695012917262838167732974013192614601401230107418495167851536144487054017736813530181256505484289938646407999048203163095582602970492980368665121793238288091049329127694180063641909682524543387135351075642050124561482483915228144137973241981018819255691466306127081167185975786452486738192560595150563810087960070454633898503167580351460068622073030185573531980947197358491496284701619477367382437388527941218229690835255620853664719555587836422761903476984526108543665857970932562613180519962379459602828867248625549455375743978488104738795320129292598236509507531377109666515829667716860054077026292363528786051693194220950856015032054814449594060278118362042793432750020115660833293160514664975753327888730552807980257972247053894670481266747207995455224258436899421036671774188322640544671151149105198321312855904965262272351186481286568239824544288320139445498058512879989513075469737100290614617194998753432563837296737645030872124365933259784683497565129567895033330372724812241588092002570741341997442041739235673022435416836940133724465565075625489271276248237365571651391744640859378247420543296444412901404203384080221350595216926215955920559758548612196522301293428192048216093775477483794915572018343962479819400867816197335677623909649264860672570399820987760921336774645346582159466470101072716607441743504575284579751991515113547577208606680227893694552611240337789891209203037127330881212038899201519772220264102571156104040573508891032588594513497305814249262537989029887458123580430950076607787192950181287831276616361136792299943083759407500227669718123784152533478278235092739137135671300054829096447152331752609265431341753634233287329457945430669786887243693453826272582460164499198593682171058602834542532739223753920076650754862237617286098685322446729706672629347082207718744333901198079642924998011379398466964359851583119336674342825272763471960415339176954369505777105111071922045530857603295851398880009638685320982335865998680548794647820582785840205101115840134355054764183773204052668107139420686167172800537329515958165226228201134750202867873282931294501328124956584558232632895811024395394621199073096795546395875839283552854090399701984325626076741453824383394835981843261614782210307423901585030455057067092786800122079982298448759360237826545787199518775744597489107426738042475357213910178114844997294563105475835016643671908999834226248089845832346710637629647336410353066586790207810018940338148415017439587345563528689260283886060694590083984306062798772880103865758202809563331316878833781714213654905736841825277827996154725562647504948256848673251244845255752473553303383905819747909183028619401864205046659097028495826453777059634205158119022335394675123332923851963250439096079686993444970869824949099940091098244036583740584715322729583223510294846750393127342876488392769954701550742810579097126881790505422053066386817057837028580871991942234152128612583004396373121492862911581939549133752392033551905429962383504328371402633912952949506180448804070335345675101485250522812710448302163665035841170845023042822783748894754191769838006245240959220623495896988466455298159970776609103364982919909697686217620236369461824831867536183418718845602571511676361986210106379328569849616244684941406926719813627833777254490417730160149371597962146355720508338869881095197405895815789481739043200440450854621424915349248216757692696921276853798604354156838806545886162454988460326602976608954906423438179727509543097074612966570442047238295558192330977533214334158753614544482457420960861203433500766945511980342649677548671502379919993416775421895512466865990093568626701430376782591947321634727787367258862018594681455227628327246143810117726046163838709434793670579740203208785148932152561459987227300684542273026137517117478686912119763072463273301235098514498996947045132782642390736018693848177226709829673448375045588513193020925885275676203453171287973413743988166388596328084885201916376791288584933368943052244118463534428184600417605106156472618489968499306698160099280704702708217841265924800482624019372177647216258684791587647278645483619941616533728497743938056333788265928398198461647124250309716829839123996460739292467740421665253965368908040325895499979367559969790065432271353392887914213138164453099582117908448948206602599970144379693407475115366022976075127610404194281526084059832576156638234773398140581507772522329315590329508397621567927747165771101118475097990281611189883167428750183002900772324620664157153320529307761344678219673033158310055255800420846542292057591242667001827880391336953939975214863329400832480637209051352227808151727490015208645644127616377884025640971834744668818927115108449114322880826800018207946035295937512983822085200998037276957124963471622808873997967193744181623595686544706534492979248794537440520212907885341907855878764480088849532573957969111684515908362992279597798758140154411518358755306343741957994302031677130193699716616200834640177497779028272100769942699038543341616601938738721208300945766419004799535231956841277106968833674546064181809007622997440661013051896642378961213372164181776311701047319276556643038066681085905737938201685778112651744612971730285529568035942151745462599468826958452930331605587753170111073644531038872794341496397038084583055849709660534119472211691349838395123612035974312933549782170335136850090432596794013205364905367757804989500952463727609972835140306334258622947512160412499324293901098559452008448755470990512837664741832576384828607456983599533906196320989040716133736123107756572138386349528386873700764654416978323949363315371461265947107899787035300170963490789626232049659053331626087104004328849256843450285490769260301365918185945227220374028006389177341325153357259527369571584167676836451360510951790685806228190909665524825071075991297650898545630003372108712318328576870891323803550129706020112981823450603329214921430618020331824798551254188031712595638024704405456544528835748341428174790986811621306853599717098044298030310230442818306639486133622502398145786825288085464209695822941964519701315635207749127815344112795120605394371021238588034983151295411566987319805107240863059541789756306500631169132433349264507604000046665990972563879297817422233876062659685020971796167355504211648764257323835216470256776778000132680254159674482326722120657563442086581879925318300193021829215439298338924665090746299805848403100113015706326620239848416722770967739665550147936183010843543398955178121074979610460009080217896745230391053988616026519087947204207134023465016995385055085226941230187499191933184133547851180779541560628147197066055561277440245004831529044652402277615681773956340883445638583355896844519032563615643727362232502091298477802680517453767164426712963259438200654449689455111619807284499150376254890949062224328817366430425606677483743338373085120705449708680680490035858995803272233011490609808403949694238529466197326809175513582346604197265963365634808840344520337725865555507135946474591927274980948371745209415721296257742515278715701575964344073047338480371724592750486911532960471108471910765595830844075398779884441810021612912017351597783063378365528049024066811029998370196840202784076020110036894633959056208680335438879472140890967373359261896264617493414138624265871505536574289812321267003269356753351094682369507774811523314682612082049014293112436779076310681440368793554215990746532935796682085631196199180735576759683737334450804456821740080143383825601401858098896448076434826036697171260583976781284758424690102011184814920315974241154637441386958514465904207833481625576027121185535536485444282074414816102017023683070649494843395441269199892254090133731089186098366309062748833054433546256199504340218576178955080898318846690270191799578627488028819541213173838714822549496416514743332888347888740439876441044315399284213538208077687729956760747592092062885763632866928345291182472181867495759486010603349807091524634569437764492686559454755090159127645415327973284636179164640662442704835658443756994372072999954911924948508529477184176304398068622152354527873831670877094112719668037672493948056024669272713547008983114601043404052473726250808777768428807052834028853669553631558329729560816727439972561700711333785403100890375899727900800521070319174323845491103402200457365731738647000433086784008376834262136708997804277769760017336712625934582085309077359957338423154618194426975038684154375799348286067475598232399455291921930313619807832486691903076155835524137984778144632629402973796322396192227576018298643627358832628071587272445035561566063322006540766012052130588536556159770828358930303044878110870681203241392223975999369442810965766784209744963369025358202095781273042515056320999198370120222197072070614528723776459078447768399549663059439136762802531093282233481864273616862336679793192653602541262379218664804206327450446798253414816739813337438503669373082176785736638433327373874964050692307325431231376962798717707687678025051001386272043096251718768428353974520481210651814459894702830001277246153754909904720348434168012575203861519420701913201542096664590294572418497339302709614070240204547652926919715099789405440086512405389932977881421746154589319733346259737666342098114740322087876468701892723459284164123814265170618925712572748715725209208130970257190097712799242632375262477678883463145592572666628309389959221131815284463183049780487771395814925330608985546395456420998785200580430923878764321939601167789158183900879260597608045978149300207010476955743086454443441419023103767497816900637256983794409784319949192184632620280687101748546268737854728419351493703738348050458888540051638346668755719115904093034793129315188938254680962882179045468211060985140418260029023744390091208175832659003045414124941312545990219312918272929596362672472066514558203728542816892926405238496064137019670837353475662917711776067937352684043038702239962253117896390080397125974429418314459550278494760019371078137845305119348908062670654029651871118486270791081771418741391764428215013574162413550190232682983137155571841207028392037422512253430652785140774709770173695425706678311217824406633089339497292752054743750114442661546389172441401945177910970955716981786369739116410545958048457200900856515454909270666663779342288134458496399024051683584459226936742252377063484222755530122498502609185502479880942964195517529435542438054586993079401139687296221479032604228368798192672602957939926367405615165405117784688172132661897086041961745860659793594073097693568363734168241998432414145800358500066456896265932837110397649301947676591169320524861990267099554731378363514427092763085264906049366936225229949438760727918598785549008066201630644181117147989546744384488213547696691988758931089329724042639564937765338049337180943804988810139011050452281482067084673270252048911660620240853435101961181516848466251999533257024642597629572567375140236814602285667415013574311527370306513799398836796398438045184957224068624058768298063594218993519811036048644452260011684517682854189571726756469006411244075676564735201008318458626141268208015010495453830780527882302779609769027633052063073660373056027327631843365187749105262255732699297673978622577373596362920876946792693468841348544233914888999534554521441307256845681824042015445878076414401853023335534468177932469418987014562776912398309241395027831961203843242853533639973710168630511483644235699248358787718972668625649274177433112905001736646541723074285812716058409232063532675711956932515022615259737136170069668426105217325490848020863378276928985470005646287439166377292957854356666050264875449516756980904656506325314442305090511405567369265408019503759061384765316493611778312919703182317987712933932780132017990635658788456037629915724771548119835319747144463625722083897101306335444111214445913606389927070199413674787592136269515308832131274229794423633634582949257297979481160880529712631400026869808887166945726083044099186497959656004225087184561001733275673465496602413335532502836032397978740069899080740551877910822026863044947391888238256537850521724256748805072234164231122085460698909786140461649762202833502554023497965619947780952269624939129061565672538915711144849390486043103657956498092782933592705106822515939217194865036356943332615749450320582449488656100834740906656379159029738669476675823306099354175335115974560932336047786313466154088434428533092349499926634911447682973344021286081570009630039749476040967629154936329921082359969989649689845877686999886507964662471173358696314123259757178117992871450752897267304891782126124493731941063627068609372637148394272024047382837180672617898643150602083628750725617316244652861929164857218997972271553860449831346396112022368307833817339081372583338797160510968927619191127475994017970385191890370503953664437117604017446339648191624821400149701271632578356832271432906133484990388403172632542947081668151813177748593693379211561523034058209745841060987584599676364701747012240176083072752594123179424418262773715707780337317125863406890632781001729750743906633688739371299152944163663177153542850713979123924275415811543140732259499180538203556556350486255944139823946166263914606409510282391616739392851322346612041580940262461156616093673277718100835532763121128867343628705132356755758921494330067256813756351002897438840868781361913338748309580171248312144928310118707606987330523720166109443203589558396582460985810009316450981356040105683734884200593078068580588255366089156740022373387137846956373510897206419985929941567928456297805245209404866906764473119596587438532030308371506516299762020140945060975859618727590842293349495605217195010402475850426623187057584465430145125701436078370389968607363909176335349191873358337607884721751494122931070726991159638262975585569228738501402736967920293584016983015205600104348323853200303100537966071053014273332160220568029957060133413334362390566260005326130457637418251376749467939739565970139404697240440434197293010972296213564530785668331396955418965006820182901369119229120380577056151361094022521069906084426309608526768727107075070843880586282354317867237113400432737473088620984998253166727004389199392781996344982647811390814515998830668469932980926096172338152863299146647157733825907971365314618248517833057529767173733459374970194231525670536857474381680506485559070427719758685548255216442745889421137452693048276364080397942584319706227293861736009394240936848525944578905510809717755340506937026063307675191981361464510668206515256907181474564467188739382851429762362940077406899902008395225529818462252225276703975657815598357007384597493040281857436845342616313746888440614918943699718073611781083770358730909342795518752204506329983540134460392304559383724289285953627020689195440440542057740247369380807630097743896593990966058862637756602688128823690156347431161455890301116500836959962241636102744976780535680893019065597796355079803144048177987487988375144644372770323316886839668302639763518302663961384188903309093885387474663672613658835974882454042639572737552273816034546808004965731834186696501193956053080324602476069952491034309002450945298410972549258753895416072006399556656997196920535630889123176338680767759240854695466821513340207380717767291164961379928987596240033917572785658365696299797697748164944345356267034222817907584960381904046993419916930265915175192144855741266300980438346744932157374921329461696667226646931715721941362303231763244596005467440287177292015490237013983166951583877029291966053272373799423889833924769039971674283231358465551650697866469618815283164513594695590836237787968495510932111611486853073577540300922318927360208193598451602018399180009666373832621604407008450213623008016850732044639927052950405547522355784685626732066038622289102949208906927684505731566747770911526347717389510798866295169887277885403715137509386569752314307327284618225098719255790966800345171179545338222032234817973927332991297953520734448667384928658559696011304938652231870946595599311654324131842263328591858442443337778242075719007899463233159180066900603037892784594174841217921579829466381865686223155458122578960485629850670720446101628904397994008101459079915107429258520061977311630779486740640887270978499717249034610362717219746091220567179177028605218838400833950627509343859930362662676678682690874718522647521261912305070759515979465985997130739277071484607502656951866365395503350664941154499455538022763648303695631538139963931825104262750025788604778506036976845269041546379044778656117195057075460745337331748059956016768958309004068889237960836318441773727697458244698915306789976976382545527464713752321343110408864869160742101665432417731767348774294893060375534686286113962101153454177924989884197604227796910099652780972370060700666041991267786256244427594846481780159127723051192896798451662017711301344788907734909548699172357649890307294798895316826769164734733117589755167166018192324775027977159465004617723692615059158755045811490345013474714471877446555752544432692040756690697415567097611971040370767642986534754614683256131671177864266727198011670804033257876667198090354872408549632875051412104764947345583436537416715039452265375581686586554082344923731068010806454523811135721085279318099784400164539602359164134401925025286705435422137569652463686191129449523376407875413479339890458539578303176024501464364653872701094164202439783533715327894356214346285448147687634617926158441731207243278230267087951716928090830051795829658072736388696405529180181745608247353557847574856844244251486546824906934073239579665567815880959471323077016658741892570324860623134886898747658638460978407927294128605399528981740195599613035234644207662290913755307283655723658564055667635966527970754443921928921202131626979294515876586233838449568554302362355752179308036477672018925949251903432031467624170678629561751318368281893445343305632730256737293863576115292176081286795533082734718967603178446995289475351930750324272325672447679998601654534815346783876873872850112877161964607136556565666174843777710730677727289619056815376381766034815299600140655610223404941644599329680034591759417905246756074869629192765769969025878013767206024161776669640602690650455210879077096253397890934053302758152576475743203867661962216162205836704495435205818003312020446243993723393541063432339706179065793352015821560921698583037599930763433077463643224270543731509654513296459411877542904147155687978903293450342679563743887981137263842023986958383014326391509900238384635521632825707114150228607690223362234513566011154785109328317236231564369565325887867371019618024149790534896990173845860891365478757689799423005547804184631051369340176742309096221868647773411196271369324506009459847780330615852484047555691677067045822948935017562972120827056531279427241606275553828649057581580836635013322931163845676867136631362727027729146783414737061018018825201530575422080746521167822032033981227391121352206448450330454523367410653172391477084524125945431315431997459887058457426918834279204879942645885219808590753181839210048561883132845926003211250583711913164532987277519785904751804352360161875546330517459373073681463101400782960600373733257171566285897775414336974952479050556990994454736041640363098088618903621725663052527044102319120662515060135953479927374114153809917961189704792272907792967702882297967881124546252809411690775022772973291775038831659462457351037189027013546156638121611170711063270397088722150057181426451544142446833187108453957354115945578234614989775572700182594340029822355377492657166532593735164952607539808229698945339427065351543932860018464781445323593443793422242846001949964398033954485123844070478563439513134893645031224831901017276162155778959808394938563454363848673014063638440961801960883513583490384546582359120641680169687304276882406183260704020433992086777837586998858804282765379699712462164909230784477701769602532050847924886162177794037069235557123863785544189141843049045982604721944284178142658307987967627018756002883346975132384071925041970810930091614154139855767824250461871328657745386803317832120312525211445346626775904424270990286471327704297090490840374606628020837628114440119102318964368095114932006214487631632310554129171363169155438754513731370184081487544572485256104917595438653945462894752074891889998608190512832023377329561001878697793434702996952934906447215997392816145812149244185905181299781035368461401801092685427872142665414471885549215550843110813651387016978567162666726503828045663076916483610301082098053659487971553787534133620539344946298236631240652767538118993469020680191530834445696651917747111365052541475057602401212642332601813256165415032187149518026096162859100966767478386083754229165221005722220929213491012070630716311330510736091039968382192542116141754394628008260431285778280281218610303936396720518768820164359339674679296386787859594397376389447831470159954054069844246558136196109980407689504225056266241804505231452855242109082427195100577861768694337996988279529608358098279386550980222158199218645474613255478700845255482308869312553036190078224391653467212116457882619231681390869865522616733529774684268508212973204310878008619401691687459010087097208869640313208518756352458477934851961161249861987639766695051704416282468674983942198222259983492332912025584011058728278557844097579993968965313531414745847728262246885864377776270052630719083678316584815356098827491419514490909979466919414696488527890789593151230210603248493983448751971432530404644708845076504426283174604940333058287237828484160190854402761886066280358199662654953533653762549900327296014537578156021151795879836699735456580917780680446800343129281485132712411983035903905977955166331948502801327405780245904966428020356958455873967665420981973642265682776021672223448418165593375943966209617300751170796550784297043612192903948533871086174625216874431894668249739864267164330185333407132765607136038201413746400268653009023202963619212131715507763005937923460137906328549042392243972609281957769483028094537830265667786330847875210950013022301396180232250819399911262185365648099538557044899627290028374146531476506671753289436237266235743639223146627126713511589138986553596816273652745104501444618898343338214490683658423882657098816514230846400765386548433494114155057087917521218929806663772820087857133476580671837760545999899272577097985211305523875103363610267661912055237215123198877423038388253414417318163801710913779212210278910666128967271097081589209933338703536584836307073696812917530796292787392391949772278775497739721808299490784482299040273212293183510641910466990859494959209650951303120517141060083033587455898552233010163548396630894172374494048735146681409354806543319010321933203455254424588001778413124371171980019570527288569804122467396988450573508200039909678788388809276450353896186180150742123335834896120907547842856885527032609974449547214199769577236989358415264073892690288413847129278514665522622290136323493709373791493068972709076802458958629020694267567533529121572364561654276835406664287671527800091656570216919853266503462201631841143167160641047345361789949731128285422396180311750796150097546445750081483551134527664207058381159976850265333607855602696044219388541571061268375293636389023718913804845600034774969697986146957284688132176021981321421123936597170240752875433737736541809491880330657057952262327463699320916527779693024170580716633550796608638633164006765562575801818491527651930108960867810821733664804903432428695272423042030085245347302674264166916676345645907469735084515056354475937394823779530324872593976032539585842743914298126519854807604267027775224938793728301481511235750488232862900680912732435051499055870969326986964975678538490153668495572228135444991324657979478376083589688290668165018942703977187829785549467528327959281139122453917221605594909022963754858963099271061625460418879144682553101181784697285675558422082847977868523309790645797065386435528480213634220854775773643039344457110572703982456284801030880575362798484030024831383093229038742668583218042874385025329386318196303457722219887042906798185136814409684203149904839790176695725541692081957254735624528546698429885085981710694826593594378942803305384529068933571730140753650964690234814637360581514270584321387943353141177495699930254065033722304670226909438569799021948115544347798564805502416991101291725445275871010327390126807871545284763023814312095056051205380728443817788758402454521962599430732179574373940645718069047510061901773941706230319344394870600451286313657935992284859333079028680515835604519123340019863952679744392023376072377482497217118888021565183565873522585383760465150781262716145243880976141793577720780208519063527244543637935103612088523849924151949099549981065038456392486451156021323156503942219211070288673221478636672234041991358434957016237092569903878870046330813108307106502196341360133845608322061402359654710778441726334928188344240794970801888771354145270193582196460600547790871153405728469174695952629821163295726848042776952611530274186201689460308810198504344040263320502474019712749018615063616687443625064007973314274010288655827162959874438429450889748550863687588792149283739027053020399244592961238707566177660225904343108236160378196402092482447552984699127725059802115800004653768445152866402662468084425249511943991338647668447246864708793858584555317005146680697147140717539435911746898163142807445333493600467911015068530772430941148624081133905333168312723161249795846378403575262264724294199431569859530777703089374129207496853119805694364321999307784666508805977231100651625933201846939917024057842892991452543260572059202793371044108353401414588044326380685167926565435275920225539778903180336635714164325235364584354321511504192915186341157136409403303984633925865527794235293432309284034540247640262269100087358180189708032969667677801214593626072237011149032093165065005204636837428122160514951989058617348121008004982917267340538541417206382531718621576505321255588228091402452776546845702322903771146332322246055659257050863826350146646142417774847483357266297538753502411691169082972710246450854444292395531267564417656067865639317255901352609769582826733486245750862563328080395345717153886708008008573508176960449115530125201948788115911316618469036690647788345432580422657367532996403175031542121638424610366356783203652201498871061130558454773405776418885308100740888318789645050668476652853179196458818119764859804721337378648488645751892769559741550398706861779170337241269535081758565790331181794343262470599193598171232559517026143339708992091951817359239073783950990462351425511435854913441049982797714673521425263818342820750522721032140920153681646258633124104329058159450516211225784290679854128026691087528276006760789364810292431107524363119282923760675630411444987809802422426552876277464825757678601144623707391440992398296401195131929908587257382903991557601345462082680383866485052746111643725764087968778914520228492573408945793009340679702761277602126510635553122979761156661596310864487289222884800557044144529702186969375117940710130474773243525556661715063260804244455534816907151819124040452200509451888117217812675381493238339905632791918825189055885033077839527871253208380068890910855017117821962800300741995430538375922433696034084172940191427798458012812718340814915503169620167822880463342449799308271982024622558458364727874881807995069805806872113845972407204012107055811994542086618933840790216556316364986952502556004337612785322685391167905894155101481956335620470421042188838504377525321295252808536958451737740975254517016533418719927639929018550081319483417850975081519396991535934155887148520020519000462379624410592873551383153445102844627196990466791215576349781079260689496709619307616782097260526069206029241463549688933194823867154364868760276241928165446621117539384293703522378043584902700843106443218360510796982776655010371252550327482346975869486864526246883815345442849896387904952953773166267487872383746740929393301671677591677323569109421502951928835999690611468041479411125218412616231505134489170155542919201002065012251041308815164555814028116860376388419571504693404597377522086697226118335869907818983383378495773034417067956325463938550583449175075836235509144052330512191069730266462388072781790862234236760542202177042104337573333156831704868017378042927350794283377550746924814961266914311098720669163975460664426849304843987720921867285320826769287747008020554494463021624963915942747166596100031894428063200194831298364880255414419691713507484227303557443138009765865791946737264703552483337861348279845352435565560623417223278252797331583530135152653164986910330331871683858513576380801874627796617957939109873125177178678122859237531564682431730536222744421681114453958790014266836337779878721538499253050281394524089876258653154185494360196138154698229624155940101322168937298199399469634516634764034082452611016297842714053355468886619762325124439618055696709758252690367734704774273946603913419270310391304195488235462296969562494840459813261065721263795359023335987833914256221944275702391952344779277247824806847284418110398396753972529938216522184475370178235581170118476915880929854790335795388426854381261259559053431540288678985079505771467797786914450640600864696336523732223018187474196855953614862587189355613456001771904289622091563569555926076256035861673281480412135866415951264202875872380042025773034042337878114925195652621885582878802428072464771982257933690878624285936691695858183372232432626091880320781223187236658261931742454429278394262537037357542368030784265842095303051328409891019646846846780455619495292473144372792197636068134618949289850851754632464519288971590887515778318494675966583884915214183521256085199750981065379799016012582547749720019403879744770981258444778307467345462430480311537405412668996318008467910777022037582889810774977226883674984514797737887834614287186402407869002207293868959680010107984715660472489551622501439855383939861083663563477846595628793858585012950556714104245019661669291342006377747092556268016221643374163012904691365933637104244132020912328661619053618836284859552779780704388122376904363272753346668855119884957041885047130675408097826938146992971422843189624301249667023302326576327918837329138605241718624392250373561271762562604009521974958968554579943825038432562149752881953078776517124387818937619985308289015504060029914697096986531400851881542159848879026701765640260171815872764347477251129868815278169037377269729581972508477932443857434438266009834953345946030878406772609329120101755992723001267382229000474328588483430377966744094553732352653657126328578801366329350492283837250552035588515221638260660132497606955792314466849686133270495820550584603148556769540733912915445186466778066823272919274799893228969366120443062469371751545112092603719358037282425236425681551153180500963153293741049146203360456410943777021989160050757127606782588991611706755213908851609588339137448279307262654226376838301566649912243330520088897187859913934780191422043844681790288215915602112387978301106961747407710998641311493982634632999022651180218989721395720472560549518042776093763708400541877685601932915299617053770628328578802613460738841974787520054020068343265628730539771639917197773048830823743293795660317805667814196495290529167947629023707034595493835075990661291710815375643607546668629365635715622853452846834420719112225582826346394493944089378703175455811655709716575939971463832924006029638394243722776584072300977998904681994360276530898066159177769197209501629371507486751467283488540186177901348019166884693996718721658786439425469006387535801089404333457996377884188315560370967392666371259014460401658060226885273270347963904988041175246781284228361871468153490649613517481570300967661282197691001069504465284139406459549709950125639382296677089573113814879823528096178600457228697893987205176658502703055056232972722674401273186545090153540760075214605785182764329899963648630369891591550594472466340003290209680597830329448377987256545893876595968326883183855988117771759649489082171393729868303194327155462677083349331774688183443535154489451773548460711515617910988266962048750546849557758226974325647979497840491184984402296395431105771547333860633065574381466246149408936160504571252075146836809302223666725558785958718974298713992511921081665336060685868692358143907306054711127073766543477976910814859182076792800466468369861496428749611161950395251950123795168933715774737480821672433402452165659167490111512083468947536823771156905660428264948360002697896811403549569535756353802754729327047240783478202018707840854636930552942024814411379153883434097253188303093957959887077696554047688523930081421631442179533480403337860120920141721970444114229409456681919119544283296874593675951814332291287408562538170025330788594407853589459509924172307782970469213457372883807259411898154543901155435840830083998954790045151160251712313992780924980453027601814319513408763677733728196097392796444869705296812633502929134667974557102684730027194060346551076293971422105628792453163744609608136927225294507765979379837779661718998278630126297146591377407050679001872198794169880682023663468513925368013620312604002194004694410846241097019896992654269769833562367634020701540962055949710459691789443395607857848277353487170523185068918826548239604068091770803038108311395426027249201093333568752653553337617219553344021174752737898456736094938280258426982513887590743980569794167829870701634686768840607235185860094995523470020892936056761362123384159823622724211532213902173506674762587335217690526082307928953030924841926319651680774268643977736045497832456047667055280795105516920254811754803921506607127171034793104235473376079952296244198518214400228718116485674013003027068949893726102283451652131749837868412069171582679974987455441098711794157616862397433935149174087124312797875242295098065200043183344058557739646573330892370220756778676787879719777515667144278717688446644554436138790874129358795904055142754616438820132270365401348703365779734988893601258000372239948614858568062752564409860081748522350141031388315666356355875751565416118353351085281320796407483036042913844743428331441908266315848682856071015724764618658990865478546007325538017563855865477479751423801987046976167925408583266554510564042577840893567133308809243348484854439039691394206797797819609903956326899095694025673734299309770157346568555811677994912012717693962769239853185686806141410581991677237034561741752678800968182608375544242198481788054727314192894108318357764298759290708701436685925650226391601299231049663762985655736223780726707767603296216513287836341936149582776474469097464904748906463519379358065961889992491922422420088646831345033293758243138075044240145219879411878790077073264574117454397993627480518532960331048538298919754990248059414829462392431571707019700168563614557231192725204961432411947233281745037307337669990299595804208611608263425248827529260732829816709795906473063895762276240642381205666942959159389161448875172394707344086517522845816000353187039756521164738932939417608660644248162019573982287223984001278888396654471085476979275864203266290142189191305739141085460336362978636041601978010953096065455212160598850600643372969392223398799882890506611686573666995072294621418978396816427013594544560654743036404855856719930345935353101577556875000107683565689997007651486311706777343995312497928804037812108919280334709534785661691395118684302954480947483246208204371778757378868221285044714204538565517539905113459287888568812052033712458356970672594204979027348332857706097336590182089286974994359602068072810308510172816519999003081976017309558439150967290017483732884236137600055624385942319670443477986902520640644849144379811325276691679975680759095262332732664418813171793148040391594748909258303911201784080301511213857099098304643015836277768339063198241327786070210662616910906274245531772674823984289576298045618393855178142442677602138583012610686544940572986288824567711686628112954718936280847658836446064702178561846157735116223881614373828450408942163920865347199612827762660073880832342648712234155707931190639929612548264123928890646098693375478923802223077975138700318741091462629004815543602600249878953671831099066423671208752295073705619790669957715779939071198751433914679534743216656439174227317506228539138554543919503751302134902710917452457156988879901887294701009590351639761357097957308624323694053086162693298281863450090553433175042800860415050310115705105032329899728011939261251469647041233340245926635393967442396572578502299843776397371151863930362031223599370996779096336297869280223688102809492241258361961162553682898163626658306822449298720964374105668568141304446420242195631569783047259014764758103880276461706939697409104602672997754516142822282920217802843724225718562412055991180872076036408538746543446597229414981776587534349956134379757258222820040336651822560003417896885918104304427280625055712199285576974859113936173696824691508706155659067244787891975490989439479785368132023161550149320112477899100226227916834061680107361064360832269825793330677662819884534309989672979861899283553814429569797559923169510336131265860884986588320253510362534662349041293182933943655513116150880000887722618295223630961933048989374381785298091667969374810061853916819846049979298592483015599215296755068842288606038544791257686838231517814266119464203853165722683258152045809006962071393895052753563296052998748134889937346159600497120132134685006968108801557769475899455593192512407027674080701172790427102125376320631135125848331484986663749121262621196610519895534228131633364414584695693608509853476308763693772132529290812061340445945485314535037007095810886967858439525188622361736786496496500798790974167959019557976195616847595960109018761075901998739361815041438676788185134282327605037197292651146968656954927564920489560228061808179654442247034763726581386808253357552987288308582732174959488708377291224490768548033332503255180398337503671731326165701934077764359497684044971572076042183548100746569010292958661201142659580603800063358229197399067193889592763704763317053657122377513853578110883966647321249714885148749546380468247893707463001298461313945934683209407374664290148711741631779562971290580478779058940282053109805590983037348303203087581443076288788030753117411111793618620749155664901788413732143832552175651205508794087315725153534005201798449370964831102849472615218643196396312072640986838784471023801070514112735363538453459107067056574156242008010530371292294331142022251956621416260628725122526936224224367983763312357097357994904269070917893044461416067572473284751188194671636306653984192632160454696790058361930970907651369813997855469421663116972587178068275924981451705292664458167764915804515127548784127161643998613715811672819753570686152528584305542469431237050510887342408493148144683032186773141272545568837019746623510386412275250776169308435107264755033615880093202309156411707586108748709365183655320786060159825101304426223748282974301970649209705290980967759620661895459673570262709380336602614588533538658367681616973128657758319984485319279119400108123549240102378074637878630712064806171159596691346847633265065160360549457864942008488850355241529584731686401201441205264791003640173487331610940020417318296315904467079069139969769010591240748933410459424264379997803883381583505492539173806354328402240350157325054384888454458481428305560166266032214024318976898040038655321534290043581032529088740887864794443729785542147528105616090523229416323895845688452906596649963803182470071238554672849696767028862378426184588847939647484366075793517475555227403834650779019099015343163393559116364168863081248407840876069890467732501534842807222136971104381063971428068534149442413364546578503861241903445993959702804981522052030614712205627272137801083480100372756808866165906764822820819056934364181866981727054698922624016717082671879472204965726938455938039233547729727624622488498069739889773377428357585296423198033660234499644822421961901045630321063581193019010236478551032671464763245551698468374225573223895384563598391991682896135485596139650213046731699386484273739607629232891263164606245212612218900851896979616472009532760513617220569186798124173745650432413833938949784016709648760606289855432147670425068055649001968846438483539528568801683444592221742201007015014494657446882963127365827491021541250906593924384204551236493625755974523838256468711155996436520043244955489295416859585147751096051944969038310686520074129271632754752340162828136993795978707001161022302970588369595091260429562860333764060117950952405294051535466784928591199419834604966816996151115227715517176393285577549446770652380672396299094536752821708544737431794606938478426678425632722707934405516170957807135210136327756276498082535266941229098831684872072912661787325661835095627292005563830921376539785161258843733157507078366372254512190441400484379529340121754625581665063189394194961755200604748700209724255786388702284062350839972986235455489032240675326640283237279475837147968626671882624515593733175229304047668971785811109163508062166207217893718339238283818217058081345278123354989681274985623660877335662985670602525665949503169891930224246994425818517013779267777119674018077811180445063016272222447702688622196791306820738402077302464461697997532454876164821449091710694364075239512244413357972487629883143791894228911242130579319359485614829558434341989514866981722258498260832500876008625571802701751235444046147720057628557134916133786713036100617285049924085693049764819761476057713310252718207644476710205929564020854355242396906504800130926001781792570281520553543462351574988755861520236252591615026724169163823569745207562990554042494052361232329251038661490263182082294108690699256960269951935123540826920356117303261323739561733222962337333756691241640322582146304119220636778183512805078859784242185951627158170957344682433309738454794011762397927950460073731311863959055472801064366980848899007290696143986939610005051982188493536563264316924609927046856503074235119091062080668682437652004380578440046332384374647798629027622758148363945892826844858594351418579750360152947139285400569878014358368206217372936337541485426651683572382973842696886201583531127859249456120861226857573038215120773325827565796872382903508761380369837226917869814505890310419191325719630006037160605631486316022775659088173437173831963445091205487496155991782447950166718953408115308531457031924430305888226300259408657049024559133273834039620937192827583315981061594792537077624319941780353684401666320522603430074927143394968747260724824959587610352748213196160313273340305513141072476131999737761710953160005826299761521272674357160232091800310654991066835223520567033972848353873183565773199293922055853370612425070582293465898019597203055302064340693417032320380489642714980329194111402253141685292382697909517015206086369143653718966079156225932959131228110044012478480676450110422300470297573084452236924748851441274024120173026842932150250786091754028738726669348330927294366563975456501632425213779669320576528910806398778157357358643894886478820108323264013863297684769015555648431745135205834667640964211414114411689004698453054656268965919527524190248740934260835371506162559978857745591981762374434592188283748855480031036325123551528973128196843244752198548288081182809766685271351315963552290761669621446152158735483242177092037837122790627507896986485653061208831838715598429926928814759668022409859684200519962266829333965516203839328506592130647762480782584447296915534234516548503655245006859401775870615650213304792399972828024508874101697309993637831556795593906331133188012111450675711860276119916044506035908200187376779728644971222680334667046178913852288836418833704049112435544191697069064443527049532278996320539568172792222238203583397053912036255120231031021861043250085432140847168402932476884918499275038594330262417992009380920031535488433882774853813744588443959005441515323201555295258915322065628829633750186086007869843177139890226435591559676766746260321383975656159885996979847318255500962906622447662792030728558161448787267703474898742549199423720347223956734623508256927589141429155173133997484546304522926929962491349094180736848144498537759839000127396242746483131417909679480057034225959411732774890618273308128676596235994646238414293235264781135030281494563414600781008404677977032165439963004095096458327408526955095019925933937970212269566898034839532351177189594145821199983978165001598366542715610382826723263086709430841634074101769791554144456497442749992409843684941480468620319219056158310000253235321000032731300652423033543351048373820667590537501270723571350324137369831996391790917794020065316116765796622435636630780828214072858925046443513492559526422490879613625222891321375471156094667467271673689579006383331264688024464561948694192682122966203525458850800609871122611516839200860594526414503725550721776376886011332243931851760459904439677142031905144516968234601571574946925598953701904343091964132108574305257679488683520069626528009629275877961541424918875485165479097533776625642942144095961386018198379540852511927011910930095973584264227597174414374873189895697748745848364494308915903368264896311287255277472711120018451419123485908247309025805909842782139513441418647956359144789784373310389766893971505460910865988844723040717746385365129094676056326104984298152696853052009861833778014007497953244534485849663878374689246852552047522779175087223299047743817086226305778700542028658857426870765129072988543322118501736342670255910448335880587144859228135475759427590668219211579105801287654581951856057847832134779809611296044470985713853402997061451736618333004618304979350515950815367620739866562478903963705209857183260441787299148396232676580539422414936819463115553696167802329877971975773391241308140185687852315255655199869279604719828751640046756548519615497969429844905103867774860361059434016252922366783140728322801446395596695921662540594801919889348023463175842278307695148548308401936373348276604903217415959667964850830040990067726514202467938379349447617520501844850645729665322494242436534362708569500674688341899485585061471229626153354478880117395059991650544995393531203233966168498524632835054972616860238031797256094743266436527416447103257566548211202703149155673899840964959473912455827903299584479808312986904475180600959684216296696534993458441107944931941079560285988239816746011284542924548196637769828801438169880821116608920137657092908364929535520034195864752032467270585380724050366396086995520842689924491536396742388800201700242812131397046642616397132683062777871087294848218906590187130021063747251245928381618301172661694020290805871548141854131156402341297447780183161913207468153211955481857697805818838092664216170359431854542506731548152222001495758013460349705120794253001369050124720792973990455209008208864513595793823648190039717777482418229688685477314882164298428919567438238657059922210399864215806209439075465734155520713672939703988023183264927622110566124594669131554786685623900740770523703167784370592299695394401956619104464720956070945910563206757106248299144982852129353126273112991334620801455992134743224191876915195977280346738332610352728010412852734742494557556415840355517716276714821330832137663175352646651753853806648796707341401863567938447101831438517937428266553654836768408942590311128010789791055871576017325244639192351471933986567455404835798997565482552587491491313161438133008327696961828715362489281484629810093190292369755574178740927400331802531535060049167365381757255269914385678333165028600501133633234216583864579979365293366524646138792066272026961951448412534857867399610708985909846248537017109254159915310378696438130441004611658106947634142607493017814670708330872144913723360914651595909013179075341184119125334347907776415070991409550354922146553903528857234508775542198532361194517325817729429294026778136498130531406589545208550517443964412992429345828109417605431776195085671183785493059101170504088850969080497719398246517536780459587233929348768884112376029646172696042047851150117709862411958842836416048943299264467181411472776023592202948477496781941656435017754398595389335685663804949120596649663181448465382377975007436965694007378463540957615307897887930746187501276967754853836314545921697071245878481330971719004937553406662375850739212114358312534619898649028788185752093599688874129932852773451213584898900038986066411696563430482209448436261537010976511379787026225610718345724939695705226913774895938954734535496327003601043320284483659680916347916362174187612085497623272188563958452416262656423288218857071646767363067344364506320714970991867811116289076037144909651651105475468559115637146111439861777142749244272888738867991083441694276054207463247324347151662875643908714054918761946073919660174238976617715092092211178373024062879768482339291127932069558788899208514944129428710815507888098340892320865569120090932531982278030828330082886304331103315852751509043328096293541507636573825112206925614841375153350169690481721179842280406065466248209707934387336201228743537273377230694988423805377467452960141592495498129233909018920394373821070574326562264337067005946431076904433292417126904324518516796745847796053598022215341113191850321970789248212419205498179617432010540683934121868432847017157682467516789008206063931185987602623877737765783375362656680850594116449895874682657245689159314241909261062058670980368902791846287730852443076752588784508108348505223254519882061775133264175844299794320279658129363113038178613653542059886120059326018371723034454298999675366819358740460509691441545430231896109547686906108638183036408104853219051296346323164121260121258407822735776673816865556170297392175512980055252462699829233827309622923364077899007288703436033638415008402515805275838582526752625460023777632882169846345332994842359056181854357938006282847531904441634864209628482900151165914403026677725521642586317672720686127094229542822796702078476081175041807432744386327997980976382601359125526585209820744987966916410103727339696226142785001922172386911389735723576342067311952738606935079067100984888572511472082030906163361503110519208254668449231519783096638259691049731104928135633016343799960286545621496824852319263472933716592079945112593368870450778797985370695498984493376263682758285453005754207477564506329915241141368142081307272852413542992847739684791711106353779036933086655681048122564205053109255754962678332608124050885377382195574764101500012579233344123724094539375012018000084872233297766722128228885455660836527904018247287086036833527178708815339633867137262293288014776347755316625656374447649083216208008061695151718204137542388177318786979251257601980967178230457521049740364088491843888617133934943524098250213468604722899072876401305939148026145598692702129025371987946530160083411395235360348695502773478778212089862079611714048026074442696514981051495525907899381091806743177188208459905804180152498128982113355641747295322552343351654159597726295344367719070107630385103007427632837981034772447681070873678967904023302448560557309315132228098008740097744433416847256328184852847527495492944686012735741968398330800323371065690626401925733449786017874056290761421384062126191971911374453758316905823924031716490619801889908257195943622404585822094613721530307520459921861289444724317291372136287970952774927188805779823465603826779494594698581283516921333847287956183071829593201262663644306312664251852333457411369607801379817330428124916696666974462891221454274444787807943365915767575430778558627536427938076877750594382024309793841974168981604858871619517612228496568523786808469442639732305141782404543948182866645442265627646465161505135169653139064590075055913125089322934049884825232441543965137212459376556129399308027637013609422840052904895974570290298096729027331779248768587263866395510377893959628712571172333090845284660695054600343211547720145122581504178764510680850281363492929468024035003737494349746009324370299153343691806308837335846899630185911590861944293091086980670770240506901260283218076634794693696826660632461379403173940929402155335763968951563452130135417449661800347212140037110067628107187065355536980533687187792085195264090504430003102744765650158791571558162085605859721199098196717418127952811351073551621222350547260376633981400215175691635358687024131100744314212422211604697526779181627412132731942368439363548221011444348147746491703879508399594096569167922400541511050294727076905314294067704074771799053614351391557288634332442432974757847962825818051202181908440452436414381025745649080441164086746292693272513184631220972173378715980977875856377834853612878397328682473664898779235612326919595883307995964567594887534756441218887935976783958193516007058217638169955862009336828202896318486567807013994802539806187379384337895575517998757584169601500924585853505403815595592562779970953989882589986026228091518662125845933883923769870700855054892670086999175437395653524599553785898417578072443960065397477105317800573098092133313430605210017898217065524005279054709223277290138965244835747942979768555256424330929167745233173752367405595463629197579760958107948890654033440158830166559174948998666195629100005285021759479492377083605451671343934305253864570378410169767898164734966687308551639780477552892643754869685315532279486778194638668149527869778069111374762973783891686190380192468517405983922365428587776901634796008255937149277323851276079783765784979738750782414109991048742011515378479181231497186845419309908803862813921647629101556818437434900277336348961376978590668149322240218759358843913385425591798562505112422468555093045469197272563706753255583400056523201496715536405863740719890893926484222591109308814646115517265144378954606236088162278513211672603407917726366665662214191010125624049729203408113601893631390200460162520819568750375042066632247232052022370367363505660770499442062777220412102944609047116522140160332150101009262613252992529550107538778526883125739434970546218707747372662171881605704276617521133451770394862812028032394000343744349094382173947791901921898292503338148069500346673207633149545943715997356862488806670435888092839072883603749911599535793001530392365196032249852255498282508585863587250984445644303823693627648921772695616474736192367550234420912030357802934713415407751822971377593346959437590383581224643916867614190211284148380735282184263147181404022445868558729951160603407803027224577807659839004573114661338475971065877872906578976884843823652428632242550239478126600692400607697967531414697072247778941882613536876729252318976247620717106821065310094631292829228203654395090424026289510544503145647039192065154524756454963211888262910081804618830112328108565452155698548039538461835136284230609333882925103210075820242882543464115330240782626151051408716704879665859086391702664664667470250003973302668386560422687632417310545774691983797748429839316079074726584699113003733964522793793363970808259644137901937252131554802366739161830667593665957612428107737350390015413719718151530211854860441935226225035514278218705857171808213338532571897228415117144383784533496055667998171793392750523679685009926789703880027907221234317843531293247148666884336715880798482953717780563655591349978918981046725287905239833205007979274540862254013835497035081551440203407854997495140798528097382089580136417149148760293994027898679423717483369688939771873740420545913576343183848154384547688138012184810543038047830242108431276216125145388072889064404516091154329333213668679526950408032037976977127170865806743545959529320758998568858946086834557027628734419715972596267680733373427318029695118727151745550156724120001676513401777909925408524109318673383166998033965491981307567782668265556287881607780423535042404530571029507401875070450325105732436799278135535322474645164696735007762106731038881514154899586441240161120128608929567170378306357143353377341697556219653628705253781434786193577412148768810676432721710961409984216363149289028099305020546639104495091327385713463015717207988545495427306320589086829420555883970153490619486726199272055561512420172443573485509562810436783012331722079180440759070565724360410825955115907788057284068777216985328433131069336619478563980310470852588222612928792011649801765693148444774271243204978580490282578368517598490868821549261363507910419639620103241281833512211425397844035524032208947059401469467571111836012751756598754058115116216751885499941648572655959715784788023347049703471140752243532972857249722890699432967585545961993201798516998957941931068076738369676221860160670842495337142022554043662252635589660605326558154756193099179646017691447968605790163916890165988876877830741134110062721671085025411321123998256580852716678886532139868955869357851859940633359111112820796967043472204508413157755967242839214816735635815394800311512637880311723335741264926743270887064316781333702761222533347093990570204458691561065778747789967540719455449795312589606467708722092346895063172319739467875228259759341705172129406148880476231244556038241710477256254093840246665360055537101466635123020436612922705867730793528029909263595837968578050174188250219585199895402866604082028955573047663461087187747490658253182276770350159709303425135977939855991857154712400307338010380572830635504709940533342964728510162609205480650985931629690297662019574888806396339788712511170677215718839930865772771534557431735515090884308958494178987049591527027808487761177956204952910288630047205929620632695853720641445588939707895521616449939432136370716655587377665559489123168017284730789908108139838014706494456016101042046235883176480774276521188718634788316339479471069284112752709867520258253856993287994131752877058291254563156648464887555030884692732338700522293337758174232156180064751585278607563012083161461004415958788625298262390523605062911018524744597743326769146429617411951570737886474095605038454881784458602522615729727296660842360065934991526427689822100265128630469240963838622469957756786980358079177766102626491024790864384762885161869917717562720143777863624982376915982152154326308825598003002741265921758664842986284415991262119451724614194860714332883916877008159306985073766670663274336800479723476645037999385970799229894810180106835067305478829382729608215986273134518653531617890213182318520110899186547483835663758818387012723475767594891750243112770612402335125008907276366492326282030335121955432206442873069820235883440490695283391004931679088296964541630708343173542137349714518760914609087006741845447447381110145063660079031031787452298070853753634999028332872747022979371671484879170709612978659213692823435527277875145453451471453084354170130222334769196894298664906208209790361954570806253764688108508202492508829726037449593384476442629351347199412907517177957357472855020574732891533831595972839835043046039242957299744917173267366074704651651015465401440375539374325531038327147532991289519883988158812639101640107710719756721377742925585241615960338268914249425978374459107495525328387499125686008349192646104807857719932693050351101230432307056098125321701123441008212076519410192186614336281643929387551701751973900678950851006308818797771733606206946013032702701733346022291983240038219328244037228053268381353558134389347657246788335646256311232952141566180030831840412626494024375101714954469530097419539697902824142263780343442669566830801095295488143227523906327688971149983122132069710863873987903464023713580259114391210633058470755405588960957802030201116416254108224798020157870452150268415602627580308358825092700882805299763083605665822723396155813753735306652364310698508901297675174127230180715528476343033721382083368622697251775269994087447603543154020776350883131344122211679451687192256917468741087130352984913822008140538631980586100796723488821769884264629823907437691561460124948093646487643571868463596045090199042006585669902451394130244834178061987345914388532245594574815778946586989886031996920075298774647340522628804247898383092524704360061477979705600918395254331003488706324750821421761927627535732511366102965681360954035789830760415198089983023559111036181524159496942586918876276501435526869601159339712469626532144740698584910102041724766815472431224701026074000153573556290184101169838667692072725714140856669411541025832488819597671606128621416106812893469047313999110453197634990944094192094094004587008131956672881145984533053283167953092384170255571359547905065887180121993412733629279015194330174899437720569559234655218459925219916260090851710969849714110002692501633154304538716242882822221854650977349508145869171074302290385249880966807650021269167468392880732273471446849093978273940438773019130476627620743116426437096982021041885898448573291537147156471649396803331311294242671233206313648435034620558797930555729017182945943954487276238352889992886141982354344190309329183789035745828031177576127106079372805789168977719476435529723478141979874864194546945386936932236600191966383669394167725741611999622604294958393110954120957363358525562178909974789372674373040376659118113641564427749043775763927369450134817155653791815199822033747924939067485558599590768935201046136041604570529859311457654927177878444399936649201239621166302935818113931654779299103295479265407637172092188870256893916362125142023011353012784737637544347179445512470411045380441237734121577074087269677398638852843359036631403564394146088208956233840023459082190382804919539136404544441199465990628750679195751720668146595473138502920360948903182804478113282045716510258613875719520684974085652977716650647977768740032104295583413525320837375443362282133773416387880042458361986312636675166263669990905843638727660459351575918185317123225168726539390027220984693251279054934255973793001407122530230442528721795507291722610798742111537960525106883044700603545392487026836911359024647365931285371176076392680591683299245135616348398499895735053715029926668153456941514556923187070513639356979028345422007495705320193690161458667887718245182373425050354997807371163145174508067642532472494223666617122586738386251213166492923514911093310864044325292446232987178341406774821002646832738164043608034239812178535250467383255154387756305729926780974856638029700800921728027893334602747987945188084068123539426683518810210749388511180994059311258406478828997324813768473108629967342139260379563984739575642212649770153357483258627520634240532338057345020332582085077746606437013148015349702888149142600629138757734233630493816707034353084194457595474461260152846304260694275849292171179781278375338296213802484896331462278872925456328877756456069530183429637543866003508912606873997259933484929369688587437038902322798669703958791943742071041867809375814132358998417471557849465972457269001748512128310758646036112867378577399900216701980490455286850004947821788452211911524690757751236802208989145086924707577930717103606014000617219609144936473954066679210297489416896748442879505349719578508396357976599592349052716558863381217145878990768538596872039669387120929324473994864222163312511268231385480342894296315221022897821223823070376471809378409440073474007132571292366025173521574206002398361059941571419368493716477949235002722692148766465240300370870145828141818603522838366331409165166216748345233715622327808409221408574615244354791005732340257525082348190851542508440081257280576654875449972093236825216550878536383167386604248171068812200533889456091960545179711069830716481282913568957704297439628345432836023435144554688212600238276887724547676444570410619267171573865416062713251195135046319380297253923131711136211078926079078901871584102321802483176365553604266599129014977473993552086260089627961937806659735640873959940525431502241629150219267774777559123729068602879024297364713945638939964863245585104264658696373952586227032288018789246184620304310879439360472373978567919105690829804874068093700983630236021236726164017886711582799142946250335206028824739877455615834492888824347201090655775225914669414874844518997881544980974810578019410332383551222485014777138468496720402038714853795738522715487804723221579269517737859582612209879539583805092099981143401598261980379148518604219046502325588999082650653487299638739053724761347052307078441758260444647502991647921381365170935642394962479987635696947359016078022994064515390292973711796499173725811854549842467313796974821592007614873436093302940877122033052334425165750691934629823146648644778312871638820893193214530894141080264371844600485231354137716835900096703818998171973339873321222034388067261403362266544218294749836852774683796561236499664696461734100432910673491345683618650549464779674715271870569831796401696700130144132181649533606928079932701994895543845495115421136658752474522391547808857051288346171376496398538314679643994304072598170098690152185593720633094061578175607470315874699350357508298993351342941651883189184280114777656061873866179323336282120529009527250824043945769125847829079782460320836696638531945376441825226440767095501360191153036812275617690846190211625864976733703559580546356048196769550229058238740617308329999536596598598226343562081487748446270013539476942342914150062510538549868371795736033903796889170069437600815958156756877106847338356769580704806617219969812342757581557052119324908350379590418951228389827039110051344215767111614683635136679678333535661335057759862003181947725037664883517122526824139999563429978765105416200825276181562237389780227249945974538254832735295553775889229452081077010982466453664375521195404152324781322890036617830478910007384719556463148184228208696341843506120913965033777548451839033376409152395873189196996664206835154848608716663623870496506170808785019546279289114590027106556882263173456234738115185054896625462150125289720375411035218526080800468843820889098735265720347223119732809752842926842547222319614376960076866616342241910235211045924595501342266159407681157797032697591812234371036285854307190798694432160874665373689185331450643189332842658569563859474598378027627759464962924630041842746626107429620970027678206312221459987039420734433557930112311158435668002482688250254372755148816725813541698924221726457276587209547508228944667314438593299316999818325078973231784974037534858955284638026160913964623903314275762691278876068813469351845448039141716521672348901291740360143513668813953497936815339303617546613159658543228254729627095296194906630432377647123717389552097625881781615314210857530935306992084038924378244336505441963674070037887357574623789183310562280440277624566413253772049915856845003649834250769948411241961588288640650164902299542197780465939248104344610611006045126205246533139565401903990435408929136820131660730938005799375795459443883196398722033712003385725597230904361834623148899812456710100619729643934562015083367188488406498586855062312090868863682469842821507185621485808027744049972996958450132356034078892616948958843730994940602372905438207880756073770476269996913742006059941988839125986883451418567326603101729688601169796283278730710152466206954390774870939903904011057852289756866298815887370359829669268033057528195054602791414968038900738836222671185975250405000547002421970329002990469571599139720644257402674669683877656007232164582054888674252025496426544682625642425153104890350050077434454482446563108194334330003421920943229245727234549238464029467102830404294865972155699588723413194165036312492334056757577329877499422453072619066017657362962380000144567340545632571249518392338434771389453196782035516085353602029456525033185540214113270396227599150591917686554755274428675463171200988412365571832156628727816811075689457501866965434222637712716707001435487798151786819823691251234286086833050234171326205288237451672799129483088765840763140584063256174665992514324698274855447200627489550976094450106761467453420605740617255113442505466154922270043775615289099330309418893194583626680839527965010058173791849161493355361477909424363095608342349734036304577704445905587524564603465966154096177326559444991298937233580881317226307118426468826413829094055396944339627240553963518624841080832428810144262492937541380783678852224312571692009389825251983011337423456044862401565826076200798499635755997087173788657290618994249582134686707962791631067777128166058414266901155560232166591870514511050571690009004657067759995008611487935747886378195164613120563781279796400278650615666462199995803947735916351774567624257396259827816873107718912772600482162765387396548466212661577277969586277931731581798528436587674388452148411454071386532346526813033041237508496493228320043954719701451015491500254211386540225691667294612320755354551981216610719916955506339303362382829314613693568975806467000392909746046586951431980794238600670945308006335586921903015126662624337056461158278742230475975105453569620654804777955142405148125959692488707723403400423501643644028966393352058114143303380799076068747623780134266395063420125315185141370421580759943549995504980341102626018110151269146033965854689701908084472479491741066301956132265858178628957399138027903624556928382726531099006630765589271926321827015755842378022226216957527828253522987043118382777444075908826357137029546360919010246789997546584033872032117541794524777391050530480210028234094203783535710582941106754916183903107030389942746702290102156218225004116564826889541892167460885249171427183550256748078788611757355501835433515848310870974761110887303031859263788963407671143734963502999039845709877199803480314399348100851752873634010205982469000943590681582161683890436702356555981348642997249030494412132463920693910389296228898211054174073755985025119924886207969560117486684798877798784111804894530425572592349853864589895400218604772486729503802624663663324345348514831999881695664046143624402987704336914544229447368530728582847762065208081794934001668964986263273445561191791167833979692069025813351910586242475304074062792194598820191469454272182328213777834748013758464222890011364647727572059029275556658210269340414365132322777107101119143815990088148630742741152140150225184761452957973804489694605010835886242989365276764230791071999972546380543679589143105714457415257723833336861615150479412660329332306801349415808933452972281587127424295509181249219893692238229562381907212716210860637812083918715618654907741998746499298412248438587510211221832514259679893357120372551407722654221508093334855024205182760467836040616644062263212961390836659740140385802894488603051713645897117379280691058472771488194584965852643008745084911819528364165276105735880072877015230643096539784829685999259317685512252096006659395652133385163328230718566245973619028792845468499162483576647476736241609783979890673124027790089185772323480376571400714449495047822799260618778291783797995297381270557029705874733803228123345293031326756316925881080739822149993672897427609732167124325581190763103415830339633419855753629787264817437182625914957115952221495342490713006595360168219212773160517316983418905442759396260856861710854092160414485114004615371404509084456477682571922548065716692903510912631968187101481470828171291426259214141879857991209907212807888698367587758364085499861454934638972036834119867150809029687832318979258182527640451614587041633318233988261048455992943771678991281810039992516109224679862820094789590812180203249422189815779258797246230302818105522224574227498516773017834344985424083579330721727830304862254056517782640057505406548534280786916058105943479048721819249645948565331745165322386079000020333046389624774517763742195823276245130777227316442218233551775643551345518227668005186889633815440796034990725513594689271031351767060627899693187930676777754817422556666015787273426304096860705744566155820595516323474405267088407593843040449521974389829369562425156407285282976294467662321275256408347721560713213574791241522075382419393465355016012868787029988571174891181581440166625645625546744294657835270486904839757298580607217184764816260732596189227674139507749990710440806524518953079257338877646106445321442360122372624478195190628962866079572953426200466147872694280773821617516114354514058348374234078852102181010470959628400417364124635946352082907240685581193693728547567601312458960510186907961359989643981196423709448532688932309122390552207215501545255406713073789161120721773980810956620588215396837596184754134911670429636341162490044601538966615056378413726653138151265036727564147212140895198404427374738711111255408967197166973321744772268036369588859052781586754343383671256881903760475465492868109834341862540183274754406663969869127115482234703346053789694530553195842205789191182171896881967818812479428231551787270133855101269416754902387486214792515292078941797486946071841580023597587677116698346586032799417953451292835274184964373863532886886203814655285696712993656126041390254441786138371798352814168770896922766551699415804254645169242777863327215710748246478662194500309918944561081273199730686359303798239913013715987371092410409329934871626449982335510886746011973167636082323708968587138918172707683586967715302816879358933086190783974997446732833241533109351911620682699070981353427440081540366474865674243491140908758729333183048873594842989802670228096273687752400889740322738614384847016858362031270157923862834389457712675471030361869401513495743529203639973083011291662995300042304383434813137772351982649081451661883679905449214526638548836944070072248188597344614022735552146405549105438880688810543121822308967190497090146882186417376885537665106816514579888298231913760484677231186229048670461323498861000440510173057659859432524251624704384149150117373142018151174150070071743471358374279494986182540588324531461240514012072823401132958591967428320815727249206634652654250421543778638708760778009545009271737965799302807763860714708598308977225429749770659722356858496197494766330887509295085817214854414408262762369528828465358339713250600284863966077956161164013016954862605579622481832182572766212004668844835892974502047557513887775164096228048638428930179224345771900369425992539669619909534815858896772394667114830758558816484123165339507667131393028826873138203170014449562270463187531525962775383575453163984345838659432964121003806319703371586689849252472315235268998675115358873101041623288863813616244242183575952532983587921581453015125534047077379466863127828123800630473649038717747451515844169990351829946582936313174164042771386760054637560870444350444763209770624742816966609680920483241696083518185447172786864578141688290738805531131389629724210238699688784921742910992386619372993101014512791302436311983513783680740587570256134168665364582279304931403388612568641178432024573601658383488634430167008102535219221251239012608593039220385056948036727376658656003349713669588011671133873591653297482430718898352900996786689723699552021060018194882555257936237979285418334394499628623863270356298697076621067872369441511689820152078881853793136379501435923161291513117546154653612057142310091811252208718493287613916837487415608939675698282354684117292125501933821844478597971478352612889403857119732116718737934503426577241096753271728949229280071546038474813938191545482543357105878301530454474723185768521618629481371253424387991810981184897200286061660065189654579332304178501046691063938336535961834619110103376014132058103088833163793445190725432101275656117322920336179579457038197024131785028428029118051854540592321009184590704214923880302454771458419367457610209738981155135274434883872215384483678825263802355885124395718726472364200982468876389430611093999795003587620166735968635360370877064672719992919920352577808650598776642155592838153569063511562535431257822480723251674666502012738242183347543517738944483904135668212188026358500137747849980437434611251475975856247311281723275724849757811296509771637763282060661491876546630577899458584672899081125210778595324853058845950407078604048477346946494200502846041738928467679051084559709585681349423789516602261998590752113957153586182151422023306516997856972404415930824702721244094839038033789348484399444494700906431708443768934359972534544104637305947418864587505448569565422165140898812294956120930944279011373509165589922269328397321019749402753780949027960835783883964742044711087700581272792878163880643034241619700305357943248408088110876542828034525091469489153132266168104495210779353145920667775967485475373042085841658121915103115748684991243179656494148825817838561009129704176556851126386163522588654280817188298033340334175788890360219167573907350710097730537369039036386254300918169281260335084176016052346458756584459720322923147187167891199862043444719873662687211395420132810529323562881587406771991080384127319407202971046811149018465324895161714135244311135838690206793778497053645772932215437909040703733855799729521839112193864502480239724548649591320295170124676178785237119881614545650359846555384484284437514130107062817140983750903265052743540279237304480090571284586774375474890984233029823019288172085253048375860868164495541826664437386617122364354785344256671862074367330935758149693217614756124372593554532938427755248857882611123545630134209474267338143377394534351171726920854502697016417338990706905851280830306138865886369617799325177687681129229982385769463618404335951911381215842753563383597365747280800967077926593881329706782156602916634794965085498897133202707085004442572658168387170890440633136611909277607446284803756860991745334876671955908336875661834112844399156778000757609480814431304331294746116555030240802288541869425700028301117420849544417149974247847793389742543860172956389387009592861595573147499714826958428191806194675290258576725001563837798293560474252225492199696547309986900165146299441564555891490884015979520654312380790524141029121328138877990846655083254235894666634163831442481101057422158695218575905928390752390848366015752847360392489864324071274438261683269192370759380305928149876656893798106721420104657798638088930337465398392134836794270216607733175606498248070852780104964055422425600219314294797763358677155037435825631474358080687106833442193507873946924394741867661898466163577222860054352755294051866030405070166066593274591216812125873135856828687763152947781082737225895644291638415192485758388827764308094131696599634739770861321231409816627266282507013522150174068785108656021694696347657258508541762675548563998354660793643138621430371520772290468406668623361828620072724587384677276517660789293842191535712840563627869938278679694393830768365422060096777873398157613345543518898216375641857847864258352952188081727275268076515120037657582490612153760396278235230638161573834167818574713215253324215516087490755220174850036260952547230127104774143777592787306980561145310211745712053394729437835559362956664175879832686826173656852232786785879649196999334595783076252115654436004075097919358680962694434571700406692582351106553555184706590166225088160283411463514667219602489512393600789315873938782681638475621658693606219674991866024145469906405299634437335713030489627644346121844896929885111626723938072303226397892491039324567623231044810151231046882548056527641395667367584407981008606810469312248599478561984540946532999024988841416061434714384788566439530013104161844892427811435705569428610957607697473752764515179354827190441592481437171988695904347581300147669152532315951203205922383986956738243067358046485224379633951159355520461298405301625417802058945621836977406099978315788946840476008821352685950919965600344495725838449459087309311534781887692847351591626141507304431898656001128479500705636703451808567653143377969751047736679079548293153013183832045709226974308941487223235290825809259777393782012224953420244826284842518249057080139410346623080589993914783919618335911538865152087555846983167742967535862309907274919335900277791477095461794463928432441727738070420609207824674662733695815140913870603759161866536192780519377195264050886921307349473144590243395185020887917451674134813888886746246027241756673210387884512422636942940566744652817222891429784882537819321192964832150801215171733662230492708413600868399383362630530210965742556122915359331889680576615554365464392585389514101502179962823616808447020856149597494267326554569747191459074113589784489133579173847009100099913506489671892096707092100142120727491189680230607069984966791260380315507662492961449412413231761572164636343492916400787842635529931879117316711617652348934306147648723889726906273478503370998349652161794987978189454165162087106441102274237572108327300531433068239075154189180439692086246981339378109096050744696037798034145924489577821196511496191076716289235607232965692301948777852480060535324172071151565467224945599864200151328501848037000199466048774609324810505539353100908930672593027006171823037474796609451399586151388042891159228786248737164750034420942963809222631881585591641482256600775243270599926893179120959381268320164706905119898863070698121055508915273691245447545988145940804259778185386857327077274916489339983421758169901343882606404120289508929063940064281847987712073685016673674400521274514743207263794312064616774563201661160862923893848402330386052383079628132539098669422645100846736629825276527915005631807218416397978904427000279312906476698071864812093698514038030301097675795514563301194351070354556812913636081585695798010412054469422454387903857328169936640001218784877142646151869948589285135773591624026486029163353452864481981574692361202133555213534003276971466961612276877549451668002100813572386947853834187237645392295362780648243830877517035053662489319926733076791939125748088728555047593848900754299292004725661137408850373735502874126370532455192851903522653062795760665473831008641154472545570060396082493939975237900211230699382840412644613932784375244958733521092441026154184639123827984837484894516917321843697582983241691068555634035298661031849401817773706819336239517507107708064561992419202034558785519175339994181064779314236590571985326287979600926993293630953740730398278014915010982628052822060292897023398225206204585100663534027407782032880531267886700493308083916383768182105101296905982231422824343017226824710229704429649720903725556708000709074307181273233592074735476777723194107952031588675213889105149360252745429398121791023458383273471187891577464145178010938900240868207621633589618301521297707381318501472334393134016876257335530535714503490383975119323142744821506374442767302769148358742981580322809247832580797267356392728690884543049580458935738393726594277467502091663189057079976070610060622243289980910831687269208514979579366375548576996366769230800463248284640533964817192608855894370710652012581009015504468530373328538480746263545854501117386820282887719334991879978076184252332935021166085001730188033573486601860374458019432874244110487946275548642575782582790601239400350176371803526438168887222742796389181054147955386117835066220062982385477791442977201088729213601984252864211495744367344508288045647626637735504274228856540853844341774604643822231849041270679723131118184414245054174299202150258512485590910669508975993141640564245844104503702447351653509591538535436292929385179199096718005099693640220173114660990688144283108672814244971854165621439656431828902906744721807182873307450719794597619157426488136624287698454925269208024805930124215825468972462051284432148317165677038162035772708342009028256969374248659528424019749430583584258530358364072277843523480719381701724486217312132766756194338077149186310704807565880622100448142793253677322642475752359703199921847469273492144466394210635811457852527935130939672110454738308984462020516460904650877586741493794003183915984567028375413121049182318573587088618326189857523686590581227855335363865859631809969250616552740985555314550610147398787213015744774195286342954198563045100786751033764469512849912913115279756817067134329547309076065146554067588004840909559360900048040395093662786305879077256383210975353670203231050465300200639856618296088157606943728762402364972723293563793343642596092536540939696694552477866387965945729797113421979675358555970871268834190903576462471939028227996285888364825140800886020958879320364339496247572947433114783504155867916726761807379771052447031788709756662780360605916716168430154975623875944370117097699654904584112823304037296844644190979132412711000117324160837369735991364230698516916559646724978176023786720675969317831755010022883734222214030023312442266244319427687774780012672056577720037390531168778675453963081126667366162062115094798835887639225426651998071441522479066770013116925790383950121626820235145714220142537166753672887799724120521991533979657107867400060772585627117060992156484518480012565426290301531726724314134478541725774347064289212529083283815803850261927241786231983356698860774682754145469546783219456102465829905182266156795300428506870080311454931827898122593543070786219251660800326285086417161477669821568404377143017957386163724356688796886389028148983234831213344106344434696697842055600170086198450612760821481701420106437167495064337306095644421800090145599778973266226438687106503621921487633395082545575798842425969838822518306059419595594672423147234904644893206493291661650028007759177694075862034489142446697739047864567649165073286905820254784221958594972929671276998617307588086905445763123060240618152650893856152868011297539384836126312568813525087921628982705262403134705615151876429690715393941341963257718138312637552091292873526388902368852790098337791974352175119204643801700305733398709830964742792263367165458194962596811324530662233392587732379752968251701517338531299278609028342666089646531875903206014570965070516186576007017877378796314852752669269159745087462850631301580285717890777351881197905774693060743181996583039174453295655728209499524744821465881922277578749082795497185604894501034028417221027509470416990343556895098622385740856148715562161836368135383744502500104942916797572395100221528843323848953655809584564636339863360816425724070531274089340769995427565360155364577599648993908025231958723525300572377228421607677082794985383265233972968449243404142898639625533768451953854874116382036794994332241239272057146845467254812013651868028497569104199928880254635736607883684589379510288443349039892835417723532061942512538222827151240934200160522414715881376963709460394428128452572837982194211377026278069038171713231457479852245539296265963660191594957038966284227444306059171515569047907993596969932236941417979167118554758481732663868007217723457184894810271848535739607102457085560652938189937145679655649969002391662253700161703446442303511166507211715041521655534195081718507804306961285355441633524501810991851096036485873270931935780158742466642196472616702963681708387402828227097912898299928267002007084804402089079717971339119993921240559885802413014880155497889319525619486473906691735269526712064075784762121368351616825951554507412082952805123731446394354258310975122251625050313827164947830812733657943558870250333872122109119764565648539747972816644057759550553827652051462572620674546615524298781053069115281680475494411298820860600373254250739808246336355558748005913640772399473407729708360699733172237325861060236273243137992026268438694532757250793398908822118148881221998895312853806601042078902240512867885470587973202387464449269371068777248456229839335345373851063881288127409204343690089897251336324069665827154112965647632593500338065540871953836291059596779723516816688998012885873995186228488754702785380515349902672442150666862441165110199285628382173706634926124923205498993593759349581026867886525278335166722649660579931389452306341938541420557463741786487841215497797033365570536005761781494731091930977392769419173609207373062994083239156889157296942838438458756990424077705561621102570421513043684264295240422266148048274504264079389770513821083531899753348010918639622598330224866543202699346558209291713827831505650060172528125841050032225156306690871973657782887798105015848333591219570522166256284840195789042917317844493080914659901675758417674600451480985953195718970168314004723940031022767855106275099582142676178632560852013151841585916527585765687536743442132184082490232859893358101085651026110676674715012791625449622953192132265994453557536303075095999919917828004841122427946300644860385069448283963520034745393861594138216632307107836225684540871586936557948177436548812932540318528349114198132632806946000727098103120508310883643097823282732777796129243758051916722532915958216993852907479562052403594181077733169073444151284920110166810726441617511284874800892858135505901517272212870263545273907912307087856487230891632356161272288761455239720579064740195929329787189819772872349386807707002100885770894107216727645946998026359988483964050521748726791000496755204119425514989278781896952600061568736229612143485436544005189513289972311296282762706934779863645472257825555639626928244045589261874842323468090713490866463017208565860980936207749987420741358553899804780498891242881470456362328874811038717626901449173457964501117419119889116734346884583708986183395897476518121765892981047734867440514859608478717051385413720550741383030458480367558691692685018501471110359573480775386850421594007148183906821452740346680285891389698887905894603530149744284759759071127186867100268184008508068728358548242164481838357987154840044744469250535137748873783590647079339421368013815026902199608816731286468771093142505737157830500340085239311478003471106783929487310792146719694315693340522686718463219720523220743373886034812413494164139443500909643077699007718064109379759120419034223078189190889914400167696649600060488267811809368615735965726277191468682873669831125840341248099427461711802509003499852664550546788692817108025805536778785658574840187617358132714516294169713808726020482636535290652163217079506506772142330242237845982621580381760240009104472933494589135671572964974464968010483878832207497539472233739060662829970921806857960152765636986651001548198662324890600048888835726224981129948186190611449261108172554909668647557249619892998628994370738389135786020569205892517107926980792361166098822793339492145395035471965162192908313225448835369363364862719298742109714331615239916356858598190718328721214342686583978748604961214911535787233069840088701445955682703685424387377852766576988112970316818316618649527743570997122004024374394461900998536873090609577652058358719247997098748459709886851108291983384441551148663802998787393707807483973851231624848823514944118126344595582503406017866529548163908389240120525249412212264138853405320529314666489966315189955655329893606243362798830908877016429777001717793098014310935620554969317032979597412592089831937695961872364599692511812015164799968166554480054111276246052609890395618413951556277617766551740082330097079975793625271396759809972326319044355214560580667562516641861591419415050241779061182572404062523470290221450951374425065567553508931354025486690466268627617418228678884642221979626234209027456555214829181676525875553050241710598201639353785344557467908427017100903614844336397928034662388818463208912338670475580233791404090139265439415288750355825773547005984863320126464991473529391085328885929707663941665269061742828090363244043495295240019997700858460177374742083769442666166520140036098235773257658726906460956210533952192832149932145564586778395993766347640998252725633067711545676373953347010433385954259300355922949700801157444795152333963257098845939402908903250735598565933580778506188372384954889928419743023000402518826916312649990989861640629750362714212742125163526435685102325162144454390484615295690192413900130161031073467086325406050525035630822869641869525541748785894621194627327621750458172247750874703634884597656629323351767258034502342605463474793261908817518032292768353002495937218142395444614377818351190578525865810065391527434373687967909510140129292996107588130885742355636551377793929799485646282108619954437950601918824539141425102910553307537566964381833380806245308097408520013315365194595418921228020494338256630190700093858320424670159878818990898435955337926106253106907748368128914972041807132265659164516338006834587457632383623401111987196804221040472635664705156997703955265262416605133794701020612433274495544796909693904701967324609910438186270025305189882444850824913498716810200347926287545547526176437832201162126990102025490918609007212936594033656344574190177036754327948186372619042266239648599380822398931029493033974494351626849531961816139689465974249574679500006499912700044565269640692604012884938121251538307231544627243735114008365861804256861215523202724487834999561553179168699842661061212168384953381318233756199508282357849769351220414147319851739818949970723670170259512442380693234742152355790130286811861408413099296958634620909251153285900559306235463829424171634454806220693917347381937416143598907502030373361111735692664516760634974037212626042528397143231026376839106649350728504967679414280001297339509755887000200939799768547479868855896707674716109558852062870215102829988982830320346604594308172476165785535528776673960132406417911833645932966927829798610587913426824820713926285054964336756633639179760967955313221036221484585566187990482003171666221256538868141122177295160103104092002207263435147128746305435420006676819210355424835693034191666816259244574912322891898723424979433784139003138013902667876174337020218653698306531949352513174238275170514788620015647373160283243355855728789332841178786412862134401464213981285753853247253807477508381247128016746408152118174478231723253626462838308908279929506083660364916547294914773572539644481311499906377948618923183807088594263497131835740500243902002468331927546859200160280441729494479848329859906738649130416286179329309139566711500419564027657761586607920369172307045820226420431208898234401150306226792812360114242853482360374633098197840034333917622314473851540601918358711901471800894992442191171476372939737892325013316945801958012927325736670091802600949787574751475801897260194757643769387565992210372460157411944596985850451723678063921090202674148693782932026633842648265071140416974682757513080296991436478515502437375577324883337729697078102400804414304024115608648189484059117183515244171654987924440573157692940973762121077322381855863916077100696407458669736575611467895872139556150248365789518178200547638733722011080736137512355866651877529051527108325692762375713740010683121266823209217121131659607363956343334305901111912839885291692497443328932039369681920887538692584434818586506685478275263284941549657391222944917196837468397075336991675610674882108844936302515642583053300275558668687774260613233818265596653619352182313747347111944861522039646397386346545691926014934705557698365082115905527591953730823736048887373327494275672306731150011336963002346624512536614652489266389933317019070970230228744004758813075841806608165927212212635673980641640195402725808155743909868458121621998500836160690651395061334263054546255076824413357250240341194059469372140783090843264479286656601806720430594545460502498844510007186711151577555822818457840147952561396218844905981160122441267054554181306136584157271218448246572569365538233380070823691297972341239685682162747981408821395850499574608070529729111983261131670141055413122905487100341444029251129624381734317571780490836897829888015848351286733735094487221263722181820222887504552678529304505270436618913673611267203801572533466668401974802053490508289090784127613803376553897193419188112312339176096622376877093874512166330166991920599118734228799035873117207857170204241106413126580476717098037663084284066964900658141159133261735587587848372033223518584578992925226922804657755521398139193316914959677986521790829154545299299842581484580454797403804009774089319704144449902573523785195627183532853028411210437902934258140038229026397878244770127013679081129338316005886726407149862782442888810462246933744487053770433435802573012134977951584809599179798215912865436690128502995092089134335514547948497360569174926662406985665903051868729393518561472401215879326029782089044694699011075785859290244128712627956247827672185259238562023816096144088960021606592031176789309294981069069075766720534167359670991716882726102780928362880865484087782052641806985408817581564237017885534175584513685697000929348880242375193253858248606008044486469585995792469530043444124210650934879163699640936146203187229222097484888113235420809995095814574926669771659867056768891913973122360701957051868700064017252551000991895991862263543242289401678028266539064237743510373678511208313474305516146871946100941511812477629781787738386377272696209592635212119317783997192117189761671861082479005811905273212978253633207494770150704423148322080128247180972544737426017439369650961050086049085148957151811975177178095984047086247267392664928214836400868328266852605734629973148427987637531320686504610548233350375265578449620009000253300055724169321852966572716760103989946693023352112497129516427575436792967406812445154129553130918636759731670411728738940814216231939717383110953852673526091993581110358852791325478002285436697011972593771295454651481413603517951645249709359020484790379725531771331376552808985148340721510948269718250211917769490718182520623700138259851676394238313967140389289433328747835555535188124227482774531352421371099936491516811247839298362827842099332776287874792611039740608276870506835111795173320588569529190681407930444837998423661092396702115809447363456227575054910082570020549361575444564699916045277026300077112762251992746844648346952355630606479054392787231103745433797371823357800800530177611320647101436981802305661065181568506596339706161800527266055491664384902615300116696930999920610763730890992672234234930309256809673546509611513777057090703834951755207784738290460070285257804125377916164499698586220259154086061898814273679815324772289550620008495228845065732512187720468865054365299514742172032177661596935481303310891088198936432124520874094673699131732154341905977793645190152999371075106128303122421606034063382187968120588712568219114852638923338234332937715243232341160917636218058675879023479657512141140198112884991708541493115088532622443468779641491043342598655822173246053288162784039164623023963162360143020294667125044239760118548573773300517808935629014741650074407642007662790158085436056805714816665317088605974390558467864797655048153815770528139758800318650717928889107193834030547269926981819582553760418872010039566127873829112862089214297017103632750519755354085899199283288820689685801636302445972086068811016583461091213812537503522089828809315443084336849370871083865288071129394932034813454164589222352232943892935876021296894125671103513949981466613115553894390539844584498188379960652184041005816366129627215781269844480218810983388819360779328625914830205338081238084708667291200649857405624685793208260587296253740184176503304649187363369520770649268834738245799916717265171722964503527631982560058749831689508847195322649037924278645367569610141081703053109355683214955401491335552777453615391200475946785422673267671484672135913039150310139877433062520561700304493739306726237229737026137081572282616931911158570685993432217628394868620964684158642953940408286590781796815937222517159502289586259156053150898970701769575311765457378162117300954312677519672628140081084015876764309231410232860095271292683816884969837905580055792346979542637918959475247864477992895486541959928343775553611444396388121052822111902771701864402869083583364682214851321078023380746077486208483701333763302377678534670825483191466396277750017232367527152411007512494658494454428015022589097674531564350196523733127827406916071472610172858918061058953465476874047749762548468440647972089150736870081548132623884645531720506675577351357905088527360057896436458129663507360695790724033558063537077575635658986584133093293124427533630339599947083087495711990249517791553256643608539834668762184322690796069375996192049637853969808481796077053524174166903785355133093711554126558975728443116492862512986177597557343504463837718773198969866348079007399105838652837370681855352012914923208035613633827376424717138063018698105530444764697003649543882916359101452568085768897205945621055849496634085242560809225336885430131306717789440103687594311870211460504451414876200818648152805209729600993605048483554475354280748063646026626247423288473972144490777546002112474915951851895346428198438135229820965766705095305418135921429781464135514932086823543298278925526115129687762645219005206570235836256964493655251560157501223310307662555190068137145688035346628138280926248930562062266925980119889023995188751361963475210514996655200283216837323693131400176596323474452030046629063011641887465300809081041192909741420936823729341691320727889507929847575502265360864743038956688649064011380711845992641156084988261044378137875867672710099912637175590608154999362844840036341064048617260915915926713172955847864703862775428848256531342631965349057914185144732074378789663932134917888259717642159197383312821267726226167273197119724963176251642504229773299383161843379332845562849258768050903776716470563623856712267716232880568641107101963324246159126968665924147975099129802185787511323019143862235105406211744881699750486181730168510481403796290884293848111332697399643919712781942817779358210472967807809207843453178701679793801755571021480254586102774381736576950555997361473007924013728843596350938409014779972196749081090696064460944834845804223194257184146654379029448688214869753778707075478605029740085633510124304648551700204683944828122005048336834517712362997995768382202050606261249219235695266581936848413274693503772009641426261950688729745899762178593619193929551650839574063572014540659129755700499195750073478495127741367920670439414713712271332253601351682530119858526348483993169123147915977394688162663517360315314722667241638888579070901420110259053238603614855155627702439404240637339761993841318602427031174000023807230133374215438992983948475166741147439669476737363677621082971555321170480641761019811707786306344381215950654606428198087562190067514240226204750397549618000246269731578144206580545158210819120703141034406308108623227600325621661460665901180166346735843823663892124613028533277858050981233922577489437721691340098292096973929614641716997371904774165054174884458788898408143955621254178165486676588577480328922203464310353127835973749995346887009655313921679510219785919260416350204406282770026630107416955930536049407692175102159255065356169797660180201647414595651323504427479746488887158368256878356771288366407101686723033914764804770789321214032072773135891481259331266297417905343088761457066829362409976037433099477917386666095090059446594878862859039269860112314688106652403853933575617865934972104959275925134531661148437097468114895963368267854997223975118371663315416318411655190778171857642595837770047803282495830156614274812135027121670034798969003979980986823182209899216236004981565405478691358740439078979962708688102839848617744441734230192633106226428757814724963175339674285822940880459058609153772984084731789199793298942333546247111643116073279733689202240893314226807403254654410408440665017627676575572703627643722562820624573116537373510736176491519895981185574414765784079218193445963307152085409563353357925223371826154495373681542572061898310470414949999273311363912024152309404978137684127762731556230406254588298184968022236246166241282280239578588202103197599220361698154606613684294311417372248848940762011431304725641968017200677671529752647071865179590765623941794392819580505038359605745429095108495338468647023512313307687342928266405091579611051872293621208161293881354136894553483798132646690729288854626289612310051380598340117239637331823346383804110932092397974181539656887010846487884266034012562889089959066199522213942565794763290659517713657643586960680141055800512592931757588576296874535975009672592090098147103098219780509368096996202940358542523547921940034300830039689570391036283700893811231246728418831774607037132021449514348198204229616409044589043996264670081244254574710244961563394776946436451806336288877020699166735749952159567281258730872343939718892210555464577170222942367293341884698951821493220736769446934283647904596339794314007941945646531377529466720810739343544770358283143729065562652351832338826061704741617342950406235042007686113173152013155561178043707844516071619064734960031595139999522841524792254778755334680263284299979431777178224586220820898857442933224396136528779258310154366394297510127618885119756547588171985233202160989983965606198066246870739438005227523554613399543088235169738281646400438240316924890319910545182365537903014258069430733495030734039534943694852532015543874942380606878829817296905948800378605435754093573918763926907022629479806129538935691606311754431671475736267609582012397213580293364529156651049375899569174710739627000387835679382975590970599355401837130617668211204954040915158682324408392515978101235419370466451723538060168093587095960945564926249845138804711526597295007787391299142358241239780655991407615080437655545381161841819389320950284747312627491623453301711457419383809682085652744442318541007674391770130452793846084390572230909756845088593929758086915903002891937900988889452212510821168723764136417981557238596815605167189708876054142865187733586182935778621201234456932989411236564713553467114502609566710239494799363343449808126802270098173923693285892289635624993216586606411551653176003265343424065401881980110284343279710604295218017228056917092785925340512460442784397089862595393023254948334021108399293583473958611040055481872769100331755354466010771860899149051017331521538721575325771670046513720379730778415594401444254789458329489221302612657209879225457456389634501025279320122709117488602628020293209397553525129201301867280275846564560959100986567397955773233220217177947637657141547467275823529973523230196942391127066714598625192023944597431723246967483295139799969262344858683849428307001468560712902665736135465424721381014302886564363059588364818159941157648093800478476482079650464833917811482500870217946333739837593623217495088422897855479192801963489223483393685019697965700816806882060604318559517192598155699591659043505044941706383401623738686217090531496174509058234467417326082737746314123665641450376042662952359827820573209140674691862782212235290005514777041920218724286705000257924504513440968531945858552416834778076191939459625388857870649749307780298382491363114924325237875154084345432409890896658060896282528593767266885545032818407989152015551144509648073125704516069420420799760552034172871757097544194900190002242247936416709461505556109701071477481007261101505732796912842135884852121657591122120222895553264401839830816581458751262234445927986646857790625797812571676731052101381795265773034135758785651058395676557035425612404466879003593283859377899742342792065093730283191079214661483791583143444541199002084679015372835383863512817164488185020778660587636123087505716877844292060341689936446911095157080279529243960439407660202136679232144366988168744805482849567959994005439233569690149015858176169689132666228376991988634974692202920488681511612993884173298667692135814463505014946990536381968563886761758069903051898511948493201283080917710259654970644632070757014594669102170971521155874476374102534979276912575611143726615564291006407489896273970575820274076986320749847876105259672016020254827125904148861244100229830826473359383485063005444831896684637449510259848056400077243547431821851383553080439251549995667326239500159421381204461712828058537676362683753019000143298115131976950326355342773309421794431918278212380807620465618994838230050187596605913548022138007136399632069461348616510616600658646970104035243937451062201565679515380918536700168819826019992801601285843705905946218858803557238980732405280576965866203288270549454719746577210831795588893367843572015172699572442675169351609827496912749160342943829606198452733770564968395349158509185882411195927624794699715477319392240858602789305448865736785899456730954350322357230317296358546755480383959876567562966481810897153859627552269375393788364513914681253654605316035828967156804918028028210127980951563068149800197911658948643150366030337740283622478303218192943643963765333013231235547755794730893930027499407968910077236731755754020902245730605396355223641274069500098297308542135577334369906617997355393984574659579933737199719304574668684092397127575723566862284150117217378729151991674784563577721899241869784048522816984128675210400042149046633159399233671201949637526727998662052596995158202508532620720788816605118814123567578633403175959459944358638689339007850028464097757211899302463068079760705466214978059081607913711347543125406990566938368764101021024599267471106497882602094811182557700875002382185106839381782201593205588360565743681515266577717741400090482555057407624541563618021552581783986038356793171723365103188308899397294266059581897156401770007724119670951266701601148941455774218329983741760007267144211578745268310764381227333974663267974210610273037276841545211413820614080437993187194578068245115982160387369923565969299225259353926862420116719701393817421934938735242749404832352174849938655547659804461293499574653484160963568688302180642559970815564790438221327941632973551020005388282087103454488415271467277026161911995915708912572988332938993562232005571143432153951832281925761585891235192684302838421129478363535965502443381778842002250084459082306992658771346029495031218881430729771375226549423553134588841442366496110001641525739787816918871393007891036990284533642893887015799515311906194103573532992539750371955272635461683675312304557071516433407681356726053850067833358892181454564593112969733118059899577805236100529178587055757994056112218568521338941590704277164493253030003249172937832317196850242746941148359961038006627936363141220396845683541783196269388384292029779064827604689956044683318372677073905855029017481334906476294702524782999375963796108239050011074979810953742163717514792766248557522240975032167487725694538974517769231457968446397963605783486137917453103648654518883948106771720575824811958992609149914796130006215102011042427989726174551243137332779870081773528880565599879477697424081613969551208185546705019296966776296047657656959618906341819517908471933975646625489475329701883706302208469367284660388292685899098151898605528561889007020293926439223930392209879396735070339882870085734434210937192887278291038104774207007909675627632344747498989676237382575609264792299989695452571638261308289522304502397512574293285773870260507335451829428318113878055741268996265910541096767221103579589766401027364403046529175115282975087530083472396399748536829731305148298751247385434680855129804013265778969066500653589812447345743135719343382516004600937278265434861796463471137702426332607697192379612559967954245757603274679258378672900824881168858548809520729978292184119782695778527344112806679583899885478539426409387195371043421279465993393887214411090234791879285933552431937514678302701649891737460059107499983857744884854966561409221402061806114950406625435318830663125899680121632746847902733616463981238385072524840934342628139317967368987875376928395439437654618062216404945191889129595097736298590908592718776223239540781424213839898620665911801796359790439891229539969254648879321359856563590006739228848603414136857061568783494161735745269866686881108144706743910715727252875193895658660474540547962430516009205637382641308079857031711574064419846757330011191652367252740853785276339021390266477686002297150399479446695812855464202188686591411643621812228588787751452668088607896477942331298679039875160109204398896456922244616718501164080361383324880513517390386901747696638497745636028731955486143039823611272901744406487808477288174472403353611998833715156484081355816875150962193396854459839046580321795524570331376925303992956938594898447395818699199466901166080466344470631090498228667701446375653749847726115113819001159782965858012674447321080517144142318134774446638463550730610442652546282908278440228711757243944118981992063631377855196415993732735067892660420235048344531482227826299266876818120099757252313257035549651504017431968370954098603007714285446577859618360529068284200337024753310938499731683613936359225076052540044788532102959290206635394837707764579820660374372308368755593194216277527532659806297437639821949058726994885128614155756692716240145636662856700667786595101750344532742386775840634296836064828418689818449924644648236478448778790978227770272868120940829308268123622379002347694229132582227867948858728511491389726167751223889787598207305366659460293987071098024881350117246407466122320686901698320709515160697789926352835973263848333149691146066761466470165313991602729905741120861319228941496097769732342902459105566827714712958467904304989858497267134552672811965480303672067013933757816079789354500292886100971246302561089696783836735091583690919986654260986674645439517306399529292964674548834550172099292619519930693554763440713564634111294772494123666638228619931502025090635644164646720990846179991001250144380564999485634895928549779857190500735284340195303281283702134655318712005148749275682907385100470764232323009199032831953079266746784337676380663147951579716030505902540542535774422616170008487334183996580487861683851862429320074051677200373957584072622037911252376218402590185278938215076051258267257817025011434215378372131684412252830456924841390409075054262329271975292801652970645535570191077158702375225686986047726861235820539861446823113599200784276224608087176819652734886203641366825784005184059487876258265745909648559346612730983399029305505622960405202732808813519766535692643882893889403766362391453455136587918641260328077332341339889279930809583798488719081647420953623701977900395700967581545434339979960158707314809941023408024458026096412118515201817924985059675234014715427137405179587047122382713126604783176087351673924913407393781073362314654951570282376253685295182363988192425073060931575833127988068695385484080867319101419111630295083013645596356395945082183645027410907902583483308663171389405807818641275695332008508629648019434628379596442013238055161191931999907719904911441402014422159589151838768132999382748112501939619610431477015797914974040251569060598248503301757133233796439412738373916131635103541763709415308020142202049366355761420434742825792978516276668330679514925740728853266020418749298620865626866395265829162375812332052081939050873595104530890100231653631554750612028239793627466855071599143420066329520874423982722031258908576288903917577639900062415015880870858462185776904776049326218359201954074435273996213586605824553329061620723874527002523683996776952882199190930906576057068742117800585548967837976016132830315870944389138764811754705369327678511851666211710038290466422250938067001556770272024951491946545569742157633042551466979042190888337926731832682879472652457796943651032680247214908788938479746396015484694359948867711023251846605078054444235974685054986801460658699721313674595811143684438912429895939430304719259558605939952736658696322232313978670295156645509330881369848924408472139624918176113917318987246474411580279253872559287802655329419340583151382999866166695063001189352385265068363786858561424614699158081436310806972489578007779847785728695212681525132019414204491832525315633522019279629844361371686622796189104045437123618429745848223955094809636128292452060065509365483058394565755359214445257278517659471169602476965439558614665754040295276388493779359175672921861387115548637704176008604840909614513135845157071912640812048607916262305807133864400368572781585895907625858173222289500965753903440867282793672887801019717772313888340200617389919833361467212178411436899748687417078729083692908085383985063090562745999846870037371533570910883933492416541968422304779241982051323701172105112054479259965626920767311846487132003264461870536745285252510375255194933815180435789028713827904042504329522891056989160945408551587785291949538532182849786915131995885957630538751723329878194944221734985074999073607585780204627760145757312539213453969794324446102393183501182973702590727871740195868532561725262151722859407720352052860910819354057103184119058987045766984356649053231680983967683181287127483659374775543864015500474816977638857844429017912841907892998035280778727447649455257228141651353406504249349677639474201073889541915216491169917838096300480704601491438441477402617814784958382861796434624904102296763347412190560090203872305480934812573899948238282913210882014640366848561894428746431511027020544598460768054669723006711781826887011066067656547430285514756342827891199328778778259248789820849548769389632289473410516012936680426529319312788543402196057500615622053398361237232758188521521566314793836716036383403468093210625235747694503297190911754443772378877113236456833506794051468779913800120496366341032832074758359115305556551326623322176979532188388486442715812565893990781893735571951128304422855011670471400542971972373206869428178570903679670658460870617457242997183864966189526537246643507490809852371294613272486831936635965368810227024854650076814095421639196755960592571077562613542270782411942107880028130257862882106386413980317932147463955705883205761102247258227157261207900770495457878626978037262017758768249152369337038576586259044962834394117383666434917936900251835813753205578154661728960031547768024696512750422916510988514319827768871801902615886358920018976296892856763002309256839538714299451882837412192278571388335457924836235327271873896410742217484946218110960691110000990906962365605981964871949129844785312178348680669318967465805245415500020616491863045756598601826256993593865099497049429768649183129417101575869663984461163798762834947725099075444091125581999883086974303557914763870466456435657078513169925355337219427594921785058904432550682895404797061048992079697923328182680764998602824261773163144639541520948568617203109100758540524081416287362796562632444778599288698914937728317388759337991823129017291849071049489572947422258634600274861865365574138524068197995704610778408126375046596473607268766578005987302133478943423487914815742456055558882574067595844179932670855110044018033228342144575873075896717440328991698500885720760086328986792174368540627797725370683162993200155463318306761057621554230269482183000159905097747010791523113607416454128661363673283130091313742782840960568672637984318980885377007946113870877831596819777339897775092256744165270616007759767476509782059332659432093242597084524583942039054597088594159854914821153784502565011131229008398537244033850154558567110779489857474524528725591897449200452985309721251981410572759799888588050262230606906246569323447872770730786343920359462401279596244099682705129296382743798608498281433211035284430893910999622192433987801967901040297815169860504007803048959246264597640797084432887288348705747760283633188554936926927072468762329674506402703964864843849084616129762546205966420108026508618452123586912825519495826026837732241171603849232335861535894241756228712596417306178869404556718607255530227768011156358743266751279790245627210902670960260023071276708601567705769178200252005328194930678380024053587290210509576665010484132375545046516515218060037309758390199361960121958570626841502760404295810791168805836367734600492615248432041480944902338249511298886057296177118689566830148038561846119308419058187674950955620667354728836443085562780247936946952535974024476685618288579639431114725661803494365221507594883388050807206908657821250275580281050668673457633039733677903047978720335521716530436128209683218320778834685121568633593675427294257412310979111984321626610227745253945736885797879102668415036337674323201365336319428497514068535176549507738449358062128814488330509818508607916647327417634684626895232031163369966019201382073329771326350169992880009901510620366846144491906007351842626092430004311379403263339589959703838293760869678931057311620529976348497293791766711718861322011750822506922113999195869148514723865765961180733205754003354500473894042891020177556413433227831623065551753054625760917050876578966601831036671345320187039970417995159695695923667669074627994071980479572334273846907780588990244707298637591323252893461442133639979628664070528466329330410797473104959833520499520871762260010147835468293911334218759857836540336391398868572896528651103825290148985723322063885828833666632158739152894418091074919401418874114043833341384263063540956794665901182354909955150218076455986141646214814178860913118179457486769389241101891836230842552599385985181915833070474807888229537379354821068111120711386469811483073113833577869416730580490485913374014810751604694570743517652791324097743096205806372627029132960494044247445634761905240255018282518530515554386300282796549452979768187262463617750149290027985739899196686400895466748977563363368737161197802118510261592715022153823762729195587807372414399003166859371085073943601800689229348697273604011343442229077376821102993673659399769952018950888024453087770196598499597665871238595338324478279364100286172373896156490193663093284610985007948135929957897650913220573810163760040363325767181749339618045652048119784338864184697460497489336174860497069436677053595050060259956761787049000407433361236705150311331291216691685683566002814821569185943310947149973696804995192605883494474430536938723329575496599145603759113440648722234716020659460697730046659098093332342640282188406042322398111637992702142122189417471137980363727240419533764876655274190656904795514217921984709717427001722285468059569978539332578778548089920998555925648957626082200409577690761794417512287033536693922979964671240219658827266964648663717070661941270020982288194501258714029720527724079499928894642464403222502826033224402692460610571094716160905641196109700860540377404998001499323938972423965129446859223243863101526192070820031019492451406336804404893282189980642253529345272399633987579917019533870218028058257016589445214914636275870645446668722534699583071691962847415819862059288063399100213627186359714841297531146847124057807088461161274655166607116836326676266227595222076355031081113621664678477238502349859865514309607351273329760862879718835248443939852790162457515570554617781259156629756356829368666934770381748765818195710681661132924295839190842362619326663470476399825708644457772106404122059144761807886845495790336414267798714731986483457228959864150474909432857097176069957436664550928468095262590449480580997266961453583270468103965572274777064517605320498485033137458321257298671472762114977134215679709098445396669595350509053901601473922930935614451851665489129332542371161064301804670382660754372823852197103925386230590801585181241247591242262878389015469528234843451651528563807613902684318952562613409345896548655545860936457295778305580851379841743789626399384240564423230359264577457255553864845864262302100628423159513818828881987871974274160146388413713001270349495294963961766485309612443722442500412347724475528236684087886068864082110739641062885329250630071037039161536115639897938503067761749869692764304944583948180243141741854565083969039571934865319818538868847784928351808968650532858971595099986309873656751774440423594323817778312261567377751142960687060917509603985819610227704954606379471885150255277044246637981525393735161433139018410535102817646607416929663131370238752893411021543002780880040260656616072338195904670602732049437115595484205408814731192201273062595077520024097104564459347906477186839206043434353593029209513706115937172400326778709697134949347360280449652277304598773929503490161584300105699550967686620967500943868793578520945178092443702840133700175571074754190795641299401999063733534729636125969410249073368336825647703575472909679422620170142966903637966391468910901412152893478713493299136584459508101587440348746499240416164735064826260716893170211534828271610586401492270688857377101003741006417977069339434640389617973115511036645283710775904450681463926945468211057003439359185526425602413811495556073104201367563085426789339657122912041679099108468809001670539637003520743796201759860612035260548171535102283941956336489678141065322765821406374666629965412582904808406516416417464995224068167709212834876190163380750841421247595296387841961791106736464827759326826284346558508969599673741247191825745273302241864116221407270009379821077091330337288163744643532401443293604605449449897912136292722687042141067628424698670022136990493879203899116634546316328236734113524816565108588873602075576836066484050952597200173155762103150698835435000139474441911211748309368504097454100359434011493788607774994646641517157693156142570343432620080301033974537743307613090693300644326944909089563315217646429751719044864818885100477707419576254143639011320995413411003596834297231578027302367704548345622188432367163858947953090978009090886965695561285019264029687132337347267101919333082777906551349241101201264373111476250860883198600720120177208727722125400135226572368668452429810122621579005721116257321570828764266351505787109029355742510981399287990726315229490873962257406015348079634866390378670050049028220989911090018139312120979428665484969650131286990193271494454363128205200418859873368571669727666741296926091518797152075180387123504430241637720834333492214997106907909115172013623896459571807232860859657373362580541046128413644228149078741523938137043661986808125358735304497322378433155053790923099796799483829924225928658978312158681251926088941197363210526371822075677898731116266827459506223043812157014564097536652891126949852842327491456971559267443285782480536605571724057700583337614035429178310753781630602401534258142247183841049781778175233327715401991841741991590234926519017646765463646453448900663761477174154517306529047060305457705916880083586374510950029323748741374496193015104584568116354668599923122431908946234325248682050293655386226183295680571594482937784101968643083787072787722518905694789973886169884450265389094659617043293111874638598612059873175575375873456423818973076013657657381573215896444976684115743507650687133997169503446751494254641045973593908478365267248370114204587031456245581783248046521909104244229656504776360080189306340492542024224778491095251188581879265695227596138035168110984453015079144497008550497074734983595516412599821808605089814744088572721030460789245564017900103846030611860242982614164893969353302018392248530882920372044431477568522665026209292744454597480793666813257235185674227089959313407971924128626460342950833363946905017489736561974121171826551399245128844849944961112655153381142137688116212914181684001964861220605985939420905155059076148045640859215426987814536160537771922679236830474395406420643553258038793455865571802879866446774567445142198661542404413216498054052548972820458928610995042717273272057868951905471489831487903881064757533895417108446698597285156937934854792892030110132968784187451817699534970027258323836983740416917616162250867185002727564738198452248507225998830866356434381346592994255277042145146050728274248848301917791956910504970347659536497972263151040290627682650444354697123722886142310075138224927551336181669098160444433003823086799107256310582046656116651034625460107818825352469829400241601799473957036677604111948083262447633275184745139432164773839152821399421817609424709288576246048123418475885175697737471851234308796197986338744685527554374412803309408127780092862403306117309155998193115914582392543577893873205107032050612821124968611151021985548673455382020409121058093377071625127575328610706178130968414394042004981554438828652888322292997069929018482211796516482083439746050044763721880784036114654215827618038224056409686148930472550414549963447908086155304974109028226058176862034185248086041674827872115892610447032278158397970986576514185259641103632509799716380980222403846027822967682298641201407780507944594715532264807316192642197490999756931982668634849453268642991039182518276057026173598780396987694299093949519941814779012066274877716108920735572426078406921509397427372021565961342166333319933657894487394054175909506261426101271551297739847775425946919618740874795058052397351448348102823310837078490272571011478534616654850941280355905916639021023279813890335849804757265290090519231654749036176831248614266546798095757396277012005530478722520892897043201991653820067582475259431480040277575849418288023468477569761548625761187034134729188605474455396034447536341521179995299190425711817219997581826100950317877433247308756439058975226943493410103511307390500309820858372884518444533899563502198384798518270546166933465808296609134499035203094452909176876795211043043679438643392580274486518682903439150504995611102178336609774224908138140493480299024907585050640197543757972211610565402378606973281437145763189708910547921516969558443764092634595755170592296732986354327678964514242038522831966609651223564125440131445173420785012745589597127517855039770398812507277897237886460936954538602439070051456202562975798237180031095181945457002925960331526403783460491777769068768192458476016662172331134834800607059230728498589232635680273786959736140349508075666093547983299065715868059519177180809182951712734689778907940749957431740303445776087491670517955931076474146983582816849314386800659959622719510836514083638408867362478407204490248188961648922240842885828180468873057057135000861350440201486914016248720964890700177909458784757781030527249174094451330752260459109162486927580488290673738661380793448086391348360821712976691864687687553499223794457796562850490536960265012929637292474325878301598915756509443563330190340569382755928687331337048572335373289704341181938697414266519966937352797151988196158059830167000681090629890628355870528180973639199073519588487292362325446654312208046283354630083178287766777864794673079746190995994566291946412556232574465192987840478222652409052893291734386864273402309809702810909731727095522988433158559665279279817493257850790245793183273516750978576308763978381618078599283034945155589877198645659327275601537152341315408271628403731251980224046465917049077510021335377127829438805969067896496156813923212797737243166549280147121171663957478227135518507514028586811293086751915272021629173761772752224110511598023066656263020747466913160029333459007074690921889261721752822224968926683900738874891917997041545416175490505205828484165187660335491857162249902547213200420416162840488617724091167927081418580386435070403933419081691837405812607307103581043507488359432574015531598011792206201132017885286461490534280537637972041325781050959693939625793328494270189150698168855783497366371165769833599219662755074500391852677062326670470616408758600981503245299937569664114759078934702259517046964517425974525112267535738410364353990787013709994083481227845220394654726339915312234022471445573187798867840729488087891382159993654563247434588621348727144984506644779085037662498342065371656893758237279964110989373939434732287066856268345247065052252758405743450605875492277344266976828497265631460934113023055819592781891681897648236563883911699417528786805035119809415449229699912610737784408140503938957232749507215810576497289180552639689606566520168743031954374996152544734413220883870917538656022892838601866864510948621029465802686172575090042062484281872018124695285897985922061340399221688788804786946546919105477026958307463906395774445865333706364729419282956562586315320270307563399271747039255230666387929686914024790133080363524977339990124103781403581562120190541542017282052377935572612651153194485398721163149877373631143519933286233393100007507781537941885465709905506687995770723928545720636808785196735857009850178958665655500671471774763982649678101591203592648644556341402623108209974212450344942877481577394964782244574446955136615828369846962619691585080037512904865602982285105823300449045383655373815769049867584656282116700028970587763868536926998667995326764798030913817931021791377411127586600310765099930494633106930506826386487015583707717217212752594870121423827466740320497208046854316359125544280276509857670718028655601617870904592712141344608090339092788532410887677767798776059962001075456783165317177877965661471522222932985607566307437081832537083767941289804337356567681211871384408982693817947793252035598664873262804551412324401067004432105509738994112719799796542650653263858608657669273141181094555625668761402481622903411954646101646373206174076552287039994826162521229156661810716242802117667777166902216938744699989716307201379333364583485649256237492795403134197903011759097365842419646597120296313497840065947770603937594871336951280367302740165290595636002785796860120377172516793488144060801934882229782610571402645693012723106993108255237887032559702697053225602671253374298233572888778590088021923359778591447054950059906285178126360697512569142716451364258092493495638075336103453697203596611811956961636403964233092164677520162730851486091742778977920514683450696361969654162359066715940368498472275245722957431803971918514735238785725461353314488687523783404486428404382207645708734466740518602153114612778101837064696735547207280729284369605528755585745624277591534010603578945294612311946749527989722404363417247247737639988198415562929956419897481186389673123416992279081270820085977497467896127861874340069564968854994445592878107385997770151945986460915517400612273631792294274373854669004860381500012105371535406802143466136700882887579895046203641804922163461408433580810050295383174591229900328373624489504810380712068192811794424074308973992604202529702209317382376659921397530876400632249564686865518792330065072037442893326112394501300203380963430000959071331169561915548140551007588784300293286183145927502700234418757775977575568530067768041152993161240672637412556002316730177534085446900336424248954116820284943853700175381892035628713638475883980914510819022896495154086550398389907118074154094674238048051246129719531723551319090012536307343924987128046401871600802943288567196437630325453900808811002173878001732899933002916623546389556479622564263724560057259519553417367699524805233899667924960464720458637218029893358036003193470188444032498782207733796753154836003764742827212762919576042924942272699951011093160643025213278929223506579933240254423469777986509329689632980054633575927224493344848415484508311668725527075508747526702584049824743335259040514595153203760767266925982269249581904908570328371018648959915287863881718632503600796981308081852956291908383165404028346510880015806233913487005292071125107042792005283771184011460059310676873909659884544805563925817872405324641103066607213800864380920861340186753025673948828170858329059324763662379688945931491246052372965471218517169256968269635449565513076694600650866274260770586311765683243257913011802044196899184831173384853882577936788046643807592258897977180809129892179282809580617358587822629212517925849625429746399101560358331189370445038712790128003047938649313244351915342447453544387176908280384111183747300662589077874651527882002771832939851891437302559135839827593444836314797166495683146855168084503157020011499168132832146044026063757603439146949660711726529357276162307224662707403542992432331919458708475220734905324305299794097612324623291753961267165718021445521773493412874910045580436011030650337988564915816741241786114840436596368787387835098476850991017570281256388749471046615837433239666277680803391559136437606025276969396557255991369887501408080000808138951438861638016779325465892380573138749824658985266735779032193463135610821960861397339722917974087700066396895344038007693756186105463133726108832800894556460167030822774031942446902258344317113775652638670689829107391668748217132115646835887683880322372417632465834136559362155195813382838471367222279155248247528117641053385232183079565759662346706191945503018195052874308936273077382310684914453484076689940667946555411879670649039746471299229253056185998239633593305835204886533203796416171661267622983274454906585657081810143559312218991559426581825544947339811880119535084241428206647863892880621906262710443498546937506316495865769985363395197691116910439512036594242117364505673830558270580198131217409032054255031235975130629526627930910516587667660664119927598300686839805281612407437011531999874561156395329525905403831845263931358144384842730170117586632265505124997298771179235946308521685379484235765313439648315565973720074764652598911361500437498598881099245602306673141010156100380337288891149098114500836256427775661056410314774955769470474382166530850610331329976579977121945539949577936668980641570971008199806763406410119567893431328979726362849906911771920036268835438277744148233345894053776796800988916750682868198547427221827400872253063059775940192850721298749472220366875625975533098741232753823380541228120667602379616103515310739279673943537573009417254272732830537365932835694272185037471167773726743527132354700184137222709417025450493533448010662916247532938093459942267255448979138565845312772649297475477002307960438851385258696019170939913949486327925079341730112298210706576630676861235587103375541957384122761324873570673435134952229979968749277465837597872922885937849992339073673514939557774822700128664639861734302057044268852505904226354579265145449146540738061254983758133296777781638637853697113781930512251777306954582779081135047454841510806710602015616846472291962014901512576346109533731120523747854030469742718957045058996316380024049569207262936569496957065703489900348279954673650760847702091680737624951466388633778040258098047152302596326522208905226416486601264796519460535561140962153118099055147068203393960635437442700124246573181690200102755639103573910567188086333007802346297607162975468204791117027145680662007852884672875229061967501760461771781327553725324254631043974389038910691874711427711019536378069849740688556063522133394401878943025798589505372263252658965794211796455851318653460108350007859384695133520576301327790950733458451905587120140598821068115456587221982277904545781881305564293927564130969385373780836755547385029522882289627432518106020688344574537064635857412759862579269955095282249310234835419470122126776078626896864779341730011330970057239855359279049537729779876946691923726393468032541442805571080917743081626824593599592890471586546517518893309810439707947678809610475835849598800740381560677124218293010844248842046163003130999830175208043285171197195752638917941779347223736771202543291142265229252680578738096009905508758535046476703592677378437875094710418973801104805532580244077342037462952234032569068188500455543951534727450572900716915894867575154961278361232229522526510212266224363739731106025279223385563367451616459098322454044947797466386866896243233558793129876738525518674583259238656633506845881922758029698227155398694028648233517901514479914527961633706184107368560355909899078304232416998460508469396884039301473203749597594488396265541697018002732004903712467280011750875450702724192553847045635585398973063649224836706912519358920546416161696993462532808040448974544663776961445655156212366952552370332305834540364019732184625909007334400691020833413369016656358413907523936410516281348903016154761688790563150588986665285762910457312129860961772218107756867743139877047810671329126543579608304914822244874952059562872900839968464552539957882846170096654989272014307947919113352963617529114611788147916327045334315951020521311634505245123109709394441189112686083560515680256631765341815472034291990438244565703096162568044379363533723308436142159067347444100044475202289327412465149854796498798500646660552362869679542581858791104288287266944282779601453577387636304270917796449218680119352258804126738059357093599048558720060438451519467106476183128613826831543703252719839516930617650607644708424320529924482129253135790116349348425678708632039746144766184215379232820823814331834598611275344285575660041816492992863754677997065619888294377554749993137589734507904079672640872176258619935233485902964805653662009374827318793777488954834144499737595050233860839606498794670955076269822714599426780612155872248975626245277700006516472066011987515629839479950696593147104821673276984895130727824971895916007663619100839323891765471830666674074858653004692871582332870494609345933361939342198220216613210460228056563637229369429537320463806075502370237708145817620680033466713568277723660603744334993573992267749957054771815033508614041734087191731372095652104199020149737907620104575970106818672806405348083498648266370091199180906256494117120873655288790093411408384622919569333257388525515509964967486665988988572724017808022937199930127158880256873280286183109086787917903194536477825105648305150544974371426920962811617553417904284928047631972719269280288020311960911916256234611428367648391251296225210181700320517355248111308791717730877345549495628454266668751789094082170006625303396629407286170890573202758806416754340749649707106447531379583161433981384526859381308045381500035909182496955595781384007218506652374006727608303640224380768346635933383001200406661761643248553749855762103407907104254061289001313244612093542677010766404740693648573415902876510687741979769687526842337292519413489684422443413770869159441164336374268931186153719035081302083473813978814691098770748579111025187530017630847452356979414739276196812103812599832235632663966317078581107988280177971910847697453687535385056488987495484860608323478978972556053216631152044968291856559155255088927319892610536112758459002720815662911577679238653588662594212491744077116795934191766129906668775502953741348567090082317444946441789171890996209871504983569765707659160639369759632151662602238606301385224991176789584862533903204210869488647575844169263189249860586400016272697341729404608209714494378902164365304059830454403724340886872782314019959012588525031672939497213169735488773000741403971419861843285982217513381782754524137140864675474475756682720323866996951140830805250227086611551907097833299272456322056748650572176460963260176461285227422651083856590634650035719914194155221200190671760540247041353545870790515722763542917816445138728877334977052002900190717957550213640967831267599392077195298099981853089815566230762211529193755514649710794720906688259931286039824705639708495510264409593447345725770208646283159721533557305390721652681811396403389208855156290929418907286658927835808183564015349939510572095418244518773211437758871964546300494631106041332680197292245566317149920934802227217001982123749301589813909976951558830601548380583824100192228062729202107142024804155036997785200510931229072461646847529207112532134715085187395698180811330075638741081329687996551167430564754559333951661068792763972725490696972767864467884668628867426019770229276338709000708199789167849231104390614758742997140562288469736704417783109835372512999088374169590995683389462988160819090670140497618555536867152460646177773703648948909679996702846787396551428812202131387138577090492214648052459497184975756861682808601404417051773571702363511424632688266702975573538734496794975889652004760560504981427204961637575007768106229352938304537452081924788998783542572035137392064433776508988605864307019056216416402590815178528943461917157424107966410021348479184988210166027388455947805078640146596423441092553906842475382456390728133065018311341686178618715170203641324127999717676803178716113058682069207498389086808364700963740688728116285115560086188685673335271840918721739021478953709168478387102612209061029419873371981088423275791084548801332630924793436918541828026449017792750502936762531897432368718883489388931915850789249856100870220415648499782585079096571507688098245611239207520842816146800220101016402289685152652135755927008721586137136087857159462661133038168085042372725514734209137421186121738574017565299480867977502277014141699404488990556571985719922983369866651821459429850578920379398780780413016011889953147835484791808569869764683044671567070774729750711386466286589314850285740085980270934778929194368408418884689809304650988759300048650474473950646518391655240650608514886054867124379513051658406950965200475435495748474794785120352043896021338325816862752332056161395333258669656236410920727849136147967631169704477821102344959504922148903906802101320408174069946030566056913223230675559880713101509049499505659568257658632038069102250998533961972587288265286969532837170768080096633899354726250714484776727912899913524044224322079683926805270507835557730046083493658853634346973012702941828392565547238323652122215571778524213652739561203027400424596713617709240471215740546236451368952460089249730431607154211752696044219937832411492794369177607819767117755997541379312971203917134396668203422507381627743893148068691853088316646964705498385318487122614869847721257756239224068671711407950143241465994314370354643236644761133974148917198754708816107507106283329972668923377596166719243008578040864371243088106126134651680047357072965129490218809329573567272082651303442934691083419576024622578454832692298374241446403762834310952464934909844953255139167261969498214103838017870107854973689415851003558680564940500106113624510752779094963185867836102345212323702034134628976647712974035527416733403567617102332181715621077435037036755287559894396955254477995660793986665079178271943703159413025005859758977137555765337091792138387972096130216001242955970629054191060237602620924842798360814816388390599266037884708101226237839749778407706427151388956810510796254989097766715338402324022382193030684416397042378163925176041045926894750778966658706651652079563285254778891494072794553974101411059915746804791686944550016678305894870779394999046196151248289396155364085961414665623499751037335353751969797396775432039213021681589172364034078523609463011698839336053687882320424743680529544366083325315462743674991495002573422677938570367552962506215943598150328893279109433048344921514646694756484321367494007399748371050339940506305444710318007172931595992920831914107409611306789765374399552095716447342085535796737624525096829286022597412338562482586031878301687554111968742575656631182014454590950328339326496497375439854214254826569957129314087643119770384447643178545550112068337668722974306858978439625786037118566915266723855588697760967038362041301713196822735268754663688553002179992199232791362647649886235937211900366664689866949919188548158801072483144154123319152184195440389999100996518718171038792370683621781174517526650881362603544114722126014871508572403883828011672594591036707961060716077268313325968292336446600819781819400737656678411865505946269278107879902938527131870413962634530250642377042984098034921185009325851190455374835132326533244332894104919526168499713262789133430027152463258420916361839425478270858437051182033744705605604213266087004030127646109207863280080528512036407078775369947967421118179952640191012033524545048808141471776368637055208382409626707926411595544494745720869764916897755484749970464953789434658300652902677733967534462375932889598780616878094302876743959283829666945420428188545203774338508802147428880810180789616503505253614025095788788126790312275687613520634288992132169858702339656451872443457694614404153394233975215806093416019974728429972906329916144051575225956292260619135712909327141835597375274612765322423559380476247847781769316064870064358218489633591394749452842997748098160041576092372198109505595800564524514363553126061240052080587879748128102409644020827187987857431682852279202081497293144884200086506124894687942184902868240280447685962186063563788257307817930752910902291954660197846618105443800260619127113493992615870673337133016033451449605296611766513874790303479259654016099259274025306394204540166924617245071559354336768240004764350161101307819991887573491742484564963239010186932209157155696449528507418662841970921179078664041070424367837844604654723257337459311507978084563877077517658490805891659048399999020646367100489137615298713535400070559939059435795536533522273991590906136669389494931278845955330514777204051021457756558140083392236871870569444235261881097372475699183878094437141237670189817244265628258295341541239499865480632260841453369034297513093423076611557286859902685297054719408110641860523824392886758730608117743800179977508647451678877426363676369965093724736355365769113998541119856166371197911456559978116703909660263907778487433078662159883033891720926409956066501880169871559881915677182541759251069426094933208987468357200806735798021521143365213355219026322307761333667763869740553268801649883369258385908708548873793622286440695696448899683544801663487832268117467486235094168638663329839062488372483977122871236596987309771823403482734265844689821693862978486990405300739146558222805335873795463542733033257932413548427108719062646828528177519949209464285527840778910741371217844521733154193338900804582668108692467358026309988617777262431017204741005330411384122885435946225605658216702458499585549540373391766441839528962514790467635374354579327036528272573943117168671665229249144919944821338142345142711523408268174879588688183175097929823389397585284766664179271572653058432295201654049946965137881435460717459124267679018072076463804732800815785866199816501145138127391425356744390517243982201017965077025490581722194894029582506437625565386645394759897104598104020754136109263071434437742470614978752769457665181557021985580797367845031052656641659851794268932096580336812970430476278647180516043967615108727680813466749584421574709653872788782708160634177369103149521327820137096618472037256964568277731227887843069202899434304354534774498619083727401377284672553513377870205772611862113982169660046255040985085831180307927988611498860457891290870789517089388611571330379043072272484397681724577100914863215017380616471437023837328308576814222086545894893439954205632411259126756421502519048952120532348157924891323284954370852467371523027464285166397702092794977585842742227317990048641044272961247985369925012942372147129614140338513166962314459601416372866589059315556833145741833081513876044867113899874276528812665964467119029624020820154273779365738103804027938932509846253897245361128719101457672792386614536611015037752693386051167172483910565882850294295552640767151271225915115530651581682523814037859737897649982010520354435909931332808193399180874205395161371063413417269635432469606028707579486029082849655335906521300436008999967925128242958258441395343023736321469214737713477441546924894868001278132130877170658252057777819895065609550903033323035300700982067933290320556357307943910489299826029650967083907959859353305433630050016524249792434611119590697245128916991967157884185640036865744759213980083686349606290065348757964169119112993820910672728935078877238336526632244801011124942209502770321095500121721316870481830692506903388562713290009699072773829786139063971885379287282196324714417767225905314251228987925516787178776151446289953048151816288007503459569066495619176366588664087546271578959526481561395065085441701889098745328094041075015800767904188035608451368818756262509089556816303308452555905612891984927145245928966610494069604105125907653131814112829707902193887152597158994736232339576229382647208507354360500757358522564087621313851806410361754839371668045162188462913263417122793101408606807071472156938092192337751724731949897266610981917625001216493445192912034853911284686124438319788876422003806254611380623301125163274728267353166153309041208885134202270845987622944910277716549925405587402042480336617846399084802941336693325960593230244371543454846928932100970901661184131797821266077287858994281513515876272747889739985785345133528228382631688427219601681043339553253740290475656740460984636033819959780334084421717673583296730819568916095554117696159490540632058901517454560096753314814319510210549663338551020606257192944393859176864646756505124800294905035361403676016181611363517172243225726730465057810541492583248740001788720454953020072695242351601412843561362049946736361150047421917521914809917099861618490692025317057023578204391719987085649192104137307087349546524811425974801297602312794167503318377895471386240753140040378561555954997257314707560232891737293412870820245741004370034152668771074115586127263437270964302539211980606035086113577772313145522526726242790339042408391921294787813095396572291619001165487003912280265353740403277689838861046858935089551429580971500461005907837636565017414183145767105992012168273534398099969554710725686109682641910846170707860470797305716268643252660086339915107777110088620296019945183801197790413272515576474454872417057255835325621007518436027244050510307966540730828570772795366831925159008755134166532847893567365579727997197139597990838062104524653766126550401382819304988190385804191236176440895599734124256236114085109524412912898881106697307776418976160914681172101944207809685639237913541285452320733662175681332967805167878420822797004422470646165500967779715651815924846141352086241118958527098643402359522184726895633298590622723681147993498705292797890844283077961081398441857857954268730510508881995527272169512520646991834049848871370153940116670287436767787281560848785289529524135633380750018639637067079404743692917135459885296865465239254840230646695559880494576608425949366338080059645763243922625291881499594246705115813145445144128056399235879434794036620414855774819748268120055376313997856183290585478178839708876289059614389247502813521933902219865628626277387866736800466315563459372584793898185140315463933233154134811162494873331943221380623294881095401469667306943709682496163379122185381390080440238185069758212091602666565497490545863133043760418700073512128088539548011619547150040515499527152556291408415336660763216323916668998498287375064146864764712008572461818407217540897007423222668274533580876702827987238426866359318975481946242765996715523469030418028468158665190779407881360820141951836201946570899792725416786961665156539119688724300417559878253718290471542415349892473517597992895987779352768847921998899110766793581563758013324415607059238570252433727699093165582992152512405132751435264296793358715995232367015852324598651590705309873346403323226188892596425570101723907135774606557702537737656928006305662508725926478828291990954472715754023529975410935216741936254367089587345510604524711021634523279158255285042561036250290496663329065841071819689087544641288529208618933058126505083724167635352275029724680198301056816830272411163167630829722581617084596368554806519850756017822313276501404901720073992938979820618820257547727292677816431670956589213209917249965291762805332913335410197613876973395279253111021583441103016923326371121172192174212974302994894693406304134024475242780957440820621883131018964558300133620105118579100985754252151930299884667847877166057653230990277466427549276331007038051857643425109231757928507761720983713972015676070900687276819769481722225539372927124121168820346799813331107945390738764197053516351068255446181635546255382976450728098212029479121729386766100097168372621783249608669149896224909380309006864141013557722516137294109039667061267142600935680459114581477303236707235430353951797066225328517010250669519523840350004424667895792073451873906628963773978554887176568219093881988466010158823322064423148017150201360442296573299486537682928911635809855111725670187439511466185818442004568375775074241680775236385111503503002389504422024745228264863801762249997445229110158256372308159323681828931135079436992759537912649780139610784293088035161539578368992970497856698109678337719242975170296009398510049275472282807340552617966557818190725129127232481330371671529414611351526165995265285753302312797473543179682275235904317877197638683511620680234416151465777348656019981995128921644517274549254216790150432590903047512615477861438753287656185157390939744721711406952933458999908636268214647026648828226771329983500889497663355342041412289365955771689234365995136089631002274046715829877200616494462612422734151219017651684559638736301346288500876946989617203092788901828744961849465943385302719450902859741881279195574335532727681744819367051940421956458470406505793150482124496859585549843083535169284641608656365690890175244661849288045841727092421347514142963706123216312301518714682932859371415067673543866030516491613890520670436202491720043780209380221202721122092083880778059850775488866002999490248757592657252230836459816451183009624019166382656779599008969334293137944999149083936732122800508365345011207876040240346701964002268456443855080841659505065356247434912748750494944559741200307823424624370910719203001612914952276644163585837131837035204384963066172613685159507613751152868349850511764680338834887486163720333388578190219059684554478218473406682916635704854388889648220522484735804962238439074424879061383349037276698241930991593332026706070683656521433458975463002458682347891228196331794987997387649115616102952628185753694773919158067978541700938140060594748091867894736298179720116110504968124896044139887071106435116095219783846547715820231786558398182323864174196057643572396191263836690133573119288764277514286245115485326898709657367264001574276139670947784095419902625480255026957996076973805179876200586880309571935143260263223121296245008701933887754340525284636145716654943855880456712788773233676472361392465466880471049984707661261784413194737609912026925290335633729436154216202238379477640681380315593076696910480538922576012741443999131343562158056159161736308105756106180143314523759237270778474027752960195788573920031829936424947178136717691725630746781386622287049963123243194189883510598691327804984146801675680183267098800179752990757922684563322123771002135349446760914521074798373830537878833048787354883354696936838510179780912967233036047809791235919317473491277826534220252257816667952232500661017432973187583797318696697227236076084321307648240605008710917020314277283441251125704076396803924005659061853224784260264217479554579495691538634129642729767937368348155968179506472261644227828079232680864976011466716618715488128041510446180454769227245616444854223301376457033863927526969467197430103223586738663053720410532777678120609006684682009865321662595709147997066498782680525564293252033946934650377339838039657384442539311447497296961063070068476803670636486262765939919938498871739495638027353016445232718838976717700504397446518632302760632465931236665508961515211058295231667885743978643064029867833488634387908211734150005180947624376511082086740783231460437110984951207886360010476887702556866529420846084590597868515284281864861740960194983097113513758797419881741599461457658330232497479924214504411360211025388871924481195693908103070655473249560244649082571606585012203874028417459307194521409950750690197197071508929554852164752474736942455726307238273239821715534798827342617348538464131941376072483434788170306966415250083035508255374649708212778579425639375264552377782187683179395713881483883142216373981976761942150472664815383799391269443323217316283542671661746877126903030196501998125628053300211548125868901652468782907588008047331025084739595808837935025265830785776021984308637141575836900356920226627500443395635847473725060066260216100583198562143102351421087592125141225736041110387418223204767153408769845027150989816112760708215372628654318986620269871888753139169287344068112353167165400384843755302538589694236528255569380745592026172242904053275920337132942304435589616612764822877250996312299703465976858253875318364788629842631523679131865340340299255206249977487112110645619780370042514143504685648165326711583267080779475397047568164580408021938998311623385419243912980562882674174880907836292500149896378203556419445299166812588128303978508871694194004009616893439743398372820096626548761098592450207304119277564281806489830042368937012723616758647541214085804293459891264222234168113647762446448822109441458335014056956929172330972924972309632649472517401136768518268516420910856683900168572404022425305749525738476976867445016997692666886744721017196170466303023781978401062345146291993739286336414106371453145499446710429025742938094183223039443015585038912050720688980956181317134564735333498394554465394142049643501798820722298153509034012936069430489704460167652754769858874596570722488544251718874873789404915072170433879851075504261070819537791914744742112619888689410453944176073395092031131726423008823034392877113382568712161240191876194063872015712199865218124773015267136256031035187044838962932284435118465103594413587186474308953089951220826685694537759986926445537611896929764201395669697606777088225532956606828498282484045770951895813081628876531782209045767542622367610858603105464223759827814908620749114378558931789303247942001097628736720740558503247959414707637585060856820331482755421297867507211401122608253425295590083800896088915126705655017236444845793358954476180661965555764654039908012146857159986170064236414730786126050163609239732255141333067976862009270658088482225957536658614350199950076159355967530081016874074680911786337296824769196881164041171011289615725178207303472837596856243377775298951766253913468516428432663496730273372617424557779800550959804787265972164073171636599055687130085904522097200417898606130509662586820450950789184917158290584891778761737315512396961352142219043980036789139085408577808461243021162758268468267228101798943027433110044462470668407147808756978280935007154524053598420185499971718320539135724213651461357999692668159739469119506710042415777886120219304841902602458974601987402283749066303908604041859865112203175785278071253112482065219775995045736972249480778801963866991846880735247430327825100944686872651386898451719873794421039698435312861448144337270138521330457457424764348680328913015642914148693885136879879665518053451913508035424775893054735869984895149269479165708481602314096863020605469966953684143507379630497063821912452086999036139651438302009448484185899048851839735534939520925147532987676422143352048430737163119397327499515881751260973004281675632914161587469647024132817251232839722823269703297352307414922463483865053856978598305426177255583670088600639240247770786550690927259072503461116510379947945102147237928487851182372991632675600049223620648517887331444969312869860102382530777087887540367781633627685011620561048977506912662820611796005346481416525638942610238160250515138048736238425289953495614908174231132621152574608722805874504102186351327620549853286052324903208009022634087047753086907413768342018637630387294586601695188493946596328382045432150613835502463210475674162003523231369798339118613971838811828727921467465571015727346914366017613778789002158898272474796884822476726454626098796269063712026722297988837166522785117308091618622702742485818382360101151396703216173285225402749539164113369769207378432911973659471240579752815364408669900489611497575540156582556166974822825708978876343685764633765041542098309584744231837506947382309446018105675573662377967274241210874136054479304558063149370983795912911277862874001799819071839007928484042123394046175224599073795156815162626458973409168021084119815100598793230835527549363358064797685627062160101799219619459959323391631181480246468310470965737811350329813964211071515407654063692481356862847505194712683895584611887526060087570677152757774331022403686786290771556706205091471278802502742220782570700337530805080203554173306074721276283554079660968225893650217964856005165381519862607207841400316283829622862250937450800874459642801642775974324179683122486129372362331319579863054378900027817972811304218660838639733399049623542483959875239221670587189332686131659162042722246554378071719583837544348584227679466309769690757208082992033324602006119549981045453827625601749335669929802528750289016492539298861101558811676533628673936934759932260168084508704138427860348677286709817405327886869470929081919917622023509507323186767592481335353456051579767433154407773586307262049508292578757806544873582727996001927277580301043377330883128513229795674848173345884401630669434441293761576102832861532165520744644551618908350354534986178411868411885562372846612675168452211622570488369275871318440849539507818302714189932084797694786888939090543682312766821769099879000818867137694213075610286483463476297989385642866487238423865519913369508597306404474951197348022750043707660514199347167320470648591965791013516101142811345424148950666536333231810625033139298038479697286229767418652218834277624079261840883805277141061351234418970514428910910037067406073906558456264111498489246537661763552015297398427201663544287380288913779512511895455760294912592467920202924875219400323811941895834391003356280111191193417065600522615644480021034488376739987188127202062001637289036046405346681555789056912740684122060757048150977435368455320206443855905374012613210032233612963045745613308861579136091347502793724287543185350653281730809187620802452840074903694182417591068326730137062954468343534235551471543135508563264190749666631759718333968790398320875483076786872439557678917901237864074086264792384542415932313056037161917029265470581312888508305358152718133218974564135508918349487241114330199221635464046591352539273783787137684175761664179371961837106619536876629857039706395789248337552213293266643101536226544030326601144642518305144480927728292276974580875804058405502595915942255799406862407939952205313377431720632343103968995573319269485054116729007402620055751712215132602154896144680185631138468312544851551352085263448465868560685152991501851618953770825205692565767311488469220858410737853036308215680341696641192300527729017493639513343232555027114827823845500179570853558522651024021114715934044222466851524918694229664478527514155717506570180129047571545642992759664339056478639936055215870761374203927195243902452326167604854617219335854821778767002577275302043525953410939003881624295094306730515997203155075445837678334710289695162792899819339672964588929019101311713766977301579842862024204340989422214998877096867660458113281156956617706992768782913137484199992757851766896782786972998512076826366287735757996611540935500877344800460062869621570241344104265292211158726808808482598593165000341605570775309058090791053694320112674368997598028578577748126638193067786234820919742295241811801022020271755642293021963667933059565270714450755565592916518820990344239418053232405169547009252488430391189191350330773738290742319083032128025997539456732906142031394832490506701406225506346203808148859229641726355534643285358569414314895207856440941211872205357961181072204072827937694632874325591750531651168836259251034904169494847230772420434804674388575914365364062628156146943716379641374847106872314744650162943620767171853394042137602866338904242948794821882565343635501968161162642687350150645035726096634967122762620037613835706712703843730660566592973645869189483844187030542988580208751407902496017710137513161009911482872939191931918127417494169804835729365800945815098717952618743175276967069633602975418112600761569600608686613345798948641058091302001745067340850797530595835031739240298946139888295003447337162833414952607632951598666826824994670008516612049396623053440936649716282755137108757896691097777792588560736400766777260748472656949448123647735703369736845780458508887967626410321657163274411628415213926420498848361996014588170446980644860108161224563699765178342611938312857698848120208680891586066811848893213681012202431847152528220026620598652964526392603254665666229600684325580977111229022874066022761215957703107326412799475673655352371516218957422349149725276065601888003153441114473141445862452218900011133826901629623213302070136114770675070809871469710799222651180183376081341769618792486717289009583466887235607920584206793615298119340250366196508750687832332485391851444796873324122306512198541497118560027365645581767654928292483394130464565782828375454682810356318010174032456311559663206052706257129562969983598092565262138196360918127300259329444581313862704811587581388269156529922506752886309053418241234692441103083769275156392213362906350879615451339454156969125538790811825292682776238756450024059355570456336194450200317621695016248141446259755293973254816602713883699429120086324854765878105235650590533352541989390868438081943500864252754881112905801447147507848209643290687571211308060711626530162620133085050994270863857972715950995489836044641518040109526136438674692467897894924373467120399952279960005766440324541425986319869655791864392277572127392045092040469230978978016836305710176808548576778778215332843574027161543459193208788836176168946190072210886993194794503376187260954937624892722397410334751424665823248679350171801839950622793241046757016396337895861289405757420014708474212682282180150076347181807152089784517530393498650195520424987415115462001718821683886817252705183255325331398239040637885296463099702533331691831800014059460640902269698593809694983575857986781939427109391234718999005612383620236352511524680792545743024322444416976867380621939178837923742676199911646976113398675405723475265731779054914573444180776532229501273524710571899385557602600009205723019945637450672722253493661957030944478090416597017963471218497514339939725121805123475825022228625094415283929821968263282096426056986370150213175492365541701114809887986553109366593289082016663290865479565398533099461575024775723158960715964149973047202070307741636148619692799178963835696824795278043890763330711879172776777455505608636209932729222337865527038269934394772169588399929356019384405325992831977596224731081752273014664939910120790268943652253945089381221253370941961512726273884025790783733958671855313098381286821348948174591542640698337639238171186004934139879155688337929326188284364481197233379810700424664113897176236388636891201990775447216673081717459426537343279602251003909700280029033378583743185804421533903889898615409834883597783627584833091582400351631112457869234313386345288113794993686415026754059088775481069979850170849811548484876841365529946584526194070082659396376857654757685515749527361403462146864101265919787103663652328860942038050952712565968345729817405899327942308034660053475756454151205294223156303553166153487100563731371906788931281372460401571452840080934406275002259227293101082364867594254234579857164358902877288451107265069980587869136520480407619360517817773583171897374941922672534992122948530715464503372217816715940170574987282098708981936074523630841074098078198458013452331956567898107326558256744629307631885829206214631549283614680440968019985607098089684872235709123893368137970111274702043554070905164583262479715977248934172759147560992089206955067110801877069533013877653304556079825621737376992822829615356317212081301800126065039085507673693743229390477677381594718166546553287132919159841446675150425988997616712034462861560518905104238445828565948688088562705261855686688519593069704529771707428136353158529518839076021264470013784354541438266047550401077039979585823602297044492067273936577727691872414698882960511486978351607941821493846420190417704068434277387747655975307551538748803096741805209264084293193114083307095087680282595742635378495158621750621287202271916176480708601380429695320415754053433557173313116891470003584189077163176493600022253458320954645375134774856929032017141802796646491785725896486327256291009383904996996857344788064570567022363070186635149823975827847304360289216301021049999796997346493771036095117221379110315201234236908750585529448722634349226577604136567190229548057093028498937645798803929941666437119216167593649185642003695679131360357984172731941940102049034017847845667355526241279570399421728153733110327830708056741197466794409380274527343527842272121290474215452868055564921895611954886765170246488008028849698302457281375780833559747778530600310559991752349243294573227300357460128011368706956107312019745777417598225109278460461320375932960394124220357341307612895929911439482554130565694830456253525103965783604751830086979589691556544938690192826334451903620923411944165234727285267253188976582819034975984208202534875506878331844177077687711392290051812181314512630069141827208553743195322128303181184342147947700002813652076158700100633782677638134154403177694243223713005903762794236487330753479995699891371163244470654134602745103696479731273946685942395677699528043729459587038062952491267602346850019494218354653007489128209395127147010068236496737605569613151162737400264249227580685370285632959515149396207024764038234976864162501443954673708709024950111767098980603743633706256817569763138376493857910189106930704805879627296555672418815810484770154893166486770198549598383689498658505928845558494336067411848827588624111404993192263809419494068326080699642461264017342411186905330761580159002903423757298582922299547714452744296876148482276595032285737167701218985011179488926462035283561332081394251231910550589670627095299600403026188400670603109254625491211452348794291230494984002734382627430630526079315022344684687298589347026866235337130144066830734083535859013869280727838126511988764421189909223733369573508076961773051108175918167875368712698016227551016600340649904279594662577548691112015076325117014233802954657681103090289129443555715530129545302022874457929378650105340799974138131454314360178057930621886515693286936261472636136803034149500239904763150410010556574756691617262521480370096446833909743773830673136510505233533754837759399465463187066782021191927280591318436382065228193544878732653890183173404392616293663556719100679140748792565337647281737432365646088519364858796157605159697940762469467188350602891891329442416667571428288412640982935093849096879448921456367628034158784251449368010798185173822089743615713737501245258878494103134001983823167301663792230845483626367497450781896050729970290805656546936089111353064772356747140751975800509610427981785696403043566432503643420545356184773784877800967078308800538982734049105968411973821400750831148692639433164274081774161994420699813291648949342547190642179550671517128763376444406503557455655904524734446253901654679625138222766954317195351513886204616401699941488152139170284000560955884399111577996332474542535787429166247229003342336455383629404955543277116781158331478123835702970325747139584356294596163441093679385900286932970496727805397550737210451437561970045047615493378864037542858687611283958606015160165759569204523407244111820396355902184368568399863315338837532368529663119633784341725897366437567458571396965404686369909822357298288139925675597467798012566611563449412138225924130789373965458913397517421078454520094308239916597267151878564262641585671384582079804701499549291651305053562798709464991009804658310547996830491691208502241302650299439609653276808674174591791118665927235792799517126716275541214744098935913653713658028909662322511752430844438426649512478458710178193221919188724142234167868033593260814216198206324016590095054599005684234907724110996777732889579970532481982414609196880572292734584375634063856307930073332462055438433121124017859300112718192184630068453701720831447705219209886722481410440212578126856068561988169956394679657665192650365268678963437776187691955394227060962836512968276338967374388831532171220208848798289096093654362995598944237557829304285029339316262254031642371466378185428505773776652642605040619880959016656155407078256997578208744108619295007804647551091321801844203810214776367840343726656110807901620613424089102847916019701832244047579955681289411636893953059102005120020225888293941466267276811692818507528665134551041791433175379252172463067352436693204602302490801172132296092999445678419756611989379022624431943478642785157977262172004596256043956773926820947532808491561146975979850284561786624400840729667485495148876208681604754855690505654889846846640498728955269480181935257954400776728939218015860893088239730881974576480149968873834832820554365317130225369235820640764657267630181178482305238679726587118491995132851568843891637596409266259778278525275722991111162063603534198127849678590089419781962320313560927835834974709133864320617481502966954180208753191048495096444781609122934508134564564759527258322231328944270747966659795543470219014672128684133898773541190030350777732560049517916650070083954933859311063067886630922938007702651109577530976133256981921427736969611808554481007921817320708806589882803052535178244528180608276317827497986827721022581839657737093059161895014531421915800181923891888232344197817350275684305351157653386163045923916347279961556929977547083911378809698786614626175819785814333265963327136982707430087796201672792845118094738683059148584194680071392888478358566811573227282845371942453455176569016251500244138296588075793309221235877883055762545745013920736176592970578271133995687897675821973490657344402822767045666339069864422298735896068776581075163422475366006941793119949256392561517841304440998161149109297148732015229221162846477556416845848065577010094380848258472854368519611229074620899841926428579489439232145019319493303612276061288516109075294055474005258582982315736132453165237058693630735287987138114522431356295059261782631047287438284062030531454295687331577918859360411869120449977967008180891473838257434544738087589420020240287831619947758259503707486289584586523190746585651914235745876306847869304390174498831579902613351229245595579242464468155627793386645191460685533451042615382696905284226136415023757982762206713205735139881331998143619733793481634713057228818485735269269447788349272141292897697857130762156415043843148560101217488870490510668075832989337065829511195318796151610498309289049318166054708452783895203653816480187071564575234498080678528371601667031337958841840955812022417972650671135281498155988156672463950092381457209296957376083283635814384408995865261941206245532653998908255514520358659215188241507355252374194205236326641498938487062241757732530799067155357640196956256399610813250937959839278315055992280112420567513879910248036758764544939793304374055624268604888811682226636393699270905781350593070183741729371935840675575277266788824268866267934028025847673706957212492502764671501926095847795252337046296435929455185996605949556080377077412223806199455117205234241662953149180448988513391480434295469723610184792475638993891555259645648607141790863084980697800963292095660016163353248757544498441533660333648385614668082609075525857338320612132327796785169596739690457379686442150557746768283754658688588544308260895220682215564302860614949305942744427443004226230837612021059155480183476809092833450609855991149989937367791389255906682520356913422825160842126632678391481706414771355451650734939609572241917051047235432805529560117363907426565795382901200720765118335232598757339922895574452284528227679152977077058655218315274880770559281256059927009972176316788550447181914464714790838462981547525802404760150114190235562919730629295283639259025748095075888352779826273869262950218659452159971033953207621288016997211338827038939305638503453847167320203308819010532596577159498153161873322261887956495850559064107767295356103211157150039951430557220909449471141022801299409930328655342445926803139963559718871122231895196472333098513705528166510093204029980646034666468189174778591186177241439048164356183111615219037662775941024768707514751737035752646226431506822752609219892284442050984264294364714542867099600186028812459590035495789294746447210455547703131102342052458845157811420507658459191764720572100960455592963639788842538842244697558614560130076817142669240211200986084095331595769100320343940474610507589217794705303330976125520268261955203115239143296922373976083320009116484023460820819914564542804850276470792985258604697269654300953946194437981546725278113020623146909112348125555312111426426277078857027922850840875599667628068916389386134585136593146284556393654318018145609910564877572665668805051723758756068853607330385372134969399103145968393583744942947982294830215884430492430943727859141547165085155383781661443889855909206472013583887819310707305546730239261384521348625415518788222684941904330496659330711994674877141086588352031355579865365661875994617730583669662025142934249114937400026148069132410220387155838750724538711435709915747898368304155403724233112241482693284779154934305637161862499061933735512778693860763217930306846291477836548533654569171130262239419212127400765807832867476525897978974925301788278818320840785665886570115605581972129249308161965123194584047574769006792070667678994376540119384413825816372358853376326282990292793881549135361642592275151286142514651601710765165282843088801806354779528651683242238527888700570489975043922099248982101599579894683816941070970890192584010916986346934569883202297954614461360454675295560260321612389093788284718765382042742016017774083657591055867140836806964183087323520013466752584594991537761245639770138087672350520440423826043365235316947582823876549325940277393112510651340537983425137293460612864245115353582130293012723897296633267020419686023715488907382325223863934140531923182425320470012129541225657332005103963715448540862762687212180818446438362000923156821184559538238376291480332854843276641008050846509863400009293956406180297306516067599034900678067590063040815762422003503806433305841090075373371536468307302650247062742201076886202282431846761407743453911147532596914260499173950473509691908610860340833831305933939991553683450210208325261595104447437251928583706814553920762237029418922461153844123362384817676932587471913402990253803996938296597461044286597004350125160250597111761980843485271242037679263902471102001832445201674906772946243834138246857528599829408938870760440208457336379194897585906282361956748616191607602212639874789053146206918565414096816853883475725580218379641910669290508719499933042671821597213752345689004859224946153791368814978780626419495094030664161141435672564375587706425493053860114933545834101290892454045845856426963215973593423483354395908969757689738909676754548269427731523056607413601134174197270583882083488075267266485494276199605407112209905497885281604086829710724419518249721685447136262787307065684876582866486902144385876379386639068474473989045387139965042211533540127161912363967381004251590657833328400861562183153506594741581093701079604748867053188182579747835865927424936960086227255323163697451355499971973626824315083842217366415045176137044443131006799065238532937887689885260985435660026967355564942404885859058090005861392048950624703069952282527191138066750300596262237278644761827198674967042909821315360855090819981422648073419461885176556575914112484629671145055814812456448993806717708202879116429806048347692450511301230403054684177055345580406945251575018885836667685818735736159728124672996454669656498406146258272577519222495289699971831927259913625161075109412982605272606934485839870875603131415743593352162797564306696156382098133337929807042068944569570133985228228164960346792776007152093367992196900538114862882004902926692015789740711893618697728380366018583284479403471581790817914487339462170532123709230300148422239962383657866052953630584251602821252227783646758327946516805045638451036920395135124015060934839972601196880365585229243611278138249761017257548441253957691330453313649069059290404261214867904380624634279153782006537660334963196055742706175413895852122018858819346407179368641887405363710999222718296035235899143163962593403873288327986848201828924978200788390484626206508099740227532383395387171963972622057635735783235531144478465677775415299885463112534147636775504014439905422975050984062846339041797505444292420761415498748901414480297538247312568121579367689552451048716186073179732525057803481828347351457810122439760672385434701333776528809579261932834921436663788744229339139654578879078217184246349031785352887189410274423795608309894002753276247924812806210878091292799583447359536399521278005144563584698265582648789099371282614032622685811050372283846351798836496996666305209333612224914086021417278383162318586998243586163176644457640486481797070737999827948967839175525670899969240258611874871770779881377385664678095910432391845511571966562190986141329878193775352242520951855448895160480961108931601335447544216180745009750152089313253047770906209377963650172515071763354447229252130173149464530170497653965315834567047464408772280023502782411221690030386003257375753227383794549672096597702276516527099821601340709068971652928701572132713628696816391202384910132137901459084345452940618596503510431091503566396808889251773784425557483575060974096379514199204494002057004045792983282933089743026844344126848522766053321869853428195334405381792155499541624699493629710537022577393616493436178167291020383219759692460078387603442434191361322224750890243579144808942655960226990660467351333697486137836147677309234809668796496575663131090763339088577817229615068591060777180895541179514608094038729350805226422553430504588649680659684958772662561500778718420236241833159207223505024822459150536964955425285815489198827138927288216009949304870474714640747515060383750562815188319414821002148655111902938459815449692617584717149079697869487784978854053508282367283750316190914386198063445645293323176014869831403168104710006721897288104063934758551020165157994584888831015754053061957553084929318995814646486132238807841733554966619041337250427478695759064585639713450736578903162898207580019756499270510024971112062889676453265235393998509045650598355733094568872586197823465707159811662501369585981745369366092884643172221302296294249740236251691280723424106882580031791562015221437535260335725906921038903328623466508442998932205701017178060284988417468626280962190164758740037497225785216254623960093533736059343107454967615281757799864313172932653291370245196479867093858336891778775555078004721341979176452878176170088504159566370552270313895284091912027647168685274138454889329028797110617915424061864875730340868591244236466143081342711949906650692797269415890646005846656285781325763819585106487954665162743130051677678115282346907399358186782364706152642221363120701311915476704345984093756705995100378297891289333453649683186377499146765008997035439453733517331886577362671357165255294088946914630670392220413729272659484112324344203082459743029712154584559818969447258387498147226430312282517031800492520138694133820660701642113832280763043777433952780627124682397885219500028154991582501660251983279063682362446692032691737818815787693044025247137442004398823186068712041621391388369668009704121964615741267662191899543645164251926477865341999732951531500753543389381589925319854544446533332721307974281359311094637055623924522764357215583682578852862711388023279778457518993934161792265325366059299368293934048276815092588229278135666762872405219196207267630700035413206969418320011491318378285457007723186242936730366456859291849019410122436603661877846518785359937101676659948740649802304647377073499612897000455646500438904293325893168412303478921085312484656355441367922695388274045586590993126935056614691614093793301434530813640045152968814882171304690882519385107910526076235883011098166754947187191943374429951067668774149598141587641195743989618470726148097312486384019557817471879798849835643321084551720691609226113503302697790873681441083729409717126550981419853934563908032223247756994690047532918158726210037115728819684159991564777529348905624222744209237667323616917159183743948127192816837549467539693154848218491009968948558292004537942647470755233183822707090550437370806727825619477881029348710328714648469644771146750965351373447244530023063963738804509934277287908128420647158325865947527349262726465934328963738695459086572257800265754919461232251195650313215119249501108057876033682016391206185467889167132018747455447143273009115480483854450668027627741482363603483837060404971499488955827062824676195510624820850828527588456783912047279926572948814370388553517096774718841464067026737217516825246084610633183837261162507301656270025399967750265333078103948242557222692173157344082721339054149095671774406121187932127184044795420081354815957035696030932914489268054981339546468455088835230582520930951387621198800556411437574879574762970223570304765540756377672466521665075937086371114189280713717393442183976825730597485690037584607052162397653689682445228425236596656874725718450325455924968190444338728756599904598503214770504638603750123091618642274135468565308699438888674829496687380394653420490416846171728056454340371015365974960268606443005478873154759541411265259835287482806697297773687782902242441640157873662004551899001493425545585871322421714801213123655232264332974387091045878741898392833109730501356330974122495639756300681586427274006720861596436682654934195428906023657297983507967106750176699031375183695052426445760251300994780723764100862178754490918676305637269506755362124037076683342389337616912912604872331944371760532878181997687257476544186412147814697610183352837965464673977962042055168868904259444539016593780892902240341693107480277147233025986636410335698129159299933872234041656828893355381603881790943420000485224352711100983748563553284754400799859221998598217929345357617082948816371764369782491945886992701184113327306182290572142531096501503624167970766239260734671252019564584042948976661833586781855613611372565712950269924536190058538352125567160200438029775332613037484561612020462528138093756065581864924072229180259391350325907574005843540632787341116560639370874986621317236230656456745748939724607950602856288734393668888387540591628870446277511912465330054517749805678765158154471057799771173869849824454453635495920374738204298618792292235647659692397148690588681618632027624773500582594768348472685253699813360179753786501294850262174886365807796432401506070003779894693484810221282075784262987708655426310945689904371168259240903283672270119126281192250730900256944608335768706664895328379869409025536844909851966627778533725920645945841054860194604006947443534988180078743348623245979856089387311232414334056043165904945303371758572490353126241232316045343072800270462651460036388987873249606832921558680239069284089485626673998581686868993265910122732089673323036972084044788249811029491650032964872173219989711098466119376610564522850163091515178090596982826611864970906076083161143951217765129867135225561575201953193243829801543122171755153219388544228724098920643484678276209924885886883409489299182367221294138346634910331949258961391247331270765955711657607684567833791495474297845637666295988014956202935713697204567437872951018567102795722671197111051905849531875162736563971119530368582411390349179008974102759108493122877421864211487609038321842798699496108769400187873355989758159565249253781803842580012513152276906673902517965212090327543529449478400176929187349248669587631265747357236576427145501444704485723919801568569594445451691651037666756051929134279475573890375523606603146389762044213190468154166723852120428841205056857510411819916697091191735428835625708630687472543749890807343602242546727806451165172323428181306072587530595996949878838981130507408524864610697188046131015760403910637990083186916072791085185552770478122723597324538133201735948504365056663321924191826534945724466644470773765755306804819536376168779321778965687849675025550402351370211060984269726156483980306080009837136424254056476535772657127650539045273061177124291834005409556925284610079469301130694653228347891058161399688832771020549272883391867369760087917082567115334956831450339469385637863334348232884429727138623201811570328828440326411552864967345144804339407507218702748572998087192312178043917452698227694447234966473587845756287688689236155652710724930412901296368502204939677047331793450404545198973727327239246803388031026556395137822594761138438059868455388048255342900413594640752091271366517745587222884271981375035866323873223306608901317590281016217496019124512306703859440663942662743797265425646069633101987169966838866637989147269505851725102325913255331509076407397659314201083552599948463024779940512208255838293456442399523575305150962311517261067450435464902247204130275272404201077013040857981277523929203695495644452405219002212518984819862608824874618123331692078268237863161800000461331859777122724344202234220516721428814122482130683911427245207930992555153459346083031948283215284272790504420390028250112445603031209313257923109482922985161944872284393273215510429113217134846831991642088434223844362359082734913618597274198466818705756232314842502610933326547430543723235961991879028753560664646642008651518575068349700567269242409549528080704724465274715610286151533651610768451884570345231719211187990780700767015614581140940054080157027250320567372030408271066905915951937198118626520599233861038009289208125658872016526755241516395508818926546353380917135447366528491412577990086859282855501439887014135716209636341006386257370448494448142249344537766728838694043010137309053143161263693103460632261401786457189661590742760879071497088868662966794227060284003606271159692921049078259237970548346880472176703474692920388013081328895966378516668579841579261952629121856029228101243693019008490198059645460308387166589789808000338552753138325778337041646177419393425395019930327976180131852922136278656412679067803510897211618958371871624488214262605135889472246873975267452247336932492357290689535369144730615149887899530870136510492726427557281059769863762332637228368016937956391371587149953050345841432911518988452093825861723364082252529002124087103813351988320159882446903513768634327495296711442813170173331883685948254771943768345724559730186733295355019416011021155097171822884565962163682927123580316859144975585773685404323219839647127842468007602661896373330740762278476959987206312116374748190336306503183518282296826218519562559682712725330449578422513260458724327690231129073099464497107874122017972635925896066987919269239961007823153862176018979166021657620196548447348971855993440020071850246369471839340157214983464245558578839443314879363725448665279158334025443462122298041048079023057204048745990192088093853757710227286422080279075274998610059799290890054610074100139889748916609466833551042859497767609274821970451253954835685363147358288161922985517539502479843125248521071471136386117457420979031905129072145715101845725983382461933333397728777071072364505300735585722277956096218068929272422474633499969300268044437441091852373293224880850632563317033721995936393351883843135902577609767937095633551718324103719693851978862228095013146169998561689758734796152856803369665544516662128336543288023663978414910490252391261760990738053377182974650040020947574590794222270667075648539583903486804961953571599795611773752591410094078148745123848708541750118586193670360970673887884172315965222733046709353157532522246686496560052968511074788116092370342542779208621407705245310467534259316719292400554731014568961355258262350562452197066007811686860650850406969485508550692949743079196521338025614843115307198806222607631933879478864972228350672801370466448223048597162073244889095703734482703341429846590367463800038984049032823572151733606673495551827261771141454574737671823943214392312527998691099990803266226291472909843751171216493286913093865107472224034014458230864511269345466122296926878420430250115173953175582736277878226791304408193567267083935228413054734229636191992733277553674596079922261753700385528480307999593272157460683663688089485946465146281367854043311026806334831256675123979892683264248116164169802383545698739691844235487093393229634018541167004747028306394083378366134614414921526990210578858161572459936147492377747353149288771863157923916313402924559528372901335556210369770240179180463231858114197557514501216758192513316470089776087939641298109029786553389427674831514449454594815992301246981227892567336533628596889848589149213341585874671398969124303529774086536572219716488404231753022505326147413040658675660778264314036642465327296137185965685610768688482720968527768246469627567672836826329163963724087248963339137154876294953433831458401820172030694439430254932863970163301569723501735389882659176213592506391207696469301960273761056550168038305459027447796567916881880284941141816159007746353286591096363565365650104984174558696713906487927281475860894827618069146217192285524491768632768284631288822278489011084582123609712098621556791604739070231834981837753074647555720785567107504836566481679999027943189267373649820497668520324566237745137507054978824328278686636982769520562957524990489484611847451275869019468582278655359430807900357114633126967720581746100647542530427573032594414705070326351618436570939303548954153850043671034107578475395721270324140472163740590439801522898878052629632398297689664911521657882638764342632035319715848150773044504654167383168617372245925646822083757005481202574626939714580744084450743286299682685046566140135556545595369630883111422963275140513714039635832747109857482376592344394937029363591214687371955570293105018023513725191636667057615152788178650875181356400906383803468596695936977784499213002005783982996720847706139519215437070620932292033166985543189601528624759940319767292010359928076279406174672732682157796019488928540318968161304052623480080975207944453085376377086919474247228661617748519384970111423487220252951327292863521699681682885835550301581329879214093581821642490159979442847832607734722842169171117309874824311474810982957865990360549892435185056555493117312570350752780402174972590586816263701522740547326952626693183855629751315249207055558650679938505857958979969571157066254966672144136174821258684866053475680657265759470537260915164065510078238643241124285358176858612692889250494786655900880377184855100061174806304768806549568950715806929211841780128351243804640871622553549206068927920466138565852615352866367405302261643989381048040332275620636071178246478081771280195178414745315275388628042725688181479341035957170897802716953393402155865588736005378107238085484515429954934587367392386437884172133713271971460316696058907996334599175005510259434792638849586099681789091040275326300019275102483507984875179841687157585132782020681475300471076765747958871893523267452015340589312476026460686946804419638042640491166964081434999486512641279372400455526016559576132193678110556304958931802036485609238214564645889868247627651648263338795892003545848464052060190953215185139875416586673518172416038211953126236535029648610444141994700306569797938273424440321313717817465998115851153370463756658846898487822150213406160971731072622687787606667479134616898538985213344947417498550718374408720845584501384531637058327783497744332316765395799833245675846534724108195459936521244655422361610539491121104806087370453035254262936056980750785765774716026195473967575662832768979584691541284084650287006007839183706004707732371735476356351304404528193061757635516974298848760262910936644079698541999067937509257141940389915678531877627898617201526306012387740734415197397921772495289749709099403719326904900951014943793686034353212282758485264559008155183062295651016345357413530310726501558487197619569256888967574846519207848983141801195492589136060217717083800982641594742706276067073303793171520428871302519272669908295717265402720719860887930520521690847761662033098435780035277841715783658620930730254469777517761313070966007319493698348187208597418206740280116744921621616079562217456248718385706509430836265821876769899913448566818972713445001251782086091120735599271265389246035256749349370725093027525210293229360622741762690034436798112624467041353904210851519596999204447612194798534961606669405593519017047294443465242187185784289378347592377923698994163295640869129060834824175013984081501866041099963443672735471146839893654747874557413905229480559823671656052135829752141862731795297202522161579838273783953720204219311539255026134536395493815570818742061137315665247638795927051666102937846568826053992424929557228716327936162657041211524699391258480938697643666639781039928013218729628917898099680217577619763807914149978865687636189464518064637429161782377658991054220965469785511261074275297139102322639534455308916247765707899210680913782272471865098044513892397200159523677636793201723800798249603979971043681996577452918960318222357029988676827227623606528577072161467901373617280706162030136779537918626468613978624524111428851087054215554565192134399870437985410988342825161021345578324445313436880710628809389481747688735422366333527307157089486558499372948647028826288205377783861016682463061362743463583254353658638957371404236178895642977468813984320449619736437523840979111686618743340000884153288116985599823202111828457779466367897903719791440058583082804179474870688510624741475365132018500856853626337571864734169028919191075974744018407580946290200894297028074791544895002487038339200416102483748035510215523683742551080280067733755838895214735028910627242500547610347352079197212465837643005184556340693209006839167722524904474503684613344606704025157429472525504752443765180226936572426043336730134253510974016650449321848074156646983464119388310052840215587541451500489805646861514756783397862451412086678279096976558120936943428486029095431609538134905452143397730220848123762869569079313792799410436675984261417841996344020881508114338134150208469926064798822280103922653435559899227057390991834356646936813891209359648459269152733996693479421492846360667903245225208976577587609350983807748795222960283868720629166306575835798868712249978300825970784282126307423577710985294192151344196162180768939970934874294816344799767418240554614745295979924963060994797397827362432504758125386627451881573140735082543212371742897109681826363026050640860357664624244616057217011809285438787325220150357786193292350200391228836889528067238613641579234266426792974191259038091202066676554776782166920068548230255379250581268604132410513670560168349160926791410417302034402240533396142056788356580393349730223945199082473646229440484178343621785117633654406031591606474830637079357818432072082294462171342911542610229527876956143341536414774385719499323166144830403616899786345035074977475215891862595303881345395246826124818256174090376892904557966849505010936339261030123987012253964637656727906594396465710148005943820250418089255728209383416202934411930527427184643163470096575419657302002009089325258781267198150200473956571503003672358307672243702388577087875012161808559680856323265806718247251800128301046185496097106964019839640323402606594401862589664199134775634200186775311480383841082296192181443023622272830932737831778865672099034958717141333238891953474120559481357746165670199012317627675714551602641814559505560684630153327013421438175810815734358367738365377417483353449105755926366221750078503702705479203940271902320264203339657305202957561827288650775973049589877103189569803922652682463447737448967384754254055833411626081779187655873649354265799890610111708287855623090089027469130504915212623919952700533897061600862251672747972814053471910095976859820296182965338073881546026676797780630164557402450860365945291178523176385261251388472309214523140816689000904267009570536753458942970685768894343775371133868601711164399037534669107223452538421438555700204235920133129411428116618919557719670633897766364481507475420369303175947105296320162100699183989185985722038417436322204241473407267198524305737082829590025185982606342810925888118689655270487674386580974475148925595345269603223212427270499804609723797643730668747586254218580424315878729493107426337637904108469434076005418547263988351027462789697370590065369944598548447833231507849775621862830514693779335942105389564338586800706123336887984554760656849721912043393712615611897250560508476323033859141970526019751028587396695335208334531204717258069665273198609213395883550448129281865694480739418998707817253808254439679601295039583912195066041119282497915134476163990612010217534818229365406575520550023522208987706219492484301640539505926081054026781159837362892940836014315100077817489048002632329404262608047193458344754194667807558107971433446566594785387259990518622359258673073034683639501603091640509134401129007335381783553558693955970694056404338728798966603312197710269577191379075872822666900120320859653293561326238240657152415785823117675492042374025086116566211093715665414925735131524558817187927095533975284726379375813902047464864707192381297449104425556612960526424672499154657544336495138768240598406571691153697733925916691616282105518405487490245153930025427843306554342817671519695649307863043695668879146250601653655941504306448745282881943651617384918562346095635917939247442136611249159251841194918324630050061336264364607123791413412350250221688425238168290402008697855935800967318267747233017837779289743218981269350353645321543919590220131719082067239743588902513852224679129581362607364733972620564371523005163545852026103489448468246031602481554464254527619439852585611873228327465263654523588065989669498981784091410480334066345559522080041091639578533642498946806576992219515967318410208307874508952516019245626977930728011784713783309717696232883747120528548924298595458897893270020839022719223756360516183280487958612566292528034252899279134632714371773090462841339163294146917852073978472325560530376786140834909414770736846456271588613506055482816041621334216719010797289161656277321906762655324426690304658990924474894499314673549683348681251838256236324816510340699685085145753709520208072653523806703166261692464064779752187940636630735009347417687082528842712811522206399749399628371741918991141960575672714989075801767917368950280608443194889851193199589539540906199677575560102040918002544581106406402077864656342893903191229078440845033572608356146762565092200646408745434877672811067673269152860295361126515335755494240985160516198119129159414744730870547939458485964442306329464024102499623826309690755952510990016380424572982939982483026540636737175140523897867356692187991992807246483386679168941903399210569948961243094037787692989277043624843486474540144376058128697617260515744567249950767693736987467671761613374870767631331492529500608949012662691752978125215397931058253343123129349989618944050089598574251090437745946887692248756069279635778296487962141716079143313815172200055145193141363076188015434725506094152262105472911618125172924099317781928565651653188665547647243302331374540647143096700945190937512963994988041729149699387344736442278468383449812588924340664153917770751991919404585500355144513080074743745022653803196161217062429289093260666330702483157823505847712611174463415153903634533935290637347689840391662396945673645232770451554055084040081463628665654471819088789194328684511681234362935126288537826188233720815112144105542920959474995155083473689506571696348006788126819430720508966325161292960405931142615140774221847532989753316740184126788281322031169143724070887784741819793783622369474934651925418936258280548493935550429757456451233992808647954603551674481833363555829591801994848167001884078973237458685005360772781697278747982188137875911392233643477624114159835252159750534534184324576840523146436464334271744648349609911177516166733489204803394647239334516642232143506447830806948785979013761978570382598818042334298244807925984161039855440969688856791264294612801431939950536344155087452614195628975817038883485338407285220096868660397267430430129141525685850744605322819156309442479102339262590773704247653736740254314863946941707499747103527520528792919230447509211725810101928986098775638630565799538617641252807318150842246307262908092836700406942947189967892989125894733949828429996658130110477869859259343452025820056457258104116215231551155886242265253754338709462091965279964567590980713341108206517330962641280879768584304354907186159467134340815243228472070700623704791980448782267487070204077895725638643691739932201851948162996677294031836507103359330114760716858112762107201170391843393780621223647912295720338006635882296722794464548546039225545531225463126231790752210301408593761784523859777797095551941700565077665292297723325622793146420083798330150651361449841838456915218761612203931501244554975455425941310414006915531378561467855560626637005249944245459096910053641677659596937250180157264677701917530396217790358814074890957230948135393966884553478520690137126114364284487421053443673605201297889951016373348588615715784420820755546216743784267043490203285486864575776359397042538426068250228910407344989895224383338699658983208033229160495970687806390743589496572189104152309813507174833559498772902337144944042487708243497952296521574725890030442514628742708451850552095037146940833672539329156477775978521373045114616036986498563603814529581396328065349682177813578139076447844525721689632418442159138501703460204199248405063515171256295815733237018588372410599919622668727088142367562386511073129235884219412953555875565939009908852967094038431845665823834257193682986523991953627368165587938161195468171907370860864910186631782805258914550941161135402121310043691402399298537445452633027144937422020507698152695697472628660384618018342615094860968527172715845681188103655204768837348449354070116288292138786304417660127605480286614276112661867955891578347461485795972782089283018275212203569466157599564998350754018055689787496668694870790458762530536223152053085178568432446826770575874765920834426349945525209142655405350386028516599860284917232315392867767608005041656472458627721917112186204782754263036497233126511604400226741160726173883098856580146273573237083098855808033124743081027858449936257028319977571222204415145605473152016745058155308822011444680250715746932057276754384210446972868567055651128189028184515729606358409814368368613511595307420848275579128309548841081594054304948290306383609367119761542930163103758960212960589397425893510707102857339514810580800117465443083060005472340300250381692798821340622609742831037523305151814069059914625370117224544966531835531658844787834113481518631411452373099898364735159178365009849543865345165088385776579490785551476848195815851005137137648247705477051910146703843839622030245463993716590675374670665863290750439535378985056786054317283001058296334687281379810356636354548364546431702532095324322664176879718839290746828971339873474086718190925250908532123491320892728020397084631396066460434209154263549071758011247740526387829652440235695519673552305514288524942166067792169516652084825705352783994563820046874685012116372601084364423083458017533504619664267981417393698169049770400659251069649032345928701202440630856200537146160919489012371104968997978513051743551911048541609811950830518184814485350984993187005237520923856621551748719624104725740574293093883162560357230526533257000598106479791164839359962447964216718068543868949929360372403081245582912202340885695504471217777389509114031542885481403210807090935115840365089089281220294593451114426699960414170817095711285710102406603903763350949195972556247969112745685915627346317114633216880641677403992207820895174805844761930157468804814256752126020713816524090700362473188661195489457482498068894382905621171695372718801319886835397235831263654509177547861158949686540851628494425003658890986056849641059044777456933384094000203147237225683482781242618537888343547132138324436496659280281113711683362421759752105472263683973793355708694284822820585110648468338745656373216914930776348225907127250086586748391237986042285311822232043311624444752450519912826154242611512728502712784113269706915717603706879999931647440364463255394517193203124495617753990280424135427803835430636159285587425654039044037808097005992767053105455480102080059525624773927307404645736350352956899426215135674786804932704370712115946488524894930005599310680243377471301643934343019128760210115515566473500600211720377821413330180690982988963317610218864432224963523294925795518269660344339863974156152048821454214229977171458300316163323425286192855546211043025096316126208400990163662871797222757526451266041468754048017685382936421368813551432436092994464918973498139500331374375689338962825595689731261803156642446951603436291284809299972947638045490487919675041204750724453350751170451434627965418871246129866890034441818893381256286105816255818507003839034967409615114458035504122204704159392236640737625043127237916706045325488596577057793050560255069691877161933135555325871986603305107619568985723450009654190269887358352831392836418682959443598898514372598051368587451801974039526174981751045814114845921657739388342263585650148549532355691990461028790402224542039757274439716490635753345862726765597805645667012197516206568613149165000172399089252391692372718909217867380639792636860710298654921154738404230310747568671542553118212879650479346005631544533009217941340522756735334677654972590734865623051588767336475962098425662455400259999945462666667531416464806080000073284797632027319352780510396625659090830444111617845365145613029587211644000396325754431975798556667011971708689284968466491684867526430010531424493374846003791799843162102875348450328524018756616243814554519223142194747449654450761236617049277436941532324874840473845956856593176711942496585416150901075944691066219631146018871355973209065061805264060587368537243833738256355422403521073991488552742934535756646048457912882606551196618173089053633055382871921116437500431184284471510993815103782501586633519926843553811698250071445184245918753493638365550732822243291628686461940024126488490089558030408679146783287430259946465058076363221136053906751591160256022192929243177785025639247751899544868912395544448243079901553606676344000211640952712858586835541391586432355751374353491425321131814501515634251191238282037758631529052096421775920330212399383876218244660715357969310706039341076701054700213062444108421333655722302610374533952653338382305027651520845422807682656072522673597893137060177598381582294553312795155343655075457499469169058996761237882851014669185317188691563073158826391323402059488862227462850500961856515758615447147842660681265243382132772320897867051622684879327603484281613876201975517238173175389441022560473291063564545199501680337370075147959112404393626158495688171534793900017772743726483235282254697461673141592732932804805776776255380964871934697340274931691239567065658671591122190434442010719059928515193516563849429417716454809747005318347696932537259659175328079867930817431280443362425564083456840769985610247518116417085126931531355039241766687680398444418990059028212388295736927926008840607104205883972119988211813536565891144639447758916663120799126886045672627335221758774028422618841051543134849742539437754055218931611538252309978504089790910899777460202538668469254271842902154128205920282498102844273344060665462305691222849464024458408713446452144895452652834420504513242695781137573245322689413446881433134000652346833326186562724027337794001002901716890219353214387144022735578296068997733790335483112040987239773424074115421590493070963535665454066300302879649125707737928083668460334585660581176821337521831480838013506932927565551148809521643841491334325728146591073893584438203028086525557613204925506059000617683772234720973148576802731264100927860355834541393320368045022937685941825670817946994567349260460616466604788105488438511591628733734108463474520199387455796726579902241377247461597679239101360072628634216440839786071570255784036185245724246954559328877922315790204618925090207902859963288177011624009466993157209516550789746849408898965805907287622424139002240637150634144611458400289541897748756046574828131692381595009739188267171558385031838043776921353956453365182664039037395277849888244238524082879720058413853889095499542998806941553399624808842254825396077361718134059988138331849968871042177958180348904852799865065692717499913347983324491630402763635225548758266421205614836445618147467181806570275178695170461600642261368194277506571882341579143748728378962116000279964713721331014734194969532974489671554011073657514584488785797020341838144025180157809047184409117020250617286067205473108332446818615437632934468433180923200818635884857963244839840190291941349278033609694373050626597671896887620069114847373820418474892386204714515047135317747617351586839326232308004694588282219153541718600884503363379706102702541092009410495775095314783835630132918449481842050567086537602958952657478041870093118406981463041806952023902284935654091486628678935253897544083495447295517450837930551474621798213727428003159082527392790466951621313371845540165318552475086363873890083927610417090531575543395795598710815689855876270197543407954019019818601355860112450102367990358697749497468556252495207424454730699741040471890616170249876887969040844464388020382899962741905610420876739986444316416215479815864373305223037336669332045744292959868700408797452489716306697773171809420572596383032553044741932963578808826348766451616920564900703842453690961864979403930462133575363276228045621377627609552763909447972719453480516968931325136303958230079274778172282730770628935803877777548867683753544504384004653361352769068603392923916296912689646329508075369918912871630794403830960377380359924479994744714576862572107267103543837463895123884461292833888176148066830811812138681834790678810079073151695664112023005697356785856668583319596778810863576686795569906213273344543598575573906698786884138904754052239820248121395589206603691009220072771315739202960815557254938117659274577981026842736223286721123930951656622929056190945250737239739005301645420638851841459016543146604631793953880932349536563380962658286854442118588843944802462458468178990707175182323735250224054274866406697828735892148166871242141394525985247741784306757947730783093459930157006391074827699408796986813670397069937510681052220862024295563577605671502503424271884836927595671882797009568214250989283266024644183022802193827285989160326041170380778704670668463902146167458159612427925765620189538083800466138375694307146543521715492635226213725668958502232834497246864400322436214748931941423427857949193701969166269745677511682965453556232183547614026194066100127742997433048662655454404200953393693904865998668346470792934892234094537139340318947763189528732934546233656477056274406890592147819062707323431767737939198828468625758341467842208850581380362398553672092741030365660065043729886368701642550579994773491071136763946025784380135146859508643597901770578144956337826329680400710166344451412943588789350781377488814033051618167707973746878239551795936431281935465928000749953033667971683467255679938427348019801071884208384394914272841907305001900148873019529576792130610841559634861604955227430462193445175944351545173126560438953364662926009939587927616360601854648586918761127247461984852090574374355981396180593651630183207752867729813639433337880088047453808463328825128058200599565840480034522296619411434384489166011507969162858255329392104755548346202211793573828161809116421976817882041012043874832592767236329604869201216197215931046810222019140823164274073386192110305806660981514783304901075301805054225273823067914085037417141028826453535417391608342903646519700830564041877359603062771131839780290226425593965223373633573664421698814328953788928566282645510025570528855382948999811894070689196413917543966996138119516279737661783503073397818226763259990142276907041267991445630737566031671710549945436162248064814484077313665398813076378157626320058383893968572553104105598479532738217880060980203696959426555792395181360273237484444217879064359933848939072875621401861621097111813424809295469879170136809760629963217301276322263718689571346226916834128211644810697273609628333407762074561364795917658474637839638651899225552133642649123528316323303516755426199447370367752867136876493972558109121789622033863880507327570360153715318165193423856391557598556288306240007789431519037424485373244860976601408359408288842850007489065040692095755290137461293977153034569875486512465344758639044994158085752483617300999763476376234032657296588835226082873857771990845452479036980709258145450456780275432117921396754461644188989862361328620929113104121768619478691529462365196306368335129737211354538888106099650311640830541020584987544271154816700498448264906039649498805826869195846848606791925659488995374293541899130924819258930921588768509233942421974716175520647220490787431337946793048570697374482032113913103697058113282865625941580595698419583097403270316001501205591917431464020978902598930322119049436704353863050259897204873094372637873699667347664056421907706333473084226398883190716126535120302847308189921785810205453944260656570260727653948868123591825177037089649799148123165260487032329692909270781196217511562916042408448748922737471126330103116928880752957507355780308559757766296059706665346578279724285287237327593140103917338780441837155939252308130891606337746627703939612750723265961882552286841723268925422490302494934541880998867473608757971380482588475905519519228500020838879070564619530136834734277027669945070593441309656602104603646280378649667767332997846636114854310974255077264963119389456631883962284436508434895043449060784796741574256211962630186362765590910021119101700780644470424894701582165915737210853250867265170052780713270714492270347967242850583937303556500394662795024325430938347606108541421592534903742537084753455236097841247893372930628694770483060612863468876132437864836251274001065915893463063605516303014262029039831469793092812210857325873564761116854154881280061396768776132484179877355472023713661551550837364382799012314476917691875077076703871439916002693971450627540210726003155578035588489524468907716260695122870859959586543968542929742313793452783381227383262607468414147678400637914303299702743055426755085114697204645033690320207751287346205312402618457431601299036474456894084092041159437308534260504948085301189052346281974243153678307031357613294243821115831728691161726834175248868850412734529706046524925055174834225307553962482803750295696615199554094342697779965067028382378086417646365892564951264698198970505302464988353618785340233382782072133696051424125530087936348226545948944264523917300282573939093661840417424787899875800722780329253821884630588893180829972110216812295444083175066996132318777425148437115749882515781666668433837122642547181019725083346802082721258618995380857328406371910459470588583294838649389966097126214055144256190966925562380541463749315486987824737772627582781930935193426938552622394183031676816400871130197262218196832801495444015539748955047268073303959655034345787874253570544816081889915642557782186801474581620707143271190315541711600231290658815089719136075444414950747624445113552685554626336671658427434629687794485243518917037477689314213189716572690458820796399893542219238573232737041062268003830752177301784568445944000117904052949222119815856157863225119210091559655591538014821710359728823562995191038328591995334356074934245620816327347587752299885309442482484715628262541818260819452902246802168296929111781657307461948941192244442026396440254161705173186524118504593039301492928490890624939078330850261484663045315712624035582840579829515663451700155827032680699457498380321251083023890603226088902369856833637840153368487627332607767738419192399382100343882625582461637674772227867334819580604243500295801630285232738302112054986061287800902874719679294393532071584328155945946330040897293765603748208638292064841152321175786003916512014597477895468674408619633145204921743317535293321796784642140174759971439863935457032776846614771947909463377073328060671608058315370194085527232275152261881089862599751482962600746605740601250653097815483987180884140275460883540145035272987187637577509107745568292721964874519715464300600394251242176729401040972140191760541243206574188527744543722022399208375581415088797922027378408997144272836032656803623578830891491660777201196777532506348285876778195795248129692087717745830023163317102751510569769440424832366344832260925190964501168524510772461289824228622046653904343727415207190451695030874445215333114307400974402485942914436933074627962493658607004056838353443959602368337218379339814847280986158355870282172158092542162727354174405792670128818500140901340833445004728955872373046698254888427487852347817114755074746027793313844463807562222170684138808165287714852299765885096634986999690147152198257797580177370418334585559146160006753616349273172414975086973191265935781037468751840783293665536882548304036535100672281860758364848345477936024585374655627294676486634356647616308611189154508458001209071877995446688543776641250361183434146317760252837784961635149899051567459377399774664747020546459177487030011280051583046328958469669088356396896172312798976244610734143995758339967968616950514437154949590070973791235430504682893007053723516718802987375580994841215162537012671632707246784318471285918755693379585279207401821065482979773488529344918373459145560483930381222342164004427555267895132315356350561469709290624681952469930211191636811411607978967015210540255833080257895434612743477041254232185455197512998389720712423086383707850800676060886445209648836648971224325453910033776467273680366495031593534351912864717924915863723516590265589840442394396492063108347773240488845281069880495091307541406357247106879004988266187779787272932836402538999070116402715073560289414754072349919543014377898722399015074382202166044668362234264781385948232188219081848782500158025220359502284650581034145873341935244503788554141861488038948930901388147807710693260625589525333195345606737000345241724091566235666416943068518406378485664874553201999553989011796355821193233007549795840236426217845494784957937710600874812315179154314874080723735716670540462418163329869030366951649397583143855269670420158708681992490035602173343497356620244169963168582730800640696634110650782228214719401180719502476710488721561302057691582625186301217557622880085420903161301297392381953023729124361214588595145294053377849248912325311567985511148658027358223165354122583569066394871142298763564784044041352939465828682437018508244950634436898933946861145186448486696500396248078206680062086917513108005147548073613194210613429762581674911401727075899513259359318069708580236148057439037825804983983260044661004804804638867415548235212147865932578464429941526923321800411333467054762625200684080447386157985776066427174233755796981029412615927461797889024360624084725624915946437564208808039485742320514599846682577305435204257878633918850610962931382378033921875662705976490112054281581097358281263760045125222946937957478191684746818375611890165423002921065153252868050724386363060584806995381893099472481828654932325965845513179269943765944084928010691514311836467579303489853480155245810788009103232194350206381358705619220582240146445282970375732559021097715037722124766162207923139142492602822965573203788337138417844404374865052750861991351200256920572980006396254505200944717782195714981396072803562718047882964505520807739311725536320016054013800866888285841432256237890919174128580574338071966698831431298791234813458831207035615371162298762323183048122398980780878885457243020202845264507812149081365750722986857213394812398493666959895812448879501984558493444527830939694656997371094648924590418809523316753876167755612044146456307371298282320808290982413112197002410900313610387403667567774837050053332905893434903329489732188689228201221569944955294539974255058064641311388108956757666922013752809551682491090432876060788670655771317280563661834578897718067012033596944704698161256836065546607477848786578784016825951556107068779830900397462417392448429999631630353792362608698476430576112766968302837581292553292825637523877508322955324537070873592568531883891830726526098102588969322907284652188456297229975785137222135647857797044765854814343393350910649770348473264166431978111027805374929912515648525774020539392641256570550000865568307524066109848589886449420462953149752893697442478264520060154389901597579375013263966891388171284045140428643336014298376268332458301225710310053693535653721706519444086781653164421556230680441571682143962526803591965486811135039587473055251637522682089795596232597897281814954392713873380440044553605317199722427731608353799410141931788679121389508480675417197794211100284686565690532976059416063517272652468888347574537484340799163508153075170805383473732398388080303379873026676085568013464454427534083871131749290789848286425482798533974428161897544933051694207930056387309332685455256875771794146912968116514060709190001724842566986181917877442203242548581691757258537206563570345974976612189997934116145975349368749475510925437083797789650170635072833912320217922316502974376485628077750917074950867613543494965637321074051408683028949216457033048651756335417653873682424641863744960091188869238329631235859241138954118278409950958837767867393818976019947454147745537053690136855777573137966435332423248355342020801687490234914124070865307820492741344297138497607381937464997304047850687683903972114677469619479513507216718553429863744314730795668051304845979099242452689883836790827831632873274143593627621839593813238468271109227143774513136721510772429790246752851625911585037849526654581705224373579760000828775188020513169352976215095834312208594020458793097525012696115392994484921379893109949655669290895288257694465803215212870394634327956241477161836217469318641812043111276431734628678128748704463327273433749939873053818187192104593778130927850280004610989215196985622831789248749149739256706320692277899260333436690534531742682374054543622453255388273912709364999317687839841171033168771831624006916417659931770265969646676800117866294832806924750717339714314245281436259153842499685095823554345702425764341545645534815611745082298231754741177889881356246925507541768813450742653823031159141240598484022407153445654074460388263550315892649909409370213448543870983272795803534351488705192411592451599677907137027787979946780161502832803256743150624482623414611987644894525584165810789088321520953340616940446911532419590864626053057571997776019233930105099408325160551527864221650595120496511552590143541988282358712790415377197896345687461067780373336811551247144932354041355055732143628595691657735340060401006447360790841474616590170771335301568260208594605492984692431353980121098701093046473038814757077200489713992333629066450821159596424752265055820325124561297736122951550831221634673228913364164052418551015342943666198096774452506044345369325206547327906926406796594249308632370396732543798919665009281018348826762101926770095576760031424471892035537154924076567546820746825948541448981576816724774821426602165418499541865138421655915610480549502737261708591277807934782592426353563290917354535958752584692088111617936791680136059257132915772175965952792218253349587424377126324572054078911906555505501270818237636534456926268672681278678888759828363075280774948331206484425976337556022440907776139312776440626788245420869533838691949952506345208746191779830796666640061693115269031877932475460505474377425925194537277096501518755960744059112812494595147440047292719925908816767782440282810270852633878674443569964621348703627180200291474536293646754412730135801480057987202854348587492032554284592814803841232830790590919233677545762129427102284025964095560669452647554657166498699294007603290728368591787019646570809968572565946341657190047632032413181618479329848025843696932376062988140532890263896604723290491817346888303831816520173777489079082126012416885293354105070777965933669211244290695544738500650677576542763353372261380456408629030320031410487059053114068589670915992644145487355251553374375738851585304343156576962078580651995192170451151752199025504010061443719376551475207096219655977263175956244287373594376886450825622603350608907801155849285579457566932350206306905125035601185640647974486615599364553894317166886756478610309615327529809236422789739696044876499113851300511469710917318241149727512265240113177276569129999430879928281398997104176854960809843286610072190010086386442356435747077895509670755844771504842715988716710448005271219369887613668654777618475862645881992516863794429946581002924025263261097412863802013349416752418535546724326228791205003545023001303020695849778431297862411222054779915134772178576502585107598422703970636245260802274669283941434241594930763048257202659794005111902019435132248952076856655934647600029708839614731027523644430939843339953900110527415541916702204591837915557636882113776152423848994208926328295533482951131633916413593772623488488929345039310509099420055931018888701447672281331895703328526455017804467654878649670262836228252282505239862066273269791233015490466855172875885551171502175445488787242068542571099127801295716352449444293310054016853500322502985983632179460037703760142444303768272919248554419009591643628488624791240181118842866394517423453847060516062835804099573764270413357079524546445341859950504255964404185147446264484838868971487200484518939312031589097767285899250132206392712966536119932320033336309210588856044458642663465788431515825825645241537517183053645016761345186501357780454600071152987822255908670019989887375712576403081177933099225941012481024765442524106622476872849894182355667304386769386932573679472645753041957119232755156724386542654725130351693573034171494669957437196495532547288747221793635114932546314720467596209808423037963411930351126165158109167670402810313881928626672150436541120452741549393476523715327625220225136675767953986760775726871778424049490169885969676106683671155983149383662425057034007432266677003633426702875546780469770137904726458128681107358141016118101902961004583455132929508648920698536764616889774979879965408199112408059170161941367056756855422615329693590146357342850001743095334322309292716067679909455329913118339351073909963440173416849198458790717819627176971863500850462799381972456383019208314614275445730955215628537936806735040603123941026319661153353976049283293616274238096315275412222707216815165869072269926159666264129633516418948364362025671698858895201755616742414880907293416792628726901055159533463767474247969438224321537281741795511728889387576031998125639508983269027690887251480698845858528701081796979812636408492398514973284738060589443901701456327775998300487997037668139854716734872856498000347955203149334755864944460037986264836668101829813043042466975918532471287882637596841724213997494276930150585073718840499770406224858356440833451253215804017744547138627134828882645494823255313950366370538581884335921334644301822352615752117800492646762987819077310337726203734820546880428874290347636854144852570047754649311804322508605618832391921243779512096390480866814975243836591014309789174316183342259221609423488063725103480724661572526411143575924825540481978687657321910019287500483248016767764701562374409336545299695770418508581424301444783834277229499634060690661562304015653674762850387057366902442311091311666301827557352792020162797418853124872050115695351346380570098781715881211416721916889653163774929096467959574604161073733543383803715807448868457113390890984553083255352732388068615508044762359189041546489579425006371715302448229110035050423294005598295979506797139692040137421632577419241574215668135959672656314801943619452560895817823691415733585439041863666517392894418398176753277948772593702583040593063822374742266313106554163532799921493831514152993132963130956162484460117323016068134784765769684930805316689188140317426770088995461859400469563700399411743585231854161044628057280813202129623668063845782899408041947719015572944185331756102318314813054514139508359577702062602491575672119192297840196121008164066528260842135429472222564482655832712855846504450264320702461427374879078572470507253116227050261133760001971633834833909139954299617977953915611548085110084434283934259650148936190754490107472198836489340210375358083739982288925685335439652786071237202484991386716509860428238946889281892042351030542637107055859311566752412120872849473154915763759894102612887506386641074540967213930347935291736973128025567580072866820893378850502888114292468130372107526131252354477534578457447477681918601918368710826434876251691296157388491797493062997015993763266244066345022318679049293909612687733461020119571569291883882279606905689463326924818792131389324052589322002342110816470095086163984876383288777876502959688404648453355848488350891322349356983340377898639205343970663067377569600440760603329973207122651548063625751020937691723420886490642150498231150412197407174411579994016485964637710624066964407720751467931265358198758225108651425573320948993004258844046107280501250290141999276073042972032689271705019716370843210454875087787063580758041823011491007418602579991432859670345089674006626302201204757821949337212565612932413496916129880754958602457626084785172139665525602399370513326751238284702947634151828252335056297076508917478399294951303976330298630938200544213102092346202681677601156686526050588778695183602655463870869161854765071302503833800598168106321210133348985906553139955210248482943388966957477022300799313024038075758992318719604659792567476111600280746178582949315351014667943614904809134544018687454548816473672848462911755483896900513717801775445476828796197444867523600398793459407535524921916127971394001327296629542892901986058471979640270160660396872767089016834057938200090202005281232856263822833818225893092204007662217712620121772806549634347790373841875739944146905262302878987680615937240818129771898496868118942308878028599621684132266007889097525282567314521842728430192703104782408232319265231243705368835239710840547007625398031282739775170845459919774274831307377892856617523595659051752795164555273463139829334881187449708506078333045970079946806032493601659222376118838031977082285175834204786188096372835398604226670614505605070681504334409674961509197685828462050487675069054632610967013866802988816204594853533808243188594671493241949334560581696094529513702002692725497597758912523807199047061523950067935680544406450187550101871668666085292847462147717439825756417940298075148665723058048934249046254533293663487701193838451099716491444746960614881791059350219366987970974024726368824964666562430643035094387587127875093892586991386869686990580705954805343140318966511114153064388672140154580673334277999382683529679968761207927284396526692616566874105555319245337803259469586993910247878860330588451843831502051168749459992828606486895699395097339968749594328837496498562032180328750726340985912007163531846993737627359356770850042743213393066851990300515166135099981276136825160414042933881397413652612330743260023040457901348732627688481697588416042428229587828859683075844396354435639802643019573503401002635659125578102859906362604033584194206322363840792760966853124135967834562271873670758160829746340249799280648764940996779795690092784842209100082267855783549888122924403650764140188458093667268000185641057377941957850734470415100250650213778066871567729931091062073282151593440128570124466879314181414729788336808339041864703310626239600406076406860925929472305225973362620107106058610781154371969212607921362983943684522127622969173221715218005929960324117729474674489806102902186226616112671129060913554388635397175894120522443354567761731451490036536033307858375218545963283028395550583065080823325331724271818622029390855349786055304530926674301770594629218096733199172093506275866464003042510113308002098828623192030645381917250591572207761969683318913904041583143175940408215893166473263187507105739226531003727012937801724609521898373602390321072410814459177096970613620404417359644721761210260786589495043788247254530086900749969937037867336281159065798905458855022141708675644951035778719566478748093805214912997362896899133705216212909446522872670215468525131036626487941648255821636959835924031045413078854687696285298044861608363923134148299499614117323514515165116240066200530800336162836679234832880027754882489547463190644317854153658837370672133722125896741791351708857619288844940204946339739596905554772051918453732368869972265676903089808335692550070533465926382608750962264812500018167947430058410143338205538483338981559313038511318319063814194162638021089348585138577360385148318479253123301001556143034806746382473977039690862605107142284690866818250880703123914042462739354533239333317271720424836809740569403419527603143538685001527922146897349907684001548748747810516857668027795770616399402941778559518508365323998614714381877338103438132901210048683424944567107223634419122366055196726809497585609805415903588469681839628069434251133693094201803216588762662970263518443458721746837261128452334188527792004264139500403564335154919584532812694531939772393028779140604601437760513365321287682871817874888786934872590830636344827779938808838754760906528540346209584982018517407229923137834409816553446930489581261550312568904672391758018239267602019415347684943390869504988419076438044114350481692410219351670055439696144896424938395795837551362262048903449973308486216591349318998901569689925727910495119375913388707092521570806233626474447896849970373505453085794495190672166167333694638028599188048802205833585067273553733404265145924724339563837722608075405863303226332758036937917502959882301058466992819091555721233486467757268754485761750254166746791036850383304628299484122063609406793253390906021670229516093147978041376158591912470142015587450676743043246040778447073132043836589929654025240291494325384233487260313197152631318737858017457399823880859396771432912954182458229960793191433648558340103933649761754132960337879355559974938100641267801818097678295838483395970176037463213921938889981194406138482716140311039987239379854538893997097024760375834632256590546525390749224282761320661926599417943646531472868704976041683796239714667353500301424196974539672385513581929703023032403242329004514747214623616904215915852859006574707400648204899978797829599757801504626775106060197823040492042604359713220454886010759958332068251843738388614245834964728403101253229647635269134249623087001433243911506123137861615654305624396890443825343337530597468166117268540066561787231347145852115000796546207191836436182622251763790113673400774050195864292806286838801086779650902546089908756656712520433588164039642314395527775804916414195124810192955200308401708150085967545950596146943609056883928320393239368568105153424650425266482532468696219289755785587897186905575949919376367762004789742648025866021039234789320297174300392160406915324061268429695924764375138239538163972248649831576066420668853837836287870935934498475318313811741826034064574836675108941340066004681828216448052059927056220423665530482012523612089947497579908512240359700165560804877013038797887945769834088719006538252187221817883542317170281814136811370233787335810506849242381111160021803482806063570940602437357978096579039078220522391674230166923403981719409621637169657290116179946965327731741920065253515412466381538520954083371617953012829665484432891258519378298674719542035606575087172111706117584147903089133258177827606138118854371148505211807284793987084803701208010231968707245524128961879475436683523291795766787148876608604899013211500072466644510627800678454151849309693966496201819501139361960633577275153754559387673087760713978317067002909575811475642850813882051757572982260118048109993900453880322040198373056663724369915344724723062443305171277304583478793616415848784833177766623245100674623643905982433840925017060465511605488502045539480375008763131858012642562662723695542038570191575861798727502158296641387789575750607317908016386801729839116399445074661750736225557405347906535390791941110358713484490858486522033229616254265080495499256420708394484661892945048493940177028140485738965187214605312050441819954409782404577029647547991377169353992471283627482479573594887557049978494636350460369450876166645852543621393197489552438213744819331946036747346905000185773077764170837321273634995924143203520774957541100703221883779115442709554189121511459833830292546533518315774324777805919877916535511118789618189176824729282023354136954106658405466567799943943958948657379066854105249881467091183182742435845246504738654725553348646556799279751911665696262302526196547146198920887109087015007988862023472169987987929765660713962137852696462481104710082113849424644310953747283425534960944527041955423255026110128151759584348514263339028717244706922474446726961074783956380208154373669217843085309471210193781555933616143179487127944331473505603100258527082574850182220913647961793230406190667806383303806730359273649753140766696979745317906586141403375383835953618632707247922906954682300080779038519665922069177480534761699124308153180705943211718418878921104575460860707983363659996392251293462832465856772077476834494587981100756892319377966942297267312964502630085480456885721766220299975289568455943725631605930641667653866554193115291103278587064236523823781803637284189873728354545359067616288961746201210767093247498569687177820666295495263076259144191942252923563936661539131457880273606154461454857540590180550715285188463211830340228752531234753304938306787482352698431972908533468716174271970475559509932735915864907357835835746489612276243817767636332095535987127741044761793033815111468551124499651033376538264771184986683015172336748352832526292960822417869136234495453650607622968523204060518534050566284303699705688581110954301271930269817392775830484818482743559907821269947030075597640715210517767378625727617003315481856514023353624105995711454946917278682244815892103465736846483866640181071963083974676309969913128146134266100369347741593402683375481366954206863417628409119100110831367299054557336530281381437349108859663917444299685668851660277348048905159387173182893182753063531037222999941616398812287293723923358831277384823660150331837225975840241421930094657141981488442825603262915410777160920012255198380927403887680373812493722064739147356381043738401721917229305034438837474230263525673072648190561493790512973305384788891523870850480156808447971559990654725566374567712596941861401367298519308625027242390544994164877286457472659002075838516484047016489731725785016783345622490539059612010255078034025607897185568544712013161841757728890021267064948777351042163024067877881093841209431315074172052809215688727647657101029559191253472449721252097060008987445036779792042636452987557951460611720537473524259189760986008692281032838637489661891798227595841500322897318912377812136212989327939980811721406186162856475410089482826174521754126504627694197134678798460604020452897758299632644623022654143542711326271504864476053982544096792330183716689353542142468599646659747864271749385455044756219324353481478258012952240290108014019603226930623984656574733946509867055030045895337639270412699887105829487980531579048909536169234661186550761487836122711638964271685968218307733421988335627793144327263018590310319476885590168888907578307915664118580154078353077717538391669272479075010184672778838741039633889254864947062383549337218090123158069332376022352478608621658215372517189761466177814447297263427112156802551139345539296387067733439955082718992078225049285846634112573889186124070076877752339902638946330213018205833105705798784817893703154229868406039593752253790571461198008738361462015839456731759523994717006007422447631217896239482357865258075086621225897911716808020657678427698853573189133761643672518285937245543978649490005416405519388950671724518953880155676895122801262412269723677525841924560079508269308185583032763193537572462870970635621146818580641315081944940856819695696610280614325116437348547971027338181856269798487583966286765106285942327528692644749920442008715013553275966393408924459779971106904748633461081175136250286657195042175754456795936346918330854490343853612226859572236973226043379527548138352440337113108962885628609799695591473467095156552705863035797831851273960132414552607141594043653798493402236164241872554220364202913352983303348983366544557753469852075221370875442756909566549008440028334135151706301056675555347041031879590078000640645658894832324926800026782563077454213316971152977680763844642742718931304210376934640848179120190395344785197849693093173278581791097409574771854014740487078845171456220310792254315068781445363915995180386837571757996152221039529901220605129912730437616853527624870613734899844399963950048454259716477720055555183468304000862348874757040844596966583059142637630863489328472617630701087627552338232934231717744401266565816911875129965849791820685258626394747501214040819203693675619323357996462478871096283961234009486483867002168252861214946228202264698698324197033627213306631564094155491121011190542241080377872488949808284727769423078198463274511978246478031708234062448976048933239644992190797767437396329100650487703392303742339244518135201897001202129853627535011736192650263788444304386690223576891225566205542268627627741671914643259970979057330640127206699800251785947589839690235397365326960254889153620417009463009735334842948597003735466657249208047647442023065887513630055674354602271008991643207155458580454678216746349024466613424654943845898711124117205359678537098115652036749175508501825987598770089260428207943304060170970561109242205199977677647847351896155815407451387074078299785905212998955812299988328225053822054517822493725308590922333253827107789689069877827961916055069218584912237969549938649116905451979920191939737534976880074494039351654085986752401875377421093672595960197895028003046350927219228784985563408249324445207382754159700178460934967486459375999290715674628960047576944487368962383671572762341312562528783611612177552593758485666107156190416333876812406434974613060075587402800205908936995717527217323372215238742081503991895472026840782581470701308785764392186914384573574693698239664770163710747939180360213147988213727782844055543707623409196344397051340125833329617711034880659799264807819790776044793237314816904399443917154858661661366466398771036444227753687395713722188225576065253861581991372279987687244890488327051035610257435742541156192400494777462209350097967303326014134485814644184631509454233687482055500507395683730728539517208807689901933319539316017208726043791324635734063616080864739547776249020710843616584960141673498154013819315824556960313165617452558616118248898484653747194982924313310315270190100997959464980427633815618561819475836327537131970606643710808279317622601702697366044344173014219401080140926516372513091997881463426162516363734291646458040333897540386765792791686325855349235105265137810990147010309009143878987383796236021714097343372872939816231438050865486679599872163273667008732390853109898592791021999156167124859947238293050135519226333898833896594849011997575911327869318282309351517459489033335136248131020256430482498940297070373580221825749350397150453392156635719339069248231547015446788258811908644006702445811471957678785287829823443529649632277608844089697605036850925284569274114469421604809972816908259600174493599693218567851490358256868105934166359731584462221744527563471466490615135957122685080427337983457792642911747640594453681647740409994375683866140604752934081705019415089182974709371954037679312012570105812560993098497031196487538837374569942869090428332641408977884847624212723602040185779456988408523608729087517084745830409968519937364713804486290801910525693970151773982062962199006709112816144314222441563537966578201890333967014054858029124301522647945095242962941251173943384329902405303718359030632318336885300840938138559021492862087422324707591685908885121244121754525481323432736039002669695234902872654330833327291579084477360283159761368823291873496930959957916092027263896938062409383597330517723615749258960219753803946726389917180330073721979881168091368642356471216935833532353403175926288547168557798294509373321330112766749722457837914425536844942060152335112288317314462166455872160346996306422133059105523850074766783056847707111667963932877688286268235692558081163631113960186519569005702419302405765782098181999886705449774957487189314163840211423915760965795244742212175788551077635932905184718617564567898605525715394304196530930767425183770356777796989712640496553465844830772124668423119345702669139954351505043825407978045832452883080859796416393711520388321572615778117461652458870217164258413530575097504354597502264149466443317203057998094747646384719188322527640333435242489967318257139642130674236269330955164747405633454648783961879908940055946665227138505255534068032659428358529920727350344699316739946168307370473029400184000069758033528317480379038513870036130029350407000716007474136258877125133861311265235095505343146426696149240808548984291827703783256629796220040745730334802938724248966963713927252372429086357494140305244656368544945575500672988506065514079030726180314240569661719988013821899937786418071010581975848804474131392888846016930791450739210189022204725420048229754982807696300077603568454441109324102647306086856048393898076013132463726292386343594006736463747909064919085036519125724431150058483996630288999254049771484630355064337160714612209769762547904136746508451318053846290541708025237403391333555281348258908426441997180101517172399071942911359707803986521053311790910866096351738231342822719945954500051676499566754274824828343556390835435823285465668886366131255202384804596644369905996074311353335017610851837031291837326796761384813441128449038771824432123285371864887739501797078215660645125460319071918651588099952534373921298658044230306359617448013660479483536034071422765351188715217174746163159796131863181616600320086650060113411220047312080381246682010330111312384303252455449457292654677418258630931091039901110708276553172954312397737470898949596802378062773560014575134631655930049031259419850951499054416759355899192824149949588767786006914035816023938125077467661080843956699104761405985947447513608318822568639195874533093826784050229786998339191110937736167373026156346365989086870259487925717073921855197974685734152440398411081023987682280492326998333758888344762554068603237591844325839686276472035151245052959273194699523442026284221946062926761538403776221552014319154801945965273152647407720778851248818633842877354496512165834956047570876150880930441750742492401952346809612604397122934940727797184015447752028247853500594639972504903253664547480838363313496817276677131865188253978317356991547231162330135873510989807785737682802250172720822499744791637963564970876178594114021994865479391784595874169352766497823899051083101578217477804080838592377033641980455130507237855814484767875500466325841595926409206711679811836381050748557603109109954772258091500936795048468464562268078520253097268077982860021014754233330557697093638201509636601647858899608142384737221650175236277297243016741918976655576075981365375909829295381635162121469430218435371965001970377572792185760467469054174412389391831742156091911732850909119002790354250388012222993646121819834071310397133910797761825766379345731973367132257157327511838999043190298294369947622838414836952279286252054933315007229409351397656964249649968561886888262603100054955148379298917053164888660177638492502030216296241539712100034631932167353220726552077593813948355980907777525244592784037188584830354836886900767679967886079101474966551758647156578909190728722796978103365181553185160075826139156055415125937872210715028040311950568002129234162039055612416239815358466170090387616417637009725367271618304945922266769066168177165690902038871832806424747964854722909452878329261264227962466195022690845034716642358729331421114287663496640308592138999089823963475320646492846278586680664920547445988159439596422631185207944264728462831335569862691175149609155132641378484651310917685002547440481912359028154603077671537790136137147800804432777945504590697010668700176632852027291207791387074490271456076022160807497617021970441450472730607556658750981522415095095113469038260853748752702388127167493081595608258992865342973285813144773814424026312025735333888298700241170962053508579874339233215538282558516552607256837110121470639332491312732295378186443990063505656348034697309599815968161733729149699254983549509406655513504158330994386741939718817493657394965675970973004968824569221602142163580047096568112444546379179319117978124190577728067568725278925931343995204371758065231387069628649877019914464179784735402783858374608368261590096662313263879724582128484316032410689033280791456092472577849225247079935975035436786645336227597199888972185159587768402198108586146169842376008118613092081243188551607253385544603604136635712661227052025085909876352815252070863400004510865427150649619349306573922388075311975957395479310252864359075117306228049871206332310097770134812754466156412875666650962757151841911302117525266410790734720014691313378601238542790792525456924937875498285644658683579460368917435118741673846890070696418975221908804938468251707824120721030324841747553569109326642631125488260933297103735750491980473915367403408527235910034281171320156019773631020323923764348174727523557397615746794833165832627049564996102877058048217533345223485776736494165647359054595838674614674750210949229142278399765518664587726590866523773155850278592459563257734117197479298559585996750081992314476130751245458845986371157548336831272226628802002113910271605939274607456030392621859989184243076689846327065875516563492804288405415215925321181307064325955680785422067469766028962290013123104632236615891329572268741554127695427703543091778790417021282935209819632613984578082581568977196509893763077152687508902644322918101972280232325744115221530630387811704337304209423939860960061844672108723107093112350795299433444166679334173043104055515880075784898028005660857754434459377668982481944181684455655540963427589682368362403090182325060943395163899606965262453019843790919412182091706846468823876757130660612938601190814203675477006552155894573340324689500957799010670344468761258929299398228392915403359153161079874414246707741553835234695183335392512927837187368777208132589439233603546713256196669301843692360121745383475755831025182698979294920632208790248109008189283967786717789973921830172554336174456294845462310096357984812584285812592939736181519261266404799673938861282246771915217397156542490696313572305109164803053725451021322801087027271500008794843916039549783063174420736133818151073659748279520562092158416142208703024005132663035278797594157505559205834443738126756833512569495652782033798652807850540055406760426825752063611061835315703532875816941238482849516862431133229249224192265038784664247575170514694617378600039241249692414156425042465026706640729799139944151509539721456816840172021175858709833509090498661035210371680266862974659109166023790306149856610671830746108717669841882128609662946045088081934550376279173931833465089846255538515794465859302201632830018344335757045426801079794517592048955332607646774188496368451788953366700582749253880160155177128907331282512183922472482082703286469630477579560627282157574291542651794934204492783859354479300196130284564817879238726168331156036213184028824209923488422062893178539089981646866497656643072900652637360685261227168047666706329815192042481551682442945351362911821608000437634755878309642000847436902729664926785878181144950519926140810317741586769767922696241517391852589435085297754625566409917214380165538605275388043427240363385282230157491268432641332748427593905911981108675913507762137124202273018465994842132730251410177394404940141944779965598476333112033863700631676351150069958441640956544536245845374608241947606959197890073349299430154757839390875915710437769698144600293632020318693971841088510432273901769076528439041546477665184156061717049251410933695139890641628860262282677685700573695110548806095219830446067407743196175817555802999865971734649681333872121168633158379208160602823821299433943242187270784578843264864391832919673295208776848405169845437318962299775571323399735383698908060003257094129520086481713853828593290119110451946149104904823198073040738397105581232145494136646752541156877050121065071592497334938477901897914500156780953816654580494403496165252869969377618981015255490259120047569293422276758293757898968216284646977793614894415384692282488037244311492354548879508156453874012964687725157500926977859091640685699064802957931579401247561696299126721559986823584730579930246691212518293163550757553485816900133578839205128488905391590773304190161354435431715711960486540145513345798527619107924454510613118710607704986990379033330487127967377117789338960038782705316024916149011723645135432390890750393612042144925740084464502568704846195035114932764757934924748963937915492036630654842375435256276083228074789263273596041641536993736021356724874863083800786953330397926183287263132299442262982004126286442491940700981670243051946672353964104197493954786945619615546263744433269035075707846559294672191646184289551950429300455283612122003019260445871089266947181989434119776396513025901151479943707495101516451472178383067247670327122851205293243738174722440282980233534253842043852337669496847866322677802199233182292290537509660114883084260502297924126881360810061601850838168224221134977871192998753812422580264952976360360260892967685943028980494104258932613314832070884169551850158516109763602233731820648263638165706503185339623396634254706217202981266502148013438217002041838282866518660221648694469841432693965575617788806409608509081229480961445962168484085475964145297957637503569106766114603611409461087612477655539913445263614272619173640043715520089018952683512660991544671631310090472079603762723564966411672231468870758368797940637135347648284753991955269456643279640221485481635145349179076228969234344265136075873698125741155686618866763945602963073126548290273480252710189808447074560193507065251286692619465642226375248728738678881134908001678623984318611724965157197556667606606360245653812673147640686693498726663423087654138729350230843617628040283026072854325442092887663085324796789963639583087414077127179825162427156959716643443745883556659934872345652814111367525745300559587430404323308098182062729277692486654938040017557609355088215094406053793652224749222741000601205198334207438923909597134470113301350268145130660218223147437046300384085354485600770094003016186546200453312795938057754869994042904131691401583285453370734674957524004805568636064109618195435585202426120012326794618052415611450553047999638615700546883555692612953688346250673397371305655628553560355126809102618842540892940877504291985163057630795458672370409720191769752133772194444704385671723503065933099833842368788369666875689732265231334290160642264100921106033809124438587421087861825625981045461994818157576806114055853134493440142744463211292137721598959225775328473022438718320311295040757425503033302761655184504381592274599986383782469740479149901232534214074268733951373071649152161651416658199402909448594598345577730799908584347192129348203793593217366065601867005115434074591045505071370205510087624538219836651304307702547547197034556980917356464581570872151936728136854208853338980231535354016405322123491682391232120514401342793100740829962618644234432485938099115985715673260554900103726557611934978044313020793410339070195445643940966170830365643934668347361923142629388086508717419442944043009496760093623929006195704130210293307068588848996707424731482588548840365685707000979498030840606541419626500781854370594494165590847204340661782066580886492354837565470886974453510254532623222579088926379674691577677574741468270368222261750579030088129691058257370034526234601806104191008810551840986670588060868999864278915209226281179025381343890845431611875923638905104039739593689928438622306102986313761066403709992214829869503221549562533451984837811357479686413762446298566305333100202442436737030281777347876432512876415518325892903231729932754197841262952044168710320013290664841661632015441806441937536985250621701755858733314584986634238810989373003430757983368838450870856148219048017908282545782353476350922104968418661097582683557366818301399214877073565130290124421199668757683836890823087855669273934907754763442252122876839685083618823871972021879009251888607502045630328121374865086176138517573777013072906401249696369923978927485617344459555360786218889003993879038894268231979288265811207713671258694172152439039116870947885483791261420086746613926843669516641338882939037120619821493848599268526882308822005695715541644506782248295495209618322749365250346375260934336790417732297020403879660101346044339858177583976288821362990883292703817157773810778952917253601911740315842235198289643247268427649113648727613548064684679893875280187559533710016281524432849852995942289065501059999284939654412605863413200686313036887150537042077706190884498987445582425652690798802927673115634008071494264629243546708592400235624683012611247979180744036666162397207953672734151614383671083625581846890510765974929427850571294234350893714924123597039815312479964331717157536729411289459350428028132069631674077415603759454453118020956081556132319657517381663925225578704308793830604896067354339866418066676465048443677281085495334841158510998869343805829334785787348427511986715019469700383346297944763336087140988783020203182088202853038780032396715691669298722111990615923589451198617607217785257772507486691942111838790532988601627553656160022492262928532909795231154515593585787492118546083517910894552398855285071262696581852374509005790288930027039061660146017189225419207157233439987955031770969885531255040772178050817088091911527319258880044891774382973887087300608031829597577257877848644343382846911578391096820705302702325128053148359596069400965953841841630801621731039887383770636235316221918724484003127376300433042299329060408892239174118665407140964442436751323229686160274915004881594212884208839472288380624530082628585643644097486115869692834042698654765966404095920574131768854843234325788503210452245119635697582155214668328505991309532500897762730181204440327728789339937247392367772813757296465333730655529236285179154877797416058159094785974588515139970970972151924014694256122167134531678929878425441786190114051693322622009744691828638740612959889620503308184465631260291921689699207379730046808883857888383000592379658374934848629895299941613267249804674296065774803123843358693485147042181276681390916927398223157702552623342522303171710249575997749024921795045833747538245200260441263529594258934858333502402819043585782151431778651724115836202820026390192840462050559045268556205386237065961595554236247496666105704338054410205955216355159323393696878326670984350543371595058235932005760881872597224895836034229199899623577465542144636865063222496774725350634938357879956344794887649644210987587060191952046591161804476757250941163462663274112862791690929111568974077736491202343609191232847278702264710164439381336458147555016945453603693865037900138685192678941422983834019602136118946937202906943401420870966679620775112763687970753843980672782867351586602859085536847953098591034645369041611133143784672842811316511164741770603237247193659559887648585971729233392644645492423103509464178806035096816471240102731350439477654537190550825988428242840393824561816127182548541172485796651551922954243516156589102523895458091534762353038880359113637246511989220621109971822841337188734590208514196247712159064466170406503089242426934854148757338113657469284872198780055127475202949334362037480508218706435489276896557284307785133541408166479007831602742430646070323896559392892361650262286488887375698389546994603592003193223820091187590728350287241548936412018443797051503027863293899414698815079025951926462440096755547347906214030882287327468564729819207969139036276855012932789789830718162613199439260505528543033868469452099978789190343054160855895071530992954187344912325073005690311865226302763739035183956268122835624234056789866842298669278040014440742255096668382452892098984462678511978213730263218249325571025619213770161548972021440827395725352580607517502758150691040900037738305213071444530070300168745639680123436797839197686397022643411038477543342479066991484584953627157676063358954662988431728232172391635493880538207570164637010868582035455920847178777280573210370819851955435811500123803059090509176663363933242273012467040685482149592250727383327597046924227160045077885451050966770599425560252476754196037108805358340563919440554253366347798392090873286696074177597362741904793529865127181735402742870216971872387206442400060913275592777426771927249923773533380357503615988267372871582295936299987014248081301534514489053172481615103837564549769291596222766603326484823178433152323818896754049906695602605683964724451582444582627255955433650670138549659200289565035276273340619003916104881041691401604410902538076056658423475793568676283486133098912860265590086732062627209619207226274315462390480197399760135577134302515410306419675589900638869354006219474635715141037056468941854381066761580030740068688058585396329821999818948887988569141856064649840299182969954851659071645935378343565065685147830915306210360134907833247760855365941435131759396084771636585098659620841546003394557053980851175697962866655795955789108079081862476776135626781182171743270277314141382460072104875940734509502502436695923904606203258197466897952589816056306849834840571093808799923034612498675982510381074355154272207990424024537292568176286851542744448528736360143324063766297785299749108529270015262178453036020822569400648312196608977928942480921529783811625056982162617352439385419113193680253510489429475353778780667199750403377220718809490303786955422794785712929075900010630688383686546494073948415690815319879638383050429852434208483832533824484061622254012798374049664890463673904686774162503732337696983302381860992008730743909736315869363700236760160212349105804656603882390490065900851396329081912669729984136646332580121624346524800763783026806063100281251104392884474016912324512349884978478052747745693303002142712538116442726935240473702248928664833006794418276587186613882070138252815430018463464236068109590280488753220464053830659169433393010205407830384056985601336183864320672212455925840993832346599341227321070221406338899064039724658408489477345301862592164413938394342135940353515617458179587874266122004723719522266052008629008513645150336260442247116171983458560845563962703091049357789842152175587424810062778574253146511305707732938081331089068923027764285922362093534540287088896583244794751967914503113091109570078364299203847907883913523088909980040786408300159883078586471465941788075104068618418856144606932691127708988688271296165254996301859624614477784952701841389343909166264182597798512225149287073387364326495662446924185009160563166692179641719822267043412180242717377265799268394347890200724922984882820508413134082030311454258890815427911567675852119522190946240930281323433782187927310344317875428248856276983951005202805453426202792666628901674936689176509462244537448504748496263178552621955055674360836963430323636935330128992140347901542136121479802220623801495115130383922826379737464892942477805734099220238404901746463710497425177828060553945754756611669865069651625844526974326084490032677897568893358213905666594747085410696087074144595584452412872033459446123779682502123061464696732536099821223904494256864158116761583662874555836192645155803596647179723989255741952688239872019703841120270682917690416032010519135213832355339754151840428729184948126602524867820322787544879295916683202986982460537366942869857222806323083101671533025133457552846002392592571700744797806001894510532636971024636358698195123672332450257119955853245685328801553388746675375435305706392676182631558230272053158569349252328733991642393072719004312727390158399726595374786736235803212438286557720728929297018990987929799323384943198354546852120428709723475419893954501894499980899073544422896613484590202413677807477832988764779334298916203399418153976849693489772439353057100548329569096547167189342074400901054665335559774852000962650804373677345645116476398090590486394800815274420430133966579695010492865541002237858391751111103385718285635216814816278999038535638353153464281956756533267882864048668764877150277538337566988736376857392710832134399739580122786570356051545060949243450169357410774489268260286458264873298583939447001545120237791997402969185995738036052285180731232620076358012135507270239225722845993984788560951067197766269602103345796552197119745860271165666396683125176794171992270919254200293380221442675536222226281813152587881893404485139128008109747617228453151519690713063726779030843351563823638537930179121694310560087517036513374113549571632748231829438659670725726068512650565818013859613554901701934909487044946353250281434739474013287467834690084735047453852899595013564443407271533356949140537691105674242630248572682460986807810475045181526874336892324603241282583688204793123896937542459997687304422613678713029898598130890089681870752727572338437459970052228649916366407194895727809795881209286181362952414832868765473289464667480922905477843089019919974563591281478575215523367608629342171959773160736219607731187176755389143905584590178025066533055846291310515564669118670347118439838406328616522229147001609449556276211532958270780923407786968725502785370325891003779761532074761477474328065957755424434683962382863059810529181129474489320185570973547501172118442139155963727757198281698981092895216406213430283707481832399507210799825894099091345913994508960574390623885706335782943038025058534155839389655455761493113366502470536577755936640187427705161451993962755496483632059150593078768065300189607754506762714649670384291636930127686160599087502742340157989125513908634908385023377812199381516550003994767515660002284734937907724534210306702036453616263702257043021305462102560325910726689982908462396360421990204623193054293160202843118406426593363490246801832188312662356248570830827542119464824277566237639223096905112106110333939535426917578572678227582990850932296903509237876755016290125226784072042911034441727390231104554716053409615959643353527054620223152410167351398944354883226892249519413020918282162722787793679067407861159736214416411306197076249498107288756274045965217324199806512254465835930914296696890135620976881286600114336919091408314585233770570175618157713645689326238953347175136186241723734329800459444260767377931403917306157958397997012988035364674447023680753011986458351870067524851736698140365705847254508436389811110136976776108315550631976674328295343879158238163145307002318930574436347758358751299711294493717030296087952723074191249467599265693817082747595176158244812455043430695294759060839624700700738470449030486463713395481029264463341524627936210131050472246331202684389100119703527853166732262806894923323028933578634325621916235393373835830430797397238519888256124910104767533458450123913488422648678182245346555553100355333406769556883736550332143212221964999269998788125258832449268658757319180803878177986230864746305627474042862500603590396506125403461559757573067380384233207819195793937689369321093963385325608972168645649361496185624950674073588275898918586822837326426618815852689650868174117192510067446964254899216758648169635519007459454940304008273878978483055714220001679549054175523809962069584562175525709610134927285970001228601913668742423226872874389135379224476320213774964708691560619025790741403774534888514240988629470004900973605031846365940406691462866755880815186400622195560491004096068170498447593420676703387543213629305509246326523536779574485791672457232277994741101697720109299002181977813604223881647243804510550933072191282836640599185245283666915701167420753526352690861148146891098698962048479476568717229540004200900005605883157842303692802177742246591871918795463311055022727523681603924522157176614154595077607012229084879362253155917850193622271333742912316619361031873473690663734409834619727907072186331724596907787488631071772896303825368187878506582921038197711320004029702292848967038734656917192220691657281538350686197360883006851331325730504989679292534087041047663729143844536889418897171195686942378483697649733283409230216202454831476355067479240286977518903810054633086628942817122451097245069829954910118918081153874096655244013936468674058774039943243137870346939642140830279669127560536113624977579800617479759339358962208850177322456334317606608775143545275546039907068519696427770088531550803477958458077741592933894652455791622177903481670967617808795230444353926907103586856432790930793892559380196495942021830269049024972984503441297435939625138397381649758203460160754579935923335702934521480290641906604325076091087003191776827487222326558623891769684223204692064340314707931748835914849718649290605813909851272533863293836816455127255034181299437087092918273379298274965179909179793333781295085247473867295988756368381712558707907535979084890106559966655105436185932524872962976159519961907811447643290851699078121285271506046029342879766756990101288554222093509284739964717369422636533581220363262088243581047166524011537086568591943964014381094849530319891095083722925879749536788753155901555887663940898455279734814493399647172432439100591656105640506972316210290564923178393748566789116171644848169148095536402740598649211794183868213291471890459214184657477241346130083253286759769393399713382889806529635643434954346666365146129792761914050486243325848219634541489471561637564812809671122939754860188538319341135677036523198302313274597772350613894268129952650825346653382035741758959977995291525417966688335633397970993061163024814865404475622384426380303517806475185790644947947832883751138262430072690398118938760725780275989596710348285038970999956589592120521210722954426949670809447754089416268203057828981768045665524109144322467581815840762542254267643253091262833984162629630757452832417612516725897642332922908098089277196658310249531052385112831345196659859413108496304567551316684982945820432611628633027749312233216186886281636381596489169043293985158434253465035919555185224011296272671825126897466030519555818851010837142071006972587323613833533158019274601857594137592992641091531751438532960443926877386327357602221702446524874568250310267629476656795516389483976496509799150989690815835115199307305140381194855869913789830127837066004292773002122511010231203493757087315876879571671991367743082050681572132049010839554070578515338126355323312074962834915344066835862336074314519574572730792730160021699223215947011840837229039819274697611113356561781373370933924755020800303027615082706574947856828452356977815748485285213464430138484921833098807084077220920618619466997458706461743754494547653718896791591623617134643558595053067674133158212244361105239930742407465734280195746104916498663530061094530958965945464710463254123095716248412405250445785596227049360987930887475190403887613457440534733263910888970767532485210377696827064116251728599710539388173861163344239895934321149068275386951552252298561229647653652392091079289076986757911705275118206794719694989640658226228183173825764571752346116348338415379193590463965061069477787801800402214294486929595762970365246047354638675965461803803342484973641988934600483444049605188406634060377763496080875556314475262048837668326921605675683770177147482802575694942114147184007427659945975344518266792651779036852934410210457410848803587100417916666420253380689091143648987802334873615519780807315352469358643615584392752341478578335390968779119760501096613353623021151417331502693892159849399757343504352929130109668297988991290312763824898604209078165879776744679227934468886468898924514440406136738046944148642999520358274710137485318270238906743765145725416008784575626395355633083518772748676919530685556162026236021591427270688590719668953192295679939662515289177448754512700640511210162664210902491305073466235043266883112712749928882601284826753408966453551696448479931157216788397349249338668961925723700720733312113362227901963633778110861942836055764821744001716740185929445949942231065099632867056614986736761817840912639332282157838275041332277551593934608627547031809202999205935199663467602899279587987357389137132761548395256587719191867269496020518391939288461460836706518290861086560213247616400321803846974101302700254588314716304915835108160769967937006095342993367411694698520071391556169266659418200703225442386385751316203075807648186662892128018589765459309704708138572458377801757734960876691956438988033894879529348094574302857893999423772483332393425738844110757116537366247875907910199149664779300811171665009057446910463947212248122627468511098914230216694706854266941875687838768216446263499598234329615465496290300375382263201967170999602131156451688250032174805711515024178668895788775959490993215328986700128513609329773124204074751657175299484364740758706637380205740776539268619827393687408609093522847321735708001615016259018965278224138227845117597654161056656133291717136367731992193259324622474038051447141165473877799560523014491338220070070185562266243234379848738421377079955765917481985959197647927959831731445996546959717996284682080000509476262297131744746076470705946875700401929216036384566304201893961854384966685077510521012426855826636187879106773591543091433270091629699670914484149044009319634347645150015238795070417385157055433274598520873801466603960646870255073730307239734973480932373060344157367393075147043668517466718948604870687319193960768118935062098388680671516121572571260042114776689373421920309949668593994940678459373699008072899951595955034145700248437987782687422371106695873143936510264281201664104067160278174121259284665808774813620302738607838092609030131796331790815578900617737817591282054217695392496860982448180699454955552977873915026235797676881205595421061735434476042020560382283213844733744407550809665401264862403096571014797606667044385137103569798777583506543441894185892534967556320390901346940377203882613116428550619466534747115062797356705585336386914797789426953926700938172902078178208949603297453564726401130704237604933620642997626869626544051876524390830871533395093137220138303886467548720846537852578987960961720567315627193076756680767148336796588537102061736321529727011798357923102143240189329933822226426747698673242275138446152603797521370309773691944518442638117627934735108116440093006432338187252123879172841647307989610322578748416485931713847043973857658104111285825576946936392781849882705112935642298133312563755585401116467039567622090594928608566079894846078177925870163664922879138190416096614327201671077555685352108039065356995604738581845775716351414179960964274007678071479963330287421516777798450454219654079874625848481044876733441369570717704166122083824947840976743919242861119286277821427631252973744304762364786742529069800690987821490292488777598725567482712318998013305095123527909328037155691972646972821463160334522892904916499024759940588063911804744289112668744660660731183069654742181838356878331098122865158977052999141232556856924013577951771781287144457830782901246544000920668220653902840915038109788416845710404844710352672632832053747143749687093139463096380721287620566207643054710459200261669078333042843420608685768353850979716736803288502464423651938941706177544244051880961470749709674687398212041631657036760736236410718730784106159040870210128971802326788205465707338948941444017962084655119317154091053833011227911499367689766801834722496297382991764222423029169038252696293537666515673588745866371945591293646589056420718349688966192989370012065862949098456348947108845356992336344386187117380952181886833762554392368732349865338790400866448486706578887414949069181056040513442006099795130390491167878431888463073884711522940558256211841994148997630023665369684415272927017743646480740376033555935780098093674837763185960365926002060623594149398378447114478335131531061562014183220913178632072040735073010741292444156788948525704801612370787533086385544581065486954714056917132923468059010625871879426592994720090616827403952965719274211808825421644665759819919308954768463914113458591856734044626767642496989155098456370850224584005968359920585807986196944289353540137092255761949565539003801707749751169662504989817382177342914724826658397860634118748761304484806996062446989445296663593521025316545581987190302875175813558693543260664840970879245088444192735231441507959627239522396511963095959425088361613132007846142176918231183107861435557391516572098481288824778794106579550285132631838440286656556241777481216472619014257193553455587004034828106452618297132318999992240295223909500106715818539259610065006242172561655317689877277917007183572696693835630554777022045873088103149771816121229031240805920000565890051955246358203670717394562991880993385445403456903735730481503319814220111467647876744417523313821338235261384584536550369423713192561566877819042586971179324756406801093551748570311005195639592631467447823116803052491437222557166190504403851710899952564361156872895435136071109605752706902046091706806423904272442728982576653548726319420199924985803968630968853238924890067192241138765221146334091698123784495132894849737033497040233471503678608625852588020194384491672135014443676262882635766800728113160260604765925219873333409955590126711679996117470707320197374657302061413289963754810234403035703688052609491315331474340053941855211072602102496653099717429137695604208894312595913942317719291714200080977640856996148987010136759227254172890217139074950448581827166359104275360161138362164411507476008787588571498529924790780022106044378599091650061408794982022547497722336281339551799609722089893141927082809142041058038652738105811011942591671202938320979570097032967063042473450221218240944354440098679522872686961118903627181452683961817809611137482967317338655826569722643351355949890577312906594628620813840981664777999118732710895614885512074495301530128426629293117828268871619581326999889595981243192292569031810447191458697772910171802485062852745340524413947174004494385226228890638849702674746259127378809981244112931417914660743762367622163785128045765313066230133562873113656904237457776645583177890924693980388769108172556170249480550742093511946242675024747143672520411037951842611582679571397980637211378376599669870350469532518643575395756088459068273908242428909357193095613052318046038561845984894193207787957446712210202122796580389915678736501741767144722896327896421569294737280402546873100124673286109278321085748065825111446141935821779936915641986740240608580714745139793367491299089956537143135297770627261593429528976967011340806140579258053883711454855715111168831978968736003806368018672751559314164885685566586935122434432692916087289832072425108905416988113511845672550257188884672746658119427156936233685117248960746069391043811754930959492661228360399529837128121474586855824186914584927201236707927980800580581308005158396178328666317778044176796710145606963569774413111931617504003655754894749289407291245881406753251950174316881454257172312914431029825689926086960203515372152219264589186867209003961205300788684158600129392908628110703109910298977964508359763193491325506226881336533995240625280794556184615125016812289807952709684280341022815512111347301988864354231119963405388301408924913327563263956665490170924052026860802762762045206916294578298688452163044070705968723573628082710745075418040816677993762781164192467647151489944655565067902490452651462607796880604710504849765346888239687718498527298326936940069530840847845992634380051916209858537799233822338004633806640503845358724074095276882043419975197004056964297956783086043815196293446975506565753057708273976271496690138538491189938841614924508001257340721487182664814215005768647656900102446195258490409930088971619300364590233436509658503230671044237725550829440514156639313399752152093278265274587005316797899828692646611368173866036962744729661201760166485556392306709946947149829047984697585924003165997794101706848159669148444874219651695474733647915059126054083207225551464927258232582377400437758740718543887732673038910699001811960774752762140141909720008024805958953041917641019106554982036817277922868738570272866114260597258804826642320811340265828768704302127342266841131822814434816457471022221981067950537390419246204348306951839878289007140265231022820803086287286675882066088957857416680641061007564847283184875159405323888646435202398144904708342834489791013562027372414883496697072802308906569909556645368071876054147196403834171554958811306880249266421734347252782874890159677693326113668787595027821612938382833883546285760242147694480227019280111209463404432377841948673267991327928788949777148820720969466030368598377765120851647159179851434613134348718327173982230358445471432684579511772606455130945643790322312605209207147670872396511455015857023310794109248789333287891979187981574058362546416993632433679691639590744401923148859107056328965020587640735108172186420652863496985093641357476767246746333704255172240533869808023704883549160806847914824829253884158482470701241007074206700902286260762444229606635147442220301293662477369860160215895494050687447292835410929054332237998305155995165795442531489345540743619247106128998781036055272062926060843250013057313921550568893327855916288430080159598939315727057972007916050124116606362912605626064384315466481403515358599213150318515062948826493317901905782193677816159590046723081622296644817562328430140471997470143757847259414972845761935384992971483808346911521977870931833324411052815279930312148822177881028185440031916795112096037792972151847970267881481386016043370471356424407901464744817159772725742907892930255491769658132355231037551477319831613953970885684722451944961362296681443574377922964223263161721593304990055362538073155833289112208449987921963652724201291585988888029254325741195133495058698523034961656163128291083411380239562197082754294540343067308899875532679542321021132550126368283846478964024005713580526832581045523596835756576600257207020729909393993114759325428684409344211355116200840395645364207902565110855166689207164368462923795996071794551517370401587645937017540088819358903388284380233964584183262204836147201520751654871111040938584521635716461191179288902037608724405472517010316599819044611239873170118024222310248698169795219487494441682192301869962443294414618447042992554073412370329169135909983716303215588067109410009683784984998678088659196931871418072847040482061845671398106320738585485787191340566615810878760816651618616309674379179160729754288169588472954774550283359916442367998980295285362291885022550081046479810774431624883613884041190561749218294616158995065760600696833869076230492340339515383817577645065502330291153300566748774816099302961150516465569314571918516527155909110493259442361530540963783841584429276038551019998329578147364335641876414049554954744346638236050962899140851547937380695376761585307519868891210389427627455231765912610988940622231352273933819546477838735634701322733130514217621035287477593371872521314366887531793332894480996987198218701896288296877441620480781757579148235735128826194373515088998082570044139751039978982667359943422896003979922867721135400323755180881730893549017282157957019603948672758888076616888113713378152560437962508288045627924516491642194066740065925284233881945908766317137619386459792915299345778093429278312131207641197161307547251276007125695888636281267825177786627183478804649569476884412566528574222317138740285629154338871082446163544661463829058398089976599435343223681582658070440539595247014493221108511706477380330353915218560325053102597051586994900247051022416617050011408726047604421053313537072386496663895893759948722428268927537990495698646355450523464291057787646833134322480062035886193349046135579477407125113505424469014508981243733346502250608338121881078719162239388275037146772345455673040188435798273921318976524900367492470091024273803092957495693868707100015933597068755598708742654674708306113375569058108514017004013450638608408548670674896910996746451485450555655762346082347734903764298691051364353882942491480972406736866588513779327473451941277988588808213558730510179489360001251127968972562052174909240076234822175936807898501056562913133481948670896904037911866682568977278095048709467276950321809261990899837556988818299539050995305870483165041984549038305474524793391515778914291631788003486363448351568937237651195672090106016673606254146627736691600985647427718919032685744316062995163534479833032987653776312876519843555253345165116248332562057120848264245319292594439304645596299835344298473193285769419912251519337077761781448870565665791832057852570775757416319520752549359518260679273752663107012602727057440598100795337599756166837869795950454714307642337524431392016258395554409854458038333443083001021792636646988762652276788570217232159262018620058724124845095466643837056585964931016427538309155276278063793191054955732278682299495457819782384437245306691157986676834079630434723119618120203654349641744770251742183984614329821523668017558159252695726982688999043333253676665734844324162214234787736617245797690378991273984355297862236882351206190726495326817267469979003634610156699823945455691438862685513075521086880357822188353833003993729425488104222314822641786228470623874747470032414827594427716927402767409128830096964450049984951282030245722058862315542486344465357878795189454488882466216390005174962838931464941632848231233845957048653870443110690180926712535983211555663918496702713547998379332771174263548559763689936065027653019741916876699509195417221131634556205794473198409818389175574447841560714641302131083965564663088517403679374399457544088958857501202781839586873010733103041788476168514988940927065204553682877093048855793616499708114680562898164735037184789781081799287795745499868462244637536363935712423655500268160430567371603669179199294276690939333875504999949791765993985979919530671810294600777113790750533055634382466926339752085362333837949492927767937973138320551145082615857014853454838259436841199935516703357987246508450153297425120560552123530206087304486116870074607537249778939148184114270473181602450781464886646044341990231589228189143849278074160540450422641666444274018668342481726767065782032943138953333497888693044702819984141845137431800781807389753747894797637511630578959746589747654234732190388145000677979044228628657265085564787756967105915215137695116296312072776203843811762240002399071855013173508771010426162896997483431291313301348595647317019007164467826504560851010487390071109455813285332014953899302339446440080433573359768258114456929059381950148987586124170499840796464411829325283036391461722878846835853275663760616216490222705413287348241227045994964621956976318663578171096973720110793294266141576488591033418051328126102241807595014555135352994404676879755935595173171234968722131273411850599866919263001706922616662642221767719796165720868001061960580235483533811950070654183652307154684266600937549074234658816786590794302378052271607680831515107823236937218728138487438845631435969499292003256122274800595784518315697650457431648984955279490260537726522413518274424158524994957278937084048511333057458857002355295064257877482625178539757113768561700776649316439097098974080125349582367382643119400374655670024921279875594282139332669948700278822393343470981345230001038417123085113809348209202226795360735804716883149678470329897025258221988324348580160223445145514225788905838772571341759316497501956454969665383734441712404415510690426457923266575706201614543225539979593373749663138625635673259633337986312740211436228822874803377608325453777966495476084677049301483884013393254366540474394726122555968497195443529712602637941324731681289645299291123691612740721158344833074665719421242671027236618094785454252535577883390341112457997340507053246872505641774766282506184864211296388677988573977102182655792218058542197125239603312151978616341667561277498853924371896876651759753805078903264562388655711777810738258177919941173496386393288729426129137222208185443813340920915071689658773903466143822345175017917931456972972085060247744680953187234295789570635918050225431759940844480076779893274588383368803624194014914485266204614813516430959191379923032635252178445134218516815553903378885638063341599853714358931811170682131839997791758643121528144094630038576538353452778333485890677954090852809645981484980996428788772923249496207696904642855163944555114556841194550988595736273954153194101118717485726438433573019006333422807114912966240948334663807307305605874483819492505250133035503760748142276249549387149800075520224756414205654396017375498027292807772526547587484255964064749426169482009672974884087430115754459165966943130284871549688398645403030155352302942821158892792570798453297225230436431603601416637372462427040192769273372390522683464023457716422960991210489098996591685495045436370395470359974706787475119035455764087062960547787722457768763068206114820349707888901547142984617711207494275169646182387888521375084502279985870482608292389968267904975162459868206812402342898576838654375563615024499306623943934155378678080520534750441034491380513957745350504420052853529305720439146051821517780662344497420793511435070110581171512641015800884950467712783483758353116443437139249467991283369182433309908153513531627395993539983172692757464355370989069492177557655879535092973728398672453883915555991914893002385947346359966934049905443607476082537342615698364181325100980299804438699621948525278900995495200471570586974503129189564596682480953687922999480932055164606640952213902302950684161795712022308379495150788742131898080422514241536200897230537940733461575657250610980006733909104907941436489954293230618551971608739631525138809852964402019810173779845907147627842967930113830898062226338490150933127450200278595229962726076725068547612254323021121375071662613486041253240187002186124074146010565255193103368881082737391148756254000411826477863219252429679340517766579728251307311000013021573937508554178624651848243191123622992575638448030241373092350786994543022725584300433503105897031087872680814460867782687930782420486526870744350028896604759641229094516950549587791676915060859368438087035656900228199965498570189351751208422775209885823904061404657367501495820250180941445434841655621144466163682857791625395599386670500608113845273010035371317185488602728694202791011939319888115891999031615307732510152547201422813688333390806648979560397591034072741053283805806280519834892996738063387351642650764183831920823435445088085595860741204299626576340349343846374665802132908287791182748595341704590827115853436090223728268321687476354307896333555566191734457722580080647862213418143881679578007957759964351096545977974627956866982719662536556327421067032314984442621823488976450650652233331315115707346568962755165559147164201915493725782057874927629936891836417599297266660300747054007197958445514697489091450902335149326527245748263145577080146916860434930020140666804851057128170491243386718897679952492167149588336080226160491442742467968750459413404144975952405473023691392803848427592592180810783228011755375368886224014187719978120526090407536019051389239959590964960391161727765480478111570891290548688202425026787006302556337840709383956974155204656921668912059156863150235038392281927346475789819676861840356230843458780448420457767766590622419495551996890441422508621642729569262406764704381315988345596552736987338098240319341305705018235219017525274947814093413086973537823508446493270718619742891283585092703883295214398864406876385953303650048961465814828878248041254565902205811213763231048209516309698866359289361955979639362651940638381213542556172587757607459708445801603679448051317499098689370366562126787096039350179952010347462143129851970761960457020708097147543008306579061311532344969774828273819508874166869988832480657535989383155255850561697273176692951002441170168397447533784061307640440106294060654220911488413003028526828282838661615808289318788478541087642011693205831471877636854555643953149947925500340002723475058050959104451562321900295962522394607893504590331103957972832147755802114338509001425722796675351369986046462924131703804544998791056853930736453317010404677872836483492287090638302244725991288053055006200162235538380883407069788956244817017009861782832054138244225226098087173881742050898128522800517384788129869062508046265142196168803398203363607269825517515058398646416679739996955611197628220155126447694236052756850652137771736246761223381122379070708947258517282627699888161509751422833992002639101764940057430982032306566459299347512433504265782783222196545386726247452883782181176396390824444825732188538879655364788021572667211582838146453632112781749543405276115601066776782159501565346960940441585844263956540339776717968131885049679777868976198577464644826715549108190370322410362500036773138353645030718633971838175854198961877579079190635137471235739811128939128599498373711147252156853927489230026364381971146546146996351251396839836462420915740079773479163938368751180222660930274384407947835854689892768606555029526282052622209694896608119418981618654299533094272569126258272916165886970605102952151835408650962212383253540997923506699398491675918481333903015560259273590248427842272112963549361107827631175367131950664213838519240757841667215789071538822514351133292115322526256993318839509720438904326981319967038078070185932031178605552561725180330907697022919188843205789986233017458774876193571454163334420348846848341650297787525451842215652717698049760176479614715871534360053128195289600028761097032810129190786471901854408393020383750535392536419311269855193735957594523742883762798791278106949056753160047971710895160349630348434147451562143130184281123409214058536302768452308753332868534481014741111223287712660293610251807208989748971007459530876951501917578305525930762966781347876419480568752790453315865663289748767002059780005256161375004161992700757683214030810770837335450217954881999444805074831864986775942933141072431997683308391371556865022854119894528181562013589076132062446327713033059202760101121327264132163940584839894900959771503589364868942798647040515304441365223177269660693822227190546353232070656954597160834431165423423130754309400904228972310694242439375137125270854250030892917124799137966882379225062083240478186416698689225418904208839944539574387051369525547312916729366235976306128114037886388699118950913003218252396586211381182474843446443392358281423325682258740307510008624770432875103001591254628689080910997426419754459751054675091396964563247238192759043499901698138168667069992215731607132859342150039926798992211111580232457573085402693489186940962444732657971059236429450533666628942409100189015170216790338940132438538896877672049108914477373610801623358719488860756218865332903257545380576974024855588613574608322839470137558771097934737727881457014462810848804435726894082881361179958456014649990025581761477276893405104279336345868907712213769152862500045398525963893949398552339563879998431380042495943742087461618803999517368002683803885046836118293512104331687960863590238212009959352204119553986666740261632928536570998505053527656739156973646645487050294287271285473430891965735938917964574634887534371667656111729591345338110262215674389190824198371783451882092505739380134773092657150103531996121153400850015180056164230181691796777979060974399700099169935944727314264107588921243743329877934092647871417648263820668178699845337295032123290941859724551121149116398324100191947835745992060244438259261340172258037284465788463789238011140875586019003449872818894724068334466872728661971035650452207099880093487589875443489251568961632841805549138038629250831349124371699501931345291630107793387376174858232831880007783702699222245902533789780588155290433221951888394623380646064467221577202958421723153325789507725399822248616895268495934289371797669493716031327069400311172030328597779475007615452636702071295684259493563087872967983851937484122172054430720143963687315332728020007062610721099889805994931531843952625057385439455039370226292212273696041971208825175969185554206981761529992124459250433186523230780805239421276543988517658301465473448725674138102223220169814438708404758103244778673483143287246237579376669243446597008816410291594537132783563835938309689034917459381148011953678401203216634955033445911038301694234176965343574664744132831913086795874201086027386733633653775314606816092714732744594141457799326823038377363576964976696656866417664573565929094869106028733750018083782412282000785153296475554477880233287203809452133667650656374251286607656658352246643236687094421757899573240653157574548875702039768862982375983411814965441482888049678576942527486182552625536615233682978047668997542937376516310537718225423223319896222853031737094875392590245420905971573008397099877306773273457993390838351687205018811340963981409532288837730102557428291764396901966740123277660168353363722608354461012040801511351749785537405841281616444224285926135432365951566240847424231475570833275508381646330914571905671430147901179472187191186434492228330137292210155327281609061506667545647335001275347181262142119891152787154728865846971259620077623437615191181527404458268335836650820008525059235064200851459663622688126766488372181440853228899584412700146112695179546007165378992217616730542365965037943869621331861764734721913424542329561212413371045023780677313526085752886639099463496427779076337575104632354602098104071881852416874486483400712702701273689179409158506346765916818070004855770568143502534174401023826585722956731655485491385569388542148145156866081931486509296221949124543514066026118494349291695663554662371416817915460151282489355228959676307118670685421523507691828042532881447780852085176062384533670789272580434339209870194775293156177476890971850949654848315473904145071606984709662798035549542489641697383653481173870283280935647952915390713376066307555991051126402282181227882751784780569837076258039657937946665500715138409493275022015008787519124380826304763368472844305280604794146307384035112106433793310069931050529538913511066808653998740191605949454419078289610907906430336786874730319140893189307910599581391600697490162966563655212331292235174548197194581768470182717630891410237406891347271380060151743072661841762269554252874161826499768445027925743407407398629822494671761446996606747875430953793336858459532538816697709986993887400235166200927087563373476710437289521650337097190510265517130457896117168543177969469165387593198787322553862069883838612322158663166966820021333955184807208693009772375400070359273635988997805520402317032001255632293880788637708836864807368060150490994288021932625759717050293570479538057111069246932142530432858969973652744753092999691042406694578068860941416642075674892130547382274395781945797083230091146505500257748716265747253021149941526139806191803494938127154161263390753953637671402242354442115647810147415976352458667220465252544370963744044879397925159453237096905114896697196102924262172048842874968407391228832156489196238989832357986436349454309617508672412387050865586496749209352119396581877859808062842862080460686230959085484195506273151123571495911443203386895446316340486697660954374465059050648130980059890548280279561772825000433264353145037061253611571261684558644590652458644385453786740510918255883384607171895531029245858480109635112291721161958596559970993065550778671902205949136490558569028407657328193837991882311187950268061116966023261626879395618576308561012999157679966281595691285487213149713632707078478411353921635238070799025770855589207468401653826788093120087133715502940007034502090013700735158608137278133169689313522376057361068398339669544691185541773664794213035228232228500700062105692907657530398485180783285938065063635725442378913094650503061665482232163764902947221957296627147369799899292542107724398671124606007505320626512593228604032087531668571599162877734067483712011814894828041430141107092987677526120825160433482804056463747904349789260706291899990408063183625662449295349340146363304546856826582340479475738327306042587997177375869244279159671957040388764632248655837064546317086562720917629468079687010531007448383235607884177969718911355742690969336221074549097951750187156000636719271023066063304749662172507333004440549980594991841643059744738840936239113681802296871752552047986762466965544865263052267073481730995404188603343948976389385948526387800046663050658543698645291090950181634160473030098147284022425880041014098643960543217059973825990125450600325347587513836860071638060724867818881065391673721386875087669292722375325003283002974680516328769286439126647339319869234195708003568093021440670508631905353405694611209889382051184268561552734090439637633962757615685719932496579031100617450255669492143288374531913689864843175047435267256244881196683035842435773055515146935750693741928551718849532632059997093051831722908798638912727547324998388245489020193372021143645596966832197891987391501962840906338631821916030582935382415765059815605434069324826740538829936248904981147547170759871898682317491358790692331801662522572589270475014839608119163492914845563446279285551596572026609940985966970923317607214908001418343440664503385533180172275551639122762747695437147745297851447855566146287821006727005512447248534966680249047821078139497606353477186617178879730633775120941595743114021562715949582646853150831937181834708891584986957563151643522334565619541830032559334825501436731644558520835911988321472773007162350260535301088945509571412334680654412791173052404692977124785263372017582363534293397920972524589777755186564893428074855314058494349110971519631129994917133333868088735411632384391516255438735749579260668595464504026458139258762735779834646430728355464168759819247136761588940774316380054320130556200604010259755535492870612014679056066078594673702959330370090957076006773817887721441526987025235564865364851639840024565043597555736452135685663958754533309409506199588288521743902286685656160914903000377388842075380819815915953177336252561558820393148025991678880911783842267638377401239964830354740926613529951375261726777518627375733143110086996024451791121132265362678461675818369678316763504322341636374139557315138230847512783888613921130893165442849667383133567271632527780411520318072605671791806815122278359757744085127721170912775856040405275282834871263925187548775724459385887474970786686986706402505054884414106365826077231446205125681620294115765007855248651093431698620758187689307405468132538799519709715365594665930635024548709500867064258502839370086590513822780415086529947769987088808177844091603171817418305271310892733401709434449675399073585027114533162269106234421423646466963618895325855430350196619770243861093374066963526094525764064517021586951438595210430577589620761335635080969533658046201263608578547466839208033611732359457686782111254213927370327866454264878375274119488399166731255203653961374077652499445559249248726973586855438002475079362448734304458552227646936635824330058883111352738571358827503171100867068070297959597314951034717992335546546318123001412332452305861000646005941851671694239006280049957605608849043745150867364238639209972408163296993535295213492827476670996361415868470422345445723435874217138307173514915040040549566706810402143933559662989898503728151912937577389073654433633104742927516002120621570843269921956196616230189010961142070180037785393687047922893700406239789598581020441657372067181798430345754033627181792445955965771979564380569923212600342902471673955985075021311699077732832304930298513578965815243577859497529391386528873251784589233105504821723185418608608672650586005265942104549492984631147059981787419293499414653063969995441742099941336478220817199598503303642943026045088772368161888661983623576765204399516605176185767383821420764298728648667300663411896725069400069318058536791418008426445447039010157162103622303261211263406464092280984993803623943579246744169117864882489478926234798477276676542545710618650259669954720982168060821854083323358805843484076085764534687935191627548220130973831991676980178915983816942691565046106524023698717531063747034540631666873032384456009015048213182112860646091408402743200533658915826371476925417306987904211433934550620605476434147713427486665076961579349398043896732392217754369637767169387727338034790656246075151407503864066744273538241610486774730834152128490851387161900715753186523694995366179964140151061903258654602672655958036192113144152533774066433265901102370444141005184298372710578981261369697506245873980131051822194165442967877546841588106748322635525148235539863152659847058251398555077542014460221886125887455178291495907064127409538210693843952147027159181787359327848589423342450946722241037192134721432429302203793472248364947111648046243709083198595916795064590098459546898501737884170766045268533560522641266354822188436887630608291624627810092620168454748725476140320960891494941935938239834684865870407139672447974074614323315930863742210277407041894638150824244075214057975869269956735380819327714449184293492709689938739266399128262319139760711449487993432229659438136879727126936843338805394213119964604329643060838515191204336083015178852285461364837876944510202146437287706443288040726530843212482369409929886959205662425122699797074547199214460009580508452117348187522610066187663460433879735527716853010751361937164913839199738499991054250973821849776510482153119897408566827552185454072043462753111520052253103818007335645264402671618190494240010161973094608876906396014676691351689430276260267265269526910176172388066374613819300112173924422233176652843190368233180893291313203773919157568172065612313993336524779635028073756144023935055857932009991807367371101305175707768478207847878375461396032868634273680865538569704640887845537439233478768364025765444642894616396414846690481485634363340772092918354386288458628397858885203628509116309584479729798270434705694691661566371856272682351188906464305754033508921674224318616376391058049275479634313316534298248971444967669993573475168146406324666761885924332942864283281439529583508986021140955221747467219787561240141708814929372758487901302299956885866862633780140373489262770091902688848958646185980672089272039302597648733155869132546409059481886906781604551152755624005989226624826537529092800462191693708775234087808103362017728280907367966618558725443705375287800848302763218686749316686046425681927909317083296859127285279850787307111088823904357720617560405205245232894503757864293753407749579975256900731248416812852642333437524157171388645021731688381497578340940998915717697941176243365248475604097174281428118359726002063438403483345280983028998482664793022407396530921197042626463913393132837238083006571457756490765276980150974118816903624343634694678024869834667110855880439112007285451409482098132277271785813207049503924739592832559471199493304766488776458885435891923301738384996727919753397776316906160455417498134413315540713580539473810515243000637494649150155384793516879163354420432955709018331682321749379584819164699413096610143830352968839561206808238419165011658240363490723919578840743524803559619925879697317897944338702037735779979040806899448398346722880840951294299280307250012862631105765548267441191357899923153198563534245903076304504180802013503275583633535728561304932144558683023664712018941083163504553004782788666274873178574258791244899435954141713428317099151401561486721750321014983671810657360379783945732422965805572394467346141134041528510038913818832060953304164802789626055571444843051437692100604825420617815565253037876155966738546188543741327027719685160632331700084130519963041991974501759143066465940296044668071995682533126045880323294500268141838652480720331339928378643448863500986757293037630099793763927438916547342572561000184084572941956235117165051480493618070725211302316728223898871839467706320486970125136693160335982711962787704120997888885977923296162113079805953432075373867246029709352616315039125462509810720744534842550487837649098298840872905839857427933337584000010591144754784262757182683481994746060663042907734241780240545209680948804782593014949857100399922576690493825371458656954712702235234192189574062361394340511060078349269962126415987732817224712801136215777497672254922331238928193281828099165778980732931116381456821408017278662118513117250268031639096009214175034854411275044138414370086387481099051915756920511121419914347087144191411382743472740521695994412164411221674059513758692114141395749680707449073958303257126671101461910591318102599632571132295912933858008481997216080066689615501089348401447656123950738100835283217510813907461214032592187644277821932574848513517437149946431734818818498203472662341587679747373877203891318727011609128391301011751972179345380175146772006466679511440859824534526742338756546979019438352544620838084960478454865925898166870336726443805831335054024507783411257795288873664610423773193939827359961049349665632476553820628982924667776993995713784079819912841550140193004960721426161594865412861128843183700925443534010412502554619013782495840469141171253831107260958444379764758234012297849902071811532737625940430613888005283971393255365304358405257705799668264255041958377798749160525739336075800357791640092822064149528642143196720976553611986382397774145799682927128406336292238375092164129913422080303674391694790850254681495520739766216092944955053950789332289293931247062878086065927583620553400060529453187075944989919773005859192230214120276085118890648786665201830065417928817744878647201756588723362865371352688726258927378312385538973681486652240910713167406001716838764986688118205606520374892485733877361268308512408436108970622039081071402360734738425671343716640687410561940012010842676997101749198792233481587057786070173387455239681699250722361829562109541141161269517309070473764023363998836658350868504220393543435802740158515867440405463780321269994324158034895040412701244019981741964972237949278735669813253082360486177870439653834975857566790628661527326430736360849113006752817018015107816970469016440652518074799215358342709643247727856714019368079452841194698322916123954012379616480379194010330166771140784378984628266791697921936667577407033056223908671139025878472863335781722748199921869298846621156978347897431100326416857348859021403493811765892261263276871248856114378512654163342766829564446252803864136703366561477666040951612515318979656361681967348913202130159111408639230890988711637777349826985706339820548852176818815396202486455965057326836727850042798976491153001105510630731341421996431078956949029791539800368588740069690562224741749630324353522538593901549901785584894969440737168651232808686892884677383551070759477412482909559754715737651005295321937987326742074686350640445764705672425510513457474175680144804094776639009102506638430215983763465960982939814950666545803541497260610859014829273929913385123304013808842606130846818452723645273623453719665625421054116762781946874496043870346196332371061198887590224059330156144485696223242816983871125348118170512011396678972836413152844563565059491409963830913539135168985646968760401532648099062624991258445545867381938799314584320818090302488641739565133296106849410061218925268917798575873753387900147595372572756186749376170971295742856688463356260095237025604615031512918810956623421299697057891549373016834007334422705119241158444604049624580621308723546487923954144780449309503179765739772874389299617594494396959773612385045235696102431077036688931352352556938591659566778490320913300520166646007725297785128272930140486146608472978587833809721579955963937780291730047735710546695726058465125868907524977067124435100220412640842271567898743095211631497549863072346603533241461886560924296852196051115118015422870138130634887480934959961263414046173887509209275020002975017491066031107515289127290759649548248727360357406275677950677726400754001982383645084859621250115555188500386324023168376673315364718817330291988163916826768178895355231044182127172275433969076408308109723812921566858318229561148033437051213308820259877185352679269786734337749674360452500841449946891549880112536139266326297464309114116864394369860650629620893833801254202959553730803616069137851014270515366181610407312976251050633256737412845096246724458127554534947912562220667496836966053527988580680009246069518922136244592901913054016714119486212464153890427861901702513361464525486623477190938316289135413216999317893071995594124062320873492697517161569716685149226526054426000298866785983241795903827321289114188207854035254398434176334285981383768742551940243874967955694334049792415503284868665779233216097536837857053841976577688412295286902387196216681608371248000835292140403637875881978337693259759521638598048306624113283097068374081876163356613380254021875631753174746348696196533075086455223820545632489526108220382515572063299706879769513877054775282038894442805263523856470814849196747717124016796222090352387691350311574700067600971571577752044131660018131738127692832104341750660975072903310354629370145108577572415525939890770888788853586189258737137596708925234682870624645438700661939137252329762478036856965783021434032690163477008075704222471676109452579279563936395020071558366689595291161999726168623563861060557937513299995703363674144822572495081876883624270188805739595162719688778578380089030195620910115088335497084182866511238745247912969577791171409534030390227805654653437295071979846778481904762968416065082625452349136808134761378762912386699536157432253217760757121336050402646951781164708569579019700084079898167557481729048819277720448514190043224181380320559370249300639500642913735394536116464582051242691508659569652349777793399699768737717866459181825833731779929549071148032105149636067065166878080143945433749927032691406343082853213372338107670308823394373544175152831669264492879070752753597894972946596482478430718109672419742556571242941969208429548020486315116117882057299410227154521247421783455868355735132172817006092012442888595937136268610290715004396250161622332771904767923762183056132061316002876217277409814244218979845838107170241399628670421883694465143313138542006443868238631601559556263773208085626443763867407649993262428644245998710085292381806934678097538061261398541745844425956256214110734042787172704864513277934186611258938649699916409822552965994043838116550255237770843616426782230911200859563388163076354695641277485808933360543417201576290206089331184274274566302648532777121481341911549173828066761512547501786207337180373767295363108487909780619676297885703291495561962136456215120692350240915883411474578670572580513570075383579101726329286413495785969705376772669686861637582766006691390445156019639896767506289129716643418910599661671054535313068956913987576406443482311629251922870643164953858021967182853586370599226538673806649257231909881797689841390320436982837230181761190874436566228149189412615319971281061011210368814976984748544160405676514805835062624236772714711877484101076487083660993481131619624963735838150753763766689292038660879727432918249502142140427106780712599444912259007075218434934922755045295532249397568954147713206721897783268895657671226107396659785280545471598521989878660887459307519738663801372597877492891430008685171806934113284012948155242582538344573010926812379095218256706629946905198880735290258564084061465859257863679390392653962076473101742481636588571370017434895552028132848579681653443210866033957668837808878780338483049079658861879332917484263611774114729628896562399409888783364703749595216815204436861127906821937838044164017750109158958171218105378039127009818152490476582386641502579997763855860015030056354760989677005535873517178030980947647503046007431916825267453169072857417186083237640917798741818880640981659454944386114427232799301628678560020972005609149068051787002672286317343687730699730503720012530704567547300887910885385762584012894438501627011153816006553368017041125969368652220312749091087173389943500639069385960077074958197929091556908315227325697396455117592939728247614240903873723497231071603325826461163933330710219624118027612604858808432319950504358036580065913815794383982854784086732429690196849664467287583488288817457293632398313793091598801956630874241407818490302095616070228751759832969853237373045306537193290460874126975816029025123015312756024788239292394959573333795062919222189906946693792969508795209294167415329536783077453592220596870464771378679385427223481043424774107551090447526361250533038680472386984352081749264275523176204703324607961192775441983800004296175372739177204825078667837926081808387164494692588497170945753128910969666885736146249928278732519658268965389244873858638186722537495510011149113387947281915661161084362819584518826293131062400650008974921699639618382587621119718023621019330001498144615056676851548453773747938861068418694957124713159999096622616202693942427858601791549677420106076082974573589789691074874006686508598125740892477414994033373776802629547120382080933199239741999016192352582400952020673169766816515459570473645536629478718866327002876738801321056211455925811172778824289507747476237422853795365865425932612404270113677874117700089336503947380176165278397481463178870811640633482382572322467999487486163880360872710077656307994708684891914280628622740030756946273027374090813673141222375555827071617751872762396268957391671716677730793405525292222639210857487264188032994188827214863007096269731423109923069146528371847791597832410239338776449048379272399780062690520202775331694251852209378746689441471731820766389452930885409952906702130990686802420942143592458569444576184077162157764972623305225358631141147016853900355178530656311327180371319725372386216654875422491917339962621983722919521970361941901744093492743103718735247041633265187503751819023359225617494661356931556761090176424208981821639512074373317793467976314485807809450999996961019353947597488491930125796180465326459317049418674550872002284514201500993959624033990774153960634092552339426509634572932822004325820657893987057582254379502213639599697476460338638793204640554132884376633881919125128979411708240457630905628740490101654336892154730780182620338006056632788391234746403900217179618237053861984978973532909807164579349691586843228803046284085520754872042429174725667438320640988092175400146156819871573565131424387674178477283560129150619804564578491496412055758123921855140658103190435048726871593922780905053733876450656350289580333501379400448721238466813960623408020379040587968820673468379319925858557494148053194853015993581577246765708306981237096044533393871929874856231051745474505818016419977598889998854068798566815865677896553461714842654044238632668394630180706239175900987705421148767099870935727701668443178088375755003144246158175784365830277696961015387973241382583361978222613393211929454236303205529178643888656614340466028153770308643796757863617204008588087356641566473613270208250640729780008745055043091075588447122908607015295619057784718286095637340064873308757289444113491106923604492002916540706894266392111508749946348527755354393675679185800535288820985999065497840331013531667087989497132159322343315872780783374120845210478336042407879042635609027737828294169086014809121216164542004418140259825412725901399445616571228881606548281092465769740665798125819966886312515405427515479153217990571141265017447513163276274365942470999633747894838036452132818810453019846779457602114945743065343882106583021442034321975735641140508549528882460779547818744515637858573271200836562943924943732992205271350586087760952113638930587816228667935536061023154292020622987220308809266961311641291097931083715482504265519994942358709588253982688046899394294944223528918191684409048763305915165642207600802297800046144113053689729301253669155028629723850153590225111390364117549013986285305383526760443945890636216466117414057346684201608886988996902103874301078145711249363646300870689505961942564235496455991447275649167363319503937169106868589064150325360429524079705382538435936203879649963269372885169333619040007200184873711378917693122899026713726170579969657432807337030457011113761933599729566519428996397105667892155390207214506567939076407565333492099604433901462010309228206329950702695886822600089718031434967392810588745883626365916224057394411817413327290798289939328724002872334196315079362888571067799603434045825589483138618506124404090538151060853253925546240595860494948300510552676074569791783483577890773955091772236657465884940254075105689403492422255158210627369965402617146872124707342661553107231792525390804878365907831960498426883570680524777858034301405422489978436335621207221101835920703699880231890883836043445811181801085711804618644634827199317627626958744852453765360643041065094695718870840542856056558627184961829555151384252098393223262692695177913124368562830296906062083483698470811648812036462912913639059776208418017485971653890705269919702882769507920546012086494866477999948978661197572856677746711517380348660573259939470945487958511544885603647191760042797840865080938803652415820879287084413458697045300535041087364139186025686174323253531193643209728930182655746516062003099032828286278003273286786424288364672896916066806893184470986922850032241839544493224862519089917439129363648519450624378763978788480877075117393036232145576162699611269094670707997399677371297811407495910051394411848567865696628798788175770691146039277333011851537362455121754203666459904194590893711949809424160893336901228883946702202934273509858635654232547005666276383352755091052729273787478181544108834036952072617928017693386031199800868062011215504481713628393899320499550192958958775672074168280819180774151525081499255347903825670591010369184222512110909408632646242490113902970154776983513546040296749199771937585517365809994029188897968022433195633781995983178226402855639561639205859842773648893496101354864534390478040276053485340157168366546689323808228613768098794387711262947738665067172635051036373212551231429943601435983777439598888193816167382136777598250281627835726211052536098479269870023235395893500757610084934881583057750502003771058966847860511599353063743538888896060997258248708382574937580450361230761805595405086151936645104505188355783235810236240412057162460381325646132306570507897681309395697957322514063408878211853166426518626160002322975742906676315372305569611334295500224258913571037598534503207244951726361999854126765602389503056960948943839574058347249930120626976987482471539639013040595329910321339028683234493911497840781214517953637289969494002000803881785513420098883987824627003276159117612436107351152191042195723977822591851367626396391951151601143213557265397969324447293185704277798731636409801633771280661600587545562302110621784005599036547997358182891093462852050621896340180992186660054351350734588826575436999371815249213878496606346926702932949654640760354911529364189250294223126254681548106199386877769663447156306927916763955036374258527526827753864925057175017698170106650070149970597339125993855596529491509469155458144933742519282240784998442630012538069122676136362369722535808946506719479672903022362574721877876418362987579318300032422429782841163072277561717580071537268301239397412173374575838497998424218271813757023192556114942488633228341166615141890617317179755879539689278696369515115291129672472178850663121968041459493781293956007239344611255017660985030747087264655137629161440859311727091422398647002289624497646149995124269600070009647924751763517448619529012763653072318230187812091447244309909504473734414958767571302286609548985370274331316531755352167157102303572680115951775809159208135895859070846155382716365421621441211030655926690894915568390468501198672731548605066154909825395028826260226291469655368240106075172097540509477287314707882813961883400969726299515716710842520329772377854708886933769429933406249955021156453000665923211050614067791681144509387643333696062907015478643385996437608724687602042450288690048672681806356615949840358277406911068953059374932671608166960854672865351537080425498817101071562794514831378084731040204949348174539739548573634115839664453928173567121013291487266986554662493084066959784730769598553539673764801723766185208839688182951769605241778296410170297352631493577045059218270412913258014424027515439835514915489898823490899128165495325985663695556845984957999966110127955485941593142281302122254585053723703174540553970716411873031319435408200577477560986261616617764904704225564202342860013501092552381247500104943160752336094294988678322057433477286652524487530565492334720320246721569143859006953644159647078978416692922509440839555842308355426475249094851164536764770775587877191287409137805834760084450364222639012071152750280530634841704505016447673120085710629015592471194421658393947823599911239339971580367550255142139007287837859881479060594574175025174160273991607668368629459811527062728075950736124583675530291389856309813222999755243329644553796907397587787289568525831099156165087526445880107076962829076874666286389175747550628209371743993364195564558835390987069398734830163387677344035186811077808763852859678028679827874603812672493549640243139499729519762418792402806613001733073080880092953443134387697639581552735113610368306634166354329295167790789779727520561286712276266675054391764401155062930454432023818662143009941568705758385595579203936481927430909236508417117554244255939830024153947589572949737633061589271995758273671603682408436438002552938030873547760969223120097891789615191648284487408652780613327695516025410366466944650314623214478550948668346565857712324516836295390889960106469272167012247639696661924391974656999515166031889189464079919555681418302386180181891536093105758157817049271709793196027291951245602799191639621400461377029598252851709769087459625309293693058654014516560541800312618540474153951081910068297729822319680720664527516045471173972128737200833398952504304008730605954312877129648509999078942863871603237426501035833682265186299421215734098391838907570254554376780757737761290524818688552007734132291595930693028807629554908564563757541640499396538668107656967221538645727870242074591944948073189343140915750963782072107663293540627466542557003317960354940017022934835513529300416782646988153741916520282623100426667649555439375118949851135858130056175700582175066418291043621503319717407739994405556135229206307715273262368401224786737356014211767357358080091079374743775220436848659346759507193261813533382537205642319987917250802232091259130810064776258606021925175607479033854491211218918035070918091702988476160908293990924178073066628351878264822685601479518759820979525537120647491263097564880356617946664469472514432863654458262861549043920587197067656227219552777409608475656478101856631845168554234174533490224658499355724998912226810554752338871239805896615245987440247083143740345140161749044176116772618806786319583587691992771545466821886047468282605208608053133945711949081972840534850124491800317032338643518570019388625700760209463708608930714017585616767053388926392377076954523057557190604924444839976247763418469320644288693570853197319617259005484077274758425942083767073982757389913699024816765791945788949737248850024174601199698897919966269058998573046365633915760478174858492442638006052592473707993984900654614465112712556176347769494134615087761388392367920944481830836478159779909722878700680446071700492531158382859102971726859125749712901598457609441353423944300521928777736957888683332773569365058269499060761771788856079862106169919502855945249743230365969077556999074021923422562524436907434878111626164144217380347366092338937565769135245439372333139862772592029941318850464390100621547982747484880394472655043751165588122406993097450536856810483154929380130546220444755822637237589222606309359212998643292912449161305004538402281326754457763410105229733076647162819711192393895777455972752124079859114904782096112454941344542020626017833765584510431992530011758992495806328705832033791799516229841597460798215049497535625255011907074858595719042193673413425684393441723714652285316488362400870833259837109967578481494484725083342992822857391946397563264867716630819036899002180418980425036843860186806249872943257049426866909091535933801340425927397526100323206371178711061500898533653500916218109313413388867802394007848624360971635073123714604071115017936632083990745638076437054611848064376636621407343285075228929825043712446141079596870081610173891565150027236817123759468189502388080444223181238758237206776145123822102592919739240916516252179923987128369629373089810279596419732049982971421820188310500632753034372488510160610840679133922619472076076960448174462586752886652097965386561049145465955974619711272393831360010030374998104615002149977701637134209182827384382969974796290470149538055673837769407735933422654039861330720962647143934609127529978561437587920455031516807087710701377643983687173110327839187127403933773421740689716454928795771575067032292267194501452544505282679756062237211167057484187316475193947155289077884653753671878825439063431497507925123025872577129602737066926008057550360387096426678272621121631839333378416509370943630339776342986562846089092670062282797976287384252336286321164171300148257643781550010782382782945951931873170524864108116029297797908545464638796156887917972490285562138309622557367300612849644126935881238717755005579098300840633148078143414223094811891454900042534199680968858261319422888750906355228122950341464513179626097889434101717384828275191546366243859741418340881735448375762481153970043526051394065191337113877800495668222666637530971690862720293854454198402461427277508944696355826795685828976967225775649739348400671123345440076049374377962416541697849835242564558005672225957721110144317408565472313509805194139957321120622566824013523552001476917240660173215758781549108227606407135894521805747104893189131910031596934319349868495784572516175661518315339538719230769562226177477472027993226627569755404159797057109977481399599088921421824413758459871961257840683804610478189987235441928519538867709502519879670536906910467538745404696318787367596596058020513872328541803532486047621969297248732638119002258533711202979482307779365536941545272519145306454221425744062912921263500482963921641780457607980485547072661860600401780958126759862485666887581960879929959308040814104529005798863498460362793268610341539272049891225010113661548251317496335076123596301587211485006153947104681162936280801778442610096310132545045305689055839088091924981915801372522832400958661494480704775289616883313529271968459778914097299519900448930836865424265701771062595046740948698253380628559368230943079676163054283742070227944346521884971718107862480427490648902157903952863235524107555760077947629224762416325198703578411579770446583694698040124016529782938060437643206416225589724945919325523883642898505309143401970083348082135568803447182628780756758282818163995476600204912188526391495818805387507660959755315604305597006262579115458171132190950166188866393277824128428061450435185023757142450959058238593223533788651381994583302795694212203956981504603171735727987333831613622575760698100870588818326849278450285281822609302275815070049978433440960323621807234595038804066962278205162171997884970464859236144939870478592010943884520880269453476280165045748492791202734198736195959519066878356737310409895347699216938802154028534500841937806718234261244307078513570223337877296307632357685374008016463800784426617455281053044236045233019811971177436218815487059756017628075260716270840987924530345459115346710732052488182959072061953625256957434830135303564773706410939825413419585923033020955324385511069214382427133763406437941471114771203827899311648072238055648568291863558479729910332668379972512037835448342986191440705728740840565975134173666367178829031792378521454010371409703175169366998344694890843048563401801311411965947244850025034421537442363568253919983101634337748324046919322315113334137174405869771440432691054713187548347752867773538299818211407461683288554931297096904100750359994485635547334191485968727843564147050431588910734957748397070226880243839276302817779858495838345050436859635771684650968115205553677230516103017323854533038610568202879756468621050639843874731503999303636716890978474261183808126907016101702655232634776671582463043054570492569388072740191208783676648519171136549246227735731443818804747936702339137913871804545742869513689756202755618997464491197291237853315014601455983772564392097392295882431872551308342049418382252024652298336389293254369220025519151333222158450356085581514004459260842484138975783067810825514764059733854557617645551694622825873872825280178125975318719762930773178799011492007094335994200506892583894862197002338639931589532302500318372435445663901079760294070895168437363924321053633684410218693623373905140883790522933525187173600410929968778578592481274099248547313923544241909804302370125163606292535477273874445339235166262291999530014131509621996381133463560943813007249689173642146860436291795312374399913082770833279285200064234220537957545933737412039668762507216864967436007885775757368772166202423958962815119323936477994529229926692824889591934532258884230425680449713123626067873588989189681736665662187139728184145080184055399721300673260788896579383287237514382241142284543580382476288768248954894596925902574638243830457865825765562250144038687166856208704664134757871967400593719139282088190633481084963477361545855436466003435374951164708066796504991482303925319744455327840412672042999191922415763572164199088811238725638753196471973364839911355229172095144972533199465546770644406401053922831356055962862142069318903556436993653686557261289986568065763614562611631821106876973113617157643829425131412968521535708248720297185957281375034079825839272632294068961140910360056472918146464758819254711978849168523654481432361392178599239559239979546417261661418657411106455789471825761455769756580646067004047298541369338645903028739996483223825648836150786925260266070133748507844321723104661908066676486211871407570315588105904729088115245632616380010649971742472309379886340398343237157442179391158082486591122656512661007144894072009843578941469289279055401891769934147399661083833485902027976951520373847836935138710287194305445204057250929149402176210852856585707894912615521871690087377229384573838476846966733387681662624350574912760206144103183441756336954899975728469725942502990609352470405580388500129476633871217257426627499226564020992070047710809792522260508440037117193774961024426140349738012367012379287921066920046337450087563277315418668035016951347956505128416082622620232694650326102094011611971614282491681509930534210744481911339895542858325383298488739210172495938153515678279309017820607376006120134871039300896634500171980280582577712766567922584798983546676521832197368606693918234568466884187315573779778655646318286992067618108928390953739655076988380932346870760246596109171313524383810157317525751917825175631598956217216242702622704668617622829367159419739501306208009943583202694714640403631201622081038127072629817714959704721885461566765600816348864750334185832795081796711193558097758320692258025440272589114318877017665169285781214446990037124101163621237805930373487442910529439500022182287721226209792142301634489037100303628773495785325960460844659850378868775273204080408301922273580099746529952912705597162392424821863425470507893253586142456441939458551203210469499026880780018400545361711288613560813386937270144456757261602795183889934798333093349221391550869143554451081348626872690478274542470783461980071343841146006758682938383307818326126656547633214730320909408786438934763365850110288492431285639399077747722276803095073294647727649088111672521767639947476904216665365940418114527512277704147819311226926443229835720937205739915640241753612146486522452353039421759844367134496622628975982419393978575559597715377664067447543571280583006185684503076885496451048253769427858915636708922245094690412899570448164918468079758640394270299189975435804628037069761524148617010304825137561974830101299277105800943263657753983568278300076805854779690594062848837204257811832246674466059831811981091541877133282588115610944010682186590603833343569972683059227228239886677924354772076821113216632170088151821934504943929944767368369264018359092038730318467727366266268812461830436921118277088436520552941502005507375545502955638179768309793239262639485980213219983788042657935920969196443034050231837499748940138079667626091368132598235998278204861166365629164288858878290722000971214262124702088432054884722767815209712099540071768160797931625350694513202674935457631242335543466750183091246721997658570075174328727848637505191401966196583202206214501925959899352725066666559132101500128424604685150800042435682435074890173245200746879179625933747935035286191888599610240408296886599975564421085332020916959140874585264198243970704017064396923993438652100757696619516850351198575799964975041985049420607601738388700511742245245359843324472762141579424865997049095429974884992801343412830647762780709054657094078344617803215681473065368940732757527436619376293564071125897104687179152716918916125870380187236583733679369253916622707958385895149900242854626073712462177233306493548896766745320532152013746134764307150518309762491079279232452043584908408365845304601806104544598272919429754293532188592852535654606555086985611900134496181001919459203835255233170465854117661778859304350233151141357835389269794522579450413920032656384944418205110631616912616522529008860012374617154926226428418021279428936434778680418631502849843367799125772378748705864923743842766927558703722240179415674692827431079385505352078507936605934240677617902270015472386243672816973993616162912221962281514960715150449389678907942119472054461614533565037904224669213307279771150155581010867407332691573503608474001396303826865528686674041962486553452643496630480345651644529741239648801058221700723051214352995099507496845824766392833339790653749859488360867909218554030046468584317558322825613318754740968096885496154898485298554924800558855464051615810755362298984185963140403375522415204653433987352683895723343371157679385154316356526793057851981735702228763755716907898529193474832017715697790919752322162045843674425483957965763228957921360700420382606225424085636230763768959851379452162647432426154169450945045786513357094944586672508634306206482970461406223499570481659541184114354217133248106887540197905769591452156131770134803885226116339523000306588068321193098441633036723426932628068797231763916851723085908137988338678433962077238070156368827380037045430418336904845437559950506140823570803748035398792410690187276068239185484613990144873452930257454391367676291371588990433976337063225507051821920387223746921774541246935216778306695124382184826710301144307639853360330733487424843404741547512246358997080421855739861048539599996438538239581808005461300433631141325901869116588167547645635673494287821167064572565091981814330655316991697446092264176118348253089905694442768612742221211293842979784208467742792160445495448805741385084612947355978052419083781827131848795609909063115314225008643079377326608502806621254673610795683463215774446519125649286109993301396300324695024116274133569607275778447799938957088248009871618621904967044487840276967979505669685019972398826737540288047137629893025621112684855495608924923277628029018751978489307346290083008694497368408825806579797460829554431444833946687500996965571327504539780101379368880311961728432992786000322520003601638766426670924786400983977648694656415560681708383281613214112346336224501113438171273662570444174306393429083594251744076016812204245808307440362681973237251146428527364141355347052084719560149487917886584377434208557606961795227178052757506424353779155672418812617970207980920394445783315946494310178901115408147514269651017295661994948010049528587537587617344802394213746832789353767288061869317021266533329639600744224166557846835964789268631195510557609702247829502604313033799695515342838422861236791106244503126609207658553434699046947158834445583781732968554316267515556805989206664300518115710002525665408466850966038248324277096979176411879644897325882296945398909238892333077407499641960988802153071048499984562367004750980157307788588627912743386239775127502393560367825517087624766963056746120655080969740564503107503522634227580259674202276466524741812807287871758626325840118474624649294983962256154459031142414684263399497029335226361289608904255421112435115275255913164861894381080801986524083590295198541566975760520366074785376718998716877976516889925032836652763402766377854341218840291176995335112252642800819358400738138828232449426778131498833758280516939167929656092547594475782893890002751983291304728401356899510568847726826112956943908226409785738375458657331893016517644570099032125489402549859534556114933032639213803997207559742453980632306946800735865084139129925502561537796213629870038996033901374383566490596684215275693449239448451783488118365499453943207496607747879385028901565582487319153419487488772627340685781528352620490447237459663359563997369222061185800383395924531948327834327888991018099051605412405399444387603799044182521333277451793682902100194946627710293460063574990135731661272451326657496655085623905719600344971387553463224235676565081810489386927855830730075177481304671733120426512414548553054348045912588874535460435729765766395583556312256652839510515966827852817899744200433622516487629362359556179610483159656204945783918662423488714746726145460015767405591299969272950253720390498248097648666582738917520938458826991625806096204313225482703099443296006179447058114784523663550697249149623510854646547869502013560813700963477320968651006520858259176499631965939656620862567448950878575234050131114229091593100631876751438343979165421398458973592203145997188696941424191375576907801619097150103746199223191698058794288964505056699583095873880444713235059528147525593778483351064068311705195251948920552225524430161949659752059427001796939099919061033520332433853032027454295134882609222858052580037025232662229661221793449652713744711178603900838754194737828573703040872171804499963546461516474988934859236899745650502689754994563514452242874808169778344457216963469051382251158816907498585617727954199820301112820829872170282479961535275901219126220096288692748631811073517478739956752093998769823669793708293056493327339735669378981671832888109637565240803107787490105887520070678332499420456728973476205924667113820416742820138049465262981534042760723372021373122125662118172258605278249681315498592290632515063311558416546971906078255134537854030011538433024617243646858842861002151613121038148947685213568779525476185661407953553706561975943129361833757961583258042286680093556573982258322694975375297700863482506837232578164306441304879675206055419792642654550746051763634777606067463185397105655619538109626176112850751297506759661697322093599634860786233411507162278288479465444334329328900231044254780336331082098749813553739976082873364466075459480512569961058883091635742223177396754435078145491788522481340041467262956642069803110215659392025921271625314515473592059427852769989775393963916464348592093987607098056150186389462188851208661394071946205789734272192857899712162806313279965213390593075483352598154855703205617881910375477447449977008000834504452722305623061603375042813200052066138974325008301496513520317994081092050994904965418414929715526963628057677792012974464158061670434006406149968975323072138873712976728397495197342092730951072240223681582422698343552408827780699829294323731315785165883164466759799186984881785713236816188775043997835532074659732905621172351279712576168525882676943359172730055310596960719633752943607879084627715456639788852758194380853140533923982718215155392488632820063118228399801155195235189782143830435786117983650969040856687952151938197638309344335789744062089775519517228346066040111124134880360677489222805027332116716715742219329273450879439502997381979005102644054764325720282249631667279975737665031833497735863598709791620863581261007001305240810612681647447537355570268935404559854746863745607346453705433997687817069632770882939969899139209147524716449935297482812432266587948568478474103966955357097888147385881264356541946633938745758545851726923578837979840857482947345781296548625498076383654931693591185708664062385736343584453907365215128077444337336536034623228770292982562642358203259172103634001710300805994213219800604604891835934161690039743130421339187557556192975876872678176060454330545216840137832105166267176325623100776485115157027655656084207038924982545347322739810853883177739407392798933107550566833423335563988413353601672061707211422515653161292977115384406317179368430718783900673088011992066473646571063213832264151499249008806269777460331902188126942925227380837161454678824552263413707648171755945695852439485846846961221700346642706344527122295531629168439602844121951123094421528560283834345561887605163764318876164913859926515359679338869615599911045448181186332432542915820476416183429698934315382470257348140421848282234536551078077989448838610683749485040242713438469405356144296954866584652750872943373840277186919903903954028335567958292948401374730436576650020060940667264389363935726500311934624706825553884448214968384156624154281171503764052752358388127872744570154230791358480367119531731358228324311828756028050239271217887339915420779672172344309358335763782085723668550085470464806047945148377611049417726645153724772363582485030950242343068111127797334534654275213861883289890279191255417867540422542035518263645856769253791233635058747772296485653989470452727288722231687953959218628021522068815576350216270264294698345195624096052307832504115076038581842607258694506255309636085858779511594954101474033974831535658820265999347221077464486996879795279549431174591726126045942756636311823178216530275263272563399645896760930923063013334076623713417145351884401553635165684546252698870223562120942202800210087652170523438181844226006607868678396328968409034340431489373984665174669004387821549953394797357842634779374846620908099025342713367073935877887754332632261776735417087482613113078586045952377642414326303824336130678952720921140305084615747528118765727428605176630680471907658677667249821878904853644916390251092483128637517304872794651801438380524490988560156735043451283527930534690259469966526325451457230457013801244929294487243837421628212260449137231497023215211634979456876475266861578321687070962445910601283147360784015985647111197371280095873731773732854366819733903952471766350421838886299827231577226562776499692330736524817048125787210400344928312846360870710220180721668078954356117928528220870733904105445158557859104732791356249277019232536642157791352663606733164707351225185813921933749156583771204593748316947278711133730485929117248124715036722310880119169120730294440876712646633899924825960926774979183583536529706518065516848750807159224935103664184836955801166669095114572858069711067618356879002217697364546129282396064301194625106366650868790406305681410926029155378974717864395496030918691378872162205962137626662039274069656184731039920581260756230207101333796924141761501589103729425850685674285187195154447049123994417364163507290354844744621353231065347770621939255970299744649338191572618049740343655523766376400725944021836852513044538356365741566627145752125194607847230489854948262581435339334813848805505395822052929289925484479377540259791534539544834326194082927082657030785265297202225237028990991960956863986247465767095013049186451649447488489610170104793953727922986166753707612946047013878210804064333718393836385413857954978762944273504458926350374148062047663610342096664450711842143935301595790816469076703922924778403424225250861793979881996179048867952844659940828926892479396965938754643756188795204915273080008290467338212458822091399786915267292857551797824932100501836077799795225165758452789432853677406329915591033361134929950638217415435055957134279536810903314900828224589531753605319975376516343243791723167905103692861717249720529123463401144893817903373904836004383655222606545219510399122495652477867245902431228245057854138857325102794783376752179708573325769452423365692328362170032597683362307490425786683889127946490987170535943692385003065112537993301438815915659254140738758747528855156876195480778110625498179694586677853182777733700891847662583354471870739646521541532662499129212986070733785276809513206098828811250246510592173174805862789394329092274596580042366304610874999348379376144407026019114132294355342972161010891718769201504207248360405621058343220398347387638895544434435263465035379662982289473131950051069030072029857921291726440257472183667665428388776632503544764124334900452869760146555870041450564264635231960764513523312864272358378470203215194007097484968140998788400185654813384974930005817646457160501192935305561954090584428615745506235557154821753476164893942250147793073246035187844447802845841930847379440445628745364598053542499730209767941021763200124322260618220688726450883772058724692329994629132528297869153001394017101212975643660528048980007054910831337735347329695638713434197262465663637462986850069955056721305297130845242983792820390301046178439307141977199663267684977427764465757597128915521207797137065950890931819621982604423061229244253166086748689275368037359342099328907321640933166385968937877526933658287048959563270248833494584773465081068614272066495747407763725307081315248640047853565635736171462571655856419568919303472182036824512823743677404037387308858120012274238703261015876911900202546491790845596540205390737036517068569071745257765816458368397121482569344481244157989140798287998305028754002732697840619118982729836107386001332131457571960129145358073595397607260086918243673928915945827815877179385804424699314935533933740225609447798188025039698681575200395590107378884672455652994125482991698186755214232239137193809228890453977274901576177065325199097279878915071576179417532870275982403879358399416799579719942446180141231810549934201033909094227904370427606515289345928448113961217335709772523225629422602263643018665835051758823782797178459002133538298585017416670879251247680736670753320579363173902746438004753025921492356957165733918850160631697383521852847384245958180486771518792993881613625551236179855211074899910950867171038728240796363734224386656342540152445612986996592072518901986169149607750827063273491462606996518487077372957234003140714787107543430599422142444670475814606172695879079589766596123596309530759585535418472513788251837846388649542517786707659987491925275885360673986100471490257158830779446516986122756570813604417017653994063461238605946154943472136837058178724963741442180453620644128064963945820580738640679225677080288836929616943350378942174488257562300394043706139453475615396601821597942882504064146157193053334607995269210185355500814334243182124031839717144982920202279835407426379240147574751775294087361057409611278910029777706757867326964652638790499023636285301778436124120403738886467292282544284129288517957498317540323939208029946921462867806423424412215261192537200789645579059651912651735247700256712879498117776268627509701260564365867913136878752019774759616651652734101970083594647320319961463717117344402379902996990092430837006989335059643207657007523383246887030253206151795529730322811319954917896806483816081063924576218042777311318270885597541650189776476238845258322960377495218302572082562404302415671839867075591010217581340265985550153662644543513056031454510430473227635004606507050051826319637446197813341738463487099237283031281390445012965412968743653988786402269234665814768249388598237019118589225089953261090727679131206207850514889098388516873546295725680828061468822302720472831570027418034014665920777336151875814201952023237616884937159917821857047646067801139876904752901405729339484762818695358184562892608065468325671420031476127759073771755987390297475387059114240297219992469362499239372959077196656835790376688140626553929576515164211602555969841136257542645677382944492478259776036285581073960110933893162007208453961415395906562560978174572159070091576675390666129902368199764799831205595378585527680910808972926184080786141830285240717722632965144576175724504071390489960504573604786507097725041586899950827469004085525670855994228028788453288491495512801269493956364363018608136834399474596170062259648917054339484528024468438410284483720465464541711450297297229994825794154392217205843789374388723639656741116007156118209897456616766278379154302934036795091139095738829837331035266685783266431994804566526458989250523973743807347928562188316520795085659778040877995471193714473779903056101570451076234077804716654192726182638389480623223201922251500336359988305438092668991558107080994952255461667027570646920644451345338330060446322939387865619608367858676677973578249686542151441759734150899302368810443162891929984220401573339690627409077854515293863432948577345313831159601730378596178223497136518497193617523636139107238935552023276767586850547157597199005187971327156884908467272781520536755399082513203028385147666544409312134361443443374449744152700845153248142223672088631458307770882647952345727042094900243156742722041276744380473495788144053410235789699464413756509135636057749234797705866686017128025415391488877596312055814013777196965715959073027209355788722173148252149388661141952131786322681028992660462146141836765740911800071764689243860537207345461000108587726580497643317604753207209259648630944196683483875938190280449733521471316543359032671446058508786222713024362961000695001737718914560483386306508789918865465016875861014058379679700944024210347356763451494021096799370378979290455044491755779536323710525925072720419469966822452452668468205334720080233222730020516065548840824719841682607347564666873805158791721107091701444650397844209197451825240142673456572599168181673572618017614744341026757796583780454334640905860822619583378066512158966801447655468318546960062589342668742207620743087608895465324889372481807026590636946563172422429761031041841764811651013757600445775945361767153878767362952962539396723939796290201186079144245956777629579222604458554924254700755874780404942541457779341387379768786923844235709885838759894916512796148240238511932165022282945779585160115721574238627087224426030908691981152400032603798249385108732230471486800777075162492250752651402274715053164218025511591954406902227025133415124766252794529598398810260588499232725947779029772260684722527189960266778234227438604769965828132613621014196840603720794011298298401308360550808963593699817900240387178768522794287712295863203920173562082930027581277278098039993442379799836342028343031034204731232048850064727767971637935404183253779479394575121457366907662863786469833603839603341862456457141285659648221876556631976323622891418479946061989400773302377381947304229756284052031539411443879928886035138547512317779543113382170231902264268956119117905251347214178872791040340609716555880893960004186082726228104942820218348512191424532548209167625949370467791329822802226924052836192800926784383456127007133560524118717496533973502826586875337290141173380141163135035176003036022337031863097197575821727803568697463840921039495309456802410517048754008928624891660825104741112504645697391251251418362870865634464942912367522256011576616748172009357980903389347330557378050131277921609988189377126747592067862872640914318646674432611520235404888480595249839940756703048357895556823916560273013869207774773061952961290936466531484429896715747013767389581168151044038537788289801154488206628365421093363441057370746195883597994258724009257449314856012183607265218406379093438928759672088219239959769162494854572596594977095530331044287991527990509166416695421148206951598035526724786308985013207304105646486147368926757002385997886927470503504035217377044818043620164023427921501772639431586635783867601224088991963941525128278657886170471562649076104999186201939915455348098487606733681449559196474991082300968920836169190933930071542100461423930630510420959811135618419808523307237988149025534486478538491786342739559280430121644785874877545340083961293739338570595521144097614934981725577632284354933747095092340834786266975305503537882488369492641422710991353611553233055440918784995134428611566595173528108823925123415799657317482893189187349568109866360839919626591343091500892815587640230176688278295773003387463966366414931142643826707294695162199307193091732773749065359723306048093274937736839561196231030474550068961171831179980938290521550939316494671158633864440909996810431997326871613890594214095357492008032256213625764586251961654132712421490656541740861978664841306046715119752328721700640567064717675438398351436340395143799800542967794071222583500324008340638494161842046710708528272174963571094634315836801129715195361187856723333579046473737590366004741760868966344490452646563369625254523831348252594817535910371308994789632696879140200624732683041927930618763624955757357174361152304698398915052937683701261339568054015760851011143376715133713402640024653988927746703522475449048245120667746511815153073778840421633692530988039628966726147620071087935798723088120168200784130430970306973048156487528427929076371537688636835629607594107657291523334668319408369961447868475301613761160805199618978990077138938658570663517093177334499262953623886887495440572070724709896884869219245455440707877340822722123428754568116439474098535790715955892344204845259038466762304505788099036041161524900216532273607098160029131422140170039072647957555127054810485967113271194524033414069720286122182609386911954872238430689998572277845633948843894909118311659693924483049537527206502935041845540645086927347913805405707765253258650200236450997384387466058983219396359326569374419564455262250028239038702293054435708935415931750488898450857544019771203330429772185399689791718224316149894744669863975749628798756897700931651309370153830566277145930076790990904351427504768984183947609056295742033631150694998802420315689216350086870013626093671964734753987020236669390041212257244029394305619689405433314576971930480360947368998456421783643954081054424074005867267916961247519266345177606205612613529275376917011518146487776882639182285425654227730597105370004348414701276681374348741072572706031920989434602004508141199816231986074530051407439436480031838175318373352213510919551158307529257797373379819712293900406102937710854283879281004646300319330792759252969289303948433666825251382232709910142332334646078931912333095998262086619221805518940300752774390630010402198365228324682337775732922871852293146305200865196398080822445721489762161401479706664467479166740689941545228340921229820917065523452345707759290481253737029223820924072196674507012125960509585244377871109440757013572335843897662588640800776827750372402930511411083731436859778455654297608832807831373936425589857248692922821882709300782705625923558321913188832992714440067694444032630284350512193486718104286950108541566956117801881505450801650726966168109682934175525134372885072733317273365644430955670883927209411584523632724163777143845946727063243910994463005399045318560141753091799112533958862854873149089122243854929832897054495323560645130009921674669217980745726816204533940696246014925336819901336784841580831148974602795791908317175811910384025097982864031968798598076340100246698222036710259856220594435183170301278435401750563302555080781761554830278370618468584997575416993598578349022267358696292973172321487582817704929289571263098176547539313160257366851493690271119639648095181755356320439801622412228017751160373598913348612300894312740475204386333332660937873678365836988313053703114536618351836474907032914129149092008218157817069475040422976040817539364740667570968181490832753661446840790501479618274882840927368638234718771887719510869729267449332811528615510232581235454027235436681156467689637903119184256305944267469351575213273310438186747813432932289983211778683368860344544968118954927027641214160778623393647460292776851225661140836240221039864224432607257010159852870580858095429097174597332989863833063744861763346849180213079304365606531184669463538702329594831318100150570485121187277992494450228565604505806664553491443457728135064091684350536265142585673880788506464166982484951110610741332812055645745794153216264910781906176371132203050644951066848900029501436308831680941344640537737428188777182954352298690668510169214564900668242412419494988248986843841823204688841720400243710496156127238205160625696423262935693882119939449378336301882709165990875300681966470843657457864532914755095359003276465493840697184498848200393165494638417564961840836219964621177604245369519449005856258151117635169764350911684792766808752943328082257253396712398041922136673622468157550492275212390596419071287252840290202241357533474542893671825910620365598857111790507400122670296530512111506346345511640839015700188354202278358823968167896944294987683631801877841690259253746980538587141796467542911868951813676078990666455750035363760645864466504788731716636790899127792571562305333000360009557552489764149897282365660931633023675092402549874928780663511443653875055779121973740776587985637860490380754646595377629658546405943184179488031353890032941760385136719764599176748501743489119622027883397953381745583030907730877044793933045463726674006787759461831939547033233533701120336533598018619723112357808244668999433668823563622967554567100731432900808031702040461755407945381210621296274423768411726407688970830142869985485934530269338188776050905669050292614167621112187018939153686853682599898064550347219183946392079184248122757991713718989649501580531619214173271419792398206554280043421729690187002980219807529245826022037601852989866734968212746202957830438509289991691078851883033317586444588868548946601438673081327725825797512437967254495754501741729861258513106954726219725424296876807658846368402651593581072146696520117488550632502692061358952296984913263711847578964092646855221840630311125263770438195328776607109183940360902316123248129408636323378632699909977963363038652068638635332047374234113095818763441152450908698323234410846683085161274108413397847528622832680985902206907513217345084192745534846953232482913008159449139459358803034101120842363016013645795383705700830066296922908671496921175691245755959999578211655414301611162118135449642388382921139822592771803875514760039324930559143815337032279439266609387159753653309960689077507731234688106066548443782571889335262747795534998020442665067503917636630300646641238719872463395518978705977910065236836835488986463483480938328022634189732359436766040158431222078913736728204863331068836815343494367966232760462305285602357497233490289563010973709019623486971549174488518638650025472218242260566040491829552656466573727247726528302969810034358321618602867132791385441439289173406788757722023279986904360709617595432644450550569722002037393798053809315941117607092487053428923954195830160969881404690769404944641072999996988054407012282039931649314881416840295827780031345392823689935132441159653309850997507734111367752099809263603110352839975590308027143996889090401681120081790780799166042199212101683331250366936766676752805365322619585138406014912696959417716540636063796546124872500666916689044053737424975775384379361458074426098540532221177846419568423760112459573110826297845274665918663706073347274726335245326008570968226115108244392897855299992924827129427665142894042277432441542015439968035353750313136324119299939847229800675170198454852279562511995526967925690002254067595205893905756673207274787629807782792939847728416288521954537539723312011399237976839257734439398051655354490162745365042344665265361669421003141547195420829114446388841534748916472062833917842193184174515960885315267670264096908960612303881258346797250809486395953693424948412600708488181819735795417769658731439448194482365201980620513850469943948540362897497178204622326169596217969237150410272825847353254637415864723951121802262716075611943529914770499194054021166568312941769405524179386657717137656060653274563989131723964489269861707810479748903607834054857269204980432601018380301456241444987064448465498465054437614752240746442441603753282845437911654581307807872389619798378278552585204861961089202165263178875555349760626503856767895126804496939249873347031830167647387087981849954061392169775561618123407524440786919112002358059519786539154549717173934382234351530317638552600837276933013597366078663278000259276751848127719128775938126279990527923986234471664568383422599470467626283768596501326472363364779573627685081274960072056345348545801824209238582794235125176754727076105497606992973425883351890781937080577887008474998578939812443990039269616205740113889098067374305277549943409957126517186387653946801753134741939181137396681423976655290178849527851900392278049104912925304403216770769598352732471502415488958511767503570490453093336532514025679232664373404137030380756782412442991044568528700244346517878629776868233717089023310359803732888471733508162118610658046154487283771998400043033295871436343060115174844511922739539375518987663137046233987247168917074321635385031061792199064797878454099285225636543134370590725142718033318358528132511806821820286888417714135749651769597908003497761053738406501969677298493944933944372573836564064669021502779603460201378094147742416216404818686763636036375348922980187695661190214615945413644730558620211339576586720390690407623231292773091199735185875847257642769860755463288609541985924267803202186773102666883032582476987902266102632983436584507789160753273090915398611801611249548493336250788078393343465992460426468144025995400314086247930766342574195757161542784896111801579234754100664057552415243458731687736361350714696272065475616133166396411785519969662114958884026218642018567728016187692545826848699587201596744867539876224644957681634385779750140832248490075042604666251246145578843118410652258317938844562174341049611520271110248813296141766710294221388315924335343477698818467081530481631893709424363679912106433405675714374372919243063247048513485654341519751862817134522175525289762225686637597143330084527888809572062754205919690176523667198648184858599396142911346113202045610523649358717703382800259502488319220358768536587518686942796966660391800837615860780541006436213331131255943644882894696545216820567382997454382746767073202374324589115249441941242170291697334312244196253015579353058229135321480164439955593494159344250092676987744780538296384294388160929155912232843956400000567151153938815647142789328768249797804478375027779559903401625544719204675552936291837549669787744551799705551384979974709368426388567561042702425142864904498636760612613029084459796684694687252552757583794498170985044024334309759410145272747341018289767690958721637524365588282910802692971175353545689516406062134260057947401780158775531365297835996046397980864511556771152837089986069923557542307458199166071923703270897533336602464548670572168017057276401990715744974913786324690609975672263666952979514084903392276076495372098701912832264362421573467346452689546567718876086184480315336305198521505819494017354874169303982585298265058907354020963568909974628695487152960901125438620378716445115008672209841448865312627309015608430098161590587829021929261201821643910616122568594799897128945549339276045724639478849431698744584728582207904171718762894948894579609760640076021499517065337791417180506084329106620677109571614482767951136794357235573780107792617519616755717943102610245215604397668392480288111126120002178720665883040454160719452216692243454482233062646476308419882050797063225243892049132611312925358109938699808869347551842063235387905757307450510260742889799279861292026173596234133480865259401375840154502619689076066108546589408256030005197500109226491086195823882222335115573925540012428132891326947161002334075647118237462651255512348475290937230167703201737918181872629277161975032572518949264223971190137085190809283714842167204667153278746407842059326519789866654650311361817585981824808756292283998471787548810805707484937840049968133657227465752359338923430501831655622932746968530742566464267281174874697083899295831562180928571979012991667123548202604855100078628476237733775811724773032822327751464406790175464195077725878809726436178517079888850720042498569497593912465624487390166989772997458830595202512081219221588027244716102159075777552352025947491993112855209306830607356175919800274394157805967011181256507520475572733653065170633667872238038438551775835714205977134095637720277648495199999367645778253898128013939007513429865962676726314882624440792246903094977681141634067275904875291969302024781471649658658441260674202333288353200734443090469934590671553664483268715575277612915163785128916522687741390752665545380395070081068361113356661868351581088186744372796468834919880622688296408181582563876595234281626321292229481189302549882725767709445545698471910334852396972515826590648604257025924296847114414208923167346561305268782597867569114279712073560246397015321109997646630252213383424443043323510447091972028237752007671139941569316572959464913151143437376897017791568133488666809746859226982924128980068201464481018302288303663399898604083363299591218670340690350681176800802270421699090544595340102531030463191282420656928521418917273787006907127644330531575170064810953174257024376553872435300352401450943301432421277662040347773055605205187270589525044675912723884572391809956374093624888603532081008612774077940809973221086143751959942071253599722338690622050529133854625757945931860858458662866317349566958625606001398875386391047335451494605340064473410478786838104331297113711747853438720251030939233279531556667760237455928862090386461147463078463778091447553958969939890994675127052175665084474513180912902696311707964317857027971247280566388655456077738504400419369336546175922805428716875890740013871470992550798835178306069937203314693399156357414017764935048873518337043219070852621133525917685475844670439618740751970588779216459867971466154922604345463813189781611321946075242266301443824739033956048344833028245952856734378718556632123957968755343913739302033228465195405575945423103101096893366629050727166120204364222489939873124103050452642279509135565516068861647136983725273589378837411213106976034081759636305678468345400118851617394539266087725772564093202275388903997402506276409708602872307907988655847308168641963940060023927802448448617089128759375778646820887300079843829886751549043463634108723182244827767951421538606984505387355373447747334323041341447761830172104396837682582072865729568187754079367123102010743806399351903763397238150907274749767932424208149135400530629922765761614032850163191423909730490646022734600883958940680967561326071258650802755801139883627621767299981292023035590342227663035321661218635117699476313173593943220063476751925735660035233227675801558033414394349803818600320310465154068178486413320564474142403139638354501266567565791190935308767531865338327564521927901681686798232653526970187457909963627806227046623899853792448244069614559057460916024685864088989769740131219183186022981656840439781664713475831895876376213973187244553928142070515416669575068046314821623959881324715724296644606731672486891617115619013424865684976821539090681855042124962015146934581118387295040766887515536515930326794197905030102422249814427840648695950141653659860796056737392733675094905055092097969964805802946107974034992803082652382694363977462385809562456898985986217867875060429735902327586180802332819630792244721509700983799248377233640750768277836436034923393967328816351013543410202429615657043534719976630331154521931682052584798725348612532178667411304202501843394888325625491985816288821991470022705358726295137243517855022707111846806841489091478382514824575182803277071577781706751379825442622031907128096044203770645936441215191200498433511258044768849282051347469219812479642605634902623996685450271302464749413162798802826207132076471365785524743492586542175593575142004004130973891470480653525238541376616263388119679044250801526154663243339977626007921935725862108987117788939046348276115856788452161466134665537257818497116805537336045855248870658062359792357623823136587435547201412011892859061925368513988930312874292223303087305786052897384755004436479209563985578203776403929450861681830070003636780666885266880767948620980834206176536654366029233525445922930530816015071238691789692478756300863757458653826088943998460904828305280522619959679574397692689933652303215572316021946963847481967868733165386253645962917941055391381838590485939283281718919339231912892778559174721252785377019814609220166782830473084424439519494262924656325570392799947261024922540286627620947100001679521546855252135422680992914302083012132095308615115224819826874228297734660264637027028770018410561863681480750574889485302653091220552756673216369328954476826248786064504857332778755256716116572861402841024857779946185191074423364271506379258538163736791364824635517880649163215417087668482448470778467156169095811919441073064338435429628976874328229682959181546696883393254437117771198759434618496308733155290530310560611401606693389411408486780213811629646252927205032232038338206244980881787855609994724095783684074900837814700663335963558592681425081554405321432043138950620363731380672501283622758838077131779958370795593302994682159580278309224129048727330469840129936063340145629116230121345455004703578060018854199785242045561020444873529093372805139505013518629082982886725015377659729955767209939350482430661300105363731360999232633047059215944026218297347907342448432350173105625607625566012138926702842538656914713555079029885984812661564743878803474810890804311507656261474126442390148258175202389372868541723756072720993052191634051850809316362609175931178597010031690288258772164535491500221045485427121145927697916350975021981141872287735378235433877981714185362510122185700469246989478557077798508538635030258186731853051844923175974999000022931476614080517920258411763713705182177034626114030062448646964497900199874014255679976673005813853556739283020126209417259961890822348092812785285209192306513215377191055617066607944253313563560959064283035750964173113664684641557808828153752448035624925531457861057644285948732162854830455153149048812715196608844339796658792904731473279787292376360033875172860716017634661371945436451577560381351310519673362731353882863451748424181153665927583846977851849664611384478712075912582943639315892981189093219046132942080037116847335165555965258494657060394727703345504189630167528294439382051342452705880377238899846780963163288407626355116954220958847343278720632406111568288952787327883817121786739759463637446778569434462647422967546229108367414308931506967041405840880162846133915899506840611679490370602317556361551726614051089751741642284485512427264125575539038086240292950856700946359190722760108348479084467696865695318654679266238154140464188044122220981993619759655658629940416989115460922622455423866015919437179040044062719044784401017799915363262401256975405626419834350734186943084312500341133707430218478978534061599726141015365049466145513285141800740131577403771706100503710737826757410471668918310593337525278455532320473564214659479860577969075343426137089906250892475472593277871383018724635023077200901812482173112703779948054667264429207279280596823564800908877325564382345788886034329698815214809134402270783907424062499458313425094848081148535323255404733162694916715486023778039639957360912621380046384351524900646090346461356895015193058651220988887217129202325831689690545246703133492707362444916580588900702775496594359792787818432304152096500984858904542486726028501003640310159656909500450769667837816776324714996899785916980044996980099535756252557165536510804162132247867425705002831453150951533860119112094528888222043234078210199097583796928725423750545458231697769251198626271883528086254505039619756477542144703793649097275659645360277002032261035221973750933423796246803081070934876210676346640690484728442619537306811657055568944967854292439895510173734980404513357010161716080380061063794068888341760430534362867346234265386093858173591043842842012311324357878731962230138984608637794135687176791013588970700097152255180949108113248862601965765404590761834884527296185226983088768626897496280734506882285980320972840497880825676970732239941263531926544678159072617994608894350037970765916427479511091869424501513792667379164471418327365077550435769616581843862918510062533118158961375257650309820894039438330481344941456955722571487841413873319891921762788646384533815238713379947947231572970882005165242482843402868252952056641807507486022536152349410038695876068601461331027475485188737378790043639769972650054294712441671760624603659824122243807550300189450248109485330566649215632920646619924374408117868595922020604898141760720014586318788234534819077888638358570512992021755902980889410445428939643161377649158315638910707818355009810727143273704653207207666730989767228358211210822281013144402200480427449574480608521875506832702245423194779696173102953745396608309827796649071799601521723888294026916561094343986772471586812072056861067283948980082975718238611950833582269523561762530498739192942333921821545202291631677186590603857830861148216644689236869594667710018711234988613612997870486906520453613804459641005504984339942269844065666646081289921798281449849163706768250602066813712732576235604989152755094188303553933146827766435656652265008798500901055908473536289440793762413350817617042252522539105175953357713646240962294621028450917102449497997572728365260349458109119979967651434495518181301831057899776358569698160083899905288796309225230280560028712681077203416345793582061231260080132152299584111438588117347324320866554516195131437406712466484390490401652564066463316004325897633501087047339397055182731565521041140441062301950812108079981534952654173550786353248348622811617439135667585861377233135324979569749444600291827541322359506851670380230270872409573196317012444774162347562386845540846673912209466605579139618300372455909795715676434851542728894608242558212609184672462702097070683811573004879887176281051015728789846544983559663414710517847051116075321245978897056605721248658189103037229947800663992384086104309571256084669339325359867833816122995946653742955114645271941536006320864325443746487169195590362578628398155638926821555939312458182236366544792900682877231941364773959648946724323676199219205274556474380590939925847242046116774962704964874482092072753262068080919912048003869092944100453318182992140979446688658215782532416610001656266186666337941063115784699323433002115905161876997780179647811959705930502421443068414687013758988696704443319286716954466491241747527745110035478033857693077485949054016591798690086210156109419094934052966560301542019805433995838046224444486641705796770704539110940699574411697202634153746773534157678635718438082109170220176431506104649636015477966931278865725166484669973277584682555130071175054195443141055681675405080722586040770617310255572208889961183960422800663285419110972321512629636482337656498290906754229991460828372763690982991418384237126792789541885767127363070763960205604888705859616637073371179549313511761970153338136281933829970744245924931518889772648962694888901129342939447797066836443666632286881900028274259834645429028126485454430802520414637851478787814207298577931168990005707906224529493373879097750901294434609947025913133262761676740227437547626603727015825898341362284420938434274124850428930466178646122058980892707905939602265672220981193565499805446769019259620964121569301568759556608878336536692230950644417443674366883316964236930680439469059289182248776232001440721021395166529621585304558460896479181972178476124193061387106840267243772132958918937377534375043945322719992644123614575772774480474725670191572113912865492559512361327544963974160240335460461198225449607562794050399964953071536554111283961572957204469086105548935841953470124842296494508668487144359537245433646939664176116588265122663631689960737579617759971228310498244984405037911312587098954045049059050003117199677152487903541721178401252363892305792400389409807617882075792156725016276174879422986216462164842748424522957521992113383282923149188637368543343045426472981375907033021608510216499640241089853416058759265403867626733019380723710244828039996016386182435031073046716990805617784249042252254888576851038625819918098190933155694160703283827563811013048886511749830371967866776049100723922110870250892106897045481798553499962558385677897085255324515343274071362572887376843919161523430703490250772865050687553724360231893612027954721704683373372721447251620275918294855811692430706848713278347289428811451512778012745009609471963087374856345856221808562351587155608366866350922851231977626135703427783109101171312388079955054304936799741573078366625207972779089831570166187597548990955394567905226974128674165547328345773693204638859044930974011852528010277324126677849312391592272820103508312916569444118622942853008396824396448753503033215327946512313058771657453969497687399899968378561965850219592138354221997754755643624077369189054403145322994738780630091875229947191773689425242253509297050602014870273348786071671483735292893997115142117399543987046028058774569363442888122253048010529439348681940904463942316426753874756717660431571530328573842193731775857345507521818384186584968364792646828566889367658426246012188982350008335095564765747188804204785003491840346507766034659139337752763341229632826833927083124228797603341223695831671596416489821221476992479062489537451674832745050626260751228851001422900243607280052406270374202270810905546912781204071984374646093466306741498569630669633244585122326882969556225647504493814704596875415628125877654766134786583553212151408077782736529630040003178324414741314922384847229583326624156744692810319666116041794083375557286775615341019476693786783330145530417778287525180110140433608190945087824147806828550155022560203228423955043572156001610896896644740412438344412349488032548837974622411874566102006419966156651370776294798298702680255685494429521344254006478273476292539665182754483594618825122755828125949827952234093026574268117632391214398746089555252987207779186627660542531671696792788376351520482776157850953056461177725445533974445092584614272687243438100566938717281877193437302567906109201477137486067536504114880594297418686872087652491502871554541738938191317612901967168261719362032017665823418456595187829544411787406837366376146520979720268455253997142161796477539713996298613616974524423620018757351851208428552890397170525712266240069845674572451092332991402775789607934816933124799093909473218088695788321174265668562921524509764520242843345273541464162673074044890842487423727006945878397078536660630614958661021144682936612792701029414010447303486895389520917909007276306739271923160126359935362112299646902889020252096471809258778307473718784894249901738630470940791824906122640000277003654100199853538730839962459922838180281694974077857722209483767233291898718473894276350442323242682392130710718665158108038482423029125324078243911465798361310077428297013589085970218087426464853321158883568308683202284329055490541314315116162656360289946005947793515888263320848119423401565432242460179435036972111568905341687352024390845250639940968881890904671214994925074185136623310915747661944848693106042061125236162249883995294084760418548499689771054477086169905547120236646238592769370639786609379580195124015439742167268613596586877400920254187292209277671218681559871632836315835500492709422870840359814922192471269957272656782475962816096386438237883648128750598943853353152255208458791330418299380086542923258655776345640988417490258401220449347157841851200867109542218769995228422637232391346122772981023661269546801569029364689517708354803097262325662946268529966256663491022530300815607136909179667089902287863624917671269173201986864669585336850131079806993815307759255394344424463568318424441707135802391236211790672645220846178554435671849961382379986465708042660577132198930670156474066224879069360954657507311625296158249184362252764048138266867328923971328056077648227747781096070729104913277174685691886466138406286768313127257391042101869218404347943907871415237634373053364596814705193248682219230902962561646946611131949303117958372073504927162655627111270609582646763296312434682182185328931496694263247295727769106161428374564641418121816530743306615896221364655084246122106463317204724944196751918738870315321035571193902895695968577727416143762971088899355988083566298541047224583307712325492950398794282707541693302627116154942978935044832118180971401604108318043919929221912744214266047802188214609498482311521577214373226760319180204696077740469913085146394219978815715303791420532860533882747662792604619865645520679366109321149637217863943031335725846483558716726000948231664596330211349513568671109238298209449927344103063731960881438956318744619929375503268760359254054222577476537669089398842654747525218112276787804046421457963050152131917969385366229511880122726024980390480457207984161036127944278045287311095120562046962533331986825635343781451282982003991845815361910262949879136365421100937889764588626444985649821575201041968544510439346525537998659691552381700412828812713135323836612273523315670426276921788470804152764094137117421325015763640700268941000202683405206207092541739869409892385889188173354726841383630134632950974202539010035592231653903701184941151794292145295846015814370511637333252234545261197448558327019351303657180662519940902923675853627008610946709848598362674425660728893666869303684049052438910592610934945316907554919057094222874423105635012265957307452205428011942944683108479841285630295801400644573967638146777798742754093724073296494080596630069147217085013641995311197165305837943449428975056254971032148612233155076237661385323548772561225011646590583019663647130982313973101101285093976002034051457016622998307218077826274590555262652588475399678973964762834920607739029383340542379867180893793888144628813119978241323764482169866913553495126658280660269307661380344925624287051603522102531843124706688707461933229679855900579178927559273752716957595683204724362715082729337714220971083414887041253298088260343692936838195130918932630086645307424828128499058506177479279986069718350370948998215838602899048923076504658557100275668300733472917022813409924759918584033823641414277375061789563988081781823127778256196739949084079399401145757610166626873753080952322080728290379810025691547382306759304553108606000187120168465083391879483417424690936081991023195676539951418314083830222708950537829208621862593848959662011850083649224654288818585578528653869750334803452048833880625300115218455309957823954320741684061818678992158547464518537291684281256277404467272429430997696603388644409934735754689635571120357046207440451690072465650646975109590724055285036941148997075464507770088999065212152259742822065887940161043246895235954597798557888181658431769449860450511327168524067621583737071918046192515255690790202393476743765916963778858080004491774093492717273497889846372994401794213277850152863967548555497421803434042583541017729730891596463728170388606745345850165809895818981851971491502606833429295128600246364253710184235905571789305585117327032687943848838462804799960742232773016987137248832682763528067446579591824540674787713735847379619898939934825050497520575500325369252554957853118422950973116734032396547036355114749237843920896550052220078325054661565183580475372586835485395702718103144359982017256309589531510508552924617911787008112727226963614186687820921983950653083261147665100892725582041763017330412255213588673868726363567938860517003112055361706725081085284024293348736178542580855778976857813693403698297190119577223948179533103435644215750406041148728233503177664435414269274012519592727937295135714335941134303510931259884795325045424213513402534498392246157671296969901670959450099181117590980663424469596625284637840292368068677662773602530232734416446661504778128978648239941863789770121845033941096841711601522655785094706910280424406552350566805017442942378735213516357157505641120912380371332726269143978899100568526048633288074094298151762118374548454962348447964483604813591335302823435515175129747470160566273316342450311028034656561084066606938872454003225291327178622403091939573454244943975545276534646674809920922922059549232435667108248443203989165959826041420044458212426429541781981240428160536417678197975194046441031444221422261999678741156114076869431756103505093365201654668990701495127496300372578536694646637254399800441921188474192295662711061077893143987398843180608313492670270172050792160931145908578130315349842639960412353771543399611787745372662793351197533298083477926105696100891756231204401261932814329574907687633676365658150377998456922627153999513733830849877204480063816336054578913426967759712664639904573625376551544555739943831912261595511551112751537670959562662363329030093886237954202241504218458966190264801487823150344267705881491186919516032284721072854581091437172592078349780807445305171724072335614153812104662970505958939986579787724099779513015642306866508818852656474737904906794631891919519109792574281300908124427622429714731285605148169808686113879507956540862108082319437636426891741195548159052530081209322758448228769363591922120962836066339256253599809925004729380391435096056684405934104459900570350075199706738032898388702843519733185988857418089651533015672444331698907083239695643068746504682578513913114986455814091103336663347539613460873693446514005234498871833782001647414949972811854673559002879002684439708842724673306508459800593198925322488514906977242533747218997879070496412151720011152791815159689139365904180107534315641302254295896835574992118127267341607583536756319833669121143498652333852756133443288083875481479917258451899864611764709408290825803678478927532555695544392013875901396367652913206671201072704040619998095403457949398270578847326109020529901262096808176801715376968787769385325922850757015500361726671517425828682271809132028484043588550985517517618585266496024436213969886623984484478189494367199451718398215724111813123574626684429583166696921519283753814020614134179185970247948585536643891975999790069874639358012928656888170347142660144444588625036494837906340675682231482484986942557094076810142902918850617403246656289184737781014319824713193092998426382228395087258668329326655218862594077442520310359888357998673934546616269411011907088250587347229616003119617202310597161665948344365331900636345440600052141695358278181999752686878485913701453045529624445621595231653683210657762405408629049468926872287728382687278280838570786024980226488746592378303464697751607954252598822693853450376295890356236824283482253083239404829056868247013741615299462707811848497255190083020880964243251813701105730237193626808114712594346952715101176098439939541566355411361387443534941594101985395330255734680672413213870605062282420876851529205547111114407825129595418875877541330134995073483106925721586283636286343503987014920107572620755727706566873144681758434102418370875360573507090280814308909399591974606266396199469994982764545452610101516198838415438421071542392849830452885383573150300763644175849588597284520910898306341998459245964969527604633912917719235896028899530576626625333328761594483562602672162981457089656778497140729332494962005414852892776647226540733343604115143083915101191147027064629040575557994572630586010587878245642797558253323523521276448302745858993115300814475936118537439463020862671776500889551690685087492811266929559008036245419078137816216483476996969598486059776918755709319631034463380030272612730189324926975406403800734797668616501679370880379168907709802141758325876492562037715821407385704245157308811065796491829062228522820662246596147519798340393626285898361715691653752555719156421843460461996406548020135926638690130354964488612248897906781308693981268468127898703587730987260456554515612953062314620624804804563625682570977663565942653168627669837050773522820354974456604420208200057352725720705927617472816769666272715882229062418607992087814252273182662197596410733126598553183356218552347023139642965710459821212896557808324758832348091680856598807328212551868953077861057880465578340002877662430368288258681672668109799006057396086572887454720492163179650197093038795256876899915525858733209251019689085447618621734374097985715226981778845148466225816535521349967569788928765011406999205122307149075415624893925734462495227405151726708517226453912977030112660834745280606172394220216289730738133483377450039055444678939632880252140853319225046623936786456258831800321197776421308187248760345662890736024341177148576831348106862379523492049100669506986536513601290840884834940614209221623296198063033176282923662623920709432372880169775941320422940057361104137790120962764412981462161453113548908238398738828019199074488359754188023520511638551818830671245631639453616879712933369483879661001997833352385319883318436355996988783255111557230788599250400130856486578857716781089799801207962780322146500747393066154325314336992552648067813548191144167581731655300036355559056975371688174819113473531979691870168945387770492515947530813012446129635106395057499539231225951334105454984255261957067228894998116282469664311349716379617691175698826740977324157844895546704966812903045012813841075705847756983539043689067645417194858136347858864621408423068142944935953750988128273026062467694355896262174127881659360038657427393553434272752222723232324917829599597119879003065751639216234339109664561469165223964557795864648647579150418624835122109838015205752416605478104874987097940941082215863754015988108753814578538388197036126690142747435858012388271095781389565405804189216737532502803592963453248272187596929216908071097228499935406546910481956852191504816516115344385153170165061748548254983582802691833934778282079510729144485070202533672488608448591771353375779524136312420557455120466174784049125676854909625724248134334438455027398022229005267848585057735463151921031160948801168433312306862313099496376039594620115985388504793323939759517856487147418816830159972323638151383757087816054349377054158837732019939565928696000805254306601184090785188249553830813703925581462344932946590085241186674307435054482681389905044031095295417021177475290760434155641740637207365049931932492075285117515013587618682383854506276996500595729617741792138421767811944877791528781899765827197999884110456906462918052733508067670647842074449922641469611620165089894751301802367387668770143770893245899758556876367173708676164569860726239036419349059307754902952214704697211513850377924331089220565381613835690472680189369890224876910509838469073547232125342361322812909299026990878223823358309647807539907629312409140293945714223647542860167212961529513852040165903472774889053703969644383829788765463503253079391635495737556696015908866176325281855126724424182984186554316755505793591618068358535478928654167291946373800006696895031975679167688065816806987668672101471437781343509328072757901562595119957907693050869655094760816834828733574418748058229418206005358592824099141754386497217816119559450089622284293664394733874005390966390893277830047265432144916353331917542935959560094298535029763670498046643477647603257792309349064003039285806581823759815548181911377804579546335192450045932190109658738610961744783276120735049125181370594122826508318857665772397232968545099782044276183579267465922222801537497460628882400360901255387495459086206425180046460891627833222877684035093327589548104445922453019889871762769489005674832860631662301882579215415582955162262286704727085923283162267200890406898843942145825774851119329296952875161892384444345687483595025661657897478902182164352234053862174546953311316041236537237588454031540491636537786408283795387205564297047776797144136365411150777426361658075867013088155402071934926031994775998001247137380238669591474777720994519207444419246508198547186855889974776605818877566419856874164805932551287339567572101015192664969435373287067699553708819010605859027923069300574665496395639974289539404861858954522407875526544651106704349154794184999109998912807363439958699146481212524496617079673105786248503399892508608208778246952035537951299168378886029417132414958517733473017724122418254940855322686831981858734296121317642552630449895388831671062917199294729839147317083442333831812290723102181127264044413889125819929595411550936042074954374001839607738627505688086397862452974385735658809993364536576628659530978157740968752921129242012912857159696452585599260115418906516211536404558124887642468312103429446349715739007190190810876232023526554157547018429942383186419514642668645392845059712136745126811093555192496648091291986340625277435877882975242467890923563543006174635040312703246162811895971262163520173182875992851504471566793968810224871189126639982725890932990110896365177895404328587919107412105468037827288109129668252050859389013867955308851361986109636238005411997626699241570919752312402988046154447049742278945206040319210570688330954946824044899950561650373797628245752633307211087684176826053882432416291888500916572107419923172213925703774687330736672216880788081789007501931044629570741258168335240365407794668013659288764734420440478706502753862057565141449301709388114384011441350750252645472163642224183313383338360627486728589383733959475044686564377360113049105405892093209008293296010778649482542655130878725945677762913938645333904397162039184646755666803129582617144410434602671172607342689743134885140699864638745478338750204944598536653170723822344127062908624038588860350751682604675789861460465439116606415624077747463954849387644890537480549175105914480953389746848178523365003517056647450548948200805454791202579006373637455619941043314298858690037250495911458353611658530643424531909980606679497243665437854208606163210250045075188039631389670450444328690717542149354735458539432467605369769862946741775177024562399739072341701838950122757659560058194691503450735282676045426425370706758386925286463667479056435990514023787209166394864735819261974700545600498225305419415816885256979379862988989528660677368204279593079045016571366204646643294217650550813509682505787828468870956149442349329724324814241252514367676908191386147350972010828387587129714286990939918345048289083210351597781924864163323760429522001511544956400934823993699029052912964723761758311181991745660861525229206366478806110136132984475307051207679269334689309047939451550783285452086981192859565528192557438859275124938989912851876378642139299007440415673487200455708574112495648594264386264129342439895718575000171439336544039050580128888223247953996734779470156720470041949616452987334696784763951648737439986621296548368913772674886580281687408378543857150580482806960578910395231670449054377903118910040110256979001822226339971512845239262909237278673099557577375867365240823208920017782304634157724819651373633918320734430665546983629674178642290536014332073951636421047038274028665408922803023450475356012274933526055887667062480901231149740642936035771031479983904535386863885377583562378661996746055758537796118112749817502794060473478025286506004536949184443702841035102757985413924548375072779291459688622152272695609379740037192924514869856354726686446240338492998789633434725944822510723133269371441993479812863863609334603627940208304317923503803072667071647435721627824028438302440805445883396090044459102071504527121507427111901728332221568409965785297511407622502646123304973569742795105282183814288548592287417770228467957343883455351723803733225537873504239821566602353717394653360741911696248851557612181874399105262136055385057595348190271624181273065261120837034369363271654338589315035731961034389323551654512570712894635804799171728020273877237456027253696952238885806997322720664183232450804631365870685299591584804756429213343441302954963379516481299956139682588145447885871428237929247623283551952279686556582908205367900677154521843711972932855839807070530050089877544124342016265256490780363756818037620284861795380132664862276935861973292437871148751456078824260081462013571154651886064825614147496850867856338873484056461288536056657571397892049482759363637577488741571140492310398313938102104625222077629323577656596782957170760171494735707580609883253958808494966562126981176181087850377997201167242319283058111349081585694644808295537932396911250313939779346792611776228267044778883933389263725541344165836424204910840046055429074658392090846593569457598932763324678797534179848354299824523473922311604007917185200190562806961389459391613990198350073800230349712667676786644538112952028914452580139346253849024137193682192106553892562997003232944911543112741428544915389244096111161834689952598929575167991588610868053021927105925468418938051187864965004948416492670898387271947504130352171651042435605017275326317773345933765423027221693532629141220205240828647715301893584513146410394515013470314429084530863559095086253277252904306813559875245246967279097033303312940557875469504805571194934925287459983158712339308003869792244200777040348271090836864293972042918020613885803883547006478022533396254904003583949240107087634352453868554773352026702224237358780690578815993149417469508727539660965155189525099367211391769231718010023330698892891862181750202207505030504547936778766424196640319066026263505622564158961288326749222228904589329776198332802596816497781935871891451225336406753748202243627080883166272215480387161446510243439783547342415629960511024708853339191710372082340232721673996268315004860050087428346064439304854990238485509823342863948989323976706462091325427715970216270318486662923812593084927071947714435897244450510621533830379932682573856229327682454080487748245094640637792990365230494541180680392762505413106958414829478645744988036696109791628958412317819735069470340993997163731116999148530583898653628651390178894377868202922950955590347874816763867826528815275016314476893214257454903064733789062047273408313295431129928207542140652683828293776796020433000066147669912462511308231614290733540113668570447135890290504521665405086775044301887093139416123465037437253966977654600073745722069004894124400182323218355704532604902449904470238079878272399285304830467536367027321654079496879577951768095415344912146809346417818767986107667483258080196607751633794621184006480270904864598290716808406954293088736544957632935627554713005707334028552868576877443740906364074819614832013819302999118862318817247254999009566151617749843528459603813762386682088828498442551348333401201718188547847277846998942345722618488208058025244359270814737438407429061408882145399721912347111327814138799531669897206731902842917989109545843235991926807744410620667044834128982652886039409164737585130164919969609775184246345701932566221666371713163668712321627661322798978517831268748140180255939597093608527959837563410255644907166253173891162810075016612441422602654229538464164755271347564231818409351556288424470247968667918922155270300975109117823736252683861326017334192441533902636652545966609377852406115809521316331802142008012935713693518522956953373755588297465447650899005696888967661251228875698687201763783245409319082572455379731290309475354866610039475077041350025698063703372092951358706311793880058858748894426681277960889230914147624311572882686710651383285521656321273502026990401033320882041371477394769479956427318564088068531411274254410176749038690956197745693293208942543344419013633162010300398587987286250663594876307120514390225753836094663738338890880636121328800638831943551385645476820789024717589409339456026458769958682330501907902993616952369411066216393854086970567954280873657088129309987216730084766443719963142228719436325832890300498949081781416198455285750637460658603920172816744844080955344569312499596609024300331486565324707376969276167017401485057250675242247929535194867084708588885257795831870726662183468928792721188222472792987034865018648104854305797374724600609323508653564625278508152824485494533472319484870861631393380048800482101041111338182832169621822443546853762422326716848708380832586084878266172002023425288985398558753551831420287211296108626090047069805325155113371001898913647400918084175252905013561432819995390453291009294153229920752383654506691493661539124866889094099487722824758986413507032231228576727938196435726054236976180141569032798527610328527618068364528621309934394927402002711338485694295998690448351286524510006838332923110486983005537060325941661642790322330985618349558926025913324418149245845636156253247968151551375840411857380448168496545892841788649005367292738544826193114869808127187102303531433581887065786138976593293584057757718655886566485648707015642260512292380166783067200625654301788446676087762663064442847360381147274794123799870047177026744499994239910925849934045071372410404422638492899222342343114651214284219293285801457064164736625302074277299883029678365347531833214956196367889681463024705946839328124125177294407938034962987056342596336263715644083872071720664337951079367273248033981250292706041292494402912317200918265167291513332696233890576432321113061784895015691964183947937062556430179751811370812491749110177643746095930032407312895524086052289520357550362130555206125322233021845543522705171041710808377880231752815899252760181634923398941833354167448109902666321089771764587307625336165791949511730365188154843840740759568609136355023920665161382806554382848516216160280589148438519721884892112391861559607442435089686404390264570539145761868836532271095879293201490831952724465779707443528455771338067617807126198519036087731354420081378150111304032382060955791231464297966193891245492090259213228667490557892606044808985714073184840522200840228152936145364010808118458327066403046547827732875666240000521028104975809306786488408429594900243013771077810516395409663263939643329840279199952558706553903156709260546531353229748789647726817771938061471551792553725454582863229507352024153935856671799186845633344504396733345413498936627829068345417388681659527828397765340344554511774611795029057709720851247111407192605180138761661689814122310967017459032047778994430759256121558200295798352369333925160167960458081344194605095199936618033071186735021386932914580562806119658503206068894274751033709051408427414982119511935043011399390642294728824875954062488650992775171490653717479402175325649940616644326292939362036702505122612413614180151922814170384251316335971496381037797161638137613419111406516073914567327123517827299410219512052839215275053413972583888192931335719897235456804306457450861771735432448669718268277319368693140894994099080907692334204427850017845917142294848156918415353616184907594943289361199770935132148626664116282831403675181632536589953308062451744485146593281243745101968006674826112418181939683641088684748554718344988088037945786035365826227521563180970017035221352168131758193248195797398170161636995375863628425786519231904608673180864217404865268014771545832919179345895932188288148927962736399985421171414932187494459234145423607140054046082379839468582736420407688035209053276753480002341282705185909229804832726556073205443194455665803287855920646820836158096044396780736634920688993210372241823041675591548240241656769534792679992073087544517973148421229149214737100151500146978375989409820216578426672579359618970533168049268000666361597664742063670367022947534352995435610830444371085143498630104115479735302297334536948305863892582543475460965529810308993523062830123806167825265179690003005434231202224928766490124803785388033383298699550585942777915986333701484732895195150884647810164811388683067002276385495254296393494109720880167446043838002573839049743274099587954967310775341071389590862388961299601638499640257166589973513497196775813468205449755655411719875772652431411902783906698411354008022631745850156533948765207622695257558558446413169733648833938484340891469201077105748496550034111714714806935622447109446974361528781348135735962130192511483861236364958389321164259330900871621560745329539802166490312440272047616418888336033705496597577293618499226491797582723391244093942138589399386812613423281019340986242344219802005124285289163095587473364634060281666778111230178795589144386672737808590760715660144770860851325501325638071845632658008022752621550305392140044420017801167899680361706715893311343518597605977101422101141930177013379855242943481941850030014625757271246848479911617164634883995777999985263347299078212480072827986448541263692815854547389308361994597516216131723916871623043073342052347764494262162238190006857196215455894273869655964684109112280404398075592403289482325328220020369700696560785862899835808674293894188646390382209530208240302791798716362879143969573467053899174548051908013867020933571772903391721349327752626527294078445079620663224969672978140704969084747506776320221897367985149224361640215909540173685715072458005184490040181769295425897306409676159116139695172844841536475879229385629425742042478694512843231650507822791556903786834618086445131718859653601269216716494442624895241607356683083797772440591981410732147582078124153050017335653090113445232283313827711914573456683030507586636202888256888659335667096168767499343587776591753492667808856255781416174366960945293178170957456733070114097101210675752923600970321858201665127407483709362353843191291270971449105315971471898440738503349997255264355409855926474757740337988322593609673409130572667625911981157942002614781283639498496291374868848974347315755308771477099165073595414856835211860551291685848275472371878123452393477789485429950348968514007292263660442553876549164944477511055697277087300499297508277973065444522624457607181642937348894087880249034362162898308311038639472104705656242002442026087813347419171028493084709337029947642608848960423723746677787957353918709274475646294727575200030377430399736578935741721023044323899411931594590786476722059905096077051191740761662642632064226997011379367208151371079648287516664529303821216931952292338406414523208667802603112738015951391667845941152563691639986445748926810186269793877814941185014042967566591750701750988200996546749950311693637846932693368372171394101174823503993206776736679118049703623337670528106808613242688798964769280659135788552132276735272733336195709816216761280471717449863861069924602409202847022643865949305964311011703175276847530331421678695608868129144022581302787619489799702140021973476787969496599699104811709411184728003487022350064575319222696797220861023393262689223526904869569387581667814939562929399342205164692516375890475016938795987036160929050176292870036392778575266708455726491051074032970092844531190336620480096946364696076984963370169672139741100986552468590724232551370244246901121601299636992305428058939086181915714068575421811579131270748733572742615099904898192069861428080790932013068862412847917603352369657097960744818210093550633646710918812840574748922326724749864848220147621691696797747658100071211248335302678503400735153293238888762053573765288481323425215491618977426009686376712154089082777846289034192565665679145452871640969588592286641863977404614651059305501257692498288976020180078212665025864161740156872743455869485214426913656887415862912636057391288380146633799597385184152449529695961394376131430657875922332275048626884363463892631546664625048402425819060472817446607652988754818492593904004384140671704396586218540359720637596430711823859916320144342466078610441646940434655590102531429693557822091415990411922745612315460738406990570853083558319527128335132712786583475257131921600416953573874750148418993883226139427272468118454324227299715183706241857655444761107078367356401720738246285133377856169222354249339083068949012831374747605346154609113077819944577996848771249124021192682859272278507388102888830552799476715975074563493318912793237107663579493758010300484168903833527874881033501795842987742306335593172681874418432351172376992223901017848357049090836122699852024210669005820371431914690802783516859357519799789738838337173588604559463675377772991957318605377769934377236785043284871824875033646656605138187842848067638055582937657088499182968879133398137162563482906652294780723120341060123154292966221660199002241402599879782357833604319694910219179370604148168848190563487334075032239665884317819094898001515137975166511417490175641905721471752670856664134180030776303044649808665132347876077384824801452441511958223333943095841799701285831729545487442543768918729340012578248535384235785994343428638916745907153294882305640209726442290268565915596553245235019202587930859884703802609317070000899926235394037712802266379060922126304764195999922625718761464910245281606590215026916187476665202021587071272837018372800968031469965206876578963755135227891096340060617937328220019528590877372595521829620081755733871507527532974925631238278730435241791852385531038321165242820313166350726252657839082512726854879435667030071464324432188617008916960787698594369455512962450114651571003165221070612107920836216234924779741171155889027527270391910929378996915406455460015321571008963828365536204608081941683859383083532828609692197518726242112424218520076298937139732862910638501782711684472416883311324788842627824471681772729424578782377663616992901267778225413049227086963673425625338350601244341407605459905416599113473845779822201077288241869190449993363400947587793616352032586036896461243659179607609292036721095885278103452666320469614585063128011643829874902429642116601465942820036321870502881881128583354582685830356890022946689576794216665283564743855445088625764590221010234035474087592425261805323678142388025958279615351109503112895295992800666997163516207752043718356464597993404497852075699791275591029045406856313536162790832090299045917064364791228461223031326513744757319663543074078783958473875597939300427327911656391207334366728654569176919735008233562673605854394176640103231848087594663604092702314225522832638308056994242338646552013642214050655741989804814415705667809462628914083928630012683922102516776440028638840727446898606828082966354528997075424180444678442749623806152641326408757590071631222759722957932922747302203173157166815622430657944349809074842867162844117762486544732109397445617782775498038042692672619933413929038951723113727841298544016099569602062235354250746776015564375005477967539868572463114080926595059980764713825994477444949456762816699076580186290022321624994706556647788450408918942611870836168366326663030558349458370574662199595333968953761815794208498113743016554650075307797697106438563087729528257619453675877834460665069930790373148288594599145403971216842409141079137107225299657070972191223361414055640678428012474121361362809627079792894589029019152004951347378263063545225475330097352932177033133303946706530635466867471432895603578737259008064085789848735532614178851038874969937368963241634082104207517459190832303399514105051516410656411834578837534448560625147973986964501963303663853107630098827818453080240491213389217105247598578341694076573471396390743674322582510686218759644024857004358055257385727524938052767574692657953008867806240178530552533745350701174724002677159236672475906681541627715744317770642172898944591327780125767425674699915951354457524794944495734650444950085447373262965976206594250227069756487296960281559907107325115807768637857688089341336040869641483983826249933887661983917396211078209637901869626947327319328094240169325418032336102387077109877640855424989152859180168978154262452970890409671705932160105552673466250727659006751894344488778559220583240136366747958727834008830352050239614258063697754818763300777561182980147486315886854935347814552328832305311253312359590448290566240605722709530356888289812627238318282669209375920950689023822943267963046485487178802120317804634362615838141015367681050873901955754411628848018949191399717007112552085376436384153232195208416165092002428860769108893244930012847880391649224658808214947003391237304678805160153530473856721713881353742409917544772494850238809919456181598760856439809211130191031147408395313207299569744879411151454648519347491702466839118500143983042873166636838730359630977854207766736928333721064178990534553938651643392498146313390916379714053452656627764704673513193047793411459536162004050819746639968575053163299531055354134980686353021408482200281280051509047788884794828516540845914026195760467018820867840577090588462863362843530010474483593740381152018504405504502690011677457839911018758192497545854984690931628226890192630895835054446787753733123209094025515459888188208927375924683610907350104964878865399232979348714742260196266851930498430856142560877194739847618086636157347349388137747266453014071629224052518086975563843591139961844278429442014982371982314656411799942130872808696358361132019810862389626937817757579221267409816715979300255020667465314325014468938276488644723593254718887767838066569783354685989300223520656024399929288044821828737437858184201834830540600548270855011332964040830616246732963770965573785048727929402766229961666473530953894656830261868839285649255254574736822722800774727142162224929860611133485409024636475245989876916705775385278480952258962325973769998905037287871527484522312601446557252986179122301938164902372900535240683947679848000355821968489502838515184758511194782490706848867270411157673215853922065375514466248945639733852710246603257861902879281428729973771586081270709595365077231900955767577109866027639230410826962055773470106909557358690646170520691573100266755053312454490438960570373794700755298804108747922804244507758508121240343411599809540434098994627741899194565512299266111216936968572564055321074717250501896356476211333215747914686167444301153368346687534495075438946036788523287249305565440949282292203605086370766738416340392654386993186144116898560596688573026838046526377088543247007142430796874165560970555531806752991650770133717808024760050676087208863920293657756246138410894475991264876133292122392809842791380860522324890636895033034477272826209047464623689411156079644756492093931530075020533041900066498035937198562032739739738744846889658031962177714500930472991630772273585282468146876277695307747442879846607034957302162607055691762234216605913804553028983618392568298516806584834075444846943068947845712386055217520282744618789769563880623665607627909638143268563492029781133956279605923554750852476438950925005344421068167460958255622533152042414430353571915608910971617287262907774750125597894438863154482391481512107493594247092745522092859064985800257124698038968811516989897314764494513704939646693931950173675053997956916813739556035956567974974566114169381172286525080755087718268952474964038909019189329451994272359984134096917720351265673830944674847024576023403462438487268713854682117313450923342962680668428476814110683473846559290287567452074277932898760944936759076781706758780400314013434103502004790213526300183702126752697579640611654264356972039265187561508890586015172658988162116479775118734717180425021667805543054052112162244634992482957831596539660506662941015959342002542059037570743706475683014738475969503019571652781023207007440660277695915254676273420067170077317273701333330474568273094385032965567988364332863555618192234439534888405103677463239207065377639456060147538305000331648798140019876692907014764583639485062037563489400756213858604907523316123830820299203857049185255047546769967442105401852128653452835003145192359167935725343301779457559804899088415671549981041845616193538316664771306971103050110764407649710191416642350482179597396830210745149377042970093112531179928673033869232274667590346083935200863447698654965438621662510623576555568326250526549494320784692676419716089495177959305215217799581720149378377470962606572370987554940729975122789460486327736687831115256429358776063602370557719466966076324029716593252441707154341653117703826727025509341764951609784755631746429369501915592587056619111738085540180926161779498319682595674625700039450375121016752054500482148754680046442518931088294239028074651109425143635725811298709702619537177475959264677288062287708818844790453092552801575057843039183163142650039959410533101055336074096028156623898024011371345141158775091020437052668961622959097811299881376073016077391848254022677567032671185681197850597770652537985051818471654619177169329275838311242082340879554730941344926012788275103505729024013573614750856027455173790658901212522014883510374986403288390839538827501109585478957414083494617436267182682306923514765372579544843037936048564524970693604036607579617552008751018993491213320740947822852610866965912563724059492323142806647471057557063801280387744066136816553685186496043313679731397522519801777237213050134107446595938151508803015096460253302719419364469009948499205419116244523370380325467987208981359295659840257472069803169570420109716686531649776866950090977295333888524810750188638781541310804775893734084713667494830875953069303780890538992029944750720420289842906268940171854962953157857822100940712480328106333765946289654766021682422183807235502826055514832900342041664897205016418106894392413699657089448124017606689000126876292714213070166586558048006076879046115118302077547072217539102638579719607584518885960954172583516613511226646092996149820824109098492727031901560227456429267146424997506620182638480215855667660036810192336551403267922595413863876458515301055949710866387463658518385430735741141723611906815415331971726707760611638651396492196334779525563243011093232088796914146407001535241610544593013267484320754436173012935529084653475014684729789128774995779874265861613204972518315973014950877243352921095319169017658663992733749289756649564715539769196611188467536564200573395613868931121221761716152790210414161048002216551931177929423321744468814136497032655362389515143941368054111862473813398968998780993483097106664564237238459253737102321664437731192315137748747357005471920563752628186547645790436262706579347428311892825259187441122648873352009537756188968087413801214063732661393873227313802998629745218825646037499524738937476613856140230351273822898199352031997738421403520964592161007902225723739806974264460940620564431951633615523869313122296497948586483381470107677985257405471398034730064553505352491147975353540075408709428204485111147469690570527125186621914926894139216765257174866254498265155528591503728057445230907894518797818044403289632072544577441067083972770084785138014084551477709503624455468399858140420441057188150490440955083568635692164609683474563400400552819682080069179887409321506991405689193006440270858874245597537746619237529996054933934982065647069498439067186304433856775367448644919369985776385747972081817956635438170607452954753500041603495703948586518309888202943292685482616888981016478024816674303840996156670806338576985132479698186439066572256558705997670088071039467636799689802475134920749767546856458976555349566242466606747248841393944031123039118738699687260417411086556290521287377898592694471839074352548394826475977876435395179252357834934233708987746219170339542212442532412791962564350336160231632664077123797673916453456852714999041648827529979159451298309738024301248038983110069345253383382098398616246419604853635833446298729478712458004342193578210933414533352726782207122535143002894608316782606415657851528684957064266565292954481420754234793418053117856773465225935713248692071983534024377654942478471703370301199619621242826220343114313944311130961143847797859550796095258804226227389418251791311551173950365083240976932109604801356818314738023045868626260808774808005305727670076133546621268131123908609721509787089663741874460673667159749941794526699428377623848315814846835563926454817614703476211517594372521774258042817186911614578979276309953729738668521675329605850357575484924402704541554232339418305715860704625786417340201046558594882970102787162711055707602844684123751643633173192464848721862298493634886497028900915892419071713697590162883501893019389382537550035991216561300369152706884739989955886707588898593595221860363462923170423638053462962357176376474569664520528063535253627872667519429260478858221198613919782430427327516645701615087490230138969586772485965941371109758144668025152509224502231977518533437245277248987417151655021562137927287369816518334504712180557948300743895479674014102298178872144974443191208350325198476624172566413655754249397671655149208088478342377728186628091343435026242255357550276859053660184199419799626754045473029741446792042244185738129211824593182707282392103324760812524519951485028053820129409678898596203338757887987509564820135516272092295451424939363353426569741978693067891937673518869609380170002855487084913846881485798015694380645485363388068946826683793201133205540483855572660220343514088878771019709988923567588541530198808315951208297265226254522110084327652909143483411976139038478772100290328361978561416108349764387415924800354036215459473234726367960586033890678760658136489913470058750296893900086435615363167694556976481109969864493150595594773468940299635216758052886803698982183756758005031069548393828546031471839340269436200187474059338827365383024950725975016619667638030806478230173343647124096968895288541845574486925316752320306503399980142277889019422080659575043803886482588675842060215091311965044400935560196086335346948874310827397465904144809002993347499125902686567989710347963269675630776726527829148343860490903176628532321947647863292411375247615190054711692639287882519506463581848881149214275637075626351713543586324308573510391647632433165951051786209975418941099502544029415860163931516377800332925201088254307003669717410600908329629401751482153119070964077381347016209084544547796183664145807545323145939647123790369769598942992589320619761992841239605905899887619381848082792622232558145613992795639208728984946580740771553516902698822734420829361410721642494508385572321539312440621222395675131438143379684630772608376709619393889902069810735233289728708697666356258054532445240373401279398475669055952347624716220304464600586132964937197991102928048540589160164778084448818108754052730893545667842476856569391014291670381118539720640265817779820891572334172880289740277374764298792138518803745176295115661981147845607729290819396038010349909143678938163241187558092562908380112645805836719056403255568458599363457903972887107860213762134015972202016354951535974761540325784999591221651759216764632273821191892926753801843013909886801862189935283583522957704639237419392000539146837397822441642569883569869273698543487095969824023855662783763604247020459527070705841855197672343968449566158105283865349901959513428092365458707324291002667979819446374271496977780383383299189879464811457869518650073432798679935870081989498499877804262814855289762074121845686854733610847778285303167232672769256455730845540236207196234899654936019028120186017929357345072721300662818486532682915127840777859688426361586854409121002451426206500865997309093430338013076186314624118033578555601521967163136349579237694115379920083711967932235952893094180796082513538955347422058571817150082647236187525842904172103672179932788296207039387242151359892201076157764813192651286556737131131125290906257769829210769340188009998887214090617122064789860702521746714984936136779056052443814280676947295959446880970123943736524016737990027730322398603855123373306045204313932538577632430902874255644547236057722437659295377154040373995318297831125903464816002451545945656251996837194250956657003787084523383724244932483772060186972781253914915352100946689637603125886417809559035036154418622650373235836364630947502170884906141498197274109727075349566311904970820243654466302442971417564079058128811317883643784655977413028006953577139336932273349365400069556419517703846613742218495587157459327192434974631136619261304820326917516015829512006336310881672312072856857080891941925524350288503185693608078032377575306180707362401351826927309386201779386733884333458323815490881799435322001863084909961579060967355771799148972113326354758810223442640429413452703530376110719792287254321637307676791894202418411465320549288018536616511238097731523523843545710689315830337902865334834526534485555480676348601478552253506875370427704241656451051148758237948606007759915496136674171633286241301518142845088488070533637657357247612362305674111095207536186749610570150495948674407886635897802817562163588131733048315417535804675622522863301614076698775980173145436481256581396020648099827962374500315452540826653662642788321624091227965839859454099678965168409506739672121958264261701387931477225583959125972938648630038427249978331751763105639628837563432569449253837873585509195054211213282883512845748752883424151547814490063042486044774471658953654227531763749415641117823942908770532603353155689100812162295364350758791868377416649144569383322086540566421388390002966825703296925915397726953827174512359097274101959878371066146889200180081577962367056481560273820087607060423660158265105520655489025433854284389280576644187062795789862589680734648797884612530904560939912484913475507626043107355853055753886088621158667440975462929267695940778080062134192611269316979514192914972272261324251785000040170597419229552770385441318625868085366640381605890804242376112858925970346931750235460272322650455266130374768022793001803359700412491739394497779382494776030587069883636454977262342665230996323186261719885368963330124252921131434527227442472657539918121891267119233163142913755205316404357914522137248678042318859858749206527731757520095285848750662329059936877017970681207476284706053134798859894091036604333206933296805478005283376633307488009259883614363138877195752938590641134168091422735191636081643254843540123701660290924027409987099350413356121944539606695301870422975382254086984655019290773160829239878649630730287208202871180840188957957916190553701861032392745278610388200208045478630775361501939099311482770504970663154586644672534187094349408439262991480412554656435888559272175984428841545341098346860017175609447493791306665263835297674637960831490390528283498231024133406886545287493534977211020871272705924315520020656493258314265289222534174613756967168994999663879723047751722696377782159546229807774774205900340978482388765468395864352077922128329989210184014359662468781551681474307384510778625796531176344143246014373831669517305541311607141767412173057922148627516747947363902207726380603525783828014993642370166381871329342985579613299502786436493808418158215232948813920881872948005411101234579286596497045457764378941804310938644583634015180356629333840570284977049847856794085607934206492149510289924931540202828769176781686532778458968570064755273361329935246538228905444960741309765626631225770498032387402064660992392385561319834783559799494766009480057270801617975297551909816170280659125183184521001335918941972653127210913411358506519100079004475868096095638640451983608093710608016716572841875691529226407666303169705496932241822582810729842112746934233638590451267960573747707933296336171950082717107946926927068284517296647312379363578409192248938988638007037816619723961702026048656078324679926444718161565094484497553113409480873244443491449210286392184400533906247523443035745881128840696825879851852342913504702264576557160755337148888512294791054576197863980211047526286571382913244090353185919130202048128716026891136034214380382539223200951778494871568537997623283549889723316695466769205942913166470229109941987003187135458296440469133411578423316160043290622688665620382284009917419811568843292995253630786922241165086421581515279734042401852776292914874097918121473784929351075004776942642995245467862186236269754769609429458616799769931723626071219654593099092077836986150174136812210865817859832564710251895632434077840745054812222552622328533259311332862276588845208381121701805440565829001642184997239058829048101742575610727973542359850105557264738031400367704449178152803022914820200486070452164045057130600130727394720313262870976827759614895914715798646002733433611872949406304533384767213925490289688703671820650690583346017588406404472820952887878580986468656280114937489933934854162432282729884185612070888709757975690572590655882447027056102932326872363103737997869684852317981555897640426233927392008790689364196753002770961481943314522985904621350798765192479728329966673582730534649061852955870658059609187750785740951300664544482280000661334152533195279708599657142153112019999026214113919474213670777071404649163527261296655410052864471319703097101571486441274416095355491836749674800636434035600408899795669248468529595989454899583324897804409858715542049986160810801537819109241057122475798042565187064461502656422188319261156552845205236071945490103444501049450347256657774071967071414931296939870109621834765049743107453293895626461660701359937881558528698866160837624856397756291430596423988291150549409259938173777710975006368128774893336140796667301042739462247067386533276404841238701715628489262824727291998091985136106348584830355190218189602444794832225207313804092291060314038642917872942408673258621707190251756609297052944821274240822273188648408493005809733746100090833501494691814008381042930016434408211670119583667824539506250597527922897439682611728988080293437741902166282136365415425445044376165488696077266430744259803132899280486807712602379226345976124039174264542876613827194476922597532927674476537859702929091960244016827980427491830815590923661458992253138853844962510962265648551757765900386715164943144590247507572250540527113566229608950465287530897538712987105102446144160018589783407209112723832377446685882784170599740603589069936697305263747444440186585169756176511167272618403529000003572968063175557543186657669629614635415878508757094090540612327130342222101834191685454271461579896089590427727656416151762988250109577705051794749321723618566967345775077659320474615511714465619739624033716420839863202506074514053532635282837530180691094758040213098844845884384433441144642841998331482982802039871695027219753860004906543135275992721387773858663163669377195572411842611120108475164911538577664868759349786121120433395468912663087108954319553352491030636501385206909045994956370418154906734372206434124419871879239785571000816948727626710145707136117796364528070852638622824167670444040658402331162539191298200726539093356474004212180426080797735038254127151125548910933661971771662872866326547058996476497073044165989958007799596226511565046549690656506080761424071439572535956110439535243014558078905942587644093204148787651985751505292462430759735287883650417369741038264093196187942686093843709354022652428874325738138084423740258700949866478503593124288587310380724911884090371903165425978898456229710972275597361610360839292894719271029263988977554112400497242591895996697040614343554335965757479101616925360788734600867733852790452858071419997548304228979952043112831056122278028388276201294499262733736706378792300233067015250760073306724016507024015395193091179015446650967519290921545271696635414968998070665255459217875876690923040945518228577949654785199356726857897314182503527645804321619632036956699649226671140555204075082316445704329137965133096681009043230649503929723175101036334170847698187564908306456479431332421339723655696673787264280998549911645500116267659594633748528658507949603337880235396390344840485484140063089941977346152703263068660102793538659931061071356796269614333322964908205474433591773831944680064504586910733332618857368071780260522856125454060837466280316403139486878374382358575592089251448572455056292360069807546406574085255805297669046446972029040030522354002322250756816736207664418811280697938928226954158082648712466200175144036513244036527131241363644714994527625557420662842121223907691298826357525333949486572970645133502649054795055194909611463874845799756750975346837962635126444817396237051448983884852390001894600837158564149971866808478526823626946696321609892338182919116854823950481994696690202368557879813831823624521767844526225727932585589150072558991002590760569961833530295301955091975487117582604859779978864598806518206131002857437975529520012157578925537939194476555041376626248841198354843406388597058825524242829862980512679824897244568893981225808090596853827991767466628286694803416852924189932536071169449059516845106143753093142273808283413816084640519668116594246723240647056271447743128150891083936719048112612144759489765310015556223808335032691668498430918216838341050571294042146668413603719910918490495172599944412950294567041609613530141786980986168812994159719098099916561245296372114953041113645167116193729096092182631380416078620941227024539230985404456006097842906704782997246697425594445147186368369862263859145194395512277044036412591931937953810102377991650073311211736520086581034860304086049541239069075487938858621170370628639277802846340965097349098384491742820158122578477708722590276078796434650101335472821346532362027902550546716316254844065308314203888578878960274770970195199487546062778913469798721854428402992009588504557837694084709280887347134025503376537959850187341634173631080956062870433309498768518912600222772969309697194592517101001636880719839628718472869756506729817582645555574652594954622253580218550464008761848771881547622501893917231646750203056199530455426905610411093993167672759215826587582834319476117258826597541889876044710015122450863161552523643390854409417476935647444553386729503939971232085253794816377567201614080738630559117073982615990501227810969098182353464242994391991952457818010571957771369486207583707098977729408901642669696762103612279114918570337495262987798116698896552724630638879912463729970033344253725902874315371212087804626947730922768277882847751056311153896114064876298287136872491840305703146489257027441022048334478279788225774075500822476662244957914669524028752010375632242440315168244702973128172593258458634566441115862506326560906683251100142594813871235463098122400021924476260229166071911424006613586790510692422505576069124060247742047268322915523279542486699001273012839350403426259077159524167693230158791187760982996312006704982501307647542673685751060264468929736579503821298098263748308979572657546363335617228820448257597631055099104319978559920798949713967219700495132766831420478021479137306962668619427308915218552786967376847514660134493659974373898319487768772171834748427749453524840215995763439698075340307135392471091050350693672534188326868682240482074695261571373226289753392336274226459132451046618922837539536873841776198409825458982921154006494921620222957099636966565455240184874745246553397132872120106469690999085683514087462398095559080644393847896432366215987203149194103858856413018648974692285381766344163509204872950951817062794703429630335034442564533337977548387602344501103578757091507390210744074267011373592454693793537343564253346994621397226869001397095625834213074100403947999651459244413862329707444975407538622404846028885292257971502762846694152650078997186756797184936823783481424289379029010707248740909968247965055543793493328796600212211740273910975890117577062883340776880838290605065640806829400389310528427747075535176098249522391227214784997794606626826091451907127614916317211930318268667738116989461616497804870822169198945963779152810733677105255443172060499511655221184332015344838339098731612555785367171407475964663706388204253917963305728118365261891791642637024015014017414480543566733510625758323813423246840660464588057600826346205963783953584425180828011459296405354276620598554328637403175571775844646845726280296690348417185598324613590971292087409282291645923869100651060404903245033599244432619452707302346290279633534535330887492518114885263727151387166729595152587047544111603450738906037182641039060974190209214103212434934180674385862817272294365102959108623743640030992530516920877881581412904460999182053149758563719705913998740171575381908972288847477602994803749126304766894619588233593933544783107183396465391317981755010229118943260002023364731767141059519283208034072564138044552686157431701960468333510048228343938398968953392428752256755994107524980493266860501558673657753679219846863132203944286389460526466555581671790045683610824777866614867199973013875051896933517868399533306864620649543015911115085255318397756921753353644942801532172275303112511318837295275079607728812561914182843255962362503791024239100016208667737500588590388350105963476531740744833095019080074431229653516381567075679535258441693629575711557368644739795803126455865618381458440716692487470168445137084477338211571697845584427792483476555850187037299274125933085439155728384336438580420083710724564905499975228793620896257885448269612901064135576881981730680957435751453415676954688870686758599050139906049213755921471443751062158691936500626842614049094397928457633949091296631037429641121233961328801224212536521380657894586799212599171533907176713597800292654171477042435001031942676362654110977842415706799609202146679197274459928749593817405677346709127298019805029723673574477953720801554664679662494809347156149751652286139357382326766305979840136188841510685147462106057091473475432151514366977493987220961294193885423884703667677407637152193723829761848875246710535153781117834501279248100871974109925750509050918764287944952347169689051135683635338128595538845076352480840751297764097933854114452901044101607909080095631783113812323961399732586752377174123268215405869160870109564122403469633066702202131205423213093139259464514379113201190628912109539691975470652637817514078822832171944126075917102882569056841000948287170348599241442069400775053477027467905686770847808430128966085771558688153087555433878611462295515171067355997282149071524658272961892431612804196004269041683014888720668018348978044246546339175997397299152795248082799388091433031265900844015588385294006672456594942352511761086144817200263099910104675164917692461980354799264172429974741406460990844231844445435623164179459459176206638964807340886714175708819365832661864960787381773938056598312986082241404704833026539179047218321802815387577152378644140159561848451579564351736712573635696041203982235226451867436257967619553602502239155938429663678897667476469039501168290790658834859922139110781978723522693152389109660820987829577415328880483497773913155966677017165768330850797105536173784671766335388365452209798888079033855566165950463682612257074642105391123489928311605644660719136679185430223908797872519182047813567076833446347218238429357187520576285477386795526330090301907413837479379281423774687354503184370738484878559945829785286066767459401956836260887876444175454854339610569585559357862527063279695184774981548762779001904952890166999233099618054789282948866482152973874587478391990105185857035362465948600133239160085759879413445644091429972982978288162839841306234200133841861659985724467264601404284854839463749249717822225284904185935495233640032066986795356180615841387817984458600057236046886368847268013897035286741445417954496142946312764631377684889007999821153852542005517879086935168617424249480340707460537740273846193238008939247306156436734133938060895583388837415214753372308622715438626044417252723255254528038799770267699800245855285279158939239740268426321948456423916714914183968580101278927754829866028793667962552580336749566473852053320706886524478862477425606347769672382987983457467796396772930333328999878362242055191124566239571615920253878745663725746210573045889118238123215919040906527472111214993046207404567159459394021257187646741141261781356466416560670027868227475294517944337456121690059329811261256481630482355405791778992482121933685423725941541431423401327197750563684192150089950194359197543037034605768711115430037411582656021250201061534884745400734535358101483692590930744587895840290613956892432566497858927607311707083292250071063323095066514891805387963688501014294558812552219190709126291357596995591147056884096554820625995770566661952576694830832235885937921365430394269972207698280146769383082366993631102351272211481602661738746583916629012000759024340367326418873898211270776389471295062165949094161956466807187571526887803739349522389872724129010495669154666103017105879725558576926750066537267513669897342873814210493682312651433938139522105713425060484612939743511817192477853166469686570155269435371629795964151114718369095091276304530326721531488012378147209539565481753738592532629121712735414533123589495615563947694147574429942315528946039976602232668452454925596088957930859384848133408097002759531544022580260037064195667720588246745007198021784845187180571430952757149244332423785096225813997026055735590934968242431920817928755212208633692754431446910050230757109686256564147575724915320042968989775662506687071432291138049741468128143078417504883303485069274509254342070212427822314563090781022102266987214534731773350478606145717600935888673167307793132563200182670835999014972569336235036986836992528894900181440301014473420586549744739965707786378796513899914462375328620799994130220481732138037988787243658203453485576999507890252250787844407632484959696032422739942811882918574231192809388036341846563722501653119159096878509853383230241325002471877734558160845624854066967945398932400591233470445571658576173105244858177037038069159063147806484442170265845640061654770453535653525444867438346889434095741901040364931295500636981355345017792240358040293824298374520457868685533852647296329100967601077719490648736659927763040562939527715882559836060886469822905506130894647023458008044972944547770874325125396284987787593873154146777933205256792444073654399952976255709049210087439088359980583689205906200038864269829227198752269983015617990131159659905695091980981679560284200179800457768223966652991438283612124816027871104134147333837674324215890296947465261841577321768140442008248965904500096359548522247324701546994006711184093641870402103383534887788536288015736326378143049768590710833938946293362115295745866255929708859973062361573798425206198369598014968039147656940369718244649771740788246188452972184034008122754279637272694274703932680552560680889166966085221818736547585543605025870844056355983077418181909370254315392320790530576658973843002504629062759349625441715410664373288663584034585181286306857219744058583239640088699745653882208028066150336969709539964186322421451096082295252815114026796376879287475420919870258031166805578044130009437528224286785805158286625685218138575234207257113748921302374864762058599515995806309187013323435678387911777598517339127847083378518977658005458530215312849901512224441571514785247180731623713925991088994749309386153302597316875742696960150917466080203213799607823794649759322472181512335357690074165184482374521958138398595533029084836307243634766250076930104050045664682935520159328274679841003397008672795574457400360053501076260366361202340831293912441679075537194358791881403764879424332717964145893256690524268429229125166373877631071558023008818147026991135149758345173177918580295965454226182985527226896984037536651730608332411071338053379614420886326180270367281452110602664357616949432960557685600767927564903878513471941373198537219573312533639574673348701317995649243541681658814896553622454600381143973252393773682617287326844132069531619994651056422239068614893468414691773062788854684570670066583578391150225637270372674343292424529864662000521602255452966995688745484799005022817628087295874116251510728022146537365233938510721516972530439245226567042822742590512802492104556364190805992824840801557114615560102353404660044646989177948487915383888694500328111164588884496309857148197789896075105339171863939657075658565871399559619673440568099012963413430938949230228782474871069696690658008959709242050072777662060444011445280405641540584327985139101801771373163200405300059541699244998683664791020357645719057815591816666927768631432016623892271407562787862742779171940118619056152211683453165377507012006853806734473904012428914063515668129501586781479722509808251969337451586450818652576636273779547541385857557513304626429990239393331024973975936798566892152003527585428507736174496211652157275921389917607418590478884713381282544196643375834199431811813277577763744779910856011657652000445022850653295304873577454718328420009315972263632173384055538597736288415632286516830626360766703335756946896085233370438284001866647680174792083688770285949554582938516291889828757720615352570030124003860376063747756427765127461859068191538472935214181458931851343207027542511177677204632632714819159482785003673142846515588631886899442876143084952089302703461157857340916445346585767388771213810342351492892037363782798533877400319877932414424354796322053067499522500385456971535574677123190396538392761320346991721068906939637478520499059172611816459998999460328926884566865349092545909371719029829386988739173447931645905277899442210136877482131448299453085059407981873129606094798061649616009428845891841177000848463940751338752271497400283326849398607516635600856750087816882731797615011116330241830677522527621434770037069456446179823089371417143886527545029742888660357548678518025819577267606742934125199689905412504283941627443432150994735599897831629521607418577009420689943684718746027035668984943845976793420740187421888033279116709941863766077984208557632806270015707439363154135257326718792320439456278627171656961876894669602970823507405588209440104766280618399600122662817083353212906711290392250636967041658490456844995125671133416942400150467106293327566180860479384463451976693852257332108233504701278923818159646146406715377582659376944837533190769587113403050432748178039295950199375336771914115289739488128535941362855126428771953017479760588056726772040743056527503037047296162107386292814097110516491318928981375261151003545042626382130890092464456979919418707781201726239552180174228469772542059764183551273351085820711739599792357404810311360243546957986589897498117451693845993546140032494056853571419817199465641486318517265548953898790762222241134091532773857482173119735420735635871632353642472922219777325712159126855677393124113403655143771444986592704717253246476460621764069448054135679287019954360010153257290884654863942046216812914944445166595860201240583764484897674942902119637093655397117057722306518129931227526353323806592695869144782173914658473422654552677465230942478082648722726176082719936404843062560543662692144511196122041318470656693590736537919143194990695315586904052139338552219468818180026821005145609765216492647961719637287922992663404809461315171178567309838583561592624369058801950447290416271597597328152206650267351256468366802997795134173136620614483758416351069438160201616933473605970266054712269391965214635893695339092953196790135289967607604638801392632345749924931999983657466197063170496253460612897203747460983140470783660341490670664835268282494168470545928973223066989508303395370830967058796290863711153983084453360993273789704041704227543237009554879629962305998446931221766067446940746895424723978165595813480378388336411536878101200383988848234041461509298083708867938446105208935626512398233035062164665497987927008781773230986785223179880559762442451171047987316434403144439090016898671304554428313517630637904625283819879073514446009602775461621987910039173061393231400561285384555554381698177905264502417401540965743092075513198886956881807208999628229290381413375643786905242094910162293360372922317869913608171511791543287980456946354156673822458215418243499028546959062836234687439252432819395440031678000533749932856877066112179746752739743307632090440617844386665481529319393920758089184309463698044890138987307030134225004230660010286634083156224102231065687921163268565752865499874802581884583632828172535035581985008034293582376966160699743498954596111097835797050585432388494552034087233671624847917801572646034275012160940313019051668072325951988455993199612167355055043001530873851126873412871666358668318613272740752926526860825364473468230515671522069030807193923570938846889454223603531941508249610969273449901297596894359181283881828339570678864708967321422591043002980383118558769173369170132642472820539025420323073717426572013811989529515866019149904560520160717677293739144502264303503306305015522014498174464498819024406321991580536931055704511446889642726658039863290384621835725890711593927621753018184266260071431890325438340484492092496658058992999924811395710598357112837420509606154362988821070817564629721791404708623122771044361972209197563473463057273058383006440884505631236580927231540629731792267826642216464127479990611173897833580472749861325411919551161090411527656385499310674069471197139243844959639041827756279041696499114122417665413896684150842194189341250454825981559656751661150020005356415989958704126623946250003469154786135594323859666148613440097981976507498731984006431685201025867676862045019949309988170877753308164307115987265230118030103293628793589741528496183160448962294274695584688438522784894381000874884975861438248122682414542923626192295303843901932069065159679541158387827335726381639178625413943429291320750391463678838603694577801377900333545053268625247107120449156709809854392195052411610439010941071389274121815495534680669794100943336772068543892737137610058983388567204956954481943018888491568812190218642395167223639037782055225094858172876044952626065921807519628284698094857998368337020311807078550731882226153371096468561723470347390020386644671194353927163646480656263964447498660444225319974979730952029719089828254128553892644515511136005631920676082881408583329494017499874546035080750943545647147094910306799648579985454613132691689997736723364764724888429388594109645548618663358041454008641137837676440027858983783926230042018214698698708501729795771085510367766327031896272926088666204674443042334837986499946201222414744457221976261822331958479396502081755270413261408225344881037047581770627680380376615929073190916865880900536018171141115999830554635451484480139390571489828896736305262657168957762662003834261928855469123620635133680341729784021312752883126887980757827126163913918643879176762005486404566776462294231566501154637321534031739369892427647858415886621688711382397966812437324074198630633794783769312165865724758515146369279588959164188058188997953300058849132990323724447306427442686769376426681002684972546110124120428746175526669625170907309963406960163285248208853076128178125445390489895974558388463335606280454119257748876667895763860910660561922617377304723541268945221691004535218726037167089187707431186851073036262588377137630342230925590193309520402101894503925799661110812875628612276349490188851379353013513785345948673723249951679034976947158209239070484694220705019812893149128457489819763924003743388553786531866762600410377842095301874437247723902365173878080732698919620823889540220648842691188272616855074268973093927057108902509337012638417378378729354381690688472733841021409991424488081184082533207283191293951142881633753662150296550799749433658455955907387712513136458099909965394341159945278392416535575389410405676690373853286779262612645494475070517492760558186364115238468941692552916487750059293909015273713475750340899103543479382260052298083804946698660742952039094838444259149945636754154248067252070233713583533987321995010591058301490846890425741288696124135003617151089289824996979843667678124706439150612434199898822427659930467080952564817207626000011015197719977430540598194410504112275718274525031007017611150165491895406355000717082330545859645314933955324593368598720482943635667765937314683084062259860895758547104196292179237393615002135402309494986165895110450785684863093230257937571546362043729747058459720238077117434483982698505672027985641708831497404789637460560476753534801851964889264697947917167407707846674113836521626533113080408073475047162710345134918910652855176300831986532775216016215829337375321862803965267364353833518946689421423480322708129059343314735803605759732496527362249599260983670119978118548888878759051719012913573903557288391294504886043524359584459170745489167965666853920564831607080389365922234224352114569395477136764186450704359880449858829269500706397495889044981384094714834947233527885716029169848101119153630025861061387987203325040556690392555062500266977920835348643528765908551441800423993102024101622846923350025308483934608212526847164841945947426666615700776951069640019210346757937796532211363907210370430860332474838629362541694707284446000236338508779769668384445524704680441281861628678017940276782494530068482493907838036812729565319354088280670883661333237430527720056224569674472612312074612366874333400943759183203407956278975473401423479298740361642746664027206614389570995945309732387131778269577586743567681175475250071650701576665459251278784284660566203395067604058185735290113144895609614436334878255863415913016176702850273614324161095887777659821574766183262625927816609032585863074331554005340144302427124098078809259063681806856895048773118154456572496859742447868768655400635608043614285261541333339085630064861895413410761217069701101617796523261301386016653547628521767191850391083510960506734177524546686085909018923113697852448422320674689815845904350471928970731962065157522592356875381994818933901269987189901635099852202878483661885577197178506603955896811833936270730075524656402449668149286142733801548151613612450319829784105382579657380348381232401820284107801023462418843836401961373476964476324817146865186474871003191724873066389829953567571905411061100273373325077176463852953131032666947628278441894761578228208197502639059113335511002557329909475769986727303071641508601777402125970475184356039671973103710169506186636149436059398481513834651732168987178906475144725757239646386627093309776343955362831362894608084171993490871942472758241446164718670377716921168924780320377355369075888846732100527994443511076796117314624986106172992403589575220199322040194352613208138105717236107649662882827458365225217932937356252705940359452418484492579602503484776702808581439682878417255022038012457519798417919434302206482666892996676724951902074257271033079639887592495206034309269809637309286996090506095093262516151086208954781845125426974241938969914240438475897300811715758905381689750082649604779112686219742556884751689046558672229832439483916922597750332424159661820656256414927263087981759934263934428393600498015164560791173555833990876193774449574945271463137618956799169214368288324157587264742247830246942288729383776652809277134493318041582135430511380956057472118792034767960755450197667030471710833372097129685295965341687791081671088282730642233193637494898350407524724649803083557093109860906517833771345222324072948442703680999222861324187432204709356398896890059490249937247168420228309491589788913505273816324783223572140104366845721353942916002324896917623400924164507072738924896517256824867396023586847681829609859960489552923256054697279000664151692867154644552127407767137887646248680321176885021023134407738526618502449954701941960567042105185346157784843070809993881886412329320443684885062453922788187500520852553343789874632384115872305917093012516495662910347088330530003077924424634157347495360091807535558689361874081152118324251489942264366979746993233052740244947017930740304355330111132457717177060594742572148308445881231198781630753924931111243381285033722363900300174904072221332963608007874883404081483360215296745962812757852361007481954142311845779827845347418569443145930765702601890496085352655653990450313563732675319007663934899367986014961281752892197855097154388441837354678880530512303132238271556354708616416352969592354793782833545244273519895618547697137368526227082835842551028718108308009715128180728771445706398013815626333466840322513829000900346715409901698088150271631834391068163035256541191215854967627295978439653597117537620393183391587115446075248942574874751841583677230828518009899507435227138826622072580844149838823344567318916492070585239175731305790042164694207193669215971026213919515176051755252380157911514300393776309897950381521735840044400953994925246959455224462495037056424436517573052191896406429030291235522898197859396534772438822371776284970956508031258742711866664379624611906074153083231445585497797731130981252678574630397457804219044302028583698635911181113706396100321169118762851337596020442726312536400118867101890523157363600126507488852026533375892864096177901846784487155013678756076377649748762682045510826134370427094118625853383923304304358060677753643922308701390576453080807614168752592678148410613636560748657439960287549318035920817134581008376120574080314697273698923662866565749692994546266713882231837811203503794442578243261991315570360828328523151839984914821028935097242529499276831559214649855487224251339356383939961990678464130625820881424686458871603660308896181590584039097429698170995273218312148135068210194667692668803774843217021156639354133771602114089910887538886399340174090193176484294480162098685818264980044566988194745745169001986362310185284870985233930066168920291798712807221476961497363208721068473462502242581153523069028101161581966648165849420789673001567090174718575182757879589537086701289277342676772491619001447296445047658449522427826447133107284835408526463466380226222775269125836603691349551145607055708573095156102896697028474142540114805947710090582890881972200919491210146714434821925518485650179829232391751594565725092549863747348854973409623282144386408693720180708016515537699948882024051013659214600629626955993824446327398809593858869407580164683077812131381575134800854447333374561368863794163138302583033822399237765165104537952398279695813540609420524327899861993136782302756932173785883848426963930277079909146857168003412965020383818396653130603345958217034757957870767150848658787545192832989889527056808914995105715221151052315997925461167269962543816561321222731056475465644564020166362771579571408988852467082289211284644247413197110350866707965533063653110359152154128514700503277768466986290196693602721793340415120270239048737738372853564316091244542732420975211915447651867278992972057097649147792926449795420808459949670664422705259806515984276265044545816476153106478130752282710402204169742046549187840141268378608940994918503889711480219255409927883940610781533019797274581228933185564085387200800315349244648426974555881743413169681054800445172270958803757119611652794423738716586053895587871745389689885086232410910176617431342208308421356467469003630818209522295411278413559625536021124355227292909422353408836612139162545073686163693130249950537440268804285727678702686424339109898391813003214022927862540073268280696476385026810124894400922034396813859597027826000658493816898460647751596332810182982607351875281238642212731866468213123024767733895220760987727034021695488249911885028708440834104400436774220148732896868067446316353400052270426286353701827918069838967783417714770254828395637304191398126017996919675899086513520867341346158875560433848067974083544577345803664655334089343792627214847274582101337547113199614598611637769850012426179359367169757283357641178117656251189662828969522975243157979882587381254166919932998273708188412806677501602252165957161230425542110506137848543676754257640531128635485138677941784761690255531568360785910501163288157616869936580780886229168491165361382346361867289225382347034632161957376135603624798719394807670717334412312671996778779587763002820939297264822983383754372381490408303945674877548882194008971848341469045963506570456740164050779803663239434873235306675007307478789247571572045947165753862719437472097409473624606883981338790771271614561032492709761432497378834424948082660789348970888186017864139689556237860266523035993078634276669271759036578297705192410998845272322145728854971031845974435904514755881751836518499242265118719705902495430166292132116436094013582468884736262059980469519896832534362169694359161911108687901523119132693263450585008186565622402521712745523873168165026101578289215314522078707980052152668916314319907716316503820089585816934822556775722159214287178539977167557924437050915886043829108055475843117349116932304122583502978311426648721189250089049133771547691894207133782821678370057849745427506398694049176546507409726355505137118982789007384390134704244903893486898926549331703941718715442566113841580478195983607614416974842272330049870969024540148720747926872184369638186243529659207339931216171292963340530520185567470646388866661040797016573089226043285553743646494968174410776059565416881837928389298560788422116563927703170168804715046956780063336144473389988288328250041777093833612587896148557329458142013075548951076660355438325718648049579292260931289292509176816366600400468719535205573336129836082635973966443207892416755407200180400324894213919108063523435701011584068447205721731690045988764873296963115903240072188404129308468751484684998135431909876179206873737526373234252236612480758625081499395585744073850904107473507536980935014684976107269908811759878809253377121024689729517374410178876393669056367222688780131320670801517964769905496989368188990409549925205425092215477212797772723455551093883930677205749958805775545058469530900046584850820423971828988151059296878961680905027238045280769818951904397387314585859359705019689455803066177013477247205020128792213361552399621036475569451493637511933286196942472310636701643203796198376174808188456163846238923091647006270420825846616700031601640775108983087157435964088828642651530235129133609596902510996912238271056750515386219600010958387526927063316093464891739811486677054888785940881238113133734838624661158924169898130930963274915193057467727717429443795279042686945697747417109145261422507469162308604285786459888272526693768632975914363100893251324884038820413869384959189155640709581728170839318812630813228716266199408692016377806301573426208782376638777016940741364132889057707724268239105809624402284862101659789221544200090337527225278540250977199736885424332043562429105241699920932675600835164637979310825651920378900320859902967749092186218965222495497147318459739838941063466204072818542316274043973908743340429830808279197858039518083834928815051685956400242796412414020841079447255593204497183826994449317654218842549304007674121174451262508601062997503195893653313423271845950092854725441898629844933759307546247287607204320039349647260827418823179663049935696658000504135070355327679916508733164850805163936939333259322185609768300804140219562506267580314019008109725477598514110122047513260897707004579960108808540448083270532844808015905896854393969014000009673586443151873879214630565535177666564370779635280562365100769755977831659003291457809894622723508682255569852874074180531920167724509800401700546147473573151615773623380095698510559781117854898303089368029591079655999379338671740950100359026311598088704225949976524417533007716260115596018476021464406249273827449681027740027783526464246486003398447246362901411338685806392466303860381031285394311373457751459331523551620017952958302890570799839932637119522861930879164183068540985943742123207970692155682454909259541050247326518324353249536731289080065682304671906044772565509728048771632390857618607378262360628402059967670102138732495936732487393852904281845428754430996129462099852159764201819569221137604076325748883700625388578414532942899221956525661188443473806239795572153249065079185412653772338408895075905152731000052779973069700354494230540740095165397712817118479759352472377221244930284470627386386279622483167696468995856765088811790053212276275893039682920870635896119925987204854303824896122981789879885933172826283680077358093872693038920146911274384212812266167745193915977505637991396249483008222829621565497842672358374547117412006598420270622095521896037155560304623217733068947421451367529481189812875343265121677653055157117459537269520158288782355720112279985736748494286613499445597230254718973596228323848916414119619555643388085049952154732211968702247421124012962770384488870266509632201344157055603572184346410984400737683479408889418778449755616288077890624690098751348544087998577940118423290544948193942480032961131649661958661356907323645445912029414788758641998290859709741099209896513898550385621231433897377146938248389773902967943820134163595925425317357095614178477680177335144016603004860983056742740516492867642444737689298145409203083625723062184935966930071355698765909247493680879423047166603071312329124249797713536537824662022542317959669276858616591619967524441361394993807449692503883872471881809783024648362653130903580823347871371114752407544352037625414307153220291280529605383236208320208198628120970450544501039562817515275061177675682868477088236811103627928601201060504188313298669067980745135124837246219613847387035219902974254468575993322119863441865256714963105715143035455005929749324398153016773052599813066709006093799534544543621959525959178447665868983141335827084264839847036554864021851577174880816122784059572743667743643499194306948976397687354933832614538882144843992380617228436245750200576457362719825850269263327806626611706349064983052332851797211561469426980793599070771302036702838750416959103893921310726800738753650817531580323410841043301832444265913024200363116642788986148866753960822205765104434908998494573603128610361490469554093421249706186706490620479010528686133661937590341205122655279333129811811565698123741950764513275908693391331948525488535899211130381005250747935379709676993709178479174963803282597404513001101358732913882266446926787842585920606699241937464037351716953580364482888767089764442916522088468233533987215554341677626161277409256515682422183687274473426157389665377875648452919517186552760841422979534153980735440867950415563420905337419800582350488606769348043202520236857858836338656465203386731999816079819124316861694741834444076807614519598949121867684708342646573821158047247258928616854099878761753736428917236045298038323413177572434416644165466117079215938488757124206450201848547890225223985727368593507287466855444021448559764592164045266290754974381831274467804087355194115656712531101442767653733895364009202587414825400523487041194523379778666530417823711526860347035238562382035127643938510948128394030428772719353210915994370394217966250924804309893369950098263630264942997032769191837888574863147551391556526792318644969370548903733090455392629392875946191474630154301925794864397669370528931309944970994020890456860777184395590773326949803056478084281972769315757231052696298539044641483730932544640662294267762519505506720287210701593655028084645043481709535795279584609284442093408897760697069586750285097174508356548683350921785742216151958301670248645564542330616435261030937191893285154237929906104994942733072919008268099366200378812053223274171871607544347116011807318971040973351392575078579038277408153788462869759715458553499098107386700625558542899375221035144142269849676561816783606876508381758771973410903574709160400740354750630407762932765947424497921341920043913938268814042857414541812844951396379045529047439831560925302820370834126889657955071550834912555427836455578622552906122749651774072977386646174880004886230990350477965163576448989033790622059978205044990187362044409534615051987437411444871625103371636923925818211682375903078267245407497114842389185844716956615865105146109007976413645872410344847600203205180754329002136753542177874961453804932279907933901575084118538885269393746472104468003422734593124601514652920089756413520265259216420016668052688430759043447595842284292531609796197306148174059726839334531249992881077214417318597206078245843390194367709008500730824736735055342926705101980503671359187351370581658814112189809105423958054230824713233787725664885180143369939641853924514389533204494263935828204987997416205980206667570648229966362032770649314332381516612702293280729371234121761257675301999717629748011913166705148506086654042900654611094290393894763503265885828081692830818344685163952818580829055617170071204753143577930822289108775475213677446320231737713996456891332063577928134377448258676009722114221702010374560020984474910444802701562658917014625325445843181941125834574189592087761096475937324778552257130310284452479634903877763558393132725197276447200655960899946105587460873077593111945174207434458300380718685319113957660667172856497211245480380857471410917173948166599479061186785668115266299828599972261546275216628444705225757188928624536985843377652628749102362014712324462398164718833242043594131555664157655805708378911511112678988648080734942065603177734285013346985780112490264513650009657270286210044550258351955799292014586460072573631702014896754692906600628732295999069670878649445704908793206984457610362075793234941006157067145156609197815255662616307583490036148551712276494097803496688968915984107271514789452263499415436314385405691065800371412876470237177013113513538386058337248810597925456726955385820677347296150898798109281306497538851268481278148384507823233349894772146109049753713692733093082431059217481631709217845320137629744173597373403914865523995693616518455840230677933771805086928847981420932204895756992366652879217889382877515850146969398614394873990584245834491250550340485751753111321520038296674192263728275862247245171098086836105905618668397096486775009599255124622648338414480298336716715028504459106040376797696514065224568683762655702390650343988876488958961410156057448060227595434627961030901269016551036351752629980523027775724656568266610169603051028301726203020275290464489969572092282706092546578333326858818166066550966240233558764782599033051501717801586098638891671731328436365996000966742625455969700450532284326249085394615544399784652930725114817154467304152714669338928572288545805360982596239560922155683782445843160654401621442138407405719472274790882024367294893320162250683746973690970512886830007609201328631499281999944962005816456507442186117126123372754649668637322748709330195517581118845820878108558647556872674809789630559964987040324837692577339236460737441426246359935314820464600071396962379063212740049395408268835230182120585189853306260255691707524501590171049601925491102016114201460239928181806971288573408793668524528371918317349253214967196421459907056268111479690575972795438897299968959080566705575843721928756884971419967813297550144403938289537448350232042772750595603699364341813922998470880143722290914445815842233519444411522207383186410225544035131971522949623113493798561077241580301217096976349598920890333681442843433246808500925067251220362478335334279239570245923304137434364898201505701060875712860095867675646611239344773596130546918069461967215699681406145508674252575019549823021087478985545808726665933967100839376974424478991078107112941345669717335358600707611655858242071511345528872843280855701998645756847474278528153782569148484937203982593242460373993162614380843459997706076658945382349634775996555900775346199799818989612994935159500669145129685767272269882944684409334631880070119953342383184886078238290701134226341268247902008091997555883917411837657844402787247975039876742758316867692732684456853522456768479472840983731465848041471770139630888690754048044228804971183341332633554063368263153573492377619846705771582864020500714793738953542808795197874887100907896320843452127537879851127643218206839191598269075505941531065161841315555154011108450489441937896358533995907248294273923971943166846133346300676288499874036458446791289209461391979322637261664067148950548990057749141957802789330762838044313002313165212615686801856439427950214293130055377214393665441807702607023904320810594816416409878812342136044038287281436811472241657713812081826384580319617997445677647836472658620267060520856992474290860982451902602820171408309027741025196189837349217871689003014677984632619607290581646720488251937747217952633737326694731187374934365539219027008473884642932613862666919180264120655999027723976311640751914920285197485804874642880357906488897710846109101937363735808901815978746320239900684237932433935577145274416145308058062699855058278866192679830843030318534975578640514668900746417494099732286784289161647429338104777530764153528262736885588429835353203520500688953805526223034871325923345022879645496942818086477307919606410470220069890549260333201321793101801909600061933554079516957310463702711096287105769844186161625613594307248084032896331346225050081305483707870453403793853687731940414147735125687104130913658896906706995506110379421098803163338087960982136282850626689990109566554553889664711688185841973111031251554407143301671362310338975127310644848607061763407898108548889505229870852139257494515189905287978139079382406922166073312885091843553479759814432670529244714542419968776701437865294774515905880271564051354062434953119542863711458731977264045949982735888721457066583837977664324900142857894665602331292464284230701200681933886500170892155086880698757015678903086952705044667100945138978606912848359553625383740616107611558925780747507692369358766856627585601286439913429526358146126286600056671716926619674646685202957171746542605508990076051698047453925607735290161849560479090544257447925701891687814002071109541172270661036925119858250774531783251033484030544843862485440024463259846248466014664604249745120069794993755392564840511741077892279405087187158599215941254448087360783706074540779949288227967636052111259929364161930934846402410753332032036631296161631911446128268521407659989281171267116834860178545782556587437004363887966647264227439468229506970382646421897368924910367704416370740164015180935820818923743430514491438767984327888978804670259676423968230807858880090665786952933805527989227295108359327394110346222716010373615410269755545727322397590606698867348921648823919475415834835484404703893025494408041979605263778501518488298175270907416781269454580466669055120276814227051514960460254341376699767915128054868886003920024105177091919274273922870318506632517799301750477850966017763100922006130116901479406635226814306578551064625652769925852309486799827974189959824669602363007566742376315259994561351816577195114167850111650526566912542299383064092397681270341352741803136566024051221743840342552658340017975274421570804053822407932242023161138426537196575261669184163281453307591401399817834443235947840004209474247220688174920072645160287539507871173727626739157280875788234620693682645739829659975367742674438085718239532745799890591032937246500847846054566405614074471660637277849791651045438462611903902061156069900575964693542383070008810844482182555999840399447017542647497421755162045266923083413991706992330615232012598970807378379684506300766492845902347288605415220591502847703321349020296404566058396340357014807942007660089303998324605076241312242257119951574576817006995662484519923720024914997007229781711578402133365910423796303605261256032729373031457539904962907961570341184825191684565663351601560802070359038740861759508263645070875202023072417289332238631679168636068088016129661543931402472630275694673465421251109984247290054271283530098269366280615408433203132163501490129152207997672905240805855856434027137132988633526991971239503257922601108131596788000264652266950266038136494287786792688771046202773375532692471518636997363871272184031890031438252665046901878820938794103971277810402664666582735697852443411151654901272205651782133848844828015339272441669680654602750190767142059324068086410529742837664645614798175728254704457002513244383669731747058818686123366058285548420534945089615233629736602022367300350228901757785757172553005271513466702628834666535484650046907319215263459170458233120113286582198761169522214014108864243787156136715417131553512531437475861567017538025616864000703947873811243049117050875988699133570037471010262059061622952119638842786946384803227962395476665856876568172443802007746013249762908826100903036813862740272261282721266702854830522998233942144984923606449431100988000207993329358805320440583546116752479893492039690719043888213170992082849273527745313769470372331857498709520980935615935328752671836610454404481123372177882481993803622622374199163019827963053974066126694068910682113279994003764654961104272777513984615755155661482564208530179939364047856415447876830714839819696928117464691674060269646133899333427048089825320097366279464911811138549940228055381961586851319177930110259109501319003385764598980681464245100381870384386671475744952182213995050307758787576442649071846547809633644424834901159859111538633063327591943597648261108362498872679565149858283829426507569258011609537534830632655871936274228556678098118247391388375982927930920789701742856849750598299063002672612821518616805605461905126092195801306094405227188653447908645011659990913011425166096938970869132312230638159045516016840766522520254076554456003154965059461089305111183565487815244724697604897080766043121065570524242228865550646343558393319084736280253476944477990162595423294678959281320700460033424621849930454858511213327515235952803382799720308278333939866742200238263743777951287165782515128992707228697276623624048905232241861866893041262990720795947038943767063256403536539980434558606329221802136104973598202542539019561431279441180315467454677229694343377256513342007236851870710652462991880177466123651835559694477517744250286055043969662195367617853913565734472640430434391604788538209057273468828780898035783111089807633111263214770850171496462081768248430755809963222969111227033402595622635313941171442858870839168425275158016412001003353365945221736479709403045309321516580469748355271311343649105876556601904754471194693624433424951706112444056421501087739511153659704584930486778312439265798851797524841056036514133070634794148369051811384875501955242896633048062979308065990664745095125873660749209287857836246479986341359057636120583547895444004650438847581663064438774173227168001771983501760773353198071594059421425280132256844122296770025195006894888476006793148281012641304394308413496568210207000070943624376073053239715420469171835461409742237374921477008395734099649325006078176829378480575924076619693389825040534039491867181968637998614550402908345784877852691592989862557330169691925979828386372291170655814893047179118980436088767648699243062786250831607859905862132264169137328215913796466429487230838306920066370919029920281245071496229969244508970400951897479156837299746951360525735650215448236497067519802545884592360772107221147511609323704332841114149982894038771594038054132621088008522608175741110630055706487731066835203319462592582330292750497524859986659888930289723548157848012657733861919389060360796333572542321965851704381135977012328951732384591593920067923665665988549319148472949152524251710468297642811475732574730511657147671098303642068770628307917160971058241667999855050414543547069909686563598236177106923672656995593247167571014925177906592402356813510553331565575722226363055691194703097338786940129676365769501336530747245615174664446678477995450845835940130594943718002763037955497935995506289410981794601862198103528547220822421923831838346076630092082044897199759511616631007195547924022109985053012168471931244024280871839648073534611062183188456358103672923833219394692756876834986367272496655880679380590900403884840371259591640571340276306782024197072677303991063735427919501762271184810459754632882698265292289073460467294950389434399779003545055409462302324193033250723084723829569291715672040821901464745492798820669484926246810168826574343379988148181280678556010837605862512020291956111529084679050396845236817100123567284702020306278172592662774696344833961781582489117806162784018715473381892034400739864914864587901691071300208153594978653914563585904769431902992871725456855312036070750895295693484168880288086179326227590194712872980655303776350775623833541861466656249878425271051983478436212861384345408558457545771144085680807574461230316275216938210687809804940102016505564706513665138859273147238601165251878146694098389231937879062789390533262546048851453630611628073068557891757036025247937054161646031676112812187712558886489028334619076123125812633936193677990938346050534870935084558462589587122633056504319166641005157821938229890150169756678684133678297602869245620290097822867064844708265575632618838623629848761850095572556386624847660704512940831438243449061409770600269299856741724890952843168160586087639061347004771473398345400881052858029659062785050052648881255765156803679362973581603254836403549447863950229536123070966773778267448925184592774716703392778119963423125667161291118529463596652872639199831872036938300616702719202685985796242955138356267232193442625819884119991771477828143852517320125537267196721057866175384738552450664756185080938255662598834447697270198234516406434766784738757362584697777297489618443729433949558145290966905212534251840361836579152163944580161340785934763376511150526639035693685033624750607061601569464894326102834713355055786613386509252149357914269950294073080691214122754727508060197574691701949460179653292314208483333502205056414428060430779485434723129938183663300118504696728386844179219355045536766887172097212398451713909600117348041943046682206620609735536566671397483718373505753380629140978525686354587724497677469031415144497198169991077084125533919744988287519866898795279518466999040797631276233247275413038262943343368147341906839301402239982193085188925232160530332529761386149771877614872849492202883428625179843316468170505122991757111577953366031311717212764685609244837867089556905032067619111282404395233486403519987051565856469372821235822457662590529251364081294061926361184474051525311847442033011574669689366792173287883695819250191161803230747443793139027347502309422206962829200231019201189393526975322594679654216379129104312721206143651206143569757620174214216086339230769336508518745476535792039806291314758361972016230394486104489448785179791716750134344469329975363536279016984606430782358655056322945420969986436317312838026758520266768806503408505008709098199091204293635591506265743766900233593130531715477943905646658936942081147805956454184459030623531399626718327395084443046409662120390506022307282182763967279432379784915051224169443539815269308280808053624266499819802979140210746593992520336434602868454929960668759277383240983513369391886349060237727835290807570638152597336199297612244874139293615853249008188826536982066435495422311369070986485457346521278790588471527412731068458290314403191214998809730966245732655832810074278605839115098359937237769673357184619080743982399640193784738429027365466503522535953893570696311646196562378279454796886688663161065952094806410419292596588041703623668379054101282886801957301250635887471091042559095895830652437568088949834204831769683524347574408926410649913945534953023516654472319410919394229881589698924413941486215148214225459475978204928689688682450455745879551991421296957023861386001671252488854391301713680760650855146677977566913491117533623047522212513028830221516886000898268740186303211819316870192405874949938790985578783916897034281637198342511786364011669030299225921973594395256943228034448747542096173009791483746239482957622394669178067950454173624464946803728843487531614314817171503058333240762997044048400504180071076586355872092455904572282883942445483808779876042316385063979321181629636691333265492510147142873003921991307448939579891898437573859247830607223641240145282528040847146301930615890537312673596458130847311430395135110053247265164388674095830647642917312134015932883059667285297626113589269325571617854674763564631405599930003655357061898412921623709799395833938178566148346196302087051849264743553228733318684224303553007852304106081077033359912968559473798382820272893544915769687936239917871636616630176556358431480659509277554191782819705001785235188584744947302274022152052347806325491229968556577024265530619744268693789414429500980811758667458817524277435614315130327561202897393834851088261915581568729341108871047495903432845497265149154936812059279394252300926629949157027679497352687088319298648110041195939524685987143827138468551215165144598079520121939367208559672671523060279562901716448790997267386574074990804516053581112546736475951638618465224627791703064607933978073775386304970876759006724688318060051253960162869250717130508134752989590166599473195187103711732615472709031416490066701742424172632644710192319043292345229077943003333560422814655786831307369166139662616838422457234397430365910337879891486760960396216221174467708461021958898459387463826875629355370386237404989655209057729240825046103033528640636029847934791170554979104042578142215511592458282146852899924523866963690422266757212622417963310835240389781697811642854375766733238156395887218822900313110820768508648277984160423563061547945069848831897269479895012403042822139386201883669799650064184994727966851041444805969222092469378623211269591012695998269602941928694090410318764611317162462949415268975203908675951939872180114385113615217282510463969151710097223766041943367444219571865425709467171087430610714221315870519230032689033105441544565542674800947370771056588808472923889245553729092330388673550559902178091346756760620161755177463406280416653785637845161218801555752520136806503461823288636158650058370294696560378658625965885722505457814959462138875001363067271737562157614330152155271846679645323759024324788553973620791488142650372425773371597389518511220713397890338004082068702870261144850364498776089462929193054088977358715064505037968967418062025624494248091134838681542980568386746564377345895407453257236866305799895936942898810543249016651105577653650019694509881120793833233498722868501678451820589353242636313556607895494192994337024740020877357589324002938111964697980610926572378489881606750484126688438577845744286454350547447609743717343307257939275021179773444947184606698339702029203510599113801083000914811666942944174375730759157592360559949348910571365131833998270261460889350064438731025826193474133990260957584162170147687857741146629016691666862220357344983896607274937917910858421855503968190027754441128809118723627841300310110116878028565962083214262532051925112021646267516347298818197605947928428368883293166347884865791493480707122220977952597946367691063435741162991340306364101840164239499972876553729713143506608338734427625631935831310676868862186028697476991428879834667624814803783020269462617353816169121040317151533416617344648733099287812166359715345593253342079625616833848776966394447315129098756885513762541907139129558953345759148437743974747631134054812218939701943238652186071098115415291256020213032674940354413557312979847535858740231266765916948311664727806084820400829581587104240315243553738354242800283803842157693411341583476424494108835489981489255446380780945340325334286979549530229430501289689082863963116989777800785691080397391319278206609217188285442853499072126920079344134011299829201486601444724995254221805475741707367131953826569195937913444241196297102276319641181982699097582737145641248049225315897260833835179849848906094909162317418008097107694548277080629231629090046971437164573294436703987113200492763229043861243435583807236814045065773378262944541143277851417744066000074939775336744198251202095390854979017950603435775482929111085811705531382619087902432252313194327773571897436332334032416333271744843291490128939829791356135952317676504340992742644082130808262382810943125531065922251356650652743201799783125064662904633364012365472451585425086089660558694769798141544173319768355711758535918285228761855888853761963126702933488417854431002799000457544887679925960891403680330388175783103206896190993891403042285688703559374900970504754016016257540832475408446503444514182656100475725521865932080998473804729239795697130095522897681785753503916105103136464076579457178974224396339536565536130510920426072093796578277088188475181806221161834620899324324246977668582453686820789306004978477566482288246004520801169075802579884302085264780963450834004622156909448486868743984479372455519686018627772118643203137160980453095588089344951597275168943774088802708006917358484344749375467145492857598021880031108201912108082741784587527932914316762993135786087143696780058472727812244121085414513539028133519186377187694704066252171394742096003079380269597305125435198412655479552247472064199670700032778660508400699529285158813410721964270352629446389802421968524719171963776854638716316434761757982633957902019137203732380428956277480001034807032794221703799680651524907125340008594748947012170713166471528603676974955581568450491072229314086234449244782615105509519225199029725316169907179177808132494591939507924197608285967787323727134572903260248598689582627488838123917772768430731700238393504301245171379450242251185610373122732272906419212365001160019308394951539659595069641519026434304420192828113953752489645531278666091053791060478670254043746245609342920367106931469137169107234987594035570126072936915949977471622715682630406357751945601735420302444903943126482662633414804504094949017273441294946104204636603616116584788405313191266035717145311557300978934984086411324464034965318924156623668315969854103410908017487142206201005824513094935903590235695102997584654842448100689182743054558351329656103764323396998213856304736599112804463562798497626477452194407381546172307686787195825796568556119747454285418141639073189477048889249076928796277463645245630772885686833389338746711896980404113149028462441662051529351852469778573421119332200405852981260081381386507025258429573200908673351185140743364215437894986172434981647167880914749077220711053871369137895761907407437440045929134274606744967242260106351574000873258113132809652435790199633717759062122824359407666089504675142721926686093005006183236975310079269960674347862282013083581896229075134744157603931241307277178362143418712093238599811793058435129236973976228744677187743431474476611485674761484837117364614572565365438376876849491969317292656722314358298168611331872500163127954002545958758948262303249626249842411981238002457873708798066010357991928096611979960158504662882330575534139891090108046381412552602088293669997631031766785231765679257299577370956651014564830012287412148069515197503783449579269816763652824352459777520447881070858186414543883461921212409485289229188664492307601992943396696791475636322561734005125820828636070968025112360524015480863709644226873128546288925483073798150195236592477007517280518893580042728299904635780246351521219820713091045557241603881511120885335252132718335414087601649922708693471841317807671946640361911844913997948321535802858563421485310003591813655436626680255469899341050105953211989091186398099020914206002041070783578439822836366782581924634854484315771605983507631122784179303887690527888343905889442061780254615910947244864526560193056651838649864283244868047597647154828227797374239582529679354144129207434704536973225266073366860159625382808575785687160916872259819661777905267314969769040952468711314719593865348728058522992973853112397285016995729358694014149667371330309088566026316529230336617018356086618744047368712383706146135156276407528076128855459192789193916781229807594220484586019574624264567908281919136441404347549906052710103158328792276308587546558114490252473178305827211967357570465645500062863388442585817869967765372296961211646710507232499668946940641415293900961686798682989974065972161710974974283720505714310924363581886278539632169849521687114105679744968076919801577561012875524748263583036524431737498613101741559626767735994861627420818128794510085273066355072461029708997526514911847560875447079528562823062284657862821062533560809481077204625254190629484160517573224797386094868678793858226456353887856590755880144956017916507185728650109534268202148945948243311522309652241686088612729282285548315722458848134588749731054234087859470314868681996466863610441978217902773797634937650263880928141011714256350604823166828316962928340818088975345297523475196318898488556663871538611448217177030801677103829033855842658470892288261438311783308223752363090442856092653790704501616020800237449049012838204988952314702199138078060814361194110028458421404203261375043935499623868091794442209752776999320152842275068617933406968885414638671321007397845432666316446301027732880470573886356186962566059849093752903073271878699536102803885281412801061324217426142884243453163616748616530849721665349370838002443925109540782571828419415627439441345819674398306970824813902526338027374073432910719573604595892641796715547567078248192661656682313164572968204842968469517909408707308259536758405915485792967150857349998259815297297579597197500849910918964177224254755950284420015242221419211808652519587540405324753505809373310827125951452206891839211662822562731454139258250824588362472497342724865455983602092881970765347300651401934025855950711225554064518252468383220333295778909086593940430913889163465637000095404028997044105323867641402556385355759044401682388855083511324248297292389312825620877891187485613307632191977074220652136943433243969575739774117303335361144630334772105030968053945809765864760828003202335082397930092757795989492535485881505335783185396090721559522191937821331434574623673513189047527674021403727124057050136621574269143207668386501796013006870358130322636630587014288848639601360342583898356560398619197416742625711374280061629126581654378142971600424111341708839689650051031042397396754656239263774430162332494569631527208715705413475201248738162424697635521386551407927848259537733844993666730988947572115582406344471200386737355085153408695109593907247031588295901004815240862399063264409380186937644459301960787895790828966468573869900993823968255081019188248743619746006235495379534887195375218285566766140794620607789404363650913285298568813905381054349959014407569528761745645420099444708239362111197787030987382014288326075340475363598536130790427887448511699608714288065571733467871193870382472163262982748619883149463146940329341034141418135020910241036663651910946921174815957544052398878818993494897905839378481926673001890840915221071854966223807651255963145451739339361975204347885796794653562222693043354764197977109728746673000814284428973146414923600598138033869238621490182410118763992931343200914909468115121625914147525159910303512285361307908156666480501375364745247873756302432829963936344530677881657975170536655134585133950993945045690399516875484849378886433663048314803005265839535992411388924924656969320758114291659674544275368901524409643760836623696011542164088879350684560448049382636365146993721692808283546315820237302119178364405747539307281567330617686705286705671985839965687654048241543992409266247727572573378495692876424067158476754647876010716240759234339594047295424361558502450889425650139383298267839582479445472048093539245329914190909277658684884148219534302631852631097756788214750379365388916768296478824573826732630863070498947501852484499401795624373012783548777341596790986666164799010142463828702042490667606023096559728493939193799123851895685115683281843589611800994933989886623654283146639124142621234362657929430280208427148490985026158933381837227694044513571224955102439484001177163164823643310003780248501595320301040452794422200446022264996665969147854928810168378068671885923439403613507515937471055869063258396398819563368677595920008796607834203495163528042778660798911912519998731303498663870586579138389170495489270340000335267879458731354779016186786986658852886222280497667474011700535962321739124620527738718053041026593921878115688182351933644471864818006407160782804893451902819029441128305780474008839132171767484475173462945831467138526634732116922965865756697797138708424200981193959611057975922784744626835096977933157508733361968468119823199216695768761344042832399256932084350706185613046962702477033243484255038569875589246032425966737237401920384889359127041245247168713863272629307181576233275766299226269541039174943454896524138593115070971111450259337294104129458205479422339940988435868785567847504435151838363001429357919825048756404620179152284900520232776811212618325371103937595632997262363197420711481680756667844530829439438347529803209656428059901249307288572192666277321477802759249783779070609852655193102472604394496411228357707923804340559985365374423244757166448159215191697237381771503466177444000158057735781305478482500478687453826921115012532273982451144211050959600997607840027566281905658251063805801018644834394629414321637283901088221284535440835818296083020729183259588117315736791794909647931598562633381282629908525602857258279272615421650298604891524808975525543431504065774618337521524170176037765646442354785885547425468484552000808412521866986264467868067274417264920879495666368671269836579120761077250131304074790900280089878086051728545822490532007460014772122761990900394292123550345569504342229539314848432573384369800086028291509682022181531097145486342792263588884799425452806300608426062494869395353606598616960622683340094994698312205022903987044435014038927254339101158138236672913188691254030436374141590013327016604512118748334697649628139611838400640137358650177724472520264551600510829529062018502263034415604163505498139577785078034261850135753675339024871235098486927156960245989796993794368514778438688424014209934539880132901975585116294520531683171947391454064011888105491371674503464933571943034814682049915900346505497434087001491988357319793275097627870385684717420124944570591838773474414174409786286139147438138539077999311974874833419274934854693906265156563519819550679969719676660793037628211625652364271682009207233632524639124412592695214590658783290064245577865162771468982765135196180852329584406145983940215593865414908229087282313914144557373170226490646906566437622909335219658103025139994668105517718369628189123147336629189383531376462773694303145709939438364774419570816782404297896489207193720944054868617692881730827255276598711411468157556046065324666077897718610096677035012281687039865561609042996436281716563394633706129779328072590330399259825855586273406596775292857453638200563243204756259638294179392725873541666136880998223334048723245371604050035144848024112071068246171751914382625978469773957970450382624104875539389052082128687709998450969038628769222341824352622759605537324179139231454456491806804689786153093498990409247306070856073528668764420695613284783342774886063426314790232450615879954825688450259455422617633051116379476757421603113896434693090521604782135740651653896034335203241668778453613825255655075008329061408890965397799550147394245879495526304555742103276229354047214778272990223624001816056242750848346559191990311025675407842130341331296711358754755994117066792082810642325872650938396191830565332794457982302985001670963302464801452335592087354260278132534908023190120255389828980832531528971488644391967121346587653326923573842764384826637701599408642146311152487992350609471215786898472184039860798607328560537827456271629456351534753426918064184906434224195222044487954537673929900445195126646153128628814385720673994630140947919672135713159922721135622224736921740659679033712287485730723961637162827651138388025381045232145431002925306369547677670853983966494075405412588027957652233400819896148029004647494180156470258488081533129946715733615710994489111882480064518700494409769286666100937332592198932384908421893477551701104591328927002162816018687422713598825454651503183704116477544065481578301589417800324196567695864446597964084581416768094104308989208665606702037052812511129113567723206963269152290347549727430843406816677273141702277287941436489498566131981061028054282203184045611280907972588722476755221145661180536841307322839679192811553914747484437485834513424723221297005333990535829317069259044627426508792706919314070287855425892421160193688961069236417017324418638195112607749334634870255560734601252538502786943210791523656655260404997711713575643280778969909741448398683508155262189134722665222821626232153334731096206546584798638152981977850533462763335809133514491357986402036832553584524206509258044101423350636021001826747825568629999610494304504380732570329075673844731768876418226813628180670857053640573038528667566499518817564485586512550913701292803140132394606879244252793660891846308125589550192085826261592534615958856086290570313857609185673409782619915939658318534965166388639189713550840163955805772855803486408860703131405673483944350533170215838104231545404795216587446504446651438026043802423783416679359498630834753962395297914782892002487661314475451758709678059971279823292679156871945112407830481502632319212373015569430233033513062528370775065267185806026294779769005638969020103325971759195214610354358349872261631013376390589330961258982983568938569319230473419663362799411611613464628696774705523418319355387701523109664569574129784060044285171666721080597716085711846521418409024997633576217938017094914080463372126693558766584661887410365447498951626107468264173219027742399351428797113144693319328524415960027805779036446036599641388793051824308945705977491823705896411192092227526620410756260774122864645374866657313592418658595244296999910153020120627898571016908896441412068846473396931173034588502145056273473774204661724082360191581215130745443473970116876170696162109320972356337309898492843417420590239277862103626853302848107111971377931869825907299927577944617064083755779412509500783953546915629485740546126628010877647862154659342276795485519983883567691587469232793074281669647235163785379865026951905538881144481999427553828282462228275651962838073480700605093402403387722878610962175765570119975477603322989486207559988075475964725928989510175206075029895738443631494971746728159501693684918251904769329324317981880301844397303833529822774496231736846800843951278075087195863963030803647551575782729965094290623544038116618387876108284818675749403325247897352767933198277932430156369339322252253422268759025255953521097962035064195860971840228867643335925828754431922472756658462291338479832160084278392417191987018417750491653080358229471007310627441141653385238374764576474958379232563057477098800501154447688199031694452222514731870988120531449636044993329571650283400677792839677649067670214514838305767868009932468523173264363859110316945244523846366044285262541446458215399391157358658659851142879557370011131295054274833869785301429635299042981896479895540357266790588405292716332185820771660106850354529577714786094406154620924587969921284087401895790095997174439805545490060564690260024624719748978607073622942056185751889846836576389952345275046610894188399815040823968127790055560105735085492562495689311386497972761017524718186793847613145413005722803209652316226616442194891182008274165569366607600851446025541414011884028860121125320173661604020030953022713598306327415455499278536524520368773897526892758201638161438845440679034199458630945969980454392944236208268820823162382975230226327689458270633785574562915083305338426927718091986532622456534526811690431337344580103106304845588921410779962259973925477727818764445816613269971915988458107474244640518732418126766350811217503637483750293070448653071441698784543872060824135818630650683288952745482271918530851091174419593343284504237111272573040762843225185140432004416293394953000276928791741101514577302461740591895288349950769721404864644943701941218535060178927576914225634677277515588274377143805090694636524336535955523729438724527838824382560522040227015450410835633502372587756625284585155279195731222278193900045976056921406098227721800218855738448309777338414091224892344211684350779826904600134688283222769219228332774402386942811154960463207387285777939757327630700719131896550749715220869703178987542526471702088777290229069553894898949781935547909443649703199181258744762038818516638214742890657749627141596743264798441823038917066228459000181460403959588892599728441936197114911380100386553702684458198393947226905714963028900957800433252881445304084514900033790056981413568551867378167646089700691673111691658490112783214736786258737532294625978719171666154403533210396543624029203491863918740837765606652083854024786156040913994212000122279977063614914702580878169520173028153418989082443096869750011720096420913849752498988862689002665919243957950335921354161556862801582908439652372135860217465271521909345830917412662753379986053416962515635258466341842017741623145520150062746068097643659217795205176191625777827338147633923649602121141238270456494321179365329108322598516288346590302632658175713709371134584094254851866088518449365869382238836715551261176860536629620658787631179867138281981637355032135995384108781255919769159832347659131819647562284421269887764741595765147400446012760299711677676951243789183681516361277424603101595232369378909975357215802072529149132163869681914059333620443491655256213803126439618557510940298580236959378024331151476248186890181327802718089981006496516351162085184395996791070258592247495105382590718104431067063936604374968685455152017385284026252282731340200485454604194186639396357386845972386973280512293697620262783064429835181445444555505464104057886969163462838163129097789526069984028394262532990757138194211177375373845436963336151899433862628151729777013837038887725750775642136339211278599011259822119791617328554769352390605785043455136223728906169937882422429346022828785316313631004224667831135876532216411485339955933311767373796421693359280336372834965179161116148442353640164157537461349642273943333331479938789168634980093980646632230017034471158959838523628544100804998303665243598597084054920625494915853350806150398345647990835757335570616208937104384940475813149536217293452368718262878987891435524778871099722682321007802561944847239481008608728223254116415219079971490863815195632769182577928587225827528682860771011702507763917593047892126039084853747944298517852227938451025184412323443848115457248877035723746919188526282402349805951209999067772280494498833182042691419445298841651345725900266328009052825312123571263317979271140797870020850508237314978252887500166028055055483739923320140821061745324149927981291243100618502134813022894674180189505861737446340777037557451613483347200452403351446187517137090711100137718593309230368857603757124002655858413613051035876791130741819356327802430488497849510620668352904511864337185372138833953930619781016382408000746112070550095663406569653678740371148686278450597077462744964420006707899318306745038850555275212256884871453373276984784940378246721088776928095273690112523842808461379419391655350404257316536896673453186603226794329007616233868716971480790731179441019971286480724097582148847194536612466989984234151354471003803081125282518055499631083484178035395327962853353114747414985137419840020161905373413426617742694782154282373645116611826131588015157294135966228923164727480454533691165048319081958193071964610050564675032919486992293921824868943737025699107904165304580322306835162915783345565572908661996125028138782670385299508622461756074162697958921199965317269680097805732275257631372636246816305369806586311215454688121001595584316624321721085864960324015601958135211810350295333848242857358894694214329572060731546001830423991284736519980549532582927446699370177180100680608834773708688172530444218430648334537458601331040974404766720182620129031049154579904062443503387266789332226732694261107269579737582542912937227357130797887367300425279986642512370833204982734489434406723594717620497378827611186525970969978105552425613192766614106732293814474772428727050226829871648028200641612075893094192231808910193390745148668801027494440753909336649455515917259575647951466213325812074670881224933009078691552553645672047674598606123341905590474672220657152886804912395090893785033404331944984235724109475351697193699808669868608978363809338595716124242803588765997797555798337067523267922521646355413371023475943597521527369362791713600403044254410772941521788768515241540361613159399934081115101122707559230841700585944816615337146390638489124921423580138392695681130635303029314787223892408148370804379640014156203570388460483002642560434710046118775890007308799401367537469982889266539718470602114419944738153227797917642303221009342084610093173507294020295831747898294743579553197641550585528679913588297824173162206064575121579322740686180560941991176490443016665348685966960251101251918381833847553021961646520107106975404422277642179427877809803345887646192112781724621795219790721918629316287236342596357177494644201042783621176822015521516787440654116011230297924472859440836042738576671957506162991242788120647248116903933685253134087593744446508776384416216617202739076458851135588084189714522223152679668375238659351290514699511548653770552135382059222421772352667250507337174542354591160311726392469681733077455461710861710618411594451090520144106526383973834045925598237848360952410902061142105626932560142579813872166612558770391435318506002459142750820027394740879107555041328572288968300952835882646798235669592032831448545717414898575532102171696465316226458965721386551295444972299374577627404732443869632393583343246658307410189782168696410586258761085677741388381374030136969863133217799996557100507053262476112203394347104640737809174217109304477136841816378561789508927039392559269778677481552218729014890443772526098039070839625368288300457626993971653006423177078439450441248855467852211231700107199065153111017656569758341149413123831540991475093976299502462901585503798305545114827829637230475982389778917818014395778941681504509757894652030062063395393827961582295155736583539978764204871840353282955430610775948376734930069797202154650379412678284902469959999274996240983327318153626267486692658805362390515225776358370106823095667757416546576715953828294434208229391588005659669445850800820448518731950661314969154732923680561340080293193727590308157565651721817138627173271508587754344463307450780522054076971875608389027355311461823804658177457247312130696413307365199032762467999480411732396244061303890811581012749075065543955054434645913050865427315931889683178063131077663566453560500556893534320832346257552907981590675545444372443236592234742197568564354312610302443716030627419450415884620590890789642004007399977154406274898360953074714439491008109299111430487469672965634360406166946273898602692588502713470542366354662485509197196109467061797006933351014393434523720059880193166505575111730317593105504707531897989901114297883899861509967445348206022027679366055082414037460579574652698498375670176051771865377595783717224591887646269778056471917430127230918363215578345002944082104440659650703490949557333620680387646088352729867718244258549132629590435214183285412846317474833113765297645726559793003408251249576173833767081056010657292158624588074335682789057291934458322096045198113539022183445512646702155277508037756079483359426324478838190454514325051695770970298633230006472029325488763262819436962183295852832060547896728129161403738754319246681726991196288278263569336999729341209826479177373030703680688583192249559914980055659113809609233617434021973067812549988450268423445697696449104419137554853371786668401066292720017954569777574804883839621066231493153942751885774178810752491823034494307072534659167945328263083607755495814726504768385151181139515818316294812851707973695237076687820305612012641492971117464110639302389609294732218591228948712335857641278549839189435771133197637289065781124536230880225161510336584548491148899400853947828458552945615717408444574441074312285642011370901452666630439043112694114449347746539720605292179251156483485816063096696051702430661889133789313823282221687985200326631884462133933137363335922331400796010720316305267626557689667069801052038421971845268074955818895378094132864148546976322229921693764493938901939211683535080796679844219079730346289593725379754470812161105172829429333698884053391715386181558512116274044288257401932046006492096540494407413478504420388174567171640345450096775297199700516869762234851672070207587975962595975582948773249527712763819329445811365822092865646383175308576317959907463986081970722275753234958898447644188140684123586392304919984014604544049810432704002893179377439055379776070858802014904395462155479137249512865895765032154042681789401808715305332063464077278216310799604297698093370959938568971342502053576740670662435544949127044413983124235236287758687932537730980011704131145294164011511474727615515295829040213766262019579277092086970808447040197691548573557398176768306652636129830728660668452940178309975266148032848114390655790915072705319935590855681377558233589336370083845691866852834395708183901934180091667089069854568867752055084913087958272996508512613648135187475280345238807609774015704495542478689807407569603790300729661640259999701823816365901317102265507395318405660516852282959845072669311689654047711797045904550673359771533328201809413983194477680594456947622766788857200254246647169101027168323540829038857012009650281438390526492228482337151868881977403439058408262565783507341221955623689546969931969990869221579608572120813227990082963744749849239224730312582184205468128301511981713854911689952258235589497593967575554383558695764488887962571962656473205628009560060682178150895449023489544147177604708921513292660719406805628687326290253002157890462221939748705458714905448339101517155638007656825527880640937127989690609240056009430205688134750021005245455928482619338552280497731486626505866903644618944749865163285211221494768186170107145347720794264556703204487946422355355099387369703052487295810853436150462468052762339896834667784477537443794645486649327475417463658918985569852227282641577640502528802405405308511767794810602024393249203975607432223142945340507232154861411499940041691856692988123867215248253746765683136637537235953210292666710092220388047699555031788568129666512691824179830567605482071982739641585664570272290290590822225939925963130102270227709744367443702974195363483891074342525403514665800119755037553166443797590312189227339101032978875333060798920778566939803358300233348531983398377321694928466098005034534484442096063642130769993010932699484029059924744460375195295421844118382691522992568561015383289741252244431676113672498207387860806241890567866048677562994972932911201477412973600050903991673477218481284230978454033476653823600408891217690993659266990540615240758706363287309957920890631468368059055667227522296569683141604660485630215969934780237740994148083479637047709530627574000580625893776537273046922679098902027522624720813975642666209603107134103729933863992583297248048842814103153846563699226597021909232839857984971241772143868978462818254638297207618356871361111403437384279214876027303508687097931461277103381502932582434007179498804494611289170176650689433390079879420738455908721280047380493537626350609196730305584749019259853989884548489444962270672839646528725275131164492354947419663598218643994763293520318593410366898039282146092913606558716917001479850545945576870874160488428536980597816490150080828426639453525145556450671119397321066104135058556003679274134439739097006307984593843115756824503074632872763737041010696214089215524960849108794216830005845895551103658982426462501653633020664178560249334709070660666822768764661807275338495547496648835936241110447134085454239976965563712323446321682863193675641723651702682025306785934983685649417146459405842277857335475162043141012457216779789303369723263216971729674054855280943701956509618259487532334644495613419818639163432502284453039153144161597815904009649553449739204944232820463103350853888526927079584671180500203617506054725294519423293393743638784349485821272972657920524342241645266573031804521557495759967884162424951564383385406371277483629360408406731863689523196891363264337820432897772914090553111185158917981002464483242699867499818029893945269029187037399704209585060271223548413304151093148764442502370478738757319917421440310889153964898801793142250893856580285338946117114631047709054643463468902364568777064329919780914013773848828465884065507237098983348703388440204587686500469890919204052881215585224642313285276444884889558507802441824797598316574795183279358005321122726229985330109221314907894836028455914568006048279461993346549379725081378054826528298304676725985100066247558141089528317462544571506045102725719101468701330509877709314596692739329940130643683349994791528111419122029245968718821885257837569783223913001844980976689485208693928452355609651334674136387467110022444619937037452414800090715025545047988549897889383963497140345558597725029773074935111402129284100439481006262193916854368421221074829108155257216885099576822731158257409517341123557738911093001990887759060514269497379511259900243634926004777110854871155949034173943820945593433424087694329464373312496161239161864956031712265726424372997396629993829357190486987998667984998851475306101697755832427758320702336283758928802770430554821184506632662327665681979089202192260634115591000060744380939744308059611489720259576779595641820301733699493350003685382389326098770101953308721686995876226889095492794564397584216644129551875970515805966841588888706698190747134383443581851536936214643075431170170017581963199258787877156112567360627026341576970192303279244749318094924302318922801504029055032633033501067828637678707172249173451277406691631418527462653315317048264094288180063683400207316740426137774609166401723883896891816260797778454354831938494641441383966928188084758127441695528652030495779684635949419142594212497804376914376759371948110057900094471927011773349482910945018981897835747195044284677733645869119278442758279090592558289964935291978154186475194331088304809226986600557194298546811999487772462913144899028342982583955905463001248231501901750979692862378964604167532513376144111682371888565476468163052225533823247344584167853713101001822774304285091805474864388854256862257547873252480106541409205328287649582349083509872160541334156226143892854960840087886909820350451146697759604678146811580539254854955748168975851958979764369631263069792166097907677707369009550105804839097239349291648087141811488153222189724427965641558047558233123618927310532447599711848570328880887218294692793571808464925352015929861734140346314039357646835266612375337399214435583037466191748611786002954041254294400630275835339015035129416654182075083050367101432920928522543714404408760105955264287309403979861921938123435570729440861068551234471561878415874129108588388567063870283768805511777447459296483143279038746059542173005981968801424887814446429665824679102039078749591672887712123363943636398515413379597662178140858902614105476230479439125750126230973332079316623299779106297800221656808420534090936249822429340335960329424348229911302805429275651273872913247894987925729768465265823365661651813064363699450020146279944020678564278686198315769627860126758425699032014847866479850376806964980689070574307875850355566962452109209351387266409649148796569454102213687507226059203012011143253948528106658368736215568921048251176639618022385530429374179628857705115756115013233357978992277889495370521601108677378225387983841969547491043804544433642912121581956626378981978416950590687899688072192133204897043669286967101826179775908035743468297241844060686336006415918835824212201626341079111714828487824008186628505727018409629238216891601903112366556931693204017459669797993558820536355216799834891724820566904894725296939057708453196982522284451505323911448747581389717663956912525056743698511154515216615762168055306968625567683924850385262209912751521416696133776972897947352243170477858845024516757495543112614535463406662212790341881979469265004760953366295396490659553057226440666246295072320809826395285710916140646094087836151161799386405632668088633650570428109681073654337075318530200841744141409245143959816402569688904406098856136354355669573912416905980211773445632441743305921449328047056131758186750831438728719336470549143425769176623328216858031704315821375188693673548881418513597970393990318002449546079410379337068063702415264747111638339463662476582995909826734472620402791290866785195189690418766704859824779693494204972094680496436856548892771544837914744858655207333011114984439924365492423714799965636082426630215675056695996728500227222613926820092066904465955425135780230469512603181880420938613253126880893580038127223761554784257258757857465826314788779102893893056601587608971957946848141056856324722040996260447779275442373830030672698315149645323054306964404984365440280496744488348227599778280743818038210781542297462592033759508381955469238993548800235205798563047225792763064877832483751876837576505892413279306818958455170204983604368674219284128953122982106181315613625787311395567031947569588769485443544453030592929260270899282023978694256911730429846430689939595581959917789939606647721274518672204760290099013714277764121236698089804726370100521291291220518419175773594165308258008289721658994864326206803452387279631238113696262373912757170073318490687988032986057299890408482887210704406390895175758560338608026400878027699938629804828788252023508370817168639075977119658287538192983765488027640335526542751890877638205762803039913110469434715989029486114846795593106082200790323861978215571215309990679308425846330141982501534695724348206863308731230242230630719075402789710209964347974622971882697592916000190742445428396121617271197832223468491365537008943834050380038181494075724199741289833271055534154331981226730770846565011532504344067721084737816462903930641285741148105886760668759327845723751647165009680364330335890208692649793740972436668921447970433921962798256202826959782361769852368188052795472672829474454729933539195275480364686622564467115570405548954967550920577210864838824972524886611171113027893857503357018127384133116179780285249382942225789080397692852260266913145437165758681391552279182030699392070421952741414699044522816379685151532875556830685809338398492151138009283632191537486001689876355430486769800672925165861078758430363050718924331462899724604189878443542643583014507488745651185215229796704645298190855162021451332666308388454907990319513524571429281896583895178592464662405892555537378541489396144961902658793441081546725505779749611940621245808961987087590401434997641718602987207983619025744009996612199980479950352403736219603930478163597432393770032572475273398723381020407567145368373198166756217850716533387529504322232080251548943687031871619038372725945906616614004895140918174979051766463076494985378971614570584413320604703871668071588297994422786054806000647609209343912683409287762532330375570243846956418353213217914280136547800665324268352026895591150711886977663007486959881568222745861479669818041256273501290482271916561252030368057187022515669190173895754323839888661009770425749921424557748389800810196909359417668282300190531929786997199747379184429047918464850239427603255325886128777510837638448512689715026726942397954372355276811601066915469064244769677887221756625834117215266022398369967484777426448871919311451650678716455144924874563827259391509567860169013007593523004133764366956369259933390646663600004288518278915208125299090614251087909142586148011952831556933031433948729160577807699627885032994307042647442983967514253391819563110700944183269814978345792971552649575457152727035195715557840312507601005429337751512987395527149127120667106901387096183428480871267685679140897094814121633995316129248604877677923736612615126063719700882751009626612639168066062945808981146588383077939186215478190582668752784361105989341770961301411621051873824528133771502113705407529342230456324582732655247712141571775203513056865891890508418256767160009472449714144308245928470223702853345664012552237635019611334021499634447579932904554727339680119097263762863401736001664776891669533514285335934417106909293562639712221276408003577382871692237268056318162765894153950534660139814895128686458442742903577618947012736743102098681106564079610173756807503933261623790894288206676396277108006201829577145061842516348950828744113201026287198916364251521016504537337915848144270186917136854031692400432140316503718497093536222373033789598097745561885093519002096316126524232927964502659937469677642219290899811901290218876688842183718174988025566428721650429220676392317238495555057840442573973832705654544571141387390950951381202700456608134883323283059635595097888666787222684239816765941736110737501523383497441762169008569904821919585098243426835345619832840539488175614063732029526576411036997830064709442722045416135008781456372056582657836379280267407253096663327465780935195523623735139587792731550421500974185298100654469194001727111439635334785116877408542459935970073424521583994915017174874161570500994159411397330076870465930188570092072134264833944740822347892370940665837647738663392802975258982159049973196763208404994462764151447320427357773868132546500033147957824494608630629253945719574854218560944353049583710411058466782023387364421554831359566372736698216228952142315265224733739456143968603076694319850273377731231771290008469278320569088702261709473630422675359037609541337322935365327403762443986662255153993858710868851520701284295707247732335852368813811785049278980541669693232085645243468662732989029476284352779840233631894394027378519266385029586458244001243190148796539295922435196336383803311510651850825945722541343910007042255842978549241223204346590192048553536368303512744260397018527541907045345607942073130328405658827399442695166275752451305123080359325766219370738957498137511612676495539780726668204707630889354811372795431692007983792470977816884437714865679876988701184715400881207514376773454137527362753516579282021691690295374796228067461234749397310954088929920309492897406206758333144941689274690643823026694846929737188490681514071934073973173654498735443201215673356086314851760010927846924103208275001581962438842201247881170446543811489011298044754813763794762051644716457940223528609413826905968914537843775160105775473992452541806789674839508885558179785550622985592460490562025288851522696908179532350952989370413740985971799475530217716749711818138242865004858015498635180122173797223283699038199245727111650485854703120472699652792992230679533774788689785998698117289964645989872509262789719307293226319594534603122127748155067834062847697143387981591984214004689744609183212239532704062295043451214215706626975358581886683185107410028927173766820904485834724672549724747944018588907374461941905738475983255325538539522189401303175923289433440579938737897175596680893662209316922397984760783691465485223825739680689759312944376026439117736927759167430753386476245264942228962100290540682737857618456699335886632366313144870662844651306123733074730461441698384444807968575995793318969195533041683842685298300298643694089762990166465703265619257070246676146599384464611382158553476662922720232237363747875467168767618660695620686222499600333644365672279141828488744946782236334746515728415599386973306659931626268972458129662531954782236570498594698196325125568000325269889162935695928715162824154464973467207064800952704253844413557201136380210864589865939370879065596522023316263883658418422596831163250747427471848655562038723691518349119776793455687547388525846182224559625498223256162680476665258408513298761300225503292281041321808284694305500467091855258047148659751186233260987793874351946057838197265158795837710318581193440381718659360840505265712684505994181060033339511172819865372095322644255582268749984969538448260769184745129816572586175055822002562681051666850535756488346051728282502685676031028085822188705167905971484761234878680018081569906371256970215870824038979004234110443727821512037613933987304994964155609922306908423254567244845020679590634150479057364874968099023273505145296761580164549304714146739947934829328071010134947745597291043533095470898170257822490177073432654849707633650080156328702872830956566712438699931789629673542589935483026418250226263903743434752190559488571885229721110242859264332234128162764611088531101316402402241708712793760458912523102628871054498430385650660908201289101778576648098171246501467899536053033765809337558821891760578900441308069116042074804357843264883094818191206936726999910687128391691527831253729634308051997425348642962823331148256108927761887248235277974199682521475533468052056317750878710093184650392297579426444548360315868138902103021906334377834178425057602060264674711029843656345459047542639360118869876964989299446235445895531035237199716314672769966103327703360503348084237292260433561235388428201692270138157372907409074197194489559169945016132967092133822104876308008337054069505898912161717389340694651146515946292289181883879350773478079964894812225062093325584288215500231932454584150933130128468820382602920692641415940041894953263974627426055878569570886674398442519321718506508279023463982682270020628241848609754873591574170524993582696072595770327817969882855874535676572707972341175359398185601752684049024857572754904166702605306814022397212286377570818034808731522053918076789098508984904481863835420248327920438069148160866575342551813407889652881446043442808385757189551754616368304194087471024512666525945763979240210802742171272588543894560818144368236538573424692503072408500796289138374486096969830613027330994325467481325047752963112881299627998785348708029761843761837130492580262616474658517644629240632446472269731913978683320638129979844059436805640391307175765263786130844170096523842458475415866443115623674179884086398375482242183266936010855882002525300895012347391766176303867046929393879660156065482856076859553222114239091440851636037046351291017713739648012613003069724418021923961499875134911875983425584873276577336804908883232721161764713011439792732581973143077663717697581727193273385357606130688933709526371636163555949814389292483634061353619463621177570771584725124028866669083239625889212705457273087090592261246914330568970072956728545720116247857804838613272453068194272018215697919653445297438962666714969071816310797263205779655988728384703630731753405685868550963117041942668570289136876995732538732556677776053927508994902138398231674891169639116157166461778773507234421540198809249829499556322102718171190975594071571896219247798831920688536368804956146716466642475012442634989420592653439375801910428518142215331155990639051059118225727692822908648653592597144382382721345477757449487838142148939156688292565007802597388078729795493260532380980516035697625623636530506552912054144895299365297633881287539185261547020039705694113075465132679085033232474480791004781734918218477498410087022537388414394922819555733217555162413206950016156560033877792720302504663018712119268800203775583646371384376568193553946704239093416920577535723145050794686505433966737977316650844064222120811978589442998855930262097525816239858419402928154494267361445482487068320569974021214401796286659644903459377623162508089946745544587037960327596131661526464098012070335742241130760742968339891846536723371677987714076554590562341847979136403460600142619903302615733819024730396237062150548553320045616384481356210840267688056483027306624705111209412134988662798382280362427237794894604458054508974014499835822591984780782400844238066418367238818171822344498286088584991269554961010519537312116369540444457933153144823188585521152429641277486177204366995161794442172476478174167587488183509612414338069840407487801585905296605394703654068739077414444958357816843698292143437198630872663004862997123208010653900398271037674492954129390363615172790088700501260074634550667152449958130878137071098529937997373776588182832061949341592557109468575499656515895586362409990837237132482211449056478304855345797604698422442600560927923093032324099943858203157641203400612793187643380115914926962961795926956706172171304427048137700989862893541660263509326575757341471693476335374999062410858590384363682680118322060421587404798999540436209961239561124434361461216347344146462309486270776615617622083998300094077518147026264923538475316085246789791466787479969561357377099008242936286040263090157014945135801926662253842374026774042644381961276496194366832336543231791605919441782110863386736199845323832079564671273093715768248720739634586599364101697978979762887269253293239417618809406732764698995161472269113621403341812767849603986338251105623127075879709432991002823826797046249917484501994184630898835838585063191953247325314094195711197500575886036234228143556577043684213944407266497695498834899225286287479397643667963717099925198366811539320862733900586484477701587251863631838805251353848556886881633755264230735387121452078134508342616024863915242703988077139387470085794535217502294992176468300488414654953399569194570994748397517640486790743610949263648133983920655170842224642230200434918644986897688894784165138333694150255374807228324367291026833114967693301229817504020514891608667163541179353236083095925955735741500410760037354550633011393266089969268991108480693173737045161719007335640194654731963796685520018020646329419490690173461895075173038229821570202037607804706398519888109690121023177844356689439421341947411431024450502084581710074659532396812178239779056395629302966635226978393844872674419723387324038617250528980031526192423165344402063807706198949636145700114570140450275411735314076064274591158938693532294574256284104614747792542999432653667395327918356203954358399050574838594001460635416451668317198602193767021431666528391452592131121290568915232275331156201878091289463042703550063622819146506851967379082987389281769466442778280571236521681335777723285889639842627070627971247015632163940231327882763101046698715068473386769629200450983250992926719546817654633721645289465339742186319487020454740473452658293635415056361192475149871804413624915565430754196020438012179830671369301124325826215686785665348196710951053799277723785354981038543166585077892939758676057584169905604581732662830902957366580421032347790841500063319026248585179791744624194082701828195700650276777159899744108072151700286889456885845936556115786214465578126592924734253410200848142034576415311671973849618695355743422786295625727957550912447826821383817200804058407878345975609474648443823016420148278963473085188265246907266462967287790178642928392668771548691367429921041196940945067145616635777119837351787320806060173336852508816536120254934476908529020849393633563256735604798196664811945965138975343115648117170849508074973633525290522944397119834250430970701960787379115895559670262772417346544155923936166697643094773815274743231145368240514486678360781523076545278090238192016406327663756120958672484671226989867512116824094932303328958250480824260066821137342068323119925837175831766440343163926479558888193798416275272764723180085999467381853487590539646404821863247339167205073326391464297000646868710881355595107548452392690582034549653624451634006565977497141569278109709212325780350817659744868974368019518843857434590005566449711551115577388223620394084668247107793652452551312814131900394956534329046067026456626069429389908208052660913960530434411256486581464012239047921549333858601607070202410486076331625296134244736678189409683955206503828595416870467038550457580093625914813117712605311839013761621956195062461939793605544708246837603599113115951258718603950782074445736736604833586887826483549268655076024405812472737836401297762744653680440402897142395027905881213113166753470261638724423900352458807412208473669909326947938970846251384460365179412547860752188707317182795607020416516539821552475218811387315426955487592037901352159967745958309584879717723011043320472114143779164056444188431681751190256430299080333048401176229997043254933942008272191798472027175901090930008244643176892953725886285305890309194387940531817749859481200839308549334787820471354173042984548684422952272666585366546204686791609845668568350531946414926754527079896649286403869474534702095274201881090932995627528608991987424479197312438838747126920213712488195332414486954856937166327166791393469598530059222233094139641134130630891432924759266419956301956985773381040130738107930658370231212856018350522778198178288079977267524791774481882378177900305054287279529300924335978985747907820699706227711952630238461848874819143330590006370898545237618704444984608831935127965155890407831010423020464435176905300808593275165888952633542132965569803498941793973551620635079592449647671315979599649704301127315753097516470125958313806411388378965385918208779736219700596092239592041482742341885406478010674997946629533508952710036276520934379295900581979025449948776059135753594866018506560142628532934829332578694052415095251250027900473979183362337369851944525715439062424711037688036967512714123940797352093445470472829043548974016479314033221929237977008621359197734077087503476791478409193723736694871211354745877295413799231918119679725953152812881506343398336310495062845525778793652636343576353371933372225651031644701520879939133840412818382175472846786839632053602593968831377122155204168012898733291702456279564915178963440769086245271192331242211585258299116388133674768279308620542921081836353879981505578242907387312572552934890800055537755545298983131469024242641872817171459366986263096920206302501377004203174920759458646841217525742080150068968887337811272280488317856646287216322092448041393980399912195269344476464898933401701299444772668227192175401332826730576897598955521436970189212679131004378267254103459061112380356827424061625472305822491277935307922209279096127920420395405636196150666803752113589911185692514337515064178367795346800331755367748976983809728504078799187337882090194073676339955573972461061663035775782225566754668699255045164740356728475533516486622988613837656805103406501370115963393722068893080484984576655606461781763777812156322568799667985841806699874098772622071969063257560015391453351690901236842394485734987387273089867828083671827011560250538663854400825745946895942546000390909245158525185622792104350133481525247030478888190250521829129349657124641166636825764780484798125522817595063657815689747761524259743420009991159848286899099577420482064777925661547866751922965898345401036081305900640163954371084761440747264205878120483400477466963840266863140040529693501217934252870988268674375139749474513040842243108936147374143566317457101001615353370624916574718785709275264345512314576751866362879758339201785113877552871902096382112385076620032034524510109842261921525851049061411268285519412962129981626157577335658539789469361116960680296217659585054213579076282543984795807145199093170289392784819433241440040751446850563130277166321951562076344864016039756746816939389435934638378940372391252997485404716492527938294989108071522770110552116374688847621192079690129087648555601469371842413932956003040464726803193150576963464882418094205080554768348152667911096478608337300408523096212502157537309398056253752037169708703329365712883367517853981618380179812352252299749552858498065952774066761138690721060222438931072755108988212231817219529031842577418232193696742305342328514997196709254166807576509592612323097050029691314534525241736523506895061786801957078848932452305882153312870787735934726561599078469053421600816479724346393978327568752713762828878241498980109999303658501749527296604437630275754414024664746714179077935372860021719411315485121611966234579533349902465458498763396927279286481983723041343041448194228033721018971685766415648886176044890551956080283557420385324004002497067889447308406521280471507625915157707923907166457918782224539898849702345995881088053982676411139299125978982845575831795056581209380935024191892655440238701527109100073715190003719491420317218509992128921579122761166367264223552706576644343971874495857033074211327454634884533137835261373218599743787100287190701871332765199150017607507915458153838169480671295025189852783053559540679934487772961153962313570741616600867634940052963452661607604472412506066559351106736774164306823957000893528433698298647526684355365642459926325685334856154287880771246610905667651416013596074173818433455869948838735368037899789623476315454696007830463709204026052786142436550023697946027616354337517366949231658646643307048878979533892206580267423625949120966041498232020595986872072879710823391215791150375274809073723324603110124930116361661642353099977325983581101567416077081596809799796244860431474138998279585213238124059949653777860046890100532537866314081467088581264572774143718563779413042632476477753247044108968349267830185282796139435424478188559744998585784823430086427113547745925536657109151358081956966792396419022715434489354655905416265076698919105869519732548188474940762030146532482173257903403618708960465838160490900005031411126582771500415477033874030928898571913031653073803145408570234895452952841271257114485748137748971617609024499842543123629028956407649806065692104538831334680447382608765412678689172359576324633461380787527083788636734932369970265898899664271403528043641280062856193572145631841574985802978718058574589501912257435082420297204549331267624287748190242110645549609267279441667508546942829717687974002598824817769599371879825874679701122934521341383667722076792886040833490394325285462122552511152154612668009625760014449304776763389398434116699552871746199131366591901834250717501360571892896352271350841217961106621174448843290561759412969998034712532119015642344485453575113022989831724055751992246035933532506524053846746646526331463156364845727817064828673173498519862925687198699588859022650695349871323116621623536794412821114243947417942197958805415976213805561469037590240492925220620515941004699908106710355732712742708112707783228002828711770192455127545539885846026362282188315940919635781567055206192982610667404157939074242172847536141217220164709692462722761311227098913410437537563048837384691842017880040563403698572433452868101333423037700181153818884501565497870856139150636595285161609040216113356152573866870447536439560780070623703955787083940325092407225116438163407993028321758114870279101763566438717916925480016040744889188652036073020094516528346595831470849984984912616586177013689118433627017152447997748735402553794743047454122695589917788028370033352989781034694821629704147815721604441310742378300069531746791187936006476230773557479529357227099126666307759455594205988771207770896372814390442210003778352124949405913659063218474658909674856829370245708504709507303518008835439658918978818745692637013517938815984150288863986602453093572700896270925495950834579918373282906889044318900479540656103609576785975312380100937117954075265805935681434027307639201181443412231479058864295445230786719838844708186014138977066738982938386935299094721134757604352061222137677191758353323021997613804747656068800818032498543214540373437510996946157739393894911705082776935302474154062408732773444616923905582647215570043641994244587350928965732012216869770267734062006249224951660306203752430793988761486829051147120152856644139674446447476226955121335928068000245155369735208432253806667901658308170428428617715890818125343619577971193389399193087685007524294053394431736620451515435949630388775398879580966319945015483488003485625895270973407479263413542992868207664924321865873220170007255880863754114168354963986943294183161237160030462618536568706408267148590318471452288551598959902752224902167678094205542770853298992019643602888162957887781192399573767988836151051834113305366209981721490218206567386693883197542887983630517818692798789703265406201701335968927617199703657920910962188168857687155494189550854054974058999558667673184426350872190988000627821563773974577172322919082572904581279702305910454230725190387383543040594919033089019632341827144910975090807940249141917668148062985445195167701399809981662076903796236159429445446549465681164467691734060298799203834943041532403722070694638239978474673936723084072914832852988970022191752919504277698279165631899536409512705098107815548677649704679884820169083928544444333454796497782921964980222865180700551784373890972720098562165377839933495467190908585826503988120927497139753596717129277412299930046785962766509836394387635440372551501653137331816141049577276234166278064064845843158810273244313664185239662806071262123712845340043247598705981812278355255983551152465691015092187218547963837090760110152613865735326096133334014239110893420614532007379383669440701537983292691651840514177682290992314112635601195355947222865560136929041913501033288682840797757736757744923587259428449437063547470121558650383410738937879270766354955751767128496622209831074191548992519514252864044897698701107252278974382621818613223830199927811342150771824285048226235022709456049757628320403919118875601025979453610671783289904939464853536365634558960517341192948684159529192295483040202635628218200507091065599262631217987345708940094747429504924312481895636836696610531776701854833075640714293021901728712806320425958715245621654029344013535342445863992391118428810637033757328566919309404201605990643019586183454467976514131836410303781615352796609770496910296901230914761715319200959125910269792470697293365173691092702108826464213597947462233692227861787975820454218326057755743550669337953952706663300819332903013191757749749085326554993560071863670084770701602502812889155554875148518035642873084517717304785670214797884448915951177876488735662985460686139271369231049910482337531657979433703875986441013170847014177617105297548768293654197391107013891932522675874319594999852836158134089277332626388378324008639642743000770768028070361171092402454971044273297056270638785273676342150753977964477741159700789981549279171826745117604404783636406766490494554272373671767783749777343250198974048026767305934683160901710090992382754070312092354553352066225304552251156506735767570662633375356967616686135854809332227882487496173615991800293151203235668373024647433042092108380517478385170682869074679623641249360466216719330458922485361380362108662719211732027757533937314275682408506074851096578865031241562755201419015757701867799959844979842558036098892120509020867219038048474784513041485351808052067008796493242183684711905982248049734050995190667869481984551345363279015450070179992752436434656081339067123915361111654390569634871333420162195269339330198775859509341052696260415585394906396407155400380061229338869838306720994511844010704559093810277678006458854229426779561389185348773904324636884130333368933013118583032061386222266616458644499165392873210176354058134850404793442486463573136558240216988486590939458172219815142696985849635850140236869146466479844896560086966021358039638933649444364138198267766681472510413192245078376783590279232509215253919371071985761825598975889802922641393858249284279148454352377266901339326802982295020188682566196104433680054412770132532938372717759464868367901460139540371311427170826049482432791415783877484214593193456305901900642009768951483466734806259289107796013959661782924992462918223895430125724542747423673942615344624543880416521666274754482664461986608490831552401136886356010428281790486504211018534013077887371119489070270417316676476228282180068334887616541434953310656601709284464570843764694139497794079235314999459057712206288349027370405814152200762074843563738903594005348220276951801598110046944195756400979316401127865442552996989647800370199762234369152053412200630271760384231362052739983168013431158451053078522728823661815777791230111327949497899786096471425880226822557606682191703027945973656530015559248198005293525144474323335732330322554660851520522755207187991983861025350108621837019554930592953089754151516752562544924403480138098429812389207273534840581627058223675513537886623409097993633270650103367959733589333164234336356510935881379221595523421908832449516694688231191330789152901592573226979436856545925562661808861517906131605444031381614764302016290280136244497096240848074035546024370857823066876434985649116679647840390211037470065107165601184223195314930317448189281222275522708792970248380253499373550199598050910199183710282226060732656319211500180415896483049502254793111863700458217795454460706703293921405415094132136581597189369284596458551602649698845086337964079000837230739015607828425073480386016052731685646480487327720940925476257529814886147678408518419414642814534425818921395129622371709291871424790929156584597952741077751667340447579770493412070968702560680905949655833698173641987087248858848869546311900711940935134923564993164482317532589048567139449401200422466299222155382520990133238804929724388149663607463852473048867270021999339702946052703253151965211378649420513089860755878886682114367231565894445139223327399844324720176647813115082977865614181273340355872029571745729819492938923845592096944824734067050263764503860554501050361759689278612842767806383040265889398029949665787658234638355333116246450672065695778449776756798090336862152228735284747946503352715366741554983294908568654422576027681071073766931849170272730272167782152515879715935253367152444509229752480169029812319353220119148522809181922018008584743605701443308205435594553697708202875290742233762654160875462545353936672832156669764130625525104140448300771707494366542936897259475300784962146528395190759737113325047345120551508873777374755179433770011786331044949029983836741852217020828076100333488474681127086344256456604679841165903286138870623166922729686438961192540965059572461760129681467083634189680939890850705248006434495541990720785349624850302043379506113226353860490535130161438761859918841875590068890851596174746253652824903527522337689453095180351149497826422066398809330427279129074492528023803689775147058778260853612706215562855938351972719255488340876568408995635059755811626111873153423353805594505695539616310062357255955885503484997861358806213545201057233226697069150698555759246546820873823928074251909485205473088204344352941971734852882182665016805758072978309214333217001418080749472437863827535422128922472741637008830009027069971988075331665251219082167023290108479780762968487978373708584334519134279239818200632379171465181021556963754444060368086146540018678156328477672948288435506631352769463835725005864032276157259499925851278329652596597644042882714973147413364803429481829095022827010416177246958137169440230542966058731874327869208548116154617253982294294751282366625308803172557996623081653994839777279534228103214157118583182953283074945647137501091824028635647370709365030089516477717616567764159670910223624183775320276377765407193375440600708852184852335917118417967016546806206171272814314148827040622438166035453448916912819796187866313726338667366696304942606002938286699585170069324496822712237528467988397552183837260528728185024075658556351628628634543445154616416855023519534096720408175559249596472155368081711690262014539610792653576831769739128474397786942690233675172343099229551322238252135562339251240197902796884512897826637219584131913388021310890857778126740590796472859145985503353451720566096355465375608372253364327560873808042819459640494255483033429146554500091545084323219687832581482449506585949518265806332642405153359154615439394345710046050289656926873650773397567173449479488494606265940052936685782217814631586095695939427633175680778347510933603824315464078432655086199160072066344462856786251523214575873801425632588224964420896520761993526915356622963698255189016873604315195381924619948231613427460226430983869176081453809399692882520838150697586753116081675967051067806790877738992053505031359631525237136609542315638244464205715145962453100240432785412303036471223871194513274349301195759063329718375280971408678898466492122893033545111011378826143558591709364286319222854033133205729272439283965916197123320944022752381669156117374524892859640025223231816248983219202527362423642317854208788409845370096695367902142172566020944417180510807725866694260247846577373463138442534698490556124162920865290895326504100435736662364099999741784567320040736207638875141968868370585818864376170308672785979530700063275336258473139436906779715979479834230001384777991961148399604771115819547795997409302395340278277491088171811749908835611264223103965129519331127997868246568900220409246400978742114707389410202562972235851614966816007118145209768235223093218430804829034992114710424054459382188681932163619950736425430759835612113980848770823526504022383136051296889600759452923461678920232429493288861320394827363247101863104602465848414296618596942304283767019600028862044934624291217539308467609009691538801133975450041442853475752127879064454360214833989363752164444771037080164585323331836699832546359609546659232078957697189067645884713285159663290454419843847819509477422338338636028033636236403978216632741860375972879813809037315874339661611873211707605426565007335536049312641229309357653160826822695699811602366628096287571469622055267410089476754876147894869792180625092236734610201861128088293752176197861170804420969492700603257303382676522040793844342525233881689017816965585766560387296566892738754602028374830950873801680919355375496816969307360846913571102070914400436722122750941852854741407144776912177098190869522138439308053613893925322314686927358555499003395001397383665302077052214506576720745524567728937082454017675800876619035202996342417503870438394738078865642919125175965720694983007382179322604821744732904856595660733310718844851515859348777124550502395399390830199991344504369548674797861169638622669815326057616415989013157028230880111931795169966395858269863240336002131843217119857412555271524802616846939219117059359707317154578519473316980416087081995174501548179149444928856350073935648031253736592998821616899801526738508093945623006511742922113965281314767254988452451807120437228896152305338979361456608373040320093872774480986633434366602697285282935753739413274397132811356775505479110491435108557530388633133159460756263219416488292419243930262494750277144864971072477322326885132097435705238282610783443477584434050954628523147387822538404424220272375525176973711257022528751251490459020121425183684632535875603224302252127791441424249597960922687192139997906806055395601055869844000289394568463403210943194544199197796030494109481162563190668501137346030505222982675279188703315640295263347155263124223888418269598571689718883651085032312966369894177307456007214495575878718076224781695703816964385035435126245158485031661992001567014409854374543512509807200064740698746967910062740680377323028017995848662023625336250077436102014908297631116403403522547671351033336303909962129788960175020651628096643206581390905996070739290547895193658091307954546080967747212943537631477417973353563620022339504145531353116579830259193954793984215988473805966347653401461791493790321045568857833733787163324120725230968065340501856687164263394519420920057588071924807077407847652040829697587825446040657616018691757985869261875135239301302066270092968988780714457521645428815378313420656077238899418563592171873146411620787835778786092399958470026681143743225224924209323616499689094097040115641502663932894827643817802721342429016563386259364604192297809325225827050333189994452267697260756980369864037132822463718922311001917519025747044362953601781580339179277012424601494252955602876293583672368694613343031532173152395208388239567904857412277798280099458066284401573568897057607221261957793232754650189039963868900746473333943491805753653625601564450414721434359916479287011311625876010451952410785571961934415770516880011377978965253588133620491505670867487470375316309660196338440566469982759095199797662941406996897098133080538620231855967258178911080411129981188174332476411476049222394049332481606100544559839832380178125907777349703685847855859898024789299817739323196236872605630562350474414848359446983110284877658981425066895092419722252397335969113000983182003533936578567803754492279813839819746916058022119713379908986598379188056006480842070739291026936059170213246961764527943456777001154040370562984740459441153359840189658580039763513386392130722532954486751002285003868461410362137418268298762536882637377933881024198673854219836477100353122363535930821136622307046478244646488532836913226797204154039573504661250199190535246661461535128380594967540399327717595177134811536870941498201196479158296701421241986628314530096734094202611031015842480129874329419676679500986105907485865527551249202873689424003837876761122939123198205353601736691933724121276842128769801592554603502460726480235705365208822569676561469702554420110107003770950399711441790019541318219808355794523451673579125320618549383280036093945139817679292112520064398111867548744278900718543789320233001558400460549205599778740251709403544656690416348614081978291766688765781951282549855696768550890857696794787286550035962692775709031735205830708336928611827684431695937915904020230802463909712101158548999111399854888134396989275400591742319934642779841906294381243830516050658494142030618417123433021125862727339221083183264917090394938407940458259340675258772845951900493042422063522445590466129342563505946433318999978641195292567762174014553258661986240792532894740010396250169248614267388042557032331299473600625014924634820194834384773190730967130007921283272712618924393798411957389869765783591567468198121477234688878417196015374647663054659186941626080814827901894866985746062646655882232398255566516634628569994200666184703405372641386922959924604010050261073066611771386858039388990076899731791251496124182359484292440406817391141394568237540178650116835902548225196594644792367813799465371852069101732210451045369960957673845199841160448680919102545926661836549519816572527681210602476084576933061741566137880180162315794860191987712184034607810072039822147152870903238208126109941251395450279305351382785039506744352928815799403183167881706856470816347216840279339166873490049260341741802523508049831098067341835721244447260307368894436173250154879917031662822604059808077476950200945967810890451343470191216082195358204844409284626893717824878217880570512795749588584714065507699513274208498583283345072340487750702571333800984281683636150491474718987175544983572126697564497679030435591089757629704801496995346565713630605276513573090875495519884274968398878811540275481523869360335306805708488101359586951349990542132032104340230864166218104776700238494543111551842427505540215977076756690117193638357080582369834337584766110087076713956847213722037718022515549972288596395804707835367533679380158555450966368767296621644666681177088490862799864192204424206511392302191542758834371651373033387935277629236955626615993127187797744132577095684692547185123164197761753004738841128244251592643244797693793127443277372403189043410928386686845734111998841838084331994000243122307276450938860539005758887492624234992041768605441727176019038319642029064108704434675325062753850537459742221959022451042518386645552450330510054538593375157956546097625922922267910399644398221493784928857800476990958232321093829148316198920117548659161972611242673724305299930411901400555284229562824746831194863336861644232692900403334016557116268194042917453831780142573870053286214685581757526359764792475043558071091255070930609061320852007085424167771307758945529435232527081759121577533404611039849934013910749067474431760495750999123419362721714330078528093447439697401962452634329971157458337564431915288883161350680814890427962116037441430078848269973034296278207624574348094980635510451380451800368969827437063991539821126315634637507112287845294910315422461853577535945168473604075956263219783495816819818722614922847363045054276169283690218099352778532450403040248975916269309747420333555201978920635455969330721805708379962225469932561380765532631873358733653036371334635469673384169923077123910043025784585461402343233364304396485038532400892834943964559898385043014891021797539933088662092297295042647335612919325701590532392410279600163971439120345668971563625749833725666088324918474641524892595434474152735785739027550154491180558268059442856836959286625908479589342533848656707706469954263856394680178710553993860645717759168538798175960909564172635891570247553680766955204447282171992225758626481442416799172406303909749101307047901434148359670912239730573447634033024849610172568200398774370113935625274925859200961232125062170812261957669457882494565706452730885955115310831697794679085164223332316256947876453596283205873039511297323023316781682937055432489185042771154593820603284049609406008627135384625015974625147490193747016570684397846918242500630431544730888765494209648124088960358056156049459287066909342528548991357443080106144237854536492809442600790726250757936694668911489570717814678217407026590429954989997670253566179280750214551928839482234035352994516194332138024224260111304371575024888114807874673255730537073251071616890730435844481244384058978931069913472621942643890560091114321544582667692827654834951829726102001991140034769587894220949089689935052534354251278420924181042470443888182859590419869125446622466686169096907436910277155849767095077979166547662856387296635951266473771245177053703837156527279728495883311112724736929329876031148509658131882361878799264802274418594998432326788571447923224104248355949444501927336578597454153083792187776814956218579483330436190886026803180974414084333475502681997090002045628316800987309795337895176530653248949407737993422747775234430884447201534130212280267009958603702645522962290519393502629501462576238620511407891998919848542214714879784166982277178120605426890240280106785724870919592644862756871624931441901037090862912797150426370296717851337265100864211184371574696237362551749065326605584743504668399908390917941135852407797747733398806303116846304072524812759379117507329325568169162704465503551118429759986087229350083127745575577307704731390511782113654114253924202947045644037647368520623764983410668615825486404433494057448642412024786390293723127600928973619063341354937348557139625237245488148592099053474009521857837799397477934393289928228153951178348236502350804102749005233517697056233539749452692317839096965003236304925906091118774562878021254079250443508552546315682888442748335110037519557388081502597782378558516808840976329981152906819426386999590015242435710558691420087950254587494805523121574392630793178982973142452709819125405385167793527478444725261674873033684872092037204254507114189196321347168636033223452323507154514970342797834139404304340631129862055799341047407985878048427046105797166062316689135825677053265570875670745564531579846889864161977256039381869600339708221128731634264285878712390172787449130574433518663903745013857228613066947694423547015827482803503843544511491124105455253349000670059647088340393724642172038063807478323316286010396371344516584292192305067854929031778803227565601662608361079581626121846619129825998482001896757664400553174243543975447623059234501710069523575809862856960812246284259770677476001126884316958132753563801551175754148882609437938519877216534819169357176307435909689843536873582961951738723107824153709114130985878162336516351580032329011396836024424235683004722336995163030641996392491283726396136885336082929713952089199253025414134189068256632255192497116130856710844155818223291473537352060529744351550512054157389835736305793681664433228692511712103371462746665471668273526401425743176064311978254761449673428735542443588228373127676899002907260784910605859675155179482132642124589520181507524675816956451358185352315578126992570870583960749692702813382814710364763003301056822954819339729054943483012600960926607914584016481350178594109594906864484502990515267761905087309126173489467961161911633058548824334622695770291153515338306749045991198831582019882733640868338960093843798126749149728862091176427177607823708127093973120769472646206447748691638759528651024949762164986371011003811716888020620570115507634740477966555003707805855713047869648707708206843052431287616068758225312689125928794795803302042783900832733010670265882097309486082068024627531578027502578055845705387587459069101356265726371144561168575594461576190384398041142582410406989357320575349991614860879472468808814814402407744508324944036935539972141019848849865783431566126050316383403143822132593850170825193906827113748680299732336312816752019861281763877540578811529353992590616274920195230966418735588111247749218575391082978196528904027386019894813643461163679892932995962237543758597854811188182235246140024912361231082646339215189486995233686817647464336032840554577490151715510810191121740835420495718264056900517407559549558331153725649471844468938044463811603507520964683811498523497889456161768349577459237828929594045502425760894433602701039619665256832273706687897990368001346764157977585752367948035199281073524690231809758684111613186487850780200077530197990989223734963660196830103766987284695718903518671751431188284610242123742148011942291100850012446095986332485954921232319502595986360199316465730978412303806211364550884826602128253660905848308593893982437618911166544647721580361484761493798387016360925435298488060103342654213949312753085745250196983960567671688593043030718883904921556013491973933983189686247599553061042875719848350563162360782707835714238431892121188330821010173118456482223354093445096410340546312255498532855306167191814456516160073001591803655113533381869307840550522651285255767657810364756440530888729521434699890541401649037362380257745963852554487104112782923882515734917467884362039594888607973968281088749727589136359494563982577355411973323900277891720781909820676882106714986298436671784106324299943067303732030353845186497414178378247035168288935828927394719342143252665881310956649719050024815842407625832664250750304080434240473935384950988737277257265515930904831777948680945536822167999202141638468240272833613672375259824004998391832284836235660420700940483317358506771571063214180114477503739006153149453087586010796152915937823513242394515656994149107103068800071814643709412503063504572542803618813709468257795493641186623135545287893879533784108057287215414859989918626313044831415271410504949601325938773972758344904378935085241950948497603812247250592961980668807027292041064109169401802380911445481920578083594169968358025721556516163274557609653001593969527772526340493305951653829364138823063362538126951532152350847863483652058545141676578859260500627200413830210099888448687552893313611166260853247015458459984919202283958395288367403552287387026135204659308028186084437711521454816600717163597820380070084022109249130406884454305268080440598071458436598954081568181461150927621184461967261036913960486789864696964245240178840206588870667567001419033733047812371614987652032285800219949967261401437399516546501879226639350682154638872718657055449573997105471569106155235889139303445946288778285586131752152624673239080812061863156604106572415794820155826513492527550340010146463450411413861028921548505355922903638070553453564518716330869706918008742871787496756521155289263169105591078798823647804465587754217074544101779912998611844752733688638128125828109572682792260670020011141298982425415073049581155231171394984057755101976123248992194140949635130565222409399803289289159218234871268227744935215867457670390382242603607878290418402651644881825739135418891527860348539381409141228981090416644413386912387588455138902867838597581074261412482176510646320418736510228143513168002083955852312034305811707338045319681894987588592929213912960245469492179010218099623160011736251669015253043779186289499736955611848024003660863186326344194160841478976210872766496931944043763816051528425093315910491079930616160387031287009751449758051357515993856361098567866384573947686965004053836042981524973310139526868228600687719292085297406221321078985200440548323044412283573251498595457988055519930617387948600379441505910013108101057069978118331388229199393280777534164549466659899434941817912101707098100519075153330868771796859945713909247312420886419368561567701742837665563800543938587360452115001761366133096217495956897489645468504544449708174673596745098911726233515435019430775183012366636577956597874140311779588875296371808790263361277213834630308290548655271148259918739389986475358411525486478907856586558076406236886529890238406363708909708474629080029460546800072979073482435624468633525332413729572099233361827646819444849567238022140827306955866316419059734900161215328443887254066076026670489652785629587221204046186406618343596929901424159181167070926526520162463397386935381303834175694238823928731668924762299884762274154348308153977208526445729943125971406864468742204231132279861783362024228493920161460035841568342684160985567983190774769665377078090037082372496287264705684586360286713398175975987255798438352869455224388284053039295198823311981571983936785226665979447177997674310496386081246218511495283720156158412888779047215239594868646774158538886812256125673832008992085768454440962685825259831793570516665313700990402924854793065061124760974621067928069952887549866628219138410076713971721419672933615662817850791946261444168616177377455056509763701716400261167194511037626225404847553281440350399224654138841112544737575892230746603349987617412534373374908118861353101406336126396871529630452947672742520910522997028489304320660974983953583985835822549564534243790190175614911936785534842401128878000595960784710666180128571070137766501790851631282625724917370830726542916457240258976342441982079158927231664526465147260936993617327627798657582023359408006051010610833603404571815097189932379299898999782072391451886002985820875122341071559020807954555578676926124832412261096591477688550181743049730406647301335381530453777337848831954638653318892949155988000515410133513852479808247765459137602371166075052558618762195000392159101988862944915290720756242319188630686856514910844779264162243368191231660509941819190779258632704104131215216658445456356791287610032965227220441464546134532469337773906140043454805781632581925234572049848791916087527473344553636559105869221838218998344006778004296237447507986024040369426002942388645398239856117274742648293489256634365007520952876659417695254060647967230812524294840471600403876901048662431889686925095952254737935812985603295676948018153345301795972632039259879367431762336826538885198217606732969229114532698444365608062358777743827016901049567405471652439961715092446772864269663744591029685616495887222672049248832165185849666175575882091462093196988947659357842595215356952328379040400506641372170939438729528590338802526057857209504104876314711627222452161360484507930725282528330724235194073868993435699888570733704630835815351730273305298679300338921079831888772982108339849554171102818477132858438901481193929078257017825986663298216606278162502020622310448290893815301816698243219395505853568124562686660840705297742670987852106499665832668382359642985906298738108861209650469380823119840549502264282968849058839556387262983616360894638890272029276773627594154605826169023999969884741892763390067615230004722575140498492606500124119311193951706340365252820639065990606618620953146519697726001099901389572814308531860245875083088311338978737546950695308578189964075915824788386834854302804090006633124522874911301958026841598032804733573034112991726246726209828072637302055170700721414268766258864000485362089826696063205603550334212903583709170442266893511554815433581190163079707306748787744013808252532544599276869747589743275837434751767592318023715584437256789918189905687169693427020429864518440530356093032081764187693834305325136432594443694889698946329521630760488693262242688688627010445558257480698605993991524627449625361394632939839501803827936018786239163672835980675877164681540920297470930880080436189109771216585738465806502770962210863607939118653877126266697119542774448413561678940636529109709164799143761943049546354018881822366195082936807142022572473617687902951044445780302778155039427578486163964970982626526126427256318794716861853679711268935298553054048616859302425241459932510445152666241769818074654966982193480108097391959937679652920467270643342709058804265435678592197317044628465696132296350506650851597351867353232200766510522513847577926913857192684473602332047417945050544710062701596155292643562732999006126997226633545075286185771299149156950773404344609743156767585231132749073081659654518259442310400921000295127109368074185788719228734959438773803480900971411119517686373537618645519375969924846648149765771377141956295218876759885899413555216414011744080948421310632012075129314825336784511057304706166408167497082948496341011397715170801729825138525055144670252737548945435031312461696905976488669160348716382841310281790208264011834045458645807758834645783538576359840588927655745054073807049361473377087500631555915502940501732269324510949207171814465050540186904040833049279666414385647307548124025671670067877355071383356678527188389296997737872911467360391994614360411209300261722008285394416137052018920398226041199514588510120119631819552285407389582769535391545650290391286637513388943066298761257859313104101279641297447697774251498533035923592852909856447178152886090854813261317797502010014463729449391711751260039624262638845583939694676273461876497416042086541577678957354771290039229763954620776410844987227370355499605754109635978342099306184713043935986958375893061924123740742192136017220414945129747529397155102961062979921655480050417435758416692597375025828181669099083601176427517756728914551451374714241972566468286825376199110201117364543691458578149359869349558244931060193975872536975265403619092609304607174687390514179287045673636251690449854233567973366731822693251434381867410873845820744901824228291708555643539548624114251601292788082777489784709611657998043031478849158683725091159358413191997080211524043008092773138753683846351129094785167065757094421345196721355591037095240362402097513894296694469010943944734038922930420923988545308637890000559848846047070361440910193212372736978972354957450439200662411785509649019175603467798535942254812901624654167420401605645860531531277046087538484778970266306503403727247429633072886305142837246358137535983742406090332286151499390437166902270228141506410167568580979725276851553740866790765973945524825199089245986262751212053039681002712627480274016578608685946052906012970787594112211153454829328383202280264920363661826959235597870143427158542101253524237647886788881988721481728610169807945862532453366819262267738571768249966566946586641527084930936745304628578024002514946995291320583566422590330158541333656962099860930733486869413153079048829936738385194563608595765275033505182651154403733770558010159874905934337281195656769787350309412836549950922537856814221908107485832678358501232323092034706888243604831277310047579499999979719078219283085537424134394489183612671545951972982703845573445775764674635210758347465351871056318507207618540765379047205497878896202453468373203702212154397901433341534176531669081408639352135380583347529635081636790386816684057822620121734963054253063652672473076442975445920844645652970619998767128694871945094738239884997423776250514315753097350422017445419184422913683682878036404989350291730303177242711540898610140988173780833523689981477645995082746439277707031466184133123651385932685470854300634505407180492133422303166482331491798927787902682857302444445966480180019978235470130604475939513405960723913169799471461104947618747555395090903574082370260012541937192736120083966031563926284035665383450758889405577851817876097264914247656248753419480521211332489562361474321666038074523096646476163283624737995539784478224659618031307458655716965005765618469353892170818040832372935849084743760400063219697515013363898253920662433276241345234178952381085302587042291615584584148267523847993195027024782477968095499728801380468122530174501734052120715224836953792658277202693834316113667873569034733958289064218898872135226095671600861035509061374184413484863049865373911879931441496845126071532358785816950624589410108344099763547886574252948560591618887018460462893212813395300363436990430993203528111268105013440197876127650065210138737100787294590514673145498069371951571949072748458321849536626963804422251866406524350971522139589566893139418002497708738898898267956267326989596097206315953109489764389367646571058350359048801601989607909035034310158126346950817252241099335071298983605049366123379931377849701251108844536461507290025830867128605810249673350413081927260285794496892216400027406328490810587963694027688750553503992154864224142183578975050562300735251271075079940820750782450207680420397779418028290759000387194699250633241336821849888401227392931591282873501718422665467634925906965617573520590198802151045772029925992356984169817851421279358525776044301233086528122412478018717025494191853632900719595157115860053299408834769801740298028345054309319005344777383807246967198019381522853879869527538122383883400700702453237492938871677565822625679947051277898397553114693931232200483903062884312274348700385969725823414200986342917682058107160662082997501467945329153703799170793787315963697630379605590635452096549156016822142790895906550528951509896053516726834365564780586285429859843321403969547980270600282377363671115053582102334116817160202424933011836484922988334435562623210392622030857820858972831450754987657553898149123139006018848658045482335682704721902198194498259186028968243762117124889926169332364435378437883151454823218619220830026635692685619837119968409169707688439755189123931929051769424413897762556310344907775209494616753657611291008432748293143702290120639176878446442743299656984064548567177772669318795169687886399517885420399778101281206635064043227166576492581079326860364577815566214481838322834831897956074557338451255131032440072699072492445091794571811222397821929151758264944737134278382660056527921045816055451930046761852560353399554993879763682931565751999380406366781354341217687677842392659283731914460828825163712525342053980311575746184199265659058829485302929322615840037099306489986921241232812753652306935154629828842165735948424607987720434830372553906791843729318698675440380293437192789993981639035785416564875208266396984161824234615330840097837656564170671709543778794382478348709782277532355509979624204751349936873354721633424141587851471921963324917755974010813665021041277856152613448335834591391560300215741755271495006029426591970486357586080177465468108790540765068127357183359051048527542058437276296455286804850013669231026856120137732179978341042319836263903221036137988842002612690713705719274416772811651563416425142689963949931692527533131018764804311308570594575746428649952553083695216517726844521738325522488409408867176513374995926394423084093469567140261482487801871462110172454400412466957421259667548246824297697923858717616418181859272011214594988145498495290501008835593668076536239062471229716566352372808343236129561284137966687563661216431347078863291939079332267909268204310301512616844425526547638813875549162587027592097370444687980867280793777990134914449870561454393436268000786472557086923630719925365339282597069518199414954057091221355169605289943502010973939658632356796317290070594793354025066334628850030954283777291580920272780316239982753211962782392783109723314883464079159457459566933051236003722808622229714900924349016324131902047449979712968181735238174722835567745509671452774745689255680426062918023097006325612067429832756148822877302632797095614602077498111796976228768480477242811030774373548465977885100107358680288733218312285083154659008175980691957444503138017606221247144917546915339678264319840698837670135916968069006315730754684964460951233764936348063567460976340072636220318950182895719255686655326276311042127418603694569180285507206670560970584735850538876049061664265047321696218010639972471706007030403063417430951495250803222517927439903237360429446898462694044926861260844710206375892858760743125362931723311071058419235840272252669092025885138366891076021340400336077003250148382310353207158978721034640842086384620485567229521959697060656612684564860050475967528732788451151041997507533685936056124838492260757411439782501739731787146056047067108250078602711837003353148839303061582212989465946709260344660516799742192376413884221520680509492036066905489807798757755480731300305092655790513243030822860408207023918071854979269172890049015371046267397046261118550268235647558637644427513820027777002699847612150893223457396756775769368073187562360718709109211072021684296181289369653046148151874848777871279236419304354314710786571689634539010982942313520908521629137098207679584988719337894527905559524998124713702177683809652954351978716392888909580264893677987086819042074485659126526220535939134551446469250406565526875423370545290580258290515181398667714415857540509818434691275823891471427807964952919001708846625609921606811690799151581086935970789005977287978847255212150065867158024024346234498698715086461941915353540595575988638424983206308428545740368296590291792821571382422365942500607048431685423685757790929499485472414820913359349609610768120116573025335421996592879329186535947233847132421102355461359240293098790953316812606765721367998891738348282580910950676042900669771091119702220063868487042715231729836145799783100454125203003030982521028503515022256943285094164081941325838290981447825567363338701911155793059274147735308684470978694664378773029428066717620711330077110377240188735478983740850040796835901596426549609779003164620514679972678978550026030933101413408286315021806558998414040289848667891043738203035073600658280097816290759474278926292513134806723274315699112221796731907309866517678673551111243191853148489023570205455249342619054996194926196877128642073145842799290088216458637320067322585950760550937636249940055896865787051652554692356212536622079415277563111460102949337226514138990258518564056755238005549093035183372144925328357658997369676418971758959309351740404991105248403581575562152147988496168404378411593810185409702209149971452377151679215355845099139234614221303725365551141821384556771032435559153095357866930481622861806302746588668485774527548766384438201910486019893110578212385800834636211225687528108220591925191064818154642534071251659062082588814581422061303802842860633775183019134325137034476036518471040007325047895578957464684985003759029401380010312983949172466054072855753188627624359961046490494931107491756994631974956162610785640299446394909159868533669226369219266580820568335700985672917741151999018419557592164362434117083209142520164395113480900401319750192234837617395008124929892542347852957898355048419526895984310498932970827469489840112737798983282286599136954975259016177986674962561787831560601443661579626564883438273252315838570168142065257816436769198416907129852483809397605807919415663539003252064378728492213004760805319323195808285175340703375063704600229318968955032299338417535490209016589032975599517272688073844990462259823416475688019322395719879161409795862677300415465707646834617940373676128520556064036830579408412713460312129169099683807807014780879245911125316562221431186550391752776985772696617025241763491926680067582468109076310999531374367295464273715869636463380619512074657891894685731379586015058992867175622630437901374048791813912426450623122799011443401022383947036228670773928099525237620016484164340265092090591307064684674104647290775021961082086362621973257512602892082447093124178508690794276375057172439065935256514551981259502114058148087075847339972782357361454863002841007019186088713158734916432174838667606460920868293836663539735432778648254934756858894183653689925811849640307140328537146416752357677192928494671797394593512677378346707081094572933879685102164755764149211032588152788016126680088264196372359668492348809189413148586322375728192767839036841780098551611332597567674852575905916846889128763340683037417635532631754408689124416886184733764679969276049588855027911412073526789758469768033387977842298754126599317990160692079338418226243614328797655557249622648284490536710264547026013363365253285889129500918820672615851353470898418272326218558242865717769874448675640543655465520438944971489733366966699826317123588473945380273752979873992879507594061481156978208464098293293611681891957191693375565648931745052249773991987542658386075045060913876656881852058380636328533467884055834118560961619919686973348098084135445019189197731118163165618838357195824537944391911370696812333634619201734943096773049396947165582965227606776522852813935627040029808452817543934183500627331506773216200117478761395056866169967966814153340999035590918688164010490177226814273253031989993533228595915726636592647915981146601319142966224084608618141284999393260935667301992433758134545795937609071258426593189077010425027273465807588215685953466261635240853698890652015056348362653428532531458237242020840680362397890231961297308325897971480606208046939797618221671723689093344864497035611681800332357698914990163771394485929268170496589834055246882981603921962711515277750944601342602778875617802045713030482635924924669560266196083158283544242470734037521920499012238973213012812872604663525039416786987211383778199538314907579416031603761915585022149161223007905327477136056555308354833414695097742331820925265490127674842710505471374906859071615227677037593948483115719376579286492759911608892650377343828158385796385342543424378089320870901596258600837150168328131591230398806149353170420475659135217616100295515355792115027320072034538537399032180959657592582790451935543162938503904578206027646231533990639264650631544665918629056499763326240036772159335990538099314219119385243144807678049616285770166576584817160958421768434984524628752992527714538156517924736790055218679331971665995070787611271216530167772974526314208309679773618641419861624891450833036781667576662553536366523707432535296507582993933400192008611382705512466309275701563782677645739157491344251802398104228811537592225213840630620592240721717626822802547291223138121884272239174776473198070245379028064149497521136375011901070409436664596191894361615825281358416823869337106702366477318136941135780301448259155256999791384657351193518471750359105594420311233485152020352231196035933683811250857211231808358410818378299433097210956430033266240888844151326493062535413009189744405813444695559812813306655345307100448873603625759749744029465272377812341080141240000454150697285457258082863037760946691479227854561170469691478291307338298971481357418140448587025110396161399819857295479012400117342816826880079741950794385167767666257797744961642708155305521109709723992201947780169639971993907490526259689523489811748359333404370419364129796319565580354597562094613730826453998877743178648639264556288889310013626711995096083992266437204271736723468098578613052873727906829774487941822273507397129333580105506519197913687639380689929262129859623369393644877738376954664039824792686889244121895266341991716916538215768259904280591526675086640382592630149211051681688722012494642249268910916162486549371636633694966587722345582417243204968081607448159327765747389085087972816963303790698716429805134167836302977956850598167897030420947046824024737815012265271093258950070718000679469558717626488737304486832087224785348921226933624595385597544741524492027947647594019896431401003251593604705563142409725382905122704392107047516672599017546685062663481154129050995779482326024619972601003174625238031322728316846147800570825041166634467297354556415998698679288925007433218980145716169247542458972135344103989521473012575739441542591855459774558741802121546194826012550715107517640212086824768272467140464297782512276844527802625080414905951852786515423737262126890343071779822624998412016937001434103200252144052701527664773656539350173494649327953009019506049524869138759930989454279667416258607384295338922252383010884003379381713582173215052326379376008059905707299630791825571678405810245882424343071948637398920731241109679685627022337964390579977691829574328342541292000119206836805875490589191587650505579452668394426487331712336834699084741151110933676048107129591000342661332353811088637361342205928335986640950073360027299081150601675077281540993596443210345550999640482767821393369013820935082204531327622976677670820655396075114589902437222373398134106353679563395297465335781771576939620359306181446586104405146341385630026696941420317822037155335697096648634774578117439292581259491714850921484745109853597921339014254022473233008371296659391740146063097072022635482551994737052121198735656250639589701774422566347435298023028318167662040018206595921996631591468413368699290211897231862909129897257932537412869973020886616109874970499381450730863382668507839184460352274961287335965514115127701277225153388159091758697443953266322651185980394584640298805764369210206168365819501844915969625409474973547054501105694139232897224446851577858329334421156058476062296889710330127496769840058274584102537335303612332589703908878888959677266584125976166993168165900095056568987949931759697638893871614298855147198639362646075821340924234449739468703349410485280779832110341165570265466271753754568223247180311018691176409245975816514623507066818309846808906181081834789423343761487659671687022072819533744198053643617949627909683747496676092136863421695555931859605336660814815189188522376238218115096953872782830842367722681186363304987497756688638866597129733326126284902721414748798935938346718416703455866657216454516215371077428362705052299567462183352330897480922510670746756447872978309225170903417222786566359273072072483106909258500427819093374112552996528190941221169457330928358313459383370196812663864570846815901522561163358716136962873776884650554737254375278086831310696576927788529398706241872859654514554945113529956377274250380146919790881628192700572985960625417708833432935461972274318198629527138146935006715761681780475154673326576610380235106882716407843276534075311515464165868441536143699949388793303369088638170455707909443282285872391001803954633681510191828867727935684981007521799983562345657580060955849674819467154123240071360373428074011789259157008394207001143105922015904784589652345574565869419453794042185964749359544527565109952761821683914118207217491978054575344899448789762095738568401321018896527523542322680910983571517181852875835022159570671089373423658341490716911089344013363100105942635719947249768125586665037453565581219623137285223188738156873715640841457107433905502753005184999585490344571377913306389450684294548631428281019014186712362998436003902419459276359514469775964263483397154773727385502751161014779920253042423278391870346658660033466729705842778855208597176517450269084073287110369491782554993839329186307097202059618464519864149245162534429673037290576177315689674640221339101445412744061389661628648115254887201243323373724948225097653470540291079941946794270225397533488748354666129300933134609407350068495669025898176788704948355008834644125539381793054081159762983737523678931129776988636367193554494899131951881435052209039915742952877937697686406049137344464260752320764032541994337525054621676760060679790341317515054640511034313804277563359467379021689596052154354347525823616789104556557427367498261203631953542455664529414247692097266377480487799349549953927840917324743372346155639392845565834326175788598336376040815640884369424560886553361647319563787702662914124492488955818741535235934787359050857782330702864121141840057625931962327105331999662205055575337521641162917313407527326058626840570321605516937997036246569786196068228567603334934350482184941664548314140065991017554680351142059265691149241302729503956975840939642022218627308674484386483089231720861640535562564351264859412850681836551557807647216124011294884635191664165467214678163909493820015916690305292075419982596137156934091311814912661734316608621109735323791670766976607556362352394829925266962102848394017292266833953304840912807112932882670739774141860545128235344601199267345101155672277556073508987853209092137366000179263330705143968303106356113220540760607384283006898028549717512162110753581028601279397256526906470376362870055915302211583715828590474358545631024962856350517020607798465442107114870776626044892969370247856883712250874654246488340333589738912478300006230972426230910149416360664829961448105463271466464770990861890830257383716349125708024818949700574261494161846521666719820772793812872748681996717184643375874117290687187374438101991545559845203870486641530505980216507220201565333390966465351607756687601288923469898201092889245816682216280812253864135897137242705303721626227432184812769418017898479502677162038578748243225602528351793603293375024687834713097901185619674738849706836121885165624785765820842652677045914594499492656659158726227044224357333949077934500727536782380242790733761138703502382355323878112520090400914412147643041643195954216068272663801016298251004007857910476790829991037568384196158073293155985650990131373960647003761493494543391105273110545069926618572374763028065999863312238638177110517594533715120772974821784359728516940679732069921505579398665114875510418724896918046653650706420112561145539235125376034616989456872979523159863717704858386423999656543767202067467816128344925712775267168373230767109884348149807872965390754258722418100096748955779840458414428377913392938597041942649178493699346049196479873461595972280843356576940547922554082519268444351205510757124988434940002522495079218436022123932267546250871300918694620196580837908663387442572814424497712091246523408248656413810696614466560356787310129960736477241444390902403684875476630713251898175256506504919261095875584423369788404330710288383641378700608082852870253491810308302298745771084991013458989792835140926806675008472144875522252496827282303269455546878838477902377394949139552720221420301462539694414548684434234886337912186458735834841924640934367643512940328294996246977708830752719551963211821077536657185567049308626653893528600148841600582063987071474027082271288783840259780432979017982586100768389294403104655414464804118338069172214949174472658937665269270010922062288203837324935323133606523655211565134023504358790841404263747639095893743963442731260709088398224013475550473989704738072007563728627501418361641912938347424546410781751717378841872713570362554802503742602121159342952534441748807450411925282421048325878900511694216945694076773932508933610526418206092718497900483222185822147527611538963608961596780262722741709678650914461090968728929545726575360311564852108017556738509309859074859836533245822207053921369115609256815164166789508095501433279042136991889250125463451095494740222938934455347148420148640560807428918020767086914138776180541182891096252778190873660933874049200518653572894760299112380625162489730548435961870390872332438255101738850946270312408026431509991130508804345352297916520216139639442703840082706582173314393419028235599553760993401796409984068644861339340464113527479914997929732096335410458572507328090366150415037677935883380316727546565170529244489522327098693243955598557399979110014121798457005726571715089376484084618038654298621804912765941226426093367828033205879091318771209799389877036656551804518276381809922554504788800101560956611948074841582729377882637689405802279892089998675389414465083767070108597987326578127178678932007896590233337005070641617326981913786996854506626015067726840143359244728171125308092357613690923755113780022051353282130272984248955088453988386894313579784937084060392234112415662206060215454019867681051590496132662095904371115814997432093978285431013099777769805167312274394468614167681807724543258646344504055395386866366410159170723575756795342071409355873853507836388498791628956076323351655932369263643444347816685687505502233757111547375288837836176073367176452594318581276926425291048069717930565978208366775006346685929875222677179194177112220396294338029436000890429807036043279764648943954015869276728827953808510745251281515577561422572943103463892599986788591689871018803588513349227172893182109765496308309235523860544012824647918028080158358877439809557840903439729502848667924241077302670310609864390836056241790855121516352466962264399270482990644563812950391016777873427023510000318801799785334612506758217262178156523385735433299770942788005653189525363495984570758790041026834689045209486514880947691999849674188239965807904957650565913063623931498534535419501229899419995230507216089391200774152060662111296662889221272557283995177513980151203721464959827697555212824858175252762828787422790279868870637348797803351216577115206273853342175075279274858333146901649412666020780242896041706730059693006649238514143697889928570871588659009933053348569776828295819095182666755364247457970023318382030132370631794107885691015112612152237908656370603337021384622406723705155922587760873531034816235629722268302508980180416967864128654814868016118701217410397737450060839904398013214838852170441421439104323091716246667739925766211281371458809232228264090317599026705956566773893366886226571447220201647918373660233784566865354060040711742869217583490194335113508894516197492762169155269708281751589246029905633412607574006191713089626546266283416095112553561936039480250661513168268779213340931497278331529088966174276279593294222435628313878102204246411344370532672125031511648142289461866744035321241288414356674610043094704030739048086684104029657349871247608969816860749395416850372331758447112175795613269030421563566608310437993298011934466190017252238942025671795508059084602968551605114234360461129615029843540495050374595898882904090709234480406456429920816000643289355551130626295490225054503525534732405909373341890027879788295907400703838443356449902887793123261991174077653623530952084984903951075541223325589989932738165307090576591461987984688210674410455878068969792390437081488602351949071508621144015756214639305655160291564106402301682728582125492759882262607506040979976965764379823819976913026943866430418928903890170249360859024583880109170564011353104963211942098872808734467851335487701014414345026914249358035886143378222747999352972528907677754778029174390308511203048887658248753057283937404321786473618486522116232532554177804872100482210687931928988107445403811555866516198329477268616252698817653241897327640325796261647144816233834443656891468221165138360393082633306850442709407658094080123036958078576369579443004738300836530888989119126200560522195625979364598802604949648873037960534697490055925720756094298699910497066049802382303563690651129647676585182604000329576848184125572961686286819870816365386354034274709777745397965015853164383868178216567891400751335803622602212655742168376247991521791865274406705224327027910897818805029437339394953792839437832293634242373530655150791699380279268514596128320297123870084748291649890299697599703717242547273392869248790468841586064411150680587645238578426085683091159777987610338837028382502224334638983250718249928539314105828266948614922490360757499652877827135063049089569562922187030127907551838381645386178611679642492491913531294484156929630317765742654235614329324149483726375825230237523284146048259086982189656364250130616373349433073674872033216714766719099563504068093253224969287288237677423062504144804012152192920112188767189076493960565345613837657094472636467006933018423456920588537360473365753728509385907331115901900296239007482282918615899046075988394404507371362962488171816298545874387416111218602286238175900801207637255152623776617466074835140141315736273226380417782072984193510345266287371637088844820353152165384791072672993747563381547418043421574785000403374836244735324720368267425825026797520615019291805672287099336690676804383646097772469614724619656118729777615164475360175495137054769518326673347157747638509190821918340752989448119136967171604223481963420172024814154180377791102883486228038264709496971712456949490063339509139419705688805010352014345587241973456965356632235820629789547319763477889460218959825183060002952513946923642893259481336382461042156729009225991691624768114499945105591644792027227931115473996712712338403622743567039721865390876922082025601289687168626946583632716102523303399821431787410484305539469054474008842821509796146742030320319593340456063938707389667053975292791983311521086322951438612898560280053993765730739089284348512799818883586308809074728147862895063741295036076565175586919468992715800592900497388772633586259602454127801222638648447339745006554060066769338944791417086424220797734830431823901406720620462188783904833734949674777773466802998691242763413941657393292448038905132088527002416760927778753115986385480922835312607668851208543479378901109490730538676236207172320493622715225358573963947997038045133285551473961407508371931512901338139898504151903062544468806940425596632430061713155305648238095083634438594845112151134680329836760046572228625200467289680064622501011080445264881761630265788679098011559959470110343783671429357554094987752822384913350579122387279433230017665294525722525458723241254369069035879455758500859940828546051726426267071019352721684286815210546117643058614325410907554885983925440517307366139232610182080016990413618722009520950478457330976583071473930945715967839086300662521694897258687707165597843871294872744917414037749177048956625713312549190355176283829333492441622943077869603885783027704436436640608952461725410185236081632189653428615320004343683829537481098137044516755733798133435070904978064650929984241462897368814209795097084022264002757900973487662404771505698902896769192079388197130010250814349317117617298065332158000756874471173317118664602784981968552195710124009693036119825386862529059526873565737256868375427021176585800083467836001196970369519548673699908149464514925625819769015811424100994131047713814762076353212238487737415864056365083545020165358361910214872240097967154875777886062822150229587903491097629101695682497657221834596411425469293809605253350900318826194931997826057984197009057552591916153376432752493492667001673978247726236660986981566794400398901070074680089536172225937728073359425666715270673772701154991419534667723575149413481749323278124999229324443627547513220602235515328455346692525497393152899117878776919557319263023594557029838972078636074532230409780210509534376248232206841446131248785911063430753911307583064221655132707679445664737597123673410638856111323448572715435655179428818707669634761721903918499021579585604994443673726896370846811946697859627135025425582331122068151344217029920375499280829815651921308772604785048649468307252693341408662032771909585050473459170741335927526938026059561240001545732504934602880120490503817533753616688571689673990653082403830907258657878146466595334839340955639000295164327418387024865380367907813595126380357142904589325928706388175989340805919529867701489273942574788610068456751285929451354863989665295748107640250385704907332163878754409016156113540173365190206795326923499466508686952971518882796967597692045401754888190204512444445362976163907805217169479996452640640535856473078611388415888951422848802353373854805050748667794575177786980102132189681425116365357661334276523297874667722266795690389857572400209110136276353708390738217684048927094204673447917328249131124800418865393476091238263987034794935931173979238789239630532213326587597755115195286115159699325089712777132377575093722891452928082256166123002607398016671191112337494767505981667337818218760572225032497378359813250386719711650641472357162816491094277030665795747196816276808895253298796091061557538847774010365501470909171431008863707663638977167970022699217637320502794810598138998980167802463709228126804187075305504072463564670384297767529752629662883107399438566877696521969060673796818535014810310774658485598460133337154970183127380956202604193003176766903824237855533749303796462297803228776825164251748657195541101922090975543014347630175795813700744859099423472099899653617637914199994983427370382980713503018050176669012655812852099697481399205620865160974527894140413051049798705254003251616077921780685497744532729492436005089887447034174172855499790473658954225124545926246840490761175154327571268920515962772870881611117045262965882926739426346915155192876440018596141884562161437487151045355137074499538791291351872907620273326600339821517796709138751636358679776166823094555162683846935862776834669917252825921089339267796032672744052343036966286911695645104167894956665276518105109126520224367299830722363536635203022054314046800267124193406406632302670132463544145174010328624276730414843369514566571068461887856865004308029618903417723546400853868807866941525521899978871686174962365643662357466743298105810876109668978485725297952491807910537343353165413421030414704855210456520478590489941907113997894033349347246223204082991962102159758820648486412444058077749826434637179567699213179156977264132666509864079220923336240611278945032375580281995648445675963885752072753670781657973452055472715165243175710476566956142606108360399876289653364242567935648695092877660197367866868758114300011340825328827308012710914356204869753585065954228063072969263273763802400638035192323130693268743959648127967088539623198043519731501102020116818834052253683529526279222562052181380764999916939389718824183661870514164912341657303848309642550487093630317090008582400231667421304431926313209859045672251318628271824491097929167687381259316596264557165101623465840103065348484405523647639364968234048362322035662748636182537544829603079765781360629216223471688464843717389308910170978021416151584740771212473796254843836595977737693867949680463191789429317997696157196186929646303111130547101137422842961229909259976256606511083652688582999502173154697299814886364183312691240989100012689196161913200040900446153030581217592000390897601749520157515255431793414971499597283861461119839337197837502900319565936809291785055958736843940796987336159713251794094411782558644598730095367739006347471789765422238448124456454397475362978513176788398568663394768249786053884495917249127667159581586550929674434774274524950929910938213046188608840584993370340737377993440392166733663055658000172105337882578920508878941112961380639767875503673382059088722213407676318263397869958673585778361980544578198785604794162344719032505426638074419474173193230985810688042980625489171777501380378866690999973809977435081038802978784477474483011368962923924118833545754419228029830047761154646769545221733112137022331987559240641043608456195466195762658259203791677791284624619587375480396221114228075705218221276549676149786935630701539747705558809066933614549629855731928752965473876458746209395873559976511350490201734870172101265727134359789442693420574516352184792131922373954834462548590759513486063676394519987759044332403264862803661683735950486216640517671164447921099557520533623086429763726124571506407979095556344968458597675278220702192192138518903600219089438481797342617109960571687880338857579539472517858044063625032020041396139017592527582666738480183149207457768528647417882493822662804687932156910722966171668203804387667304470943732515464667377443166751986701342931657408534150766066086394955003954000182480891460505293519338128600924583449644623256715501729506307371521811705261955503861106532157787602865653499945295082364789395056805894930630352799413591842439676498246619949528386798225576391896494014300635250640207747132147225960770026788931041544939586488369309161021610681530215050382323115856853760738625831486086885724540571123312200427099791570367310859005166602839780957064460547743406317305856684073807003870856212859260127443945415337288739882907093428071923053574092733101561525804975252341642341056844285827083890836051969187443398913180885032550339018143336389521441305135080911120171690511886893715985630755314375830597642882463748965137936133607737771543340782874658596551458559565187585052982935309222568925404029065048836707682557738675328142495615670465213876622390659301328635126744844419364093728924201457439192692274904536131503670414845227003162625530097648291354068451178940757940341114560756898775204090977102399378737104216900782710148058487556292193110080202434239102529844736413923208131129608397113712974661433647719382157230748569194795429828183212817418389382109707163174263191135160931761297670757640463201758747854713890240478586398216091042728518937271576885735289666787353123528403298041210352814801703667523760800903947547875637048344620337193352016922153971358506511073403950307030325676513932152545221230002326961109170109234195537844284744646046705928969266106670866314301670315006372964958394798474780902348227397466443560036757950437790608549384291806291476744370805664241109647287086117812567181608372968325398637714055700802542004598620062934393842977772379660540650582217794506144686694249185070316246019451568525230163688645796563398827476300705194887642205531008957821234326463728560102195727341965788485120853529976141661653875042768562034144036804803996481766541584716584750450235026380658793304367388692166595189609577716861665457458747141557352258665755685799028534473925838409398523560983787279365129915006509646291004868342465669718885049627967813143661054330684010819912525826128828132614251784450113725781662585246507788979010969230516934699010665905125779917239652681344669710641170278685038613179805595569223121272307682874320602455667137779285792066283308418532948403137093809229002658786050725725274352984996821838307084176515203946012822181898444394021186206575309900422462022113672141348317283646537192181606809676705957288226165929946931497827770469297307625813505175551081077213849578894430458115101486393546638524327712583743895033303159415560009985969100295440684905615234682670714058145181804114909899318947783890187928110214822268236481525925033446645982670234987535990106383181311389948606711755001802681064306574468203113310356812590218419523937845506598123860066836383439425884992362447200175739135398812841553204404678668624412265044104629411217717442123427534985533337477376916083201690057550560195449681978907053941063153859702966737825869860278157234779921943412085650272356841716721346242409539965317114364443899492312519836691881044297929009451947527624733108329305170950541424845414939031997794975413232453437923835386524029802669511381721898746937669222070983223405275530974440577839372498200693775355625715537905181179150373570153185273430116698251512026527405375684313439195743117053764705804802480606739165132075083343698440450752379189782033092864669805999928033130091173812756193360936248910667678577316981130509017825178025878401735482626775995705084193814912173432697765232161879806554451995731492796800228004931095056805189631310560501155645049377289706663865984044463387436137450119541415227222785484416155518911753623448352028975137815816036372617938721097082470223321914321957842043864711831735907281175499972541289663107181666362946173144307478836723618108342677627567239063985268483520233448300498699493577844874391426446359145367286144639420745487171267380871464630627693838849003395857785201328850726944965893980082738507444652158113138417052877810365460741174795617649264744488002750508430698381134630685565733979704663609504390133702309272420248178500661137262263502366886615214824482070141353850410869172685252590861071457014089998143214343021605056167169144259219404856807430733653502320085150725965415524513299105087580850063361978770756941298372752852842339118458475039572986570455662494667391842917216999856001911996324004908370027817020360974900275951522543354592496656020201860151981643994994117454701569998748809552568375762745214271481698695215912425697393813827009599805190413494043648261835147317576215994360183800827703566876996470957703623947358789300732875645958837767515766871723451827781478897406800280266936909934099317231793068687582223107857788188217386749336455179676263683031853992102697234188355916782931703418169993560491169842843096009969747944623868782304609721247636444024986013637886914925844877572004148558829626816673819214346496099917054152481587719233932297375898062419816053107037937276123563815316863518386068762557351514006696550433127872629428761771853404523275414959500750360794823834117703068573199483145622860851211632999166580695422643308670323643387198987909844536322058112002348109675438902826556744862922265806868180676890943249362554775032880925715360773900382567895766980161497996943868200718496952291954662301024594874606741682502563583984375862578413376849271444262655271470978573313502236164989102533397018833964907652124507098872063417616014688649059022243274388129662622546031303308449314967774675302074077773045899187564974945079254695390554235355172127777338289298613888783854396595788797206835364950103742997537133432505528161908018204893028222863351355882028973635155973732987764743570844077368259551014806923105155216849692119877944613795279704970148826636754412913081392669524361784783718563632668680746277275169041986324107161895002331886856654148426310297517662676591423014782679697795885943951459858788034763869591367714001563558253290500772049833878923012227706098192855880669601134786254368708666001713495888960795914324296205778416125950965563684208556776908038805939471358339746370693137386747605782485334888622074434118856460970558866134889805201927347482890563702503051172444005733910531428001765696852409281688885822265359153224812308351478106555932755155823766771384394427797062577948445302745868049844787788164418018648188554416737472042023879295319280175523493044978921944011549719632656714166284818702015454803386974853300158315641058056542597164468332408542433022969601135951305575039959919017479002564258212658238759090847951185907529999903576703864317263067585481695114038687300154577995734202744753720238570234908175859028734348857692076977063559003505467927011247019320208118403040926357509718003195056804085493513121148908376714758885366055908830458546928703340155026859813840382055099308716944709166171304839454306836223808958643317347764854783370042128614751143259834978804314690163969911336368066563763020322496492192771974678164675965615100372901851386999866653477853777089057921662468009992112729499128083034721288362932511358834498902002698583313055872168399239994301535711210005783614854721554736236214381645368532584551860900489607580299520689596481569288516218040011065241783616586639721573220785225640529436142608134811150825318044047092215768805780855717539740299006195213196104376108277783007935584023665138489849324844538520949214066188073744882240114539087224184766563910029370833551877484016052492097945066815847660209887053105765492452937004657951237423093360380017804476909697412415977851461319001654230829878442625435258492358968137236353987479257431635798567088199286753165057111050721416709295715554071746321024218565522494814235164662477396801308950862322267346652391221947670307557410546687419724914579288645786679636901184354896269130577775180902697802245273307426659155068844745709469430360483315584464954277670153461845281941341821427692343079133503711615165125853112816635513168875714696330931811016783019214761535773242640757430809061885830788360968118123663906416905278737798356517770614405394317559582487531614782032609567402144118403045482506724961155133618986955151600451534356932964284667040804967335757580304289357957238778724258104415384694627698247566924255764608123877809856801061310725634261023704410934259386383922578137985006857714557439142977843615087392013317902587329559535282632778822769102233674862782794171764453745586830792003400072222848263282025362050619903194853960316883917331897864186759894442496197257004736035515236621332615980161510133168226269343744339364757486227306142450431709803801534147026068030000187586027717225065857700121123268395909958265984069269205978232721947375639761046822350713423570228304416763179424371798005698770647773942947014624868369102429417329681270389431769406528910268237207711130114818623019682185859764798852489325080864492115776145905922719261918236366669121944885761073924635325530947421772111810999769584983923679588484913291235522472608239195768731280751800087085895969191009400348123645123449254948556656623812291115636912219502267263951833472354301484878201307477977495622094419250028147654368125488946078240159451585731134049022476590962241175181825198684587072251440274719670007388514903537757489333742148308572216346267087822885959617261276094946351977580602528609970305257106878050322790395558370063090783415414270529140446430175742246386710317208641209667646351227033836622759591964526696894621411915499944124655152121421364811516503862080044347534029847943573770985414261425081513315335491867303601653686096014648783185138288256315169656956712563219866545829398461478946958037675869017904266941516467859653632912689875842257786684472488758596203985317955969578108143951413138218398904843682074811261429257808455133265309909196459883935092876246515601985709342836857826734392542562672148921595689808663840639392577490993145978010054092553754829251032143008845294573536515576124302501070926889122321307922133689566937286919184882316656343529441394174936999420761347350023167298421788802200868071644739241336210137156372610069131701928123809326825886473796270300276654016811510016625523864183510291624055542724899576125286724353270225968918556226148626072348127940209157237421651094738314669878718669385355461411584772224637604833696998289139694063630607841833874403917223495118761221243831699760051063124698049000322664607638127851317839242261273132429692521735858357008944035290487050655496283615404730614488297744103391229034150459158227920317568670072382047904944197321033303111669539658915670085339661794767882806260561150852314417292965149685480831004807507565311864331188541279237691387847472568844989000017275941951740033712682539653105111006343876213074922271031385654233916826752941624718442011508841186897024797554579993448017871354092408557398161377984894596314030824149709857237480378074340967076629608164555782587294450029748111002325812358114005108992578759726820136009955373024526416735565696875187427776349247784883894170773305607049765883953215843934637966762667653559619735801833911655720989718513657627915856705732351261136288201581897066028476049073492951969858247904019391533781288973809460628702073992852070038698822999480549474605478996195354091968874486443104147298582575581252928221739193708415089818548240574040792726991640262399767887424223270619570240779555677238670427116280873695494971287667403032733382656217275400040978190693040018356059805668124759466485791409500198756071590974875257512918400782209148712594833126598485358972446733982879817459941635328399981709265806880322226743287824364969201620943850262487912334248250504424852604883042312326171134483766626895064284882477874374352252940391692217821145749248844583576278409211187621723194675086841690120961789530835017126784027902880651697906522747548059389611552843290603603650351989245384806506795112739840246902499925668215085640252464589202944399071529507426209710686677333502629025528327731050086074076484682252015644159291285399015149300703837169526188930420034988333739269586725155170800506260424359905374858098296300522359078305039383596940861966516647752385618888593497654192079938436675157549934302922785570192812406803197122777353900610115530946272119678473624216679376005404172911451514810085200131664509174170256007307485899659103924164372275269118166381678145775128985217768378183678582066396225920173373436416628023560043978786336977780308787590930431906480508064160185709475451734292178646349340761756151833987542870025499063963413859691385753234974614540803855802505060053062928183694709324713354299062322327719087236923444543608288639481089615416676994067815146330312684211174183714584750660745980805860248794363544661417796253911782458204105222863627579427643611098206882417309056003094807826180849318605068451673808299914412122012474612135124323030375479736269819608854275230475060255909206531400901414582454774108827936648739999902247291728730543966059733259609112231560641462856443249158113373959906503040292147956506167333701218220630822569876145343682387601205439523670105454838704684389187328071432879707741815123828148443140653529050643685934509993371570608459272246663866782477973338502291583502843448166307467567007834709660004638898811682878516403161295287517914415552027234210772687191695490297096436311826558563859572571784363314205374739204971912371405950566115294910673579459765783967868064714013594392919142648266658806467212098770363223297411255325358844676423120807579719931065292760920754411914138458147095256579651761206543896160658899055075409051201269545139601290412870192796553627504741227458010739930396767796628450313826774759066359548459067025782107961774123529139203325414814665098457666690940568828975600587854689110996398913501538712812502792026548638360890981624922605025106916822220745407048197474659028128841901248373772548515043089946882100887647773783544981181536989009306728151491411035945839133625431020905547288345126373402214723148979113347171632369702429273812038216213921180559230817941640086636506439427832882744954549935482110062589405744849582894825630880674916466110872154318535697777203707492434871547096867595026463366477273762930839874841427608564364313536767824370090570600334624197525590399567330837060646267323303771304279441414214609761674011084560111925188828256198077230155752305875511576168855346067037253806187641280954312881378346671338400689321705510023315827997138935809504098645148988609413461972174590094073154802473658741788949329646725818198328896511949495901859700817472941996307461387902087340863908955122262861885378022262311170968943579699623545727621784082532077923334840112546676172496145325881729900614039581968061114116076343486843913695766131635060556523133773921204157090824371757578346226946754467078788991257287152007528200736564849961405007956706159587185213576079197167169710987076208018266046433686565220255646447162081587079389573308490475364446721177007954896398543637135846808241870204924933512202506453796853455485355279877852723682541894197615130844979067298235563786730839058957001283503509080251279059960613935668252580861367096513212630301313957977891775674738878491636477131432648160422533037346473240794917033421905489684176925729029743569225296607525621303452229308414302889480828866430614106103416566115570379520978365847629306909550820714546505265989486193720031764906210948821910315949089078572191224119233252589033250339063226386017280675091846543507498883611205454036027152390099559892196178239998586398605599268590898975723864883538464295162404467372218677399976105891016453999321419912398231714384182002871972611718361215520631422024160390658135878423485475361634196050283818436696540680146770057177550115434512526770614639195173165412646691943600159317103477062435030736752997157856889225513760454999709219697728063785621519390676914919261939381922512546207605416003049459420858016224742416208925048916097593244845924111240521613329665845632607803954575813873481262596280183575913788211385429280904100585251793309937031404596013911889072068691421271394568817330871049311809420468187362552663633512448966152248723043876808301935402346119148894799999184926800823500319631568346416392490110649180363451825594663583762549234168610421815664994880893071555493771360151248289109814893769831635109786248284643949125643218269134750303161961959025382776744012800087993843020422364716434545379673824724349902574017151922402390950515089455186077957063396418183543215882050796266802629215997469718279439829605161983214135527941926024965752861936930733627691416479629198894252229593630718041666293114720184688575557863242815139584142841821128777039536080783125114618844074842258561236707805009265722070505262672130330384065543444818372537095433863903881008021439969773719669014531835171909533679371886656294514207559523949497573624513332218432624738309003741913944115004562176542249702351275505622092368717005651084171266108410566340549709326712090874883888626106679779531989260336907936705590315170841278163374103506090534190183603903803297701736683790967162128511811217794200897502924200550758103165544077338783218742619667451964222926402447523250601786319178150046936367403683877555294223177940242390161763758943638231359177184982062766807190859158730324507935494264513015459613959114829374090756462597460296005950412759990006177807944717033923252984226778335777388547087101145161902112737111459402409854283514532285979452737384614741668622255163763997160527578813610832956358312401690752558047604525821011698666786200385910295537313715559085266962598552305647581231607972372740977971787531562373769753120238122972075587023744351734151004796046488755142231283277740674569667067899502257363508975361514807238641370226639580068038431196665740465093635232918905198268025920105552757891088870392419965901978922589886956591536792432423485163319621856217493611537356302512707993015943188740610041454521486141659715042383479230300680592361277153698058576208148109677691853790798792905959175177547897149585362015840681257082164653565667123634230248547775896834541180703541429402285206151384270886015577938665374851451297431954227129511201779397124698822876041711949720470370540085889939050570931419981184301404739476683744077729590968140115445121029444337383911951641764778277194808334914197839223335513399505306879011421124985722705323030790522739980244919474976728436657687731157708831339049454986581377158180515476451833970773121650671258341868197728479091886486987651660432853564495726713495113382462052864033113308076229573878946216282963188653374762227241138302788220590496608564913836261810601160923009591913920344456551837488145948105373395014570348387307310357008676110058958628334834518741823878697456807431700380880491184735227055901764568032948819971606304378066585949749802641266085164323840577689607033930304596796776021514138341310719014574535273519747828438077671033922685262307128448387711159933548148169662964494726106448386245681571864024772476676124900621274515968008604780927280304495821279699987147066772336260518967955722319508131819655075415513658558754073209951760800350083767029397800563956230293200996292701691333598096515017591054480729654113226602063886095430430817957416244611179067052712888883621223414697623529068013245973597281475450394424947442690132805055731724376852255490423270421816559804033811112257635191690195100412639375402481523915453296276396887111085292287448530518146449567731710551316313898738566015307368645488515207357752369683093948952606453282021399614182712575029714726932480850945674573282449862377174404161231700298404740228094249623758413580460789014267587547607543546830907158873269454423644821628147304168680105718855566317949474669935742014397692988545179018927403075482782637336062057786736626085449512636489715923878167904121796313714731157074865429326316165844804393575628911291667310273906870986972618116091004742935088355930904267977337629786158771058101461209742886244804746181141435433836655414581957070941190096395937127468693753228383249836766889207732991311891072151198418229806800109635177725377162761759620479920559914914498881642963496078750332678921009528218978213409914080902399707425198903184858225924705723264789554108293096480875383559035487613883322529829117058414123611343464573061290175397513212366347126290366362418292275569945570567144523091447757686554585322392838160900213493127978396654170588712785119339397177485590909316832304046756416845355614351800931332475904861020620042405773168436761046397250209589233956465272255223853103521922650705316730595180670502313269477304300635611231176859516696023449218108492616324658333247578740525154813106921174071851301523279427105949472575149980678612518720790611895834778785399486438735283121238800414234078914951547993829626719939967307650121283653705444670972854334466613594215608452934705743789385298449564536711704364985696163159406252562104268128818013571338499388122066349273185662121817852855159433739240339698565040196821949478445672398904822113744165551585243799018223627430052282918735719398306523945667531297336120443960603297073747172679726930556012997676987732572348983032559441983225024957082291537184163100636680925299790278996653645610655021418643779216640325789570879201908950526539109442101773555238633845481746318079228103702238243832665356644364421898563087562802655185117482371970490248156120055918499002452484500376096845625802068487163858970140642979392010494140921984857324122016891101850327644417990340453134472547297197167700681518435633914512217524537646538767725547460471594509257022456400258990292146182624566868088126176354546213434114699549647782051085733586639021658284053768891702946006503164980301443906610234197680409179378844849286893087046537791863116786494903399086550569368943049785965992867627866277286389062217601520380774803682278170861123328348961962765670207528672910938103450860594436181739524300807595770165168329146410055601864365950727863290882048534227941605272696133682596539361232341659319828028459109969191349774556362607058125019462821692669716345284466839162047783054891066759187520272987358467551019538105934066011933042471657929492233435643142845048526128619829363860980515390763997881744496519562945592517917115488790544067375974008869163898601329587351197695104265027050418758729365203725739695930313252277582291615920612359119975029936541816567205262527712541742424673595976907596949868276826440726110266570084907071842645782960119439027656525754133349487399586815835360835339876093350849519732039653312265777326474442167964611883863533658049527519313019229529046240903882325219120703677931885118699195046818529101133767456120108429741984113520372005599996784308483713648937940875353694845972268769225934729536643748457743333266256426622486970474301269946544576963196713220767922523265644242636402897536105519625104228637758902337467876872343039649860251560107284415214728630386613473040062493505900575035762916716880794804633377259106350313589630286665658164637511145565328681214019387761152895475176178791816641121349323020807868926384109176508337489749783728552800951072668122401254003411757750741223769939228103489815405527456005830888630995358026808645256368642862737973366426183840518401491708487656920213766462376281296086690781019611738452543117715004094871186825269853380177518930628354093296630488363613706863772542149134037225377864599441639273851774987006460133151969330603521955737327553883954612533249478634746576685409930450176758343110945913908897934421773931187317763815498245464203807885836112181899015324989337836644040632726233115984461651268224222606842035970749769148728351441221563741784502208576798768536396879793420848461444077534143081992935962624892793641314056303187835788019794979596981208464467945969286532586755532979543522477066065085888394752277810533621441325440693322314913597856744493344771331279511873718188038703291484499122185553190800258782383497418102063880308443013402064279732243191477673575683159357244158837544311589489330514528610673292024303231436160264711159222956192188662943403569816918224588659641956367357308344146982733387680400981450060453445149780135661489351793433552468457989919124983441701202589017831125769867648345199581869798487747801502703443057912873556612695781733861495853592143150279575579224138422438932748980772409502676414838314245615720167177639264270410531933143094900496189625791197413866404200196444809799665357550769556932579130047185950103381281372286709626023370311430148017009802832035983653551863835488217868526722550726085507942505792159925365536160532308085919163634961178303683491930990417865949902736357866165509422522244211392130119941380299269821735070246709149937364335843548317895062248936121786499109308303990725566990392327866865606879072556626747996628186973514382777175866520967565229956310953408314301259688330419720726354079724868163155513260295938045123187034338576281868055377998154046616907890024875326515349607027691574596284971130057978753330960018923221800442702643159148489167241892703436301873530376307354820171288997258105154072089567628527055015916125085166909576830593444853440673633045249033022713677610710999378711419398242472106111695760937676687774618018828348796825037347092002209187706259980596106525502339638120328248219076250971580371321545054565576295519152771566366786688536677070884919623038509246555914260119024148075317883586765039297189446370927752450270900855617171551508635323184315318721331454042158546790925782111220084199947777172616310248935691452750944983967347758556167241021168558833204566296149555786461388495756148349478512976651289612927013070779379839985453155673000526651883406262965348339970041518158852073329208280380640700395114979436966701875348773237901046370073092414022062093561418896812561478597556421448646803846336212026642575886462759201277767289529771959466653836344158113000531289131161018966204731023313030522689911116596926529026383334065883717215272011529577330296735589037882453985061156859996517215714028552070015545499063268840065032251403953313298881183045159529777343406999778720541516021151601508506294473799962583088900699195098816635359015327505773150922643072482221689269811819982499950434159610620596765716296312856630093587562363692399328808681267011768620804086479407380412347421729953867927984506542622842138745550150704799541272236419539006040281512100579217509376718490636233154999915384228249668544249495165809023553148494437946534853909652451287855434190204466956654784644525174715307234263926415171461092930355143618392459330081834899935662107448036543371553293784221407661873988996360897389373049440212833826126888145794567053971129900271766267814785594130665139953118861616533466512092732002285608133056470160346956270678386568008641916789252302232681341074665397056562233258165287104218389047198137587243890884170965500947550129230723126934787234263460872038741726825969066321409220482832703752620682589767605960099669344455798675403910365426373334736653560361032121252555142138796446769589523690944171546326528532279718531026177689485027193206000314546714167817128563054533522917108486826319695989818329731581175423251559606505807108030026896745646775207844726045944359567435496819125918816513714815538334036813157255844044465981890239177715907568087622246564651815917654492912139099656247789405672129795486841905779948964823033580429210035591635655708948617154380777819373981335709143054956176212400623891269905371871717570462106051764533001484964826043316350988226908788591858533278039988760365413462876478322026395006040103848095456902592345491679950593497074119008430029774218527350243312521370838783247120496513131620368106464386037613463424783477055364192530413820871712260540454731811869745637444363325022353584313349705693053396903434293565875326590576785067131857157656927666857750534323284956916920967395351796112018917418056269215488267572828247301019229619947554182622264355463875497683859582760679889535410833992767756840765561200811553114893253499759877207608818816860898762209731694666643411656204787265343101986663723280346720624354163424255341137399000428192685994434598642326522800111003000567605075907048890793850960399898095023779657870713980211397772979692673766319920570759576509078727777300040883883824313852249658289680702999841350618480980957378377247081578793851157281472894935758627386467669944108426822132538422935083275650911735106879570721449917522051243238924464079834933058510250264176207118797436456498664122960653429958613941987195402254316084306178118998496818680001698037521063420643660441465016291437551491593015941719707529335324127627229691355379865635288313492221474371673667966421103154527518860636198543347392855984867878171831839744736363574482361357196967471150438130434607227963069891009862495199489875304336560518108786744299234627317025068387992740624505044060401517151623231311382604477177742705650864740790840125013885713195870352949390314048382158917515689797193502785348886657979223328213691243293436783487574636581151118265745290049146303121198247161940706635048201597920450365326391391540181064990283336749390326855827640452405641168179510532601420578442198832040881526052815796549908902209963497506730572909228846496846855034270917506324399533002684728064298018564022453372397277897136669225933979877221696101205720423164593222025036153470305748821657765094639416844928859396070858131160706221947948623582162858627737843505527379259427040336540908785981447684186564781710616033896282651174526571478870991544496989947412417536438084133094614992067046086429138232351381278591969012406940191290284237959157548485728413674170035013331950647725755433744112238633261424450581934056072934776246487025408113552611094582801066785982446785993112487248424297817192183552013858878994341567623160060560056520119022051226194921686006400908751467828266668042756007284481357314056369906359695315589618031069712068671490766961587072884060717304442700163642434111771816152862711500727649572508831609900548863229613500126060097762089305005476181427782550437483539442715240683717227595515433750796363206242981195825548983962110423156286797689411263243092035743944375188436099207786437388005444366504292039420517529317141980335221031627754340566066817601737616050683379255374969494979721388905288644521360665317244388933733875290652179063062161102333273638549405907973244723179290073721267398779540484517896181100261069156673429800056153549451207510601040268603924862597383219392808996901521636410645682762639047096072478812510317045763943562958747936475317998417214410857613030912908860593871913930573911211146115929391967605434094188194921354731610254754012324525314741209199944238241209718598254762142850287874227607557272254129409249835741641252315466329270985974717297139992967817125776712513613059418668931927799561485124672427841164719673614214370837309887582642370068087902917350152258946005120055407011052279496279725489132712804024037475322222229035019801706017851184505538228071403086972259403535335998122246662088230087361052816643491957475024411918264303535773705795461336963301497916915643768172507911153013637521278060127493419675526447385337472310519653878585396645705808721397481323407399433516677871339793876950429310947314281593688195723954624289132885668184593038576763496558095371159830404875092410144971378138018762339249783680734508924818011273099454973895619680328164235325986748673118662938845970192916432916775525663355785419513144186260404738054260898737447774664888546322322284085127289665718589732810142920536592438500610177793855240832372252427433811568708744827248537374206641108547313582811187638824838083345638911777062024764833500731455134037437786433800387801571400573386166393949862093382346329191750816442016713703087416099023358000673937164273509546636943007333758542063465536308424156660953152776081408572568986291403897965626722096312673576089155128727243166502652828613323900122696781488684067472864277972009162923090404786949399804605314133675938171958461650252172919481816053586880153826787725337358229381968631141845043781989632047570238155006719587379159931728659735892591843937333510421704316605405391973163253922144769855469925385150657272869472791326995754816482808989582802167066100734651133969250752058974865574916592743244211220604529517346815647757979933861374842478977224662100586392883173752870526466167301505558138478217174706087310225199597246613179515743797907281746619811964309137053248067585967678072901267685099930678783447393292076866832293460981638640025366551759035916277061824116962768480509235337130682370973914448888492883184719764141917386898702082560528937896927714002973370568537345562753179741766053837343606530424301254306628633691690923054950681489818627198774186870992157369137495731304808312610855378048577565981024643371944216909673458806360680504820288154930125412287029443059974915470416982267637229103964613490685886707544545607310588109943060156141921713955117404010685786085721932388445681644428466435580216416513508925797732402728764234069472202050167953182140740252148757785058037387002939176565157327642559219132821103938366392357862475743282004363356293375502982879712286352219194634015589815733226917923073554446006408543866804896886514773548735690958172858080955163912509154219710952998295935141462295889352058672661531109154637094920956409649995140113846437964141138944357642419184985399518091657514184229031817578907796153249734835268331347137245120051706628818193101883144051567844366341474612703959242710689191849193513529789907343192724288096251471766367839630947951491465767720960221006013684061291069115868451837831219100727255427590076293120888475457590086359294087282069391185027883302962486439276850442948886081874703409956438616245855451091165636997719398684699332274932954031124315441466995561566240086300099231448174102572068187570605040528146092187196567595923583087100211378587174315132848948754373161444442591898154826514721653947273642550782411063976640893221203319420025481753775015440429560661550267526724324234205416922344973271208570888365208515470610518168999851197793717863470684510755895481850801653730947451385714123232675090448004225711474234218103441456483116761500681110410932139104507855523051836040781379078418448978696474877059656135958908896243511533799844155666283344181359163376613654593838570213827710656205098260977230878347996918457760178690973545339281902957182238249271460438378087071886653053374980882336774859107769534729492337134320174186023941018651171373417475186819699943260856582432341223654369382520879776624563379943197272519020506442995615075271033195409054913132925447390082097160512335092227825527845320942670134084189636384521042793330326964171040552883897872609108026175649439881931917751606558512954133816099637282629637688624661030426844205591813356673229957258797061118797580030995603856367569974841002560884143184873037845979009775326058886686367903259532914542358575410045815701924751281201235914330380886765195204718107920149353103816953923827861917129432574790804000684182882568919674528625658592329579723796459828173962572216040665842876807213521500651054968183065683995331562141298691950673335837496072901694370462733938540849960226223111290565641247158949128213844504953192418136719739407604374260968337537200375980077222742226005951129027399862639390242311880424353797804171609895409846347905680936971508511067886532003181397961752692125653958899131690306759777673327057615859680521380192571630797072384027318966328274085343401933017527290542850769951091449860999498933141471787688012046525210077090176510040756930681299156009881239350757448568754119321567295500956531977871107880805966417515284282861247285169103332593107112181519645473177939538226979118624287215305024830046901336759642855624660709263033972545696102099324755313169448378184651989510091991071762175603162097466011969598729740518296323205588932720394176377541075355332361600505925246136030066965132559767174518942286022338728756662604424232185425192645307758897409334634131242925212261591150101483936404509751062723987275151310349240750994073627040502752220773924025082372232535327686177598245156913346497959546739906058129774927278082208346759859393340492716342520497252886078763319351419923842843874913108844791281988114936529221395822312176058472777052212107967974508624360108127745201452470338438759025308304633343225219400530499464827244954716726642373924775389290048877169085224770696224688788516993379587690854274612143504613049907075247658729545764636366570414618722751689728227528549377462516243637996041741446905260288206732003379777823916183296115920245954771264279540515469658534302214038245611220265484710991690738257671797999416013770776786471271058604955360109130889118874569950885063267710642543258757691796909260057720123358333351306448843553826180176657955574123771913410289279381443124835298009845194101916118959280429928289380993763560968014190104745807221685839328599246085936528380654160137527915165968704076709782652087661584783760587507536222421441028175107326377622321524719717573820648001133955787195912419613598737068678689856469339682678164873742798190312087597655871543598028663019343346433476931449728035352324273668371476212748526226926190626095126216113865270751257504917287775396527911085849315410907766456624105780431607156884279644485280513305215581340073736324117786899922488393002194132149947378378961326890405626912313179521020213223522118869086363723387322676721769878717212606766194861722076876761326368621110187353469167193484380337846256809792133344144271677323157487043179837353241567626621882308738453638560600757121967751636044097714898036918702656828639026505957787217836732769721752036169827655745276082244494646366183295916308484190746683578031065971424605591379245074855216914496608731159291022621843026240229182578927375397211548427083022990940732392704044532635764109076676670184173100748546287853939737702248505943841419395603092654388059291280311032639420175956669944352372874788123932606422847870443599234675744200879966755997669817550172735766145794966841873125853238189700393483159475670818939141966661122797637202206185963917923124550845121943801229739791586626679554581347945661493563207094578948293410401936499581651852895619996734451669725278496799681515805410761874840353049430419825141278407961485932608720095953628355599181630012247954993769578541236225211634004941707099849619825187815208197052067417758097760462254779510259330586205666904688764478445084121373706085097657449926183965071309043736193585044564322947289638898668267099369132579819951902823893357055554175477743042724478790799060333098904711221671833822540333460549792416015058069589679837694832779898819751761933874605629668480797188844216882494816757051798230648882808708901628059562273146214965505732100463516235756848105013374686785230438420704591677499914691563947867723808912519952013389304249439909326195768901278350503984329173303239638804115333553332038432320433777101348051059546027541850079607036749776162656020736200553779103232873668255335655820242866320067350366915272305676310763141502940340789333385653242407667681859071505307204843074401054208528610119194767819828270696367831689538131140471718156495061964544787079707289231014325776888965425107674563251443200868460634640354527486465413867455768323425136068555150459912724002643665471431529278342196752264532530676909285236628480240114068410012019612842000393592581637104677059089002271444973803946766861168023614944193601363129993603120788430968539489282158915570941776327922470744785982416571688735341609481585227215139317255755373938361905410872485621915706038413618176270226471424193988083583034675703595037089948607890009528554199783690622757080845081043906532510614058694174433296958243690460242139439871830663331690097262337394136310549995846078870070294843802540659052699777840204327763989667422354463476549727408765421523446209939015693540363833932133162005316182949438731512832631690308228377161568497965873519337038384140612089030557260019327959805366462061698080125436404638887158738068855085915386525575636331173631555536306431672994945329978600352321684451214447143135177525397763678622073884162288864191258420782286122249019181270627176604732741744626343470730769135839579309346731348881424521953633922610686368825078836027058701530062751933136990552387794205221717371981482070890283004784538525937856989815524237173225641278704531376454653023030381446271475361805621138147376725967084198909409698803570497852599573239553842532391969497712537984709281179678701589548992110615681913713187457679028380125985897695318800456096928404805205360362814590762658237231467341465488403930441225131275565755790850716084528423053546789309233497695252476866243600783789216283847453520949190137264403292508715869124145552058506571767904184011041322626948537037385227218549016022387810374200208606391793694303536456567134090691651808421338437857452780649510297150275237353880451746141630553986119340523136538500875707504623950454110512472271985069175839572426185780281598606672874273705508716369020247296479776456955088684372089991646883741052036882975930059244520371243597678640376971686468751670955915903440479951295418541019370918095779628626165575685631043387249017784348755915875654320528559211985934988269292531265941533039259752146034303829322959197897623931496470222558346282377473056619650104504445558086223114407656209364880844030024269651936664144599248306674025171966607989913176652373409907033383307091690238338710681225026287441500025294966990359642075227200368880099045173387451614080742207798995781502127612524023594376402880082143738496938652975799660546713824613659336322238221766194102778052055059755263430715869405630002437514464867882851808652473435846181651549491821232150610656500592677351886002389412592926533724930102749759449015906471645288090468341314507755659781051963885861950097982014599466261473706840564045858198086548821676530752246896997976289211962374853617643347139840061907874017161060644747187463508906052646414879050664056738371266380313858042856907523480220535212404433388993977928242215563136781318785393809429204295702819172552181081867781568969422069132621869518977181165728076719207803452890872268589578415466967380896665935242966420277184129689517886452571333855356556991969074341719246131029610896534716299070555979133657117690388931229885784069764384261024874866272262430197574731670767887999159731774826487432087527813708609827032277371058555536238253598477398218467808001104995226314696365399621040416158867980959174051308817241284332819794381717928173982892937122650169021269570208759834849197318514744487704244189978817341871876610641576962102472323460129538484278997748335914993217461539819798083015784336520027974671976129632050558745032173701323584799611253328539389151614872779294078739641358416321358759763183490771204075552821587570098660148350356618004038336023770379725063253079192110336481828367455857990814892312258047322398490351123905957371264826527963696489030101242757649682988186638530602733195936234169818395325378082588106614231909323634523790560407376443805953833915326841577250499103675933187621008522702958848756997529336451047083449182105186731649092105854676083684973081230985534040377749408361443510945161771221955586728334840480401313687197917330281987867047198283225034193830873364661187108911192210805379139272462600074169054907302605059145035094640523458531562571919574474252887188153123004026496157317909613697512791463297022514588446962417703765465225339771401078238754904619653652450564907825798131299048257642303558841336808245697065864216464538759035967351922795552876530097629725400977167604697858606969557820725604210101053854876868121906015891273289410306230950895652632661465446026548252387301574263003004769434710745798358029469111084139731344100925732086120335669657890325077315115931971695933677606786510052851166281239291396651096129938971685878862940642062126686344380582763888123860930310265138632662175877830119182093902496622694826191419770485993347598540914490535693727061815615652383197263010600665603449116461900774579846908084727652559986501727484831043910107722417792639759959260441915302123313631925672239086682897147464444319322634228031196223173724988623228078405729820238848954954058140782905534909817482643079381438308078503593352306141451420531612406768441679020220666184131790250824809610208947452218018534067427485334262386821459581582297335575885103458901477286538271644962586856231900251215283411549843351313254903580809218346495599005651497233964071170820791529381033767325206243366991590556163655654906210341490764609676406623123439368353789411280931641239222525427885986153080100071081695518707613758136665013291475706806646637315368307942011130985330295391598714151104320889800478499907374108776431108665321692782414795764546328194740556977981412002424005989779240206684111843448740218831701594685801235427382874538392588411597908768662607025611687795466617633553630772862923905865445815390044433647935164919285041879562273149790720877164075587789987009462342203989761427968244536010223816450665441506769753477881400226129959165971744743442621191677630130610756825028401546684775140087057593372019368202840885256721138669161268166999356617557871106600492378477571714376762859864845914304146085153659468493322355230726760788370439327900913272141624881394596098251360554506106276077896398943572996047833638490791586988149428528171484318512118782003692202352051932062774441566533817468525020202896965345563033810182946343598431304314247979576218689740225654675714552795620318217369351176652114943469199744465495988586602670408656335631714935021950778773613517578574888180576467923492269734007037259485131248089954520797586902706141164315795134617794223049207257639279252593388123447259073287710234689249507806901732154560941322701480874525391413208349501743406705615412353643864079803358202253651221872698092276907032268762348664148624241186204609632918106266216963757031551497990171162212119633346259075180571661921516183710141071286085893483316231100603879456619582876685585005636974945146958344017571879879867356908557758509410959529362660640250230349801281917172355359781504325530917209221196519700067357578679639286602041592056286066414803126325716228993331104935382022870936237043927105014914197427193681559853081335187085808488100790621083523291889469544545174793711160131615517934960177540238693492438055589582400663753491234451880747953234267161093922854900189123355843553672347115069049857444680863259864289292284612930195553029260150322857382225494405521091025715742095388807611415492066541762697163241972326211716714331635107176999666334188977767514776200732308399969748794590086915092852125530102710465630201420006066101780087485705720939066877891449309627692658155858098539723874171900440125363112809342052198724335134897757417221827777467066153239436811379757260937203927072130146978998733250052029009327347148045953974723318319811180390219524338624501347058241088972251168006211024133177194961919634386362073442811505381932140144819105638360432915024118629671663266069299301448647114809963650762207422615468870016230597697357589973592536964871644809499750709999471103754667429036504494177695015753207674778165990409520415928062770854468385018838527936330538167838639917076239547914759120294344460761016165549833302898185851617224114216712640442588448582284013850508694127284349357769775910679111056762988666797596310496396196265817899724228430944571887811756400912266147021024156339753361189287466135315145253452929304325347905643851735082901094441467588615195078873857999719648962214926644086970728319852610660356244055902741614034932586322329986605472421169823730636467973296254063997570533191100180694389126241943683605101247872440452317648002655435972103406185833344499931019893465216945298965988278821888487475010225601560105960792077710506782110283859489381661236078981332916613129703370193319459261455207659915329185646514986063724740422078431686239991284420119543627986172845226460882283740100899464355415235847178763631235663358853486591642986240624118105946210698033208175348020608018601253102018062164955799734067187799016562852470550139902625219085931883672167199447800890117148166209448445430826660057770665162313425029723790194571216652803445395049605092605283111251915548024637486930033928984749673902922727027982887686783782211418075897202228778769323224520154150481901891331739958388491653872053799805317632407083833625046023927811761378875336314197044363675658777915821134534505098111391983521621762815972852280787637154736090215450813481842161892912654522757975491206549548318082966818034474674610359936590470694944113420627369701586134216047845579358065955340805981678363051970891916882285918974424807627687228626238003025881102219925439185317676555202702570193426806359613549295919399139519243329327832630311918850751342840650266239782377612983747040128250462260447264413664334674359540206401061439178927746070485389680939534349208870268816536894684836448099024574852837778097203095791773797224756432220354568421711045278472188712496229333910992360811076790641699873137381567506782454998651967086671602030105123787019381726978467098361175528231800956787021375000499273691928997156877747898753965387226496503076352944611204429537143486016400315985405138392038518520995993372075419190308251431695897453123363560767412507818944873236664405476684163027099482765752310800603780815685820065950042410285956551172895240250076829970637184268638234345358809887272469858970600482665808359289216940031221952499963899007411061210441004047581216550423683125885919777216223417287593895120738061705529797121658455515616145135478636363862503735389064415875158265122855787501327731744719129208802327584729182188897826652639529379834610842900869115559989962857122741349632918580287731085248656047582168092083305924199976033153516774691928294929160697165525780811915360243634307020062307684793128558044693444871758756579843042615095150554606724022856678224427130638704913047658300018203997850438718320810178243184399691946911355200798637786846164100603672350571700921216004825911584129953316582138979725068739683783186423833334983107350256226222369476935986505549317661167372302484625255739915980968549297887271749377791311708327480024334895399265214999844093968476319492555809777138734775995838044847254346661764577501036314330265157818285394727067512570834972772099024624144637546469270633992299808265457187344609403789100570108973455760414077333301395729761528402862186404659247422833901647981694094978791184097976947753651489974816040499917456118406039399089960601487549937897237347772260068513004209323727092500254692458083411683447309341114010175696189257310247678121790108863771314135899372503468667069599565136904951718526125592035743763402949378319373132516962511175772520100607398754869644689822859800163448021626939035728303466251168867059941108728939764432459803615912951374024733858634164805857586765638156467999145698836611115132922007258662545847117699090560349777047288072268432763681587829027289501285044959865124775673491291995656064044067690793907724642209357639621768013426643719023863042114231788602545121431053198209807544291123702425461517133685199592836477172691651533460455221670145059423825606963497173353868300950293676047695041834008798676226582309549163190349062430651038523018519033601084817175965212775703233651928372049213194442889692268112557547313832823438709496235564216427578370385491143366744675422045085239225447605445086851322260741567063098896267866096879892874382935553486005451391559850864135540380054382284567840368817897758874965384240047304783526575648686802368667083176938726181043373812369860538320161712883320458747307541603576035667156248706059199266083500968620415877190189388297395990341857962066414482772089747091900124748592928615392894722734891730638558442733161902281229387888942551877421799890953597679168857679781732505669089649836263159360707984650414204259974187495794673475463808282580166713849814531362273124936873529022964611665478312412892715186295634839692674204938068997582883323562383412019741141162196477398758046454343174340506029595679152650443481259061881674236476650081803970879366863086601925923494214936972183514435109270787755335763173409610126826099277781585512111180578008493748623466924549237890812032366139874562980855844133490910329230081937153958411582888621821892438182548683410239795837147311930275832704970965467221231914338878488335474134154528816728640443727810901858193287408642038625667403192418942986157221541146572252542684789486012086492433129179613879753989350886335402242727910054407378429357402319078900199517491372114834578458474662197429097767913122565274080151251488304099772485532645890660885918273771665915247000951010659581613769456200523275005112945149950296507866160368486363845039814545639143428099950116475256402285867029736454674038310418270175811300421630834671085849228873007290922029816233589998917848574455534181413544732430231791505390844872439220518046388991533545859016831962881708533512667502543059287911833945427987210682782255026780603337018626940735636718737810363082861938235103803823818916752865912361898898914713210171766064954538305200321686417961042766990730654893573885875951206503215792353704591552465197533009781595577909397069984275378658635321743546600295460789472979511029388892036045760211318689675384493059364609079199081145468962806564974003583691599783410592618483793959984879824681595498953745699045961047909978033770760903611315133140944081930717188710075794499089944944062436876697425652232576540569416435427665327936165027829173527209770754065304286135637706252490803302912591387081818010066788966154201885648950288279548985237928430659972146283568504056835284385064864460010371141466557008329285748003723185877539035091017934879557481761772910464655665145956871168109216646881961586403549426825692339648774481289911149787371108481504495865513701807179492358314252492320505278850849403899696280331804851781062023500100857574809664387908321061026956484680279890503055371714563016185303302440939075037821763104167568270603527781694133790683924374731143568732191526268377174970759949279546320059713339328094914332963249726713431371395519137401084671206948963745893072038422303201887376275450693464621404190922825605453955825022513381847116857261343709460817890174912888295412307085868149481843766609890477218763777143423630370395937361984814558311570731044871330771736348322553913105247132140485530499803077054661803307969254287636866848952083728323068312019998581035886504919827199327356450998766354535144500725269798447330048935942017225861495302121531234186747848908653042840281173521284291988296372829795937988084282486279573188841121120293974589065389154819573499344588895549506628086017247392129004608341344988109104212379206213862778298765556574636067567109974092605200388075881919354920245832343962593296500471856674009343028638431804408652288163406858157074911917788348314422152445853107836275594448817847318678741757192658489309659071441058792258571703783280957686376129195826353734147794531975074660845764362217646029043210048159876590122250026658237477337732438754483801972631502645697590554847389370701489790107712055196046981800954321529765065011728638693862513670920453615019790393680291631989497826008132177033484967758595585505841209284938092590358533039145004085035456162892916516748750224329339253957108215648780071336647695781993966771752168031715265547981786933898482712605582916273873348850591171340669330754690947631304126719806746293706077338033588171413934194547053996883437989392193672966540643705575710412852267481212646696123200221567115877037939587203827473338219659364763918480309415669193599297921004872981890381979800172668977871073984289378977481931284047728025820872068396235006632855124691585305704768884733709193256832690755255136335430813105130413520206961588484438978112039839591904657268897400505198497778113586218673214311725409360218862419829856026049345546967215697248750020121679608989326944645099645111935076831535783708723496133814540946077546417288182252215513978849426993127264586238589572823734799047970686536459023438544690214769194136295993050202092822674687453952796914929042535787003144721804397117508092357806539430880952559705039576586836889566284483327812994957229277178791208114802737230794262502976456804504767493927426884180326270540315903714704085534353539398765302554422909065414073261306779553183395967996169535115898661750757541708665301058706011699240941938494635824895193332021180861217736730099205027874739505124673975007285824582666895410273500312462270018679251630255551887534663851530806908200149812332784488838512393575281739606061481907507433543776763901887075684143818377166261276985276445621326685922789179133162170251301003944437418787061607745368624500798982141022899576083027859051681922383858936343434484408311695551050563759279236462994265197627603697484858371934101324542904314297726399724282795210070979453694755885542594136154593187304175820634995661786749518635565958750682143402697251002545011073125745239479317799399934493644192863423270870175185229935383386183877556732879288407946909099119445994509674203976814506051497381687501284123551024476701239620926324581379412830819677813713091471064794622835688063423730442792734635278897497867255761166074600988284616410783352918905115375773372367142670639420125859775559669436721919074110200077021649975765867437940625525437755776641171560255971594489577583757738587867695997425097842497516048541713444985811267611958043301468951107821911822286732645696002173162447946560971348289484232878147041041811801109739236946314163971335210526904203202593221671262238634428301829136211052340831615360061109477078832258862079586343618037677532411544006519400953176671277597626523055081724102455665175654065240037920224075519931896584338568453279055412110420197753229960032682699382467885560192899831513251298588539997705221502766070556221232041734247482843924598011206004004743480099788558366545075259489432981044343922028351140584268758048042215271416746192975406054210285509637779654911811894883824491611953598889308072719135787308246535808996068289667212486317215018593341669542420517340578318565406072791374473061280680390846772335316542898089101792038722402282440491947989190183571764068546646533610408356255725928732330526878843716743921715361859940440167135200110784824893932821244897588384955237149073035170281776775038238902097057521367022977454554345833147355915853085706040417791029946132049758611080640820800804017419249819668227378441311905962958332737453667561580472273735487830903752707856792603192342497791177635183944226219939440538826428134580719309484143854062346745060195732781428880726272991991987265601030274200334224660888875484989560524361058911846743390890800710836699757073223784149023596370028811742244965702672883297992437608156261403076258043930200590887846449803725259447953953702765762154877068041798027520655914137455850534396726591213186245008082450436673460422258874865090845425785389193555353368138029161993066624837158199087300294930784053614863550632235436465368540517597564460174810696830538749071666275102583407643362981580424612839811706523286665088662864682541047679411724478325280755074892286523326633404882117317048347426811644287883151460189217779088404276870468250298009054371992411704787265268130722100926243607643782668306753803806264081193703909407276669376046926473617577011898227226887117662658932164320352090024854384090914154320555169415151571336231573119987508662827664337831001425166226793849698362442069460181469563623259019867180277083324202692711948131563636307451572669450804584285215677191181996504181701708035185541881769126890800664052390383790162109626397881537580366370572684009843893433856079971781174527958640406182297017204199776363244632892437270863667983315731396184746973100402506542489683054857454193231482617290291850420304194398758843418499244570406303109106823043759745125428491237382816376284411309074660035879860623509297348434249052896669801663902090465905117600242019838131011854504092272412317268319967681274040399802924896773630902970789368327977436881198913768409104414801850583083334403914832745329891961035021685825446959322891133972163815002944169643761696139341708016754324759735688426167048655403864820518103147405407963812856203617458825820296675524208320724935117489084073061803039349273592287988786690653689266432521839817881303872914025156579570678393062303264759543675705568923500454142301506356231965670502251141218478884476098060272619698861424585594227001366424480383861532176689279845903058683866771768918429474207572133042839671317766437888109394935391332759941011639565633631123533887765481397430255211775503982101700471912955997519162620080634184095493517043522304144870698580248914355226700786030798780753862667438412219388654950917888965420325736541282690473291586245574535764471339619649839030560553389499206475219093894065673248190195168718617495637456089736816555786924740670387002541678768403680997441021200645974572571080703917516508278529151484018020404501827583271092276803834767566103964013599351940887695280885136057203016918481289684712190098830702157641374088724223490669884591854353750406793204178654481762159136400737837314832062086080469618604352390271711104420563166581992631657635138794650651703816467345032662430000295638354376273665897989881693380815566520810749303186275213947579964295150827182102489610584521979919118091850318970892176164202609070614837573986981893113146010821412011865629136035261303172148791462379273802377923093160006409055668885399616319972408382881897225535459985377989597038123716987514603511426797911643454054171216547104040430458237904930259579205790869163431219955817817009464274465945494574490387335339573252445154159390396337288600709495067463677490645065832788610878405084963361762458402844268790805301499051686411705326778680257308542841586117646742499378422196283868008048055578371883294666286135606289331968304526874517262395626897103161491923064310998831832921693910154054418773601517941078071274963581594651651616764916687942288541468954668431512510070711429597447133096585459223357685897068612237520342798515211795473420876550491519958547676682138226143047373201901341009130268011321049199683211557452480835352130103868518356645858771166562598908828273548190615771993937705711102682287340732736399664160672496845398218486861011001979892811658877905119179322689145005732315736640859892701967017958746408389678840510545521254132762130183491684781604903094359175353424265672639778865944575238972644031334055761798588108349787315035645353018993834570754657536677237327455436128010726672579421136958278216961603638262667224696376421912290700674412725189286027857668401245319733770479548013597118928102331062286305492327922230442678193837710273703883142640652666630187824726526565007303748413450844169701073881404801560562768473935727982161848116242433172200995800227100062757189189435311813587109535757841435679715139177166987342569747972527505500408899966302215177954625504364331875149842711273548187344873157550069869356516316823867690240546206691464619835724419251257546997099761053200974518728752533288077734484082582832691503199359973394500537654838757248814516798457494544057990696813636247829373829427438743666129659380464034894835515827723930806492779116032090936703705616702595396445899315878423795688077395555153762502906200533442902338573574449064444432531002603277942103090917464882857435796731905015784349113706089911978147428021484347241043813799666772056072856923585182357373009673286032063686721463352819718275478754849656624648944819768529546558894332581718774724231982662917821462245691991208234662732668135227228602538421927571495842011911378087717920087362726182998554995021356972004905007684716501432144220307191227473567997546510049411404625299261555309851624218475793149892823185000870235347433159230003984775154016656920297776609386846728060407389337097597103516492542438360481583898981940651862859692448472182758274047774109227850925790383279831273421928582648847402827004788506478570598515676517078640843375627790930771783693441612143955498818697333915944509883667724107474221325916411235653116041336170424334178395626081192506797706882952218199453367476336502096429051504864855061525001638962352961341385763597430929679098795333655182031889200224471814667649438087662879740913568727626025628205246707194114856615934778559862128448089537481251829698920196290774843203694323831342487743422566230891680497098976288240748044605066029382436526771134214788191369794606966710073157856376384008200469021258614961355610647072763766300346925068180872223004841937165639044581047274365108153420116378431777046894036457989648846353824521116213920585874071172165875936345646967784028040258469692542689050570863892644929452756608203889213427170320724316486170204653855873701598025616870857943338151866239119625911545626947765835710230943761716766237784427686243569295689504980908635846104945017024405257753964597868642007920307096663933566620488395764998220283203526441092359994622727008425857287965225362952226246884907008619665871891625691327670921872484609588806007981090865609080439677474275032928240291934095858662414544113278659151177885034320512001799920725362113057819544945868998623815331997568026742653193131870647466543213181441515471900196279679539715638504541665739826404950573234278527945176834272990410480346618667271478641644668943027017163078745992875662770961964838749353463746825537080792324281147342128952851378463294382335267435168641305719654064472873906053491719446492788423709083530603668996558231135308042466429240159256031729247988061846658178732676623590258941804324941487094740569828405997374971138781968220208741549324693656161725119993149126941704040719421211122580358435713066614262246146491100554729032315683819942171026086690600137349957503327886742319313361689539238024408798433946576770516824901397247921713121903252192111871283744429224603375647158100722723386038035880866953323928271295274487401483541087626579125781175870624527058846349707492101674038640900182753545355339848398034461602647974754421302585693881060930654971349275832043165420182704703384715433764706712297132753008496016840716688183612454495365514795179006878374695674739855371308341157185310477519916736987422816490384952055308649391592206080161743556657448047222209348577658393423685782082323760434947545713782604837872695876639101977253142384651618458725269101162279044277359796568496315284694795456831430989652897148464230019451769129740522067837198833464134918641033979487760748835211365209254005312486155284720243500583085145817703818078086498603737759801905822497011127570101004618615380455711702307216347439610994520851729417510057126969096362640564966966718551850548583538521311381834398040867219233425769386007365696138905195895363894282849661854242034193520937887096113686646854628731606368283321858698120498367299589401098664649083511851705061516645445808710471742586368844561317057356470090812572538242549771246895362223551516812049915430376082281407622948476459161378982595110216665323373479261167936185853330826109171623308420113123479236657453187282341399211355414084258416353405192364547548692345853296391422764044074618423306387060966155379432796940782808596308018168106136370972635811208679520907041897301324822548770648511468452581930210172483620756636761403788049523974719546007069032352368651231127973371923787380138244736725777001099323191833359769328563242463613735558293679499246834661818379658034626246173196231864273360260821613842756468991481611668172598032118879245436484524477169098046012993680899823795043396492858219110409264131697578756437361063310282529155340234763840061980540915030036477997986480070799145737980019267068876357838595481695553032099236546970135675548857633592319271049391262937137699853758955442774907163008853182187113375036244058144855010681359809055927927106558107386096700023735379739887614759860030354921973900398028497497533005468852554997696848713241280002845873342943280738749960243215591234000559171333695818964041628351671739423883041364303993361900615455304286081508800283393209433490056345244047063533742238949281549950960019691919918754835424784374498264924279794451843452911885321268427771279823275355382554074666606275393848847193266967299627007177760588338791604254658725142250104514711443385882673360305919107605064284730579205272625359213809030410087974607351121171948936998456545280130861165645055833834171248647884753245553987036888770668172044030748231071563249928156271232956827438120006537457156866828749504933306897744841743586090866278020877467921333871306307694611079415401590413051223966463155788692557460686882034884557040052315763441135610361149289247528637476974858016332186853450777033239242747012682501893010738979452799949332280381527006995314897429367554054383022270628173645497498503438969397760879390394833372762448757693096003808046978387222610902497322584098579626254095912206078734739306854831612326212720649849569183356723427479839359141849901991360858966554641886674751886504144157822908487387193206526943806355515779279832150609900411101880835140743329865772316539135290653416883361677674681322338689491845042205401792859120346747695739082005546126712947708572030805767250298885579566614529684985093666715988768777310884619296933906422356509934276270233215485374783899626175819858738499054006129779235291969553243725218517739896801735888136901792606271535298133791080113669399537160629159624007663308202964063064187933212280016200536425509013103153386443637845940962585535679729282809069764169119461658037378814458032072968410800477562784750474401557096703445447718867449505458168654407702459878470796848955641126392131658841014642700366998611051686464127688067411249809571290894921495600942337379941453206736083194060511417845392644021682129453094133628740537444151903842912180181092573881169988824179200089251411471322052356553599089550784094443138672279278359428424832309859955854421325832748323319785136779825879075777802139055101948761410632976458938168499721665523641444124950938102497465856781800320199531940082051754858906632421594564132557728675821843686064359748889406014202907362074950368549142128149047203109163108935625685690497406397930757065456912196319881907494340841860455203866654262906045338828639923714333229180524289242470836961793238396145206232185354660429531545011383655667358526801078953288021135894917046427699512690641093769555665284581054924846680085858086611162767796680454887362470517855198516924877812217852689156594781498044226763314381008388094939386204954595299785983792060344409650679061734159468340553354762629920734058113993196037759630551924626376536969033719213450396616584868571910570755311649606281579449642427616323379475054194900182567649377386114570970772651170959264810710503127557978464417884162222805677653487006203159056526938030210487283624485776981988003694695727562863023092908789322342697684079290863732944059004099877054531994814721330533608511735407452318676313591084465801254612823894353932967964399168938417543910258557123444471536099532068191517883067719760203115185700999661778432603551875225365788338022420442430872043961777766300674426863137391206487368928454591569874861329553521454287846148285656293818625061488694238433410032906501390518495707434752101954534042876789124649834247501654300248307820486111491838705808219180866752998988376696304672169654302317434957175988795374294980085524305522696787489483516531789908356253614170278160799531717567340702893287938185774303712484554326294882914725263855886515641694416123357844674008305676861072341666652099303935134391469576308036486535835124518802992309535197222175775839850729037632336087995348016390649137447560020207817536766109812544271358424562452830395094812183296672934868507910205801179116829607792133280446078007712768397882301804870409708092855934745073233923258159313543110419408115917857443986220648790601748667479011173377317458594432208274038663540085905383375484875901807322034652456654358351422467179676463470070118242721770859482599587497613650672643448631560181933092045770202216315401767189771274543962053638390896973447655336443623572719354823841253102800489181426473944925188903931927747954856278730930111589498087569144294637503510607717719106560887931582798598484872449719404811275360001582377864238515398052330727740183860869081941766802378634309547539475350245474547406321485760837054647053927689926677126650260449616774238407505004686387410670702629573174174735140068943843090978581286860674781042218925058070384020722364572763813701811453639558120520955982431005058167024656536462308039393143410470346524628182732068985383427573085192890642940712703955208959821258259669831510755361177861145199154501077811065566324184273663828638651841045240760455647928372132100875453268042321519634628994048699039665602282929578450176484903741954452955206791103445797266445181043161293682961848164385459712073953441840832430212323611756686093618105384215478929400934173802515247219724921136076523766168755876519069500419675876987749304543795155614758447194249628172481531033179574906731946127141315160474473806392529728668219848551646074308515744719037444701835607574198192260000996226189397575593704138995116673005113181224120083600247038399676813083435490588365137746644032418084232990718885968202131979763937937742601220179789329240752201952613303922783174684052141200873317105984480499382433594055374716331619876289671585703564840651852852804583014151799987974897810745027955751184105913360857156862296809129811732586131526197242399080767491664972660725238117204136220663487677679846330682051593262862340150383182953555331347636422691313122366943366255338544192738887875452598890473973277101477685893049204741103914622623786063078011139215425437276804389399752816961089338420719908778587270223645649084973708782074520043817427072442858348332790388637391061427461094613813965472110207421218168367414226567285165459583684348789240088604698481343859085112224175342585688893616824770389586198374859842081804230368460666129097832140521501324675659951943302050068192015606213742607405792561614551916290565221823151934875837137650485845348438862806375569136647720818024281073970207648242965812382854979910073795080139400627447048685054774956710143844572303749456673197698726594902444104822577435719031053298961803634511733129446468881081474702714209871213947284405568439155668675715292874400469067248430109910534351621680225134750034987545181976177831528305172950499620511238110073691214773968519298934282658229471027818472125764004603043659458428364243396663218764140757968318159887308121566570943697126936839056585096718345060210166050765742797582026359662029484815598117630764714344455907070631307744247431408005441185783240142280135329279846592603586503046656000635470630537679292476885666178746834978667480427387646801866723904822770883592217547650383880911847832240760341682913197436650512166919839497052441403149315628749620244705404261177258598623369586505850552964310500329474179532079128241155837464855870925864493967103869041681985677227834054039292594214085002947720402711982816142719846617993459032099213607088279052932536320127687012256109347483497115422940737340261000667727403105158774759784816799890422684057061505658910610147975926496030088894834789670891119924840042177357467599999729784948056450328484571270182257078229709837521210602662743594790436591053908199429209029342457624233098011443938736594019767984659093667818676710289718489377578199436752456596839364959082938009261825396429637377835957362875519808154449031407261162034637893249167221670885606766510493860011015470290944078072211578092784636333579745423600662140631294305465088109578901401450133127614845529444022778104150968557729771274339559122120352931536997784355031161719870438767783338061776544423259317937821407211418467239562065609017299430352022137870058057732614719406251149033752068288819583141460499614634160450355997775616045053844014000927396124919219403386803730862889669046547105110505923528224625936037809684176285164193081426106760935592594173764502123942209632259226040085055358121172587772720342426440676003420613841586686155212481907343581267546532276375953439800963576404364614672410130931507824917898785324633250045952375096540953262826650827928320647379335063869871390934891615612578756988049646447205278679865502767551608932298757696851135144945596555579623463030689177107189258905428790420944794872987643840984902247803351759846260275123031916706393329794283391422951892114458479366357638516383624700213856079805587929883543714992278131910221914239411684104498908060995724433184055891072739603942637208368374319805446858148930874343656831958818895823226871952668849438409977401908762119822578191325652816146685841795425512370434887861973281380834057614639507402086479119480239880458988659722658329686865672381479224166073658633741183086488309733306743719777753600572864231096477457270908055703282657411105809628836811297195715557185042871339297048126866405299692792089260832882133548054370511867753536603825805185528388253524900208352726387354689467968706493563770162600474620026726912143631178793120297327668108276092837615841282918121135668872726814318815444777354144101250716087675893797982482709376038502547457022220335110295717221449364282236252883991826122214802044299609189877282676709260589143261627135820639760862636233943269330269360415739371888991293221696395994282872220779500300384429449776107753797496325456454974943263347520696314948907983475644326550593721028060978702466434697949901337776895682207491463424873522869679436498159019438420263243564338261283444566723976292167511177102419153408731018488518992304974058385325804324115330290418240056030492461742043990727060840043877756703947124372788352589001785900267473678519757653827919418374483493098882534630658200109472798845579878221717046214282244589359332186287206176742945318778035505813977414095020851108684596217163137819281245864351383401080857209350159567626976841251700717793180982276834821787796505691019215911048547313998918364926824734307578704857042010876708488147979035264803968396044105484334342655646421766754322550866137497435834415740336595691306017166915210153945427595994415834829214058677201777278117455524438319710999567978192422035484374875469608077896957334427122778725074580900526713264595704953578774569874552082059468412124563677875812589677071861726792546471459517063267276542444763769428759170264459807718803719619210106302107936051574913008265983564004378973160416059532578070320218865957678175776758395367725734191452631458018347415278075119541469264291439903569447871101882221237088237249726793285061138179374633504264719270227325643229244303688304702291634921007918906000034618540128147219523366139904826695884820927137106999551582204653098836273698602994979478183475642498835533122496669696790077336355306340747509421353607251754613843271192421692568227493953286169419679546708058486037480741972063584849412059882439395497521153419876274280499843791852887441161794869469699718613205637902176842165694360139670289692016147777029620228056675927268316104970207425766060733256697893244855919462782961506831563254755815347629420362722420506496090346200124035941341611843786715738937315467190969212352636463446321657072330618974005669486089718950417852995519896011870064729830593769356901751668935852704286813675392583379087475037680564776198558445913785078289165160678776595615973841786992846247215422322385661319299740544039187681099016624445360171439996803408010803242509524588589717255408596606712982318295658401752907872797680804440963069061518739454304141985360502829256552347401295998220694938478926902205113229960427611670580750100384188233141547212507914772874843493733567445856495337498418294171155910882054537138798870455828908723954649708442407006118956910783336694231753914417563045845782753468400901015008279942203101156454962533688257521605628261449134749805096076204659261221491541745440734275424819340487774323583555683723833494832074214568833085985128514721192602611569513722059603789257808117509266796474934208387514124297743987376803379769268278020668312678900780259867050258425144529005189845494379299290789641885071098293638777057551465722758034959103926599987566345658404237993885044282515457946670658037450697547774928352523546079780788941632485852724208870040110673963250514348933745302198970004244552991177408097434212286694680106714385778938030684153384730273915939692617016481173641114415914471976354024989642699220344755319193124145310166982759434811244765281893609066115852262505217778190468017099288411757365728800902181439713899918262969439050981100298999316013199594605073780681019442161035649458031599956804556591273726874260638789228641080180808288182754417753253470117617595609014914614283541885103613323088199195295407943326054264305217007986957507478903932588484038163101717199974837290945516722518919325784150412652707042947370932634371238721941880423570527837483516849546432234672964372918414532929098395755587677020177699220155205750643898103159302014163542364738566742876293823866219408099481921191392033414608626681267496455461906162514335209085129847965824172799999305864821804122439969546971106679670492730962432357179824558646200055483740773087199893638747569331202145315437361893092012592382315654413584019452248695680421793664117788098711446653683155944504205662218570644963371997302854342487897225984439628769770797262428532771929653575897794351105854799216792087008929052848793428670458473704889578345097547721877813497645659493858032754285922188801155581848208741292877927280749395260467199489815708567160398713087611836090902107091952129560338585238120466775154377139667371378233328145517874706109978667834874470841903875617160028099782238038579402943581378795028199757913722630576641788747998432952794979655604308898944660313360716674569450231822725837726006356985401201777040351963732936388997618369052893670570400683406508572830538950102032599452468872297256837731842768865346860253406787175232325491582003293802515304792476932902767851784030099090538133198457464197726245712078117950130605638321909188568765372365268402256153220329765124230953593665615994749875134395542881296453890120506931859403031609231735434500523398332912380777566165849391820382272193819028498398837696802774883688731509458346218043291124858394312061119845133969157086947445030318372022638107841567645108095884028103466216867770532039995744498422885565335802162622106464784508113823860351341004969203021153830130064665519979886463597480686161717851191852780952843947979730010743327914225647154000638398459942671871396650956577716662938484207599912103618662955084132415423263947229697791185854758597121560980177925399530492182443218929197050809616894190183897504332046249428447854225341540347741779008959970858142341449044812220413695830981475225512888454980655006987853879626416256255840378471774026687427771922408635248023701727536553701080036759211688412689757976652517424901594452915975077546729893316119225917378377653580026316074854334691706163131298194515617035393551185275027508932301949462190217371798698550942020748229854570867510500114775789571682913826112759819351177297081939242145794566359089238076558749249301464579438609398087982990325001540360240168547214339427616645825542132798992045964496396606358137550154906345299618840525806424795052531665381015528785354631465078618232919622393405620858201106382410911210642682364429039269641916191643328098596551953205313599858751496280249114867923583032741654399267570806403691531333721691347538405532497926213811916052708059745451775101319512017523686083725265431774286009452440907891917570131371071974073258438109320216445730395351896275871461475920972634314852834334256876056326578649770212010969978944922866671540005079213778579898686026831082660437215301836529502908904202242851245644466711637233823482818582948974163898924578306638693691947314898612599245340951814022421861006432027844646908063077380629824848937048830793132039543839301013658142744426772135891904007982106239088702648165384069191602402817532984136672513271078372299265999112119496556170829333140047016394115310063238737834737858942244881245510480652903872824412178498907333035191026906962706871994761137640413590903090379335482685776938715250124899512385011439043607571879760886723834263634917932987416538782395368210475436097427313840184203402994837480055100342557305081773070136803646286018029315101823711530276558638364060920120804776085902647778590127220795376492886486636041099627872172117451003213727971392917141283056696250567167425106457927384392115690425854963720280835805657842036135159373792856169026500969581387432537255905214571289951148707354166403032717376710486236614872246818531589406186591311278410669371931591850672800562489587777804976338802653087406530538940914158798618208990994863127874614254786700123957289209452253444819742576922541718748771604218227305759757137337812485432133169426774228724258306787274664145327090402021360153965147055092972021316584153619977325734564464646623156438352939876692445698722246639143405833254079925855755383154551415893811152956509552879273838805231205554708894278790736859994441622483373733292467350645046715152308224094833344304132069147794716917613224312448019972069256768311242821310777228904857809322754225876176494773586429706258551604676687291955683479717041898557945826812533532477152663525764393933144200505140044035431497649201800192640005036211415108679471541998418233364163911216710284996149985903133025938988359251109714889251093703129801255123414633010391935300467552077391724880180062271384285896417125512285251783609232563583904154823955568848381980559186867085065303311282226758251005144978257004326610838627051711109001425696061940069090283882567784815025080997507033494261330250046970269335223547222154091230207001367918983607906128758887588273795649708673080459997594372273254792142115998294662007967225079769282313241394386467791895472926618050005557650744895232080595872148178905032397208611938400946286184823248285257289240417383726956358165783588108273584489916764867222642769311080316595338018161725512271960218875843093359043915169349363532358138690053603488674886686610794563059702596751584508417337121729518355829960580888547438085013456022903589828145489930579865034099455279966550045205952724396827804783924442576464189662176338503360623121157472213007861041159872601615979094110840871840426808931037911731867154458194074953878748127273668006956046161695673436161863980745633183555919190801335462556160493225201239347209513086616946895403932652914670231936985686151718206316704624343974681955113005701748140202616069239834201532223148516658834941348185871961838162345134842506542615639166858911824392877297608759289169537905512013023064044063939517657410858851366264510933575901852485711605871944733195818646168708357726602383903103432118603936176197834221786463619945872161625663773530909113481481999535837522755447091688883780904566085680799378851426165879506285406328868301393388220922344228303035616043944064691197177552510874502269091497355084285715353343998933215583997160966079535632383666617293483853895099268090331503257655374312091555865882524345688125831422316363931364202691448460285013018653511672152878566865216570076304361971115601285051456710915048169631165171089345617916401795460582466208264388969374964426743020836721960431481361271719706359554140650408010487225384044647135689998716004573329261001639091937745012776239509626206685650354071956179588310434996134015041163679176475294423822796909266818540737987647730656364718086719243180228378992455210769177319442640761650118948164488473113044294906382359154494006647810251824268393429998652161288744219065050980331505030285591992385965085342563988887723399939349436076007298873381081352620753105666140464505345586434899815319934609927953154620589097008533476766818289075330321335954115251528345652578617107019013537212299491497850027367920238527920258073165086689057620168243632745361798754297392807280006470955190980750404588333444099340017364315771493623949810167275293386307373103498277524675336824108638612140657438043984457287270593019612448209502121450489610364402976155117748257296217017557071771924954372953235647755054084947890960303079654461322485662878016819544778974364423660141064431899177225516866492076167795602376506201598167664979856281265017265347485244980640828950427688394601799681861684877149358052280502322050078068443120667767445720032686429554701044377995286642311131637130478659098768925311764376643741975863779320211440133335551450935896294328948890704645731344699115663959468508403241681263526661688835418016685808324534447011878424356654352004161989509957213389038092280586474402967424394510387899775581310478847292902330397871385839197908181423421467671159966615502730660613435980108324781393865746037436265245874425437815934373982272984322733969565599660296766374072125820449847199594850221782013061408058130754065552405193881257303108600973466262928304929884069105727113799660231286841430007961603777716990167235221932311493106865400225078135533995873686554839006666655640746708769224552353620853003602325964191873458090737476575765930034848786919747867583218210682459156748097747656161017818209866478126772879862144363918700684957491112809646753362416578354172081747818986659427457762118005921252518495880503931080061463015199951679545532849932897970607292217619533465251834512405907689760326852056591994114917612397242097211771917398037586841019847971783549799213210811385551948601732588781896804887990143874920680458993933416951487865790569861711332642348220832602019805247275427844918917796812755116639186922832712512658973402498006763339929925127398022362162654416022309380743617176913608343128826867294881886718707260159549739051554292498493963405581094929209564804161920891768670195497045726812692497418940058356993112681107497448875667493303574999406956800208610898451787588137923390634828784529041323187217691296523274580258289362213789241083350834697737428994180725804467679458318479142919076055263067794000240521810607433435545884273201477933501560186970867601159341824524982093716948295566729624505776840595918219723962942985007825318014527170341945257778691747298317691742945087321738691290472175219024586231874825118166804801867185218425263095090345435914926226810089869182614034158083476702340973125137859478650090767974776290748788662476847246544158529268144612821224755667831215990589647831766090633672122541039103354209881738881123976387632946268190008685809079723451987670565997093022029744899069501613384870542561554824619699288604027762374906436354847797148799442731119116572145488678270318887434874900589541127941285096781449846981645368829687061244295737742568313095102066598910099303843317394205096426906277287866442383004436865005414352573037588433424166899111332105942392429061980311875751655542310259798893049255203643989065114044255835886284054605972393352361346216124382181458935925538124795200811801853506304249904018191698215194919926885974876264442478714451044936922961398492265010316230769856324182580804963855016031474785373614225067530504679422682670891352670312861952001400334766488046104067439482191857626457340935228901158919050698977653594406924183699428612585122038187051467029871587429450410347851435755156574065204920960862745410068917366337999136940551445726215093130679547241430209009973444292719262881315271921944200966728934516337252545504687919243470725654945218641839608788114146319784842873117635683530541925561031080801980690005115724281174719711219545338339681541518838048821876288669111470374254452516480815193519052399536255315760364909462393215121403699912000553679947327050609274755225116662737502704503313863075235416744510179651223018467972251675338046052844325623079756317493102057816179293069427564712200969253500155189764133953724651284240873956449721200868003380142314375746450296315978183471385183766652347380414690462455779995266789980080544368690940258354013480879840777593681667027717055246417426797467997198645346579565570795843736397353189828405408374052906235181789457423140573198440355496543739220591139650110025126777831763997565676917469764074073534432717799911347027186903246062694864723619657245332627526016532003969726950127621813766947115598964726499731174699692823296666942310420750368546705457113503995675066821855691321432783598471877559342659103538738759386360388151153890166829891472472204486581504504758952169576929740219901848026320816023691208390982897564120228747136923169443397551492615418987143379959680272118276608067856237305672657254187823740886341670035676531905268485683154608756564042621772689924545610916546135548339863207212656781111377260835840508570185563409726666118728536463796179876677098090956383361265688376760739175543053977047905348872718679103502733615547120244909127281928012742019765052418222003229494884994451965644081199952838289555401920908635547010044713139147226081119828449883139718680715337455677517717071190218674193302003876773269880017198004931746322914366201174397451952013829046716605409597653207234892782462644812907431919420712330663668441575269044342580886517966542702979221040405556888575679221700156224052126270568441903693154878417054056023964816763660796743067825463213093270491363850514612830203313303925117359515560582664591770269039446744300531886486009679801215322701538571633665615800105923542397623776196077262550641425971872276684531515635878098518443050431195831626503762363146005588293509317303893952676012549577029891387039151592910287822044775463893732611899354510859507922250141590579882454007394809336744460141313126746571557768370594509478031389747383846829355657671894262028175042851963593965236845172854030071220958315406838287893372582788535276700395678171086446823199683361476024845513270114361963942185109322882336349855150082153024339573505484917331768170160833360596465727053187591808326160054492453275649655958556159038907569710900725370581928879429887735436007962994056196428477877039225740042976051990415100924066714008601093843290706395716406819358578841411997465593363070820388569160579244527589307502385313919714773775829360441806043552973341253818545230846564374561321020236725863847373713809567502339176345274381454588580725136855960717580085342084070978866152286988642660669517171835351422149809903418780340693049568640329419096621286838206191211120047950845438409217574521921411293708233418303446460058003228797917079153394559801934645134699694909458216457884716867386140715684089490161255170386872824190005704934110253363070411735277410548381035809647390288285519089252750543956203223203918026106230361916216652720598736141612844080345421514247961931256887492493339394867235090792621803685056119566452226614755596986791366484382470517405628598585727990869968770689986287656324972710102315211632310922900915117038786435238935635183403971837090519928569593120168610299035624530731535131877007390603411485296974849600405792602150275306589222744848487595481009498234926885848277019697364437530125590952478658420356911317345416082381498996820900892679930953575588344160234748360333215704890814850168500459569030450985636993299849551362183253453319629152331250530030420271722834917780687467501342902863398122115451170153024235166011651659939656746914251098865866236547850455537892574178985064469410919773307465510277962790607370478308442990415780737056080568414375788662320392120882272151071149081790891431288947434538093032963154027838797318590020784313685048898599879827127290854584822932051538149530818815642007981798944562636994488848059276908013341264172328591186794483156588584082204270264051123712792065603365330237862507112315666811913949567501133138914485246933253968088009147356603036066982627274163612553009966804748985720010600431359310536969157960533918759727535347869999177501601232432602099263208255683843459614032463750207315630160023939811439776077180359726278833203158188872312930632612958116885472414369314172730333514358037437894343089684377126401665586046522642471905120205831104238123701833890302943960011346590443479689964281080617320249556316725139680035423468923079432361761306670839156893085157292347743009690212647849809872359383459746829508881067932175869133392084895158236824320098385913124046500748204083635336005100128353469181395906315844645492363394531399021099071912903978287854276027911293757760436505086978640061027435343198532428853961527977730831787005082411727688643947465546815007880774195059241136041773627111320066494411709672758223970061225917721984850586631507275582837519530135568316904717839935313973928022242371030565531000978977566308075570952184871729790935821820018415673744384538452481318089241623161510890407898449590552436313075136951902190800468883795056776482757000962592613209390075589531181889988084196145115211773408432798087920424210028321813399750210912783697191691275461972966759971784538601951798195166244873839859500078132167872223458643303085721507835071145617336967094285540351233275015781438260930698057382905181108808631800442362366693762024875763240512579565099034872864769478556280924723984872989591488758358600284881200087945430945572905161529871370951390316407684779793414868792095358769059105519752084063223855760701723464697344196942268513049445463860913975302502856931638338872222337603037879065397004816135740888297310206950773221448193601114734842795387012760058690556610158960347784190034238143484011579679384914842310958952922686553728253060825971880377780302749342343304159015600027728775279849866623438519347342547571631430787487063172509017494786068327825087816326103946914910549799316340977310073346231336852420244735759346546757776389205969475802289611231858739100948937372647663211909618892956132810770923751045810256056581430748292341816100737429710658979499518250977787009690877971799516183052091334525983788741149168951123481387355785510060489692273971235583936926900483313183408750517725999431661779626462243498749885737362954837485826572385491639351006773262483577055356179954323871919918657795020421945801237756465360015168516245263332319713185954393477412036225520300903475882703210013713660568721368101833131185850382845031426448567853536840637567088279330418592368492715689469382701386748731213181375851573765700348429686536071156345308339104517379604859705659731588629738788461263894613933906346595436236500391939099799707310744474762797474172759477188269020147968229980849653726857092578093269772126939325036027159155429653449267978225674737501231965372822656160215631972190443589848161405196735948583469247150512642507641926309468166488127050046296444624247304741953898424005064645046616811485724648619782864699311283735257994306423850100673175058494957262454508576052516684147015566151636567862903348673488457104659776994366638941597853532206485507135015777856009799708522735674176011078642688982351761178408944341670524507005812612764617079241275301377318820569105904614847066266023167156318423087752828946629698440605350538225032741337625781940601836026306047529163926938440725682915875560266596250629253182200946245356586281339686294879386312031072591957337882534332416033423776185017863396684958025643609988475973528775895889015371054967249221835624308996803410437652003119466095997931901302148419582174677015720241830151352511228574709866896730409994169103467648961324764581792195542489566936529055568732642304520889785782182223804413610704197106503233501270987948422298862746496144008363521172450453968065177209235883156744432416095705257428750315945405538143391422384857966525787380784351226837928261937619030727444324821100249093310354792854236259923208937826866130782573900154101926949441295890519481218068557250129075659305124638805597859550823014776270313550353379146909039862958610506105806516729470188084600317680506785657513842627838490476362014322853529183869669865531581970639464969021702122425795779786138426686498424698284791391816275139363538966384133701633746121451267010334656198016466347628011345982881968248611407405927027843600695704677509670275333549385175989487724487006647048515787616564216953967801698362420352232562637793636727757823133367475431856605275983876273256607421341082877905518383022151767352791628657038300180073221493523558365776440276302135047540163025381956801683809577603874535776442315514721210437941292570498155808694081017200382424106789834912602919499563293344765195838879147007228763056575574942681914342821861626671372477492014079229083329804421007382999689161913147769223937198387080704833905585018423184174723543756801395222105867106763897038414502087988798156384573055371509511664734957778257840978116998044655073118776229527822106527607676503557156182242334704653159555004812425784220246395544214194293444461558910502014548270655007441482218127101386241202818551649807938883042505110869239160373824465551902611869659125231261209021819987401216842631229106792762666524397514847124095375466817413443900153493131881692663785128494327955273907354857772082603183902523776077047541431362762158121592947154940158037400980280640561460249386991671266833225342835306275942746306743555432256263445890784907668391620190184266949932392685261769929547993573957683738807473365881170235254532048080069089996284262277132954565259966228418634720786703288750253319854288512398077001399905515058074475939914537781540004151532894408457809991868943520863019841694101890040888657556041552049957137060912567964011896441651157755422562242021404003199047935373268555456325655514584609224429286577236014639421929450259853278800408880175737806072141833318679863710805209437180654464115257399734211521235367158855836468918796527650212556614339616069443288986234637829004352095408785771039011455592830354462742438433042464284398417115890467339691173113960361819761042749628877231880499488412336766659327449585024648572120983607114252728442600628001042669066972944064786227917595941008923529516135143927811388748416646264866176598131451574044641002786027166177436100905260956608586467113155298689036591106663083708308233253493334293593919171284473381314765896679688264239723117198649649795404975833382152158884103198681965326050382298145301913675284941881015645539274877611945868818679905295338225729119902281375723748518992051915164909773037271679331600541597052403197835861651029134437340713165137268845283701090634299250324955621311422402377770487589419856941012684344010783705175526889487739087973488333462166156993525025391781162718909694828419781672153686679171549294079577898129046341590249393183973123027176863779898750558967926942180083587651515212175063003019736388890835153899017248656293750565063940081577300788967974835706840302477838796613958221381958509404006496277424223879916245399289624558170932538017006373818611352090227515898004223281903271415512487092500860500607071415663664675308739964116789468198267707179303335980514952644589746081532030220198796073807424311459013315106525710211796147810166038999020082538968702942373502353001487441048276968825031322329914301188280514299723279117088186615195111271915191489788674833318303795102851080367329421594981023707129379503419434951500828420304338000358079220316213406189210745588397587636175088081968935607902806140602747804224420066243064852199038376221268369090629764891314361367888044393274093829157213342062945121927499428520758217340130778489343944118915189977948029825705621162864270463761646078238220957758166882006928577740776948618924278187571885109277992246602460576583567691190942634311084851046160915291900952655058814246061917611386216785597090576425737822893535162230687052788244409831850004543575927226620321641139063946322345803272216559179701399253029745481186773524688556224142186877657230748687776252352331967765810236511311589543374360117367681708740640622890700297891703186995354399775673780699819486815782353938151092562918175542928879432295264828091275398395296792148025300890866840559137095730907355320145647712824017934570279102139959610715593551267087353857400108351342792202216811830970382998259204287495229349220233428073951563282814743481530505313353316609514613006946452030984444795596264465177845645644501901769285799682901008873180820754504926776989991637978371129883790786679854007949516558077624280826043866248949820050003495196877066979106143440538140451612853289425513463177425893938972190063932904177879228741684290924981465042818977090132635501788530380734569668402082579797657627140235239069231564679250042499009033432824338758000632337495463431184789686358677140526342986762526237314483356021592320903581101636338841128146878455932631931875796392312507498745096555084993215273657844757460710028971123629493084250422534930981486579470712614826482468786832870632020626173090245611530046458224748854484823995806372373883736826702557424159278565425035510139194611796097452309364905338825678872896286277468874849202872921827217419983798092163724448536033849701384830280463866779638035156697085008875169452285536655073464409614982152007843201375160503282873319782944941385137717796248366091085679019903276929181871598353582130709693793577365926579975104230506513510752127536537900648312015743473404904180945564241167752974374725236740682982616249637207409030333202247021473961258761838075258924633059948261215964927905213784010786804818059767231861317725620104851298993964478425263339900921131717401076743851372198299172866423493371286402457474205369701693249749401953291474232051556881851683714988071643135652492438380161010281321343926962294653833317564639100495181997147013703920934549469045120182238385087944070889883667500449265202369155955418055455436140635223599192610308376875200970098002468028157893266694989608599962582437685395243722462312117937573295161568715208055798097300595831492058795902664601457024431955262751171917473462434350538022990452972565257463984791671385335893042773682529070275820141619451614828077920456406545255883561114342947853128411871231308774588817860013374421088691134643659165512848073231768029636481773663035003255619369118605895466398073885926511495585164146283451191877059946566932953387426102014964014910484330872415370036446833267938538406532236006623067213499720426017383934367431135095669531084578319833865123926990026692972943633303296934144348967788796802576748231583540101852638979339428935875983760865618895766064554515837493436724493417220818792363488230199117781740946485696271677071709581907049232961362007053342563207745049911421263654053220539632032660806389444007992665422702415062121438241577586068196919882481460256282101766605588591026199480429281777747224105158275427755389537690188459767174603164933391300090126322994014921907350809691741456711256654461317312222799150832231800798341831883892320605246141142900172172714135677072119738650341103483368324662319800685112394468032133606912904379955738926954174422351121707686820922131767669510994729850072413481304751880586862923643435778048966386652602184661022222881997199260032304202671647910250515723376624417339688653308798743597908718067707918546416255894073891930016261959878146441762832272689219287129328720105324705006202918776381688485103577287680400812339384363275375136912735428725578600840816859516591479380105462490089001278436430166984059139516857600186382665383185089791455602925869299463959554844875501984929798237710410477555939491646181316030983460369100666373789021040945445627896722732090097707401073171931028549676369792815188164324547927801505094350484885411043341159740510673766204830432321092703837427573837203453477889139884292124858328672018128054946212514505236671605825659746539076905392218594318432946082347709722128554030196423160918428344102746811110707486791392770094197989858314129447990727596100267372646091363789332120242998202105942616037368010068548217147473691231226334316765013067543455089605161239263869293170610995188964494391452414063611294603379377889928582177816620481357403119608586163917829707025779459114939356317388802158633437766969356288541223714428732522964577704931148678014337379861096459175582667513281720245595392221883332264178948051816182531038568218420960412891738759150222450699968950997766964854264759677257383710828283962191478646616734035756507996041485777977014570206749014172906956377465233709459076059516892677848069251668032216923279111621823708212400294210751008375024782428066090063073024461935373150285724115532789875090273400335436963168689335855940849431134461971556856678394569857391556235686432587292576508522110343352107501331546514459366714105381329150061814882299962898424772208978312300668862114210272102696385166975498168416745565956501407462379526880417535894700220021687767830955419534484460671726072232252825476073096424383691099369528466480051965745304503825806983501433627043317191508960666241544949091396827073783417807541895693732406191666674960176731390625573170593857697766415647430879267439153132406617142024013561551429639380570246611733482690766218500910586653135704972366294762910671111713072900372284311091878273515963105256114782745449325022433966386999492180070178146570216576374461134051337879830552348740822037169645423727440884250591487865048338788155216316143032795242263297331537880013584199515302928331165666046161579909639658587158424504467808917642606714513527038302246580313406581485961472571413530620817819545917848778061558215271436722944000479959552737259753685858233424832208425152148883577838904718529696306274471832563450434967076655703602081925096241963888921464553236677844651020927254070409077305242845777763463908458807114942101315073543051988915895086037789562349971215075913731013437404870037344345763258221302965584385249758478413627347604604631073759852356977030808773683398515419160032924209790842923864291285339457713079818395235806152528590686538183438942125765842293871738054777594882608589764602744379766328101042552878555968119056477950288484793204073596485816312293581370922002121414153604138154745434759514738739827254007721884821935131218666590418466075119673270050914915314748514650381792219440594410188938070574644101691833879627402709470350063533800927426129930672511556646961991170206066538289767454110703789988924286619272489671585722744077066747580437560920017136822617706691739958066779018007491357749686523155898923335110626263445088909224599843612813801099018139966557212100541144905765470328868758105806363468363094175377922945749318850027894670867634714688216569508178156902123260857417483723942879981902613878373803126333132042521572124387678720187910840614225284896647785036932205257705708402286690432118455538969687741173466076935237173436868834711117682645804398206307414130233396054314648335307120777954858065210031175631518397423917707348188686503877895091247696193232003534252906804294145064404013637486189491778967707747137174998603066297320749560340200975574965637627669641965375738664621162889583323605445148348561294894190927087989823545462776762322067234384203211055055347743552502501191863140218138242550829836642752642506764612862615655988709540953630420143828188594985171455882443393604554648785101517848115674663746868981757612399491412963381694258125911953669043904030107858285498009750873905544877773098165069441850004201201820753199104771913314644094142888873191380059389932922888593322032413765092933097447212078332818558977173892807759920540969153621047241499556438705838342677443094772001448615656729353099744597499153465822932437140410500782678694256901200432286183698073744420319561205673433675108783556687144850205679387181626860746449814014425700018444790681942382055035395596788115388388141010324354345526370601682470780889915990542745353680705207552279984234498483870096418908079262892250664283172577484651405194600206440484589540780554790515546600857462347188082354400695785431220469871437655132549255159319140058971881169841452992040010559434890970442684760911938891878093870874882045281232635483245598506434020744576302205311343024043769604725093697041752561183351236691265265374299095186638907144214452772267455774540544873261950400101281518817146610677596612933664779687169444080308320695084057931863673781103248589156785398208680585021415777813280765240488270973232214479030555196712715812461303978914758514069381087070432885451191664709900914741160969352405572630813275925844912866045536830761521280927651962491482426422996616147391762290849006995115808409440247369350114337799377061848131681301314620943982216429570711400870770312523223321872693541255102069935812000860495776535095740093496167279089497795066323239167309242902594200601674507179412044241873606706664744690172498588526955147067930844990739157403846031465679315895575805679264094967041671360526995179978959313257308668408788336346622416697686663404492033116474582151690701844904856654290801513513428340803235575556427351597043517015423846984130332649070889134984675765575308160808247806129911255780495642318105494934858918114397831270941253070511845524475836112962665356838383092912012442999882816273195081629396909896589569187025980552687780404265353595585309537945059119444542554565981511310931367518948498729374422207845896725874582373486715064813546954009350321809815483555786474399653302519789713479090157240863404891459616596043893556567213468748562148203643242802313737087083015816395884835864797864671424146314838905145041288599573874762424599179117637148899878058173122587136271111323351386432623670173184638398009458200681217642910375759559613804788882580682570866574568901573315190054039064146796364230589951488983248129306179852532574713933745797121374828085188864272452116581989719345755401773319553791386200305486344124325236058529134416081707514455895834950763030464961682647186196510184270907431902878131752749040354936883330397981674874895650272088055677066327195217007945426574209168288560885743873712258974619734198449640437131862986404816691620273384034098112122477981761890202956507814820226484762670266907834020682374027902649989553234451123618956003782094922168103657154934370361852007238951239652574438289125603946577314533163062289950852988840519945661863179488855328987978343581708106142493242279139026592013101302547128714193493036803997745902760508543817039129947021101086285285795707648251334484671980179723212800526399282693035907113514453150077906280189124128051170265198701883799570256785543237847172664128789729407094730776300740831016151293894009223403298061071641028530229337161668811606748053192361990235978630834883426359043638614799330204210313600838077244268527048486121671653185653356836812112734540534906013963668864630603990289486630344302612737435197884544344210610798360773821479143278026862711849728925224942439052211705144804245387460914437813580337092058423077530260871526121629636022738045035606335771296520341770914109867358357947430712915283292703632284544950003275374018955023272524443033837480248523603941833921659280462507637987616843119274579447848584914762505255473487651597664932882563430045840174610897400712545702476218912347407301072813846427493525908030380923949684337381035210075231040625683557221752985415209771174509788854102897914021850404299154159024252049234694058828952062127287171468380984838242514525576650720432925527962419681082366468644688286423712377250958704419407916567531172399588244922879294473245282406388354606593263575885638714785700868244669992340035429770989374052898210198086359933389361454202118710964411133597801788747401929468500374837169878244136199320917656309644263297098232699796118739773660493508239036188731429334494389857991747872631947189991881007759891732663408614830563687616499420090145154870311445434290904473734957684882992772994332687773089313295843595132093743990716646469020649478785264987888677146496556794153922090627219201416151996151610238982105310827420506359271058804962460372122158998818471383928643159455020652620570843550085929533001871374494436594884642392452147937282639439445004987746427494384521059787908166095569792546849036432267367104098832152948919711785274673375851998601508070885148264849495228954953816263355916699642265028416486708938518376212042487206183028339260764805834612037061329487506199389368725375918146342871235896760027556699095115272602476264705612560960151973454180541818554148390221409366100765153107145469366519958824794148349604561572946025142051109061675674943032257091716182870270778308166951015241889012531147982463608130850719978436537776270451831833712010294694518893928632537912715094420928683553705579506597161020730269842938780541765194283812180288560938136323182489446477339739228935818668568033982867559643119319001880079801553869084932693404934998189852756386128012038742481951802108527425438978423500672351721786980296674561485966704163856160355198598480695599251951670939972673273729471627493548972622533916895096830247227052461103969265756098688998555137538704889149404703025614903260413435537693270647754336877894596257703939163674345874700146345502730791137194280906513785157744026452078544093023543257914069986696019947650637277182068922165275875638400219358199074801789535270216285523317029425417857255166611443701973411419018950758044916111406244852422723185685859497592559878725244953844674902652632190763559618033563237072560766825428797442657631683605728390890977211841688545033823591679883763777599096095169262296789279347169579890358904104261559638717753750289487383183305485516649321228101554731819687695513256098591437487578182849914069702371120439349627837183206086871229395036708806020926626477225071950775235825974097454696806596573860224569360020347617155132908521528030930955683289611612029473058368206065174110388208824966406504624823425407450481111835330649916536576790438990232206548526624305389522542321390917030998205337514166443039370160005116426223951952746942211994272668708744017825810092368032869322327861239601279074475200242060393006569804342675634690347007324752617652524333516843119998307481021688246984668961656065640733923140277372038672817298358225999619976011426591751544824075078421348212796344170180859087260631757625573582644864173131105478503497631714392936052524715049988264447043096062678700425835239978470147926056258249150596151470944194800869360327550977635923315588408927549340441289032684165234747980909652741614313016853559892970165807668533925671878204722703401572506835223822188140878996262217934133230120984200276318101849930898789390972843751558676851490997396747713428799122082736616489469809494406235403793136560313039144070722740477981124340821671423108408215743407741003297469756002825619511882141586485029950198527097485952529430676947288657051383986761993717529814166703980397424719242590686116095848944954339742654326867197877482438686555842135330892605204570668955011546002964797619480380481251726301152795143420482906247358096714318418378415636120566646203136184145262983927232257320475360942542144484022463957793666517161508985923861382399813637363783018616174844316663619643417681970773155144763642417028646572525442748604138307445139223325411733894013693160221229484767908598864608089465128427527127974999005466310677504248419318000971239405100714536032039772537197987287789825043867212329894290810931399485205800113234960624782827062609187439692284523462851027763035530883656251236579553991867708664910572368107531727352570458513122979869875021970891835833976633485516633353141857472447324890107723850678438352646617009845342129719499749866656579939738939117878018451740696062690457103053149357736281156476017127919367729404071881989392677986201395747650309272910983999068944321892161398772289284579904716499134561847839500238488874811341833642798284802307275768874001621391201402308509714795185740456360594705499406096796705762612303193181489812721418576747283954116126542124628719091599985946203637203521799976607321295211746152849676893049752842145193029081595224991987286990621060527609185172455268267602955008805514765977753570724418335129088031460670777271144444668816481853547439003081418357405704969545917824982584811880328919521768982412564086830982894742970351221423765281834601796283405483329191434502841505257649084881778291942766676132508708672624137452642403379825532836736500958479733668957193081251902288588764442582455479465523766935900706128171823515597277424027942036390432017686626117265907147319464700397836345537948153759061687103123959326835643455115915448140224877684976924884912406836126602924114270553017880338947293780468070524611872576486415634985035251890607178178329786188998879543376061890491953849670632118944715982490335835796813974951468851589840875265082405653466536608100685623823709384412885149795493850109685042476253979949397538012427064504811032980026690770631540858373264906372875392476338280192994156210341119865874702420298959250298580365442609692493596167379861043078690079294511232872429092159972203734085664010506632586684794895670951401876394861529761586496023331902215751311502536475538633039049254771070867145141990355307164404973464602897045353183533767843693586737217951945449987312973273569917931895387779442511964865553523072589529045826499214564424643114227298554967495641729813071138816925144601955044312728015574164654797312913968556192254928284437509235832482166594090272621921165753920639726039168755003023714675041930532935218750987736717904593400242068481154924522997922076856430214965932295614822740553781376031299284247250436558857332746962598775286831221587433483047146817635962301729889421706169196003198160170002258292606566940278430942444943540047935894572976315491410478489309357410497814600925003725576558519346278811867271563000727188278474698742646041825070374185446870736844643865970637153833867847046959666398253996060153259001364913492956931495761223396200842095001225239187738635780681958717955609329097683233050648509513290826692847697117467142328018582070047068001208923849592544282543383290521465565551072119758058250360943425276885928309049953931227070531944582518006247032812303332922360563446066195313909607238775917277754010272684035768672037302152660926170883371334950251228516985712102206431719756835477715026923337368973247643425440436803348410977275463922765755773351498606493935663164141159000049319888328861281135535090891506640666219971448354268781184008400418307624662676777933523445714677814714795827207784869582866652278987228628801022673525674359224497522243603855976735462913571267521420631740556886190571321377340021400426536927918843256792103060544421463238875680707194669113000123739372124020927914084257904202843705168952856758533933441483252832911153116904731292835125244310316433024743645908633107434869283180205937024899789171759822556220888142558939195610300964126262052920786082959650083204411073363886408159910199940541766545888527754197387212392134983277778385137532928155951354598434304169226136751176592646709430324609282920551889063447402726365680381227510551348083322120561079314275360197313928932491936787014013852511896202880004930470572051027397436597453654640408604348805481312451328784329818857344283004903647665994102352684036551562163837545404037329286881262803831498638611405423085158143133933874582385295918608643844585686589828102459722644088024617058172843836938183762003758543762193271757573282174699352996404452005008780254953692570698573772383414538483815395972605104254846330888059619148061910441494986103881825618282371376629424336496418100437985272386909829925766951593847712314285672635308810108449892625156743018930801987092356607530471623768654927164513608351022585576450874426549022355802098407692074541434001781771646354649387487578679187623621535736419799681546336973929103309450041252563496313577230036452445578923357058994763367499437459549776559407238013786011365752679758162251168406595059649140264309328659722087950748574953949499622906150967872704209890508430213675688921739801889749539645922611976504539667459504707967268795678209302609817407855572353906749722179947688812760816361268776150281672993505948072205142162364292723115497603221064234333977391867265868283257711765385588786435362608556243857530858181146888733320298821255805099284504865988171911694017210411980732544958853365252421296426595994748822268349387218357298543929093200452273820623359491676938203418147231013264212698735467668460060283908062185895719704029939504613223474915886638898408174109352555553747038674998516299628840722626464798552083574372202659031375584259257519913524427577930353115267937553505208450824788629103158313479319778269288114728503359642543618286223882669415338162187402885512584249973731014021116848150156620694681833572704611502062089596129085375894110028960134401578074141792891594879396180802338308914093951778388505615821365260812009322818829363641217550758712701916259885011568146909522398792582115780600758812784151655926016720248003779487321821170235846582532928637252854457043397759010519228806437463071716764355578389624581515433663092512167899451522569748005227288946540650752072803959159145646065320778226360773390072734921583426347080734125397360607222295303459860788875425463297876147694918530725039681082180483444457762929668368557070763431357625149405971943599083371380387772468064902315526855194280244242978387105124821182405433933032920298140597062921700672782545547366750409593353597057451873928701857673117195958640021868327871029387234940394836956519527746690317548470330837674951378543593920766645360382238129951143058985972336516094658288508822279485872360178497967711506023452235483061340412663977092168143487762992917241506076148585101578184526240812895754039798178217777569443807510625926467582966749546577260688219890909955048099930437494889713936648722770325744591104079649956842862878487524717045713805395513616588759438288411832431314509811305492625220280529338882213469215023231370558832481871958042412209698288885721240669686836368818867438005699047927553204184622434636390057513470228816273866495073122344476925887378829336325219406391197591907242313681684704400025775569892775748845918177222049677324017258707076279933439043930593498646794467958719959739987477152074482061504454463848574469251151501379708664337850847083041735388837910069545149360006605806371204331994137431395638932334725369158405685134386698937824756031545514033214401222727452929880260245955594135899822479203841145633823813294359492436090846870860539343184991503500118096692244447452844811256946767927460787993049726998961856034049222692414709603882303726594521696796581163815463871199219115962819946970837605115859033160184127977272189601918890694162713911629661711587929584488391473177580596000518979592220573931637065248528692861364948772697861707111063588287537476857851671411187325973196509559644504408922583199952676445026462403963323685731769826637943151912490959508529311390182579025675287238093902542687732681166233140731388061580096743043093610047283683470884179197481329120225577399509822784455812761192587314532874118998785734881323477450314357363753581761910718430385175561748878749183587454452260325974236283264380658350815279232625852215373023639213649594494861241672578582531073534248517850473143011705325323842397297735664011022270216585269597681243364478280640721490287782657932025758307007434927984684120489259871281407479388266019804919516235846099712316482709495523095208552882528513633383649084423925779763862019993869936044926861753703520850611876811369930646983181524833671034274128631901094623293093803256212601449514602331517848195025758903564981700047649124792399862508032281285672405948496096036377477008359969027488753819473086430835497352780271314605264720350777182234918697013556485098171337114090520896809321194698180736700715807945834800400752998098760746953916578113636917599118150977637165554785859585580254751923838841307050736274230038980352799947932606233778206656024008367935649832350850649487843015892582994791285381530821480266734296889032378760624866667195129840900935953149997829178862984531619683807944197256549903887966680719716567676965003116649751839370201711148076155497113465375454131680124411570678985122484867974157927313201853071736541613571202333277430546700880126204912071516518054587286376812170003152398966622591263141643461569615884861309279562196796567158826371794926588812329288478104581351562945382033745377999529056264358078484403319397879843702753171671831499696858267697949814090864624566609117798208546116999817007735092285846099678880042322820267469185184068318350828395618877388616957586967012951622885716913063856782611453744157806560214223226769526553789009261920769289366415040457540264898323410878976679916726736591343785739744357488846005563485510126787287093730498095020226426620464896412811082021005584499617412134908956803274932519101438369938835477136804932773095165196922538034721758928412747931364013863906783741463421525021259145619134766210335680730870442412834608197520545550057496211162970566195625854679564700554220871862655328417633793833973337093382306649176793633752377798631810908601446566266495251809365350313021832721950263698465967839165789222242675839859210767937879308019625108333889812318835771579834418564018742742008345002903192271191990795728001475339992714904533124535727156369705312888501022322753225527869415390775402436381112984655439530343953862584350938885327616145650878427840711120152283854213563695810889814262883303982529155670460057635015488917984882113936656261633924766872613265487041947148404190503026623142941614732813384721105355897572630787662568165394435245448132931369784670342606431482905249951296341414864859820148429330410863010035724699537623189526628540253198715017809362802834873484986336540550406110731476824293224297165777452157889491315452237761917005911158190049380868275017173605628541838192078083921352277644637044763709718175968066965478677337378087733717731153909403366136351298736997255527808691077585160212554800195068527012803026804871080673294741016910365411766255855916387273807104009783112111924840712832201951266390364737963573595908706598359264370979871693504179645836622578175191911156876139766672989097752043395032221608475640794556737701047484334179927308660602330064956772389336702890199602029226240170149887061771858177144526205323433356173837484292306586385897549526532167202034509794148872322957715177330592020886789649410607236687104952049684314105583075092667614701962654159623034131329745168759398014509315996711003501836864632759353342291797170382638895881633327875878034397798613983190079753561755857152514941129141581073562603738367670680872594807698349065016242671900850758810412379644478637134609826749955137217512517128755054571649151427350847114053084731974431645294605203386681712968487687358515211088633547885531237287374266516557239027989972843455443984093068070873817591611098672312428058456001157223304235148807209098285774903481473332410887056836482276412400352950278862870302419585157855206045493608455340545366192427219601246622112322349703989065697096444167098324675938006990277049580977590597414543882677570168103135485933126040562573237994573567055182057187744541900392209757971239009690973439274945130249936748736822075790260335089436225843230478304178127842346677995500409649698772569270367720439677024497091877179935094375050637328375752124389000202068706867100894911225667724914381238912158246885302915979549737610080815646769078101633069675173731729516368382493332566424529467503343695045878823519530765727212192353370589207373265202421738382616544787587104462147939903551359702503481731473772973787213629767186952305406344636208012513928373809836165609102748971421604767711047745223651784996859142606222414773623336611303575814380647658204591673575111959329168249446399154999903964812785407458430588168357528127875997900492758809577439953920113016836694539795185204397781800773838198680395896419204208158334970662088623241222844821560880310413339858856633526580929595269093078231222281076735132709812642019275632456405172711660731504347267227798425436984426005145466688038065529366602270619762664986783339388974568767278432140460383257642912928562379899500336854243222997315360823547616548959942930489610826937584483879901589045638565633668978503860943029326497592290599049991511425813492409287533950460581725182526179745051127027707022536446158868881525024883403500489314823978852276789414172719695883437264293027347945436698788517547640803508414860939411166545037898282789964427499702619095724853812369926991716130204129589792921873539374443881564919457392906764398507986335551809124785889549882801919435159114829088439525990775596405289458723104669817111689362062974344774051442989365223669949688021932987248492691294470867740772884856431966424249908328127550526971305960662738077383987261868916790772106582298767053182479977963044622112463659430564013268477737923300316117245056763077874766740106053733325362214328475295181149803760840768583135663701174725823412938873003992512412619544482936437678273837670319123159227990947019537096300585639038742928952806884694070030875135701026408478407742215818875833444570233073665429980333084887310163088524366747168664971359701998425647195074172903161059993330160312894790743760352825378167060248895729760540729553148822925690069110718387496720026516650924909138871625057871484311946810620535156597631619256606711060160779888490063515529910704400541105861195419948709844777402165969260252119292984712511910791576564864665950695076172060990731756369283833202820523494915975972599165430751474525093389889690775998471785130676745357927995259889309977367963195545932463756821818857811737971891360448832574423491393411369081633959943580465872173936969358020256187599538118671416891861428982742790186196463698256403466421198439009906805294402179404915587744587138739647420031445032532081879495536757663821724064992561549847716203122247414341176446571126244338860776312064362788594238159399291657867264279575047470382585763240478913666966734227178013453912768379069590444683725412487134043151515395129162720279527309692320113176486904578125494848090862912111028148097375257447465622741928990264492464618955617021565360050288329473066712192570196436171432617340878139693336186959956346790664338119222324634734408836061487930966081479645262903821264197046148200390024548348589999212735800944021924956779511281976664795854231576436112656128578445876348660993429791629774410413249068264788605276540576750599382358053314811680196718798038841230697360246146785637060157545922985529521096275008749522829808692908553488708819183990187017620062681268123500362909944652170985707219748974252702666546013584339240648787739636909831342230624256162665400473208068808511565039942185385491549277245699807447987225038958685247804320517849412370791148262387107062874845350618591464256623340915144372371886845103928222246010265158312752501743199399847896583937153297093768735470475185687517657396288050256297751686517071749567481014232113563619790388454602379294656990991093171398471411431962769471306234360513654831602756355440660671930448593533439011748741272634910083880067467730337032153406136692531799121666984126981559357786179523088324156605987959138672857911255387874418149427847589285121129117403794518403158034176123261832371009473299900416792335076002894404684216921573705919856767099399380347115400842476230413595543071020213774965755139721632375851564665839914025791592672117317045659800222137471577332952125948007806947772319278310499486440725696142148105260683429749488838253608794852249036112990712549329841446450217513960651798372712562968459572104936506987511068010121667463984024232605264085689759706463689572882112909236630303869049711603190897412887010500246236602081466924210414380060785477307196748767699052356695754675985157687632948162537161565469640178221209267195418502403431034715115864337079724817383308485158181569491095638339053007762351881864324661898174847736887367664193148224721956330204869926995369061795021919437963533931978910223522804962811321218809506585332813296086438622443457873956804882367178548448006741761213767345206486353355526795329342235266450426200907333890335305728684640959452888361577184353822323606777464179049298908098824785017894906959300877110508998083454851773979064396611428028824497032107420490450773654183894468790766522886683020771074871632404085128599393207461080957974809157269743876539820432417110631092022186977845742937246234956135597338906481846771677775594335616431885480835150841024380141172349331016942140388380634736564109938156261700031453131997808220617639049584892077137774107782182682340398656448037833676636744833761709537822117949794968523958825418520270874083478847851720011157248465311386231220683295001669575919155428088543154662828125388511658499670120740356923455954229627993052740244573887876124801742374152399619023237995312923029783683264251671317443597189172753200422010055083085359552130982991059999537373675096978601444388171654527554733513430693087324283186205874040462147242615213233998429854190712360826221380152988411082075901720602166990727186222226520926853117989293736604219499990219165458013806088920804104079119911277575000987746260378620342197767757398796246753034596757276168347099342830640163658882162685370763959017690956798662772477205732846002972769641585320835831537054734201176176283306247048216483675534007415437257082724030524256952478464392043497999687735940681549195880146851295330276715576232700858625782294389485511238340096247075205723013770051221595271816826338106091735755903539918922417113238468408088855061294787943931082113251350420712039425509564298612679837441407792209634226919065135867401816530549984534307036041589534697369846262261187824840675813667976785994400580789144554630991708023225931774911714143297652124725891032948706140963454125035171683297961126739159575854154707490141450125317463453880943645665365171132781818799096182916270309839332863562097333495748717485645163023948266201976868842241057983132520753639837578195348675875433801834588633302364739140042132970118698224065795788166303268526659369887266231495423894403167185075596376522415767938933696756987190404086130287449168517759209569344338313458791313510649020745173711534605983036130848269909870748463055970204818192430180623020694102270353029025413541640738047817677157491574771316214022027674338137887244403540033679461518655853873716236483539063795812994387914935683437168309796226563191842775208074127468696550913310930061369962030807679794656047505624866502955078902585229013573276348312079742106072896569274270287774523886055573203673811251734698854236998055055364970254410552277426582007849263085139816670785704212598564064518108447634514711423922467415995034522055023668537940592648939867808469839761063473066325339099907640654851436942842799775302364973226014428035721550350364312388904646140953511912193394960759986088071027021314778070316919307677681639388365507141406081632091621594454059954492208709985451128191031800488934802498556893960661707519690681481890302400798328117327110260116230499202304342542482972778393645757145219541605347093658206915073887559710641087401969342835629652327348016808029249948149781581031621878908207008699213789595095420160131807781077275926709994078414229872601443147358085946696936913309924126283300258532700462635597604350724556870853485489763705550127980382264831817684253418272266183280841011327639031072285772958799618055672399347411424618042847769809810607552692947813076907297537885626341199271460421846855347163391909355496501028655454707304101972773143576293736349014772677725834409773735250677481744561606079089048727565369194027018691669023933596437877815266928514703312606043510080759777286087545130827875033161221080960366817276781241610211552691373337487680497433943418492676041993686361364555520757736696351849842158237221848132556410579365886035114098478564172015196555750734404700417205030946618622004216439642351544588633092224418860891530838734838581180172931474484714520504827958024570699368155479694874913951497178022317541792231703073901168130663414459835257626479167669093859551013443582296541364862434901782801395651413216070623634402870058701937425516204857661361755013561168093881064587409067084958620988614090412236355606252995685917451167378704592474735576081550229754167714573716008369625791362815810125736906800308156973580424403499993134798508823581197863135881136061845608501957782371972813893126095214191987139307686225479149269565780599582973397552714996485055485653671712377883575201907857956323620892915174453493147566968186526342676277560392486372050329506356550832531655559723921579596946271734056477742179883591396782766158040465190334642739646354467157037711861926538311870582784695572244845422993500366182614457471909085466469888907514364852461855735601528079356139093513502185237138388194644066297610553484861759060013620985213818485831579276782988845460436906918002772101076164925480280732645326064999023169048219234865352423541401669190471918237054782176195529209819373492426171098502165569120631967384443459010102479611452208244166978437136763149642602697918693970509230138026904042475828489328457858283518807850932174168158333315124543801208722655595698416952629553882404016333099800777010946466758439603236709222322262746849908854729539475362543182276895947228029570927120177553656075611109651717861944609730546401025905725525647507479443789620806146947589665432568319115361786085141695844660385119439086211604938272582523970396100340596404649896500773282564889679849828537708384291711189953609905605786035429176516188764939562522509593673539335019859798819922333836631280933131441656627633597970717329500478167917370635754511017287445227723513352021014511497214039806241452152897699967113973913218438474545069542728887416412141590950825359584397817298398004701160877957337671727830527017524300717914883047239459593251627938354592620092929901478301407319186604997978813471641860587665091557024348650533958203239858253556706540028209637723148099198942670371580872059026155596584121137445515995617521360874434748190514662649359141739854220569661543262302888453483171534300631544057540127630030548932325664491492962740891148201019766967287458656768920372473090275954643615718915461441992926909864014430022756022020581391665449162536797326522768644866028906688240536588526377459583601549175277703018444074584865107531045511298602608356039454330384968471250916991695966357205249639468035166001483166825180983902483225900639934066608974800216139055959759356841032561053424429426328742073695908609517232667332908561551043577090588050368372259596231608164788234130320731614545451408839250925389338511668845559774339143032364223710974998989462255972770710624817606747020531952995196424081563685321472610844870118166263748441661113704453869811831340793443186580268022904658879328876992273862027757788660339924811290644681474602176020099262741492679839503034360390902085148574387084994377937935195979759367495180958406268892933583687123549060143303485758097615382774650089861135478452301554295755798602243549766908828965168709443220400887049461242630531171817024386167123430113396778143318946680616256007539694474068817438206037733602236321082807522988013004349186081954095041276583600594187489267648611819614475742241884321549694188858322213498837244775449465208428409779925935453183364696040644456835706998122976781607097977584565297558591587045194666412275025775321469041339463265228650619448247763324616969278080374863065243424071255788830705468630384051528654166465248310985333862783394072663955100595511513307605072191767491035720398853127140481002256879941119606107427378624619588209160592897993682723273651809886026113261418432677143769557713650106419079452137186622710671345057728318977279324556671188433704994207428330840841375043389493362439231933416535913326903392259795393690532988579995937920640333577863376050549721994419580109849714153510908986904664640729978285068823230423324838941400674281420770200677122198537875984819907744528133929235536465533866380501030851991317246282828599018527763516439870482730876174193385123232946103548018917544505495902399164895442869207798064937278911124253576947866453778369227767604018652999695675346958179540531106210272913696090043989620725664906812391556773527988118919416469822444590280303853815536073504999593491499067379253037294785150928097013311388212826372696192489371420976005511403674310000483883124434207496274227338365325907308854297005921337222023328157844937117178233669365873343517368128080395133877841478230140419833085747976867583385056196981870581664631797275317283983061017239191113354934913356042385856872632111127212491955348837210048066770872832241772587721839593611030229872820441902682874264927726606292191115437767587207166488880799782926615634987346630700738891457351423200053990849681596468392982378730782648271928609814024904389464655538686636118997352827652038857427604730600998761841673150093932983218719045473354046260568102606222806398687597335733328860671077921098754803767523612174798619557924335285330232517517952180541444327466233948341308941202584491820014310798867619112934717379382640184866140872836419469485508586332544749352661594315872913942096528589963746762211126672756040350822562277956344222547033804283977161940619679393496977481822045729483405480174179983724300150230870651258166797372624773463007429147209096049510811927365477823428951203646741677651410050045545967542975014904862764902188187811237254632163944483623268076598278958272404233811813690117161883952812186449778340142079481751768918819350168279577215740975105554776001399934409672397147464488173953616112906638317555366006669255694225300918811672949489145478477536136885856418178744167321747125795718503361275495453189561976070355030549500450316606000765114077100011238536082657160479435125150801657755793315164624225513692708565172315700335604550261817519523771840908231180199269923737037446851271112968143878107286232686636839254740371788454703919554365661801294679866327603337518675603138515342990838137303836402878772762928330331710941241855702272913005719037423276114759193283689465852012252784704808641634529749905103882302666218411798601659372496967795492591311034809310441666275558130440618723864181687904648906203559692601998895287708506729143079686786706407141068910003393032326475010340120593457563934935213191367854448272150210009619975741983558476846781305673201638166525739903169066633701659916452592976160348964210837107856057459119728357313103294745067693984664100539548609178878477131850551623328114605486857344609869902144368025531016680275536999264843388448466795398849491280394669566555885336305007707803927152164625111686533970183555114264728727346186349038089756483228904646998265177845988049467875136355721906347594667735798268912269017773674264302295944395658969855279253406400301337144004311621238632386214354408245206204876300376834374573903799953894836349945943754539297171624463141886597423720884114575140761795060042292757674820736472423388424341269288730011738377251853325715550818901352140475134370009983286754663288121549915009257485966693395450499039473934153713537675799442157131233209006528111139983336774032527971831860399095454272841809633796172479980503771509355639576124287579060951199808393244082005649847000310121567967583464844261658400926100455866644793227426999161339541512331959510980270700460940597861955375236112043749758043325984616595333397975064795474754752819507084488090702402104789633733842443140598713097776697172943510465189397141666020193718620195622487274621720507598771328999174345519988281317728884015871088738592460006908283204541146612470915069661170633533138327434144101855021532261938999123862083944248150220029162406177778652062714632295062663429008578346636347751103528630673269772358389880568092268594858531881471422859521894348290532852526379934936552118276163674027939936136502468744415050127377997949775678361641874277916337973449240488709011109399037577403554031930520490607514374886531053302112806118643683639888205619596417008574710738443144854174532780686503774111212436714080341693094808271379093352201712331935546146748086492230921733056012554467558752103707940471615886136435192475149570639750026819792443395323734676523412678715799187034547957677358013332219039788434363349286176403699233573729138169738058068193763595441051890857240696029606879206997397420812544486557369284984062757243806643456012635752716510657523294701104529161420576991170766611252575485887187196928892526398106118010688592907507981802496694695901185544860106057685859177906251118703836110244917475082879926018026903742063026499537478637763769523665317316706905658878474010515855784943580676444442652640817060527470793136199719790150819394671084985379020185569285568749211318381800085450561837033261331902538960906893014351876962128274862558794919239970857406163630084515455618421380803590667778940207619221125127015302987248085728126732207187404035119937646691949513574929112951427519770046281994852151339007776544113241309730551409292534582943419837922489750134429831182372863173793767635543221101015709276552004226196484811226933350962161628590295957230957786999021597255996335346083808501633037548131905517225537608694973292635820016123582291641474217252762688755841079586197843442711643592494705400712467852511553722286084581073786329864306374187406987612707817677051230811593333616751339738495631499075036523819343591967413194246841959703923620375605481363242901304124663598262047353039252389819039439129910460601202211369451081146093600726515649323924965361227154693264985868304889852979021959646949381055226657503682216203212196896554959944487127581334908098604513699305458162566261520953166854612298811929391346859216160404595439570230296464177199440303669109477182491497055550543207466847353242555412108187647061044148451414127220221793478640503759752775320943145417794066423378626898090672491232591978953794856681418466893925463654894077423336129745927286765666701648269582042098291898203284577474864043770319966356750102909307099983744305715804386558110533282047204352231059400192982583264648002466877154688980942893965154401911047413710573322819261253993041267128746899464560481852575001252951726859095311931935108744013733295550567071750811197444027101559653900749709133585349481256149522602255318459507989663333110825854394296883885400040174192132371592178145046679773018804555167146886860789378969281507707713096590261801228716952652996416700442183421996057441706334372650040867748282368741796917047869593729182353287707307530398820496501079691452864006689752796865990264053430362940384009200192949989640504874006330394807837929228622072527467750684467653047450172786091079770794442009543745029105789514327439806162282660994710011068024041679385374117931495630153320990047725342904057942961258417020733370747853632796674076467965847404503286171137903188540811452113581106508374425887845027375865462342370575589164582920889333485433199638265826878112450627447251647086817111702636260546834263385677373222725602725427428650668265553451376679015035349831315906567299277240954786149702695248870655489928482045798067280812362769558423815633435288400040027501590714815723207376330268359567964408551440821401888252745682778446607100766871330454915759285968270064721915817151427472149102073024007170134792724934713108044100255000501308046653564580187623329395539389619296596946717364623626146839289965121802609923641121318719929809450865374597567676699472758025493234464663754571298337786252710821020236857618268556310944028721125204442681841259422244477555418870465850979767134631746972311459538411275770288216932068444545502649182565732155939829209753419333488841270751152282898802646218439754890693435509440025421808447535397432927754277061926099351189324303799644431514511904661392044825729820169148098656707658809064293044183676293684294992286145561484733739765532949952290770226464302892439206529346209654639594556549269788062003198222057203775279767025954047948087731924113937360276977368992644672634307366227626636663236254537718907333334344396201763140046108713296347749589836140159000680155773242579731694829839387173567066364420953981466790708175909913033311749520075949911249826855566125828335236546330908817895241298906723779230970855863252534977126584426270391133483046532228434626016484608524869176844109780252297994902381530013312251957958464651707434140812594357639505128373626549823363485656730513942049427626045898852246526357416293384968498299225652676334438799533633190977645849560809104106530621911232637307846703494592302221928063999126173837284801018912756023895879918024770106627852066362708476450925669658250808983718911813615330535322577432368496567486855407040184803301881533855503555359517605856520610055021853714644171674903419134585129725138371999990067135938693740773969542770722475066478339408855702382473242603884563535418241902658494162077482520924985913584917737164547037411712486728587906580060366478439723703707164343965171635136624363768920009176372482417367311313096706890984962841312337406420016841242497028211561938245133559285301112346789155299367809890847426523152082818677491963442001863725899571155206242084852942990784001950290723546583935565106026414875120644340104015074222724866264801072455155638441250604652129187470527807274101208203606503319172516387870002304305104381427704698076426581827176077532113010681158611473674729919427915404689467239759011485923044529462121384970655850500988580799505149081066381278228985463445011762603770383375552700230769855308879529405242863920789771506366616983373234608160658852437553829994483788396355850882479153931926666837152779002611765954964975923551643099744291128745985256655940990195221606824576161840638781258820860745032712186793566276786294488831463173995782473780043521417523721765696338675861333260203895654346740893432757088160502967017538401316941463026912728839505361108894682613264176136974230303642764995036791392284902842718377286304004190611252973847011768106585412031515643357584870146166442856888231701436756609948806339846469220116496797002656842732935227963442368844733403361607986584431965195094870749357568782728380517983431549391089080155885061276944060603547700471434964818567033708771510377642646391367275480859420557447766621910496630244562792058537877871912208261913554830847652378226852162645992929204070373220591066126559479245620835459820604191325323015390099030434674333606719957532786520017286512376799941041659639477587043058072837784975615381560157972519187900586353900772898858020453930524484727705238900286146562488685625978843102959781215516934374605073082094940421270195848800376269363250362594574793491853777753890478128512427495153291559034837625323090676472037802013402112907933185018343225523991355659623643121598568563582960554442456736171717029575126594318530634725254459268633600215206094015627489109263868526930993149962515737307139529937490245205520179080099593206991623027231045550267215565093933897636567644277782834940103873240862079626614200374534561866697950492238942567503063666962119279964112574811845515720635767820327513184562684365875846098310248021416293930929266672231841890237785189384244550173108101434478159620234980288857368381008315114463565030926533048112848501811727406150055435716842029920794011469293729467835612296960378122331167118708724285723393428530632663232340259106746777624561328992671397604521678569272169243125564351022145837425435812300259408454172375441331107742628854541930053620253671187059799000499828761946684768325564463207355689539488125055693208641625800223266984993032391117845293519128963512777014334484308881186725276726555580420645259723627343738416553492211828197960773148667057678221181111959680949407649004857674073743389406078326765515232465366414002314125624524131411170390479298176718817662943836372479297214164444046293129792847185466168127813485938644075143760366725447841237454533651069288657388393051074526327628991761010275679574354622357449326504126041076199684925880067434671077712595510102122832828614677895583598447170649727191078357395004791492584209197015109593159897427716341924937758286113796918960292286952569149703255479558094594850161786891417385517198017189999327903827129603440179243762668054880165540268498661318073861294936404677614347535705078855776339981404857559755261088316797427774294811522503575546876936385931966961504667626658157195569813590968622391023071767684958266850852048047094831982661293020047217331487142030439974011995424600401150658858875693081397651966568483406987714387052742835697076566482968788168700388915597629417625768541698752200841185301355863697503827034506497641644673649825600908344764132690951057725307663094178644698282795972390457566491507052385900780833632865935655173218186001834886843781593561126726688931986966050461395816015232672477941183615822198051363000519066642044889400306755157934360570886825449598352219500720571191874785859171016021781766534674795922712955672990181174628201165449605504252257771219465251465308364382083595326368378691528281996577277834548884465313767062081257910423628185260336694879014389252974718490761776410873096428526721519094569144384894258030914810616937672029167560882363929414991022003984719074249395331062756276686992610500527933922402618643338999054250154737727099795251958282744370196221831983203540188271388298993739165357271889347530671896990753454672634984546446136772612815898909652048236425316618623297093765545585310057229333902556526327313813175274499664311108562180079908474536886418314819253443374910801327345005454383342373198706168510949740324818713685196359266876733461940638253165649960457506554017154745918044778339000151356651735985610225142437462765281512183118359422033872859751505125685020604871351189635006705577475714904291993037422848991627477512491357836097479613113475783310506398836350398536928088815368431890024468117636317991237652976138169271291234733700914155120289341282763521474248481762288696655150719776254907684803112688012231615781887870507416732081449653997448915969803252282647949755919192069139098715899479180042243764059450087396288566811408277961275874223674852333516869134033033848117838195197248160788075684642286440923261918763113983299138772063201700699811484049803635637163483933571367897927814950968730720996641661060677982563944927345013739291385640647916968752642158501187889417672088501688746968322238528986000063485310739490645049543179480846510889369742781215945156766519612010488214731076590559424123601273441021918443192805924030282141565613108586245051975986028410122861486162598153361441608730163557501388526903566598974004881833768049834660665356795480718972532604522810894740693966965404524133175967679587678157454366406550685484026957151470321144397790536962289417286528155489761447888382333090277465053615572284820124448336986753082662053968185997469601538016786511106331773173548146858887563627428031504734255725402365706966148077828966203604157226421298635840073868588342666915245611265748240905254189062909368307656455406184877710849520138949487457732327330748073669870495678694227630465060978216814656986454242989073315866041013587576857877499435540918407480344257637611974572371899759629243826337392021500373047771516429125661692806554976065805953642954044659738160271755770126949008457972411090215425693879040583598291247233382487755558490242213676599302032288538715031705091386391676430471500858868656576812185804133885925574125232354057404056004450033893073588904295127231461705134093656506144257614881241648722199792749581427941132350689941182091666628756142187858076947080502872986412615859634376661218218010994704174395565617334937768766675373345111732347952489785202119955758347114794467548966719209046496568430173999604994083511825672778631885268987871154775782513813790290266262202039452814521549459381260892871712373049784736090634221886520446251157957288919963392448002914938160716944225000185446889842246527144103233309374669002533835664387627319862097652686637961578371670712307126833923279901088315368075115695443911264646124082237330267123679027037367529492554157706808981204876706654588804216157516705617871222683120099103321477946378848352984038104390337778949204693943726599439830129857944003783250014307797260252934525458159113734281046936354974042053537278565093838881523002273309440216887101588771099861361356312136615366649189198473428979087230078038251643379225504000894771146487390840121038588490118819470623493611635503337434117003568789247098732598726206857041432788838948311709627600797125016398808695128331160419506802546543938550569346212757396769864613957882146976087887447733828179481283413256451602401886574655000822412708201333940638583008083781210049134811954275992237564538787232511335416500576242239645056544674152791124377280791538232930483903909039550182369092302445709595672217981558338208574036233829450002836475581507945272535803750718912276080691643320092256477333035096528268363018306320767137280947718476030886625500566410224010246229040283272914844867542335886197327400029135147313996549557347128137566238206643910044304526131546070342200346114290340141969357334466030840582924012334368931085041676577417502498917497073964842282754405437499172005144562892707294045436615946802773291270929009219870156605006160628425464459171565012744371417427804614808310720332748215409160682763083152394279273746875158804256830591520317984918225583854284662763798890751492780591714307345115326345601980615432452064586411154603340087927474579331369544329764414404953136966567568083127626365673145981791595164422716050147873496578357341517020364547483690375607187545194688191193801496440620253222499188860532713045747158272848724504971857568782646643820000805295572331522453688650616760305253875255916025519522356995634999138553321395227662036243089660002699202827267199304741312729998134212168673666318500489473161160377442903870068670237994970462753970246839709128140972960884622084305866854349912808012688551869465955064528735093882350826880515303373656078993347950274955277693584677744871922829026114420121074041955343724150186531766124360757141100682394110876112780848049682147919518946188812983769161057875522425674290483521375622197559304011764037318986018740299283186177708380358781211410708859616290680647925054017929111978325926793397112413349547721654955947568122268357514541986557051126003714712959451374306466316462804931884948276739029726177974999595250784474560506844796426151696391127990062680191255456729477914500638866429221498379866945986696093226243633231864092522788331536414734171131966178520983057156948298824392897122186548647551616489615431794264954915346842776098868158578986915592840212112280373822044397437481109349101325969867249612994780491545900071578013653408489311456845048482459091098913388864978677603045549569979141128298588555164567984954865921663805010203562436015164285201532325780921083191911129615970808603721760856058728314617730107382321419071913518206544156172343198850571954290714968689322715214747197167788990678635188995527026636322469622053705701940471902436099897824787085119685636568846512068093698948868565509898215343819826694310411677421889104257703658294588984135623768219234869823479512415428792232924001897313962553223077866159423617041650046257006701412838033292450083402682556397953002050851317492221414235592726326620705978031729162888033426481824441622740515992494501208549226591174199674187174411382319887269368430671025250655599678125881670640639160743912871495274247146342884184595083670771203031017713047544389558939129099749481312113328170271947907764606164454937091975568871591821137783841523717868736209705128487116010225406934783209573471737971568065372362701207252905575301471434220704779690318918803589841285198554209865044368151046881553104696230177161737026550599567880098920048040589296257707836611889897375157774428110813495136274022339545561389437644523127101791257218317004901639546796187165341297402123703412320083481164385626782409913040054689349648703935208811500378071512559129743168967189448399294470955720797691921899506897116149774816414068183590050116200037222776577336344288441737468653672600011300570148721692370817788923196304576438273193807548090850167842310920844189538972331108269120553941752911614039560074726731413060325602792751335349322073342136255526246310472369734590122256461269802625926906669718537302058231129277484713376244664627014225742207765040204324183475571319746982758998776278427565397978082720878061975148393641745188751665389099701147613694670246673410236713747233851604105808205473274740285551098548095306298249330105094529168854078350015493127740427089143442382788798017042723721053963143622025064335238081529038518670589120162831504992642447259493045033810822115997716368943842002553555286977480793246240152352816217059480661363614608992155041732439977463139269239649051675573255308158423671850782015867816627194784122117713274331847359658939740839190898934841317764011953863271174225983276123330222950306371928844184062293077137352720947066794228140679520419508753116372494270113776271209611296853268208581892119780627118141034403472208399050261835792922082927946831068928981055659208048668921309143400258700582301269663164956600222443526706497735529154372489436892620726671812873784999494194421449087630612693387877978310475307873592448414099031922553305038085227626775008515677947259149320184189557243049271717123502160198916031842498664167419741701429541750266345047360724942198756965011324447971118607990191784438448737541719775360195229470136681996622698380460724472521210497044711322750983383716250007836640202736739214703821375903935382858178508130846652403278050932870482485312414159625659956345260819604605777381322882286731368485359517397703343514417907690601251791597515603948633442178467200997029508183495770869042796569017223790530056032170261476230277123413672999429393667743002639107042643707853236929915876257683265469051394696048252430895800501742022167877313444591011298179732822034731779579614271269838387125824096064482348750373562287225485785076909459792537378584958055709982800916439466102604446834010804696536249799731396026282700082146146778561948442573757497786406298751120257266058001574515132588483375609638647327206679007783319435058990317666235372916249703143956683609304476649483213686957663649291061441752664179595286017791515731968476690617049025127296259891445529169104546460315937861423102950394906943206338221877748394420560411235580605218779811644617363339117649854031040411126963229629574862392120425374902319082986962677238754980470410256944226283549851524373983242405243493036056663936389344396432784882160167425034231510139802824200503220381424410797430346596361760665275878260750598682048724994985860250991354474755695750148259042445361970352083809492453340765140060544015955634349129957438971802386573550236272075818021568017892778001780458771447183016102807468687724212072290339252724788990315612203519944274178709489181548184554478380836079348376465915060474457768153529700310838214455879811664671292362143700863250809207666101540892109364428628424060812392796129540152696362896727712870008873835434534935450464469303101931633349491439445147629296922278628171224228027516394220141506030544631092504151693545663075046417571711523329593649953687545546331189733073946957453641184489082048318620665260948829373829806493812590034479273913522238075550503554708298274002874397779909890722949754239088142723592860088169585048998449454243742969647941203614318242413370577849020414344677140834968146093160755332058793906534186884703534999983066105091654929936569674568013677822188658504772968158049259095777223643989215718099978621266505577760202940749343764766569589829904887150387699254751074348115017493908396509580658424155482855685605728261578173910663804278138182428810844197458885499626709812782534337088292775917451688545530531236735095780741184665082547617795583161110011147570142971343527930953908457668746190342056388150866157276938296136874059148300179129906801184020401010438872311718549123403519815116653844251002484436373058019914809073225151589450989029530310002696077769324342526832593756718957002166842757397594490350936608441038787380938407359535121506150582351491778649492106259789648463684223025792850646725305064128448937276039965476218174502560536523004281468817714297857210037898447183181826978316303813958110737886649685776070062061623419014877275620028580455515496969068428691853363230245752357373305964681821901559295254708037870287017684898338250293831039664330700480645661306800615278019079052354947980916062762128303669470795009762620502607013205408229287772620378837738507117596622553638371262178079655125171039305051830859687237995005407040904826036674609576124674689604296946651034657956172064098820768502578471405370130509876813077053534648348230135739520548756710364201055588160226385964213547339102368609047963191266583911804694875055566362128549677480943318443754501007429574426240380443902605939735270090172946917211756209080409680533491710064992104976029750476980614296791187841195087082445825574425276932367323187756966432355657725160680458810269130484284010664965235005302192379052300026089184080020706548313560423653471121093967463487452214522401266942129860185750995601464233863933716552245597992810343668731563078851269229489766947023285087461094467818010295287499420454246141075917610284291017208741054266380801044994977170885686524883505840799782879292359318321715436263378965582384815330425388085780299329714100843058590608107005426665070884851000228347368079217271250956545662062053248892786064090618927673518467419790262535739789886816169126878432686917194949415714822608112053924953908714492054004821181043894644317838208607690705917679266688075677781640751008839669782481857589236482390708482064663303219640016599039024300560881013122663892478801263355593199907606696311647300194471786298683681030483733762148379563111960315257654385203831482065196240005665728236876241723368484491154809358873388460549373050048950790444316575652157188143956666682114648822537594827058586512005316113574015066750019906392054133638651251768203948725336135209060482079520596260396994816049257359009956977378612824217447487290224597386789237268328494407643029700073133694195434887390566205064400056741053538024767605891373484123227115092717689207001124795589348246083163478799109454630583825889908217763478221062591692692850690938433493258187302553690362697611031333726163568139307605318842559066720184065367271622993744190575609314292099132605003036596984461964733876704931209266730721674015423538661905691356401452325390851197224970413313882549121584930239728093838170619696147827117771461866554199640505936884426189613655731987192054683213782816577798490313639662329292509254168698740842450351865565806983689386032770245522631121439996343916500251901036397193287597979996880093439463433104447947174449290058915094790084200628984597917435155609849144587420760245213319396939092754084231664973614343251612688613648190234514781679573112809980716357976608569836074562292420370585712884098682233135341734670849453826189184579424625501878267748591864559432229469396591352364523171220867799396040942379594555579615723070278608899077079695356693960240759357812069588374039563034543104748086096023599103630342360720836377172317831518828873042894281915954053828495355018385494819243524115905404686280477356305016970024766020467556629524890465602509986773996974475456372901593781792298487662273249989293687524899374470777626185724375680071824633419850499174595718433935615850648036130927388269057037155826141166695210202342501326301621443100595165769183088310672980093559480377383519332332810737881395870206458638694656902760492992797207077361354259459342523070054669019211266092618918930399646874730444783347270171705164134498070536986408229500581993236611069372551437705897091399200362118995233627212667691135639112934513368288499962619662361659547816750593629562818103962364591012518833766759143680550132734585649594366667913920012041089921488250789799504100701234861640656127448906634569711980062617028623117279280769728441948177374755989427980783275827961946356625193108217047538798364811976001389702189706241461379618432762924598561043113211809057453093521679672590695322032742939504532732838654809285689056951661474162624853691462183355943179893306951656271810810760107957496767235003324320961600737304977235337724712962276802771175744562013680933462453584310053780966204745061994657472136962721973337477962468752681247352052674165304546091103479467066016034638242952604165876656694858130490281798203935993872580043013357280527785268397143577100163223051181617044854946635272674665434247119340372765128519848919828215527939258192112114695176047324054275123160868338467077862149503716674184270402382580859374981207863305432134436762431112319827619310320451549749524122878667911388141987463014075010259274313994747078373001653260762423844294462320377178931893509336814152168314933567587581650966434217574322279613220688940390435805343602620182324781805824695406021111125531504860488432499013847962668866282761182612444666208949502545602773354683306824343142719583977649815325057478708349243433825687234007658262236677824269698982077834965408787409725143754405113603381057164877036506572001597771243473933971774143771145994284122160794269800411361134358611941149446360953819459287232161143228183116978993148774838113780076894442446165407392610003153994524710660206541819124125923573140138811730959581474199764237713597960585694728080479707991463920038770522991579527067129148454397996765988948090586104521098240229355654754569583117672829482298794505734307581922642698304704864889558138634596700728175659087710140236424119592978249361838421868695405059336709423637548161633047232668956715679977803595915878365883885586488842404806258773370964875252456281841749134130286808351046006249096757319350090681326420552094123113245420444078113335869322999391199106034992786211602177342040452739895617375206103633622195012960314255583056023951605295353603713285831945059787743350909659509869834250446438639359404871862661877291868348380433558552626103346830185901053125753804791066782442187969937458165055721817602507846547358046552912302992523312167380971943673382053315280331666193589681603727446210404290675803837658454119286646402376357845325629930190880184337835802338069508676225932717861087156206503561159518740440763814753487241786900227588084982350646083151134789073446934230413719631208696069083073402260643742764237382361050895069335882837707189267975850587829841279803282579322797210516824303397250256251459230638620088309483159046775890358795210709944638253198038979642317074873592057354091211910507771101817975139280975939121411931959365749938554600228524164385264922359512582049598786091182335223325480582671666157295317995272806883894988504825425134542120443724309649126972703272875038786403704457879718514659730511355412497406489677857809884608816008553849910226681759904504074962525740767923313552463569656371958725756045553142132058530972984103122875122783667047837459734591845340600901762735369828691817929958446559327193671485669804739000587572328310462170828488414660903836259335947715671739961241812987861244586296814747317340581394318892567008294712989291825803563909782365724284985613829354365242080867865885358387180025107229130986508062737438541814922522077132566343594185399283416654580937333615914789113291281218778744054364597396123873008437850413715422066910351332671669321797102029365344258866008832612829860828665780253939692624807578358185096144372207282225580692903336044868714199521522310260252813125727608607960058232409602797273252784111194425810152569207812571698686453403960715196706154856490104480534285950976085345352928628892554492617612419635806287030026301338598266403093893472775472209304960139954976818508328600559510604433355474046833955675899280875676124020013632308586612469378356398310790991134738646022392947533339098742769402672754584535190136488433152329066659838862237396720413408716983976385547808790062321002099101667543701168353453729636520860789038806077947128630074921160939050908774711243726669423103040900650249462579884452253305116589084921767677413852388736693518070723535889496317499107405585403795865049298992231622531276104263805907423586094232339236697456779277863803237387483507344567107174537029133580607797883995579474926123174011759876889644197085210441667351388612415629514568385480480187334825101498886013307206468898371425362172456570535744056469695161756348204554983278633649103545991306122080924534200551267823245075745146975176950891827951305964701324113878945054869561356979693731533903581578734035005211082209763137747073279193829693532447488134866019467911631228866191653969917796284583505635186372265880924765333394764361822646059626173211468662309961529918086565542733684668444793754779596008426096138194464848352790735215926281465617087981127715419908669326503503009141213276523128771038881416906298831426230384804571794255848165513628404689060891525355460400845867940941812863926413143747734086148566806030854658314511416103135393572193426128044507916854810902068144228816913446068736095390565764774764493726549275091808253344504730771515912443161886604308507136689845711299580245829668074378431809411116994491021502541734623228291579369432066961517615409483554214782305956939151142900599887063134453826613736680007041162545261099338918820323772090652432058101012737113230427787456746094417398488533854200507501588786575236543298865520048575091910696069995844015793795254068689625268935362156734878883993921804166240992701926680593927306184637216330213238049112896050910376281933594619283130745948925547958741282325392892757353829794552666979281338688695482570720622904206590475121542910907863235487457887536945385811619550058298118973818801422960020675176507765451665245478607559834555973196802021494195999581750040580180270557051952331281749601741735622831112447444956933697925109945375183557135246470981890750620520251587541261009198680671577016979868901719170368361346816590309972895648079484822928110806985895817656742234326088015616190804650830036519439954518926698957202217896288190804062836767278602297952687653079501089242916702601913916558011586270812842699310636647364006573875403201773065129151884138806752689075939882772926453504479029879460945821856095957586921861031931474412406406044476204908105438221459955570544375361500010702034273117396891292491639392801161353403697166235715794229208682538275773040531684856447837633871134053622527693274065019320285835685843437805670239054675289124135329562636509750930692691862493615578151853893497298353708980312117171383270173376554141811458362165380874182029790998674015177015513349040076960929735450021606697803360453924064634933518668296627502395688127359060074926894777999014511921450179116030120713410910970813854023158397728042666355089518565172280905446052730675770273373774639544358350331467827261638500949516373868145441797490942794097093990491250041323843702999642910879392303851268960883728722320672103151397504950989422094444268783047618579522605005816110557050064645706663905148460834964891171886342804565391429076255391459054681505391773661505842842861425719382363897020686096706952793512130318937018064455399051318807353909131928508780289723699392689194936906370019527934801414278472681386251470647368072106120322762511140325990684720068310068567809708999308991861549404510938856952867483491934871158538865952517507351328238095542239801882739045424930011488184516559353965926596882871357781547427078641830784953861262380327883458635569854548534615066068594074990929203811823755869341544291317117825925654139490864167795382783579177730907334001821521923885977114919731457118367501705806897917420987498438131069678608357161233139092901213218714475291227015172888889197270394590638172609041446439423359053404054717395772890761512168678837317102815350720501113436358997169801365031977876094943064323889320843226235689439329836368618536047561355153049630342255034029569855188336441741290369375001714369782585058114453534187706077145311808273591450873563140557731258181249173830200866159432309788566261943434734494475543310306607497981902483283917044568568546418426392839345423046369316601182567018036766305667558074594156902467902716585496015706572066699648556064623557735664278129553656109701482185333112441719530857377967101356333321210154882895311514781323817809915911229224917793145426182584920081811893866946686919905074100566204986740452871441672082109877335613246897588802077917449172646985772595485366740737577308614026550128057986085601323804266079606456623748916413403834536447161190916823343810892888231112680784449650286593305038163681706893819879118212681582215772944916246192439002656952253410143606605046034977021845759737760290202833460469082995229407562440905753055195023629930653435043314260511645607427578992126230809427401331666391161755149435652768642368488459378221158868110252009537929481289547548555811942848202035813794212823010366186536808534477330569964049380103276505848361153819490211680650270197164772408939234150487415722099249557940945855543187306349187061447409486742856378948777957475353356862711644125582286635816729275836892988328264902284286961296016415588633941775095953047395070713612209647984319878198396379641781460502449228436114636723377058498617769927627467520792376006536899821603235714830579879753440806084904235734103877657998166191745132963601426215355653854136871174775991721975578209297836537357185657443526864757477583672384736158913222905620553571259823170337049213271599831104826174271379171344266053079201464192268248377376596409320037524406718575470349113673339057227834956757420934867868172331539915773680558301232526843680299631320484889768351779800713749030240150922561151062312631657949906823866170080602163146488723595316703999141498270765897439949099743221837910089223911959280947287223413436128903530582611099286064188102908463330315311485417065497261164163469082101065562741919955141118738455696924328791538425258366703114368662915388952777277285218589794794854135962640736093501982581129124322834384450613329543319296433342461060437652141146381218448536715638576998986744133517037898807517646518864944663085949353059135073306436871805106041147269934667477594017385994960602287532093043265609731185369886510962986286275097036864701200910219547551657493573102950457917076578089963041682361973012104698457286095950550073935975018533029419678462988474977026706064538795289794028613958573015897586703826959409785344307674612321628234701712987180086383206696214244793111746758694463548167402880977001133296279441232449673401580539350439995324806025980455107564333766601162519300473107670783044874299006801420304978061496237244078936305535911365966558060448381764199508097209874694352612590030907707064750864917027284593342845395369463307600109052455130769926921117902396077624090565872802400299552809001124128465854414478217173754913491885721011535139721855697501628653492344185715435452209419414236142469288323999010172468458142190924042844710453598604742946638288685114729266227331202736385616294399133502445205867132194074317622104436024244430592251498799424143209584085411958685299347667360198571286741195197591241228158810157470502444274251824248556626385170393326556978019662471533294310334426600440949157043627427611534408145574767067750443190290109127349173502889320997442622523793900621015674190989191585347925861833864617878831571351732353445557630933472331062323615835047443316965862991835668570576615895568334060597779655649979598263615243747171536691928858023699618266234322132464750714123027098091734801527216256893949529378450809417401974302337809444985297677053661448155453524464061959276161861839870861882727883401450705410894038797190748817140291308136442057741392172262715022548893908799421030546862073559740086416054888762248090655322330768201018366038287641573116864897671102415736274559096637913126257876477659496751197849389276550174532606399111342426160789000891783627987501603021651546032234509562853670778851485807757523090485900194899570224938059515628782810892783327640420286546369021334912488084630818742156318542014343427842089131013406593019980221228102617223555421446612806452834868097938903109916946056054697727703905986124138010301604195596453875135928050393126166707181956233034519313296438911627870603882858140068884607508473822612117044598789448792464288186618101317726272087029551118542320442829379846428029981982226342221778511761239259757060762216883559931762548340582982385652954595536522381543537966808625444632435773527508249214942908770954350045848974821157924131736221297688664844267698609264575493569936656128094194208747854489672637749962662192831727906762594216437976045846539001890913639829072157513958086814215592339200008453791555043610810218758593082045594590614474766114895438818353664778146949982806558167791255563602069108460727009035314721416744384403829746052100668020615466548152193012035024040570192647713782604495672210665654929351341352957558985289671854937397598647370176860572061966489766897208359498046181056605132909343474404127109385405150019552350297362304891948688327475159375554749721678473775431375113897678268746544932486735376868258674366642651041616282135646777114190162303172672941206185724712591008512956841525013719682847130020819276425892397797395433511190729030906605419713968122662575271369191170084176302133438772059751221742052871993094321741021152637115437920954842461672563034375204214298160074870135272656863350660451255808767902938465752018505940272525566104457783155163685219739061639513028575893296111812853980959143131351745530593148896752724077410790848817571048493121405280819087766548153273510149707041145767865587498110880437712997630051084014139701164879762371045853909636576675666793548922955057071343501751071893157652735764434895067643905405266346491349840186148049975578336360028912033160494797838661286103730658770352630023213135359549042883248383730252780919321883530879154855836082053808131501575792068773536074115330791629340836566857825498585731170566627888083722059531408237142077154964000543047731365745022231058229358522093755053459441392242202407951432403655406818615168911306899698677260357801332670662325142729469989872530594359751927745482253093064875179258520914409546966535674831937647906752596558111964329145843592960807508852537037846940962318796810171942785319082614004411309510084456883536644346568361256774725169572014081039955809837130725926592958007551780209417258566932863445926164260127055361813163895935112029150926768822679260926580558241474875595128530750424578411047291276329294719383024590942746522259863428914380729618940704544277561485017015705624807886113225019182027824109396631033026873327663849897789791011634617786765160916773993527969678066789459078983403979652056749989587228338264763244742493917688813713566908150430058675570304335648467212756480642551219844917992585170358024511428663286615610582426837062935719060904198916883384876423478361049511626986823058346496697739784210138910145035903823408280156952829127847133464065670026039981330949519132191851474573411306780268073594100694538852288443061969363832430117959869832750404171023497976120361635451696133812743907084929651600373820051372896941883153235105728958356871946242707098913735675883230256383841848720588118447666647250351908975886651506442887575897933968475143945259420238058308828948413317956473497951913866058666872862266146377633589455206818702534085378161153303694407881508827856454581812148282242993730350111725043855720977121142335459850142900122215195855407385067041694303775778518630524237450268700998502338127072398068884553582558779570575954084194157262678233409436002217547953962764449353948676063839869169397579304450673380704632608002344345073416872025825042499730703929979304028950943398186431348264928750401533586370483604384346805234174710342217880283658639695388555614297892231925622378121935961641568271514427850604556232569489123760051397298211145543353597360478454543255936394130080693765575140713624432113720909375254030276959149864507441824777541445645804483811564380217414153133996406198343424157529594036354079301622416892219521926254985405845867860443822419680106740859966385544873581441905489615953485948808887824355503937414986837950154055557114911435766769262996832325547209027880695726834345826441216048907561300125353307931428860773305602490110646521055922190173469517693637700783927790814955092412415009796830229485219400844635905815136946661855354089484595583184132519409674224729768140656981760403830480697638802122926074074457923327763297767798047944726339192868330579941900952178592824569733717329019074889493806128035089403988372889741056702648904436782067163089075385839745330025085135174124820167272717470639075914669486671304232015933070802436188965611132453518438678028838137338129371780815963947610024587305534279575467920928741045406148334958462675667736344768391960739471925504343736064408141411599704549788408671964155048336949056746005460435260676578125788925302714784904078057572612106254484340700515276074559570824265364647442671450143157693136430639472136705912345400243281060194139279018658503218033555016372650844983497898686743738923307149860015945685319322570580897211506181761973929306250597078281687503515055151246400452903835841049293815424271311454001998338809696118151066913685368954886614909940773222565784927709065497153588740360228151157022400492602957300646012527620914465567918564541914909405958503496676075628485691647654858460963634494771194196424287682788001420946616941069044756980193737239318715689010343347540938370992110527843376297211219334320719695872344561372393130497716347159844273359104747520170604631745710517693915767778687418378416294899528325486882521845316223792053387026814434959476260894648746864544615161985320128130195627622256219298736809186676912863423761521120238459426358809907745707389205169969910351055506085414146285656592398947640560642327589942084478718633097685149669498698222238394933637513811055714723022849389172088881665638995198971869037199490342335405372422436903785572461714861691957028886720163620422303719763352542226566568611142480592774883082551204596628270687755949646953166528100704995732609871803588272129818725619903667378937996687777198144229702169849966445505455299240276478123831214808047619232917978739704688178892876071149323446391701231585951013022854336621867642554268816575574208715765793862547278862749584823501477101490258403304230061359328593826582102998651687635933266260304263062517294033733745124587378667466769043521808065224534104141529281124583895111583093793649514080278751091552714746057402097714678513818436516061024214013939399745354207786331114398272928410859688329967052747445357230892084457303044250538093827082722343975359772634241928329085132437392470364548012421643721339777862517955760413746355684985116265991115052578238635587662789763537830146235863011533415386250965597301547825039310443058695011446525304277065819171515342141954908482340432099270513377884668582422869655610484810306127009459895760793635605758802625029133978071427847073327757472287637685689807018521340584900632751193559577423870336973098735694463698644060566975708146868643877490756057111251928909865991612614106011909276489945242672860208387343018645239621301005572212507004987680982363768423543136655552593549891068013765440933810825624288557279726306457565219398061179462743236696515281746231925527089536228561953299655954227022722091919815854471075636181606026676773140599770757367248498230348108386072122958917467457320297645842172959585983215608341776329614359097962114680927663110326297891591850953175527106159828861231767501119002952837293861162755678204100899364724502154855304741490361945563177080503621554820357714377978850615361455701101501429947097602886552747959722362622338833816168828129844008497971072225067993567524334849371359337363892198300946554174243930062412534823142003434224971025845475889906414570274247123324584735173051499936513615370550834892552321172157735807881214428315164448957515423302647217265656067480454339012218832347355723982791257225096621680734240639201246967376268026049546477368657666648158121298954982278184939001788210234688044140047290401698884795397124278216459476043081713278811900000906896011666297266197001014793888528097818323081245520641755625637564221269384097752511878939877623488485326230574243208293869558331783114758376301070031319554473050264744677182019443122645057462068235530437319479221576147451940495316046671588808667068033721139947238292659751406243799620842287989489484865772450090456751120732491480132623398494475743977163751341467451366573318694917316767582532684203098464568464237781978590757857240065964038945715106258351340790809617018562170970781500686064502727842987520817074529523313450351196725345587324443402582622195220067449521037050714299098204266284589831158677263038952595545823348380743027528551156712340376960717770331901502950174002708577324988469304079068068964238014849589951137671988305889254085285010469733999996404743087369333951355272114245685947775103091061363939221765423003890812709644360242626350771668369666260887737319382727546065702927527516547708089462305763784851206168611675049373420275385276532353759289174715129862560167956156155689869197878637887548146168461275719171377637266947953873211781851299787144433691311139396335323078056253603432295684647107169870861067605429014182261876863157508940261459426486180684750978356041901890055474240028409833947822620310238505695385929468280627427683871402689730790008255250795528336842237030414831068983075755812605382015624000159507773469700179871043073744104399491858212141113387966215267887605864274657649831767987471329821531902700392433982252105794837898564469409661399541979555907767260100579886090317692226377438202798000424748074539874663624781836552682605743350561474141500310278762120043503144747734762048064548539527294172509744086906324537259549523201936561986973711674192187194378785570332418912492890231942794397480389407066528371783991426692609676959322214874534154747094642927089756844779173299816665428444916326857646854390742586332934733343419268503699694309677475686526883327511505966316591902416043466134812657930831307403814051525423542097580411095300527216546745463902500480235910088497751885323337399169090282398696879504591986150765554308432219547463148847381531317959993049654387588439908907180403855862415205569171406905048282182747782544719018178195603344331001591340511122125537562732391770205019374430299302804574178876934292922926278235090555967309864798432333191223995806067741390456176007655262330224445406817421658384001055940670260431088167252577586513294851664933291859476342115790404153684866836780024939747408900123868279241044647791109566752099280347246091092982050798670361180208833290790641118909066169122751226058882397285827650238581090843472182675110567534520386033506851583520454781353635773672203382458155121072801733828887653598029887566216688759488331811652136570589340154598134270133077072842845003304119142433300270228243208450461682093848156034954208892567065282014026548802119821712896753037683806064384847778144352898174254507380494917847959810892622047926610765588582726544239051235238717588892064225292253787494276661293184982038838449147259840283927452595821028362416213923872445649058534977968502148922757989723093271805459344318210576400750007078496780927368831003257444016237379229706052227413296527911028968419294743589696235225671043482092235189704919712260886551954235105086170156334438369367343285687662915670226832617335111862634282340884885868397449647779091654801514118366237210750191444205204263246954626105577638974057766847718174147226954081742985200620191360037775196075067299415352144385817150799847047939490594174467017947787312130810395346169472381072176876303204842222694611452122800895766751512039704041507062211880302979404434325056125260326931107572916619441755778707257975061629363585663418430530037816064964255043802310896297074531022894379363924489150784850451710704874887554607517537332819916949789340803930960889951294269525339414912838598464553100681238275930460888984290276840278404170193866832625226539696385266877439156402833834387002829523212935276964931770283015541522199852787723752493305771813522847898931165713264216147667831630483033584861600882669936380834167050201397429660925129561924672561266809069568601428146646886507853518738682885148903717939570641889035334070551091784021890301706787638524864564790534764371786498566070475451389414995568927111765687367903372669875427401057110721665695682286973637725220628883563327335620053589598440777672204588175945215352682255923897005207818460510193860813246793982840803380337499728995714222339971929359867915874524208475681495668543744180220246607658766739570663889050251663167281540664792330882739087785803572125096220693184202797479999578979119901328980636459796867011579574249338142313360985635925808367288034924598061617602599627558240665148041036437067259704658405308350743515721790788909730110392391264870569734319922252473018492915332550895833478452798057751702896741752046482978105583408994644255232176271101493522714262092475516685637472810849414842441961908926278824357295011839807512045665666382351089670860308674825506087159726784849777906517190252011756560129837311701708132746911292917257032383330768023110985105792110120077844890138817776264719660077823055817146295610371352369064049520853823000816506727474815130179543666903907969264832336266033549206324544731244433659931764698903642151249633322573155458560132679476916692109492528566310798529787212586093259689229172127217258140831287465496648597149525404640433209774645227679898459924566157056320458532711254040461410233895870058918118226304765121765365159790772645686033406939911923652153107923003732213526369977943486085757778497376712807322095046583391364595895603050590099480236322439990141498454940989629622162584184058549069913452416442442416249171704790638781956341259036418007459981012396118542559216522039705699034502545983096797744168614707877123010119572524883458417590973448587712833352866533685572129692615697829926780740525318396092656530060493835928617270681156818728402782189306890807263358815589891641656220749097934071151694255164472975949030623897625768887194800847648873760656978931519321195534970228998341009454840024553602527022076514446772659944072112905164673359138691216718450573401419413706298285556835005300361813592709011254529879804122764484504232341107628595881154954244662992854430133647557165649367218803592612587812803764890483900075313117975482153543054667725867236797643149673903723980902120277039444811116437928853448238134352669069799815752498235629221759667959634760494044530415642749550762622127743114979472188640594237526669893470562152598509083984699255953621803600887542550885706090162932940669613218642971469257056680202689906153448566793781450727100195884862390545228179732696951927577315942492310505499366866608836633663845204271409665964147522476115160943778201650167145496782986228288242634404183763779166573251404023415887570439032372986660603582001028993702569292861270344156073890900293369648407697481804206768628032211979883346107341434692924822681088631749699293398608776953153684085817092287146719253966821722214509889678812544138283090124736820023452729765336611725078487548725869219772679814894507600194229415184804764158987897527351683896489395249288502222733835056053548007031144722313741940124157250538790157019547822636805233904624435877440272228115519697714118631789942403116154463366327165629313703144636443889071114684082178864228039919875039472180045125077759957048589223727528001904261127923309967174066667412540457527048521476457877026596092430443004974333191971553297424712394922192360121367010340159924415083979623618140026517423271963526810189722484349915436507820779333128560260506675354837038800773348200472916231634030598209255267513974949532492655276577130125334412296806809896358638433299710844848785928336976692992980808080938714040894145594280037825888936673935818709269931519318840095153969959018631177317560661295849850311551518851309983812661761619082238584122920153548376609596064978312684609376078473239281436840712747787611028319246512536104191866411914101952348465991792533113659496169941278461111114714590416807415066051442461657894377974873940250547110863701139788832603646108393602302055424970965036959743635349022745328021689018666741369390398211717293427209268822986666767908062633740494677766294915595740451376889153504083162773357338961434412919988698802002940654980642594759851724698776612321422200056054801171865117977955360479972905627386068133212078694952396862702646662850603512120407740028813262278403087123637763183615517799844994035320525030790378239910263241234092465254057307156619987602173030705125187638123993620661572838130173701386067979970306637126633722096754111599480679888311131280960928627186161367478512199146179646901050732955122057516208149419028310189114030607754587453582256087349718489128746447496772609315728262012606768631446999253669534431685355675467777396838580436985883889905528966007016736689432283747496789180408103746948941222632111603519253343380468637035883905929592470782568765291689952166309256211376246014718368695723871296897047556988440815602384060520565345808310300800071808379518886725591323790540662311240439508957679726323626212022521385024566916684810685869133539381051554883627939536459713482164200893474997874331446433544461076180876513433407269329833785119838912414544883407491495415973053282855658724663259574241403959978647512022710078461825501135045982304781804767105686754611527486580179513894209987288219578543037839911940132946145611399380381255470242844731001972945137326740805728886667304640040755567153570446376434464309703991076137031431421880457104162919692444285385360887977069953287175073537457929972972597477172771302304750773738610196503286147010502517469715094940935953037019340587652677371260457652115382614409553677848956759672181722466639480814037553768413367895812803283200512147478621429755624002407986436536249180549194999884977268705522632793955876278506514004361000021237133894199418267254977995666909410345462080499831455088928562569071878491165239666067532591655545253808890787058352755087641242291973407052629367302787067803699440259700993105582358882016088044152650563350856547999153098792911161280717523246180189973124129308867274751584158008087607308160381370313938609363161747825907992655475713464178086174364208458679482796863132653822394980348547914149865210091858001477521217817886552127361434989320926060503757336931090857248145187642773514728207056264797579346200177914423429138293785841473682507333551884790071567489508315383017969090279372302464822982421701099699117447520453850946286102450660496315932166363773179977312971307945313743733395856385403669341763169383962085534364528034928452761004142850969776739279780604404407351157403364468966995450998984362612807549255806934356542098326005541850776533457505444409835554542317113969931040223574925151844152894461017346245559465996120584655474595362697541929402676213153799575473542015523672558440378244678586893269228938939466571933920508754196782509918096149969851647407660436778203683207230916020754650695052600550220983644543638386852564797655886093613191248051953100285716027911850472855767845635365124517068282175863103269401177127765881794622150436803389330502419800573135406960485226636551179485667236659463680557835444313887657638648348761145486871640368282008678816116336251306887201288485212486283647907031909406914721054528576856624463998238459861357234156264681907858300855570450710405593958987383842072849654839173787002190824352487482798683459076610309572079884211613391102586014574544765862184872320971198831459545653822846595652698932971631025584513671592543851600601453689921893010237364206506862877740378335682361952502939916429326308592382557914283682008812494062347848291189002128060876904645126996718558107617680073647514068223094879694111525303800756841506981558068314961250832799332252184282438885213948963304543955492768538484177203258538326724375539135363941828486043310838943374954082135528812114944361856835212100797506583942315363781792204838065509554977781538178402484858622404153765900784678126138731449012472831354306964164631276716544213636287545049532362073566177229576998219733609250509719500245430546518133402794384850411340424060509280840307931163875302196478366776882620233699241719377873305817356222713951736397905831845688961903061207706865434189879317152226160798894495177866119949241754041221908672312558985879654671598070386208221308976622107938712396166061673702372655693895790931452605438192793305026008067497431879337912062679006354816713572693059409934705360105338321069627514314819857775261920488802649030522348028491243381685412378868097651599678660264153116155835840759303196380098336255330545780961415052449283420020737391967717371095770451854876259206927438791690293952611691726914881527310964646122220610506593945489831264438118313785756356560985120968730214290607186325475522941870233400249331781730981893999696446966725128488549902382015489579400661577846888639160903765388793279892908668244864463211315002621609309605209947219222735045828712626970912756965573830117306647404129573622282256511383874705730550871105488944111089259174477011231017532871437799831949718802560733810370283873277819627035978190798883487996580423188250738696676877786423550526519357024404832511691932894151625996562411900977179744997678547345941156072137224734172467179772037662366373408123745006612713275819400919275337331149233943855206938587507569115580591431753929148478691595605867435027181274333083062868916769678677382968009540161452887166464472517991581256464320807402931676924603855209955718442696041852103744000403092264555063279513406520840033855937668942034699358008689320263601190901723023829558350481998161358511308181375465358678570164149277334378732159896163917276140968915536786064151767985807983342437522591408768662518662548222529289140699866603541657866465471203865315957375572044928794623884715755483912558336910854790241603006805033356549162046623068353833341601655557084784405029714687191450103873133881135177096398648832281533487142912818515250401928019388005603388986399594191528275301078224233266210206982833611695423749432984008888269586438879672186184306400444001000404791679656110429068749047068076928495319954044315435697162582126512709938435276426164313073441686900389434353147205794828057936843436708498257462125385844996698989800323680757910024840632882129545932359720405866589718961842339957609377104191504383063603806804269561383028707565236234510861178362744698795055831732881064154326177018037593799179043445864425687871722316312786325134139003108838839746351978389004652010315599927303820689276500768388973469723481099755495400486646565236554593348334727437784106213909414620606890249292266762374731130414544374654868363682872205279274574925618810985576687713550822372747425245000323501458153062712087547307482767339326325930632327463080499109486709253302320271635586096602895654936056051677191089079927759549530808747101088138629129638942741844315930620969939669091267380770052305133539994005599682710623522850303800295002250369967919735256859436259675921187442418940315522352714989248681384804274947697314905861649801288511088519050933724786468891094002826166591003317321781897174786193184120650529706185071935366553995344440753214364549969104370914034270217806218440868876385508175431170400084362230888912207603377131590390082776550530205647666352070011786696368264018138189594905332333291917488697380840821680955668713189779242190396261892107629804135479175894119693644329033189138557482214474329830509460596066014549355175120468775756807306446850340857217776814871400665156295265632701894636117320811390396335757322010021520227100002191513634973439894344173180770510609976526039262044725330370911990798635692406336488729159577127735123676055556372190492301375686815032950817661525924995741949615761981523665562432933643862393728123036957898384394338339647368215342868094864677953010011663737520813036440878222548923405805143836548976673880446507388818848461814784407704538032232936250308771266550683703339367990368120208154579444947932874247710846982172508550976402553563136675914435254043529749471147738277684378138272157515429595706361554032055567829758356164009808508483538679163381601215098426339299446530660874964073016551334776108166527594999526989962883566677185475822669678550773612780331266584054388514165821625462550844715009195730765246865603126885550015323512460453932637620528384760508888627298030371421936196975119028630599528765896542918213964378610185845911378921391755097689552908469824650538785777117570230563937726092632577891987684226955867278540930243108701987443945701060674797580279190181553838395788740671288523167667265453537593005787741205170550747694159944970669037165140812662304210364924037255744987300849181884226278581010177147506458242608017055666979976404252337663124688168458790468318577808802471488499150347862695666473435772240556870316406111112101337198360796874891014346735334308949189937222077315623170155329339467156567054657785363104693343010347058830759810747207711664850023389724403680258127587949938947496188637122052851414585100448698033159621368100581089573106096429318426554202306648332065615403652804749732747220960192955905413733445996821627162681700054484830088791917539921753524385391472894750207985149756623731557012874250388536439229044281324442498560956148493682298079843851233105022676268069215237064462565824058648768321368011568601805616856058758341223420012881434204266795038909071104640773580213626314434877573484672894200408735761591035141284544215908880279703343295341520954686980147501550701761877224837614229471098676147342779124509361598055772991412253066415565373015970354599585432195488185501730024824541849444736309992497185574775561645214035819085863142545668174483541423462915337749442444765997886694268149432420386721724856187592554165817827799665317985956696311141093586832600571120576044692054211079737070558012582457537626194155032800158891971633189324335685268273281758636509520591942012130157507567994093232574302415175518641704674336790688652918279980549954523892761916291247572605452353791860792361739343750422730696163289105465912633248920217478264957325536478597967581267963301475040664972794804695460466886693849471662296796130318605985493560761507183367278384023973636425731800729465175067675177607331931486743156965760087675906045797265198105495863206459425888600883723839604264377477334561072817878920212446805390252964499842792048519859982582298014564264608423673301737459631284347359799656247223173449145710042144748478046269732773205274257689920108439950396263587342364849781194321961826613483728630395885256669723987291839557863680276475392606717912105831550798139819811117263624359559848533740917132791759355170839708649841087750685556116937364627801115884716003787403949942350917201013787477078407071496603944180286319254803544495229689477955984010803854530136111751895831125709723886430209698415081617522398172840476507893895756042135751300344000130222416710232809546331084024932791356820007084720593739745786110537678541402195317742423419733588256054299622949373325730214035898144176418982865547524794080054281500949272851268287896270124665362018350728396241393159691596591957040311504222093107124931105117113557689580997354585546810486850811076172354052489836392488936955705781156115015746231847591937537760671871775888056189924908329421449656202968656673212909082052338726478732358777108634134944273664063626959010703032668302678923132473051554260696668530344803301066947155436868487166467756148684204069676619545472875172140789657735263757906249844570230331204694916995922653066842885142358355327523873758645001587125048075088896873548517489193251205495560081829904258493989922733638313738797712970866708486541060919047086928249808699590036717790021609331186029803147547203511409379476810058102674058318493568427541754513398030321162818329722971434544189745615754006723393149170458065618069835243070463492962708302476938408844475536879276213972244185459792985728978445697707997666780550697389321578565851466295565180679184933000621203516684571416097953438915973804266907797402759059280595987950039011326845338606650831614268889375751519767244835737044504247271510793549910502248563017657100462489265495117391553041391443026040606815312140899978577431119485690428396271707983186198798146246759213747921648825497854660786720697586987526801901906163822256830684479607433894865363121362619365936583761856398936746939564781489635130465064485107533477846404965271318814281516160347490067648714114414804112341446363230743470889906175566021692774946101885712003818294920051224629511815375588614680822693937105129794360887460113161093669679761795623461177363142485952261882162862757808431688787099610474205789610778405635340316333855052825098115209029598867957929144456935971769059876435663103186443610986128871236048908688992195736164930645856286212967842929214451810218099609881498771983237278339316451627477921222548297515445793542250619670856244463004024554201947799119046966774209603282034563724940163080240712891246642697549832232596414742222505355319562938672050301416274973020339233600326231599653665820331599382488604072851026872418876698579580135125877638423581139753401571267997736158054149132105062933804770508302597148188065070455065795644967949682947024158031331187065827431430251929169368434634589790850334237151655956116701453124911432672196032351404342944083490425878082356642681718424736830149995015849593182623806535120204260697382834960837534933908763665792460650604887801870180391652129498551742728148006062151088057125333020071899862778212735233573702401965931862890429892749571730669172844469943355771412587662150934985463629542484462773200329443384656940642253658475618101041303886278565167934489193078870069680260825159324055725394177156336652371513906538075835188058395883281411006877746981639085589728948659328183162223428664510736703745459962239656461937672750425194019742638923681491191528678002028418348543960524136518300156576735232142990508742533822629945393595960826305635650114076013561715694531426034089223223421041878470466398910305910803263976645044237854562032391164239514043729351600680798647058260125601574974930432540096633894933248337575269553103216299025115943387980056312094300817003519999407865904151177301665610568733885504435272101884106710348004869598368325749397205378252417382662633369840436852187501041141487278294656819077443840180073465726436435658645523325581461536732320449931716650345599965786715943404512070599524981055907423467337957211627471288247498360220580373583491263096445684719990145994670841216891165782117747803071136118590491849363616888233593575737669748692519458601793947752866268410474137648068286530894575755955771041009692998253831025142373580704823646601269725994397557122282512047982529540015995408861771590880024203675335868883630113629481013844890809354112629993360113687850958727190664347461744312789488037885720075700402576142821247558871688424755818033601665794574522437803224379455817975969700497655980020560470135091654970138521573339808514421165494691934481629311417636106249195387084527816533514503509504478864178114900876111693431261518880048594842444603575336537104945925577335176565950519518007779663135606235256717859337833134249368006862590019979082784169055748875691197961703664831368803156771638011557657111973734092615786237204398808233577406441060208827129982420634520630198065571336500225085659339942073137088907211604201234615181271121327959502701634630438216049147169348246174762796541967827921300484307383595744664807158492628513699028275971008942868201477130758132333545327610292325942958439057806918602231624277250858182664463313765871978663226870878426324126911908296281556036101323742954050295441068477171281140903502202569206980920887547123823356651154705538474109668235333396467101489023580602684323801375514105166372073666242846653653365593099369145157085263595149597872958913784838636867958891901594183971723056561750663720667297800657165249152542901448971904662070413961067647475159669976454055111546978582477821573873072512353734955464389628235134368718761372505678540656352673956469462916534593394956711631059980800190133640878802900827122015010841856553270828467397321198210432352610749584296916152801749261681473571766127142892744120613987022162391518101042527889494390166165263537525184473477367565168199810322474248764727011526356925000575934823116496798544751283122151021755327698547470793803995908005862551060447189102915309880383974056034577047033123756741796122964715451595418433983961303397343850449940969323323098214151120632182796480876088731382919421173481513044967534306179472844542241602867447648254769091130215753518066515638106488196434123231009368318343839742086656775194964519211181003612878366044937045293842113814629799488645389926790052075003681080647298716484361940269076511515505695278728722531792109009399830307628538154510754907044592008581599477224434796953712436150639054958553786220932495216427191892460543496955102710034867593231687769424677655435735505460084710475329468464879509354600875635836617211940440704034614089750350696062254914006611418615778794063978343307371134734123261177590258771675443763800318941597119564390906612131063099045525502994944484881839296906676241069793367779404558708361740168972314046042356641746332520128217003588613435416703383171652173449961320271332055510079484067103574582399197475746734767592506453963568019239362417031563467195461997679640822502786360654159615432844698241053544721295089094806175846049018267638652965313313570045532538275289519087007032387018182604520377279584434968337281385404220057855886089348708847746352255644625862130261665062296505017967389335719260404541998585643570156995509962857914247867067770397593569079212321905109449828046816924942727459803195727755258781715208708796194073367355776539036394012407711648485657149439301329990956443313579914645922557528196587178372897110290452947799969508914264647554505176170339848258584114523359011124144648776987408719789763780672967216498056394292398675574670198571739461225702387917361477015613331150837788203250473913989898935039237987081948078579244298437600195450879059873964168090192024362478549364032330789341348692446855135154800910106794745467447089240414774303363191677792445899010199072403943098409928636577782095000007274787776803272065347217461754397141204862161291054438245209979601473356890608479280592661479188920338401887811744864527442236874384285917063170508508225146934511374133824293167166200581368111807472906496053571987936420769997130300580784042588473108703589611185301211489199475906958538254437034479297076487414572481915344221449587863078213156761788421885067891349056195466592656939867206304954985830039243147806882039808865673209953846879091359053223264706439279309773877893454461656039767510428879911419699819047755875820510752397373795851580591659844601646181808029250655840169044832610751239174308526180582353975274149202624426639515111203159455964285815786619775727547635626529663484458900946886355383636215421029265389713223281853058647271029985269587072124622515960092559793147191602235064864500192308006074806887167623971247483452078625037090493123265951325919227003449665513428266668784195533497864086771818095722752329981811671629089197963718232279697012845236003598299010564121433244333696625274861982316797575243560252588750908347185459324182725139639433670915614846427793449786885212957462215729206797169202989241066378506145362622654282883931969403244960501775273053922089565428900646656000461811682171274050005065950411180486752810515205943007407750190634953631270191434264287730059508512407316114541059480343810659382230721299855014696949808368989558729714522662734511602022791483975039296590448729142883228204919112706501141057617983210729848281780131656988196499745568224591026835117765087133992644518001335378033272132671901772355708423496051511722663183858382627115023033493578659201577299580968113404515714296101172831896478234461303375115233295691283375623340612831199057746570668059400189560370813109988927258365415087403414995878409409676589899762950271390007567932012464798291921125343418704596867722508856351785366930731990297638889841726119324319820983299221201762587276253866823940180069300320700210927093554307283738542709580816237966404643477817271067906735495840020243125461101678684732420437350934591475910646048367228943677739352872221539224201308995980659491221856985401367788507830341789461984662160442961826842530442265122410645748160946040175274879908765881470320623891149406383522446853941521523461760575160263597393041754194377153371017298404135081684205793186912604300960989035307061686352257579083984174382625199178495718628046776438566424477527360274421239169507858660991081134715990530564389139713447205999961969419165753054883275407487232207555526191553229861526045420350742035318103481223773336606893189934060534999417914631306532475545136383181070467592827427779686631847435638926850948429731562550510536407167062422187832202324037981601622917840135877034033396794315344151104968057084954282178495126608421692044548665302086966238106497659268699671386789536161539169808287084946985530622670153729890906870852825836565040756662694871859978759612199196942292955565667115607378437941339274535588380241842597036800892385259100674648855589329514859096993822818023258389167374880067673955017198801356450781388002288283816612097967002895949321773224738829108560074931253505943703975073042444209302819189657478783249382705075859494886168284947588113237199671342818919065575313757738316588509845317318396673796170557107676781655065786016773266189736074751706473395712721744484019532255678062698189340984557720426673723654060987662754461598808864562288875910902067835981908342478499523440544105318274205689939357394971999615127087367541583156257727746940970158210349796892850746573525922393357133619616180094057759088360990354338363756587308477468190710802893971371524088690134064743323360528547654252581563230784517678597231407025587509876271009942317666502001835992766652864763497563814748571729284758634377508869630363696112632590373790741833023840620396073580646807937327635245913989598883232329006925171315867968754643754902410834763751271851700389866651342261535898608870597098766111355778744869039950336325623480016850275339210626970734001925225005309936353777739491720259858441009405464428535117175576480824199522636467683879077399773914783065198646862269536661367958679636311160056000990242978440869833296552248637474698938483629087072223717702138730637244193494607584852304985282681432427886598408696720750791466283631557543614454475787564292118158691992333697906798017288329784097603900441020295740589535694799141097039891186884709815454274520018964830845277786202423000562625047919978099659214984364192328785672942304709798200322758363143274732540587428339593605505156575920741021037337659957858165983261334833479785114594160886150510156620569319027783143320876375684903619721371558574492312743457302741763008993165828150291445456773922246218161230071075266310826446905591656464651357285415957352510141733896558167249671514987359554943643499195273719850112801623144147709240083137510634912543121497674197761148718508783660796452872330428057420232814603445402847881627290504249331083435452543299895543918601216610378925712887012867042637314532521015489520745849873849811975278044070838918231831817295214761739991377121906180012059077601472540125868866698277921471901777640551860751799045266610562510136786173333116987280923177675798472165559940626035499022627447393272022726242535897906068483432946145514581794870055201264154887746071825257466611705472278260226754836232891990772786027145085979840778315199408574695415479264213799658332816186033156104070981447576122041918103178913568306738765821594545118968363376202552663359361190389649797547950669772287466074273532085691839844609917599000573924393689958874986109012875807939793813665920824724411724497933534444229092314434059674022653473026489357143341610032812679746919473365802649631485347562400878442582961749690718298140243337809773500221940173326581657609340386280711570631667572904768992313861176966602971174346734769734893019728770412906727047507129680365885532258721815913026127741603234887249612958121912749746799825887827004398949942747182378708847611622924149507407768066537007061681643087229847393848478706037895141270449422474280273830647071141094208568084449418572612577537120283102867500449317320866286578550836032629369732512692010165605839177479742115917594804382492467532644978474096164097087300074041352492969383387912266017475203327875811813481010277932964269889017343636515515143646849209967585537674808357475878522801820667282405353755241540453084251315709207024728710326412834072280684923758614065929665359376612121367619230549898493783612750776923294025112807171980471854135870371437803801819320992612683636494199421895118964125777350381240860602706099675646957158318768476658436548863961573401336416050234992147456355355501980682367465048977859148443596764436061026857758624463925942119052783796598440667563375859295034693155268794381668673976278839019740783325975749045817565545861536741773508122194439072029129118561437267144753421165574308815192514054103129501113287453403485648373731651052866326454788974813336788733873688641368336085262043845649956939671189334022242814099612235134493286692070865648072335991314760670163951559285515309915695892950011260900461408907959199885805432736389756454044705651954642797496187555214291579140481596928395087450512017786290807352705933067091038329850081495976496177168346470223097287184882723820862623597142669098824848414291383207314835555697666173612975067909792543424991321368265317058903960059376547913922219968905720752310331928163172717385751357423038991457291455705205157769891258799381777575490964658118156043383888526011541396671731943406115545606219733804799732254979590635937652465585192289230312131015542735825535025389505657721146554562151920361499974856799754206671707883969009798142369251652129867070198726540912747405212968610862142098680088551403355426160831330522597081572877331477723803649081490552938125847598935948908522455948858390307950429474781115292932387712607220406524850205058545960939353974345692870193916448387216897759108810163958897261145059927656357289012458249287924119461893501508733703903986072686785310965401813387286159550289027780150465512803089967388311931685596814397343207317655088317938948777420561998024644946201569078830776181077992809733592576363468600155593028403412301893330626081869001803315313839778069622571735937542299836672544009347395740900163892194848116646694974300470975759137410311047201468289613706865091804848014796367704711509592420642370768976154639623814090301425258212663289964103554504572359548134836690728835661763140675293702170153824509793063777001209125748863195913860664366664501312438716204383238678539249770616505297145556134902652391518562775404775688276524932749515000707629827278255481621028608602428664034237443528206648308181201174977981409412225452146770594603215768639593349425995529551332185327128799572617399635154067880156372311140683844514070930824763319454358573491467413781781004703592107615682859176644540142357084970781572029986399501986761578811578758847005271371759518940972998853078339503860899863824738418215952680771492089943139087862691076393123242568376020792054081863101521394774032769035727092613668911428069028792727677105377494474037842576250764386922487848500235253376735140750235117258134769865580382867869267997095472584641682641918345716355340583971515019110034674067525812297238873399938825046622276061289756046630688415886790021134628038263399682574428971440989504881269664382433636107035580678380563241420878274473929088027774799784709309409432284183971555385815111019962841439189325317439907980962478381997380982939500210637929234779843403602948165312577673470441922820199792938676881852993601252013965444347015385106885988666273116432201929903528868222123285865811605578073911373015201064710610422939728770117521762218103433333485838839243834038949963903202134356275379277884544871839952132043168316398088139157125341774689855046624542184933227677882667358210520404305287581392474340738029268833653037954791611781281970679793054679178180847082400811130172063416697721588777622619482537981634404838923283308562675383875048083050225254676701955893410781240043733347469216964704834032637097372417733094346844368785363165548847060936462914412151458887131142163139235505255338639418014431065572390171348589190539902677106548196554015727646373749179765353037334948740238757198560664191632090093771887492808297693018256005357827603245695262172731614023353998164945914708224930142364282008506151217502341480290167806175885926796672134821120579752195493569026934755105086706086045414389151741463262027619659483099757894233367509084123333576300483978402252577967380657299017572460226779344564120652718863239059746539849056215092795437101318284547445342753369580417555589036404535703184602335486990201770445534814567865711971133828002908538940765374215470372435486676701427877340164970868811907290833160860252426009810101446072231890576822778050931081443734356927097576402238950068356267364591324022229522563294533236916274183100467691991643174294567392060339155050737553684046158458570031888865052595943771051610323228029635850513856185331342072183385099836788359266555116427299239315504192624152121950215572046671078445591822062570867386118045003457349550471619797582532241416297657308022383411012113852020253847315810726376356204753205085462054085286720895512288461100350302652954506825659043795298702103720228812120026090260150015543275017364706760071352161995045004591244725520997320252699044337553368369420989343043646492230225670095944506541723361802386648124107258880595034529796445764959248629326322210698910583985599644758515044081504609711599237436190057134741386134227053777343253155485602846378826216097870158765344784867355980407894907766458837671968576436239917088485790370820629422176574040995622270940430446137617195676047660687708652104337430461206607044010663055666551515925391183294962996927916526945582737381718017800406233649775852281982265873853593691842107111171190141976740421602109525013279912487027992307940010633649527088461665751277801035338266426603445310332983556131539788241983535756174743007603207061151143304699975837862418023330867006117012834937409510675427213872380963701527925752368696113720001630245684156055459781069899821590313692660079908226632722907904770138441915534597463697517302519815661625320283131469290191554783125363686701066234766881123628131969583717119745310075436971729698997996353546779840232374863771749769232254210948493843688080154146844440917579130215821930564797239239237086297418099693658721364062807070216975252160141404600252893977233208827627334700629669136096402362042239837268106015929704342951405766209487472914271500001214862796775516191979359408078275302578395736942303377989202083098777163929365918298438106601354056301653961426101883788668868435234463030381211186508529351258020400094400836961973382448114739257932538332164215359151678298802103788058711076672855809172165640890137150223858586419526362655453419542832478191436591291732000723333164559598259763716801992333367994849159137213069298091652408314700619648599649303947369651422406874527881347489667869157739333937104483997546376300863583438240885015813414144936987459316473471577815941425377155622574105540360276573579737432338470088736972479448943000274420375615921640391609475249773168609892528881306546596448693512091556412849638391256155094424142284204874657759446371499460700080035413061349250162230051910116306476521133227447638998173559883806372311621437948144190400872125411091442526316049919919663842023063494338025095401083412881261029597142299994241016238282110953833740503487773593487349535314116150648259902657172576443664257901002633687000917024240431424246514873965074207486182405369194861462577915227216009220864611017612057918187889382080699702485314557178538979557003237839412662080561588445671000512853980059837710833059234871862789264830345184432710930241496272896942687829120421754601840247570728370280125436462816141324481351367439813589888328102666561984169691526025353358017621784409134394704532738228146934096319825452341833053124982708519103063834547037345126108820380946598658869169923109360035492697258932388679353421788124753668730048605248902432331880055076538517000663310953452402469865463579096307912092440987244595531598436696251266297286747641096025790468002704000427519409819365095172763844490572597667765460471008548002817436778558360870533376913285359526140641532342037128496777970149988260141918607529958341267669200885021571183779254926931052225780099360075618310756363048039010580077518244875773823037396897009283207602840949890206574775166719829952557481769123345729897945727159893102979945431868687981829661038113108108735137424361109399285489147827714114657426249320389817075447333673315857258471921235131591286390369941386204616421752379086691153480917746473926450269049838427992734040881403401849978395440378242957434880413438780328225868514408605272097493231661728290231708492344605146225650257312125540918073065063718272010347128889398298721876743795646513939632218824528935321636831863125176931411153535559748254647991883693244616470882968332450292527528500667558817250566539322289756064285907402537012548698204788773882829647513825769991671724855948822774389969856008107156206051221160177163900329985762303196702182057391234620303137795810925744747430359766571930549888308855173722790949227845649207568009938481881564656091003286175390609929735876558973653906356305408100687508146992026496240950225522690390511746586011961012765680289760570395073155191303426077142281469259531214824181011567897927711459842410575704948150157180167916492320805001037004541378137708403292734889192479829985131914062080377450531857682454959765211463424608349683055680356859570903114183070490835942163247721279086880378223037991697060893988774048740562584829942237010513595486506864283095799855073546774710440037196679664671615963224654733690669284990551595642086352593089606129535356291047683488318203142230267910109621463419298049250391522876404690470244048254283748441710699545058446063481255517352510108814832862562526032111737702361888996550520910109964408492851790931322110963083313222123827331338858365625545493824336271356307428829524307408858741544288546620361191987571154594172721606399631422324972903375103891542979669837706250546444531764948959642826095455743364089540722601911911107418651215155932185170773000631453078602862019242368098927318089111271628321302935873570117299076874073990076149076371113507842139156678580014885428290305796429097242547612990596130068334736568562292407841572326599667463074776178214345904835227009586876382349458094648599629313892442006998741640234231706334627832202765968793435316459584292638620394496506688824779230790692526879859191795251679246643939587975418856805934174935002148745098977166043731098930981165971107896042216861548939584816758672385937196661256826197683283531463384393031626077019647669587996471049052982223444732762628284067503972254085443888297466106312768232391496651100755111304762693523390465977144125231299944345774751636167358011387396745076560554768160659317908357614668163241735774824193158614092847393714776291556322478691996756158868631756382356502065690189156886283778855190383879702766914911450585356787151575455807308863735824183084566484008183758202440049692054641977084290854691539785385596565095568205424002591565878007129634322871978455883419127975081340091902727465277648499122255374318068138124203681030925048564733915905620592951408669862931699670191726560225002899046651016659707387756859911212558494695779670402118381856441715113742218202074564495992179776315118813040735793689559393739289632495206205335937794367737312358074208422348774088585757512660246560063839140716528009612382826217814918077377079055397961334410538910194429007342793717354462008007419702634801705916387905096493179390699325501635787911086294891772422348902314226059810505338222651651854925827660149375436914649462304504219298971601321730419452724445383081879840527827198231543434446919084769626067326835400844282313286192142023089406145812504587841127903264664861802018176293394678887964883901896151435146314513002505404567688575325924717604982373499601678307305916462275285678830793660027626270393456944491026400237553673637074608109251632639729480225323481212007531822742589926873166229542890942077265123077022160258912613611616387245635040166243596372093820692678197507264625512495713807981394167874628181809508701961552030145194895616656663511514321520705513698308215740751810185219203615643946024530112262916614354140274421233710600323900353654321384039361744008255953769910333199466033694907006844562682430308763322202265530791915123898098435313749528064665423040885911449903516553637654358405156074343988085230877090601695843141530710117910345618143637721457231630758005723233664882583283901207361364619495141352346192688555815938874017569078441679771478976104495547586775856680850004136134685380463957108985722815810080023977464846343636664057154046974396064740630301372276204505261590220637786102752982677424918502415980805601906250898884055597056088042228319113751900205665222081038841315253830930144667044387228887888134192184023654377015170993573747722306510936723831386922773850105218835069170319677433403588167994109108662665852165599044151200919388827863894123758603069984415232538722951777092834570215890920930703890114802928603318035248844542979029661895476570522407580080654802906362139449271925751474088700161592141450055432924410263243571699278504878400081581097657031413828725678814064067875157371048375981476796839562220430525596518750577900312421151535255358817132680036423353321134105869800883095687761270624448604394482538374808235346572991222373369014687613397243763972826487233496921162684485944029029162750115848350045914141290558305207208272365018800938473633897638849098831979016608371984561721984984893677255063787676680972829981770831397107557592646799009885278312117680912447460829789057900566492155655658637998993732639345673472819743001937048950214933384882570459253412564232219014437147503633221188995844179649477290761025199739634812635305336171058324331836062335488733767920209852332087620849790886280297395526338166864294926141447125491766882559724722808511133537053579260419057402440155707621457218057861115853380892529814631421876335005643592560048691469926236281402610455507337756706471342533480623518991154606253848238295768285147591701721752154294500952870509537599843562511612232421943275482328390173800130348173005739197255079314400686147905219627139488447906850740652247070898019436858514074467604704165979019164920657484255055179575277421894409610547301033108255501370904988573318821845971839262328346065418897452178072075422666444556209650087649903444826461809000947654799664072723383172863977773195131453624400427605935776086683804252345028524512772692102979725412514633767145713153251447657249172290095114509733488216407913401307768023245897876633581500508045951605919144801961062095734309286396346366167795595352378307505687864028833621472393554530038579452559898194028198930316229234688363144821527763739091940507592176714769104506140690762387131229109672769034543742273751575024049323511421813397110670617038151572834139710516408396910103202156455106061291761814117049927265963666296458877758263656353730893363228841068827153287511617389621485719964437945857860113146654302345334679143283289154201843396510234344766094744104171234793468519897015443488920381881444898496623509353693575300731373948777728218050638582255787602537450037851806156700395985661535374036180384817297240110648809634967182179938981765077520703378311674395379687353277182504888294199903178582305668386151876551067909182435682558563639144062751427139039785368019034057904942986455915942622968685408871802346289427240766313660474638635292300111074690198224128502394964895069048875630921071422344185101435179503540359357090205355859348389073308919503015690796723663364593927903539203185790280031497196421583077872377530524523574156271361385166374062759991098315124776818597048694437518956720679578745558744977961906623818953885098099135592726770955429346564321613640974615461814480684395135227959627421051817448345659609438057711048634725473647531358836500966501494551798491348949336781375540748960104990290760249888999365796579325637804222074950206849713058001270918124972446210377159913644380118274008168453877524361337927520648536392417053148288175253365584330572056412090213528307835308070663459769131650086944173370488342236228634629622860123068659587181409889219918376305564108442767330951337589219947077959126422725024158013988262336317157310340152835719341140357349535972009693483734561832812432600410567326710965592126730202711452507783560165130370557216533299933150128946715274462390225562450723244544487080777870642026431834753705934391234334407584934001871835362537111891733850509516097724835897294704142227951737975651495078925612341082647816264562917559086028369038435875382924027898243315046355023938956766682997135803328320413758491566977054996741241051115760201514612816135813370805988349123209262637903430279892487406823206762844516669356234971745977763513582244760759889848983736303717271126563210919579351530143246866663792344069658605671826429169339147969215517906082858084955558569941116411198263894060197562980183140760933793504938541439066057035178983852284179719647386249953863228554162239870538263604222496362536922529384693482576408326948767886364038210944622577174085300812832214633573118772532152015506501546128162696590716263977808294735264027571303941289959959316464750178154257879371171959576624616799063506892246690473833584021945926268846251854729099877096798265967703580402816583194037745531149454270979829013156406029288731586648957690487311964316578842253954697424687062980756644432915623663205997379216365476810077678903006621357939900692501080765079404152657886486099536462465786871292235443421870612436390389277306905629273483923371299649830063251152840937033235839099728409314912230482270562207271388289269041330927891609909138788664039032260753338767834545767658717415415993105628616725632420398597937821486659758108940703463892049526774662518109231874820742304641750473623146913744707399639309909500128894917784215430032640335663298463556808317153433775666446191498463861390772375874360770117982740427052461364447298395536634723568613621486368998264388608957533075601062014217132432964456308548601801469580665270691391458962031762028696009681028200157696652010645720779679341205644619279107154809462557067387035899569407987118030650700601497399484857546907121097542074698976964424276868465679198078749861798555210032082785557015214651404705755226268632640663466797491458087942156087174530894438094166088537333132098874715870350286379815620023323730168247593786875908003292036733342762699878709453615902317178311335271898532406489078528221435965950892707435132509880305939488084363157421033477007439303837679149884820706557894291424010027837020697171497496107388421213191896179459541445523431638990073479252221812905846207598229966324642385460480841281145705884573653340798115022908206070923718207036879983888372780653033067043936641737826840881124211938974760830534845096643083081733989606483016465269891896132401007691826821573617960195322465518515382843422709942020676816073351514318658225397406260371100698856432761791913875142002908050978042280558950330473835602057787566772541445056802709067100993849737902090697273397107069342169513429199282909221643562189588722121278659171401062339383851384381779191374101832597038495926147706080299809670510358934088872716553745684371495156313616420322511593477718912649775815249958364539291126717618016483053685645620807574470169892402776940879113684709640951489587129802798661695680245183075328149119100217943236697764231726948956754424080766885367728978453212997026360148655584216958847957149766213304976025868287099978071827397904946275809028541819091720736592335518155115190826151726516799725130838735140327537587275677495111099369019597840842169510436209831611491498368291918385571583411033959651017450476844223951868158265668789580450942653350279513263328790343076862540783210809823240586903023353724305918773860446246937630473227757054270057286944721034932817539755380253935907409446902636146717473815594038618626052688819400123250327644398820676343867474861894006287249110050171274865627380326861827247412203676508060440823550109670998310539263976357007318945267300387133213984162162326776741987960176195823074584023640611947477917951179036575770602466715490016858462690544992145665163344269761402531567327300663516646167550793803957045680202249639638745247969472140899577538459655988053203377684355293547167881782849386608488603780713146827963538540652679734190428589491418508637729437486548144357517073294055807421264046374597831669785110170326403810114908675864694976051902818296534500213634705752340284828848566533838939295356512796390835208161064729654143152247531796646737673390154368581159022461840078734881784341662901754293295731653941136154168237640303596670365172368793386922706239595015510226914475888219267751938968037439180208398998266196894811300109722658501336523891861898479727703282530574184744987761692324522726640301344902322359489825290828956443018795786703792401273242867354116281798733107495771004277756021177243535873163066630510875874247854717511342800054501331626620692460127620260280916207357552927866317042011508575545433561029723714644050761236096235314565359036156779353222517455051656607319174935716117621989367878813759977898386086122991727831403365067039725047244957328124943102569720188466687195993077254725947153598614338433017824032424831508310632390939943976279801877415219396599392879228483613357061259161320584590348766747560105732060303730621594040209378967234643012771581006650495642440304266298969645888516991843232207079779178061752389202980833011258805793123285490827311736686893988232087795412067490537652113062563986517404260586911551920401359118166565071085346723838284711154278242381380320604499284679088093533843827521386012085345259121997491846367009934278804627655249968522168255599059618488640528475682729230801764970583002613465915936689787910708507601704213973994315876707774905353643345076616069855032010050833784028868285248180946626235921987251614427326604100366127234249072609749079779825985662032525321322639160782068922418916369685339095763634620018876774004764648935834916799407877713448638922678526682774921673672408749471125839385861067478144709517770500437026857560344147192882338055572716213664675970813175678146792446571133377279858797184308414708522104825014207773184003924116507401839289819150863681444465818563750971770583213344620405530891968837204035075055825706318795045563347291376698503948858985583567443918504932520905574155464891819529495363186393738866960575449447651699047795190544024001485715419017022109677754880775804962983296343923865768615055327657923287414748999822673870259474638867123364758060866857651453230120306121708042267819616669436414371571098135389518077867551316198850212552436920203646237010239787063139779538781576439469480846053709572996262947068759606509016415257987460373937109149317254729441686258880077844905698507667530306368009694958927192207457232148353188523213561762015857350932034733919378822491691798315150023921584651136936740090670722928832974143024642212314295521596015424174645436492258238402359453897105590027803319788111341848232491559015840036391076084377869212724716632816815283840805534581910334743392129165617434028553604879380709139217583523857574666434317294093805440221913418302737824638230130098030640615277055028951546398229655251450206171954567657038005985091302812830709062869297603212259899049460815638335405262907983057827790792975815654706459667088165660045630759660940379769427684420546630467047362380279277359262378707708129756678752098438584341182467356640016808160711911321599093205269344188283604970885238555353422871704727967281989532695191342650371073954470270735223284244132953678994455757888598463445064229108044954113633712137613688453684573668727367330357937289634057269900378811165037766624739311444418997822056041053860165759752687419232374076801199072295405806378019764461720628169177906266434367358467947214625969116042971513956855583313364099055561886568735703357991879458495770561301376917010524315714732402745579370543092321797472366841861867234198216345298765455685356267835964855995430854152586547522667541505398920351353832320028385345434167805761769048828106994780817937564186657199147665657453658247923034505754177364841761930457820782691248684098789632171741429172593056045165896443809043652399120124397873441396403101129763917776651880681546224758991780723305821365916733775481989161470219832466562318426144832014383316540900774557680853098876683587537091742835423176914245060316654038360871802950073909624447436312749328529680000277507557154838966019179215820069777713279594341547069476759026663147105513186440950699741362912856060778391110741092000279810139153305098726638598919771040943283629787408331028738431451590562785149946808031950019737984575146689291413531518665117146182952342360838761013705983577112163888604207607189180622031665386498198612543933900079754416712180486537393853271843797719104221758823720378356734048874035862370602159831415743210600304338866707590428048634691154897314141445848043403941708864934234112148394709292751650845378485204972536327574125780843843205271523383003692593313425385791050448783977124391104220356412879342637025171371592771409802341638103631384147411048245541343740897353702098754265033698454479634966746260406733763972447135744615245424102745223342480840984296487936801954962280154683626680373789971138029092597839302882563364385509485819144968735263353693507382499154161402727141238479451891053981892591940365175158096995993197953800463443819612999490839022107897860990117222483121426440428909058238777779316262439615926474273692843036699011827790773119111004644126472231618789227759094518774515121240017322346928520561636772157007632021634110887640509480107413012916763727018213250557110411775301477434030130878136243876906292716315789571803878603312356072552727070844573302565642287572855796967641043304114293100107227447421061662180716933342540105574058259785253785444955809265627742146527298458182669062639791185716760879826002174525179006386449909694721990355888458551613579918443496736874255077745382409151090752505063167267424908033544404647031636916064175208529334820128051482109877429217432922714941692596258779588795435632218249549075488416063719486081175820910026898411045686770434023073112229652259565182571341177659902805894516361107586584339386280301397878630125279360155337602985856718783585195807686070078506905073016720629071590968285515952605122018833277191659966304385087073403221173752929851158974775447588134564528120006306625790611330765588656097886283936133580628409762546402924989214988781740351373253754633221819909004847891188698865466532359590408800154227075092704112633242453415063299100631939754232321114698714656588877455416672875532378485728462017278150119164579696289480993056966773272388354489279229234411351420783102868970167317198609819530383305849190534774792801873307433350628661172456848675016124175924872252031733187323180684656969761726383897899173187338895624896537515066843783658047885319608508976216624174914025602832809925384009141846765803883815073939114137662823966728738523439425036618726211461126948473770249777001844015184342596815555408230645382628998957397192038815107091360558962258794985530024563717478042753248830391709464994634709398371143639376841323949533142267016459987075284173605570053350494123100973165821077347677279192890128776977144761659457424337461813270600472760796902026743696120753914296562787817695229361316899230160728346638567819442506196211482057466723474586812726193433263511875712588705983538856722864487652662295071306062866556948260700357968710100057089842511448651996448372103364293353910043542193997185160738047623270142558917302994218160221165307792775298495538528485633560548962470198170670435301804170403291256952288171463179097320481977787236327512828687997747641297926690185017942695164119724235477377719467188755128697655816283609599388846461540984752935626977256739713071586096674605094402865631639446466480810793531778453312643441780368200377826554375892685624406554886160608585260797760918571622279975609315272630222116789975474433033508430870519072168223743236745789004603584933746657400717109439125325701130100413361141293861298849137391609960134805258894803397556625297187097356329703437593067171921735694045837415621099047189136599259883545775836020662545553430926470721827581190166981355824135106069711119964940830771433056065185788196165133967877407540875288680347515059054969601715960995878631280472331508669369735035259085381758889580769304112807453335350787016560184558566244678391368672745068356855035475034799137374991491588629939864570544862088920753644173336019444667364051704621473917759384726317811866076135840989957754073706187730520899511533498540433841690175080865451237192092424324979956088461108832827452329754986358326033371238950128869406714385888515445053381655417334522896601591755010919519050939146826268675751805314429434176455617049018229984000086886940338896738268423611715334189546684968611888662808803602449825612925085375479440892716290064129538138785110042040412978857179309344718812287515227459139667379860661789085234024606394514997619221670214795121686376655753388238455044447072522623844437714774516933735478226853763067213265650393530542051183371456668799057283879655364250407752878144421864461016411967600334542190834368568390688181913455345355264934511805848538707683068827753676149731207826471587630678950279571850450375310781160929027769238667997140299305270496272810132609131670723825826091223969238212229713903830346569635909639519944601628294063130152630931219657240248643973485865424366658075601499871213931194916585920960809908481437910212118596354793155425060248545496414678136788195070572205323736619000253444391814265517629023035290838041348754356707783328918272555394111305587647609326627925993464407517590805520555572824814478964018915658223528268135730828563262818436557739530211819458868815948385878109159616972085558181906934269827417808274129351571241320293956084034878286315933975596556083490779628000862868408810292491619300400127799292226239652262489866083982553574898322837771779454815936575430084859925949649622307089909717222741785572047957597270924781309436053871377218581214732856154966106466507880220662976879017261209832596584381519436316863305717232231295040234821787295536002192652075582040977544848868505376574171254802149580391261575316319329505753936021096999656749011918324183864051218131767906872744665197311099363741356839812792904391353960271056059016210976499150211386162530445011039623718189028960669568645819800577201986406130077657112388584590354878322388332809833317579325349218572762636134651741480263238663403983802605254536338240824742055908825849785915226527783448027842382356136616096230433270803364725646966820036244768449842529145206202455583960175713676833253134669635760581760554605195500768752997728660352663502098776289568202866673358482393214466467936536608745358857270689993540316702870179936588931400216690419676398406255288325862442559067634817119030187371817873876333751979372156304363418389870987925117465737451247743848166405611547668415313726409732381864915610994068630419307043234731243521771493888345104534160161883577357597970383866296163414914821334953773325473477450767720071444386519773740342838497718859988499319494636213224881372480549070101536499110434361403617491840340768259234463455940395433348265939458257111859917619131947860230655781211521170601742499575811570129257713956813463861936914577262652628280039153927368620048166029242542560751819273020855027957300483070702285516184596335990632962963473859805009694706262527330680509453975263106399590766999030859885848492962797448765671391682553987308914627776873874625163425955927430414399567385949409047890959815394684509318382255201981766397181081937439843876349354364199182180879007813783903181130387619434912129246668527283844354098929833884914835826946135720186132195587191718080731887980278137583308114273113183218627428347255472706652209095423034199469898039837951955941707268057556568022547618335305904269362590744569775977624784288215842200044631381194033261943217750939289867342194480388660027030669649879478469244802633935488175613985695267765356703906519729268693861938502369011347653246877750356395587623323185166860336250239231812761968724147440282983204837838742033189254577681841201717739342258701399598366265767525840219886540605151707419081476563589893953150777139568556537170631460120354697979276102951225613585706041825470341741386097530787139884313336041919937476338808584332444542960315236261898625752917039015629650867606353931765706477290384928208865441856892334135716074041333074030442009663890480041626145196373644862278520608897688543145468171417832908042188077064411593017513387162823826007037274211357389681652649072337480304613533470738186220859557348679063775823371525590808329766477133683384762858918796156756655728268813678413361287915294059646034862588494871778623419550519211374980229441585208800234055170090812602348163331613940497742571756692081913778947106619602053175837665864577213136469959563668036457250420357941116859275449890249140761987548134800988780846236263891588330481028135531094382857562574622516526742120739741275160539846483890539239665424119090983008066843963437688122103582344740202461414338642915314089654010940043637911956173614124254023340752241806139581561452052177294084479469899556794953011109807580050308605001428408837255380046615757807022203771560974940416654374127779920595554295958992150695506512955993059088415948074274937622043617298428545751391761379393259887880433355206840457297745398889262448686543171413743188498689409598288711179732648978215867267343134639994993482143874352268370030495578156025609663583927608541108847381327908521752597280058870538413075133931165567765722947791045173663501545887514173147993118486710691289022679360371238956472174257070522243581105634915538712844518890393182886653708436280011623686937335784240497763312890835619815152737062619906330713516679953401805388566953840947158451787579787520270445381796094315167809695874431038048298058541505343652809158734532591200083818250589258869867065019066375010698121082569383722775842727072525249616100889362715211107258411646332439527621002449014055439778260560679896642471011763986333790094060936339539743885439340776779788252492567925398014084659880493030887841953234328534778455605755482358976891000206503353852877984659849825346283340799489475702317378214870782593395117763403947602144709039770232063690142465984929187398825510558741533888076342798841598610483620039584903220083332831336291990885503311153867501823102043220267032991527618963045464795655993097560855703342801999560304734926202143703235652110867341199006012654107645945341075884935577884032056764966717283977130384833117593774653364498165176419689107861842681831429035032927417304187525544966946383464644477848577073161344197207211210471762412793286144777619870639753025000755971181018636742603043464887237735322683786127956545206864466122326643480530711282094276421513183090424059384791974208064199093869970410853997199999014698516001518401167291997421967497814636913631783437035451148792395203554934471020571054506400684888682637879973811287104487263410458525223332669805946672717412722899386089556384258508093847668849515750240675287256909944311721089377087199391185317506681119916473985766027258073284946082711464894959161544486998798170212329458640482691640855176418209460394780762549074648317917632393592245450260678583932432310387317455165760483181170792683903483064010635327360735412660757691746453022964184730188786518330982048501237678480435740697610248484215694185558810480812341563853976480581933473461582728987990658792908372779491939511572579027763939546262436101736768630826000285731946667812161398726961578091934207375855214371585182559698507915332861802894672859125737996281186177308740219055881266501576741059212175566237217995602869275460933743194857266441308012907221494947871681665585914687063584443168774947698943738487176944113273925295499941426730973499077314126491580861386384681167257873326929905015595614081253193520148383240297109946886367423980741951394157903560111593611064226746048949948818837957465944024770267046643439555968029872633086185144427861552740315290925258710461981322727714915622327466089438569408630183773667383526502837369853093872781976114684375546607408979793025244834892982561453121961488800651238092115794835297134220898280847740980109617540717039123539915675769035632533564419564250768607790942390734820569552771724559466489632601454521426009741124548638102804218265554014708799287864317012332087265330642957620800526021521619618961991739756848920333017559853600880039748867710383293445453675271580600575783296188322343015074278938798374510863179652739620125968805997688032753444237110725195388577123005641913415981806557927895580920370888259695294357691077809313067135656975994253876663605597178075694154338324322988788441342493195412963949099892675543062879783683060317899056906338788351884642650132266040268137764070169686038063315771661882356509345380733261421107843809443463923348701577753877490157000323961034435433125622431370483877767603514971956421218571449176237123093478853327664559931753442451958834197802981413941321252045032433886841047087807902380942739274597389130616544939817092036640057278897443175831783902018101218132429175505856150295860192835403343488203404367101909542446080937217736444815465297580010793958858520873900163367868522632415245935997650817373268766918312755866129576931393791658091500246514352107793053714600812088242929147319000775038415264055826667031629622274636082032865782722888231607117314270703739780339347682298513929055688123003253806262017206867774812227521365682715842545722970705484602833996029581408862913098912717545419997334716650932442690211158299685726452179006042016880619009102622560263355923456842174970282535801116326606125085981718184048626720289586346834146652162868976653429658944183941087587278008988631914633719261237572095641764172679766822811028446254210489874969970097058557192010697416866159874683349233647695663929833861959588840245166012985055358974823296941119627715442591616506660456624088603861131164816701899202553296082375238007430010024671373063684421963997999376373983476726833820726775233254702664657783108228680919208794003541918928442927316228116607684979827843667296244060445613071791483968432306917993420969122488094591642495040528661466382889819872326551117097661480312738346758779832147064985267035543817543290580209162056444796431557599428496274918657176364753837366348159763070970998282193577828344819276064116497888411302408103539751733678421295441933501726422736309731797937513793312875527911086050865241063088835411991378751318742210570949450436425284814103524481877472281957538443847001006299285566485567351316206985410279670365042680073637795523537073230283770826593648638719232870263390749706330490150575882710747106806962861838076333940264559712322128361557883080401272705597875835027401466729386881924126067087524215014394456935356028662260231299917892860734882454980007003737547395248752289297653759177974128075624439167644409625281164609647984257008667768984906315445633104941043392497218688649535847241392330637302298475640772381803477937787598886754806856865370454183460569106031995776777853720155519029793618635141228292538643090990052369333388097836330809437043307083506250379180412110414683227260107330136013927170677745696955538341148137986727815388766112297108497737732744044981939615295708402928214178797751997594866048046385862780893271475924849806120345524373483948889871840652303136841772984612720286665205445780793598954047361758908909318649484233810853251710287524166659116025373528835912497314669186353224144715377489931611339924554809336207872272330022579837228846778849915965859073228165436913010697706731586703079044668033552467440288442700092297266806542430302468662267014352761433550577875306228041666631581070742449383814121982951492570586126194107116062694164400750121524222368060731698482418303056606281303324413671161483749751880263861624789836859521661515026204117564016560190792952359790281291135262264824462010291250670619709127015711049233117637665456367805932723713623095823345419468221291533796778969509291228020095043960576177503591036846293002157733327716437895781430554337429011416273158204901771363151886184698485291853509416863175620509789006312966238612769883743282885064694490658946541759557567307133667427392212415452096810059113435410933474601182504627648820483424751231129376216586076587164794506196316047555267848164145816309444662759292747956908491871327951997801412591763837988419010711490657834402571592826686536018097063501932391619876895703956276556337347416952463644943534880675727640261634617141655748359371593256882127020411648464446264285586053329730507913158048892474422773188560649088345347891979563862505251952856176692702261452942853003444346131963032744293873126177431203768558996732823062109779709940523181267573949909241268544789605531145396841951887700021824209812738254212449299957837450114170593890212114955432654529780201841162347864768567676811274976827890107716258358274194745307608505419471361248599974169624159288457351836873587124393990887719648139014692462662984812865138594804810998333711555319872459353794188887291749601747722349347245555575918967153341614807931362164559730699628812215138119505118863609267461371661746447577298252036005906548097806262673873698174650991435072824556150332378327861444115216024201869307171395066583405293388383668314788765165960219585897421294010032616844317896263311094489679384304604626705291845168431278095051868981563996249562710894304467346533077712351394533120517860319551384226644684702657795632619530403104968701302427341555199071648331515973964051477126737905112736144017202458415701439454367478430950228405240415617184478352871137894940771614466593341667971921661014479199504196959009821751541755925306614765020643611632750597306670565750715477954688817119689469026392047467864937610035279989108517672029653472084623741975031792474110039625458805887106935637100931984490029580824156432905112975690407032239116119795575393328117545899625105507548094411397853423547976649977625868973285000608542078691228077910153238440942931031406456526965038604351124564280204038456173712969652192246308051761615311133547237347484418558243799385716262208553157612501437838224772108792777832654627348018562147633113260157601652518686925661595618345354479339450737618943309464411156661348524539780712036113823124871719185480039896012850987046193014467882598817914403858215744492907163078627457795018206041807704140339535938509930805622053832913873001698766337053581601911420668821999301712299844657904783302939883836300071530927815342670883776267220874033672613790745309802823005111500059187802765716648078414676904537758209734108363063158462785037496972862612228808991977516314290252090637610904664581797611538257742754799317816770103652030887393712430540722213595145640372894959682063687201795566148860784900205742783117912192757468800032010512694215403672809761625116670743558148274848872535143658862706082087054873797630376118399748506925088223571511442582993176026869317489207352288892984995675312073066219596097153150090331038140317738211576119018115162415850945171173387271911898205874708911688427340833044397190276420253442404332415189244164155759789704076170395646126961643599334880991641108796623945163923745981356555867746471420258247145470292458909358526794552352780855612957024527317272600521494909749603057073775019412435503749007591882667470024073372565428866743246600457046613599912738537100307779279411853274819730560737071041403180101720212294468322079269528901971939138467461302294893435206586633793339903243832751139754844753330178995398338955339430354500398248577042079369557321258299983735762495971038286555815400448114402033529994972358548378537326417001544943823925637446132090414019639524789249083252315985966450568076896382157886977025501399326738193953930253932811728884393621485150754577819539442084026482374786987740622714354648366395167513754825075675468139993131943938319572130405470753153493021970100977278231987328771024773123037039449238082057595168955090236535069084277322896000109178563304882377103163057670020937718288434492336968696676932033670667326193747020764025735335317055805177091775234879225020566658784187815753874584117939903856015297333885774938929055739526941098417372694120392105627210518308439921663952148273684653083881190142825472963457596801275534230395399965885921493289273466224446427394655717852222749877334378537457228291430731837780273873785010755075289531694423158517298268022012993873039203953545184714526526407888049910540572858619175730794957199152840059748433383719751487405946966126139414912980739893103066872869777363157887182401298109224566006235124992018423645260140581291995866455017857031548777431284946706064992188134282978260118224914505774611002930787285796918852337313652975459281190354364121164378784774421265145368849200295053238113895560374512549003081154565129889299326483492381261067312573340663712154049117831829416944116713865376197318031768723331734435578718457135316612078697890684698413428905443341201813477148235295590034728195616201990150148296411614628177849050729211222444606343399301103574217859913444505244987481672922788691766935752056916528710985244761632354404869602757010685426632344678334258096373541327560839573407647948409600394713206506253938956477117894349647293352810635339728292567767074755680383093102554396903689424639361382618414520558879705971921127212395353774112434051057547369741669863896080592757834232605489275731778000832011461688423816946381086165885251140327406964359472729332778629615199270516942331361105700779528575917858710398778086765656569135090932328688321667268647371963027287749705411730561695549231799806498885413314800567797158730166379600314829069476712270877481524799857484575970115135560498605805638690426962212023675947435627244587664537322479703322474792589097396282371367376269585050462894339067778619446758153223103025269012048406323230959541476299281379182316858073932447000178207378865333941279503122714394829070324549713542378549843791337028108927869262731970581478047274783716634292262621673632238003816242663768327114755232665269783193518376306476467225081082636238440089998343079865130058315392043316817925557446817804041382757180105820840676873394691362955946101395472903987002294624693369302757046463667233638216355456313233014299696639867687844719157468350425994610389700707243029340437289264952213573191170668090167790435147965890009271019228793772710588482406287514019984493242192877285352538458617396893389284910978357867221599418614325476948317090822646810492707328280032750301597462231743162013877679083794999243595235931112241002526392907537612045499796641042812635900217636560543402843287399734524012570751545451205305359592782713175372690940052357549874546720705968846991195721406411435479530989531732419100066911232460875747075046752137772474533469703652288569255549546013564884008898898421719054722598590180994404874760623557913419685751021180101660200606959804827300192952233674273541487415313826547582721488008333236661404000520788059877395266850358001985986150814335194396351747699185926403262440777585882103795599857579123489081919468049307961408077601631380008828178192908141929834277581500261390420136243942188101404241001682821917068320524393594735832923676230974570114318136605279442856260760561190893268969360379033481746143220078216467627114061933933902583896567410808131542135561338904433383602841364460475583354484824365481149327973547703814591366736200148843673415489769404956083684903710975368715543842625402768877936928621472076548440575015834432918075899775143755165977202814129904044496380981469206818068811777475669651636411551623288602228639095198288118478451206418927590429780391314861384478294093951103001192036075182543254914239744280294365504629610000576552167759739874665709541317979684701563662957542403999655236660491894300143955564727999285926320992729600637014707101726704154038720735367313280232284575068707219939733161356650811535006914726675151938491088046982560345595147689138159090452689504048760736208703403582190216822067427337803528944915547750477611118847373102722875825085427395636554434318241432348754311975011128352117665573471737694226344702327158291247310797056954195241068746214269325954983700660538381242436468963445291759000654705611656830005171824894725118639081519225243148135028984026468052311212005316390270864395532073404425318659062394989558885311683271881160508187123240535758371887955565740632818076090440208651346208905949264173902137371912729869832360608924364145893467768973409831514667856937369129075224551352119179578639820317816018531593588539966929511699951553438277553079080287247593548687326853637377018263377334790031200055251952410057848750047612571173224286704332603004139236870399752843822042507348478327152517064506338378003162156424822489403357308206181601363218014587380293039241351697299146884417462506403932953490409346544697118191818309555951730776728688733791997466378555804204164643226187303269727220623395346209182948890423792965242145326410686887873586798024692071333757976163829305855599957043980032160198252635814415907659412606507120215770674099276057029554242288641005792381673147803600130919363584263038776657965415838234416210503362345670930236990687067705010557463816620355121911491012331144573922214259914447677639105949229760584670197269967943416520233834834660948233834750063581117921734024010303963337485598109347122371589850833706663618985672587880920014873024927107640321032501239646502865833205152357795161456570871342544414602542227978354909574208053447813258021709138700977795090878111104323204243140800122448433165084473246142859262811442470304033726352928034432939434709645533112978717826725879883553942657709762100433858824277518801135702228077704076185210580439874745934125266124628317436502871484694184014259422946575183428602864147561632824951332388579739899476575758675334004731329702842465423401112873483903262597095349403187393420052606410048950783926056980230593965262284127993587729427945153774129445964061168763135478236527126086757633322212192863803165901999914839676766497227377715385383501646921555804234489527770260236047284056971101222112553072824727385832224062667819075886280961048569367579736564240865665264998432761623334941449572072762818845664885556825969163939526886478619970839591627076744674873224643501107600496328057941568400400574884619660389469225575432716960364221780444580642771210800753761529981034019525464731024958015642200522011878842918836895654321087358877215757848704650873810175508906961397502654336033631738459607926242854347261872050935638649800277457231895793652657528879962756819027154213748477236448583255677714249401277863617415473865133595011751046807212919099793400191760533424077931482254532080518218867843043003714384305947009872457916975149432795015650658866514568710487545335169823673198373424280208898168227768175356213796921233798253560329942268669845286176655884141616211543861068557135903671949349796679182616222902600142362689621347900979500326594734316617590504166825736567211654982538913461694297564594964659735074792322306646843742259638399622552341182397503202206932818306218938283893616116683583639604634575680355970161219807468258183619391928952903158465129951656545713357521436880186446896445398886757022763769498736349467754419335596996258747955719440389577292077631438596262921184946990466676340437978217434734603158942358972725977164567823399326652594751451576007866114381880817636587292048825982706054815954744879630759075445842197623410424904438272436394637043810252218159788318387561358576177984540623965991798183141423814624636864362592219793645448480142583207926207056328195185991391640231967494737379691837120542455718212212224081544277165768200967131060550027867075343410243996949848916122911864311247405987776611138892525585907591494395796184837904480156148437340404820655536815517058158683901244012367916801788919555832562574549346746654950016210343172782538711197540736107227346691741841796254747430346492282285356936360730546434788728390014989906881966118689638688095149384519698977760775431211204245382499979159786033259459558375226069641869852604530625959815625000249776774562644475890939993988534364682917479862936538718232964435457718831959392724650884029012404609566054379836705106428537317352839031448443239343229023140264046633165207098029884505198582640940453637074690314611639676753930324439286031336579460024259520452065656933906535197963240785511308374826088642042699584718514413337600105575785240307984543629379286654917528865492270954085720494834785004538872849695219830562142972499803955024071348590436978074765885295156970090030801926470547970526328489176804218069919977947198909327832849334211643858278272455061796843677663841036703187888543331247327508059482167278805586625570999114702145864617311737737743745259099562391540885461567611294681838794561967252571866684227740135116012368112601700719356994740767868280236646324409740421547133332564727290666407476771012045591921721146066637684384501684969343685040688825576203017906793046168098335406744589746468876173785753928850229876382905779383605535221670101071437378754848399854716883111237966143470473630055924193411206612063492760225123107319461892235972694769171661855873419486729886344856787044988314389642106506638288205836354846189221163631456360156296937698290095780335524099755191754266950695982918623456729199242580261363205228693004096414802510338501440552252007140516275502913780775731291406895229056401538120195455774024710097137866068396432658158744557042004198558687949079365779448503291222169921432859335038117870224340078566645286073277632752423059558776740445465096847925881796676380965624797985169735873031787074205115967497316383440366941869295566738008803644311241987290199659314881255395634398957377679853383037152161826675936882729708292147472077295234520293605972370097620819443454065296662456207950002087364870645072954840128023702664476125370458545096758464682374221271595477219056750403161730476686006328530994002076252342661414217331036407529664142782302699161561635991039906464034972283875986579763462833416496606651252862859460446334844970364434902664669172063355795952412058955623010790694228712278829833268072595055620062936289721788418029643896176491785103782049491495830235238874536069417387059113111087273085801117239135771816478642131191967115303587384408494284323054528513662132300295072671813072778486799615320508063981494571898211541341688843374288087589754596215992517722515547413530359190418802856354491295615928964932449411947990544966737938356534644138443115345827709709288577272740509818269456865860464824476295688832530730542603196299989886333577659045179199504099532438580350665547303335802109660581883214038635768085839075808923072994751643081155274276428805030108844251520059290631890260192313439589061133694814439787322851052333160404261496446077915241429873947722041475301378638369528603866417708295978211528134334556069663672912662419399529493598451718366729692582014174036862715876908427686531089407692690185418240166341409840517870886787456085486841454806259349111626091269243782405612484796683934488537365906054569965598505174458080401933976754048930713543308346970665731251045434338511400011729099567154506205053269868127573479612238198703438853838453106788652563891383414948953535622935312649378145218554201102938170808209493576434623657822241819696599525117049314429844983142942222309863757143586053291810020059998739767728294246130537111000533336509815558702553442159437000456303989045271270482415881236877795661082897152679548929438697484899491844053052202327923208058497055202764303158238550263235290567029087949903092448893238231454232039763495016781348751254829267025990907990127279059053568817928290155366387405893452725042379566301303144867748280492326210466633733521362895480849952321491767791741152047422539431944506884966337502834076400557348882942218544361335099546110597409594553513741859881331882397903962917201041899543731866896604399335430528893790269831486470137806457151505995666346060192802057827377647948898461555916276396075094973742764268357231586652818158617604174112307494578832788996443076326014227130845953164202525593969412481228601128877810736058412293168147083935994654165445009660583906586092167790226245639421182284460582659763411885915640106862449041602571203729633345013515731472914940600947512993847890277172502673942572220624598136725638666490658440685296124906862499592340501443948252262929342394414304784503107974610724035240063627580988853470195846186284679598420940978439033707257984001716544669394862045800495882237549992410558581003856652269527261419101261764223959392651083645310330868358261874813225176566672702207116371249537067768384253231337182514179886407682080218046856303011988478734497954649511460477583951046530655645088377586588094566766219879128193638692795870693772218151538568239675168298226669200578038424824303013335283844684063602917922740755908766333014497315456514499204873241711204288861273501415010379820299866263519230852368209408905872613155496076317844944130309051482706156985547173001433569703673133966991499937767412262125817868364598315884188567930033737768547982612848951934459952252333565658082146272831916337407068397342380634666451740144365053871982204974807737220367393613186298717202283616060227923117229106304113525528842886759630830276667293505587985296056586059939144790536694303669636674988493190994076906830215131120484389975847474326570857378785038225626106744885355451773713974152793747863010331431752749679366198700844666238671180050456036328531475414523210884216116136159888907471921981601895532641312395720928237724311550574047611095833015780820716619198141837665631677504829109510138680772800698820047667080072628137066882255869619767934754878666996970008332327147812753150004836272902030472799008330591477598616238210024932554819234157289537102543858483323579970697921905627748891665886353458653032928551983550308771832753771150631319210245980850415079196199691543739861163254291228750884023665865130199837332757913176570861516840701794541640425177831212323371743534340576256574477767369986827491344849624529780836305105294973461015553930902848133177227941067153623037670223642902057732989243260241999418613117763512659242430566711341493341431283257285939621770523506095521567201625508344544453423798142165433096809284967257316044090600970139315111605845492013381653167975546273695234720894414626569512022590686257058123953952199583812149457209087645422484021042106576775497666993634204242800157604403251695919648947338988376002356180537993159486926357157576383430104195388436616009505790351070359042520522101670135004755003310973273223793967367921097019259239916644330487201869402475761858946424040607366703668458400903877380503006202136528952582174631728158963917896431552583786038779894911353618164473619318812952121438722838991697473136184487419855142855531198234869755128933343662938992816776311989273484285831876410804420055179529772113043659011736302353360267207106466444810609102051896609614809935169303671897805183408687586062133587350129525448797491973850196325593256178226756542433323940598464364109877953375496386851025285554488940457973217776102870139771307370904345026155410589504586661561228068565355194928434034851244520634956961354230719594700848831624842015745005010386481128471194638243875595792311570747127550208135216596423211683444048630212633278145987022793800011835003107921258599883207364862170435435360251753767110217584055117872938953687277146323917076811370518709262269221916577948645626386811603366973322748192487509518966411156795797808660070873907386547550350040271312879225366630938855473290562206757782736882854643458839564601818453052241358880234161354262812605699633679878264962135858443136170096135310676802548536345126378716093769848339630547457725115211318536155448267017174841615978019567004012628479057389216794938375126205212967191096209156683884935789063082192962516254859692067271242270418877659826335500348832676330624318802746311048402755672168960823234918588254066952485646855598262565266847499191731009031766768041662162777929178385725548280016811988303902680869780069260728782494537382672774981834835141926558551535554600295913867072229678507459575294590988112328287358442945890852606552819075765259935897327800284843900942949981145560542666986543802072974507889481744709374277525046209468024507210768115364653698455273158756244108662334459034800658788272797296251499438268143776959433854991531349839569190066023430409460865349985494790448190096636374355686355582705425921377788564394365946697028662089438601140203895407126706912321924416950475941084155765810389332854136910651934276387082278505013699591510937262935088061136480886510249815825960113404946187857986669989514902813811657394551172731733831203096615002194429407284856962394166167225566838257256631292580044016695765498125559607871996249443924847669626897801785167784167774924783091879877488189467919596364716596380755873373376495752564602615782931516930449512847488435354508224092614939318712007550163358708066031074995907371209450446819887594016211623712111968135342502548975799831700819430251381334708393865216364901248317944036604105983633762764131943507652053580321591305032232537068571265963347009450668823183311156543042180186641065722128325348174349251591197358366588281753733127133922119614124773077307983716201596113168909196625505022779734725909057695765640126505629678423180800768738009523726941413338020676730827974772780109939881557373186620027378613865344283200247892139437704376447828401611105626899185402836747603587451199014498561540767953068649105917235662333720072703151110865154969628180976383501470718834106961518502834644312783816382494546590892929780718911647768646547075721102342956921755852408975928609296178396943999690407212152749578401761583176501440993939177327677987917186164033813615832602579551304394005385863689081899590554993968359478454897338927661682364681421134678222696548877208905404775677144555163694179461313198162877303082902643188833511185001509651426972098969691587339781408113912353339983278307978371864597849720220103289629710201373463150789517589114945759282131716805750867939479012385742649551000289830149217335632427466215640411038007626930914865051240200164557020573035284964946536419205275180617939199547603629906678362540429108287853126932387659638665200172339105700484709400459192714595347285597332380550356163894575565959186619458982780311861850522958933531960653752549969405292569935467635307596914244250430796453861461894104042506602396887737839181016265721854499833943710639311976761021043397247365316608954332552920502964298700447005530629213711872480017566746248190065803260780479048826361027250483776678674528393082162283271415577798004798670924322735627154564690492337255374037589783508344811481507777105252575156898246380525185411811689905382720677877414033844251422290809452199619164609413295397899418769021790917443858049171524783581340740876996138865112440492964397582960973454381343758628090296508072406586104453946819692554291981257260843611716390763492808192939567618617837453115000646721549188466483671341465405105527392919621987738518650023842230266262153922118485574326337290761668826722914259636737660396490439069018724136671304402059413803326080341282884179728040867191404914447375206676760795594765092029790671777485562148005856390968065267170405558926603982703022485961729651391358687946226896860770205813847666920581408845637821295788149546571577428952974823331223756731367385961772579425072202598468544322026828598539853589855757299747966275423078571487350378109836565426486348104641836237083499951367736554569565368098627954806410805439343590631975209400402605623793018407019229581154045206688859810075814680096786031039650654377052325496237569698015205034274355084137858923614313411639867198921937513619249069413863299243528818803314075349897888948619310873048515504046903731761134256957729774209826589693237269005249929553318548630425867039554972365121302876193823338612817277018734573337269876082399660502825118037733975270206314695726170692035026141191972845545279220367409349859570998088552966971272401834284882400129833113373471349617386846579864830632996931905804104600722064897591677243299686639162596851986590248944788351692182063080019683866453729621156369135303638500804125925851278540158958125698801124084187822729637130955622473220484095062702192794008730582432608335409013609080849034452970456858874425710282207124079089079764223478837494478947016693733747346330826473403305345512219450950406712467465471002694550048020745092773921002152721372727623311139766711889110755553268074571040425349916653996449767919962800409213926440146765175198171577899177660773930853257352884101518672177250237711121359993537756976944364670086382593494498280286321969833201243167996629423095963111206239339691828630415060855308771344057882573743222414561944167284102638579038693190161488234676496479188948674770562115889429366525952425198962918968374963096772488010225909540777517477546210639626350412518906821223882900027620910617570663971369781948920162028408249393170734655916185827883573771397134924702573247018740486870624696317972604590822380076050687161314667128583933108884284758120480318628727073088091515162562791585651962694868904065987506427272743637992645641605301559847213728846153468035472861677519303929831675550499296783292043311913868739327787770029289148759265054826625243706527834299729796876326834190081725633058169210633542697942992908912545463489818412808157231141716770243971764241548292534232559889600975643921288175832200761023583870381592283393775986792673756376590829717128931620353219594415429098302702239696851662678719192473495017747116841249573879857257232358281072210612641427341667935245804282598370053368544060045845762203189428996460686164719127163947185201257971683713905667603272247320850649361848286671433033928401559034552099334496871216494959592892116123576773632987703746559330789281087497218537921333957448985119450451628817061826821223633335348082497796068335370523840733561493862443923944286626413742481891741301272149401875468426667433060320568016277570892590415046104560573177787193684004047154310797346182802138089939275055537151778416972426139056135371522745903057017089797207042378495487801912845327063401911301119142188342911512762855663296979099855182288740028354257202724609978927094038397648317651018794319376246564165968140860503003914371621729063169432546242575708277269864211668028874806833879951710198516982038777777282399207124157324320668852465402860947065400608014271185879586076645423327209479586342486994687227793497422723017852960726340947483621698757107194958558252698995208358905555561790671203354446217431101804876243333178002998874066925563101238574356167763826495607471407746615811365536849124371067307044903703895173060513546367839144006571324498195682346335156930773449669240762958107299350386502243630047523219092107398607569740250985206568896422072355969130133953903384365065673748549843283449844075148381791915864610917084255928253808172350384898666574937689030223782335536292580675599045510754961861597699529883632807581075505150499721407008284657233711012816532498613843272634970957497567492784173414088070693923875708453215052873821913813677304284599846436752321904809541304012526670716477654561900886827252416518551917145058754174862863551105978764268740087300006626183745245959418643383066078029560742069131762382349801637146356325611466639798986942804408396269800202214112969976490077585670795400767304712133529822118203407302661031345985465862134590253108493745644877780021145516927574771612548627233206206581316510207983996169447249061506051472809313957334170159011673266639325759091417685934033210244024440751798145864232914508540623887622282738161278628543345515041869160174119188589641159699606131830390546250474311032920341425768048361597770691372325400893342008079425746556608250245356827085516889638461757462639235948945768998169703607395398336772135067780030817504490921762922298987375000001832969449592152654374702673744799462151465361585970216684009243234073931490175672461999762194237346728410666458136377760328303735932179329073236739053665124452821826042322815335054347483731157493842075254126605210110673689212964958994662863537509098329671451372111406971803663398996852636275459825841355066446342546588813392564417397942719559085373844947578622097647756451425495026884216590509863563265667813051282353882673741422180045332908830888092904108473185996415275319951347203402811767259193358186178675689105078405697954027820307231713806500025739627023799808413234727306401550244525577840966491549303557864105389644876664462785557570021657638017321378817757951290302388504818795022258702630479630274432942275872793367692477478681489564724350997293518872526882119199942677051710681963844569910857981051199098422395678967120179006858539996125637531699637352161576383671536963169616735752180965608746093754919562460923809926586164571328660575992880105517006710399352328521867948869110561110722357899771395840149086062485885526547457282291271152499555234276489684237734983461265266720192862369026707949412879135443057118594407889642739149996067583019133369579806454615694472852854195073282939229515000519844061547097784640223084195430485382515714885985466612987238534428840472359223638449948560776362902011836310877788318465105169340663891371705186315446544505819199527980974158706516864048728199190471015456484193004572370126963378592297976285118177173327597673207441645677514467542598377531293309386034598185086680607241964522215679606817287385176047532930200227055071533336459337117795166835189487122581319634685452261056473857629465213217532287017304693307119673237483699275689690121709558764302845279451326510669628238054645507153648495122243780625840281772686585975605306771392873289502024546703782850506397061700246764738548813321684118597916170077236129246247595788637212462257824445715101066613284574820301787472511125110277901727294689349335170820301584115680019432273883201216328208314485412178483542792902004808616415637275301026176435260311029795656759648876942951471643449883114928177046650448964199784991819913077010397371684861248388419784194992698568202201422025386406812519874576757638899764471702345674027272737252806415376096193942306295341320361799138845919924910290074549628475502514956453047227923919718924803769151696512210286800726895022387513419066102076543136548777773688074302162702929488429937628766366761916049875490813894466971596053912917885872678507583098854368066809895911436314522028251871587052796901432899392124189749896496902204342971403506006077594740849736676561765722033739162887616564982979386776033368918272401516155119409205933557740073657478671016553244963208150962727727900065961680508503158243396320082079285852416312442196514188498046708475694027169516867752674643635935673523675895427236562312211908578611548521218488797854183324528637803242610314880785195178998791060893769572951184503111735926223943957757030891926992667752854470768377098936894889437786984170459694353668189993203033049504995348809833752662598495287715552051427207432262579470195697839245091250981712923289857993697247878604806989765084830557510833081865205539551291635609852596051314577767572674034111005798345944579188081046018841849980511935691323451077894761943746222956695873537086806892846433963443356808737687103895364271774183832241570093272827144708746571684239766798210071205334976980733723690227245746313976561621164051272609782952791354585355197952046168754354014014586858293387404152774848380174170563940607537193033617625542552501529587533022465081701277227072741406179391300386415355433002643839626437701005220473186562996212003415194157300389188339248797420776194091333358143473558846689117288261357961864873933898852847440189499235497640670392583704674390353760627277706338241724967652088629618140692433820584679998091253516025259637136553155046472023024386202041657600525662203098786262032873468648930374224969216131735086055850432091385649945754808252679722975114029418789889174866588616155515280904199369377921671340126052385812680418145837333911416711696285879616620548880917934218109813996493079140657077401354175385263355137571632086030441811854120751176951617135481316797199343385618504917568533551596424674618830625294041252012514773447299132737785113117998514720106332831184979905386183079420234284353738940507988146705324468768274224120668688640949045537778453935975105113870077611718759697389363482177205548907606694966814165610173309640528709699005146308185670431600175582575912484104073927531207184520173699425976480010886644898362328005870214280077374581084527228544445014478837082843638949735906957963661026991450282565616679242764004085690760298376987364813911598429229125426157863717732227050544285658759632861481595877833600770826432726022286750807184746288464650898665084760433192433912914840135685726685325000024339772753269418641821899019087116473553423909387403285215543616794384857612678864724523932013614194705212457118386039451357913658351082394423656337163051807947804831414256108815219065561502537755005735827741848184161821969388411888004147004272131656070103268702382638558265306026719944730359792895705542830736397899290431624942575536523379341106298964994984265595291757901177306643464550962478810540710396178613210627826226465126604227961121120697831595098176609943617584556743200520614749084495465152449278696595733991028879526483997851958073346286920641367750870652581930049196912902154813731781937310996338200794478307088418762570500750538669452833067377036978446353494812954286193920756474873655976928908268626181318771009224968331359561483403534566370144999084569197181261296970121246194288781193969879076870739585612175556087629596408823119953071223829342584469114106407575606120880703431433510354913577277800616784342256450735725771893685413715461041990409728136069611404755574858055296520318246908101860922506282433293366688123708766634542644655524629227670497610990624639117519229203739012918148632965703957055842533802143982450786381784683467050336469929553802751257946582280382042887989187575558311708300733189456752888864433164557106462127028977558705950260240446047462946145602579745958949325181830559347265282635380191943454690664381163915441447519714846395846339344707685951513237897784139032290259024947167583689054449833399265667987834225138542703001935378712653157987227651717772536068775468719457455853942808082627709566130015765874636962991700452015139931801453962016907046597489367888073032959830662400385288639380852140912671597097040526999561088275244882799971831156140629524795505281210108027373839903067446879943500687750332268405049458211429050247620401537511199092620230752010483493919190457645714254428842767224090582814446394399534423986461685710115267564462709750191333076603144206168084534951706768857674382034277467733504259398365907038844167486766771186965537781716483112186570909071149326683140272346867473973454808581573789278380705017212594291649850237971306779746824832192540436099197283889962460397279788431904298840337574389647918310124055442782132874294352772199933343103390709969214327584370708161665133798964432861008753378777320942236389564587827368062113781427851962909852218167306225530629122822315675687501080140216716239581929238073408615474330101748404483886847379881780828764569553729121443933888529800599436514160146952599774325278876286031175992622554726328144320908788282848427096533873192430626675544279308873069080605404188317893059075885683828230249769932750797718334400604696791797962974742884495336507726381170249308019162644462718095189713901319392319568336125299727799703524830919240428586206005662403693077937788805298454313175263485010783465858710588819310472812870445565034146347324987469070357002958838709571211516244193575053413538020905378594445995876643378686967906214811092466214369549370593019600760972797435313549285342299149698390996549482012533087384746378972359758934573230401713825550764756472914680969543489453518343512085361046298770690997597381816205777329509538086485276787004597450908919431235807839964111163252126141043136125842404255751317883830448355597732450474470769131523848463073879008860800013983827374867859821153741324796089564588699741345288794387276315106719482918769427340918679113245272505993856720495405485612052504419209946170868870592740797887309550392615756824382869015088422996914682382451771253077665512633040610245385594781866372737507753620551026278467733777346834744799418396118909827855398314098670492505549154756187484564864242322733422114708709490780571071406077852735880500618743013115521463453963288565774669885741943203648330261109053637793482468591221810870369965147860787903340436329312557109585795486463006060195065672472061345916441335521746688458295370779523751153672350869579403684478821273300231172637279050812170310078655129831419135527730642141327185809516566918709999749445620038420680299663795467335752564347944503680114860572030932305492412526733720148011909867073385860652599836870650968102096521428560835259181400564257748505082110171049609688583893248055548554387905820509004337456713016833021463144193767636237964751516849358376946457588349164398280240153637490120473156187155608175740468114042567123749297306781903536694538711063324684053526937996472667918116231281103631327418751345146679861132081973261557482053483951159788916055840388833081167345619216400008028405262763571011609187324681459813156391258213231821086126831367083007510593843899518711410209451382266516742112388374129007607254593566854314259435184053144344716175993038366655736500472548381915004131762997981482718221418784307546879998297611385238230726613280066070112441017208524773673539495603504112542735833824649225889305686959604257512027428358281285513706528382680635548582736168185430991646934328375376772257076100325685815815102255768462538945676897578047487701248738380923090334938085864755232132276056039047192032845053281789833165963921126885990066453365189262441170510871348876098878948805985820686577646540802446488641139695022005071248985884596622684567010528638999918334137568619087970085650736536847480181833434528224123185606838718426841314109280899115753400010653779489263199716773965981936880197146337263703851851774095417019227418781173646364290084358013402614299193459727913472920089158725726025654494918723815111859455897810443290764126013671925610102591671758716774027918513308401155590314387677649857941058106728147059595139686431530092032440919583560087408156023945471196529094913595826204472682078335958415853181252417409644353630467374634352285436593113324087415254670648601340370675482865068200015081096892750585644649606828142443170123439302904194554264883633332291155136273134383995527789573972889252776547288823449568112022132118998311692572515472347819801044226769619579824529175814282645917775466598626393048176809590835651751616330651490150732272672066914276637080532768751212331947333895910987255957156546644634562576939498741208408860209371629658557498981012410906757243200567458637495097675477789696070908714504589056155769005894365013404703353570711711249984957206118162032252938859973689839928839923707390797814644267006393020295299754288118687396649967630868623275533337450048587637520479180975467099823550756794377969970091168056031972257301874856856444728930948717360051741750502197764514158108483595561504697509632114122677627420164893211976865139946671595481181723037766189555686147832539644473233389769615489197297188701867268586861189126389277092611266512885841510615075195697064695214238264566392396922489908814529062742700847105030669242718711502637835351396819015424376532581748846785679272101134426011189121212405780103309734865180123034561336064533994522660323926044481676578017021746169497131770096724909217132823791147553991357483530574566449355148182849662169269691374637888963144019381248484735455717979779609372898158486012864282437735293360702055563802871818358599926534448029735023780112030006827625338617715776313175205210163499675976567740873040999914268855593832894185314776360993980017887366645203359619139096234323003000811202082280784964932732494003891284117236715307153465437518995294000010376561149452969007645348063495791073755374652575611263683136018381225771022201946079537205436115325616583451015245509394234589343436921208693146566116395553380148586832701490932594284275447424914303238891670156139437415450613602733811020626899593725650490458498013412016259161719583138087944434671974858026358341805817788983054205878966480612371395443206979802037191283810794361738531127564887193041509564236843789815999988127619876793285996841075744626948515025586891070027607239174611705825314496014953763786324395086319894601435273335929577515803302827125741697533624094663510509651493455202006610909235065649188646715157566857494932077428310623997858067389601042793494892895753625303772550646515861083273683551432953986156825205155686727598341103713616093789334526214988633166137735608343967091789563612523976211892374808675553552961148228859758045403759958265824604960999377316222484743043772095207669743842983994828473420156416989571365267402303565376546130781099242196232369009039837723348969647245016413153660696393964472349222338487895214265487329948702039120933155204180704178420309785710005645357254286827986756112618830454858920869378174893466406245218888643274257636069513845466548847610444777248230982974252558924744725838036451081651199682354580134611608538249605840752306880254313722392409111612042208362561621739403569283944103192352600999539601585139193336659594211637182146681506863519525961745019062158739902812111060375589664145547084178962377482594627006661301996982606970868326603913987940004498080354784201550764760110253680658241596871070962897771818608335634150765953172402855932727100344902863441453799062894147920430202284005121057100840766368060239276253377812510887170590357211571087880493177272302464986715056358712659612106634848595956991824986566480727218322930128264354287482822956547330817031997846073986207548334815140463166818964461480156407729126728342012615379574354216164933504254574128077395536126625366443066633606987541339167272678181322821294973748174147586221546206651663504488270891463488267288623715452625705363409087847856245165420913796423236744293393439649165518555014228419980716600847393583136017773663063569619059203564052264318785159534413862166069626132913342996014292774331768433647694855649029516200665528021903929133959731176672549542632663894449292875594380500768154812228568328368304954472877734941047399524636428469400313103397388588855933392300457447448119977735262207223203633605543451419951218568323430601812885914692091934381741697637242137783824134668585772836480566596752049589349163719924047028874598884337057886057689709197956169136411629854175731706636428391275822999628577048852585614475482214091921094852790170084502283917439430720231016051083079115776767619112926442079041463128143041250061652332620970781907681334737634590940656735758585501044283377790787019075555256482362559322301153384671568781114688415482815338244405830435338024326023600572280942683668102444178898230378574233392557285761732764800508866771953857035160481715362443108988657796978881825248313800731099485850754055799773675017841675802552931161400014345859822099296560156943269779970964992679702418748580775025321320023834484489001370448050817412870655557197775815382519683217398932991353975265820910062635540020766919182938728963331759495525758515131501118583740303351727577257941160499936408472138674765502730548571711585339466610795726393374354012976810672378689292139639197103951334380253106112867891717929348039536637979729046196652924606654097512762603070165814300997581731016916406118568183807951181998083226774687781376631571412419577502109626534761375542209754076851188493726956848160849876969061582598245456081763558274956367576454883936471358501923620390125835325034812969475138013093841582199629247943817539185640220031189464637136592232504623499992363288702267056590683015743545380413848227487862867175234156381148972989748384499315435869270143461995094038989672855816985984510018581970990206749472500188886718745627149585752449963690626889294877499183953264670904046154344300121786952833762879124012228887995776323944497052317976713335242118662202662254174746467734571580910156326736669832253143083546506548900817683344871705271769700787640129191784824965529830268047069873613148549481720625602106059706880286088739611201125024249387067583602175102048130113399838541043891430706475264512914391157203206926280552863921650417130685358407441700715474403352666173204519008778116200478137078650613200377140292936597397586110710852320200620343535918760805370003095465548383595001742866080680625627662164379889947769692805791518841351570232702080517852568747982341402831555528169963176013376315499228400084295824927466272557688490311871458656775209679701335669949166976053208899167453137109468905847738313410114804949024173329829047701643079624450459285331731749343939737711780111205901713460011670902337944149849999751516779802830065453221454685944652004477871248873461653821088697164393337816051159789075886569570064865484880949979344349981407330191202555722565406998926184092846142374320699916389664090079652014077740545813144052231706449543429960482694429173341253353113978509927259545387576527563851198182100595942668475354417338195719344484462865143241831248526845771652783574734440671802269225036543996660618722674477856120490280543214952804412456119011466109492401650203053804550776030183669078010240933195191129695176849850469691222642775721920347035315134160980090675125169094197792136424490026079433794913864411474745145411424691205205377337392471823462366302740406137900090644666401461876492262222464329273979614882940252601916773723528346759244975043033878712335610401415194417588952549372666858877038051346216788744474171145285214974027599791793420520222289663200017114690320010585336987753099624536783838160728428095513965325243841267073971379251838539200365937737317767314409593362188313676010671130079368713758854076865167948304102592740332670659954181315659751674110915249466924299983411076573164863911033929382244470823684081148424004132626302591742264766754563197544528799952015689752176232264472258799748180532578981170062543939535179236025945235465795729838136460013396979668496106100876017468905741263614406884301354203605192637351270063270939277773771988503542100731606915918919393806952193805733803191274560758804465442793057871021104873430796035584606565623430445081134286467372575985363564954973495585204754705502530786511258324861429369219292756429200197677182635541953124645698079972091955614778628068094568498982410199536655676417385671387058638882062425567480788040141318131174883365784539758930834513191614819988502660822204740630193444874525493421995844768118480490439553664540654059838835760099411920534789476152921437718521945004168369665804483828885300333876146172274116366724831908140625382667887098048181345628092119501835837123756986043211838522636385092705417739029095492811210754141278020509089250169552685762769130216142208691246860896265232334444465352422874651850924504659174007654365292528283602210857778016977530714983637892516498294312723314546659801405008047214528566747451576817457882646719507040606699233271704146108123250437885910142316580160915896057419823735001788280728976249550040732759293161882885603471279867558017149600831934628974134130749052894779241575281710551537912714146480374834636328186111905701045406311226930004648618508518550303768331496223561024423412924191710505246302771098260861972595530441027100394379892422748311568514820667058349419326089924505685622739490192511171432217949645195833154195008378141297616374869225353265622535192711710684398091159983425524195533468804839946328517460992825618561967571196086410527454052804530105185816659583446191532739456504744956935924394779169081506616032192198339998437763319857181096258101961321068632639870329100715453790816189284927146491934113783101331657299740356026098828342749598718816245577812672644768178269925251277854296525488924793716132893376996066636813278474409220211917034720001720720191559804294902018888101531589723712060336966234693603095947266778736952258609412651813480186455812169216485660536090007895476858286302772343769002559794846333340530991861155800760180863758850805455656210674476512334026281510592178780981590406110173030684875836428783183057007952537151168554309773669536379903233777985353004314013187402593363384611599748399884432299416218120000966264557348703461310560955842988084916035925735469984708448981429011226181800077211795852010412984471174692558974550759832756336891980591672254095963050574003265537089227832178179300434271143433617999211229258269502079061309020724806744066967234228181369573599374074826649327259802315395386129058513147994447295260491878593765559498055269537559421166225612776672875831695961707881335861236084482562371095501503092327730102816735967478800330888756529032738264592578416649801067741583740826200960386323124446133004648173454442474266038569304243915660734727994242267442735897878103874087397198461192930504450821344884805608935873086770803041577232470295935472606807272870503618112711195322761002507217485286556940044397235520702099653454272532406247600796441481983576439521370891044497605182476221866963579793356300739404787292353412446957716522541996428238906299319240519130325115491446023336493074729193160352255715511980350889096965469654767101988141734848588971429772155209154076907956470733077289591041620846058897018728407478516518425107418608399535202089767671899195548726254342606816822012064689996419501516160854776966155664763624235142654212775684466437189522329463383075410371446030298315653593728654271786746513959152925160923707980333263613757386737034024755596080954938295439591439214385254174206485372092082263148010294560345423835682555404957384610032315882452407993169087928094731254156819357345148542910659992007168346583919269090570632532689407647710172559547743330708756688319651633892942163099605463339310219052279665923209406206885329314168611870528466031052362802412195429086093380818067825409545614482379387447444713276386487134568835373748624142069063848630503702870660166059303111714489702103517941423347690323424047817670403211023557563373914647779682697847009938691944710732339176081435437010803636645489722547803810223421288526068037505582196680839526830324414742912381505513247286502408055182502537335625147670871522562692698170215777929761143371483928613161134878888048649870979682464819754593627255157068612505875054599366132302024416676389186809687391141631110031412503716134679760974858090151036213493866408742175939063792123701903025347755629774098500665477308038500612877998862493386921986003304784330987890083105751696903230478183450481218657424283195618689161072732191269555784044485331296320285486120985819668794716294906499764531115450686307937369647688971351028629577420605291028388600265098572680805259574394745053844071726697580915748560522643341917985461416624576277202210458083820876268317552903764295778423165370442398064186870660108022406640923378692492522845557483189374014160947958171413034365800941209863717263152763721472066643627862074240766789586264939457515922223150839427042667747467584162552155770724528658843500776649061197690970362380831714780000516872151207041365680370340362908336944261338210930795946502063903487431277993329077043627713555799129090246733868815802350781463164855868833774338259500766745979224783720945799907668381168236891936415184253744001390416885966353431722323718104752529768325086581592347612843441873249173062528320701963653918024037924672649800176256569322499513882591881047956101539921711764603370772956619925050901303445356035333198330162058044135720673270633776698734237189265092886554375162396508318253124313431264309562840864692169801714153900880446874310770983532893905947457382550392005345388868144916812515222544388951787566745385047102034731827275795085224173932438524956272396815201863340306004844715345582742568109141831833671442505464025446212780812301363886783453093700584160662120825422274450178531542614879064727284475481197966030987028911972811854509254191667606255510831550359041600915506273507645246538996588085243872044971585239286797056340165698281911351278164858360284278062785482065376281897886601044076739665100521956424395854618179459834470889683734389402507998316152419536211286504977959391910924659016923930587646342385275282790919671011039952213758537762022420886908028436971578324964977282225771049816133196192373929776186923684232233880646426853623039822168011710707492687202550937666113469352013384870435347847420092446398389228105292428858973859831568653537663806585025639826485104555181522762127607098755975898373592784238649695151710054153600250855878511655877174500790318628612814771402426671756664445919966292466938830644146004696302574974896560480826059176024516913063313470786079030160485675217024626143683790328537054589857401051242065405742008860483009921887733619723040589023453550133277694521870321902037895871829264783951227173007473217766116140958528270680960719821021366958093156596027793056415113042934603980005233177793221808830672524338622597867674841624566835658832470719666991404122116581069822666505246252215150742761301335199610735340343717887873161656140560886964954110887645246742133763211977327850119427598285399715355117420024045202632704138816561655612395534401300559039336096320832662572927314902353984718250751673823083718788523031768913827575437022121689246951308136447277459819286341463749511552006370674718187794607767091882565880549014531636963047478909973744612322030769807313066974225335270993198669430172137237720443975665148956370810620642892680235683515952011358103013946727740670280791925601250585851497918346082040346250174304431935359044632414467805041741160038566939929904120997979786168090099774496408951309737325732618828713423313178943740865430492936720340234498832409745816560043207712529377536641971236770361137412000514009951883819765316631064095257878772159756462408308295850643121503613085785654670806784458430193028314348208243285113073378043840232104547795197832127971608960377700252925650624861708081854870937011139289049868687960560744896965575700798052418626259674392412259688624367622195123062842434407220419673185529757171705832437066692228552118127433127153751049922166514375070761103530869228139143500330153673651120239783568561560732278072964593103778753854093289695847163911531963233619261369800447916709489133786482259943674590503429263642218447450596024873445596932124166717077981592723114051614936234947886957124438709442218275184883457655557189119691334493865476849988382200393450418201873404964810092625715871884947308151066402598576393070955557598505797654348280937845912829891504476535195450094177599757973140064396167260631512016097692754962860516460222629418183076688293179276058051955806832696509196488414019560189149982072339646889264015651228837007654824538126020256972343296549412092115639105904657707992133082367472081079060497711925236897571012562366641148379560626293559444784027382681742247453700987376109313683444492979204928660886729482339982787840799302390000630575830820917421609155112961212564886677704258851225801969499526830523781929702816450117812731590135099758549728643971662937052028790320490057297700170406575142451503076799488008530864118379337054094536607676635093727268714175838405561730311969987821041322772126663017404936109418368235333483482011456726970710778195302037071216662232198904898546124074517217153537423780950521867650627634294500377000407362111135445229409899231999568458263648872285446721981567793263416457274163337070016947463104293256389235728265126797490741435661118623284037931681534515636072804165497411603916050057523700996903861630573446557642478294678143416505073987935458142634254228314270475754258358013458054022785700816599281420431310168025091254805343613961401954994307696397711531642968984193199036300211747153828007324597458240247635424632915585294582079694170919506112639469085112903054358592453545968662183344636168196136276942982156766604447701070009334115063890849698371538922892950888941745666049609018406206732462392053886745287775948500833258645042491014991548071565176447250567926988292639680978245644988732867480014805133926293606099838217492816680345084156687115901592987884682718091483950684284005251717291912337808342672739347419278564324143251411253262916938024692771805230840648034523962340834291932450611402177599414788509170114468401916922715701214009362250518522056773952027138959989903254227479144350771457155519364654296942258062518087728591007631185458163966800665369112646578610809905536693065750785612710315695009043575761612928875818098680200307493694763046245636281016535511736254143113120677528261382423846926148420773193859547993287801368656252319251896074705695081800499249578400387553278409558289278381496904147763964055863699995924929940898769269500965206114058225794626197862309543535829553696142212063751443446883517313820487353867290299157551032927210857406213140256602732913392715118489627272663394498577873368223907329402467235537651032199381414770830909528845350110396395246306297965746590464070019674523798087023921593211806022795805937109612247095109415409712444923384427330526340770103626981028985104569361391784280714209911922842547305435673615595439454708772548855195466011446805554459555505563962709118246553965842509401752521330081480221015921347943551491853461680985132260763445775114896433033238106938124073753079144691726391861663804251126156622298255525398758121954864095779108239773089924994264877882649863674970676564134319675314726177249857176129869279418643191346042022835942769998731117475192244349124474964957537782374403776607216440484649637927997744798605992530593222040438436313923335775999294896146291850720785056908874647307513712430044543412749512428296686708738172977449698194726397626863540068240529176580669982564819440597072667617451598165039703519987813513345388013122874149985433028711202657736404747475121403161894098719141594583844650671195402791509705552045543132301773046016675116547903452371388367404810184444806035568790739676385315547016726354032645880019717880036363111952589094864269525082679291265112929843233336628913827245483752881415294446085438022782746222892058495084771725699880494972471178816788236653578011623641815716871763704360452605438963407795462716659922578316413919006294874242650013063231195635035654805170925341353654874424185189478719635263363702529320890523256290038577642086954426589445454302322543064365463914326633950401900811406343320621456144437675893019295610322263620003745022660840155074321079284648941060320538947449087309578359279151996898903423850458863077443743257172976136617241474108982019673304416376323038737398366835683667900269413682910896019931372366102888550061042388873302481710290915838608530352624527125209931592346941632915553197671238439754841339720058168967024566859947383002136813381683603179023779937358004997241322515492970757393989517515474325775399866703630644210997262052756032172456788422739030394056559114793003023567386977544722866939213157238502565628082519345645785165941305726102972826178540585591390660275327361634495609620432867310709864853058835701773768469521081119122649809279371587543191926956423617464612155742388870117560870439769756567328683081423420106673333512722601462330253695947258041775260277530771634773810084195208470514731698699463376313974056572061360050042400860838937991452769672633716042287485619282296517149977701268877724119144731593535600456740237509111361364145498408888152347148314397404128966805256698283554549202265146894372087831299150933099786990375562534903511641884587779286538499645492999859389221927395236534588723132545759953947058364492039623661502895695017213306197814077959146732629096856336621001419893786921220638526961665814429485149047429778531694627275507777300801391967718641424311688320838334508131999082595904674284865743137870006181394835872721813582713819991240596450221847423950348224661410172157569197620557802316688903044498413254925765756805191488635636652525716919109870021228378341277713165493442104033100170545839731502831649058832909812676367981693100366787835656246786773193485220800720214382670492479135905930643126267604486754327378671267955866579454396811668202127899225589471315971076443938452981656755840917484125259349354858424889886222358580765309860489215109499874608414714944612086522890521390465124659832277247331774757781330692719498456839245488795545333059765902491846123042037801498478913601951379269797787691709366969062758849588837687142395634149543221463882974543206379342685880928861158846886189539662512492086216083411410455469908142753483472951597053093679379955147428950250308853082909875717088743705637734079437244474932869565342212966515476263809094841916104992250808620441132367073097157443485671829775193178248397644598769265228167258065353934130304637686409762532584212183478391445570229494924553089871870714596630336585434650311917961722578386012330071196259103420258750221886172440353599784826049211540296645981931781742443914743031186592605122981797942093954889257350139001635109755907451472198522179487160014859206334629380561489413762960235279390566664936339176152521183806672833568773685156616814494719166061480941351336467738548384461479673776070023681195154622363707497912009649487356409329601160172158624126547314467593734794388051951406675499164978610942011910876445762591581673292465743069100981078175737081666888142609577998348890199894604983670293423610510903005282804452020742491417752560758414445213158233902955692620970699020077999764463229743569816342509174937217806670921298916292941810004576093612690855705842033095839364911382595859796192373514037011413876337622811253517304147762017930407034329538810215663730284348786555037911716580944386444473016554459711768179701863751084941302549661654702285101494471828041051476098234891763079468596625408563408446661266613727977025449799400383487165746911495804917932091909716629491488934059748524840915210068000122954375171062349564126225351453404648873216796662904366530844310443484463412042100403717028950209497046190551661987732152250365796772524179281946415168996226505821898278150320078663491008146796280367117662548441293010696169259860664814229878312831338461222889575480312362426134007735918453812722751676365266873930992902148487580823252833969495018536494848883263921265766237484710548643226671689468884482951836362874849986594472614748190470133761396118747005300889183863830075501328858293372887558474223814574733191927529465083456144853671475962636087529525480104340098381782378907244378339752129222453051577345069337575753194624822888152678766938442798275508008720310271037894853194669692740148244695261383829882547388246245111174190868360499090828964446015882498812017490478743385568228168944208349470544071697048866245218142871113611133501695252793348865090148489852148069441941902397521776256405631717812585598115463438466000555632056467170285379822014379109785724596116649781745687865618007379284488354596318422107643926677737434945771424111613812365504372187255690133047589068423607045436523596744737134647175100125596291749262911656634649515135722147641035125479844082613707537149811372199312299781347619124353663532629897806086336639146587678846640353837236179282367317411304122041414306143491595691583624570342754003382626994062919785611958514620268275871296115136388491212005914646320770724596248475356138479539409792355476902402352666672726578200271997356489285289076790840555063608221367694230161530444583013225971137599228851301112820282721862243174653351044238735248739665244576310422418584561620054654528974835069249930754693078019617670348385442185481692299466497022819967532408881224277624931708408347629669729966330462317479493459956022375233708860483863710975933044906645912236510385396712295736450205403105043959620765469190745639521165522237115506824936771109517285644569113871090944642317271523762048380089178626650034518766925927442477604004072049414881228235835773829729796374963969553077639767751354605280842942597267276787720052576289484587760532846187205266715772231605466126685439227122464917800638143842188635362440577204234373938566845226570959628832282308419705665813099272332880654633522933352032853008419244955593918303560602132631068031502894316332121276087323502345622981696377615988016034815944385193287199017614400972874841277857878018274361740552812156908983947850731804736220552779129345203101828768593729802940552202111167847143960904175903146631542004861520225131450278391673582990601437554077843307971238052669652861246826816085766508720106870162824167149447878582020890730224589309635430582833964629226595885290855965649262248969123599827909662246156675852084374489977340621780696734371939964943164305451854769386422228789979043170995876822878989099030513564915591159775531019786331022762820467547247747268232111348742042554767721075571243777027100125159750349329263956031804722321657926099051087160386059758676549058442503440297362053808199703505620167453705885989420280085664938452490282388282589527279932923038748516654922044396421060162019165918763511491927756610174347876311724207622292759566854446012079487712699046469432480191797516618066887320423849867859629093538580139069510140498846179167884790297754462607295396733435561869798141258041771464496594388654937600595838262655063081288636033843001757081140017754390298327805852622424463090878984013993098003708420386950646125535835329909668738896594116215961686945285213106231015054634419486430135595866847977127004341540313925431583525019468146084691007743360031794097088433138941802265982792989845229712316821915141107506837941953324863166092224612548414798615063865983296904518529648889519147322855036333699182298800766080072083826419964051765862858031096462738451230273308291763306033198156276590771223171616049347385806739591880809922796179372234468112877623991708220501566644155571754215256408108720655394232836771904616336134959266306258587454656351340272677528728501116278519890477451668346246652392013921039905165605994915499430970011046023190331515435898474319432930685323074268761456714156927797586132000877847651319086470996390810096382463045073661823900437052017959878256523299034053547030753867236092771138517339159412131901103583126731718430868415612764657060936419606859482316772624652355978655906602347802390756702216902836202044880285178027558067227243983152390912056484382538097992906381097988182107831965785968642045643055921333418455414820857958776561745300736796073400453064649387769623872676983347802843411564559129555302009766848494557856549312963495423641361192265376304486807928925194314718602533069708118742591971322736508947060511401353613023444523961745652276515406355958187759457019192842401744031383498875448511295768219065361402898425168802667864839255493635558829836739393338515075143164524412663034309012458736472877489768555392039344631176779572709516034052364020651958610868011577401600683654561718270460524195218621363149563134703891127771664542032560237993635196812193993175392212228440898299907227868598176442811495390797589062507481810383753158872507338076401379886800794424013705312267168127693942753390387641658114644346254363038574017802268678769936914008686664227498253875045184296629554206064353496055938303590381157502250422364942749006938885499039264332615636324934413456930055498754786747449199265518888230601259387929394501590929479857327009987080069824746051924771757089035568060505680681098696908005613306446889012385465322689757970923915852226689829373308050438842332476721852199511297798268460081508937513150187677733827036782580316994045135302802416991760880777350333751938018831182826696503324225660198337756222457038824503344578074082697143090653140962372711656700509879160614410660164816565853603335443984150790963968398653512897173996984821995193190897280591795296577171282388748365807564017486818236734075377032611808541517590109386379061397916693033851673543728093733154031892721405503385498158249797054382039267339003636975941802769725482197062087453154203976707649699043167708514483809222222403160603790801703504188578497166455048412787377921075924700366477794030136875681568210392752196301714121218217438352834349706260313893684314236410481842982624677603290951975065406544588714751514213399451741667195165299404131979914067295086045554144911352123675958386640751827697760398646238012407575767596791951225245279950401671086407198077577344173994172008483671661193753794542538077376656343806842119879764185766653732663428163759200593653428225889302916268347188861438132938916574278315663067447250954241934845117020351486690867945828382264616702434251939180870000111750628717451929648343240271788593964676786163384543352435893683856060248131656378878487757448709073115152820293620327160468254108293950682923598512591512292984769311698739586447044113276480080197882812711398750986456855679778276277440682189584339090787768803267212143635498957032440058290667593620507986685383897399007235554037990655548241418646169201523976598335450823406487337830953498147952636922187935028359224546109117974119230224267981521256085893686598475939080070878313156605634330502438058163442188114865919747755466797502089986968649832095911424167384943849596703473122099382131973741803539589946914171210491054543006290093956452270725796051283196313057735184741873703910956217346273127904573993233461706724429753836744132925251780826813190672022436799353423407533902805376527085997020872438985771078180173455685896013739192959044169843800727224355271220185328655446540818797738621470047976486478838166449110318047414236958182713794967116650767301169527895646235221528877859603472328378593950290772719212598869878354470581355032782298065943846824525821762085606537551594319816348954287719032006756031181479815867735389533998326890080232526478036881901970389607318162497710300283947486075303246868196527261533200762992302525426487687695139795623906223937457859476939340258806948075684406074283454110649589928086086470621931477821700103318249391632944459382376967150143575630154771228803463269903900778145082384532816099269578542527804961615882030041330430214202689545916906563969631056179878180461021070953523725672707917541222057648382439467439001125535966252240844105651920184226886904945070985566248374736135210195104938999682629416728459205794752986155188077207995669889580752790839436805348999110106362707378584189465309905723377905495676390142738808991731429635311872699704827126066350247835510965650015994251904558610169177163177712090173363024443764142986448519671470081320002302660118610714166265407628662486795499662083392677793894062019248436892980460423740775908723808591133799131004557049892621806927187354355548399119753321042318921176073634051098714077196352592561278017531009517319603564883701539711104005218234884793106131417485154276021100161613163371229754065117906368674961033067394107126482174647939976096527646994989541768726819457437330582459930019829371867133750373498683786059872160424369933728280002526177088144544301503575401295365312554882256894126856543288420377717600660188900278579392129166311072830555738936345807819435408853927838868664463922096690729872891100602282116194256751975188329366140659524650966009102071269070223373922568715340634681698888047116385352148015074309971429124612595649006353129654204287008867754550079394714491248168851073337242485882862026951848925104760600299966066776027192117776355707739339370504535360552714514182407647987039496580848085040545553181780627185130237605416475057172275035896025849574933547833324870929114596903598957964215127421267585672259413332029421151852823304685503021166795245632121062264557179805828586904274772707638665963047197439506941256989493304540375404928795495178662097967595836507269470733752494050888656386860990130942893801314064535776438425918707361466959651081334576561686907373169417326652044870578102053720974010204416593127709102372008221541773625764689134838371460973276085805054224225330650271128461737137787609405083961856311961263228350181619877095010498217533192043174317466882460155483797751723276617765902336681937271576682924866853630837667276446128483123788414961152744600451917980215809728223173378188230250139861049940665871073941445187841810458074634904941251122145561401302090183893148442838674763050799934881552583430684014626686802507895277030789430713193412448318606499507371905731793260133158124128081006546556290462637475470848850068566234223679939446657983289437481580896030290126154927338556816454820916865238745907693977188307587009293654078406920474267996309459440582424524674931427065049973762459541397734158322105867614074545958180231037750994492074833873066372406011662130880382642862929148263221873955657443766097520085863424888903530360298993031328039199010725268832384746242977668658515788154451988862380251240274667877450183567466684412529208386390455284637262490149424349288610875766846817527285516104543831927755633017490322340969374920420784107929389983404666378562754347661827887160109154667819688797088014078270406410903984416536564998579033353734029934780663635616195933326744574898242503926122407724371363320276784028687534215941398891025074217493791845566558661202344509174151593478055856602955804433032195583150863420788128064520497044034970856278528178852151789870163185154694012855704202013703349309720745276188918326051386486377625459072185925154684412263370161696034933320235919519421552291372614172956119946981490992969334708466387776401361451833804313726358778970715189488291979855459013445833990059501925161284574368305179391453493597286315355678696907338589544589901373404800218100768512857280293178352547028923348046891087867677230389409914116817800775245832396214804062949229002183895352712328047685828676638850025345273724296925199363990282902408884693386410166507356780293674967387727776096913561195557510311872797579369928442475112399492433485214127162124360797380364680274792187297002400876343344475270339396790592374173704664503812698394027827173515094961566381128264802708598470855518373046662434761908084565130976477173128974135519894413307922028059754416870288933788928851652055479815076407339238975223163008265467887579241750331371613984030360300800992824939605222369933681996019674914759872759713454387374831885496534915362193861465013109315489540945916515745748409020254063883001943707469395140110049704797967188171654081784397417591630761425936065482990541391933480907595903759662295302829892316380354917160442692321475020278298575374443271287976917976542628142554104587350398866637085516368158930945844695842614465299620552828562650294813966062423557663613374925997095853578752185048835830107155720168720672713485880614292642624978713749260152067059082956918814422992672280463055583142116120172670918989816591296840631526869217448677179531322627040069493964989720043891350644414187702577912625773405717044893465826143400288411765695652178225517041565862071032183415826911203353311371257574524708127806385276656905272324593177401352556803381038172740508645143890698296830310546258870261765981529667697377683469293696541330622002458434423618927587211011574907631401963465583729865553278901453885697434455829850504488858685283490046672369196135131626849077296655346333648069908645148039432274066894789807751687953233104684257080072630450551679153086704829704487366162589816513832440935550220970780324090398320860781629262305954291339820972647748860238549927189287307473821580193606486452157492346585615092362056153920012197649839156217542691145334080331044040759689529566729964860787314488083384584068324521952336076128375779276301665461061604140278473088111328894518132013908432703898610601378637003190796031279690030259130910531710191460604688610725013617370505415804278467771002446643390561522420363686087403899777943147387806912819265650748815990796294027531480706036742015312055900952265342230716606539404180239915290396649262659906914841242452793533312385030428585566261474489615989186477434499803075303408802804448852157665691022685674326460042064415141949333661925741488973719152547960519309759250268237552695778288263350922190340730139250103862922474249893348695731901153584683633634989570190297558805594173151289845283778474856185844158066098715478114379194422073890138058006471750942701333141943939234574825825338215587266999246112174266121229983661276875157089118100397170682717972047590942777355818945166690001951430427477929508691171052104153179054528553315708996448974694148343504996775481535628625862205012981403682353896773849238228992594408160852196782180549437732507346751648892313097788220445125559882472925518177414423612875706770225600907936007382468062390554201933409704061242525791603349054730304243495631332770398243683282799035964587053552175909202310083322233310346526626990653475283909517132575241545118910333152858312900880091567302378153031760724959201056106455500369821128197861840042974087568526734107352473508043046830728273743578260651670025906122281238326527761630907379724072024645679827090487576864538996659270506813138624499436035595828087553551116423400750328524851016836929637920588898069514829071452738683979060172834863800643036125844662237938597219333036087831153585270875620423584540093131834361218435624143705956642241761569029411467816724520195683952514276382642677286471406981641054115436698585562231079600753260352160775589193561331769787498385298672557898064218072036414982207994309744916500599347490109687401850485123156926643209318317476604929636437709944794452091651635681648108041770694058584945069898047222479713222668814046733773388560645260599811272923544203003533740226277083800217037526778897251069295523948639706630238603487588739462655556525385074725784388818389617435144082085170809968905013509352726862157797434098893414045264619971284630969415673269948787665127410086274375362728466183179638458593958615426384776638664833426653397303390029887553338891727126173230894203114702834700861891969568701550068448291133791578427718531611958361969485269002569147151596910291226971154814278278669082433728276063158895994387920016469798377032163910789391373291571930779796369644413607780133104335616368228223813539002067076516035072789928943525237324841454542939923571474063077073950124628178456536014866427479454373200262119159375692479333271975120296479968955574636025066677845722755764152064744045819834674118613645708353170985361398984320733053856065797405096890110175267146254303051255042173204390943362716527721916404589935839153613849509139879066554052365674056193212244160530854642364483970138929790435126852720746417911941717611660802660042754321668854023529985203535952753665983932630057250015642978059557373805028487735526323642410954735479898816157980592833228536500171621133784000561007552326421515559641753027869533743833686933351605706508001659342875101650787382466362693560887220206902781711468102075779411171335387224883121316198312513071493351800029463767803857518774346379939052103078016972788426324898280624840192138029428865773238100740680523665471853180565511149523185965142482568618758516889222254055971201005142402553926589992687906895763906671369503854858140873079757043738199758330793915947477538601091631165810045650006312359636256552709908092746771135003722574083695024049058190862822436728980321527587939513434075990312599058177574251443830344420536349311966739309387346392205469339705524387039695341499828136987767274618697403369437893637250522899891452750768030624112467672058282956736662920892208400887286141462031672454979771090710419144288290928598507892654553665452200304370174989043050614106705927952599048966734667001487272661781989239491819781614676686843516579565831199772058698649169440736560458928181730891665646638940632682042020384055041979394360584061122281436901405864141747128126449940673077195314529370422032107558381351836893448726875391042313397920709742559660281095594471095894689531956121867541369114977105806100661383975488664845598330655371920905715249918286754114491034552376034710676057425416181419135242530781482199356506619272414213708261465934271749882238352597293430422027421001529102239450878817058863966039518366703514139087355141308998001297775034642894262286986389944981823737477828840879109832373855863172937270889898392997049206971682809323864960678638415521103619291039356985025984877345327320701709957268244765629014317333526392944077386445833553308308169437579035055389145336434715590152754963116655301527280289251774208169876982888128995972884871848648656110228755482272582609623696618762645668407475327086817296766310963781797526255145764031051403472686874037719231768757263226882412668647025702877119637111749112910785379656735102711171283729688246325865604750595607701368437582520476203571257052823821841243539739186015996269246755067741423202991589255009456157216309461358151359649247470600170278042431305603197026190674627026310647118211043379184816763528400631287347506385089169296653035180269191069721684887927798600120011065670510021428631772733792674545904732646265309170593683400006419648546223566068800947885456102376890383670089397015201473783832728733478874893173742412655569097856988676859646654150472802343003174149570412157543819277316456791659858977802936590648738591086344745625629688598267903717940275379866896397275936310682035708270135446458718911240976741138809307420445248770147017851494227362665855630153968945045681148539529105860763919778816486104426239601649479732294245269736081875592279107058080060432685175280705215563891761427982804154488851645941269177346864949226021495740253788484131745792789974341524421061398021275308703623888963677728240732210409188901619897299895804863984496011898798609131620987420067769710208468654230535009189610500425260999198807769536107029032074440560398806721086997256402348442080908865661140979461274360504158254508613561723845082946374900464474888806056578087124414446193073473721856491264078444874035531319445601898336856017802846366201149405197417774470649004759642263266417293568670273854084080930377118332929920275208487986805090596695579724922603760014132701636743929494237502903426617524668792206502190091944546305102367028008049489663234828298479584370174495701165240146408604223462069049542605749536221564291853590280227688525673614719793006389855893679248989244977453592350308689921841725385208267542099963477619366342969038741533382939778989406155224134332269597483038256881300720717496168056759491851446027635700067246304832701438238499983573023884776580329589693380830989177947029790411401519464395334405599740218161659147022608777134874475061036529988760716248939792677275274043254135430213983895348300067061375521965719896750846813165222297512278087558648055311309618869168825930872031312679550053787422330422062814602163461870401699777489069611757324522702512889120026649913440431529228325758844251855934188674081886155571824511040940269267232064296615527063050840751118059353334788525087461368374312587447352450611432644397973076110549687751444938148797282637869925917862497995311967418538879543636538513776477038649333998260802238619097402352528357282005501129096554687748490900763562741582253745661967742246620083597250535157258904673069169477109691551100194884066364029659595401132305448340553283865790876744551535584520230334245668460431051022206350083285431080029327676044773973410108470755845121918453849211473160582471231274398123201570071027529221409083876910987539235838133101069072398558011014326341773023918009721289377518285365028531653054858174047289978366775962690665824986515292223679751160004252836680648502590699563233106353351505861206230907112298467165826070452049836197858906559965338566381501325414625063339591773176984430790664240785959362977612218476775146059960602479172754247066769755082347608455134773416777198143219826750784785924583615506909686445836205504981185874761540933016186157884805288250509986561678389730026491998205605561268692781507036540901323537004990854666172173055819880921557384852135647103697050905670292942221670083338413063614887336473684626841037764041306716532442425680979899605758654411385858931111942111809695446775498819315765118824262631002875300570165228463277289656129030914307898094957319350329342098170857430612516365726912514473221220361320863007504542778203033230121239337385221290143645982182690016229122669888820107928874381182777439032434895293634922463294738829169345310180917654824271990023698228772559623215713017113218626166048729057670946089239698779600111742350677440104184219480492379497741243560942716803793326977116994095784166647055834932311109087746736697530338435318551131578457841281056882109245351641753016569483318154985445195358900028133088053798493490725360338284645930485228791751927230212679407375411198874241308525376590383857362238007884844620227506594857203361696245388341775453407945863312819095528354777495176514667848257956086062635555339013376769246273650415105517947051239844733412766828578992159765137782865399786604320233540392498043603241283114656894256198056543858482436810853811231060206718557843573847823209675042413834995890439616550533375421701814403537866187893843530653220636133510702947474301115071317696580617191113257082653117977494937043811476298879523917611403310819872793221118016430989398693933578105449023039259441837074696313901261214528336513977530912933117554570338774744559051151714027844763580952477436151389802052952045606564987256089042205998797649961048595007277620950466248638484238512448608063455113258345591304393391641002453882469002464717779723418958002377899960101475460024948799833968557672308643653535126829749058188470691636873172974937660344061364622232166072856251981252928258886949453425767739426487588687685308816111415939349393934496004243499739366550928834548918115837705967094266250643322317590444790566567715163190478497826270243632572790694535672190427848840062704083919993940731642750297981447704512011334825837805447939791166876741486911958443261998076844595030918440518482889125634852247428841378594696484781327712697334741484453808545444745128854466951557659031791225826926365592253228961707971658013001034419913639287457979334421248653887473347962907184523068536092451450210123762656570732236270143692512025844303888678324224488784271222268569995885437023492336950470824035919891789356007293712325641638583703522566084216874446582436625502327008742797843482763308684938461678788402496525881241020981737080751859548961804366376223753981809322979834654946936159615306892708933865522673066383997000897564949767454057240740184834170640367955331493489680698735706604954713671650874450711493390579150788382747808738455350958680314720453946024924494736479619572327683332327824669196183381731688085442919508185542755121522535162871830886497220416328768349208918957865408293062263750988040830581096655890473947198718385867919223286685369566605864471788985736722986555358040908129957167330031553067000036893612358974156775332443638174599765479401780630399760858667732733415876864874558037745415152057391340531687929877107808174249660801793472139174778086775245519478521197111447914089458925216770593554884214054157305016396555070692444856614241700755969768992497851139443774115219040244144192742717621502246436448423537859699722857677461676589057890593717613483263086981135596841568336678122304775243990710337427368771099124809383127742647376915141771368066190719924518566471134288786031772965519992139718531171727691488050546087248852664793379564437756662103802071861967817338452954521496405777894063777165341259574949748843147482614798806947881887079559916004155043291106959666248682771001046947198891374102146026769885920388222053133523412896382923495257466789001909163785501940080235783602111535316232418432641919770705274396187928834565653280182080942689182065137690454849887497119627988885656786527500656753547055089026475390954338824595117071924171673588258215795207328286931518590105798803026900303389323338450490108192074699106655771315554425526584810014467090898355183501878095023206954285913609505285425635002652445757345594240897290387994150085786033635861696674298552418881802084842026838795604782780034426579998278661988915124779114461938672528887472629345200438415511269877592103692836756505130186055712243137179022772794937028662642846038295668689268882662203223382570077364106113012065711030926525427497202557769659622153630577056440469820323879869830712091377314826481230523214058456012908700497594122620034942222644480120395506111312390209659237195229879039862671656004172245354440490731808307778732470844148841411611493765047268841061172807615113135891237800227288816798967929570216920729664520947816217054326469193526007440071526034516947080697032484826571014814400838083044854749836245582731511893677686066469927072609346979369529936985694891637689481699802544553053561258214978152426788666435698807901895168993138548666716497859639745182466233947632729703246043076956414428993516735187187586029491871090913788899393222380000819803919728002165654219972274105574061360180292180142074274113306110205055035609241424134396951481469823726169190239262254243823553082709194779661625022804843595743916473919913775358302346953872717862191992307338224767111739306343157587839393169633942498665354761626432289281879189116814561661515958062046055810628194080354797851175539169627399515651204234027502256611017554242560026188468073463155728171393701539596300965637387412999243746445936991712454476517126973015451279855335186115258442884658684035255924670888901211916490895400261814365189229283237799789654155463561692267261044591207985239010242421148089621513759789817064941305520232097142974484119779377866568472801459639322358161068469183756553075039638719275614639468198181888511592284016702653197842023119636956687761078337490325680009957101640315510978825889686861644763029347406636304463662879198559200866422507595929077147323379680911875558384539359544674639764952451962533704684182419791512073477893669212192143980963322625285895327690092241407982117796187070384199578196596967911581052483573023247396751106677821872147048257539092350791827067840324628488276587016608710615131773427199546568305988946215573589394053779527390435258887325745344303748165656585460719248975141815427516437804737189468844412112389783404121940111305940541699414646281175576749753130596768604345007087959065528998419949744762762439053297754384496418205529716348392346444826062316518933538277328456620555316922293492698020918404464853273369924529057073198238091854252105567247364261728508851290318525453636999658220586312419998408960364637285140967518454135462415822030742349619348098812577793704525783985463385830637760632376455738942659168651048882791997439024053985950927710684878369889375495395848624918597019517692057186823478085308028888613129713223942821448570891027590708684147655672504466595880513817654092845063688510961535839506723467439838149704663329189856422442473885755167687897334609024511195603919953050722426897947642095979040966825866190881524446083969326848095404557382825892294037143232803034950727402419827875484588794021930941616600359879884565327498173688569880555376251357027245226307682308089859596986597653555497929162448111297381203905220353756906308196297090230567940062803096092064201267724574551232112244683222107114221883713697791207361395885560253499891567140193643783258072785028866795315394462504010165825041610160932098207716172873421669476979631045786937857988850772375621774125842627449246588485039061416476739648933502924107229594712288118513267014340171208464410179768272437564402362521447517204236336899098465745488868734238548417016356516336588104847323649595422324403155879439307332480650209494629309812281674831608258745473937624274024675292109472906061480741752241100251422884792022526444196081634683582439066456161721041374763686858984393099269468815113203159493828486247041340175913453312758904285153485332454735313811410683218272313814032503892387163355420072543665646794485848953752905975256090646751157251901675945781522826768262455007361121663243809386048645343645982438419953190258839896443655187969455895280432874969042159301198940866116278077819764279653643118198166815120492350659161530237752232100100959665235594274526865636537547062376789841991575877546780628321195486306223450201707794437058383689558617985612000035721017575925369556741869524368743081483614736017821400749965471833154719741109718319594219238322354902988704689663832139519237633916618139356399980309849702719126387303652976487384276751190220483146776591293580421729201712932177487214707505088114328190497980778622627933331513833050614039412032519574527744058282948595542093054006506876829585446851807108337107083357726688181829946899203029394418521676778603683499087117949041580256577877480576171358701329641783708482691660923389757911503518858859295931586331215000291605054923294903639973104989882382601365207153475784057444910260776578506368669519133086743421418925954789134462300320336653624556824358496879516667098428572882591993042174194313791305268411868027609352528965390248772959921860971450610320259505019827407697238955598275529159539391470367668024266518078900683007782027096638084704153064052680488953585250339635581007575863252227974769892622983225573272134419911448839368037002119570319727116050061954922689367646902940728960500283313533604856397448417446820290847061897065399485958098085005664338276668945717803346593624725507752228579493598608883023363862895246394907396734946638763850320054936754752636068579494439455888159854485571744840295780171812530040131073718453482210101148693969040042053996861847060023595250974858394199397678141072899789888363363576187217825549179279006133948132336372343173508139644267687231189375637329758562236933355719307185988123820945538426461894676994002415956847071655793130611735991059190364727547827774569039945275254077298671024629982688944007443630848502431738747729560402474598493282063649088609944742164564897991582053524176722506520004963357275267363255680115348401596114798185532541010630098270642352062395141127556347278406663666596687006057339477383049968741604615806203096984185271871549849074209420945719561363861217341908631234231428030964733462962891873431444539593710949455672280295001249885124371090975974207504538066466295170613701436401018133291133721075438316880838825508491398696193294948704054338800952759730169933459857944767922997000331607458426389181186316467719081072245198319763090635561274360043454135366130428980811880892395912759909985774629781790258539437650406917039697493884268249897275885645113465000537822348359075622931435254282239862196703969588947873916727152038744303259281508395510110161498891746887129211866962725361198395981961819217250869058203613344254189494568419930850453848140370218282594199226472221572874241739928015238109348093080089481399461303106008152955399048398931316450203747205496867486271428770335451430941846839182487118991964913859264037482810532746512742166142327693600567593547411383117372792822214643395056374320050049136218297152201043682959359233120415490853018678892535688149429737664470241849497079178382366901481024595016536753540396665517747952072616693505295057018414449463066876440042092401707779896366240649689603005087150890387051521281067718130255448845551059202991164693992556886038101986793249491871505320210327519514986649791294401437336994126855914773598284978583610679183511776027218520040501353729124691870892235315433713313718289545806717527456437114589439028369490711052869233445453508731714752123401901866322715521166982799514688219792810350478344075320630950798651205097099300707975757532582790537317657447009164079319455254584162003513938506976380077376424349472962961966151955522704679948180562210477515238614700877494759293552041228381460635952089086147425952874332788055971971278900310027058827241443286242717140972641752265323017567969963167079672810757848506909939971460966417593925804816507744503486709615834356402746074304104491564554565691938705419257796688398370460083814595309918657404050504401777140800014417429644355332254117243531923357832744011456679263427631085857435517420388965321033209438696603253606360442316803120305782528954977451861058239252216091564996047037571118737967127674189034314801495969397180342422560314314018712713952306074036390769276080981460220701786497364521732363236386507329134656861668631480567304078468663848989461897313319585103407970587380060537462719986987793319257500880045469626849537861676614708261434843997043491408423593337319557657054521374255556681235791239359417158361873640660421881652473233432012200779938091364433537895021931432690415685088028902005099678633369278903224918558608512271948293993101881109139934768453805532096553046938506647525892503562146849508153669388119655572534445890339426074228913852982049512564952770411104154380477191158857657114671898110021448483255377772000040117798739693321209645432542187905417703417902760222153696538609684231631982302961065530150650089044271365558573968128134705090560733859114751254031061092938541047234383368183733738837249797939396307817318371388853872280563318634687968411830999174357593947662172702705541912374874375943559236476665679851144975086429415818731358076191234038589044951541177299467357914738333355304037691185528792883157967203362872010141371916754644325587687994135223761599134916048226308515316957193041970729059844129871856454043680540579610371399541449087300343710072996191940073838725281427692779623539595081814698477163033620566532380922007800334358290377777936960623238328863757522995692728074876844216709053025715575281437873625653370679249321196694838215830294155388458870505221448282423256128165528123950763927651046912494676348218247834643069971312612052655729815520858098578767920323240665636960944470220666671086173454851469697197799562008338698129398799839501006152129872466697659670951866359517847722616912044370086296401330218459478212243647764617834357570856010638268450412864686362120049478330745359951276267121441672605236419437518506196928709754424987738454825251453186226753674352253502075737350980651275675283576416271548909790863558739366399841345691043932194620572537610336739661189842883811865250213936413161443040124115718024724397044483591887760372992052972046535569829442373842022091171432348412153138206957172974068226013579106505085809533017432349257552185593245993673726476657763476464103388716989670949451983458124726293751457181112630706484575215273122707417796359993562035536102951210112689541933331920990849915097813413375769281839075903652841907257642967821270310781577418982900031917500100005472339158184911550989080933620913034934063681877812583290154085637333336048051071832693099809324762664694082220031108242365884914002021560919482862912956162252087800286932585690739740760081362299629842137672303319215305978519556212355344972760419411977742210537749206381141211527033065127676495624830784252041145927218049602335883868881446799397654168475191714003356008636660793495086760096462568679880923814115816389761327938975728425902337640334311139223674537929911861767731302306571315515809810935853525478729682791944019625006296514235147886393856253419033296182242641925523132811030248493852466255576118888810134966653329506899833879122924155336948011999976596847789554836631008692404495751000679164072351494085982578612851746580418485338819441059460202751658694143300489512033004178358488495041319746620370022321446538174683038232136255421774151205209577037458931231488630602450458451962390531056216582609330560418150720557541631016532991188694512261837021757424207801646580191957160525496601000726748036650587834655730844186467236624759969314461699085658290770494018849528226067073469772326278951464517623581011993510838528937486778702830185644875461987146541277957352608907106787080222166924132315901164854231877619861801412836007439982601310047298730690042592639292006751556214255135463085190401227536980721269823480066016377918709957164903687574433042042944387751284112183748248793236123470633862060158006800008165995966911621591571961311978301926043008000711718051237117679945180629827493451066252206354947809409184390916431618053442600903746444616830620028523076278952818043294178232241761635933226048260123246264753710986248726785958368952252809317251504998659702510728304469358577097693197065247792422632289470572114424856661384952130749034638176168933796092200945318468870841948365997660123599520970537279853291549506034991388492405506952576540905876060884388175826035179151963433397843298983736055647760193239251209327014603035570473121667220436622927603891112695215677109787340443220903423467363594485536047030107918633674289191196091123522187027206191089030624171916190361984877333498418379570429606240022963767783088994942982946192547324694886129898829280512235496921818391746230617966039277069045994018363364989473997968836981800357218171363636407208252176644543146769481106034066405170031009145076752952261002650255038112144399970070846237472717034449967758779476676069699066854954956288979449103202351804537852738653693385025825066393183140875773054299858618317852812739034476803699864800827301148112142439790873510243683110991553338809346681882146726282898415712264325400592361025880563783573205455635259142055993939116104084770755022420785373870312484940987333469416443328162996662910780746400285178757319409701585977624821833494279347642868282847721016044601646290125395142340406550378531922030004144050476142998379863990245356945632727329449305523687026822109330879566392551658577969933636594925183034295128929746482860664569167422734966476192838296807129905800573234323704564808065084661176475881022764481764587846238109138397471460110876373920287396822367056671672072409404112108859149681184533135652754068939244499735639910378794763735628229558136406107444625088737469075069062595093943813911993175790000417043462104825947827104938317544800748889617341122359661389932603470933282549959550478437750023103329250503435663645865630956201485776603456257246041850842956749271170581862904351830528192811528907669880182460139567522473782754904235171486651651414797615478238832679338052475961533813806205616588517959081746534700851991943048447844026365698984821417557367104532429416760457173686333844616168487859116895903674192197286043050258640534624408067983518542699919164382828001221457556897097511926797801011407853253208645955572510235716986840410348056491421734731050235886126836182542594915961307430748885818528068230422729482860098817971839915172150864409029350199187096504403266563234332505122040712504841635490511336462957786090286890090673933465088206611024003252558327180544465678390674849660565521300134697403214844807120786093835218248318552358120862885354520795971769463432385470100865685631120394993702683142855015896725093859255891757792105317656124170177547527128413747378227109054634168039889107991253053815095356216058956388065731364658787584542145357843022597546468379017886856270037743597080695097651273267826729897996029229609795179806597975322362612362288450147137592686362608159811775434382143281769559962881760338468781926717635083982266858375110021608406002865198928979782778831350091304431558909997497407406524678422923520081272718398815537568381655420653880473275689035788419639989739769574152482473055850449661513428476955923425083514443168109809740856043876828731268316589835179208216078473461245095399070213251332616284544671213260631807036851841840344837558302727073835580418048832942692294441417668527008118140249697261546701573914929764908635296582340896971715186908403605957055062900037244472853293568224788582424019299054631061279681572025924387494700588579162507708292500447902432555559877665017013885381881510402705343809301184967106086573784996575757403338896203679391761979005169355814104468633730756248090152633711686540765832405838973350721881402046103685977951376446268972433430777715338739609552635101010566157658364708051372303808156633345943406251286755616916985441131893781793310338186388498801288161116522089618910638349044664562293172900790111024593702747880326168938325095491555368529263545046429966235662570334430355721505741790519214779508754302221125651049188737961829922153226663638127759178362946932679231698527249878106137108387504069204457299671020115111404274675151519956727303764055490840470558549720396973603926683135604096938481929477119535848827988775980647107602786644781468221708267009638264545312183084070562968511443637412740889856100143703544583393016799730254160411337534988660123710029290791496945347045800180411442563008246208394033569422004158970067963483088559142447448387033991633089419614026182660445243188290681740956027410760399187644447609428009145749039563104058145801500201715093930238703169409024739729187931546317778030757102074974016652758245486849029988651507744271239295567387093571616316025624799598423841896467492761202384581280622799715092615395862311734235200069448430162401347693202365151458947448469556204740899029507285502846740199834965005282043757729754451927375773919238782654996276915068637505142523079079433442136999208636249093692353441396363876139848099598628641094825470224540296046808488978129752215570719117258501292980780247806816148119337729118313925449587048405260714732537821193001540198079822119939333461605331594649681970670243690813022535197645049348717845987159148894958498024257619716607577775889852701325942341142476491777211560068906474220695066036754209542815142165283621166748355383767032716645722285048505749763573003126023021520348588260927529109199786522459437649286969971876850833323722041194213278097348348950165335023918764854983678084181437610971878666718801383009292665625385577681528628415830262254510724744751923672749516463681171441476544567637592193599740659842319315226896454926552470518415959340023726609602708109555250919573223091630033145220086992699845019110457654399248805556273393399927842358923340645381344188713170234335964168836657001848264347978207349615934911913857167879493001282907682211288003295145797513419921564941324153865847771598851364061106707720430179818968669933814064547136311797193622248376708945093243648991169838124621277898372385792973251061399312917043271163136124293016425529196681207436919162085120904484482843698891377515393089278796769871477073238742612871429243945076560219888318407656873533305751153382114079128487214200483583106078963240387463979616105368111982933727864299757003923294718654625714426366502417043184860573235286628376831161739266985291510070569947042392949870604963749992159826336349780996248251770015905512316638332472803333007237815853672034517828525829044679459627006344607673022156012993987824365167530394125883063798805698604391094411478492861393144186447486337664121412438991610518475352494286138992917931187002570437027736079683139637020933131636793108042759102261842305668690842093181298495848251545755811854937629289905657368996218481337566686461842451473978427901015578353778866835706868851209069108138849687953821403777024026433762898889355215148513942366591288154200100907956623286853290960823373854984920338015971467623565400881811417494420582608086195838824188254983534613550964177317758455757408192291546017589072290619586768645979047413235500733136790771369230323868541101580737998101167368404594470952185117975458566115340120768000234701626739150424707862907446745492250529459437286027621932310932885627508073902335904781200459151043861076806704401472576544769081028383981090349031954867321009591018944761900960206323636018265586466990367607431384789278615786361632069690103952064891887387004003688779751889434673183091154068873608307846835329516396877848250706339204618718599799967060042519215128152841728387478263915208217900888550003363399594207969053460741630036521576649122257396074753162612078484505385777013914197627254733107471031968196017590274441920467130264015645226583525357331618565321406751985617110547231354024078777138960068559825607455485955604404602841692956472606304560449578218601482340679412567750715646567708999292592331241015628287087513341513399939817332763428692166663859386412746902160545750783257188363606890986614780610727898945367058243415203623029010739248808855391932094311553052338497528193043135969981569918307027906537688874084206558463250590164435421808518319932282280244958696531869733357353593584626531880465315620950672621160713666266601768742050064433804153407878059400455845490335965045762296457791642358632199095330161041839482772083663463705028303488091461904900098113276480168386232510507787736578774289727067992270074224679779740051526330360151289434905963933800331582865166868567226027883985051267551532782468221705828878193592384112136737846808714816524970568794197873318534296548293656598370813844644713832024006692769301993146389064419655064794382234440827602248961156724759945889592060869239081723906239100646944364738219706484135743812996335368890987086790269308484374765442650130525531446983786884909963277297484232992703963814385821126543304493155663336908659953504569695805347798196207833853047089866599406977960727238501758032632901787312380231575760399931778586115401237089139716410324425360646255565596036046620543874141945290656507598726950581453112529056600108058199740142386341279190080205924491409286479708363393971038313036091136004529979769711462844749997281386375233750273674966073609483749265075436327669383831788928873516548717055941312846414717768127080355763861474892769279035497767859051032130832303628485500451681470265453491390860951655829446290427368070867493699891950435892957269721768276026652579993977909684501428384710719256938959864719347871216980631697480206081462007408319826880756710992894771819903355360896662184137145422736524026186828013484956392166526529946081329234086766050909970126893181401936959175260971226263222542514929103803942593178307709672280818474224556900961756721402181285419140488137679189502031663746909864075516593309171073819784378759468058265621195961283301546970872810067659281003827765823875418086713113282330811109948044679980855070487506019519551606142308083018630071449119711267362243991608190655086539744112488231073953101166761879737166892014588251237518513253168917686339536874996199151444468067156313751716172164880652625197512767372556083935230468046891728253398772500584458142403497626558181336901825337481619003141612196425555004854795195581246552156713933079384097146508350993522407650033979700838588985350041129893243867725932235041651098759042440803624486157520374031163008496128635661459475024952885560468652662986311770880137232114054527206227547879277476227558662581799920113789831842482649558796590514939473253754865880375440373665684672062501484596704772104453018665537542674720414899368709382713870687201433778561977671642330760526534835088145448581742272756599980491692635348260482306929527132732743621143384785943661354040122410276989278971555779142324435913799565743636406805101915201112072716038841125226805580938781001988478556121533017977517973270075623888612407971631278407101423948992688205692407025118212541272538946007222695118176675446646249947254081134849476499548119797722008056333149523502702776146092114099054855617140858815955849311330012626435682140943807036513160275866935531101424578019466012747613890989245306822273373425480230620421294171527783422022345843686616036976727325037462416207810182444431503206179979962629709341372316542296639113847454055139342148821899944150645579708084583234040262737608458643411996703641151507792471709627950330405008633327291466476486471670255050968833013412614833333551284987335383319081851825288675646965191928144267427146312764555352672053123043119088735222017468938398537290770412674198988656495459928811469441484564778231436349199805855204238926097223259762566241021175023583950062275472958831691523229666526396726818738582244537278739924302778754963182794559582545728975959605282581015820976244965796292533066514269374616902493566265802398687341655063725719028356695584596107606480937809627288584003337203666659654481424267492378837846618929624154097439321346505991283968859969548748300125729968149521086001655103370923162718014401920567330642371473616238622079102705840470487312270349751491909780109676721603846602259955108313783699165533867464256265577058535698976335064681211055438403084274948037851205602315689498135341251349970213190233043299324003280429449400823612879569647906603890571506561194768493635865058098592766544501785642677745771818261656690507867397394216097906588481686641726569821236814669593094921571009404899602603813887527742539529062268215292254138576557711992096377175320421819687332381890961174010615222492383101261806718703665768316368401585748369818453927647118604903723140473746802087671737823311544009731632595924837943154834709930352412310561552061044006808459111806760405552226812863524270712068936400344888357945123867159966299809996824438257532743663709858542935766484610901059345870075318796400275910181618435700510990417057871121734756569926140663751620279483626039691230187611171788560146156701012017315121544777201449393286597282789905182425134456739314049733072768029952452359039836496007906136766796777112441516218539851259493616641073245081329352653770224558473222366293656731924383969514195679647505326674306804340183654976348268429247010683275802343463850936663275817235877388558082575299272252888979653524358771127929265794122193495569314763661375387035807676137702298000008571389747334037336222648571411709211109962128728759251708863748124211012299748206249400431348789119986847500698614159798608000197941439954748424537748054967036923090481253161952513416945219895702384034579106589300827772588844820089933122988406838959712628206104203127759469999368169816798122741712190603957090388632201676352628319629692678813821953602901095960232658850990448095113047824483928674321271309073165275445010577610405534130751812420705106946409705944309462063065847166025376285112434287258003891541131287389258826141931598857348980669556993369171622656486372870317764800108461289771993284526403253336846291133133229277839621868028617255491563216994759424550527663922790350527028131102650231311807518280699515469743994709639923625799470973627885515131080994329482794759394281293280220867165283051522583520786669290523766875223418322293073052164238971700241771059817074385874908654630544480332030695057791368905989349305082812570076821723597605427477440250727175322531408841754007769578542888866358524629598121464689893938840910464150487683764111880760866994508470967345231327235459434894446319826293389648503857986604296281852008860212464734551008958681287840059459711949601264136024605861532532614039248578816755957057505468583247237963048329899898177001420193322410303842276885995405403311063334424618032867983761925458045649844518039355401514566316284367630558876182138049799607377865742727928797518079358673445951232324604054590793822517929878860136837205800896747372726781193006023293196722184409709462372772895521797439881568973574560215123356359664650246982748492339795027209274552554328442577133831175130413161104920504058311475666139086567989027304725041474218884672416433842237405964894922256140881731584245224236288278366017596185966872955291597388547524911458544057005801769505501394527752194973113918766998110659650037029054746939661198272082095467771265215271632062765900996290354004693224049926073002189803202540038871077419562433991520988977292492355360126428794172156056327840267672316040079517846030878744658434564368904302201585269897225172186208067229128939392514475890350262671369769630112834784820638410992189537762237659544981288120994533568382146084408466624881566178725169109979034092468223412626287004135823573256837893004057765821672351303180164858073925143659341299112840856958225083995136974278005859846306213225009502181919732387173453441173980393416119898730534494546260944400089614745881107394451645401129900828019239437333969922441508372285136284871405477043921195229229472857818293948819466010722781083206108930961278058307920335250089455784073567089677465183554714859276055957110428629818466350113681222636090709985368798333596146133092266754900388705480775397462368030463316975926709502758169464317638054689034351563096554191811427994615720533569957691652767448453952865392012149490524859108954140780174650451725732402923674759685885973094436457738783558494429924007611597329335564763086273529452984501446965352861520108675511545970085819410399470719588115665978951120072747751770744663958735723719778205395691473063407492348979040029508076928018353167404973307400785156838678588547723107266092241412752083193800299260447420678950339160242000875399801943964213528297998743880181474697061324617131316045398021299652216806616876091494009498972920895404914795494409304346714254791340941595187105051884818672303331679299575495179261613114072350292425248817762117092571948950482472033927789152812935890703269742222356081922835979673125444185673261750534189820417310062604628675024943744282826140517667468805529872644346831851215756356646156690791959195395947635460870032793738620232047427353580777116005768865735473481406257630756557317133776685715902566218737452117040125624730177802869560539197218453161605169428565308522522510344595961603484471602962717614774634569824294183489296688515204872680641270519456911400206965116558070240479936380367530221081160794640957524122564774303497807403253353049942339643487733143449157466942172282338874027161728355382358319257532948821906607988318053158508277618892372549785046685771889021599955944778774412483597614984408674610704350585353835503476531769062931803563363919868096623762442648937567372243962987341692721594029410433685186985102817361620273861070162221871298062330315509938383718282122431854960427421259853468285491629808986491808189293500375604298340971342010069024591027875354969208139180852006085717114067768615285789124462805372798674059375828954101192829087103777708273575176288990009615851734044949789834448950178299668779539141891573942199845007897831587500343991469314235123170378588815653118174335453408747176276078544972336265146799745583957937027921042084929089363700463740941764830230118363449254258922643357529473708212221990979953448894860769190276040586024760912729367276899509730623577585393263417703489964871909511483335694439206392857118296424435079118396640029351123558555907157566034297132540654621537598697281822123501560771733907222907724456916778758114585566598059558000269514627154606298279525690055869678698895404193856003166474277423826610607184886539380713951992718331967290035618569770136529905027665401290926185025712793082282966431213289944129139051627120343995442492264172574696049812065705747505383391243348381667912662208469632956530070801043995430050154958792414382956335789127571523395153239111229986815405017804873735087236578332399020383808588925160108626632881689858346578066855214875552265120142058906317096615354614361041865472896196633534934755687780900039203611532550558425405137021711934282421287664638867108480210550426849989225623588334529005653398291657502978577287631719828620359039557592944186178321131887707023547019137976362156208776023140846135258911476136972530069148461537611791319945632572851390035021177486201455873960693023508215013696021244879591996828460282671793003625055857633669237888305759800128096037592808955390887213689641524408188228567331073444591138708486148707777380521768593191336147611578092593604382073531677331576941392184547077483010638248871935399436488414269493300742547372266943592720452216158170658949901219091332416501532112810305881880306267278354777085231035024309730497330978085647827000383903155216630822116897023420510322865011654897602918588719663251809663269525227538531180149518532652281415783424534855051191678694456276296593221575763937664603526492181755406794654146716762421157459846931297716143671279461538739549006539401438819646990964145906447011178933051893180643519867353398432614000868523048735452271562176815608489198767653286735013137919209716236000564084856212958700659345641673639552942235659317058554406932422488379243881832492007653511237917340637554831298326393232562699352837192166961196968254819807347763963331819067471554986934566655746085593850722249074841627574447443887999258313821703481651636468650841295954765824494532147832419127972041835919322106462407946608017545648331320610800477894055494353786440996839997635226938759044937776975243905658175025335527415329703333530968650356338396107035773218182240105714825342530578050880442909812412147785132819327151457256274202440677203838772627607269406311970790642825700878808272035912685093390013822411249292873011149723736911986604755739380109992455719544868381293811048132936305992534406102016151283246646090770758782828397018132674869531831629423450041995028109554853752559835379696697367012283206468245224880940146280370420941843588671858951038546240052496943440563957015640270903300114254981026779204964318449836823691494661997503223645981270004113790241661917044186559812921644173722286555622795993846489714664058124651914150809446209315517407092109866088343480293227497665244684680666348002780657663876287394176186301266656919346137262646550090984036037653564587906859008992737131100459729167484673605504211243320267992039546539234305233477533283421901392940041711354080374978400842089662014107006446216399035039295574587569201827410537541607235527619351691418340575523148319794244976314804312146233038680395391278804270731060175061497892455668821970041974211559136358329942178988709760676015071985769372315422627248565429774914807165325649423440321088939025117155457375309954979522234430779296571686151766078905632841247776980745308461734552647084123189368607198146299646216330714553566509825197403346869158251935446118604075529482628612342931514473746947074946283167589834941838235919508995568271112175321119624986426253260099409408904785153611815591987303961535481982990664392024326188136335739875970655340995785606024114735053626919760955928821011008437359311113291404393707837645517894490810852315433024268781451388417746351423853919120941092302530665689305221391510369115513085891608744507793042302296836122574607051132785929089790815223976575619638801579179957534384045186844127757320378741556383589559298101695406660121483231222380736566884562234836660998404904908392167224112889924609616959765939942101203752981340012001853145583172673606833254384714386355610611696917522695764997090825287170375230837217560940631499019472217935422126238291550718852402261544843543799931667111744570894589076189452871576938648122981881860042349966643401384219763498200436082537199066588091054886115137775952988143892006164355250111146184456873317878993183417001505426964612413160953650260544354948296338921576102229076485517369377980497258651579844360672045684461591193998329479137095589068297013507474239694953763784225526603772639389871664247858192895555777429163874763656521133274629495735171707806740268922505799525217798471696325979763976035278961063578809506574680944853625388525358541813237995476799864140813454649284448936671595436185417553507284879220578114393651366601761252714706078768341714846668665698613917802994066783133721475506630830984404029170478768508282090748896663228620278344833895116513819705541564514990193072731175679094397585497414143520429043863616349903933160202667366357243573988538887874788860746041777219035469394855006818566468742809639380647914650146743552276832684986710431007502743169436050958621167816956757458669165562418103935114371388619747927318509717871102846705393976934997950271093868215064513379132515924065168986697456615774053084175984693461428937846799896843681111840750110492425762182584570055003655103227350014996661249495956615456610314176037737715033821936533875150477787851070547403855704582621644827714570464674417481604504472826192434369940760413380003762650052235715967555792301911790205528358613002481185535444662848593159227128505091429403729591789469831044487933831367456012998277277057630800084605393571599082977584015008925433825563357539907202214021404312033209546882814065549664395782029580601623463305868811459113054786773046024555277599222967525640664590918929139147504323458850296159001837463568140742834796632434736375844624274563159952899953466653610700707538176993630617283428089157545264203334889329464925878620584966933674580704688831794686816118563446346545711998551089411128558368570463114008046541223910386783493380348490622437183026388269113287956130628722374448370496688764970626511677855781015973605208386551267140940722076130350717005350207202687533940339399450395119095397433452223045045870904133770199496452372406153748774294337892073936073024827781269534536909142440439491770683380746085703419106566399292921356259671978705024571047762655630328580321423459221265963688944304032385855110410719224176877094894543188894830362546522074106516727095462447575668739650381668391685475709498127279536824158150036090712617119560868275682603056302337341947208357738021113244006288456489572711503460674724034972317562961608759860670713593508819410493208643954804365422163400708430770220582952863578643768808612812082581259631328599081343493496189104702357500775169820628385644835273987320837114773714078120857830309295517929430130904825959611440289020807079717216355919284092381499756716182219706650329124190789203261227181797538423857218151644201602319297380626649693741835311356761847783899649630952469248245222641853579702447191715791994268187501421334546938323665734130227309093210498842696204328595163133324224867970428134573905441580419943056338790297636554500873142296946046277556884209482784650529661624683478214407891919888985946928217690642868663649700920554530316711982980455647503248055627309554078831857110240182811424897795009921095208863957581716226058278687690687227563970938303759842648610990259042422166273035382967413644211694765741798321050092667859091377043270843712610760786758764811911749720208457663848065446408979215359582226281353161445228712492386754622736489344087751795070157566348627261039889862759817480446876633015230146919816071871940327786090137591303465468015905306448891542412771229210760074472712763535669545772993760765914078828863924907178048468164121639988659575414459836555485664358070883775068515992598841944077246253399537489954211188105060177050314361472505072547433837660264590738710478296962011987863851360085571167612516378960015663187973208025484195478406265051868711738653691992967952183620287666431985161902558226399866586458536038395347740701637475109778651596985158106353476916700169745297084755041416856200662423861824056082229331191334548193039823713900091203926116541162458302306945611410317511196098338700479839782162045005491511258831725598448769706378590042740093224804939823544541767250377132086796014492906940752943978172067389994149178937005358297370262954494665370426871403143928585354821613280510259512958562209967869483829860613637819454783413266672091242684406615742083133343523662096916577791068241518263613595114547815258996552756900564965512694941604661947452895334794346500446391584007350343552247265316162381742069800805912725563572173345600080634725315058070123463630550850238333006548689055276718631039654324098646397953989551771535046433688630974573648220181577676317066525800981463547646770861325653764889078841043495290697816421857423333018920927242562722503184028843156243882493303320704384481450469520171372194147201650040373378606511176229374652750198464394020336778195563864339944330478154466960507656414635115110600503563505287195859449180140523863917242056503977703910293389610268763625439753953223661411721935448738697801852505512593001852472330855067088015510067245847826996112367829113717208563873308902635102031315255114568529724791852370282567006300968761164416805735028525592770462686669834833660410476626323087609827719534189603192853176298756250109962441800613208722596567639965254762751805317973443676036615734398273618267379263841414621304787707660621615705996803031509163294938571832993075208921332602434051898464692248718352890691269963053465652282201709108238753757881805878868263910228220108931026343205388064489018773115711807761604478416151518330750673770848186447128504275497885562553283615695705934196554386199086779474856099254769416998864117753298544255566792090427704558202127451410603812808036208515919770604688064790040836427384080837831226692849134172085101353340917659487521552451828629483368142743871688288815841013774846616703909963916243357336601897110902951663710296090270628842671800482325701561575958224734586036989326300311773069820546776456582692133008827000308815934122325114642211057030286966869024249680067168883123143388005216010765999227167409628820619902102514014714103827297044518302426836451890595933560960852723735845636576538601257360932598905806321296331594651343628904310012860376189023998709527859027731284267898150823541463728230859671859699462048560621129417255836057673219053558889771758083607819474489197906912473083364211094359746365552180630746313575674898317046653837795613198715816060029398210515882841169413626169146105303284301531875466132297564659922972903224433572476786182695860094943788036953095611317684099823124719531410920657660961382718384784715389154631184185171231978115828465923700691567552050990119738613089550956951237592176283998705574867497498989149125611199071791819895457142479529803272297320118397836010287864620775452494211750389139948969131669226634348406735835584653506661372360498444460085227566992951414016152954520173148538125880312783777428472573156143710902183178240720326820099617968332598694814037124596210108662119676993472380177609270817451915092377476915774189087819902893938397290881985331284270125842991705278091505859391640702367685707098326609982272494149499561393503008666124222150756348620081485515780923819896074715268712387247136384311090727768795960153743912089813259837436960927475252337987804005794547881586721655435337248975864431422119623365130709903999035704580395778003458265645405744247691617743488533046424256466389512619730808555991886155029350964704827110142196359685071206374319430644742946804025897707390655599714941853646245528308177991677842746472370429280439754558018977397728795105230358913449696012062570809319628414584463814701101189374672731491131943202471990325980115039390251499881563092308459956982120915433606181386424277104640451250450297768619891682957069018189184043108319606953480881406433609609934000953362391200708779812970903975877739497334937880301162205381610508738774401314096825011850439524681333293687717356257195779609897877479126805254607435868175777153281199666009297975160002474479746647161075593147922584192308513526871668781343878652788102209605155520764689555245221818849030829135447686727595391197351874967802506193400720420876605709195494922928715755927247134782952386531416884990017071093117832197538179839325223381706889792341565006200986719791300307372992320049392147519433602086819338020619369682885968857535464286089150713082079879680571091149575476393096563802294266893911922135637475549208448684391782892305517928318039164553667601139183695092936576307070357317823311571762882974586973630911712523528711198892847208340274219344981352295246688200979514171609757393062271189899572868638611509341405591747917004128852310902770547857728628247457985484559012861492532208334172927930475089632226464342773568364182909480832316825298813844927386868104108372788604071307279402695888239559375484109468712515228006495343901172663659110776335313690477934586321287990127892827129509632694382816563931499528301112993080001130192589596117454171662660336977633557853140705863771157225560272974587697551594077989449033859177449094024615688289691766412800979289232139555413997704951723372711365158221263568335569166360035127430607106128283298103740991259115552233969011541504793337955390918959229208165235546417970556688231866615547464999811937817256826318404853231963737660927984156560168001375346817793339003231863687358442650316801615975324929651888216985105241171830907744092640798986810172761942433860182042081595178901629136998089115611342874921345975808314821255193707410830768269669670940238951808976365008916085779859484762801535906654476709665347924170964513295804479658757984054534573447587129841058837942975786588791239303884211565983836986754193279465076645273981245801264249995467413167131830758679648119446575988631342539061098124794393590291833537336931709280684146312685970600521545979668243569127011956685457331133329305256008224145883583609231854042145671904416198426536510875808418758335798002792999380289387326638846700318883984020894886075584904729506682695243804754569267501003429420134816713151147827159063762652184181634991761030794963275003827526101417699320851787981391135390538302294937641838615055171642140424416684875568602200014392406002883089326924218896964011951184826742136636478227017719533039185916704203307707686395995781609111135372410096107840146623881461154597942775578121228492506349253396863716581129412033812251037400117780590092594657719466096672947518827451392836926866312886689348778334221784087114232956416075583962375110971213372566130050788142896802206244780256388073272810101785753478608741996769023744449716467271467723553532736111736843302227149741687509789109025491955619991463747597524064625591912117025543119360749583605675576443007317507281979833566405982780377051802342511627337727567804743684480324118587360296275585446851928485865067828759009306993489744250414847877605096499601555483873242028150828891398785426852890952647605141490969007843611499632964423716387974317883136786804994846424980417529439986902830419531838046255755714213062703925215550238300959506524078912003453540958119959170096853126813033489360221465734482576326986043343745789221652829647365252346361486223023742440974513233781572571878850851390910808884906719228037949081761377588630103611028533739749223346186129177782056768511047909507597944281304700279011597042312431720844669599998569612911125844682335544397633842904616929055455111009841299270541600946868870568271031008826810423083563930297421838538462583018004018896442534346717840717078347448158656634065173891501737512598272394454822261589057937573064807245021767527465543509338658419237303876920888223287430911644078630782684462169290995593281098105204679600798247869833035095535494443419418650912842162654904919239706348929655493164356098784562282809853133039729558800419947200621335221499936492926335751423527597001775149269041564513069903073356789928485312431044804430589507785900994433648633795755741823188162867472503345047009834680303196974881909301545518915103484956742236495602136322660253110876438184391471720031530106461375611214105174983662758293379261146146287709828787152761577514438708960556010664460222665632183934457457066008938807178833335041374917850060004142842176227671586817967215862372219961331938249081471955485211219302122070108331047966402156210047025702526626745600183672502286947908977432622798360508191938319413320697766050418245493621793634114684527753283697812887906255835981026062198529309120645979022662007228812054577617806188503322454227822807456833153638055634601118972606816562955670669572790816679457524142889878148175350135066271131427704860518899431401137742986030198347593509490205033366620786407021068934816024118059162778914074695243849080784457332324164831937567167999818762016118881867788669260057990101574865334728433019305109475496353361795658293456306025293506026346196877836602419381479801919705743771426378453550378192105647856703728607932715693152704270568303868136573600765731538775536971522101983538312302653053362738106874089915245007436412606909871368067236951898214142637817798172687791005043806067914535008578853697469458716631923470520395482424022356328621176161735214191811657193013399665331980447178596963613663128988127330891538794296473374753394463482463225451269626257276383159288295486946499990330142357867645887845780719872087193808900079990291128207765045465722838064644471818122078408939606850012750933878021737992913954473684136418243624950266451628965091884194594266899362360677748532242487523219271964517744723378794674854476329757680973543147004527939001499286145508768345598399388736572141739986355896989855691238528542320224623979935209398457532644489818612802192790764632776446523784568441458316520079833933629600145171719505023300479791269274659973067426825179752702791647534517020625429971613434823112371003095026636201813388795852248656227115541394568643547432118536407216593366787461231846564372538390126308028778413337120127526325176544579908042363456660396116905494137776987200742169517061689184990528152288803047491298102975135738752400016608064027856714978825139853849814832276648489600956685722351487575723767004719631770199879756397264281679536208424301185189493399983764631579225891945797807527844662919982820340174064463621825102168670169999572890345323452836569997779058829516773691568761772243795816535460314539100284248276598021200884357743600040705642308559630904044367597608149663962913120153329462981351162653210748344542703087119793886715250617789551897822686267730396360180552886366446673633429030677744338338317887019693909800878713637551733256813312286797572668355380905767824564697369463401659232727318133053881871928733308604454363945190499578384022221416977209183043920159623205891973843041468491409857863977277365390658663925355262138699267859067410922407011273606075275825816714309522539770733820009388619079115449617179738205443130832984790696780496354730779967401069053326002731521106742448014424062877861749976294442590559586786098186333551492594150293658872725510850089841309840646450444778443007074219176818320278352786843948356883564923071726223736982449683763316099792917112250986322791486097014596586188997138026815098637046817373835519915300774780909994500743640238336459312250625928168660247179663430144471210313861336119260826814196132038929227248468161034485657362701066777091916439739179528567516306712794047346658506627506287776404662107193496521856518807224977969991241290020220112212283341103890780055003796433396404309708726557415163117764713459079278290965832282171034786036267141846566538984688719988405468109429735531667089527137698123324309072203136810086264932029232976311085033857356809118947305866614106668443791435781162712926643819715014339461317925204980732245773702368058708953074259335575094463834927864224376563250880629380787434853103372308252748352384665904561477809675145212986167635573027218388607098099304199302546228724362519573438635748728564707040017109124020626836590375412189959337195047084846951014270846533314778298794863337924965037391143734318673732598264337086516901521165758264263081869764973396492174189389315514545043189617778637568947880204478141049268828510628845575528632647963525173417855733498462494083863124026186383331276343570300649920000272260133987893126455734349432764698712258436977204030354013253974421783100945974491242696649371223950744628778841596728041970103767959090249000420207565465788360536038838354335367404347572734283738345876312624050974373795426628583985256781602259142568099330039892866485185114093968466254812374167557179860565126550843270244781093655646384562279015307106028481287719789701391888336850474945948197097700372982576711153380109681902151266098539017322502619563694389211410854106053247471820166893298036512362312573294243490723191725226842712585926472852415482658542527970753460515809912532258512745433716866567871821728402491393852985135727861516004572571633079473966280843171802499098156692945476446834045205699426659255503853279563612945665098693555066643279121712219293401015998030976772023089340343802183029992617011874422150474023663222251980299721584248229008871072686620847012518330712512873644669520894843440538149608290736258430719470453202219201805862372184254484400345115148358287228879780405719285050763097727551981741966830022874899128782050211921355176637349791549948961782089635513192204113717657335231260601483726011777474974144552455140818756156358453722703272262766763144359335324577668743614804467454784236640777005609237198466893186677059484290208170110767914647368550715861752509493019481795965847023262400276094214216890818053257460836774657836188945823593652756826612839267790680908902680604736236591970769796706692015884923641810644917325772943048175147844091887742112946660967425595018289028576770264216900723544290355649201902300766182365523104098877855854170488836041064749523835772921894245561067062601805479252745540607384990457293670851106487562729339727973164310980864892129258224969913051233540571023678056623091225369974204410262786132200577143877565500838390260354858472505966338946593650967513785193297029732590628291847727621931878457190645340320773332840550039584703216706483188856990773602317026897803571993676051688220808918926371684204247439906534023316877642076771662815220958275549152920976542750710616635688199606271428953418091075363058286869458718125126584202818736450717975163599555028851176295279341431425304552724693147354089573722914106193055131841411605358231723016443352779044388877417361093808282647635959564698367664505658970909818658892480082612909591475715407904972896460620678391969977168366671037471085641073983946316890903626885926325464586149905140909625915919107919500414608647002878555210914609568179953536650218512505441772530439193539924838241500681805379301035380039799437104128026004786224096803516190557712345956714203977762485297268733053696428012796254755716028219922510763250695935377617551434056274923910590028206367958752942713395566093610116805603331783376817772313232981252164310215432886521203290081683691156205877524109038209155029327803490930501789841246434004452913714492341437718583474848117571714573325326929662757578999971687285965619988214273751440545319914739610164553320509977275880565649091071999780413591685169897639200828131259051969323184088004178002789020586838348636660830072590281267709218781018855533882661961623113151102267947469267503159504352701661971642685115843152674620462808853605702026714719804704353479861887816794523586594517820314183642700543538963537193702057519172067650581268132054968857423354706574804905065208863793147425819469286096655689123332459180848155530918469865374538259448599210214530459720574139207426315871530978002600635929995485995249974076161653441078948954410544937705936936319246803095556447099527318965844569875493708307947735452637639118245076406237370262099316768145221952167534762634519225488318880853507376751549009413186973390810887357209001879796130659008739010233784704889174823156539027120329106771769597667581679106063164600850344788765237966375825921193642969957416427584522662294265067507223699757224326280781790957063668952309494880346164076278230028652918930434009392820942209980622680079953929904080061427722697026519325782504679825182367367391047163905133363892663335969337834626712738732026220648358796426198934489370624810282112629619736922631925510169803580987865318824636259962883548340855861904647682749250375085240574341831396332195585454369904948052784654063332165303076751963223506351550675258040230168410994861227491476037350859348437841468472978729182007992890467651573331132194169073030546200132340335901983632272950131204178072946967996631984889286302325274940649706224022450431682428480919973207234618473597777036416699060219597948946321888523019049603339345109596658457557326147779490436355972177418734216386762736984318618429761125666232711840157500063089917329266258004736844455288222683353742343269789972252097699384684739586416155647046609874911438712002843618969791525365479870863744021779148020634199498095153969500388005764373275626798478652450212100551780186943343272680158499381402314498165267308823345115489205566295883989321543160568066212853907020577994908058800049995770041835878689318062454533155960740696459390921212096777444829095283688562461101934200340458371324743285895004822852366611448288149933622694999075286562239045934593480821662321936736122662202830596903779945836912550677323896384349328610817139349570134010759279306149942355385580581124103914057429739074550330336471389643967260808900039297590452512951943268826148857601399566943634262457122100151451267588072703653379171210450356722625794608272557822396826449842595680337592157061044846628552222530142016108429283157066231282541894229092627989944622335343910029991639278806592945979926926240095496287183640547061564975279388481764436368898219468320234930949194052030045378293803786262403412248306371522203760778442632506687094317655753999790784589289918211037556859276557262446580630650048247493374943188902457337029278175391861679200882797234241109671886039578669932214274144950409793186891422747387477511697487418649448700962688742444232001196705312427468613961380645241976760592382835997420756218629779340612277987253904143236582147316482730064777185880433407436975552514313586315226075194912154745862807210729188029479324178826051084898781612043369929995310294746941450964372553483400788596208748720083799486842845058960245649621432584616529320212183481365694595403559985881420557425828451760281987820488532523372152930595097458615179216046822477618315246550218631179848598180944066298350731972578921451908603416703356871466499478313453391581505596929143084027227486880423281705557579325954816827815349798387421072839643449449062652084729293656524534991276198667346774161590347510081486073604801828231997328480441164891766314794389287920024279220796264971925784638999121825016469908651705302648961224055442132315534801731024140873056607370060649934375912738658642395487837748988578725972522003747107661360384441020710549304886705114925903035915316525580139247591147535238493698170786670831541876228238115253766203322903081285939118320885206935073734813641262721992462292758296501041809430213669242243538553709572302975373705501171903633506847361150130590868035494673656742723002117114749340428388552474140825040324230852130059349704825110652482709218783302380217873245921828082753549420383794829931838926940508959180219772614584702506843681818620619954911214262222024837564399765542258269941551179878065117526440507252524535068430886512295079705826114209885804593876525584821999681671126077041071149343064997099573206613223003432872015485231050606448077214843485012804029079563275129575407162133318554559769992990218305643831922147871253676110065794288797939808356499285377259418834226736490272576938946449350334709137249672945710841756053736051643136022736928635099086866387474169145672847222052857039730644279119026662679171174864267643519017519973016272626948075961496860250677924033996236499988716214181091149282216265978622292419811134409422144071958908187062503903259194626991024865684340130931290286874292075691466133893432531315005797883103303316963955508272210489139978586830768504350654272447436337275547625381424487592024820926145506079358949228845962971847395721759650117038277990742691870490403066384135849125204980034355067961809022289119591325134306587344881782015783186359208537802774473763476998237745901108598572240981377973931512689028461347631918828893015118046744753516084911284733141096371377701007473791280037153745710822329159940721715705685581623818492773169960812257246231347857771879595964668519844647191655332516697589993159073298215044094046446254873983712082253721046332429599220342599906844738070784588634729200246417485769341098926263823291806406010185774515608207001392922642694359580973343387556839857399836674433202103026775376293838194150547025252728120610282136162547352500508281057687975090113510165252482690624387745381262440218488519686808758412015965008150073639602472423045814474118002111175196264523496345911194051693315798650703127849178181631874413836609953779230414762966291772651244990699416263949535225540700907951615757299776904733873530348197363433434702388060189544841751891206788021943697365657915894506345131224854264249465686812321944206124012327826925795491901870994797967376335732593908470248862043091616679869064472902426309648898763782782647115192131631294464717691796934474668251819191253726225447191274192867117908526376705650038687069917913521118865459879573865521816960833092040382767469969110492710859646160471218677183976076376969999533536540749272390999823756482642892626399044272349629511494303525856772487534039510791749212650670847131157794460764174334599123522330726023888436415882372755916686829503603871673778355896156242961310197977717049024829139048261157752224740050858962900127048172124989908489213974666126400813193826590325514008607348255604380658860127407806563237883601295336168184109529256910285432333059052197974108729569096660465610189425095683153789717706091557663319449291811423653828562700537204702999110567402218327963831547306596814706378562395603342797157860719118398961160287025220643122616524048239677362100879372673014059966206060373920864964423080783204118591430469572663318243018956082977632169251843119586489370723848092472866593473638013394313946039728684169341342294110206051995991855694667907662125261305949636045899535065146924421637561806700785802710594449873884061809545470986285584557784245371371707996098513752891325416540858491591259349363153407917027659400730360844540208775918699172237299415006272449064645025152877269079180158025847122903169402182716660850731299266807290593861328230277950007402411233399827532206825723374626992721715540827768199881740477393664963504982843225234274808911317684663348258325595742163799979274285189086504184597491169914744725024425936841520790628104481250581262461739427878137312300049046154553188226550901767298033849974486732737508613003875589260444020476015924847943827123031066283881991656076121024551731598465121339331255615130420332920447707531809037358752601993375459561579153768073675666977559787436105944808710380702192004825175825660385551911576114943426368830283898385162327428875932439442115835272263352065402870930622375361616715927647308383361411627389105763013771031009063232843358402526659608097635353379491243569993512913109391718534834974350214853754130099545899370323857510956374811765236485652784108968727487154042144973953306614199482552274752348455065791976724480140036825275584376125740920199018455049317582738136226816386887017867671990551644077688187124600451230523413383927905955000613167374352779298073493048574362443775093553480000388033559098007001907711620267809877185067659832114289221181935995530875847482076808891357242002266919226842576883572759654506131411161835146604696799034508801577598184216009032526437285215121694612511929567616712207728647479873430727118629714676791674150517894701760379325615464337138776961432370387879641052818801370033951395546316376538149499434173434089087466802815358360963085750007753244941441450251322360098247107380930847539526291185648419971949613583235001785253439550166638129214444540754954781204138339843754209206602963439261783843129954297685121190205910499067414013595776149325638544457698658727687657791142974224599369613102995972905356953084772018165968881533635965293711654651478561805301643881039893165005650389706863462073973219776745749481716502014760373912454988765425103766531153216333604216166079157300552981860746597223175091859726993792336096825637294393635366021704791651256885024392176734675577040877290111714768551743178104077851283569082969264590906627363646819194022760375792010120249418632695585123673253879526969414817272670143713440104643051226372391152023542147084922063438162080772298010484693903503898046539411815546395421680666912321323009026446656140271380677692773581902366531742090900698175249539162805088941694293619233902816558873892658361238797135610046354511578107936524760716508295276736536322471243363102671129203789203091898959705834611727902085875938166266915627157652282517229912710343652882317492549678158968436941853729700730145673278553149092097087078401256198320207928087032847965443824443759722429314887268399111772645017103241704411449251180117855937227867167827177338626958727181722256004733151045904214009770304399353564494005324714786507300748344887004470676145884481915813991626779899778150715865858406593903637453584919323282973117055460658372476970820916221644014921187570605446522865791396603479119335236627464235738192635200666046754085990841205915856486551464162176255014191194075669144436324360506712341682404055064039343522732179589516435794654399913129050375687362310593242041347803661354173375786953034626606574768597243072320772146979286498616084804271994593430949905284914258777755988446381085529306014416907390681229757526549424776308574698270078146256128903522252553750408125837509271595856323047410420572939701115184919510148626927117531089947853366612280624414203009995441743072972917601296384326828496870894678796447721172099339199153376249576098075936767472682520588405714468890211576883485343257162035236105137106586785258442552734964546009714709674888364033046696181748775008057615665312915300628794301181690960859940631994706766051581749038415097336214095697153046659555933467842684606738721731797942513735348825958600949008167780092974564827753396899324500304530152515185208822984681070014335754156230264418884733715362176843681784684817211022180608241315249791182968938926620095456214637284999847904605500122020039504871837309282644703605410931361585626904164492643281097511091713206588790108564763030141777477505546618939723331463302993830899684350970380674084497056802001692559470579551872549301993511981691873526145209517925179988738747588619804596786284112631877184492625227974144689951422284214812238328367062071398963565773429814824273653245668592330360278118855317905534391166620006393228433803815906952098445703998566188333664700841365001875191930480585488125758722918387905313993007962179673678131611365689122691903661566505967630950162557100331683201741242328750299477670472863340267322918283007536405241478584587091267565650314277785746175202183459807915391900613964202186934860240628146421360687084719079088131934795364566490804762808902392639350809819797707212531117118065322857265344491199770256030260736345742467637493561683147337295969745042193970801105693035849394654861778275902623760110408011890147058391975041377301854842622792303177300624292347483059884172457032672139855135805235917741817398295799756728916494154325160993643690434403750683286963947152589356231606812949594238463090801415856679318562411578668473627823699034114960499840650243751199381318028851613820740550307154208430838741767966270944282684500468256693677131380599182136185996258214211805957174753220736468591946149530648867797695287399197731783606490591211214731012421592293048898304110223739711779057223648873513079841857466364081098718594992535976902165970133991191606963246829401027660204321406178322896191785939666228852936710966672245685603401396156167113357222855875081093787156759338173283898048178324897141768116027142966399071204603919213890283865711203332374868968147536720761660583256299625342469255408257626344923113056325212339453179478403812357281213656102552579688584766669800203257666580066326576155988723633319008875988773117995555839777747435740969356369045638162746550560406401230772837410429488192297647012484852224487090362560859465209952959194569020896929643541440951402359434250724352866929985846999834289581186278565675813894609963507124345282975840839973687466867360157774897656461297922506194775781606452356208190094456747505707974924345692713903787467068298679716818923779446203607223919625403068029453694115113866080713325985603026426537490335605787385000153429337136569475157646786277433115954921503908568156531595765058593324506856188434335674761399948302044494164779838673936435459116596092047933228060985740955656000293387443482011418113361480811515449773423405833667427198348000286496544429613677953797908756089843356477612076298440128071895167735253590869307044505892630842750059613499194301862098371595937699432132343109338545212403257314826932516088005140417708123969916295253574092545909877455179291780503679611834495812682385452967953699322217236639614558105646865220652165065265783813805267776152657041201195384633091722789623859315016784444853443103509571399034589930715046553515641715907586237497762290242880453282744135939763555271774129308469475197105279449239266122127876910665316991130208925170073290297672914082649660129126777103324943931084982775934789090740694533653003583887694773792513956781052999310461207587417647825008657795808800954154576232143398775780031985442902411182018306963523158757849230290715930021346384326178720175321105214534837955314476193431792925387476449417954820283945113926217226742779247845311393813942768955754232015197728215255907082299319806797099011168077415530163688104554414951098833492323234287123873552831412868975077085109728963028831954502261500552364886172101470273902569301012559462437820931189329156137646709047917321970660366672519403869071884347064282577070642686491560175852213674392880582832303408962437718147427559357136309898573172257038134053801156217152248951674071473128834411531756359407955903583232914143927532924794829765117906911699645427746676893674668917201365321992007279261169007525744007856881940636171868818216939071946539047387021776140465764085759297290210679325965637980693034235219202365768779279329069173310728368548562393393007877957600113378514703851259923189671348941227552977425539448161306914677959548333262802536353387452600873019966490828851192964285916408696342665198454643151610735807201263571336621885609770329444350667961275485795158293463682876063531806217280669505364033502253744318517533514089516476175887849530698747922329260539328274862941625992813445162100897541063852418652586474615393635219308751406165710044030286975993378764219379021087977914478349111954664232640762128351945304245482780507569087609303496000507399659060922750188809488562998128817802040307117516336311097804214064013907920307707678330923725550374344738243286307022337614427912538985009598994573710983691102570540091170491040780845849637374911373745018526680813821041495492477792245398903418010691509620907733510367461743353801583202184205922210095493141091630965307558836485553762320296308716196627238469643409451765938602271655852008359162858394738286114937051759594956715545957489993363468696742736582750194631358643915696779475212654114633608578312325882284489578641869558816003977447964602393439912603807664454478417709357359108627995393000120342806095276519745313058496555313200431565572924866802849682011775105848803292699652621539525866596079180566984177361396727160253568542137408471735298309573160502483457396741387000360963828282858989612547923285047200027852007573805250045535828011408193089496482156368630069548512102776736767715506976972500375194472499923387912571755518553607368113047045467992367569566354008835144568037291603533742276983666028560592518553602536108742079611328256067112156524174677089995083313163768871247968543576265702816921361086879129748034635403330410802623030905144610652470029158912631572818235837190112916665909943530076961011898352487985092681523986926161338127768550928204229034645261877599648279959932604210095282639237131187036499616816408380314181198123928538260419675687502026242289814197282437068078527088487093645077051527905059041475250365365513275185327510201947482758762154418627581162896368839091775793423933566454938840523226537569803388579405634540803138376119820256787206670993872980773827282088197452726085820489975138954400421183647943078595723744841718046952625633950404658534926894595302474854094081172811919696289742982293148638207689968316221443903405485367826724588166762712556981720623116863640105422208224208578694952001030745507672321978056600831118716155129551333951976373303162573917809518564494195845396813265913072802120708485309300317797306487214982431287142134059908624563533795293660841493719555749927452545872042465788320793291704332980515362333199977021111248923126735799539431885342957444922874866563985074716627133506112833514810260885149296085940998145375413448843814934623546681288992092644532149181054363716331924603854193148098654933767847967790288940995656842731868897303530879212157331368121669986271020082771997378550231146636011487608270126168879063667736467140227502353735714140904445141117512168823525879714842152998695789650552723025223323632988428858179174423409769496541052593122464254044006012431793024554388177973029100513900150702517287011082053343703795818602007293786912359302870624040763310714141991171563270470974911981843603114254645318166621891071998061139268963070749485807160965882390000946308454814575649837093298268291926112693121596480279386978689582859555334167519274999238636352718131907188198590086159816071737699840125767414200188204035410746072361235526141690929987165450495651507390189076947105328720327080775563897550860137336063736635717741870167891997263683349782090962515746590165622288503989702222169854976540523293569299185181501698912281227565192920815593293210990204290684597472118540661796137234206011116128480973437565474494575921474206264409824429224402564755011828336890378666450740058977075819574626760500305109836882478135560466037442201112577896125112308985755196270646467659615947667745884836212674836062461671457637445646141628567631398943762759229796992372453657024628039725800547627012912491960955123430778553373059641602665097843258323801325556287174782040062447492813030636140165162607176075188757971848372428137838377015536983486345912766045652514475231976526270639852751372630208664760459924505455943700989824049484391554373040241556988699440174725119151278223694118635665867927801110426409209215169035739971262749286369082020164520961654025015908099813945901701606483670942276448577572455005252918763771362737080826754430592891254708629632716073968095091752875322690345572940553903137322519900027528414025965274588828830866978657034644105783591840377224352609343838200673513568333057813562028019568302113997100512353006856355587031264951501425840799797933360638878422735567232281435412225282666633205413415632120843173116134765596235275324827181757842333807839843263195564089712731989933774652430850654427668399336670385910218547847507068822185932635844296800111744771978066329271994810015016410021120625931524038600853551324820949982040961125532859134703111392571456191713226029152912403466769066628245111318816074301066562998123979405865866256761338822165069385685480037873611390965569580505809854783110296133680959073129805596696230784878189786431826124568636623404728215569836430412270914874119423415272311477703295269571608657146129389541305359178977266797249045134484867424183646383017842423551754738731430297735554435961096843726940209132060493656357977211801645339757656463301263861125129855387518773762799352165433158037561213563784048173534166796563238299377562571097865793586396120593172283648949983879503612861025139043714025125029627365308426734598864671295765884484787966680548395042349456582986854677310101638786730194411707815728195883082956068437373363645138878298739987410524869205348926798166229288066382518164660136305108425865961291151332081411238447683794061554008128223051969785758213628801676004952875027232259309810175282075923854073924921540236422010046138450271855512067049165390512287431396055126147813527263540825177172463070999051636694377333950659176542069377045531540358926221375075070906331002668199702407709638164581375230959156325318473761961664321074316832744037185465497194053005479872607658796965163592415920486054560460935254264346872751986564593449614019264524189191579668318665522954258596627138355167449918161798783634745087469290765350107695833912755863825450834971955714883729478614604501101863123756431241955115009685311874144292639241888580035968118951809702783018644316624264158040713140702037863043059719499176631760534692184624617497655693996000189718539479532320745722770831987212193501226144920338701876981005890022478180582379508193317948211973859869923945652502620794104898439978036709327392544070213984976287147662412388945509015690358679283940203151712704818866256484272620043822661088195433981954183085095682941373340972019798694388062329978406596556540089648054934914691978456475565975500376250256346541901574732543919284005089499382904036703209171300820262138001432062765206306469482750514126160103283906203706033612727586122329684314153514194231480434888800491500986132701953394414971031237953538556054075100929139801468756541267114762719162829762867299777193001155001823532671698076171305813419718830392063573507204840417310591393462332981592897845302753859537342661794939850055426180223194704638278927731369404992320492519537502887811830771197832603188483254008594759173329743414764518440730495089447781353820496130895207616678762424232220390996488403268148350263154918576563303402361863512190336716963780666845083513382115044839862050012596857547328954783828597422103437702857825878267021158780841176565330933461864525720103711132571626514634953618716979347880912534860195428484094302341058970451025279333984685480515842202557857419709825720482100138291925485501049507811721955128581861726407838392355908015355541300390261240598792340194435397991888081742297828748787452473169978869443106841550845049270859632295236258869993792479838581564731241892625467436860857286234469245099536747492310546912720329482434825203113403601790261323099030711621936993506532146260149431177599726098842353947131645207471293581246016137828177454297874501954031029836086724003179988681642298730025322322295425187321629815313621097460081877126334984459567757350876573985038430144800843676731261574894369732349109177235604905044221250374078973449747252633196172543555403998779870105116350344176208577253386262827954220613894593507878214119420900342178898646938086190808514887412600656287882126600884658070754390920141580479980495606715636933652586755781793877298358019777111966346932242507711130649443155201044779811529348930949291135468431663089488544913558504348832582540990666421143390471961747741322418773295768986606205802761893422240559651015830147273009778346084107802943624810246892578662962862317502596760750037896543441163923337535535596843498823563286163674503418440709468289452999510113793552289906840451721317373145881660144220000004265249525428250470577038555440063136198166345180471292617642444460255700745085498260340345411526990540857418037573139323668952569489587288482293188203639703837081082661451008214817953830203185437508738317921332411978295178886449943968670866847951541328219655930778211260082355570791071242589381786224487482719379245782926655698863582203210453769300036743742834489574665384831660604274054458527405455224988272934555658514168470237871889643985970950697245388156348447052731761651026567167867337366537915070894400321881274578552738652030531002661899934486408201507109087736244109674956204850087470214618350596454022287011946669836389609828602320578362177883430360728400632030849057913451623831536790888996796008627196204811173268054394925531757786796531547163222534553568125015888098439539360150849463975252734505515448692100076470906855313091901036332396896203782990182067113316586946560381799790650316407682023877350602181852581646772059405000113476737433026444650783406368551429333273689842692581387309024363726619633729469631125115281667753872522901929813262582171370185697230130850359338397508136621195767896146766395673394965706330663857341122952550970558649261018011306375381006900956601178650691828834452647606830389315357189565318926616437116067176700472675236498989586953554863367528790875019294366565044159276284722691413989021664002883412978149628960311801117887719602193147731097058120176339935966738072393791707616359862140331433681633502339061233212683371727546139124253131409585870764135905541873993702479584485784288240762479405225050981362157315515821859979926419309747828046550751032693082805234123180847945791456864397422876711714510161990716985930867892017932401046831579439491757723104382672602294821482923226596172460710440163456567840683283370140932629701628272098172411061680126491032439797939760504637057872281236754794600275156079830769874956049486417387101201833323834219839117417466607924747213466882398563592441655789690386850766005051958312600413602437645787070901180839386427641554869314624137586890587834424658400383507108642259797460101298931928362929808685759940934463670668503089866635858318880872059026051610297926511180464966740767213892834774016226226575236131317521773919682163946012319573491586762552300316441585421007861562320395445979753656075551606732057757139248654235131789494823948058477143184744764896681952795338615199662346083786085868377342006246274651167852035206104936932568904339960427282217504444078020673238118325813645741096681950132353190110935537205232242068655595232463868095580127755142476574682428754682475400647430919641821531668085822158614654897471921192096769997402559952284213741065422629849651577137227083307681905301862837792671024803684084864919284030581047200696039345718258511052256550907103755602216360273384840465765933083972832882078060195922404890117877411739913501878449257582558159474899044250969731118525309498266718544159219903896663392134856371258055137343680594131898554704009797205986177995243525710909916512304547925438033093791988449349106465774205149773136240108258815244629672444675132407381401802788791251319242859233252669394604821783276583486870073678507953704859275928150022190377508527295074574223460927928722779140491110048276629626518962048569520748187571040418085250232935874621325112397990120358655052548857254224545841418492687445637598549855491507542909832326793866261425421537774923688693682759855705786781363187549770174045792584665713016062848480441851390003515537133178334697229763751687955494795375486243142524163942643216461650350091858990549478639667360445407596518289360343369304118339261240733650233798253803355792649777279564739954086540073427411314541075156466648594968774428766148642431272717727762108245950417595001020444444874692311995061139147872725535115950618259475450707700556809495747222498661043076244545107994293905100822361761791431374239343267786044057246527210450985439632639649172251884641458105591496137653706650305469154645027427795288400595240936483813778836946932973933845907091123947450180321082063895188503178458965400933738446609036406957579190781110916974683942520823520186568399044401266319385214228369536335192198746771907377342831521926510625577532645959790747393943462305318860847630863446803791042942140648893544339084008125112241149976528818359377892492033261962621563191981089600706506556311787800379207885888721811864452762879449902633691803474480204678855615464356308497914193113850298471333223857915950792706516711187893002361813009669571628654671701273790962806439755421915023268246305511239377870622289322964062586403812740258969997204443846131649125190009246978780639274341591507193563169633313438185360330036759759597210463193375462439678115843610393484220826555831314710665687487876346497306537205471339721952952165578855115045313774198929403163789740711150747308094230219813473892503327611829231550947414802768675814990601798918685241536709914104319783406115107800857209400509156134397215348175949775361539645164493069152865262524195602839074323881283040014081993836491522986985078395089850557217092610901174354659152848974030878109575578074960998088444763322837839549442578426348239597708162823446547771145549819616851780051487353631902153802449932569045980305865608624370537089289692900283281360923260097767429125301038407088920655266272079633643093960638720940024871548251509402727974213261665161090978830049203823495589616343651362900136817387460856255758801840910318487866037868601972502076322999112713204791879822165815971910100355310299779127902366816857164044914402722312259882793773100327614124802813028116392413439651140277249623635857269734252042162707993816488345654932787779656725003820182906566519126375500373715872681664739155450764451564973551558868605067558814520799967999199076654108831120681813179727668404552747659861634499015393346122697081181004583569162366041995582322023128089519686513824341452752378087230203286694729349195462857029731905655910815145271588717335572807878441005906175754749652636345128906049674996786901405353182095005720692524942989897014040442674753438145489397257201162178215432111874382325102277457764890966830309434097018712239829763571017816240272493552034729783788922736955513745256529331768095463797200719343674707843584261121591215002043634799940550694234411969599401136398910143140041590281571091606830536463453379920937378772680951312643550196295916550734914572737179013510723450445349597943429109120499256020737374355038281860742883467613512610262858701266085402903956897660694013603835728236347847895855794147764707262789272299140708258580299255102898087854236599280449891001843542204031129657294373604068421399954091218288607546939817959415982984723231167096855761091097921252203228838311938086645784844448400515061407278547365017464769322582110227047334766103168103494784947270607599114268553069312233108688184514853819409544048044018248884272888642928159003988799800128145303057077574960242924949317298437352454030357175018803895576605464697309406915192279902045903507638265191088238936747724603662833334352739659258419635954517994667944967108344972779410152468007605243173696288517192932159863493415547579973229680084411028091329802115622544923240147353925193617436997014555845048103347423925950814874221070010397690659240964147279109741476804861722709702004143426426790893215794899438607183721858343941051445398217722657114021168951642576122943415696151289526524881120010060598470515459778938673581492579234150129750640120252494547242902422846357175748990192455375156307135210055555539919045340123669388164846003261647034429527241321091214852092002373781198499983245608906840424378324036277247963194521732241908426844006360279286471124968922472292404718142034581278652457745179890819143356075917599265786888468374809523584432726499658769775754429280633858387013573322456510661774953148249971110282892474560181759656816368230405595920493805346895685261644366202289592674829898058320625915521212535715135414378972947392567636291644289606493887398519879138039460114425707747892981968702885723098485225504283429698980757988230541461374712058219073603728193265748436009400041949827863496973584487552698122707785211164416476315893085356205173265701597750805365749028719884230227699646292282414777452128503863642489765855075044944011442539162289103620754808573503222424503300193073765178769794794801792825685862513082370614310291675649019504281739989452694193732905263905997690102146140526840915635277299039736808449463830333285357249960093692574254831876689650441524472724414142769300945945385910688099429627898893469999590582742015835723357128603992542575458369140043103121969494483169563201977997726364381602751417075490232263235909035395596699065947654367531705432568096890171183577955914577613805881672750336882287683894698675672681317599540605425679841191697383091033751404606006043269299028994810383356525345662040436782793423200296168771698973543550440908836146649789785652044198987543846005600062324028817968955106538675515532215143338256522723759441759957788528657610079527193928252550971563917855104249895548483864521143691313892383666519452214509300549561553108073774530827289909550105785459864248816315126174956922941318651967763768876308484544458353854471674598492485942098632015126752445613284159824752502677679267673978407419451377395173086575195851973713605777158781298447267141580416208622270069923246979904499704119575718496146174834237353060304473292719532390659846483693569857826885552706381723086805455880705957746442626043620642758474672059655438752077945656542648548388954647655650899628237755653176960804306539866757817746684601435231713720825984140847487937706014645244944759756145894147083041270035514867062745292256199758904653539082495726055802230068476966378033069468127827087241672284451704274814403231549166438692025453715310916438539104291184855907619986785388848269336510322557656937705977590311811969730877128264369587690824767520086701728094073308558302471183160577224804947221590432707339496646676061482753552752110247792148047859486967373291159242144361775032102145557165301284202933326990925288820400874319673836494942948079997312695334006649091424509184638353990827838319800458610281285285229864010762471341431857708875130289503060002350540162003396531203273377984526723198660611948021321071649596628261840337449803498325793651954587693279726820342115225814364482577957105291017213132076004839680683966536572838153870477080629619072437818771352206395738398844366246384243850445667620114065194240627576594063748407412394800246088703689619331053347242225021811327699217359291431534527984373487333306184434647203297766284598308196661175738990589934316738265580735145473973502967280034073566541700811434369103186730013177385501494788012900125093813653348808661639229464652685569320452715885863983067991224845971527663289314988139591345981047394195349888567512103947935928159714352356799061272988542294438562962395113251429143766358828450687310774797059464305792918514997827697404529689085129194016153848799207056766489177850638023891225137855536916029592840609437909619307396824688920029227736612931128896560803132349245897363158159392852706192428957638905350711037484352980965970605093382943935079724250293920692547622270926802882334080907578122910248280154386210290710018339560291823605824607698250917220272830949548889655017635515715836953404166148793244082808475541727478233849672041154897676274151464955014122073861481892473168972007524897265186091875843760892599057407312117320268336350812761219482525866670559169896425693546755094829353248307614116049748480006194653012397588828159455278339038632854148841810247133745862170531753250718346499430181154385385276882471733067567234498763863310016626891828133568366021422478243852393033190328239405569719431738241954049572295813488392154782229148025683113026359543933494115275534164348478829669595822657561529509042514344468033306108373251115258782019504999641585797319882855493554283851227869704917831020574792532791095515748807689196196779021608804051654454316642036067205115256443788546989557670580944224033601849684039003132421203443856716399486038359662420380038836519635456722656564584421369287082359154416076397135891444717630843438871144894289009542603222106430733493838330700663680944160617536473575655246719512022083753509665548859059403241793487303078677693511585764436586996760140689445650117861177395827244896898320712333775567540486563390329910597942481553650366189040460849439109532048213158338137222371415057125466364250018437640259217733065552978300171649574451157101422061020171611280249384717096234484458321729953784072366525359443175585868704982962718241619220536587572356275427922962932539343155588183063755109696871681957369683162790853883350492056165190640406687957874889921951669092085037777780718422445667677030448943222842823269691281347865801236089145057703962515357682155530851949706477424056161744890937025864176314854602327367358598514944319294534407238208142416856924421171022112546839836270102963890133094052401705740119075574046465602797119520775882800046827132992169391109443808797303477289998176879644798037280588728723781992973150680674549477208973715794739218569402326756861988040638954799300391440754899615365381352543319501797849487397343692996192797683241667266749057675201994211775786687574108865260757885107954482364966375120718567440696189284641226509361320568375276345161640692278954330786170299303385061202181386691240388517800140792206188375775095817816573335369535675884317575694673748180895790952161436058204623109695414188274100146034696279951933660486696604838396799768721987774631367176068300424111158462775988688241536128611943296971357963574471048127029846911134717026866489772581813007391903650833026009261750249859383035608623492916096156892614859025773030622331461711947896633859789412200188644405268972097867594226956378295722685308917918555420238935155726688496476523810640916077457972946302842370411649883512143770089201773349545209512496906314250913193172085678769577437812364328289970002909637397128664863735536170886961614528244942281898980109626818110393645967305942219494964660567906314001956019102054186265876049776339430014974262607233035765840814090793632410729606384009701092167692342348428351941333417908039264060221721678351541603712659326043477041442217148713458766590313294453501246067894772931668453503071287562987889564328164457077050609736285268928264648615176470575429535171400201199408275104845342692275993366483342935993311878203448737989178287890354629360383793865888154327337197649806983658357071277551915014594286002669315924684724665864270114321235894933656385177260268525116941878908504949008851043661317449824679935093820323249888912741450773026363586682622797056721153724540637403407783208764429545437880671162419875648974582269575460492521479826883235168268678042720914945245383915862692911199833321054337148449917522553611865353253184132051823927707561186158562817184854352915390353611078590582306854117578654691525775543147672429928624933856738903012623905381170946566805065338136719729748434771634038848004518788041431516223460319672876665935924334598686516024060968868258550640239133784207730993278729654900671457235603697340097058859253437101955864022430470504272783353311439625669023172102045598062844610075904441772271372263653989301576674748443962277337895600583421205742806194762921066669504974611599222518958138954417480422001057020289976639343786112199708266351771268534613917761773040417138199993959104537345819682005055932881967540899865189070149732526481370585793324904639795231420774740267326554469557714265871831808406955915022012307291016298465247769759772937473082419069464617907485343178182523304031816290867818769674651510655757881941609988232395589539774172092453946533723004745523138155783391411291006422142160546472909361597201168095396883373355883800323938861342748656814297089064285674772802682877813671529930752712802654528391050320458600697601335735326585014229059914494117828982953559400262808715540939965559296670690289930788135308180572912630992689574904287458178682890794407883027836706771972243925096358700759243575035021135667051111219543989392537538371550633231882247302863777467498698398566368006782873797243510855049457159774391689354960105526678319516632526874497090377560712304071690252210359751408304378413194406741146238403851324208119721592048713739079366107554652645027116615385316679167289052111631537034789967805253390708268814036956794847161484895873168086187335299737446665589572935492703103249991848747213018715399296029857162082920520693156814421553371626602536684738503008506280848588272585742319478766722822352628182254467131303135891951770556634788729458193759022446987951772370123546170115390674973801692819389656969476375004176348567153982996858116607035658070468045677375424057708336851246313162309985934079174930884912172209930604060965339321500744196034029347957444499966202559489203103763457620973439597477064779058184572425508061671289876960500219921865424607133606208444521131834271745996154412314736401329041383328272011923047856974864305613915725935789193685586314398843775682461727331541735826112987116412098510853029166400773726347752762458629629442392818354515819365748394112327288828595093026042014905874019644982738117402631302045288942508005728302138516947399850456607390401461270723711356380683568039008329613260092461958611607843511601538291062656556844108299971874099922226768345856492974158862848516185101537389330647473634681737116140554355329967969237223730352281122250749683997015380261155842078576724262083139528438537649055932337802596460624498039252042893675570204735330807392809202613903343123836051216574464291904996047632464585855444501459589317007445912609968864808249839780545106789711091782927831268420324317299754431015994813094024874153912432062611238291430508668894963887476476097230950249234017533437939993456720634762631342617909094408390482124986345594812210842752575761880488362143976508489651101257722415276051096704295150510613024947554461184606394742680025106834627940990009689708391885682221915190308686051603476957094029281797738689206448065413959647353811439793639250065267040904849227834729203221206600272853445607296628174042472223879521197836062386687208438139487421355158895496578215581672426023849697180259417787930405154428454780606504806324764866436467813415050084102512995673361853012388994069655587928320169538962428150247353472608417326730648656696873406662474179377266001588443559383358184460214639973626254839054693263431225158051759586985604222672228584888544502936599733358521577256752376447201599544188456865334137506342667065913333599941124692901174963576883271030281109070564673786082601470557524063745070796115880679065888225483596582844424339535411749737589829087308167930193565101200507364754810049941416152504816496418910569135034392728830438981752192924018193903577809660720064952905010616919238465118307171749546529944475045189731630093122983741814877931099262050445906953417504640279233338065731834645738257599651640885199687446605609315482691435800912460317464390027563709622978111325586635950338163722399252398384174032038004570728328447912037462280466060335710338958729620145999470352617276563507091614062104920130644217496126543675486872410107533711590679664021350717809276057822080715661132790001475205420873451033923183061716029233080858928951562951669292037896788319958065889875794016184991522740084533579146579152308279851857533773738837179640575390273302686326372951741095154456104826327162199212837330418861398751186541286806012126216173502638870672196734725528836965730703726748372317084626910626085290999670733839514105653684663196666900174207392450084660764134122762162289775740746932032217821233049458496651185975864148515706779580771209595159150917122087704895761822182594589658662045298387320494370775460463738446936054934366470959433442885584861485381363909175484428926847594525971710954893298769166485035459753661301015977672980307485667376579973247787856497505208062146858937477728552219097223164372211893901969864808967548435759922631927462166643145313903038965455531190980164913476391067842152071355230175841077010280412448084140891058274584626510952379752508413187752133671344536534525860412665868247353083795242572536586692630369819795412249722677931933961739988835076126887665931308541667724091249194006788637147551356888860751607540526113205541188859917991098010915293446168135262129193046546747325680551659219516639350154485753976545756799423817247801919891768764815279899518783664892094369407501080015245731604699051362369895179114764630138878812945537471459624247679928692885199358511880873361028805039840770998146705193426212918541075559737424678468911778508111518706786739128224000829588307869550789070319346076003709604615334748629966185717601492957853113579283012670019888241250235355201471171952270542746261024765416231632960094975152528482796460440967664714896659744752942348487325724074109475764683577310206966753073765738309674963285930881307060306327963948915935956474132296202241988516628337771659873417188966766128567179576382577844816043204481150496117783259878335847825833834578968911074160563988613677488550263573850371605848412526815743277263772440817256712469915261000468142471386230452205995907624165009984323171941442203541747245023328154656084242957494197679570813328740920853925030367800188235952150417900846546077934718902828381322939162818746898539810748909102968368538290879997356151426279983486902099671053306428749673576524229574872894344972269762485927535014508669762504121601362521833069941143316210210702082351482707842731691609110101700040469848130075408819670318108303258950024157503870417002878582892714093464037462891732558122118278137598475434913150981749752256477998321802542249338489834962837444391541287155743079869937503321258259891336294848100428028426334652009893547527064937638080755304041228053724066029913463327143296082921428171630312085608893559090314001954007843875493749815681023611777955878270536208887523192178918358430330896923309332325669057144266494015465929891175466882656642519669312063754064942394980402227744401851503642017970683923504097270438973423992314994493998762241097198906846609772689816193232641917439878166701042361185256572605309938360636873009736510639641194565351944485997442141199598879720121482552121880418820929049651547183861868028917021097501570868698848984815604915094210641025448184361316073025576610940527868495229525733620003756257122718713001933737284316558502000340331463421206727767398457732048135894968817995814821954543839642908630685007279332417994841868905114017691304900375280857757851822379425219831047310830762648599970417688530570539682063970181832042781711667537900426317512140184204867062191598075286113207456722442889167503496738471704708994101196717679316548129759870659962550759079634433594637200677895050193233470785099773991511450945949247893815086709177840517066943832813476145919867031275001024993794809884426354178456068713345337734921390562821287341417306920629521152394371072535072858834648735595221029695526593670896107228025785006382788201936487718542549203308228193303255572498270474804375546232617628920522959367852925942835239512740009999040852262687563804751869873232127151493676452779071496647784599040604019406492318131585847566000021256883285417325475167289364507997351973059305897241469544183107434152850259165264640182385401628114613813952454607598747078915064009488741762000154774642385948695566193759097450596733913323625772741811772987108940702478508731496196853526298054318297586476441430775903829388467415373578449255551416660503140262596148072237524812000053415415027274567449262827140960066605611096372001295983405344952489217683599022780330941840529882372047157735451265146517693481540640715045780007282833916285174613538961368699892114619549096926515283842564713908410815278682350051546956680483175291178140649597447303610881360958659798772867583410685014158663148731148123367252784160301983754538343055657841035365825132835186969722009750185043739875039607645797091756171108969885025529846346016775425923060989542822473542260431109358049215019525869347286909717587982280787243545973417469085778228641958914398788382982675999444262759834981052507718180483633362704694587667300836741440572792692570771292389161049504683412302793962528050238925320876642215533559073986748611697905956815424839146306493347674171135500984742000297228860982131896121697633884008065193555655981151789399905035438815472455607626578521927378254923169225594785279982284168392290688055279024780751265955336901889524236978768670666728123222703581997949517087621239304731051092072376225074085558433025225674068180472382279499742393939170420368852649471054756899061381681414775068779220247547011127413084361183197940251628454204901881389712327879848649391293037506904211947521216649147812023821116730369729621521845399189506150788911070316044926159247818075562604967639818975389817743914577070075418101696037166944126615533827431382512191062954919524942126023988394021620393891830797998070804989823423496920426805747551898719190175892158070596694411901855823269209788796313113553885991578733626222439138864975110277761974217682958334598619172489572158756506792204364034619410606803012341293803943262883402722022592948622686863836731355293701775809519418635295186604664632514995474221746164277609718215957218808299972131956925542479762081473962281213664601479354110452272280877330371548280621295349194070753042356216619609685541034242461265658529098793568179112933547952045198054382096017564406461184512732540235308615042882429365926179863683877919924895630908538470425318437591639661089181264802988196533695300443307894904410389841601527445271361547405823205721879364502617300356959589164617821055460019117451575741378917345805357145156747198450219690442219801729051038868751137513053179498692998268973399276197797275917126733167636101160450570429293519036347708420175637689086464112641518774609534914804215453699865903899584399477092038069649753850348181612311320716907922428287603798290692597393110647277295803751254164183974865485149120270164309011558248191409922995980809735458639465970478052051554708957921211667102199921523909655793494572222868205669902120478706289064307028302686987160205408120503570422149323820532445411224596204079455073536117891728786218081228638109089316650886922885390052715415102686205887818206442497656126935388009037834014437438281111450316462602861295184785371172021791570318005137947728792615511481866789956861662200042079342854414525913068146763945941966483609344495089154885617919239405587578217734373054056716859067311730377860750389061671331239559128044078599920650158180788109125503146323055733294894105116496928694017590817699214806387106696954141751011045382825114252340678330334168085020584755997961452951829575536719918689867980585820131578640268497978113875253949830810370300014388452706033900550373295811265633403537623507252648061867253574634090435910597504103997424118510725748512802249105564057080956119590718751329289797713687499328827331658519635907510221533361282490649188221329400118972349770766792566554238848337566360409925138480754031906809319236739671130073066253568189527723652027651950424677815709851752941137469808925553165086240804954857459507049489590042144617912431823819482971703762852067272036875082004001298022867777844608789482093150162826462413733781152263135241188491842529045962865573496680806045770842671421716025713742759782518296921023687860705594217862170253202046191273267413059472585538406790387162141882217020264333735069062727366195757318577176105529012352247210514419229611007813071229076170894925335096379304932071472253637385593069828130555136885177309597800577350615643032804151723017491138245239710310124941158783751999038632030358850236923635706039735107378536802371339387882216148620299326979494182866520442358343365585144016825713613664288904434491663810722570740387512714094495742561709384685234116536646879753771088030736654170767816246314600046564728010003427004862271415565342673411313751501228743234689921470075948755355639313240577725408615101870393780428097124868354230001772313892732152672775693395020247716263383048320013580569866187495467314776127888781416285997460590908869064549162258389764868320424114952714543818717880504905704099178659304785287322009530592142728040532424483637483195061970197843037663540848156362176965943337255627047504562336284989699119531527935537905681101021707275787201620226462599521577519470117952893964721931609401576047604558130080866263533112716933823586643294183822814274761495954570219512606052937221534786337576920358068976777968720224400998442647638945775830628138690838636838938208197989924882282538513320613947396363581088674804917254692968242006012361452859653608976246760641563117166053029429456205733199445299022271037952175834508219699532841048761964340600403068976081313213609210433764811802268295030112635961545506028466166612327181165810762234081805777536485138525300625026424527826982292929709892408603559327055246723516627678313384667504739419671417647230453333690258228362897340754598122271269147812939717976368754025688130463207152075369477068756047050885508912612746353205502259109812989734782988161433005010421374611589539402682712458201218454699897459850381696504420296109481823121517064688297951009997323070012229360897524626226885160641244217233947847761704359643314807522397496592188599708586707417101985427233992776965647750563671540801048137285966921270953069463816441635765324162421816329665246262704278301689315705349759123935556209712495831499793449389752686896792366912809735881415357300832838921045835568494035316498838192343461850721580340567746592801952885458948117380263508431633627517977601189369832703172022094526002132599461282205498826252402312828141608176666355822534682667438777025375821534196180715297765795536070371465813388907916769811943154649469599060634927212972402755427242674697563934908891963603905258676136024626823846481188437437917579886980083136328383201123663795099810966894108011126714272447542597686263138739703665497561635009395758710844639763357351968520612681978226454019878849185156462425844032935310790586424176693055912751056946532975407174575225976044567556021673929594891844632627856580838519597125804094916493772932182057278769198263120764141649357435827034912659165822221037062170504312473022438243202404532304939279415710422561628397538105984260876170439753994158454294338893883608667625370515964909895241695187380034094884849029357912552850713005967841001763059077027098947521665627143644077910924385055309975739694938338601754097928091449367860947050194478489597990215218758567419379523248989546229616651244107464990302079241608092903949663197446190197352878945332353219205492680854072753497617527410786186120501377945287080688835638986508812355124445478854288288966115658023976049870049040335875986372405547755149894321132109005857829778963188933284316393465407366888828241238090433326982426144263623087744081191981949373843929328682650039432976268869905388080564479844680999059933374055545244310173124117165343635489376122455775400330972230929031517081324625226972603518002788291633292627243664143005052236845000130762864701831596262941109442575231303297313462141997671794730639746306841021301770020005471919699209261814183413835652154664182355979769502263833229765986896349404228989570571569302705259045721187041981591481563349703667691269649509576935954087112143264348265905312456144998501581628682420268199227425196577459586704814008420140677730523078072281742024716579014779430443067134052070306490643516842658451644642934197997326464040120789678542097632241678508974073000408888916592158694551236032628725992404514954172488662162979799683230372441712860551253412806250951344176369228365257966686653069199471534644543124792455081845154325116357375811352814902945705614272139024782729451363170514133666418006531156021160149534106973195272914273491070567430750992027844217463546196441725063391329726539718293764264621884994219116064378319307608302269105119365253327572369648504172453780317653572961659886998439033534526036908627054259863022412126575115083951888036651075530947609202026186310403985748557351284980181458972645387419304291720619803504994983194471800920817688579321422134365572334200391687818844361849817918452491217910646305256924168184776074213995506461154047524711634693006030422502585398441215972438672579921462403685591145628646494212526009467437014818053667379943500741765191482403446558078618346019983485076072780317632305336877530630686330858842778114712852084060542322734844124371522944660017983323186335389870255073352070034374069209923900552417330833575725081920658725464546499625124035640971611726084013965957319591189625159663659381140231481656792610237639309911932839355595437464937472297043579842410051689991352108857716832283855815917004436858723845284747091365807863956995507976053112312988926690358363066800259114642605094832675427707965741367462210781496777847041621599540317287438888294044800092893358828327983453744485332403224558763582139732999006260500410007358571158078204997100740537325441509806311366595785972976425913452878974237108908859173564938149044235109235154355989898411054676237562152061468765795214625855843154271014182970938282764048020824218239044061089347233598335067161126204472721171479530520503474319333586623126776836836463842250937764668153578020976528607452913078625115439053699386520687568885461376872908520405350097011735829166406989695659085330615206680507707769188657403831171119150563434984151382918110621265666658683773735063063420950269149794529474579480957824767512416446649925789920982716102442651096238805460404666787569617614035182687624974952090849976293105305890021056304499381389326625909688171369770041655936719738449250627558790200417236092837303780511785048228461213100039341178499855768092916627593571554459163966435225579332553799584970103719524036610954883927134694469785514641867833683879553101325282576205516807599898050893521279686346540443021229453201512543783129043891825926707983968881071738997806269341951763065321687716541440302827495606276665210581452426315412082181269336489745009904950243642589177046349724919225226628617973214478797782772399070919453436950420635977599649969097922354284249293169466014952329135219007331196212836782093437359509305657413596607409844610247080752738845067041464713069438819599784533111322814588095748412893848039285485263960300472323385907958148918621021180403517226263249015848570950550858635163516449085040777669248873643777175232346491497783525922911423373783034216602966234280064828145982542052963290036170028099100379884773299663431546062796770956563678451351460196221681272888561083191846493097981567518871059232187881324240662735353768008173634393177104251609296524902164302022274568677997777899811513407670958727526985180792870141234737992568028027016994881411083830136908371648449019928721487582485829648814123139811112277694184947886174096829049206138243021822658674669605144438503826507926707202494794881279317588224760094488176489368714712724493034769571390280545560750579828137051633871674167667977597826863707565827378764882371711364859313600763903619108686882958688084110225986050962095908532401236268401175822316772114918228635019898988528849530822399002984193943049267491941836830489337572617080183294780610799114820723505415804900944060502281123894431828942950781730279097823151859131400080820985923495515297441507854175459236403099479166928323354006038746427134334166723891500269004968341766951001532198856473538064988672139643603322055465138521736274797383500876895703469148608491416509417814581413312020914697276912418434792519271139058851340687572626185320584899699792180546132945990763545202434983000764925456081781034207783341460764191548987477115058279632405483604312619977657706870781337951705003849376034034594600765798281715696262565834169286052450693718798358205252843125285125004757660599737560078675471156068886161746354969008593209755216354471250858484159921928850359018735281971988467050715260934084568214527797409084808056139056397895642915496825961249852370567086738171624616502918275152367313779003131680248569699527630340342253077544392343406384309861820913260246551841421115844009115326133836412634612005349804790719540353814845191453425924466528924789460676510498388046270951399013507590265335773514921417886404605332778014439330406058491722059453067692519273946612763305214899799977369528144561754041307630021928541196656821046725917203074853381988903570727511651776986330260588823870478388680233682813238388940062869876241280206343049614219805874312969868075541193575894324242665520537373544262456928456475088456633818810081479316283370303650776564949999962511099478713238695472947079255620199892838958413168801704486626285675191299505949202829486875971733001301792879643906811937279084324626633944548854548636752719015459415774714324132280635674991482279498132630792872071929225639290458407819142066841237341945003203936629668901123729840460052493435888124480366051232567974228762452097959062665057751930281488724427473903899890712226393154650026804331131046753563418247360718775006039648153331660274316492471821871698200946980363154303323528351085234509652613109510891486446767402365572344329468554729788055137945591829701530032722893351515915250561249557552095728593899600965498115989107029623301844085749024636908281432705144664102563385759940581068676847048485578397313070695451602758861908565381715586137248349496129148761644285387488148562038479571381328013623593223371898162072571487260563343167815883336973461350061128832349959156048501148389320551352778710050594453474024725897855733896526889059259599366453392610961619504216173942067967400743470926543653432812735843866934450519522459798032695432789168254170722180674260312790623325984631905624633441393308552410549922888147990170244166804333062117197821064680128827449266030654866283323125843991275607099970469577015746191846372694128241109113853746958016231488146610151120853122389342596076856221145699363411347584351933304013912111194108555627201013335022606393903377291789028378234205784829560782207519468727592603965503160484779240615269437011589948803114606623572714481189145803385178339627733603538100051537429937702560091079949593812873298763699435730523723653014046884503512923082192995049256501528349205403977513906246156095457078007421721331002874092441096183231876166044161720595134177932405636739678040672528107387939535305320153591990934198641934383469196810465255309362492620439002944805339285799008496304561440436946149706851441914750021403142364076771630166017713596328615953857894827920037678453115237511805929582608306838710463132488980037618382610244674688231715231236737695492549338375025416503280128741900814213109789370212340338385340531864366377766631167836518936129768608909079326040009405214034666659509686399130847876925196870793207064105651495390220737454324234658456613821970515203804589285273744573375228152613189440154629739511278579454109247814482170096371990182601226883289694683335441628796026744857635234619988383262982324321667002474740716049226714715085844523796011187111661529074894080830418650987270352160645393076091180124001923088909429510367218987250347349549214030102952888544284938279840347057847033302358965659783726867581135246139240500392973586827690876553237742757088229419210779570350492827071131582828792054260503113832509942767559025746679843768234473648363188455736895040610673223559828945763157034071774000374065109876037010852615303671336819657870249611127618805280304804165644574975248277611243653616000420033177747620292912291011117368446632921602614054534695724720201055737668357353065907175712083565491138773400070221684854443650352116359802792527253300663942171413452426775270216699498505332646149458733782999126677915752995274273661754003831058962403369947206091113533496223118027042224030618029638167839551666574829207081456993021137826772116129838398925644672945418186728146332569600814994649400263198190830393586928039756613219067845586295714339922058522120896723940880779185127356067321612951221861167538190473627491498208928681541273436957981385882091442713517771956972053646900273428514860040504943488144726884766257874473228430173686983354902125993442709734076749816307985092860351094264619891354143064876637651347500869061996382685132452664940360905247212288035451521676661743688649548232001893454824628291918403277235990026319836656208537056750059822420307993113970011729109843566601485213607416894832084482085213756183358472778107763817100542511797989649007580448230397946772836265574967776432622373717608543526298612957724378249395255981676970691523029879310122630395227622436113653738887983786394969427312814443078793879810200738848996557216568860559343572601830798274176291391979121099531734323715230099808789410106007993333271060067508534450953206108671204121311936730873276041266021148207586388256511630572354916375645239330446699176765611765102032278224493776734222409594005329148080185691190231128065074858099868180205444334294345167462612159938403668234441245439908392668716167463088873555407939163516675698920679316093967630906296287675797403490398406083447309648133430722768404079741183028744488548807904383331967342280907822727663742256306743647304407233911768660087698538313368022392014834647920995722526914304106588015202101307628730601264056759105605230996791069397481354564813525089982000035934657097115586928327324317507608183199273161668893150060463349193319591091696414311427377792043928424550059030750192086044397379736291401597454591995478330452610326319776920589440568242639342968249491957486096871243014521953629156206496413677483388141280889494254370850657225013353791280099677606478557775321652699483686725714145206404374653141000552650336730712907628197869993750092107111131930704637477466539953172452452631904465605775335117197424830721787791191614328140011197182850692821760824105223171050726345243337573212571051958325268698354330121880604985635184011875844352326733670052460288583930981360130786525015856028111634506886054559248400488527280165731672071262088715582763670796383918529722961741822626863453167002447905355005336748967761505735766319047276926258442931480748486414518875270472996754697452026270042648369966045616412446179591899941115501179256325317903286846494960551923748230899515880399491287934699728468829875981884555565498050169544089863927341557000415613890384501232544973144748401824578921323525781348024800690189742213177069992925814584977072257481687635238654232418419228679836527811461084307328997571779663592101468911701666853681071905237021828680141980470307864548099574823226346093132106513408653430862032494116451381712957142835165711325882945785862765615980529426551706774764595761849776973626184739097601740629421778580785730180374643830783690614134888019818938158303143699922289823368927492769179156326909782687250888399978515945781924785624708295476536326791681143903946752001582212112261575443677133959631253986314037307374771978652043160221331452242182458886926574257059214977726885571418500905313950055413870102378598315323093444254037172075475301010434797153017983672322176711051909719231825933662814844123248995908737252154937689674393747003889785600676822103043580753756936087636074032234984876542564672104158743751856251686097748246588684542237275993623894916792668687300974930121142658912968847033694432462564888787724564341065608713296015917010360614994379870440518514458234400809367964139668017960852890919049960716166303476388977954261392426186675159092515025081611109949144349570087094528401046703382543475053744342161302280361351141194690022617227074967137156860244818518236189203345376266359194262740810466250878468314569285751703810187265166919924879463795583562246915725956778923815886173236082467935105800624923965280031164296211335928427836429017147140370141515884128951504865708436413467678996909761828647602856604341255561773675217038155764803181869615793598491206111620763276464717697526044818417271072254291962903599906278041809120239766720294386291370972788544789850794433846551550988018089816156628560984629049538994375377826454998750985521755028722331970972601622530206015006448680334743550959225993374951498258289228715995633501018226784751895053459937992665119212536156674377707505537260734652411609022664742683733866636382859861178788953275213995091028972632029648681237470217081260558119117765067967845345440819109004095273032119287967814597056974393397995928487642822078310084405660466740028631947482024724662001702525081250174480494728187710579952494682435620933203361890969316305234732134549782777484277021483527231488037674791566448063628139746538478059966473500182876073071258826943067586976439411864870016704320452937277832930831190355838212866788792215625672984439702885008646454105690482813553902485054303558151780048740176176531578079488608996995201959365325299796469079986741782723462862860430514490029480272067577837954509001589030573702106979286796237619584065057534172492379189801067344866080186280882973397305539598151167544891971997145955548172331600778915683847354706697879577522619593690372575979582268892496212641498726957849383888159050093571607821581445028040399204237376409319120425433529368267828400121246530659457201173460998059970678367001750129765860320246198524607966573181065671663910755134413889257481012900375488186207410295557572693831651820476799526427201486051079664197290315493278738908282940213831655468450369145520904062898663360277772691941824525096990755014536253913415919776259097930112688830495857730183298893331043286589527927436760213872998312093727969192392475201699492455454314112807206648844470737429784841586418336216015401100086118237073089555528413653527562446448810048024563313648722778749422944416719028586644778837667591226305246156778757418129410772737423129523603464766863986884326002225563221958830185609813955971418034873856883736004337342032208788688502580643511522555793263899780341114278349778863247259451914355146603450716759672608911099314425156198126209536762531206180408585349305940211906261793960863604408773944500984464888173931033144367518277009708418249262755548143085503479141895528250639787166583550311694638385651897203194447668114515357524177333832489888523312476475659180789526611300526286804431825861417622449936635642094714588647117278120942251739736842202831208197708530703106729779251435762466896514947761886508744400084064689948639026711739619431644941370804257038522253108626626591060746168621462855783341960346952845238834410788910514960028263199143678342865478194428416081516598698433906904589150845030388241732272893401291113942057286517888056037013839597756784751632380253505780677769421005575763192225484688008918650368784323733515553581272208734507812746495405119400801512485061296123863536935907615878571198653985893919555423430666195180638260165303606694215285324430302630910209597591969136210083792088760332331297292970126744660503967547508753403606335795313011917229615353239088372092731573460424171573594866878348389715827296340689514626109902535182696408202503855707205296579995383184614097493081874722833613664189127664906133120020427371883774127206790639863172167414639861256352995415919504020029385399087287282621454152447181650466763168009272864896734428153542496680730200004105776260446346595036283817442556226559029589867424413840000433389026696216755330070858724750105487644219573945444308788235857707092922062017919381704270780992385237833508010773933150013051076360669271662945809492217046472810512215142785974699271592124963826820553861102066502733407092519948503540850708112318515340709999888668180460709056828306523713755696675580414951350477859226795501534958676834225224497596766325108216124891673930270926127421502803163065502314657606988030424505874785350463720160449292814747964241882523261159598317294233263116264193089880773339598185779495231971321790370255121636851502609747867399979038978542435202851582813424299098483939469239857000225719954359708486127215181434759582886565641856714064835468702300966056953328773879517893046469964739630993550845415578107541434262087139660067126185676549309290065395248734266128175814439820079538503075742527059555885726325329375555555187016816907524062966431324081314822401210721128151779257267339722755635377707433863766717686486543793757901365133006779333929770379118106766432072461796814865411147414832234407076322301090517420110440936195893481903758893178034559214835023744867997286096479448970166727454012509776180070271365471269838296014425497166215993142284804342944744361543614994069860761986533808139951961819076200553520965183085097854965025560737258536784512679790210093557462455425180469572682943762618334347577391301287694348646713117727437159536934986955651328104323479432834837876389054637226540737701752689794449541172252053712191963666447288868946522160290954860476301200414752045801312693043714272903153982302570979109600164767281581501019016905729745046272373163108153595313408075956441461285688203994108927899334183195335752809111654273851716320425996083449900421009907904955352423058500347437700246494481055019745810301984548936027447490458749733080861430492537125604038005385391663346473411829521387948963785772877969704293588655794715913510679683967612168830860380301364391139320144444903703376000517485749214701876306936089061176659731898011184380904033998672088438199283157917758371440716218421182943118706299132839289688898984268332432341602110046150150144409430929072532452661546995379313346460854816723687016823876011194300512402721554293340998928089570899632394848523879717433100606501505303586537854987733902853718245222188630811343798692021955515907102209254643750690854183159671218307262891481363546900980012018972585788962318061480259349081943790024109320117130806524613187582649287908582241694280426512185333733972701650272872684123531072156345127838790753139907710674802905331266445363586644630077460286272707162465388479950843668001993862534649960180699939920280094603729944068343013672366057584209930439793662619648746118618724911276224131942873818240719435282919953526352756649359716141240052632690431718620193396832814132895614253061731446814304644869505844405794076139660506795791302325260634974189991604712846926571272294579759993277095843753151112122961090048423544363744542068631995017607372130548687929288866771073957162642903008127841552508128186966431628092328958570076861377924215916593585400743317388563744703752007190882693412871686095853305850987484902463086531797028338119931104495358723829325122495221350240082493690129847812913896955971311548959510365971427183488761625169307073301733076201446948266904728846847880198124833227289248526243151143673787823276439399292101599856935357306566956246562531462274202806505250198950628704269349063637303907809946257684365065045229565717869000012186335724825326437379105752744490693581709349010211297290576841552646802003710958543575014127192014764038493974975554790892023999629281930302964543514925141854842926975532041375939290209109465764049930187931667963246585877803542040151287819721475158029003284277014239859209561881376147969301584069011786100008750659157163908127692125822389731404016489768354203636765232371836736570263348406396293349317775160429129504376041648711064236745624319825448537481645534745584453124957374517937836384734548060287232559096895607539438596218313670780110734724524993625994237925723951557752329309124783631051114998290974178029522209549356467660828263051252128526332592366621650553121226695773829925729957526205255303961395975053292893730182535174524701381926544626451984636072507272381354337058633056748131766623283475726405280504286055750468827517134898011948814775835228705976269066138268110187716750899138174880404742511985309839382701935292731672634183766871421621942191441885652013919128384691376419260880240435038795765759978376353906773982547321074782306252953097732259764003103240323241737454675157576097070314845736955301095165016637554915622468680021776488659168558963478948371140589865252263466393619779361954715698568267033954560161569770382378959637633744612071511644032509750543579648181564100160803120302854019319563056500003907954806041831274113530400350458775714958122831076857170652433269891229965762982932277633593269429515965142249966469771099697235498730798434293891792495244471482610767576871053112086910700563207770986724222507650450809799985964990063946410791564204635295910765902383699649777404558521497147704273513529863720165115673135471341829545418381143312010877252331437583443825271875949380334204560783069094749666953420334566783406383569467146442000869684052878083924054128395970099798103089172696723964742348105099739816469325917686357005117172252756024445329873312056634328188279723952061214275616120910609168476025144221156468178737759482888289421053959110983794687915425791222156627446565680130154811308130801075614736671459502855448039750244704521010828406557166768059666804814420605336734694191387567737031246367580402620439169768664285429073575349308577972174687833073455787933468772890827736398706906831693164007724349140642561306336069361297885699627682421077770539326022476754272110611289630399405093024636942336235804424689570975769415121561717330741556838783274296933826144972946435730085043530112340460187238457431354466127389328530665042674210761399454513898594598475967757508026012604423201035168922733655276899729754358137798041852007426767855896250512714737025164015291556626050713216062902223940198756168169492891744412396812771263289728811300711132970555102710312606095968044782514421312782637518289389617887478726560511908908846009921166621738088252613296882469465805591840724958336219362558825970442438240710577142601536401358286501605119292663236962195422614206562128385613810187557798846573729238888344403506543171111326461598620251625332067572655214990225549989035575532821339463939614207353826166263120731971482007232861217719566606835504135835198168901851953997466362474944560811160831732176113254554425430333129489282697746881092845658885569639233783055840656859144771514506188192707803694879708552947284940114380569047530191293419297655456343915626829138520513916888176385073768667121949788197586884085107422834983268181607598917314139999618340750577665551435429091339821523132826963632565321594151681969903887914021675697961573359166043507959019246805973319963663722636985764742027292852716764015200756954719138023585533580977122135606464012828416526701345587793446363290280218257621936336435601205271301304008837989775435842333368990327981934228545802071149449521606971233223046629688056367034217853180796279369205844122463452530189817133282449027264849271415957671691299762576349269200905351408946283173882925170789635241066900182672120379214518222489280970020499910001483177443373700379553632750101434712695493732816046592627456385161168233168742226004394764791784643732348941070236952616858195129754239709775079593390181511770189168674504931472611529146588689511374196142587031088430282306156392404229189602010296820232480200890898879567991046738665474894383792313746763386089728389555666824751313689226952704905923974744006671933058698162146136697238300053104450123293359179878448810979846216259913310486529937991251716675918098850516674036272360848172850547474794838972575807933742369298686015696830027953665391499765387662280207625815646818984791316120973380906075261603304001752516308767499768175400973190935837997653686126333599404196899208482916665785572461578155799568081287718730013387802311904288417792001077067518140570126313732708643827834951808584844442476103254490063511110778662950244653661066015553818433900071567435009528810114239715061451555792575376728072884745799410797213039523794083147742354566073991654110115969200762899054325182965878816377241516169986480309971967408046653237914147797680514965068764325507948441170835666493617894564580241088862955164120403235051722098996354839804192245045936264203171889508992116294401015553406097619675864226504367484060621367443355193820207851541349239942334951909479731930263073514577316424277966577845772637501662013507552917153979902443509895114717450135799768490363575723698832346515513936463457786421894804377254245163204906328033255148872575547022386292134816470047433473098265634547634093956135282780098899412984394335016898439938398873901715694071634201733605352820143882503119730548723535392350108138622177376236483050100047992902647472146079932324507188486708456643476241617490304843508039924312198595041882968755413040698946050488883827878744174477694098749853739546119968876909527002675352445474902369158147915794296085525358396774227347423741016407666876388932845138077107398405913459521414775301100100167407423407057553577326449096632528519513062158813087201795317983820355761039091552781044581610877164774168997744239459392695196655948732089120844995473248445256573593190847398867586535621822477032198797749418835077348192898926872055803961232552417044857642088552568640512895229583197541945029393133195900344510790428498166416800372159091290371568941965289385232682886618527393110386576873521798093572887174721382033598262415676579293825904154095355444615491619210021786939368762898661384260895909769482591344292617891399884786574325407602160901893474298037450710232231803553232960870831736543217632546318370606606799112313520025413289046749120071117583785043862416486419991705817267556556607842199949971665288744025083955768303092708759749983053288103562367779337488855717774536395671091757585158997684461869155902490538724740759328542858818144671534267126644330839614148703730886732284521665310030651853036727469201070653068544889547250454396566570897728192684958607495924110822737322669895167895663873734141437191207502982711370887844379588898985989086998070955927108534707040579370157941629573054297691342110942388538315755750538916402891127390373785000653602758153336711031244874337577563028954764865945658068519610799668699497364671871104116396939487317599419568309988687891675080642452248925632119138193829295725150252332817420519330029245333573268335169454389788911228731303440954797657001631785370718986106894632544782669081177726421532305097337820454792936941078807620472461487362869031080609566955701403736680174982555684341813982052676031481291799214900834098145700894068192735446345257023916637118681954896277439032450724196969373841311705686884590793982996299429170194537205594958557519042231864352103054245576907129130508090927452343355044019856171503260533974968093186858932842325581022953358799940869004911871340355556259768124799367718600429765404693879544227807738969250434065798466048901658719456207945755554747970079223799879024802287726155482490988122971422219767736813394402357687269765314332726390678112683638240367920677934046692960898556267881156660995305541648067518417582976655023832561955361831040628317548973461719900952962312112186229031142344569582443816452702156494257536347153112472335812407847217169470842626248616563908413661094574944556513592285834048528855689442158002429675956464488366352510489061775807432970844561796873620954321464226813179467964970060025965700189725903353077286149697133829000016743185054015182768707384107483544808349410882924760384698387881582663461551163306981768260323093674173921467449293872464934481462482365051074433388463272012521974093219803488335551669030507155080848863590483849060961819638281998840298347658626765206543925750961640210834932384833976479188053322471788721340956841608937314309285133417207382690295912109108857708311749749031214920873026944165366479581650356274769314332647143208769024280465643811224329584671637992540251373186742762161350814544147161137958700295866678851017243617438877110672280000486242171133103720963448766580318493767426054142034858113620109532467526296802790881219566453832134468137306337730211001590932249923878601119147741765517520794139064114025486083840103548265616716360847442793942727454818715047347969148742651832007215559869690599085619763716789995508632040113432368804567822819812661040549834315147362795694054368691575996905383189666964787290875341239956746176351186351814557672976163189062904888326655590081364853021690702976459496697378718182413847797835221463081037442363607113217337009780918416293505706279692877213591567021830567167027984419975896742944111664205853759863817861729086714320072636801789773310788273269029552855005570579199173391622243662446944404891460691233595004828822106339359693777810068141521668554011769349994058666795387580808460830466154406220449544201304278274941248995258566369847381453250188983149376647879469394283252661578878683871456416920953865898140774877770385432090583357923266623893584390977695282987263012491341422547331375034204858667517502416431001969854517248666131156854487621400442169821329947494751388200696585507324483046434804474399529629096996048257435285496055367933530945861286351280937713263108543652000860715507783022398778995809634243276982014230950316321687968616862276461352124440593575367413209319316514017969185619147218152415989812951627864752291587109138590734922261058621628275259424196852104141532602870705110463401722455086728724876689353426920299244259853076657806175043838192510225806051734099720736019871401727353259114564834723459830361076729149286404496069247754294886203760249422641218440400780943518557016292704693066170171006285421476945663667651119766145745202508271437589620920996705845366716880976183752465658932010839794358434858119406688369286580555962254768914008078820595412260814631241216533889107105934795326152035061334300164071686559855323930861306741960980507040565031467647433440613200720741944880406259272445168761880063080719894953453482120712936288791113260682618732544301576715593241686644236294591204984335378215476410630016490793369807658786693178263893633487600075688311819198103359879946814045055533051203187940431197998298808224831771172114590936213139555140641313233593389687013617610822431006475781685428840712308047775851277010429020910276298912569562851585703383093718233306109671501167593743545253841662531566328193271746708905738594459248651113440483459203115386099941286973564312179483180072429507944685696123751777478201989672754339382748174068917760533964751365784538761910143477930306106731205317849954150869692400868711640634707515510956953906060192386208837636164265890583094742925250685729722880360843455665561986334831533102117080625388609211621785104363028022911971644242386345611148134742305513024991791050426134336699029560352261412803144846458547463241913492471970907359517137297205727869393743488551094495842565376884255182876856993842150979257328003900619111202002011511414989660508432046052429012831100120397220656143123159957784888802888677753040988257549014889834683500159399366418469261900469964670531642944681570474472530481895268881060189041426830371258071486679780695216953628871044022429773007757518450271336375166853304196172001564533132706337158905336596943894510625886625218095939449021940797943318362796116714856414317664002433869471101483876595061573667566778151676832973256948867351378490072526462042884344008844803955774032436066493033690566653493448648295701769746570802105878782428567658496059494790649995461560368586191534717925409562642798825659370714285696124450210015382881461633861059535180087683650639943168381909459410035099832821545212909994145843301595028832857748805202495965746397445127300311899049258768814523015586460247987934415077268183945147970213126767602850678691455149707426926106808271604037327200798629560774616551947157545732211579911864677271623904804846020678653381154173676724138911339791717995138238932123811985220263972855879114896336953685087261440328456925104063311150677998307971868651225510327681081758991550995539576825881735106186410911518560201700453383820627698375507637269208128627250896028741873244703763965695683648266262018817174669586535411832229472109598619101166989165982809560894296866882231020073414820084034671673440524548084295960795778023049824593362699294656736366636348689814334913273926362113695041114214485966976372471683567001944892620129082654340133253000052346554555203497238140889317845585021064868070294536762688420301321847713675417994043026912218991011472008773505790442813149722507058464723659022766150334475591037499923542892919878106438882809923333999268220766221012756842393582510413494296601056180202315810868537425250881168165287579719078668300038899761978978563233013567738155114961528727400958716719418698892813044093227175230423311706626561432842406577801124936688974254573950852085622019036416253407124486706400274520809653471581388002728492946666455956755150398192188448883125953277778157526588361027532080849575230891473105486432874719948965125301062613922232257433880259485622640495774220829998041785650559463273476880911868555536444124782125433963055329406521962998070133854048085169112177820532884691580521406650820905195912524998909450524708046121525769586213147763439923211253469643002377253245487719997809465408018197356122719795539701245041002806592925526861345571649888278344090682801751777466689673823202549270301600144161844111121506026531160188505580018266443817463875103106729743018476879564317428787499876930746706608512925197737151643817933773222121718695906386740600627385031995812613291720684146210470604424768444153588381909539162864921868050587017980722207667109407611205635746481611943320512829926957812270551543518797966323513839562238092604521874498120354990999492729883335176636162275538479404957123620359745131470713146517678537048244312859800112370103680990423571587938059448875156926332813857800001883039686782493207395108381613104449342787118246831925729605391796755877554945478791105767239748052369494089034969808403392749695775440886222149028009140006110773056781378700304530627266305949812423177966835437969024536206293410646683510924853009274786545630986982868434666885363576760448829837660687097040204989996187195923697257022272916817192602055815152051849074249921662681304571754990619067297368524133989117126758929408056918859049698360151723734234234251136336306274727984007840553708324565513546272301286867280154820503560646689504963366316323520609136671720619569667813689287360942737868383172819734201925258157208350725644150949752968132451348717279359085905842301346558166651771529733937771330884229933715866152609355211379649980395635732293499944283420690262194281634993790526305943414259460484377366882033949477449507202404747627724704102250608276260495156400863652590146519643686206773001778575235751510268116283744982222126374327491799527658339788240854310259870191422782839106428417559537012053960359064456742477484470586383275684138111444949677936276567756682972289664303294152929432597000030177502602240769241119486756065767059291995930515888846002323226434545018540654713329393449538291955370279729876632324245198220649966281768784914612878377945329077995492262749291058549184257826024321467965015832447198338160720334441767540590877884139713975730581113140569841561267057785649294822776178262848600456168586688512394661098889413288927658267779186708810549579441100541120620768809884181163177239248802626299059259728046071116902725089105639123671435377815289912579113146984908608563519306416149419947277566619884965071293844459388043956646945748735619352708245664301114679221666027008660004303173068997104471440192062740818671433740841752938752917524719245198769810834353302540041690996505270295028029683731096570610158140846678384901208534599260885432539591545257000952289951672479101403069890861667677180474355886916254011242939408853620359104826072782410411604303844556356255640840848084515046230341973654041545074199665864646006506224446137091856880834822184480473260159073100356814854979016687900648249169671612116586270929684706401736763755290848643857200750623202095602853888730889704815036532666456329950797850024394892370571813390530087516051304060055140621937199711149357511299063276674738515574165630069613077085755852483147225000234457891814928067978779086430786728661726903481983128668183922840459069487116642099512801323096822237071965631187427994007523225116918176470107980106944748242856445780260154617935489039702980782533642687159879737317598401452906823753728541822186732613454493961195564675725934362901107937568107497881242097915521207209990053609396324567665479597371415801169570170321800854626114868940167965467768737937077287639709964554822069264454157465885379039843965829387394559358474371380522661669349100293108879782406692075854880754336336196281289882869918573911827014269005536255247137357066693115645295372042205579669719450960865984722028118286303370515326384378475540393914017697874656523745503087429642415660428780777877447356754949340471558113409317083162502299482702732966514033448517035832171985123251489347022754525479091571312319814852491041384319279223810997819889836492429130755057521955240283905763193271359112277322780265381146971166161141792937406463929278296087722520977094647532416768901093662822052080352712214142510077923496391056485323152212898626042259297824261134259216744831089444167156402297291770056472682979291687523157982946854242674207347271076391839462828279950150605168528181736177717065182758869130078553024828750405702013634981808077916135942817667410436737219608764149414374429870613419486633461247455314824000652561431092860046017195245182976887344883721065512009084628359724987621358131590964401180139850870252638554603019332216464128797180433422845228061392141345870344696167357982487106172649389643847933947919857285991267706547899677984169567393496545319821352899657874995912734917201230187678801992730866048040842367052894380651845919775177302243427588953335994006904796389466274679153293285423274839494191043138302783008030103998182030643841315701098815094799812187166304709384808442900208392322919827980840699692377502120261738037051558339737287227628058795178269673834356949841328016555173668998146096741034119763054916442689719642786104662998106928567376766286046122222958747726945592020209028484953408103007490571306811285142528433089189248844023803754451131777892056073909679760052819572520786975797074987829100138040412791507271719666822291057932094828258487339854200755343388683239917427781779505696399950736513188283946803402726958940702902505874610018758487145438720583681970788833589560068856927294523425752150038355243749746937232676611438055369619702256954438463858859729927557574803198358262625344568154073610955322865563395758053649038963056582965503948188077091732034434376627604425105630320982156783254718864607536685372545732135135283206659556446807918896125559729369914634285551206347575468323932695918005578662604905271298696285656447986395829724045544734845745442954926621870598020912893246385495197234832714362166663238555303478800637250861544204151821931649227517385559768630458207137852856174481661093576022283965251033317567692360577658672322546208866255599721014438987176856262531756481192109175701869458367801829168327932979539639322899480745485325584316306294937270267275054828831222102017666016783719046563123137667371124038361203094358994814209827722538215281397358631076854355698732566519514769002034739815869355347214929636844840531007162497995194231683467580772603214736259317944933911102365928241274602767792391656754423849453562389607722970750885444763339157115534717697516363307936508493820709468315037741936962537023508779876570611118944253821702409194017990909547967307871654065856567460289326416370850993260712770312381081323470450034009217822025930408457880473431847571016505950590271216179568144328641364084977032954039052983385372438189707288500341486009600536147393195160136522458984610670756651830430270537713332249692172086078732466798782179416934496155790392261354291279618795935552857990069549850014619402409703052189432677241866679359063922377075679691221940258991738182414737999427092357654229992894002487529423240027149763570117389154905522650409603317757497148125365699929829470951716164653501463350881367498687683234435187490127108057053462211249093034581994342504737241487073864077718697014679067572155224360982206469819207446198301549265355388756247379097980658180616930064657595184132469536020585263306869079325093888979349948419479376190179565860799242609275621041310465223942694890638015673867843565972598707478187766094339533067535922004654565294706968960620331849912326633293500033102296211576403007381958868840430389109658598727973135805373712963890473482703422003681623993129918328609409717137104375769499695020580817297779990888498343160566269793996210381167309182737997489632704054725510995189263204241365432585011951478865387644509060439308100488693945123331382501846540375677343437566905515979957566587578380932369692971893870093927552414165038355239436761199552300551490170189704899690173485805668800297306560416523233612346878411183868162950688936758946524465427059299852086096300332844737753390212726492580288935726932603550911455385573202251264741887619180348028235775564045144632140195012622769866772040482168414291819816369292938657085905427620625272818134437593956178274954372826547024664506513237422659554441703712445609384513506535696821144461539468991569500026189582001463773167464827889332513645700414980399860065928847642359151355415008159119965239784828313638690652326370072838060302668586763470312580708943963182265881900288733231847947912914952198162130235202466683234550023540181337619792149718705233752561995577443981557731520076744373425766825332865115791805546748714350434684715855295750857982237473442834538858738352162438982725890759596069525439360389494853983914959835311348545796953717663349002508703525504465372100680952597478673315108801214676576590208487674401760314077967603918805724357143912311170507133515287929791037097705348114192474596819364194051361792890475532192973223725296478860309040948618140063596632068050324744252252692208395157659180452252316960429815355559117543863487996316167809493326882813036346197777869570997438930464426735447003587676652065700997628865510738919687807342015784931011970481358159012719399636110454006481620766834763887905263828995531881962396530592733693607236296697623459723602846023948374402860632417792948821105684546932967252372613068638525032967929456257265069738675186402240721729633799045121368389414592631421284023437835762259813138514103068768306210678643101057620115980229826453743870897984535096107842667823013737459986789325648551413141277327551521463838476444243041337598887738970353772709586326659122097290661930148641141395357076425180021609536298015498407918161424394865538690530002438997724401939852157551572795505418437317432245248591053268888718641856290556281697005479256439305191704307875769623960195873890203568846972412188263490987798393579590630379080985990507422837924393867850037910782169426240795664775041054170852104920046664105262881759847960599757334365923629890165787643427045509597269427498428824836680905348776418700006604232518282587535408086138465774109774373999816103888882368024616611559991569863887132975245873651599554595132572466964654610989038478815276812919678453794731566454172798830793377156067198925338651635469238581649621749593593341190600905691805700048044225712554510362296573647807776337610300368581711556393889320404676354459709492422117395688689297381860695782854964432528108564574270228563177670600619122157643915704735261953397011141818072539954884479569925971673562107310355933823295841404942510179666589018910337614692251703095992365124078108711009514352818768196373427045618287553247937321732196257750182891135773504184661188614065030449809375061024211487390606096648421766349787003772336170636441905753550737151309720919333950733482245408201080037910929472042679023198796752003555613763528956326138326796323027503855788320428264474848426127147652824169136152624680310188721411334114338033860329215640553666407175706795972981410889718917945011533062516428946608694772734151491111316988507133520327679086177534941152060538410491914278857696137435020206689314943073795873751823065285917739822348689405995333991137960921788024774824514720876713786765158406683419249864425880081837909937298038445059932950225473699677219591403689351396943125953231714597138184838181736143282268067291252038188241929769454741740318990580518360791864509010703697994643989182252913696624186742202211944905657861924094933802431178909821268126263114575515547301077817096317529761272778405244269342604486058786690113330806548270312836178267785770356879222299565269467617750727187134538456255831091973839081710867995709761586744502959464896161462277745034443505679834274965320925473876336735503638217710721445400333699151366363657065985302809268534887999271837189971581308542949818655701900132542199669925562787012753257052236444601475505699321813628872747482864865053173032460603081095037508311424210558422568051347813526130505011924313056627603169927031472410187417254145511230391233440433780619005532302039206136670738310168538732148239737250428025157171487809226232889360412134112224847788726457336070050036169350769127118729569944845417859274838672107215285022914153937283771247632625253079661574072276387397391422579384326311935545030387398637439358233964586793993496901560438340744198225549970363069404454310506422262979840421875115935771730087197339910667772469624013772753910066994167794686393078555334836388814308444267407969107989028612826027902965979483061992119791022660986289957465425591386888578260701405692595937021109769882246690914091236741639872595571087589694263194874321386738861902715823837458321190157823560647554297488710557967708193803240220031208199309711807721555498235227235829085202445636377047611575385394123881558754781214671186129997414486574760605111598339189221923691867057945151896763504518284366459479979414011612503206401870864949575271642698540272353802171810931490486223360629468788799942438548050461517226756997979847580489919752571492009442515223112093027461063681157356591581005206335924818390418351075419149546180982894660516786909690331660729000703132373089358526568063920103404271210934963524538380930963567987767427112265942252373096214290870472900124222961744196070980701784050133539134561186208815819149250922432127052612119335438232948253296305704571664166600248650900295046177989559353918393762620297621135529491660667349227739962732704965656661887497939395246948405484867302868703105774646256064555461793432623480325180994017017250669484379611572566776219724532008498471867716304912967836722030463674158609380928220855165643226883190156502823928767359953990857039593390734938413312336205438506799092031491062941102401901746715868376285951082919922365442442699882170798387554852127392626073729015372674142382465721550012517621039845209170533011994732850244673300169029033072075571265898458019980326936491270650204811593829505298701145007002283668592574386542939563211625044625806595855343135854848099300270720000095239734494214351428412686922096184297175893747869762083529780279302972332601283478339809264289059144299555684409051169066203353385652653193505261601617341038551534313657735739847878340988135286844842812951693355221716317516795920861604854072325023309829060466336627210039756681313870444126469521722587227895622746355844641738598972588011837386110604776332190185837196133326233290897535498604330851913305330643231373819694482452478043455364973059943680871551569101081604842475027327587723995132596056449714867575163096245585446383498282074899195434644601861032154974503522488323784000931417557604528546177175660102056675398070911265003720142961085414247396653968771840918316070009503307017622547716256561823470278103301815120279006820462223205196518083755351078358296521627103241243307273462921291445571338107052362762976239891395832370060129045930090602462922938720763661417927155849687218346765967355336111710591674640782474398154403455490292551721367203621275130470389019944312521497020071789709865611029496267119006208321473418531927038925937179434829171376229524721646779199728772268968347901260000658003705270775655790163128768796861156948618037732524194576828580894610832671810644273874300010477005368537394499293760976261347663968493663305341819598770588458048691954266254925188262839283496688594299969456204024646664789264808561330946220313856393793913504904690855866701365479339103127360610398018684701593245000960014103976406228326731035908960261416811405364571262051862935952291568345455244626211418800111892052772213759904011995253494660774990453955103505575223429898176793510534224337562085916425219796748842586384876844291456319512428761544574210200214401172782473079484026128645851363130762993905188136971621634924317154616384033712607528234891262954133251143358467829220004657094151840499604379969159835383969396579830016194258791748208218393875242911019317379043544250966973281628117240031420406591928678056031022460337362698412572942477237336694895438324660088522090245797716404961035950127717591856532225108428203586979369161495539274314738744346590649190803164817642502879360662028256935961451900524742582323116213397262437567304873438901498385030144604199205980353955384794744627796156948290613292629018239655960471787305253777532918372866237921490545138871495217178509701050577472175767475282979926002144301778316046027321556018707701754003376330367120229636751667861326940168580760506332499334962790845169314851604295857005639516589149654415486783157829523437108443985382134884505719977285219153683246360154530423482895771179526181305637405462712634168074075706451987109336587560020685499359422629255533869443146883007639633899872563724642402176449366796253784600460206952688947368698906243626374486785284412594279330181087894673369874400981272223022049937667098746892307282770241922912972444694106886102446495730898039892799917148033930983831744910336561545857063962381840228788159353673648464119710790433845444716662163470623787236437300907336326693532836945122969585568440346066885222954329234947689093557521305422935960934517936470145525665200168012338549560105618141598407825051385951012990475634383039477392880780656809314278902665469322264973958854314079730141185951416426233849582702559271047179814733004851325476747562833804607187114560756016123879885418916910178920027399527025082370329753948243148735448442358932905805894444219242451786505355232726991768009010380927422009090085521885172157223507543469236766797738775632694846641260358757286441228658771045466723475704834976593265692103404237950182575645230498356470905934430986746465873417658928637115164933627670772530126120679216453751775411202233246756190168118317975105393657044756995398318161076564139231471656900083726937863519325584782055995222338279587934373610723142260295233012832087869673971214659802928253091133962399904996613372619914792460840498505044330139203897145338560618505865235509719801306893824589141186067452369134182665343855380749533261782831529596182203312375815692884465440603247040218401590285911337974019909033332378501013718570741599040577864864873630480985327620803811182495332068445211176756520909503954189891526889253166036051915734994693547401837736653530008174684856035437300035179768503267875342182795477329860398218249351338422541614822131030978098674087648071932138942044167597244314749001512853410190355684226096010826017437954390547324757252132063423003732827472121356908245002348285093754353986888519396583227791702487236366161456021517242174509974481127223933984340983540739047574622080955061345151784332831037593791336910410892217776438527314923759034287092187586784615758152614738347855788266990313178025068153207316797142500674476491328851455916125452138004266392093753053264054812500618520013089213804453804883760177418256878053002302721278840392142606164196669863322705084148605583830616763104745564593756852563137317555082804423151327843033316069333321977986058179651061156437864859986873440756310120638939717461595158411374802349158413523205246069214026297346382537861043120074700200657230880082643825846906981804067159125856571832103183824320689595125055765389716938187352848010034315818653815538396323522954408457297772433703942502110429269353835199905272136926011215322351036468508442414071945274427015164094034883450133781132600031491387042169945045186400587630658615598114955573589293164924448321243196733928182368316474694520737225899475220425392102209265578849226694837009830031355969964728241494483079048408054834802764918412227391048352478295231001968976906641831926504562355599264677533287603475334995486527320688185278975219849451628091415174760084188480637649048157224952811788666228844007541022536634124186053869678718908600171526837679751135853556844167824457095126769175698520441898941930278194623080622005447111123103186783134329791247226879826915247682421041135143893662754400844831693423622159946844920680459678660575859513439294897143922695854992237618986001273410910055931534234058227719892590858356750218775763646488025357333155511746394626704418206369261371212019422983448902933402249626644775247469270825012747655722500819037494978260606759744529689904309427934059762983250335442174243771008938190481476412693477004043315209421725091193109018957673757633419102186888248107652474093588929171422025597366158027357495420657762442223773460295480062289543274257265473661869765808864355343327059660981660687293819734606051971417561110524605386163464422906231222378241485410038146887323036361893669277073959620390643352052415414556334381387538357414099750091175041542883078564813861479583128609172440721743535401840691461711546780304702800569013906760494977804953898858091637997318760013175710282575465359527823627283339570156944141318433959010347598204259136325457941548439512195431724026812180014723107787409707321025420616921316821251043706181186589268802531760415905669504992218601366115710610968843010099687530845090126568493460431342745901281411694416055351251379774533015232636283593332423435012277797547766544408872808759583403590867826052533178593138645213928725167713373392947106505315065443835366419512464902822228177340376876687617775691088964224879320391833636183862420124037607617482349401621046619778105596430220730169795247427337464627232775845491024547564165139563187666253459851819258334610926041871815651436242480642945028779605818671016375748871084231142712665554832031590047419211195203897825852274645440310130666434928158088591956921927944038830108852909586514453218611549569771080280937427992900773615892952354368876289356332085994403629859350167609049447108211840545527185023543257818291799538779981574062660044205413257954546274727430087985295841272019356466167706928420416264241729062280345123466667783909179236149526329912992359829177558738989294929945362512906957756801951803153312242765039279798157919350330291700629888388311087733839343350321252523959424549816885757888286595949924589320131571512868572544931450485451387880535451911211104404081697317216772311921909632907765410816434821207591781275127416727557003071413455342609227260776388243416052599403740574422801579554873910910187439480162897912125588865571459106707677577685342780861657763451241580201456370251071793395746834001730625448187305829736547312893187481339309303695195827774958777754214295055221541045185094889267727761309562693387955272961292865957165141129533975572428078663048210660481011057590058177261909195114610249287242085452434810277476964185160682826675124434206297379828443576211688642513051517865266468124769444112090803772556687812424481514568359802544142770189359047255915584414948453477943694480306715360372208750512622204686778394123305380213153849354018321806006449560184435193474591839183520849605838069388198993606363001507598698889412787670090808977711230351683273912962690248695769764663652913530586533779396320836710343711758787912284471064643495735700468326080194186682867631072953588198558694246062995660421132443687337373738539746855834225237000175204827286641823823697479373809272039640467562281215594265456465041536133629060211175963442881510577202214773183642700226911810757311949330950185560096935319384104485079544364055820214640620865200548701821310371538486422628273855314444985293120206749119427978360915316041065585931050478471625478850255214251411291768881278353226335686822022990205263476061119639741360770714256961960660949183591013831602999393309218638364695214187527184155290219897125055158606079071111645845432914077556620710410702907152105683565054016653618919014360716880910068757400443736829821373333259756609478831301050687933627103349644847190503579902854964837529765362721674044850932390873031582360584370855222134955898144517291336118540053096857107631743881568020335798321022416540808413901464532062763052034042476052165684873662678589266706118744911250991301805089051012468586967384111491452891868521764424133017578490710149193250510150140430133862412731588443487444357552016738400596758324437330764338636427123485045599404891806057869611430491375692084776580371985712009116932801589890670644708825809850415877955728041691417795046014263949304175804024175172545886615684956550671893589336371954979168580317090566077395605181770942280769639174730141356302312227734454186877524326906273399039127035309601749260202052486694033771928705628191693565931404570635754380515327721302092545617982223400723098608039539899718739999897457492746380129645928768603450491683886415226836012361604729163432273573375896452572200328400291927074232316433143558238314833593147998203017134218226898531870359495580021422457718956066955480536567302325998927872622334115094291630029147961211223323442751973305020856400035761571762424021670435562873198577693980352724660781822273366734490611296985671146989776682289286624523204965102159632178372722716503527981373645364525723821168006748080642464935905242437268386183442129355350745935044421563889592102106938024785291527266428967766912366158107554533748111542885119044445027481539027938311271121164559356273625155427512324472659173551792249729790007034320952783230797972842652794121079568552456826572119835805364408922209743287802264802739897919281123918998590412031636960940694860867086603913261262956470210716426591001526580130397370901691005877114248944836094800504736544986535766948339511201780527559267145312687383321927087144372504358047841840530812758330928242144972231736821686774408290852855122696447864249445156970377330786120210459455607204695674727551214774364637105857396578432062930130584257267621740645402699499687697765612308158661379497849288800330009229617879937773711929196332488648516652364712866050883049892612581619191964156731887480838484861603836461849238250030727748987279058484691327157758700726876000681813071498292820896392755473305747049184616807022337969119005946891228478038920423467542252032765850165431243399575718849126293995899672264221061538114421873934986002144614791847565221728631113745045197054116870235964764471763780152426665305033563617482388414811255545868267309045440419226046634178067439533890001464834995924013897752196293432526496778166204344394753039240389845189324475119747495283243915375827610045055193210389213993532603802807201689309974493401187731368808031817562299251554482589076520013912350923564523126241161883164411986082191673553386826519811983484710018704038134610006438972367254511758154714880373948048189866086063203579245794513144667503497309989712125179862892837069910469342219407263284203304778621045001320707257737799145198484997693960765168852364988467679729641553240217202067575030760853371545495581737291206913557287883613240118294896197912278194157653918543640485791362292341903405791306426363423975589339048294513740316181584442022715406437561415977504748555213347837818006563662128610958115637421699781704152529739289345923121621633718197868469228432744983250063037272035242894730346824918579671644281636419677391319388253472300281111612820832494922463807253963484660673567300228790566517589233907095868063574451362568681180426109455052830412393347675778687049477354349062523054940072150087147863374347364973876085902495260161544755634095017937165746663421493509814965114413737398587237033384172285853814384263051707408087257549938356857421376141001490174943104115313740506567641609996127514211717113447774673575932303147163261063826889800339749770060036871294998647542700850995633782058160962356563570403807258263876690263878106157492129573225843628015687611063821363279058228262679116117285495049320555031171600470995401688046125177612743357464564900793168902426953629921135820562231584966954253100820578563649598432703629008002550634546372115853425037395105094291878238167856143203262202319005440663449577165449846792458256145524700512222641507289329139814162149116789500560968484196825065049317219818798790209920140979802791432821040963947402012427835716399126714102226277084408371679093634894239245018962999335039869886220692037114984492688963851977144430408658102536204802052692046830110004984242773767869287719540109899156115029453428790242807488926747493920311618506574629332737596056167456781030964001863299848203914491364298695945422614153669629104828887810439074083218028339442981567957723065653110000307875415281977406098217024294040423283526871557913163506403911661056544223348071641594768208963699133395449153316241476787078493886469438158810009289407849960221976528549952608732771733439730775140994500896812704104173348865645088290120125192055537692761465725164518348023333867772432531523377964846235973769220118434437666404904243671649144529962788425318788311442430432387200269361904401988784849999246190210724084724481993526426059179818661665315541586602010634914576543064052188624877970682138855079539390462241475626145703581119247217486684378439930209229901914014623990994431372447824726727954388195073579490621269692465013858848333348242748724802763238212962633554560271762900890972408021661913576860477757597147735270866808547495330277094355781319979508122924237579651992183714646633682116959966490961380900951715635871826673743517960687925472145024186048324018073941309157864444929223189747488491251113062133355136396319231120921416198879328173866081334990605005130715302217793693027658334851863609556915205976683169822803606864927234441000863402967892736577633521207062415727671224427917016116916509631196982653493673496942795711492745867800121611252383660800260652372260365857290157432170894211251848540640617417527858001175721387082309748323437452826164815305328033194956114453939766724616912287820327336124275685070356187970050208883781185314354884269829949384373194020547054153068855825951509311514535972103011674686807388145354777062907148901437527921921271277560191583384114963703452784250788788324635202562777628756310646343037900407523911702728190991664973174219206759771969871661783363822546455349265931423414202287824203222373232955024710532560479273223723862596506617509448448702834778398835751223645433604753130211490969860334901858920412791752070025374026337281570448617567466357866663423717341956972441994529689133767724512673335624188766481846615025483090577462453818426075047474486825814074777819973107267380692040067760776620113197517759849893919051593630688298364358818277864169727300268997390344568331519007446501481706186979863654275693838612649306448128837077247805911792250080160741342119298801051465030408959384603037541048003361259271908800793380489745795604079926352487213308149569523625319913616170204062231422016667611368727604235355104003019874409151957067198094632398809177683582632796606261761907778587448502678647215152007834473418053573289114386753358421588132943814144021794778808922178017006121508866676333824845099979514747058716943787432448988473808471755171939567972301372046903746479956477029887254958868616730791599872603153429863960485106650232278815730598349352823893201540470329849958649482800989702055081877890713402953403640140361844573711777689541864041604364893109359970091794094829059499123154020053550600761751404613408724884757859564385547482040976833070608232366309784102751266870242168008922108055278443863685781479670394278359823479163743699617692719100670046725046879362542237962460835753701627969426266735086598025468993044363935959820408985155195020672961982751379211892759946372783285721767316022877404341124808307217595510827883762123732169042745924520093498084169058122206971537151324626106342795938837691583243327881726767137447442452908197067211941124316245723375422051469149304068542403957154741746253211483640927012505618174382225723821036264574690018913643895716231329122891226770819567478739442033661960969626439818052236359531090193932846402109702324084424661534555786881659603001904728238295656146794875303610342093611909592729738576785999361302818329751351004308151734720061525543453368118897641124941123667259656944963056540898619392209175982217067491346894744313422916910837079957448084995653324286594960394710648229948511029215439712629781420260817839517706677704856734798170727437558302865863660705033296482583601198004041728613646541737644173525727549984291228264112332963409962265836938382570662276570895291974238376914737523298004151005111158462867805297657937673842306371062638023894125926808804249206941312103994597703718562600249937936815558177880733516661151966367600581124128298837189803000843060171214287924836020004285116358315638254610017083141191486725422905630569051732157286623240463035268222657847277196626636040568163902983742397131283752333879569230726232630429178064010227995817281629759824270857792192260660489641215084680051729150508735598662793735524054099314343010755587941360485941006749276425854321272983562249222157652105781588393833104326300390474198127893931288121089177795704841128057452888070725007994675264097533022844955993047168884158131862283044994223971880918046738104056368628199140951641915734253292634271652931295324570673838094756704075894130385505893319388344728380206840518229998649745009525539008541605382869252772411020489367146196039104977969508170725061968092631332421678378323709843198458182739373219490241309129367432218217719412418294103276622028191175676818943414391756841771308289624563515091817802292623235695984063906950159085553522412155604465305754916969521997360860574353625738509367143015636579924269309698264595208749230306308966667414517529983394949356657706106716240574624446251222983103119947188530867762818429246094562683638522358806812335964964782497069294723088946030765403662948671985441879578492539437484143299796194578080232724028189313990423949366676729864907705601874900736992110388700692070546091926970761006898479533410405962744628633046770519547968782544147966339522819905626292498230205117168947228584368025278478650263688245621392440550456979632031795882377464733973368792093404621502250512660367873607608887481198296742191259123138761796513377780901659643531161114532288819824340972906505669181150065870146334875925802398803270563354868703482473604932472197012508174656487008172287897015029806903134528881293527920914099700586354386715477350295070476928196085444415258461533533088718342319294824102757230439428578550378297161766543718149601832337258435726641232011377000226847845966688926025767812947440735407926794790727077951625097906110819877894280009770946191145458843487407473926316556532275070261633797760280326202774598046333859062816667778971232510880752719435593236336339961473366836464841201874702406949887704308966078854949638540563100437474636709396227313037731239912486766151967328288820782675838678431380952366808093921217042992525363641031447060549874796433229616667419230881604753824636212710540212386434110480125366402421643336232668729464380563796406336384377926110987063802531425262479819675465965365016573807112977675653642974888570476406416869232596104210602076675670081592115696661315924559875939571453386219858296281961257498119499041096509395616470873047665318231324235785468818768488446101116037688145560260178532807854322225777127124924462962215193220242731412647873517317866960030890404657726289110003313666279708521477448770352531298952507541700498264431520431663110544689253958484890962638698291107723172413934968130834978161040398637221247638624459117976402771942915726489297805886995021071738425202370923111042756623186648518149708569428709709351711354989216980007384173613548533734162666398505537825704945134454139957812399680971873787620719433202454312885680965553680994079445051780939672144164211381434069653948943976902573835543302868105026522125576151906325258134989361489958659727294071073211500415592655637104087963888533135412135607032305520128197741868427129174517218113154708538826168250154498823600831688671356475308526054400603925815071870119255234068062807984924414736710398509652990137354649662178031697215410119402499434358469805312691140466817194194184543169758632907178224260974423125919722934660456211657816779146510981117573067867487570205454897384624432923796607774578380396759278251345030976002496735609861301504617626823081310047046955413854566926176436686159615931957642325643000033842201221404253612922872363695663968179277143382034339783839111078834257138537284969846933163508189000388240241753408096980107139064706851927731713046434605595263899438528260044572665955979134478965675282857424682475290570749998661764537903457140832913612953379669931358462530177642272727719375218093824246629519905381148051364515366844581428488822278103441691199481857230413195607391825925151593848065347753456834125037841767725031985762582327419767573737648988601923235045548326399244455447123727272987098843296214377791403065530312953024017904454303846224394652502310713638362300984810560920063672143969518947378717866524079349402350116787765632672069311201610997472209409791519496287113751526803449379780296267415932933988807344320896312125908770651911747127342944739066089697719200673869253025587498403304847940872108238284577127648550354815126474575810631401579465101971515586798781585655017645074749733784390323863291268259461918749366957697610491460593703977565763694842923362630462878659790132935755278648724056736198171871921811201794321987751333538972417930096672480692398650790576624762369235853749084780950065372038398137051671203080352694730190557899619387990342291058123482389068802365213497130498586431595213650805138348255409717069163311997587069499649224424313548868421961350554541810701356107131698933426002249586456196851435450538964529359808984026305499907017823731078946492697979935799092781573054968366501871249679948319432501282288236391507718220869692494715288567282874514423771175163763406547940771198206264760086899172065322328326454968134839992041273354697202972523646897561771859332642521883081200277299613602520874012184833579808969834458624751082999859194677506944495469036138051087230430580305335296144087581263592908161089475791396298469436332132480637220765758287759439951324117052684977761727634198590428732620460635505632494516738566472770295947120600923552362822678421172888709445257394931101830161645864462959744735262473087121423639726222337228434806418228057234762884683168776188201916651584525126851634980806107161836770041489716350303560909237144007115370242730385729951101194480218494250925246145086951623492827168235320480146087979448998149808153465617944873039782462229594319965881012077139524625179649188137186980131698774563057085892655033880877059537251146338923465665577873392325774680203468861350628550034916883557779240121772900271697349495831891324934571539152730096368822843769319850364397828857610287951738681528332936288081535525471089266748377654210984780093349096168423748826859202504594043069780617279735979648334516696114469767647145780453852067083053594531010935709290382493680692256428610322082233783616107046463223847800593877963927283474630737278917924718924750367592761342700552062464969406082293531241398890759294973307210677392422209030777716555811380101448953046349193051784730325404125630769888829479236903249429981302437130456079088134273618757491385519809361106744349195593139697576827329319404292656654267221713903476502467821420934162028688736735936499040517673848792979376144318964379693418712851294616612103195392276346337300145912458561673107724868744409240077515569753957230682934155181431963593287603992107402849143319120225456604970513432522344593914046191429868321893125876520365376001972845715456501663029834635035702314200356377416583753051627370055031992874016425303239598833020679821641622143317107721936114026799674095797804483689538335318262953368021699921181109480947215504959174538324351679468346323221332916767575228672509967124772270351061968675083777815457013553682779512365421816179319285285111219491800255681470240327845979365177560044153224527380115987930869696412393998946899216136557388936304555609705958136027931766246164011043312237224518210816026009978701965075115954467150686912037464684019032921191042845182200291283943434314675400056428668317189525639315159307963776644218895720705886104514247695693952776798398252746219317873081940559004222796394635492795222234583630934855745745562987386083833869449886560439862450681363183480812622126758105230647895760933426186154150302039773611632523184978335337635664874984453752649468760668326277675677257048877421997767046513912051031214629445129499615558173040225597776864891199201193035300276761281037546601381933958270974430575350424763241054056139860077888184714742381737791740349687545375025473969901132723557379180987094536224789559568179474892323842776650871689587678207556444844000848178001226201050749001600086449471376040976764728464063555795769091466627403522246720022160784730833491357745973842006734277517168444719973459344272963990317355371259578301323706167514597239835298779926115713722182695445418082560995415162067090662767755599275779405454266703525690050094087941127507460229321620953459344138397265202430578628473260473848297523902786188166180892548115016899036097422153779189073771068262685488991000638826399742848813886383678188387352554059022062193673280656748367344025032778049500597654616980381039107761484267529408283034172420168118227950947670932108559804439939798715594779249283443816529072330038092722129047228498302773496010719049165480776613927007317784347235862467291371314267648284905142552133376558119528968385672320043312336387086831348230729101791672032177535916063975381948379142407276290423736865611719273950984226914688746032839888784978592642456536641955618772636177222942212983850679051355843502006836558740547786906336780790456700475558930056421976622243351373917650943706548795835800299610475474533774454829494617577303199968523494179568002191845735901042508800026513569074631341019055984250777176335749328744055552321895898758218925237557790979353408134478082502522686299524012508430129752136295609275711807330668488205272840974533618594500798615340408118825016702594836371311684457381565519607659007846120653177467521261379240104841635668053730885717482708149670526794591364686097352651220127974434934047845576573296622561785437047313427654105358324677055598295456026626072343662721888308073858402419166908449570395816800559507860776549706161008291206827560595533845449564121210299619639588372641622023454612413344500211399728165628243335880802250140423262597679332573119775590538827315879609559020077667190158326088420730480636802463698191300302855313460410128832690881612890200227497908750653616251396707384396619105298832777206721757288707605963058198254281308669105187302537453379804611449710650974875026345755310603162688799309890255123412735454288962409657741423468999829670332980416675095767492485853923344110252281978706614086826670199224016944564486110894705160181806671411557463400820728791966369928755266476241815656445839580348658717460469924191607855865349157688900053416657934535819517540111720393177018239681577586810885589095964476149892204099353568379788804239528054412771407648784828672040650125701765366027297096935550796621613840802578506247526653702019068932275617115238918092318723355255089588210100699832372513945390197459392741199916794739922604083448117070246765844316731164163556325781587246060943995530748707455230588780214698088952003912071406678606609487267051773831069699038317932869863447531147087461299209962523670655742842148136011545548065724829847116349528578208628271721998164408091833483197967489516335125518538439643781767581303060926293356299307998715641493302079679638555717640862083978643346462894659253705277502989578757312519799132390974432904354152095103055409444319670408394399748535795177777956585700386652254920449296847201773433154375943448503996387004744690353333099169525968111617069017626779363425228126345284174179274733158699604255427649235846439316282330915383166475672990642352183817069965748868177095764578390466232108281787757343347891311228065114776798757304231250424718539404301244546369487330287494744511081755678448920828883440799661422235762874881007982782875847141705876964275510054993552811138402245923939159027761262394892749604419515462356235565408104029310227022955968389065167417516160008653775022014238126771592280667761163757664322737537673767741453499590523197608395437209006651654419017769246164485662209089912686928646851389455685230661853969331378440784936965594395254474012046701715710439818425203447591781034633652702615163854544938541868296194378428224626246310812240782131057716395472676496815198151344816124090914997567867718794594980317297637360053482595932992002226903635753813485139871939074580112716495067194982575500098474527966105277118572900897339684469925676610799381353412937380361909069760574745225521213565415176195324278877340953413982112682945082541438355956399279542435439308499361530578558352797121953872562697509251006008984274514799676918365094497135312035050990746413646013502806341874224706420770813305444268195015188376813833825412454968829528054230849391600190113005422818443719917558769990537379053217621333715273758469175053494782294534115302563425304668330653010283029568570385984382252135077521716836805533887298727009277198696891051232136915891775592613811382145307749381811061183727340718117670472363273718359549076647527544312143065183428471866674928477507439627470460074213985731065323627457827605106589009257258046928876049636089069290467201688326387839980439523715597660761571540805006859615076491806430422360411637710258237923845082039774997414711014426398720557209336510582431200025837009890906121349268136516833546608723112581724987671977844757905583287463385128985963120896923762963608251286834945565807355746020970425834111056792958958586371966524120785151485327733721884224943344499527071608389429707557733671830176176465990249081346688880744776109586750100151948412267682783550822169735210978489936516609601897095203411558996984794728853487309466715992311983078336632679743728377217471935230567251383840196587214112629017863982008288844868621190819273641996296259196779180693583951255797316581292612624310082853023443497650108304575957083540061329813111123650951841090803357089860365307627856097349822739581696863063248407980773934214507394370146359957397496495949230787211343900883104985164293428770479264517812703878839944917505542479712406916880833365579993973439816363222787551809044378445895265268347907647114949532978498837743547822080550553945647699531795035289138191155266315557923495635688517289710422244419834268000030608864172596197485277442837301900081410059803264325557792857739970407857722485894218812180580008873881403218992598939714174796108967913927775602140392663635702435089247306730265525480019978539388668783158310167230703051554553663754267032439752152589643343685446342043202927250930369895822681774555889872936042335874084402549586608581223484301013135983053303837353788154477307851369498005164959266505801314408847283385665574235475857135676460347680343762400544900596160935566677412071772474025220567222863226608175131747499703942108630568153092893249094029574113400914115529211206159480997226861536415283727640245728158013431331030354470338461815305287081090007923690113397594694373223332611145645877051999025877398896570906100567909561097753079337772893364419410137372987783609905805489489708556330655153164250164787449915411101498614089810089311141083368196082463689116273491066074526532649722918775066798886599824933014841206426230404020346098546620465051101203698842638345563967823463172018751304149342097884070763866886817577218192910012859169152681176166139334035527412124717622506657568142286453528976601613595125765906517561825872006682846628386349308464925753207454782557914361332399468537085866068714094713739950204957529673384986533047279867728718726753657444475063870344613236000692481688765982353274203509471958769659141334707766502874232607891324109776780216543950279299224416820807570608154040026949459222826083376111927593242887082771327894180158072394239889292533154198898266469087951856014499734632131436215371117743478041092757196021848874142998650537993661980620768113485311155116701301079479317753693051386022951918620691984050013461790021735752497214774583509436330874706583922659716554538223523287091797833305740394276423890700540665488839563690987819643429505117720339233264857842469132563620160868361049576153254267170026161108653645527026172255637481604120867774663978270787850472851312940040196097742126491937534939369465610871473647068132165208189771206630581643811527029650675733584630463280319239886540734961821127546539703748740962351885590217382886459255504573012486780686285463013846537199687485420955835524606526061213988251753408734954304371127419123741919376406350010427515236986120729863527475761156721793469786755693890028865332672207050898923364828999218286194944426700883024264134099471954061084734808918085630957450999115067587135572738814362365283398103021374662611996738607099360081281082440605315612935054142631272667342292749168740523417125761330356567109159712601706031046839359151151884088209016711492143708368863288563752093727887879906453262881221256169567833459336085019560154666492924037882059920628430461860887590889276580723249793767111924565192816086570092402503742145902305939740421271166565896235799481550958611345739860260933296504142981192881366370273535502460592709626309703249622883486299594341750433232423600049549672889375996901195904723975075869792923711924383858256277691199718726217389125841885276618142202760931881649355065585053209279261410201250593947931021428798447305371150124689955065332830740266991394363905532314049173787093600861239804373171902633003174935615715419567495147478983300935863606853429105147409712755393863061432416627680897094764050842519170296843366125767620808396604417119012620023496757888130915129366542883281584808974058370279531344495748882952931783244303124484787385390963844181354926794911925752867688399112037404604574718167857526453905434467052288299355797017975972223747524569822220244018907969509757639468981371451222599177437559461852745012508137806792173527260069392789607826918654292771569836879237187986292611752397370181572519232887170961141762856428842112607683716718929597372839685712593917331084780138581402352564300344469460711125504439267871458484559281192319679475425334735717172876955112037881219939499745230449956823483571991038175372085237028898650082523638910883724382648127824184914326716945635662234595333782991939550514286947259513128543599023988554843454280239944383540630086874879180495579380145213980609910922789745011382869397360805923926771448291511235563376342031210632159867032614427171355822012313393082882166752531005944438508611974545688790196590359037795752644883738394693881930284363889608541476811501498957204634629718184368084657213973871169667913238473645393278613068808509302078874694370942079146870551682351768187180060141526544420104170722561567430735054624602853417094222095618591441287038125419986601582141570989864609839176806785942414474970379191114790457540811771217283977079217795837358142784666806488907476142589383266273373116967592019038957132473686134183368469852028339926989667897505272167063963052505830194321788926587104702134953658076315701115717300876313918908284207362464696318335731862181869726431021766277622815358861630803084646907846961542439663379944282118805659567722845663232954318078727354492769369678158686943838277689403833549178916675250475148501270726146208434987356886620553824976895558594453862770651625447332445543080459704758006799249274609538475949109070237118632532001536677318083596067074695472404583307180260846749414480620984132860404022202648134795158772812096028830196425867142007231591469684018576882111405980674776135375251703873185654856668624635114793115365723496800744015440214385307808528443915838307065137462980429719758823308565499027731831423382362846857650194498197632288447245067729457656500098677401859501529765876714559443527916715902178483414202603970338672629750490709657431720707944788012228159120725815208126599997429002982276865131625198449111488708789243867735237275333993762462043185978463547762906345721292991310884110365996388340474366419389450948732579575271863551664161775360847359572100566455028088199543608081002784705697137144334482062724247436682292312834801762031847650272278301561831641492976110970494762562611960098205683617090776432374802112246753716577011334859894187041089233542471414029427758518419184787920137838246763525337990788277268460591614378876714086077466982327576122162469733682214822715747306453579818626738173738824651043587547388284304299815110433738965184851088284759336430426910506901648944661928155333049979486728087430286788780511363055570208264013382240001238303408295552785938800075426188283765264172855359860278849149830803948065497413427841123276283636613778294968870631368403092226578581137831988534879275321345092018072717419185251860935293794282062973288493297244265122759584627111374925343823791063735238885533901360629928262515505863064240601906786303785259715066429994231990780325029015263980311281244736059931342812052817845007225806256532826112153047719309119139289575096341850483934996398533370280875999144501083267053327044644658304334680657708746869364499631863414239063560129434373387220463236948324353236900304735950654744361594571327751281126981107458185109221856018540560559456671693327813161542604161644413406085571227757074706005922828137247154498589161007859298004532904257122384433744979973302006237197804099833327437768851732441236441975640184908909929314171732211051385227175773463053448372194428687982906828247537312404595696267870682978300243400426570391665432548920218199103826611869382951316198355923990166857336664686343228364807712167858016455301852475162368912674457809505243231951882608921268824099198567446945919416411954921016779171570687072242031698607752022849255950514951546076069913825514342740882236676266305771190105505267336671087324220776944490360221595497748812794515835154792876722681180580066418995390953190528423599145606984524968224352392819015217103995919502858909553884918620460542988226573154692512464936254955896813549946523403845520217585965664275283328152896789706271760337549995431853419333901650695682703041347509064505271861092334038765088497672196851321066301558810868300816730213403339743887463707747554820772080359950764148862440810122836435044927732427295734465188454087307410204031058434434903571066894551867965678508496147707775260802124630108878980910139533176715422931574771053495323419760417278140158923186621619196478638810558326843330258798747440073524594755524690337797799839368864978977703985433769695805331135734295604567141186839460423508564069690917946216024537641930285557056405019495090247851466123360302884584750710876520138269982960878057084220234781566204307738427763833656806880074060477386710439453651315259639410168387414267844093864993462216286788589602949398051756986739291537517790224171756645651891408242695049061223884248379375528022706084288054549389002461706556075301614305676758821462853961795197222156333158434021555740700536164040970177924611269266512828030209303088341058466577592176325147233129651207478989002698644018216102783125763522114066380493386307997678574883098598329029453795198398977657558629661439461448380973157030076367830272386448742343592895850690983914971813833060446384239764517849156530437266591514022024386601574948970408537506168929305538600357484874251257556591232369594496341250878628846727420935679970627107964569506478392301274401441584161391103175017225974562114343021712868187782862817889171086551099713492337438234181849151707605214675411688047479869228878353683581833206043834461301008274186661869191173902033427616586020447062815054683171546445802958762410086926916368993880584548329586833564055000218188051037167700798824090014676296404327774479768819485825243615410375790258658187470737562113968200552247047182604210824991281801885258794073867269911292567819905738585561320052987269870309967643438857228934046843247737526743682164720775825078829843274432746843509242349205483270646807272331157528729002769604679348099278719614377690509657724525983689103660335044897203672078577873471940412271865447823367739530455861490600166739115815352160859234480012939280683839839795631948410877222476259569225306894521836400580220875325365056935228501619065110156866014534730298530777090474699567313105020733138814355312374588542721220390861413620106484669365855960887400512430156959376757131704456414190356244732484468117485611176020724456789148247801563371196878109532583088803786638954692129315494623884363396485742890973003140515127047659802116658059353782261454578143139828685944668157408372479238967829394478767802130242088751247767809698691150098004470743866674532865057199281937027875030117137942175571715061934583219631771538947075332508723907853609203523977292928435345629093950346502011619521971125746908917391682115609900089702421168018726885292829312121056786608240594996187728193084704098198763304551153360988313181544508808580073989776254513228766166622651062015646956530251745106851038768188285357844395465088595583171609837902460647558733075590295557238067299939558464812753474404580616568615732311988986781014223385335638358720867485445521606291736584952409531980767643964075332954120340636508028666730052901185360128833830078662479478524839967945035409125987507002372006400570783754089305043812809159308624420006863186834744332043448864202947291866365906230612790120757045015587385112663279999165733333824454381167230054869087671518116652488489173082392772182945591118508995835701538579604458729096095076617480162952483797459246356780985984546579908097797046223430555703218415155093762601953955902186387574814436711772062446991625017038335549746774278728572270966374158093933254332583958127583183805591760915862315810194608071590164303803295932985294589259156136503478681353891314031733634218536167789330142981023211760820349781808502018880886617169856679783878831278815654939742254993960839617563534200995681548371194040321727711397266649803397038011773603661786905075103485578469784920103540706802093238253873673660466799758256097485252526378974339437529185541881946125542358923231773513431045783077633499158708257938548659023856657560981344164104911318397582386500017820987016430164767038919894939785968282035291052166810621188669014485288352556512206309719621051970621154831047046170212710476169748769672287032439982305338001388131266549451527557244566699666461310052671587473020790600707988438314585171153575806846784550499814640909556810131712042279470008575557267539191242491131775328207982657078158876472505326286024693503094406893748167557411803154464203246277052818072806700925928854044741163756499757507886651635141299252512364735249296081748991903537451870758476321083708877344213701450395731901621091649892066919055669150913585691926453186360326734382423468816462714643473110263689023626050998163932876883647203623433334549988225993075028665478273651886613300737455957346315408168054938684184792057641265492006523361760814715382933718842992912731694925741151089421384136999861600842488278519371821217715506938545252628898078688473527868421767304514330010363035087886397071785044191276973323754459688128693213499004372746561148901267754638294972648526537789214078183538632395726298030675138554705402408791732614766035470693362603339223395641483633697583409613058641486955077823527776103372296697748630499322358183636652696132210161885792904514483000609405355330363756872301857113345734734469725725164504565760539907786683123773107587218518859121864478651517817390189672853168482886235671318729787787500435243495823524465482793468704964693359799200323784081668545206571598892334159220705163229051748107534960422629387805896794997529747132594241056309051556142367649233529789117236148997615634988940319086893703449663148304100762825522848892604484245915123499624145514526101967663386466091175854161881306001450623869625440062602671577953181982987648585015133109815107054854567289571980740699784463944722784443250488123145912228898192903496041008000583182846637630193746241708580066628897491996862645979114660460468963844479234880317380716736942948824741101554768277242487472359250678394152512123890150400349653705437456227078292718583580257476515429073498510407667296661654162902741784037373945941868480619722603629368639238115580773287360469544508322082160382687671335359231721602719626230885766389294979312566423530410713616749066171178372804557973652502643757300304122284170062797853224173729809670928667243227159173855730282294695094850014581791480001790935886093700760283331437912161545472697394603638391315655732021560653468299221004817127021606533787130251929690780240800716920260481714288319338724021754391362461051969988386183637904594258932495798407050155163584473079982381208446544547628768174318003766791579609478131787329982646600094231093438236136797851528098625574820634597063717649103485249602540453815785010700815961269209208681036413793934060245180490869859133486324661578929489440951422383604667038882636733381491555818230246244955695118405129750060412923787415498609163538271984019648839189322023542643937025787051042863409186167219497188425823497438521615375042247049670523932784544014298618537720715101700080819185406615693945514442631369821633591780164135205278589270554263532383506198357174088275802020047331771967105026589413535674439307218015976169138703451939391183448442203139564353375104422847799987845749818369294124689257986966031853881180225563164995202841648988556673006022451252414242032894125319281191945985868779576555492725600504669717006499057024049463253454810906799988625540376971469757498754805546456212661876511101841471616084983921916252584489449394058715679570905793593200278793287009945367469224864461217637484465623718575844955035117484258628280924990615276956252416102682336131787256575248953707796067097412557001202338928463397458817035299755495319376838724307862068578683652650768020334990663293016224228024523986117334766831847720869821288738221898490260409268884081504897167423344561172253357186235758535670402249482751552800107453647529336912479312883634014448144837780356101107778910720647329536047749585312731706817266266112902420235220068231808884596741679170202883241029826409972618764709834052016466688525375920822929607622922995373284996431548362683589247770758969431527591133524991457654908421968747733224633926645312049834049363422260962178885981079343816998125849481865398395654221820910369335291788608851298652741960798310572185987818871824122228947010947710795656551320958487991514840011827068402528116222002305283441588164537059276607748317791219411666489504342016467354505210301031573888243664717997345772234195383461768186467974649641232962253158668725882367605413609249899988249066483080144299827700032155503543481024716134241670647235293136453384412101007905399640620401191512327962437885866825987502677568105033537509966626232412893180271610864583038954071541720526030366823673988756290195622838108623571293080678584561641067886405935781758201503089356734136834289003194531283805351323840815803410171671975363129128560530800070627331289041446715446472848981846512116165493569919584045226326736143161594588044421104605349693194104949363471185912936051357808856513830404329966982447392538842287551538817184874218020573329736002929574576829003803146275703889837105935663647955354869145596737866496185432502888413559929499728787460619002043997714699028454543651361864978038146663639175821582619395898948232474655412812788383686606822076906368708430808112769996793472003432861553901573074382955516091154373104616321077557577217572701407249266149037641970681125976063322950697406118706552995391327783902180185532456581944279474604417776789975147903572911213845497632041509745379017440391843539394325623967814150119419880539205814380672661394591085852097608048709172921068089799060148362956577267946756571101948173842856100283218841028715734001103820650652858787370714075203292324253135809653883665734098413981373546640033669447452600143755236595537149471557933198964342659097063568194333377846613859851109618632003377055285950323334050654694756594149391149278573979985145859591482313026664814808359799698734097812559726096201387196911658446359692426529039930802893443991265143905059672246886708227443497995366805503201896252246731211397622300905728453759349329215444929092065182236939023540695900988168564092683484086633512329702991228266745079263920816297020204141375466690306293670097169087491949953003058627194301876272988735434907640101119129461547040351677393332122827470707167652673387830096017761884347744487141443373666385125612470579096779970146035705347025430423817938264845309838032103082616856028354511756696534075586643369050657404723149302912720012040108397910528909177450237607584613735885144770694738417678979177116821493945580565792762367971256991010882213948290396599171907442072309120755020902997150013075301111848634130185758862845061825218290143990710411369969905351487846489137752967082431995150240605569443356675638261160575885077481721968718034019134691751095438581407522381693451501286480942989676913104527232908829647717662128911345293606320667586238045962399454039562078357964047421569770221699039693874635824781352654848016993215489899559783702225269046994717844377472186358558355942058745218656735204335601936542353175278978932109078208488519923175860446066927085326932143890922778957102804726148179854781454086245796504564754002392808981536118247896956030913457829446169974643311117062051045504029794078323270692001430058785831658700385169791994275822507008271529846636223518408999600765267568833825087412789943243676348914943500790089871578302815450339541787989401759344764315672433254630093816773656497324904481999375660301837819473471774737443339424083255333587626233565667182566812437553605618558028572402748173483867150948252064867631740701501593698115397846234429524387759891785632142525833667762078070520509242137416775720227738231209557006256617106752109638527800156518399534378286296436551427373306271336496754152472599179682554669578738585291399829800047183896567105512996666914694400733067437820527617932511004471728989774340870693959448255584800699524366626454634818405376288161982539426482929780620592300947712411000369641734038305737593909826728811171852242293388958835266724854349331317222173719785842462676820858179169070246631526724986762325317081886343756224639473509762185268716164536959113378614061619669585068072911204483487414426730964347300611930458292368052778991204805090578950323401838805030009564947164435530788149182463293101498883899133965789869573646073329865530201516568993874174136078243152557063812999113340604499154647683993407832777303421085308292032941563083211588806658559287309548246783392518875058706814174539891551560632627552641955539147819820281206573080194030970460043387611271980817062443182644588010304698487981965937174467363929487357607693157693824029666622511289839398686345466947943529548295604229444984994370790436221465359614886509201391925515246643674366494128662019503773805777656926658725597306184866930065660779334349919818987724898566229452496116366495170014711404594409812147206715012815230365155984950273163364533149587909108085777668077969541335191993503674259846463106719677117874016653956652664311148478576427215750592987453128937595454926933600741902863672462728697613578012338237673292979296529303501678912397374509026108507635796079867378927952828450540564969927801749800450987564440181310644481178819610055611610709117976358972182711437888173928506646027049095887240441229544444339753640391276161649232043021760225590577459229216280852339133851274818497010250768063754004558596518844804536799933225479611947614351771437707202983310178565549753905724858579007209905873194689369600805428491867183571014973649739645234886844964212226070198395740759740709732222585632380580203039490042947640433989981316832488856651242252578653995957733034019461757665622226973398430765550191424071535156058422776253531582518377021423873954546194460818342971091245698836257395871239586823525770314097286034782736447275799770201033173487399768598392300711149365346571474346783891961506713605144106738092363755176347684561856729840907068427983141210032948137715349286040585840931691281617548689074543184200821865672143923463431859818331271974209261314864106810372713330995833552606674267763065871209271843683875222817573426362423605470944186792103366138586460434735671404405811828692591100789140054098511018997176618349696798579311526749666506116205184596154026513845574848134870342196644543163761952876408323086740729115506045806036723886081839353892183674895409018654783797985087634282293630519636898386849112733490385105445106522352601371659464653616369782660092340948263435985460538957915850452133043865405460060269652535571964437165704506674083108667160259920783394498082857402034424326878706825421340755296889683325201763510024599694206125321990656455271039704034784139201029103291759939819563697935032613700386609268922272735759119851290873061538011956326874472661113208786676553667985759521507863962807750965119341201773606438435302342012397369472016342728125730014160813945035190529943732649817586038371058359643262158886805536281861408648125968422837526977810949233414731975113536941570500228660988233225084517799183888247868814131030942423993629714529428091234981907542257908811535216102588295930211837976652417161324938778885166609176554313661196354834525543151098143553126241276206146266588465241725656382083257010980001256314375813968071031357217425049830493466689139681089144502617180146234844995167917527662569611562308105803952465590028830799017925018344097083471036331310160116774964355436563233813389952945802498887104065161301537206987840777539402656535530804640267617779463518245229446129742023595602400308364647758221972879073072454183860886846234953716430929774242618879436918793610025846875217670806114098465651903852639507919767579769767411454332056880267710502176233428589837675302211164848734202922799154983990181770011118396913064147154531099886104601418253264472969363256208110942972256997716401414762135703602064873859059913247674452092373058583996243325470616310055627161268271602072396431570705308894273664663901968246404332713003759762439008321469744981149189791286040747084589061264362507749682555481043041636003430830646694637161211459509605642041151037653186831795583811058558948244709068587523288621237352092237898720256759476000742948636767900451442986115385566718275400239452467558477422214343926325881095330780921884927794520093773163037555479960962966303693963362554903323496521375147654498847729127091260243258705782729594309317258802012633203752378900982536409384232473672648617980347819768474744371966458163123572413523855932822453851582566080337864824745800313262577646050320381952853558161057545574732347101281494458717960726964805950254469658065382510209306409372934235633687781580883603347743136593612256215944983776183378105278574145553400245693218270851993728869458507226136095264553346723426150179082318822324279520730527535019999557671904927891806428005912406511152372137731814822829941536644079343981584307102704349152245321524418400257864095840238130799807788898191215936758696866882579141461725580546738531644581357332318306156495002726361751253204585808346482068083309866461216765329056188758057032157633893698400001124192787466094836281711159180962332756064537645197190213187758695478777352989527015697287595791055862552188061312638351911165451470016405063628590410165161119394105904557291264397885416594153507494789042355263613286005473276418475243704009877802409798517279406095377321914363675885731285404303338565947568851626834667721687064722263936549526877160822607513119905589991476483137213687811267407439793437235914828829004277447141558923501057678293066993078463986695596880570132098934286169281792762793619475078792313799758596437198018970405794749932270188772694302603161623074622958500554473505601605219820623654612306727918519019785642540709955734801300491398118550583807365426757675890114374641114188196066004762164876790725838560383204514913976791436740181960294203065291118767907543006530404839883645636458970012123605940087823364604940368758926067438470123575694621275961181945542795233311167152927919549731802012562749797520996001544170123324665371186626167752830694228419983274591029145915733222257284291932722521479575562478396802338456475584561324825755116463902581223439322477181554732649353953515611112762354199417682341421326790775806595637914026478097840722252165782862276194813131906558539543759776032946187680689569291356215630073665767206144421805482148881689010567712906287445905674157259248042570188429611166498814805983069053531145594934376144666512142434507110781085953719971651229184851316406739157036527166330644385308051116076308401356640277552411094946625004688519776196506988882455920138082526826895161213882981949205312338006393560789621036610421706971858262710476320795774453596441136891439254293015879277714426574972922858844087559382663847583148659968839351865497417040337122649919626662566003038910055266677915715424858914640817118236398367755672843835047901947082865413428318233719803398719377128776186090107998398801888410312137380638113204690740078956221267323796487894986034578906128896554828508910335942859046349527073663430777573853438276078625033481966538032873068737295156562400046103811435981056942703271879952351875967864773739430951979255587397277653018281910884409731661966085151153919896927041104733693593790278230934703668217998583212133757146551465337152293882292909688380422302315785016880691440044174890440544665794849368468281166706704796138447207955486065911447664394023894222950400835608854344053629006360783622775161842855280234613776928097227531933491283305369084208884702569500219369673405461048790193959908897290808569926672292022073825315960822991089471101525628713578340897600047851015713277443362784736537023761207473551459981177760125876715872375048692214923063400036843734183444199676678680304356029475112470695798200631448300500979584210806396178868382408039365943008476791788000302735184448297322733144126178199061684376435878496473330564051542571834125899136960143763814379180800751874238492492032781583197672252445253634744883495237940676594634762759525879134553777772481622116573011704933322230078262252154145795341002550665770727649329095841275698242482623203426310506653658012075778211994575847184704122464598371793809147087140824322412852102306490831534131362281639749008050728386556957932239253021642594809049557061825127676678819054207701593092881195429352531142909872676496785297822967496553959989084721576969874064750671691684119971515631702595729572313748205696428989365017116208628255708186652785382665547874418908822203323896154417893111834782712642632675175984872671712746617092620524512596423498192542024063391367138337257505523148617822526246007960946059566242584999615917512000308532961417475361609481649286118039553625182988663865152501332383776415624446407559619804461576087014830031752177372170199167785319614419496949427636583270863953237428822126617973256700681090434357314627988930601220229602504649147636928548866259590131051785513833251461364619804807183743758748780559226781202986324102006380016330855655671056464680680954754224966065254777256460519815543378536757211774782853608234179401200348923190812483394676421747117307138169922899743654341619837745262098367510125015845392805350552383808889238349118160545615034561970325377327067497828582255382616561234721409528273247997553343568161362655076001040761497853550256045710487645350984980783127508797998704622102853392236677601324287746456455506402722095423080324233131001021905405097574954676310444685968796051195355050058494492525344509668676486103185484182499282598085298412022051085834622818453302478756417925118391562467590236338956476862287147570284308188806020338475361152771834131438695268594133614342751927146951612377825620876084271147972101085506622371707249397487971336313436363588537322710807431254418070098745796640474458664423677639131887531944589425693685282393872271083427031189305701882613855629649654368274594535175207956246592950721089233527126898281702663779978557393601314210183249211900095820693822040641499000951015595050272730674361342470611283545623455449550407171213910026283455119075375016110856099292118517775117788888480773203326775727358009685251546089766913911540015613626168417865873214420084038941853322414565581692476760142931588567320870979412816928825221441569762383367593611173853149373373058808198974518135772112766588995771936238006461390603186243955245499528996918729582096414043990664541023142129850190077382172528064986974526391322278806092005941252310225417074805080765923943646616881497904171827053531650134933656410479887973242439927836976301444342375139736435456566104138352116997083829280211339881029477015728877968907490800422878981514352896156187460840591915548483141229802123692670492066520873654698911587205334814686162560351931322498535151139333401702363836555317801340379786478227285880000443928631541435235792763409861846538880307180261245069693329980728880604070073852086019838343248875787320192301040457527135406811732961006010501050886884897636779447080766969770577551954843729846154561108463783101605298573953903974608189908468492995326428368284066694769062314091734461549011578278749640893225190110515400375785025200958632856143106611823519531291334420726137812151770443031750865301081996960450477408794499736227419369450022558478955639345353697045175473212633698569508543227412803022095682797053402857404826424520025510997417433988553424596390088113989385119370785645575323476875014217998634508789826873464830947555045455190288337214011943916938569643802911838858038935377652613945105210046188505249697094267730206735520379087708579140451100844658427862780309506599147568979165162481593440806928262969772841880102684806299483618987032366196948454554022956137999021287339706866873921634402065834904552500682613603946480207773764474258016450178577205923930843578541859963955656899392040588027151344796176798494589724786200286482062600397833628617667014237325395260264297678819791991809193255437122708785172334267051834378836231077981007466338322027744282099154281993995599245170512307782603220744350452728798672092002525270765601401846618701765686031956932196706394695193372195585838032036821822527271377747445931686959123155388953526069264158591087873635788400434505206035921688378567941186832983813358952301347634917538526039319465911193541280385295187790340970706694212385912969008696151713330554311580276108317322143953129003620951850939106060359277601547494998863165826816745226506119373161730999399611740195700745931269330099801756672854077758456686537780335653206507522067120195457402472566746008439077139026342166138252458785654907880250118101313207424266883634813376182462871225931080099092679885651958937704925958740264326350548035786078501257354255039592020726230956048343609865882603830373506203898368622663214893615906296161115753413508457909917322771243615777821832118975034172952333077135057359702872803625293402253633174877330551310611297810771754189976503554371907733827485392628204443167084607274562381863635794322009404284260447757776782938158874465209892700814091185925238115120371960335416546550775413835672858304798558840362941121103829070340248055741265855633092853638009517987115022940818457620844543561229544632400381722191495242185527570399133515848630333227764339041346838817217577853641705132996142172735899643134265683175363156752200533839372407635512815019607476937990410845651780556886535238987050375326720725215982074368351594432659671111717424001431641287935503785062741195131636827265488850984973183105099538808083536873723557681164815223276609977745959354347492145831158888338398601816996749267225252189107704130691604311068189560602106407608574798738651632664797291366330587824990067559060871269933997930211315815234550253964409805384206439835309262015184893258856297235323147135205244036417054127315075715492233273703325386913870414577715883940474643934233271185472989251557701106726930011421340840259001423479458981626165383208626931801242552259062222995305769044742275194404294812664424101456164485219978994399209067833597689863847327390333915244401187980392924296060218973493659468589792199487597268830917547235918692415290308163066505040446111463772417621565799998210061794974481101061843465333382069803383785836076851495673161917450771290416075214966359655245760124644041020235441048184889635903732134204120117744026430434018977947427703325948306535944379240525704939833530002943471826136763467081945550566045263807224733742462638124759655143039177187165611579863463878851048810914724822939421399853642690086167291669983759361810295796136363198138060751903632204596276468527306939633967043716014259805528024954922407605677532479790362439414988403090449453785507067843691735286642067883996604479491644347097316275102121520024921670981266706808292712360419489027046185829201748704550303323315890621009138630464435784728563843503521639877746244728884258205632910958207084774215765845068396414303395433289080147842224698677471933188576913404928963163095322830556585254565209728993015596682764556893529061988275067731223795315035854908594266362493262769216823168068853862648606274789440027959049879114108583015645540343844060778200744517130780415514385889832523851696165770111907407498018820461358811162843693483528036073535282328239163116445707141410657064007778150507809554008099288120230246221601477680441532775401576253441743122700948414851993638294637907810321089927304517380299488829479287174613030352453025397979242653634081616454261868339720108737745936234518226350891687672239264715555103290061103083837191422822799602486813611854142728264127550298327017245539405259218177176994031051700831212368800394021093801024174964386730577980953762735202407594156817845456067866309144031144657412456945729492893178114778044916013551017257699207438970928660869464769708356843969384872363345678570610445307647026208253670035549696521253781947587406529456632090371345160312760131992345208154509834462518747992963772839324276552654293876033407175366997735097483268085111419084042790701571131222890586511300361120357025538894529995265628815876447399159958130526844725800670387679724289559887905604993158993765240074108110647586297048973620681226254581353266311648754943118227234694224802382000125608703667283275031568253853807534203733633947674426172061038644524955863360227990560684026548609582494527829275035144031935783421938237426454681550785325182001406357796964422239568544630604112561433779979584622302529214601194545434681241418535474977314781522422880773086120793375111947331931720294825806898403884490792395173815094902247871449787576902415539754019623956995377460303499038480009222830876309046930055090851420920977235198878756270698234942433251251885756424531107218278569591489816343607978011267459426967966660051790511319546013388404585026717731318011396844293032538842480909048953194418378004506339397523611261426519447927781606731714976852016796599766114071853229905161833975729377472884909176939116108699764020813638387754903426636695142804502707189414348951448612487824674034894951079156722489211804978322631251019504589640405577849542347433865086615655509407235073429446438157291477786042172596294650322041386072050641520140633658433675177500331348509602422350117065478285598622015848104236633569297533054991506728031114589392419902351842874466087969044321224659155445723536367995715680252345003949085184242545475107903122879550605150879029755536535924604074397194318148650095195034010878530885705922929849996453592839639289297835613810932507724334981033895990010723748904756524230626801956444859306158471185398931861318994193105285818808419558603726357027090968617653211203923980486670059956995238598997035498361569123535851215918255161459568401750971357510692977551723333063932399647217316140989722062054355771948281587271253611520356656187457375595712800176574544103778696382994208131919426884669661646755057490876280875548800623843232038012923062463308212854346515660489003992159465166497559959632626296250902220983411086051682260392446528220339170196339629219764974884071273471221216414047946285111807647090433231077567037512715952438902722824879435280888499558740081774617146565829585628769658791896781301395931478649961760557444939154607247075939185858189153576683115522989281434416189642334671225305586962852076754115074693748418984017848439694928574534188167855509604872163834280085665388029488794958386574309917663473726549641498012411502661459902508781742772582165189984534352776443643001140635931187017132986088035559387501903876771789174276125542447374201184851118578523812243021151012106855775295605821567657723990096051662985291209158092067270441227557204578663669680379184157565464475959559949105089123593636794664344878282389359574747574915627890193105066000590839190376517570396356934206802054704678822862723330797293551967494422241015887719915766493697752379072401589862997681287137305894374313753028449843296481649210548198681041771650292244210354206885873574444476244320714601485303010948940507752777061497464757135623085756117057137708222766778009177484642767694413904047164707619408895844234403135279266542449668044789269913151364090091406539124642323944759417877089144601026741780860286224056113603257839167027847668541924928021276569735501164271224313743528951510238641199188595057130929919990675321006488221388865854981080214173366858899138190701544935558049304148617467462350425615590328935327561937294487412174898804897637726674540874334873757762887146607854749621235475912906019248259699986598191426798780146453502050210084318760513073511776186589064075557411209776087078965675941281879235764554146068875239781058965852174258383750463715593399376623419585411334966541558734782670535947373019052715568710289629217007908594803628992596342075801566734213516999667869298937550478712798427345071358645917006992461790690133789585644601258206499367097590648680048202848618792022503159197260154259109509095394749712667691382195886159428723977886713121165539294241309405648835644634626795129439647958005559508142602171366076994438713807065319325164004851874904278111712548324939491623774692310227871539027838562810842375194460456501623116179346921065924957931992043068677872737801571498255968989492921843490183629328921500479728211136170674926122781590777122195560971614236455340781775079106048338924314251953631965422471046814505482431652757186112988552423607400063879091942786872137241861006245613638560050333625500027741407430081751381987170639078345920855796221760114051090624788270692887523459293235547934768046944900096279227035425374615738403602111792006418294066473690219957578118746517819322798846473963435823744461851696536069886123793768802640568517081204183438433477487767568568611370381789198456251704183374943013749298912883651034201992268843799893745441000074472503783872443864323376620579495167157810408756217199887633962711093555896699011467505231208718322146534048936650630309838658158162523442714128087928258206506832568855374892779320560543766539492918514496861984275039374471264847105518820382356082394366170971029187267620311217117685032497756926305276560581079891983519442398788215483150402559855206240237182766178149455178954473155336898215090681213583143495742601224497861296089377162297133593578037651140724157067132943722694112460721987995201191066914831148307867341803369832268275815235937216149661312630842127752772345195885413536612441898395601441911784665780910514728129389265838331807628092900380559614131213638758083296649444079956942856965008358002300371649850875448965693195726787131924792774292003983529530940027216558335074970565791234627381286183917622626370931471469159456416359316295429049589503456594062535792001738940283566980999917409498891436120104190631867225038600432160663559909254001786993199088385898613296400150071287507267411541907969110437049729975309004257510562268399530184416419109085574534640181155530263104503977899451474527118572479657414741139046223560017224257464168305688047668228358775262163724508302514145800962640809064377931095018039253934587264844378343142989766687700227782440727829959957367803960515301070425858562306527717067235641734285453466762310991364972531669816338664563029494080672850223027135610831792033836915627772956194901778819624781390009371833664615857188175817187807916523820932794062676111137868724980459927039938051288757344228569006827859330119807018116589970377399363088371515433435412352642438883775113605401075969964780563285392753490907323394528403626727548013272680477772935911194425746148068600221978596302241842788878381851673610455037097236129398924606891026383744874886839401059748731967009417830084507355892541654774916873396052861154444478169559756144206378962228246153659752492372888262253203119352762852738129426687136715819350290633161629359770299600945238644462335703698767675661538836833087388134886821663140290982578902171752787896820266190046403475547809485336492493989540388925107015318370775260660769112824783138072462968069598002716634585635990289942272517918072863479112309327831231217202449646995767238726410883223179654835874376911517267694262473159926537404549665521970962752396220835265973094402889274249518646595457488760114253071321428193928848091491325718164104575123243627884661627310026261624212426905436206387069868298998005721345128431273079245332311425277150338782386095719413078320131587251407061754004696969131045929083195945567837198627164416286443003587814521593684896143875589277151848518394224413975382571376499332536005591019473075840608535373644314247588655808239745580820572752552282942182129940506881802546741791476340166186223531099297281701684100549227797708184518611618487264102704591677991344539168157015634008463718738097905241057135995885444614670629322176322287347462248094990996459256710759602053927991706092685037170660724004486311393873868672490120000315634827851916945915083415666133560961471859926440014888601626700074986615424153264735419578516760692817367186808774231205704970032734980712603912429582319412022061425580842389008205979259338315333752934297444282022773574849463697336693751430675187059630493950819579412795126186061066634411679010768358559153578504627456882338305659343382562215448712370709903859845883360751388231384461242578368961159687566410263186986719022866374386023863872924683672154191297646486265683777312498581767148345556259484186938319027225061532221655649446553532120774660320682348328797454182093491708784559992742632133021097375502187668137678558273767013011874904835762121924175404646215451455599610779319556000407052880487817751694360228076071416981373492246051284021955745360790138357795788594998852253611418341129470688828624717823296146398341164781735306307680835255261861908111013285395958455476517642279283430170053286221982312622515871660460408912838082718026257371860418801544237524975962996741514991930634085834127162339824438731700209904203204947572925477443054841944155312040261131705614458190501899869786527035350237372465949087673425988077151410623318482064794274494323854540285627883041186200683233195138222270766279253093537788473935611766157081669120114765724781183759260399283431450233374983954771299638725305244819994979579072444745998757746293028568684671959936171300571413811852035314946300617570797576203997405926876817569836128072113795316515299211404303219973978297069543168433083976112769561056910372573536327065246801749281607773039999619606042385709291501197790890071687951068832765079306039733904200151235076338083722155294918677666681543901465489124622846451081981124951444446860324226835723629575125912322490344022263776860358958598726857894851859565673994473658660188386928459406431000178381370189420935596705336348097647888048941304741617916874175120522981547232441053652680056030305363114268997120536211951718291810979788070332893767586270284000430084576009266018287168556459631471526646186651288104237005588344903957013941219086192155228556132033413997632347771529714753804170699342880210285595695028195551325094979892721924806532794065835006449091319893203205468586011940949926319764400901801939118188693196383498554446115356936558711724279068732151875698576121372937788158718568339597410597724717874377759020355716754450999125272827557355156701364911920537215120836415768119150411170835232119424032741814803138817837265190904020700426114590897973185180289243359677071302589276117417993164188662630115526333351201567569821594289440796933282795306049636853361511524108971619034500402434172768461162944895132737203696399432774929862502478475924779693871853425681482555040698867936566638451520486584897756530784495301140614660669320038352587775057789990845383368250980106549852147824918689647553047443443116911626879842357987142677957163187364376219044929334958567494661799197426878474971969869609674014161964488446272988840729694732371996577966479005956933042094027582466071602681203114320451889970052900919332471011836393913577812066531583021708625459282896664718084929493611013506142547917460389410051837370469424734975612751559788499243306755565711783339286823064621625222329227146422612584030091222101193670952033543376240669386512368730700678846443957403277403162240679998672973671725486300577204963792596420876786172917689265127789212032220271487625407433012584641178887046728218443117989705846998805993013128204107920112909761313136781595281517937791720076188148703104962088645422171120039222821384489397683223232854416273973301493459372248250321640901540474710387054047133910173678126025994655206791651857994786577112041234134509753842978662178127460115437582166776813215777243387708107924322218800580886087004898593022790893844503797879141910402865112010896455742342560157700964689397089347457703118103073001268542563578198070299734591585676176020337867147661485538915997250396224519765399769327809797817905214467487565354712641095999282237050867208758175534172162745666740271793060710919313954907225239787378487384467734900114775526686368673821391372706278043627476863475845890390555870486132827858136437782968052270140112467928507426220119914267424547496551874632973536203346596034746059802663960404475980033789068993982548462546111385167214385700771784115507954343959814776157154391448729384438922313971104240480113340343283541109727468096739890916262062088526223653066611631663641637358412508680433030203884965703003513936635878635883862896009114009565431589927624821775536322541845809794661296069662606095264894908578574977817302208102564752759900627923312228088570992118100650158388439512954336301439489983124101425273518758708513600699309433941249601630411052954697634950167913606496491421981930884336606517705186723064278508361897763402680976276049109331225088788375575132831319716477113676403325680601142139246450530189129065575543469785249865081080206169027781525058880300486501666774147421028995871154059640976588772997493351404912353146932079002314596478228600172197032950545982108623470677003301866532666123163711591211216711727865443091446986949325678327773661850272234042360606900843614223226981439168745479208830637518994348778465041090287146582304760351287306187494815060275818383660787053343513414571617483749063034470822917333088910017729973202927193407473040121783155989716901277556132899293810161325430453044816642645516539913424238192138625658078034042589221497812055532656842469109969967592858362743170455912653884207903377758168690630758766943220802404836656574474337883972002537549004384521138796648426572147939183570026727236388269526555270347342566903460587724242213068371791540274246647744238935630152444356399345448656543913913826739661466544116127906139802189807813887769790061422903467999163362930528399570226071057464320025514442833044783996102188660774484204124319037571102254617684708112213480988190424550889352827481480993042841568547129963918652710934255374281356190028628718137816070894240696890887379923318606875408433176461755824510440401383723203966162159598567953544412315068153727479973914883777789253944757192381517111004799601634459776622461760401235018069471003953174269243845792905500432146714371756880306569719822080807078054873447054120812878652451480727073352582051034171252731423551450439136591629402910236334038228020840079794025999314674243520347493325170014344508562370997336526350914522178401687758546172024886548721134949100987861691591837577173278098511441123836644392543652017351906729863788036244739864303297576943639833888712316408473403698998849507200657564983494644967444931636106328539303875002493103823184754904067263856876217215707111197666494546351529454392618895435384021485685362152090389099795662877800420419024223330976730259505480556360298984332337692881993558019148412376061159860221058887343512583770360030020320213485441048082523841949322222428005422906524566998829567051985166695711574571231197276232551814819352850529328525431455541503725851843568361131635255831982569944194573413672863871963704965546695644395142154696083750282182811040344513416490299652166530765448557917700795002125351209137741313843289113207556852115102371425717307138058552015107876497297798478072663177722277368073922837276813984165847783452616351906536032928865885549104745360983211408521701527695167869871633097169221950915617581536446770818204972177902922256659165955856476935965944829570967399051126274551233902973631603849488510667207161413952370315794297222698904442651915102405347795204684023828689981261211674305670285329121612677095180150539051030548709005975093655726534800041094559045420497183352327614856557258097792589143943295958075295668139290909301134783157397627638933415337650232619948780681304022388485233104386383276433312316347333117749603233617844079744630924056615028876689075157691096604200844696649509473312999486792479940527248479018438401569137443320553848634792978404622896536155900833967063747102950229241037080650208434012095242846768471148966109728876896419277000831917735249778842016780545791202370882822642836172488089378616860430465407214139953017645369350795937700265939362976195243540535700950631042396260415123520309381280071233564726631517164062516103981365357038103846698057305396710218205547116777284583342687233945450936511645868573804650164563546329713948197059609350786080496471077215268822371196010891728503896513091113084393517944131781676860471099846123685933320635468454014967592974965034416011149848330323379439410527420357054246280286020452606763404781074764816357165931192002363789743230716706994676608384658669812296210086343123673474684385021131293727671145829392454295254507154442299894061181349909998173143965466183902706831738430914479219181915958043871956818507001851421680560201762109339976189818763374027885804738614441775421177575286915825824123080981992026091091247913578128413972813664610744721847495395316623572554304813777174212757536316790922404630483672367097695201506970976348624684574990615839010678478041239833179754265361619718139006610210366360311265472016847275450555707522941195036915579013682912305044404878907011857324873740661129345922325205412046675147168857538277379685596594889374236007356200048508881458428154183147484542146015076207016604211067180332587798854542088823000059976450077413492272274929799954918918777329682153568847706155265665924657011500227768844774100534659225697420745941214624226530639577719359228309833798233207554557140601750531739940816270928738838392820953716727857537814336878337729338284114961692717902126072058192370656166578121404927980173156360030453005676621257531496598150538065564715826695007114595703040893881552551300634149499594723495449088170319449204454123173243802680786886749263300422987495974101528083055758045620771342544801250855705406794977627274519779607295349248624941898762319585967285411976095812849635376555113080103623438996977263061182924721408809443501933425923261396014444221321072057713657076997612688668473983566509266534000848486093372638595118087550883598201523699398138694442449384043594320437500863900069821283346180651996841561166426137049837124184172682977388002459259558514995085838649497881585532304870003790830627576256685569840618436172389883927337071756379228537492613233063742770974556601232385344175201167939781368703705141047200757917582016340448000714166168433366399428639087783374612055030065141434013282643609667627538026124247376358391163896319801424728636019198519219470805218092132790415674277227663871811083162310197632721311619967828696927727687150385573341837901412020542839941498951381248652679194628101694848166752448259265729115957073200504959649600463130483891513831117537875684493671551822603216326607511248979918825989076646395719832379198267198813153436279754359701307009556703734738652717525662105595385890811518314335071988854260906783124483817823188992478759758229626640516061114143705848239315440281822897720854108163841554052389221824946995305573977773851629331175382883683299220302387604672853118413060087570727002853799208813391867911029622998310595897804856082674826816111659193248662369632527113067896958777183680092249445647018613281461463676097444289790978192647468831738257576134919990205842789074907498267839765601917593977245632208148824012542850831098154414618975239208867281873068714065458131453957803805091907749663787477925917052210034249901867643414961389759274095497172361514998715929167476569499886192912247790462023318817694549193883725068516056959276494109824909381643594406402380416388200540746059103468170547239366214558403344393057765713343038721346244504610646166066682387237563674480991142257653562708225680227092915376552009042213804650527641620876559301359130691663790067314090795172192094804554395047457316807924097150850737516492461571896355755712002531826278109885312320038099741165910888912509474698309968505876987774861121730780940768129356212099663493960180573281199572611462330492067369642391488308114122696280987480090210479347895221994518653920919917035030024933631885982475114084053205831753263086626903136631870562564592568702428471837440378314633232131873060364183541371812504483496961072773610679202387685874938697154618461124316593505660724067521981071952985135826849932826193363741790576249939215921335740701824666508005415050670478465165246224841446967009660243137074194475391772568319906712634866303807515465190983630572431894766298064471222063983109900781063585354022482380872805193445311757918676330854549352153886470361538309691918865972491401522120697260174443733913861246567094736151007447681814252777160119773589588543634956089071384600609642281397868649222498161201499017784917548330061606811579769450654077754251637114832834245540114268831686068487279995180009650331957081727755597726939138380735097111184464421853417568807187431975511319318986326749589862732825321990185716127910984021296122084302102634936437103610165659818919002801873797152780562181251304718079622083642918956664188646788668681934728823414795274919843570766009124240693457473930215581575414427546384065575802976091832491894578391489264600013520320112249429215215012885449147159764873751155944961188774618124968279693911380036030117019933668850081776269420221095489993717702698142153251450357400262377213996419476371382440320162118950589036726040250662305341591201048331058387385264317194579041881046813448823831895769548195607077055295407800199753028171510712267534019681118474939332544801199077382931241043133040224873028047191800520535668991288256247738454888031609891933515618443876137104054441853324788820910974310546227299887881971205106569635732756110958622516309043930782726116372324365500098075606507691039587290910975437048727012175873583788504685880474902915505946093910009409994725523290767642816360597726324007646088455739379302550535480781973948053289586433684967490197853386220588916569930766695694306976030313482605466712423867596017667907447404638889133011745602171417201825360716101736296042926755648782870776472808846254573849832153084766811607255408844593735649742777676478887375766430489278234348400674656061700931282268920968127977573529045280375801932723457624601554513220977664832362292839258415839782519098484728459374909503492834172095104534142515297000839015405107568824014246597171835658239692252051266600529846679737340802501405812947885685830096436166414364283141472055037938349413946611409945142614594292542936293698393872788968393089878148387494826789426832346157058362606366386974898221954620395460066138800867620863862452752020735395165523423472133410660757724298187184361300647261896358774351378246161428069276894289809888395054277221132702430478742296215217228420744193722046836340960330838930744977099585975793704524847526732046908081432525812289975355570526393039227945261023125565574755614764956777844593728839109380030292395422279820900608895691224733258147315819345871834113271279725137831221905415551079168769113998777526179050250826190538188109138298987421923001022689661540654240062141754161254547847422714001677714012438172228688504541753057374821006897630754940616101238409944992889918572357960085859814748225822922229847649618804032342088929441196767609455119137125440164615787105896148002435577822074084866202298354959676502837021903433371658476962486351850276828302427525446318575672146902554976149571773842907363317265232741294117673570495072665637139911470994061991007715763045912151951308602037360680387332579935013822326524803293534992563651329883364987346902125092229238893869371728249433154170513919604123091387436602002105917490579688788618980125392559676913887994246657257308460218198155004406220156438185927355939951241280192383418765322232956727226928904521376757183339525234792287992762226319233551033837064156234838095118918987733248534829252873246433669372635574873971489920697552332142005414327640115337753628570052851652109278918637969484593887058251102522012074369151636844556521033297835054115838858680686171143065022839540269892909196294124734061415805747019323140629448007031840098685459295855136315282049866574008598733998205217023148515127834723369309128722815718424584319598395744080203359001619591199145259461183778368559176730519782389972376864303478603008753106323174956330172326894883320447499132504940260874276749218167631491255487043746171847315856468543287016224185921746586909827155078216416553204942669023810596496872510693772705167014668309009848140293147302227539607175639754245987123720007296505317302630707589154482857250311596348038357946572414924291257456721245357980851079253033923403922898853292163020916752360854494051593345233575626969875162794257451735631760608855572127762471163147313963013834836926951117876618968952410019443441342133896412370512765926947863158066194975392140683966092318356013383201340871791701995529235481863019575232607998626213755546486037417565112801396897008197945075621151261675172888337940111840846735576847366484003456909182549608069740301339782889610536371663839064625620147958851858482461939023414356824788835425494612541607115409693250499644876332456035736910571137023053521842137035483980328892172571262668256549862824828969539942910542285260300936635877396587549098076285927429533727103773239894715850922961129187682293449689761590216030480127872056143772428456869901576981290635530459512859187392535787647757748566602490356150928760520736922299812358347052967425691016604618491389792175807954366268943325866315481243193670403585411994380063386572345771329324882326003826601489712967971280647660453510920399989753112475492596927770362324494271088698347757314882012270885760621404725466113512031030550008370112107560975817706928125198228781410694784072087223403923451555542695398109061946844123127574151783995680404409577402190990261877155347999569223423136771949911895949160498107408196244382456619089813253695552879946254663075852480398748292117540768441747750271241559036644362503240037711913682756177903010365346277665484354215342496879878260313726690917836537210290207513082866116345716033340412490416660277227413316857465412046981622995580799881336111755683289882742258084416622375543371003994788793776897302693624297620624728121077548689265106309204837833381613044565617439745590537445534234911539436790336896415529135437651672730864863710628202939196523962903177568472825374157484099441105449269054588724959909835127478110815044995105580612074776750800656700565232861418330359003359675957912880263194205976680461765035703672077683715712618947957775181327360255222314693772701883842220883540691554600531922603176765401335596434838338254065627806748133693439083362247265223544161536873539738594643577209320184391608397003916805496848899221194117970051202331839517754530733272694082019637996275736443543064646733203438152765045671132508980174902276857005233873094604840675500637190729959941912664833079950399734777348983898208136338806959664136241708084813813158555936174053546513668281973581841380793884622245984296889059236672127254980228665552764821050325847533852817858779125674964540169833877672407609985751565136479604774722735024637207017134692778119477012291897787329420986993394556450398095882122432356561520263919358784604986326425139626829050496359715958211445331403925487334074736945371430829788860557427035475607653040265352521496916207861682302855346987514985486842402184473957470446161342224564252080799606877341762089763463991404084358593828394041609182169773107851713851732907764510921987063928624146983330599491174524198615712557577869009674398385859599143877522498025888372466538962811397779512549851243291313889570067637140945015218571126237841176328954040571735216933880248047372836190220537629206126907290845265032679780597003794752546886400933601785755388395451593748597070043862937661878188837654028656078975436660998810498738256316795548763981923246847636409677439926775490050464801240558301922671520261280658359092499458021895675704932737113446496532175288781592877544854794699787319955509173649922631923991454524425336004343006754371122775743802981497499025379547685256710295414970969550111084734208854203974144535227071848748237943491310598012124469429544243720427689608813075468300455723678849058706364160684611422302969640596655896679559202920816761074955914638979039648884933775816748861645649397892638918608037675743361298754393020149927574457185892776738296932761159099061545357278760222039208117548229102479572456773642268741785628604763308901217925765080663359037967042287433930025831277284259173920155864082292839875153334180402910403573030442141320233621950473679263994740654966125755796699185935930737542699992565346961189262031797071710642431102533836563083780673184039253896507663135661384322089640226062924095957372922740002212138394482979665497843804943892751213546312133565091133649142522030885208546567447703037560166553052379735512928018973301528341405084827411580955784984160226149859497803846857385062202662080078624199883949706736906034747631086128575233772290636509122858346216933394847740869771381732035265145552375973219849600403775243277047570710881247674151122722139054794048103443576771653953690994139544841064269654033928087454162699510038791148113174957661498473231199179626834339671527672350812089222804611363357458775586550352320182793132762330752474967865064903990379432564821471765660890476927885401952053704181388592362925866411978027544852444246843698319389185212215384998284216679220151280036873463799351684931654198499177658380516394815380867885812035277955272008403803007010071098080461889613026437654222198135482227362041412151672379927699529995065982023050734715918098883527877750904173063451466240801358864026027502629999948074795461042618392032564352129464767246725390654854772882422010245758310311108653749950193824826073274202543680412269054782957689782984380329291159930720917550284370524403808337452535998215938404874438546947013513606812846034688866089854751187596006068855188415836840015537122829041847762736765581596598696231959205958660241333941116809951582268399942461057252984823925010545031267496835656979081155379545252370548534437710718941659335448252047393361022182042485742912382706805476673404238636536413674504415422526423229038617338558898336124412307277560921463925916292627912182308356385782228888520181439053554120503302385311332177601649173128414046119269530819630036879904148137264021982161703346196852137423877125411212289125507589478040779055553068403427134692122050418884896586912061008122654795156591764831211536192049301652682318252607483665191412310872319013499090830116298005063257667973813589610011784287146580856538984066229318413549407409941155286183684599316423746142023736756598458932727963222054016617445177496500895308998681093785615603520855664150914266480799777574396192383963412077448863684013684386273569016610230119788149517409070406402412648842152249422095771448043597126516638753812863687758016724761081452574175220215864560441450103134375721682864623879759061298083809682452860557127691833900684086691037146887180412285592766354258009679789237581349521665964121117804308559923270812837806744508219640653452109547428637762873016959617824866004852626762125493549372128809836340250796745278620001960072801768563705665009910728387331224762532192665931729088600570853157829395878231194872495993043071717129275340615129359919674811529903110132838432053162219213489975315374702414518071712501056061805538774593747052523234128800333310142256608479362060738245277228808394610258708086385839148708780538342485959500319669161673294612876069974185993925229249881311342374758655014056439374367340598612961036974044553209689164030815095706383039948343262253039279482536072207819634261449969998309285489661362743668560123956984409237941693872109157072221388448338948634837223896212401310204756216874280370059863361181350196168394496527738647010610439318091353316593418202156409755400414244337832029363114225091939796073647849473258166595078855527791598066807845466016152030794343093109518168953175535976917304708736461872319624855376360765728650563632407399700214448423224190226998267407540820922388228434226080381892933024573927274106215053076403174262175614086516460462421574481205682887029711086814654189469894447461270427163062693090115581154421270757034314754483529683479606127060012471175914833142933632231653618531395182851517119656887081172884333292049938693183984834862721757451695585232837800427168124232951859745285973926461772334324210457511849324450540124163179220183160658818927220848527469756971223125286818017007624075768293540199984489203064374398604535241746829708686508343433887241731467897478004551035082994243868356135950954037147791576290430167495138811080529119430656913844170655595171641646934733197936886428558483183180197473664143018462246589956235187349743069770106640989701888314552338323578693351536824851449621480284576620200456415294779852417288219296525250772959999579942692936029818418427857667636492369923221253319590746416224293837039552481622677404435689719040512947834028088369734233123955926698993188532084203456449785775856686227875259113305758959667585727190605261064365480883010960950504073269562246765934262721284046943017114105000194391684117146084021938820679235625235258991680192018460481159231905532451498104067122219449020874580852294384108654732750028923252902735502203355264919120060633663455425206324583771986202775723621843188550506136333457096387584433472724502188927554861239566940817232778911830367367793529990647756399779798448250490271898416555550186933383046075895565336445686128967648269993527687320135381885197684950396959363560834687826778060807541363717925279263792581385250656966181976751780955072873148229022401481874755914653496637868592942747830409817475803828747979626095834019592194892060208160587814370652107275334207967057661812062069648652363235310375655301310543269434335086016513911285657110323857806165292744415745178342208407586629262982735088697355308312436446772566322582748901036007483552959145979304913566071556334805743538219361608171070613966235132483860439319185362259818119876307209418247188017318924663300689382166434497904101443664283456522670586999996347293774862658292279933534676345706866847711589489619607869916200787458129574563223980889481821268829362753181665503464369796712958456283100956930090645278091800547182877455733236946393534941288555832274612022905856236230241245291052159567093319728765650473225902706069480754614544814470008005961760648603000439637804918742099128382808537518545792524752827261900183150332614515258079155803249137039602904094384301356328131072174132667322548394949685981743424854716112534463120136700391498761960120064237921182589960025025841441718245832179305854803607594801027000380373711531084970114738472294415039025781687444829889834484393132941798942996403140512277894372392776967341391782710959741626357581001488127353150631442627701702977688663733026678590112425647541608523528527235940527437293483157338714470328881369798923487304038305777612904523031849824407136090157016365272160841455379940472654466391293572509716864653654364799469422581131697487172072172545142045585553548394409606914104872743948155043003233198739354293681407978773762815214183811920795877515651254483717574156541973604407698396892933415636918382658923634695493072270328598998076230482786665281542596052328740905427630106153616614190316655562276515482395238886432209108928340567429667118217541427473710161267633184280469471287081703108655953985918597980057368699679233792388830839434148304873587491326513190954224683156932647524835389998672471395926148242771075959343498837942712925463321131858890300216846153088576750959086917685583267166038650910914086619279533043378903140828085690219970411461523309543370834053226641287425611926666387831970652445784610577218740581089446198794557077658715625933588295263542155626809331201249314734518879192224904525166884294543392267137793591379807740936417653511354765300817938992293064553534103250762244591257993253005503029265258201567875856967872957835279370668566560995774121489128802073768893445523817915984354497579805719597420575652469302948804665433153779861611289618624340149597115588079952354018799743580892543480788476527154816879036155715150963643840095696670199516396375404489977140198512039589368396615514925888923000679752445803510856965904338762337299624789315251221112346452745101883461160942185960427588062763598601534918890954960390975165158996229925143664274010583694333560057720135039379823972402268367669915561891255141120559807466097769836467538236646631734009251519373254542205631949778584986488048240716771926316088270059719398412191618348200659649710607966281461753206592013892574505439152093827865283471185333616568379323366698497622002134561899329889002595736274758861239049484067686360011942708695757589508809447138166254506413452764397032911340049341317009914822015594490088495701768150894546144644510670184513442429669214852570752462636361281009862365147665622256714669735299162014548775379736198037882098730125736570282397621911145788800757384359596730439478600000279994966813205084442181062611657090909347728445572804299825708801958544361732264241392440726063438954430798787959893453723340709292630474036172504496124186577755270013726213988670630857547643586227261918309648660174154523317953498700902579414384008452520106955324376644944742767289566960175826117007578186457792117980196592119142846229212412097304414848260294461941508061244661576415758970769912483796665576012540060764652661387244592629932970049454569044121485935109424740625204892447784358672669660810821017352153537662999590478197030735040826651615963976563520315871578264778995776879754920106615652717348080201158373347019581280206900492670500199621621789732028280010666098783686171097316602738758179004044758759722153424726722569531590283833483289375858401600970244087391456585184991769989655390335729736319442559136235647599690383988776975559411853951584695744285696291482952856715729089348415081970760507102968901174521442390198108666796287494820741458281111293985772216488241782208501920697254412311296359167227187541655702097930004231412440876923789455679805458083447683324040256471419628568130949212612978175672475530544881310424253904777416960506116664322969528567891808984899763695689573059697279621997403182928860967636862491374804393256709767567143383706265738065054559561931521528939343082954350039916826126646829704271678031082355648357323125738845829668584029334523965857038542096769431847015181284428470398860440179621664111171422278438236971395508382844234836284620373297068873851353046777776170323444040038077581146898833617710284221116443468589315388299541856779820955795981591861410644306858008061406392441879746948909643831908387893133552930058625433142800273657048932892794921542386773275670861251920113406916060955033806058747435476150208852752268768046125411150280150427125697345974404629292394798566681396116832866278722575168854623922028119634209725339582592225448498635003107066582618568624611550567919640849733497764133431758140432682459066376165302274404439507786723033425477826440995012876505064313708457357611609192966459969036251706994520863222889713294246150510110571705204381775245980253416668663331091948419397562565046107868014801361861710185625566531839545813979321071145569680325214929082366585963128198137442038607720960940146073843343097075516813566398670493214134549951195239902716351013183051123104261253916313172804892789078534321417814135722832026278406139326472365759003786661118576343444193366660471363781400489473586144679892702879813215436409325882481751617185675481826365039485244667645879511501520731757250830080115741991032093897870751673325696109478797934998420989192364761532315013981898746135768173343610110698774540870613973391442564279326177619024036868702870215516437822898608261578174369446391675100316904931716682426393787199856320010609355903561341799625945484418673536570502567411222280158806475057267618009917706876787655786702707579730736121376741709004848222674784160922700862031895716613046790071827844012535246864990212468822142412301891652336198823291612068553593329719072346249053786800379962028118754074365329154921662349649520688842655707595792106921675030223993956829110060752017987297014449662558554779147295888679762381299030133885525528993955815493328911109746968564306826184958784838975706640952106608784726839423787970150529578346584068748643943778562049326941383766032508811762643379182042449094479785143572399822322403825704204669009175438128490186219847708835117359687007730388115335897640574084840262750682484488079030318696114902478395358057695173852640786663831156573537857416242520243951476118614899248990606394985067772753377530879407456709782143932782791614794840574596017536479360913564696005994274229446982650394767836945982127366558516252748825488628553729662078733866718279493967039247294383107653505349895117921197248442230598500630852409354692670740780824147321815783305175501883003103081407377836083764931179017516907663075429496074375594726675776133660129924519116107348301193432246247366297109343261308306370842784936824069837111021858705942641250808734372040754179213019373801995813044320015242869606165154344252501771841593089850447638505364460277956892788992786188028915925572871518222487850476911362031927267474737050547858539136836202891461473227635997590986265006868843982665254273904323561418960350500061876095123161481192922366537163874693158926333632691506917814372376268882582144548795855100389714886974836406417755020670382367375080098745321544654161215273269502290055704155739997147642005426686781371915941072857035754828504447338629028740753128212618518661978625361951216462495136251774126681713919731945321396379300633960043575011897550055580908402160188808193262811769722763808518292750093681967790009386582883649547949147531067876590187628332844584292645041418267709034954430533554320877519790899321087069957467567431630004102759735468215211012149652141493452432933953233015654562028932102532805436267864999353915536558726160966999709651988826841011524580301708344705463661014975689581026660167860703811442693931007768255670772456058649660054077773249912052542552097174748571678253261718724229532701182718243456073557837383941402427897566231442040595268972592458660464661404746895999069317265411679087969021433790524116597888482327377645667737211106061618408256104610121850403604446399887211261037040841625722276190005045163032550852912351758913692443649874261000178071329007188130742499096738851046531688661005001924068815619045491100186946411115062665919645341652605818748043280056584445010406790311623683550088622275178263714483807019535262794613497644452703075711027735321938842075715748592361073851257491200378423454700535909264662592100171755929118048253715044554558281809439476626778728484712973501481021905072343805298107019229288851471508303026559425663565041335969809635234927829685059212541120759894428126442933471397359948133424002182523557903915460978447230365659844929669198802396549492230173868672868843235633906471558183807332561190129843889616709927063870595765308459544922576117741036454542023149629543646175784489248540333647909601087812360565923621671209787731154851065952803755417685536020102253864078597562900332410948296364140574467135407291616006827730536225676995411389498739710550356891937768505643441283408568764362961229585476663790087058809685906483244064431886614783870089575825186216942593227448645125968539924239422792753817133234958629247344547973077048472347264660612689781291634329378002724773692313415614264444923286409962577264557435418958033843414994264346931390021778601115246053437951637972153058771042368777796837529696336563597893526359280118568349979373906518776878703497389976021631046918897962305011954259115762994676001667643556856347968725320091138891974214972345682665183014688921521891311199564610223070763919617762187812435495840071594199565461137892893678885462591500730880426007528578336230611155942370414708522888553835565646762718358924124310109031603302301784223865644464414658934573389207306586581439215712162300340363807039657556014180198781918226494595003200801291913099637914927239398230724247987468849408989182911128894352808855438189293653350674128236522450338144523340624032637743474608507469816136380350494055847517627528838502755858748840210273690266647183794918740786474943679701174313523217631645185611358995027896312441022671781191145249054003892110845379887180316666464815558490944787614851077667924534831229396394813209254398367740712481284760345387192759681134494042047040201958945681985130886432825951703864232584072691421666343742933874600110347626990392103291424979991857515847055895716787178407558939297876907182616764017177062860550435309760214552411314786461852738310716327991750337377923240580663108241390868552398204989205256757335550952582089554912628836451779593173029541718822338251595967006100862390574026646182408753116819997492092728435065031938254342785988010896230537582783451217615974920068424410316707473151812470294535024189159196331512234748027671569800980940830151965871872903448214006074168580754568610600382235473874033684554065837439601335930780071568488488113933870358511682530997460717586030393038580686454040856197948787952375847663889046754929526297273925077711818956259775821311489620949276639482843949323326193191730428212270559236001178082069957534740176703216212772770238701624672987082361814327090149384406635024944707351708470768362385897156028345928595296042695516875006000628329839202585869805370424839742978219209543632358092802882338077452076649301797631226845143872287210909448525312066159084226285284652317874955506861815827198058283668890435235867059887789835650516988121701715963898628518105737870529874732703920720480938923910453490915026885914177620226472142855686474861669002028687266392392767237834961129413254621962504296107649860712112669330249149491018090806552361036957340256998554472963087412420045655505595129627434367152100522682758717374284322634563049012508297910000465710918573328528306086277534911580852982660792816633621255570464479713196094489403554096927547165029543339795599730637975389247468881420024125194867704119743097345980671282397685345668693333895697519119632090215756502504929428981100441702703484884911693866940498351433211710258128913020217797744946719823960570558458046570728740128541802735350542786499912428767991189264381246057179374958346777992678172299950510505688872562376243693624109514602192472670744652285126294362656554866929201729303907066401379910172753883959185940576176343687246022568697054549895357219442861993829811178035994980830435092868454842368273315831869925584916051760803267986240103763073991464019014010481489628049595837819349529566975238016595320540850406967671155122551446773850494844204133251168662640181616858423207860828324059608299238452252373321800154399185805125450563560633909890473728547574838750900218408957449194629223229551425521730602404200595769933199670007500595871945394752384729569726380656921578067662845234092004899258340638071240701685418650956182247120745131331074930831736052770753250548508844336528998206325233376980685756339374013589604157857961722830800441505196753131985903200604391722336189992662286787862441034488080762198161509205990913724345487215827427845375893868076422387497577762046304745515941760836126465761620755697199586554836376006347346680340348656992651796960008772844783383265038604927294906089397920592337336317560500159006333091052186402345551049301003322897032050917748788824370565735681927363670970686943662390606616635208580108283746937885710669535729111322408767502469534934636630061828513077425025260260254915976156017985238414396566886738421372046629175072075304758961282321534109352524737106711932318290618903539277758819933489816845932245473294713281201823250353730703377727353705781997377570809395172894447659482798678170564304401305952916027902424556908281415913472911306823510271057026400179597153402620635513983984649301148851203236687414661331425841415633687136684681256789230405660086697398641004172915674964469862134139295319044653602354283682783056231048888741925472714425757698708938645797042576907636713227413912195630577516128820406423570686340831900357221501873541251356623456199059020444844947985230602875082682868752836491360787777564413960415162544526605988061864844388617818773676239081770018809902037822820046261905881033863719156134032626335382862546741702694940951916289553015280119041562257053524301430950232993947100912202793995461956429075716372075018858452112042043295964142784815639135621860691344590611489829121144806499271747804007281704330427482914103640839876022033605727046918289483345564209204799545908321556407651495117429447243700937426672358368908415112344161501867523511450762017795586498988567946803103477634024545103341517232039830903881215095390095720117785136237286256178079027372717458727732250821729776105086333817973922970885334023521683235312225853156219571074754792439391810892332208968487439115516665219551578815901256530842754527343191148640049568730964379108136015761357549542786736470962109062891351145899380891698288838826938573230618562835202956063846990960535873810220572485818327236853382284970995498907596230322168094775969919852997956747483569526547075553134837736944108123764588961475749243742360007192433323067538807740793057906273082432527893261173383936907790975916264526390926400339964489807934570405180455305165062193477704206974765960176891702099894126746603568720881702278952407881478970104494243781664926265297760968978916351520930348734184597497887172559523292805971234590896216481723491096272982678822506350066402532124129560253242143905774127195820845820289489061404272128152260212413695459033440545491257470180461906091946438854045477213920316758473451610814849310872660050638927362058911019694843832176024444597069844724602549071272280639700881084676054744293517625719793540918718343395788046124480888447240523936984139584811293254138816054124807391705869436330481268874087335539360498327056478626742271786944794265388540200242733053264187394297552463971323277232099561425795737390270534058413327161850209598077543192505872624655871424436322406991490205695794220327938133118926007301901403415816688486881453526334731977990775725559175479858867434297521860181969306017361148858958179868312686263389415301998226671718177341264115081370812645437324798095486795790405317887043827886172243089738968054212202992152219925141318854956835369298143397396487453947863569555327395752259703385564605261015639809002766585440980890487628032389576332798622887112890374695429634882657601591784189572394904301194764585095431399385097358962997837747494199874247799838146815043907150916722279088983914096241149523163369093927611846901295452482756716534919594635653624464802010016306351483311856329570101279681840757928154369645209911515425886958005473429373336596671700967681382760184546463375627437792168840756110606966111913818672974398007053347777375465468560186631796971683044821992404356679511732262920043038933007923537544888430194867477536945876832348008113324254919455182439474067464483806221131888683975812995531044321573553136470939526337431609522740209093767132113677443628776018448905725986997551575032599576825964415169622087648176828523564624058702742334296845361296960266054508078137230378311504292383642963928762480989413155046398040126387741033441423714587937441045736892132602291741719181824559088124983189907098208931986131079700799284973802057947550964416667435842959120941508723906242143974772609830194202131605197702042879207536185616821877448369349784899783660951599417542589351702223507933953873319860061478969373091375024469431329432183455957949440820144202242521010770475034833218624646077576883532464634852745788159046232757209356450161790803676253893537305475427424969755365720386073936492340019066914677096682877549545572718842856211340766996238969830446275101892981896415603942530378659648171959681521357923982023244687601764715301471247236614259212589808029916982002766400625058496076314737728581919369322221648232054511483830996838295815157884969740350509030665754012232777269089120339805451598672552654842476296078112864111810804679765091946411473550060117963851776080206805769437750273011914790657115274543728058859301366040441044159444596033476015722834986967862002412127368960491193964902500576084738949516917337682827048140322338875622555258542706930341807368277259519220605085458350692226187085475906948981828080390826553306781099539858986189266821006740080257015932375265834654525698636283627316216494138615306117066427124503845149962902507644450723655912653793209226107959247163457266338029208764806996483586466349237250043909098286529361674532862244784128093952469843827141996355511444783748247026959656977089802017440247107121123703745102740154550949327685645922633208919098268950833629576125395383432942283049120239459317847286189323544389770369208911829031579198964906484671523272842485311702771312774013528413437729812269115712498530624530052695428267093920186471134040713550574646262504161503278608339900145949722742348607536216134045071520609858345639347441205020728171763056435530473321219871950850952384747714919090968648677940218825494099861525612820711555862423534863754013051336845873032472187107696821946801877815336813968020532208639566174092855021246185120363483559190594031734276486255586440442147289427853489096769085877630344906431896169235792040752533867754695189069569438541516050637783958093511719067985301331866025864167057286200808695976458732462529613885929624542064985281332530394728630614306376995860951890774965160846289559332397978881374329085493330273044880461602687179389991975992020501297073572827309583905864504951889534540549498458640047966163165689711408541452518263675644994933040878579635636768723196360836155616520099950744314307388641749874405530407467809667512361236857132004670707725605989135064862909719187067193344203539463852179834278811644488161198289702040240500003607127369496372291802356639227239342046534767318181715741185916152298389292788021352235484601018677818789951202882676957338572485137480629895368875955724990830213227566214498921543765012814241721541418027526053808750046100235056085108427385475641892419987254112471401499407314103747522475216426678891068028146567356309567907631191861876122672367306529973159014553261360349369084035799907120471720377534942741329033589861933242554834631829842889270020908738296460663879846709603228961958966728458249394718970757835852808312419869733251201898040040286315062876995183019127157461251073217324729582885782702191995910316626248245114720233763457079237960029891422157995365242136905947022864859257685229811307615871714991225489523336358754943824865271003481603961522414108347793933732552076852597366937353260227842055487629122295151540369353639943795830302297604079640438578412387761623683517019279552099979545696129042968175823932541576056328246177513046785178119148640144694038188093407091029349161200686968219783918660692149753498778464071666957045452061057306415750816869357699730794396274884585453100216470477285144357307470812415870342950911772236495011253530536175753388934436581998659440333278402083401841493568224358550128086902486770157038538076814949738552273785403848384743419534089190701041075417841745625762245098312389338293947127053682238948991526064973947750900633767849745360957410868260545717952296297587668873184330696219802161872202893064989746699531608011017113008217942187963001384357022189779311772270899205444056933047537261576648355109076740398000358483741940475771453520815595897395033588599970815441139255490324290954249681257123625707444533435184785923772888497199176624942413203426329380604975803400323530825996011495791112413171562654298333378004049154757723661888762310360410834984463404531429035844486960194118417420873001309113609951688417871850996602960190050126376549922967084007919979652073340531787293991685038990611072148035472337740315953052685829286183105243957209960374475021688087577243738041119496601121902310943992312515469613952143519479151616666355308898416522445679082533383967065851354219140532571083880128474497706030050473775727642319845519555222710618924666968094742934141699899481624775013004657992519572934195998622021534278128138449624904728957944791390764106297804918541003328364069222215463897410149200288526720970732956743351250484472107994267236791960902760185349051687841491871193263556063108902217852204410833436957270289479329175554998314936459749952940884342703574224376787853176051344192010848916550720154221576977064748241867149095304106131911291553045252931477290535325762309297513887786715575886960336243100588523711208408825054164119154742182814790745971383078009454389218298439878495119593895426293241992190169583812889375325994350456217804206360658669397251037486208903520693859504804830546076703012645709855014271453219839196926533490833572214287840930616810040852646250331625514219233551696368270629031635429412718236840992642138318655486145895043207541233045620799440819123670269384072617557730929501830671862179468122951564114615970820250974510036172355265850611217815895274382985336172140106835629834238971520944011179632679600563642527768588786817755768659991627006489525851296710549158578775212393599914027308302804993996805634752607051842201674741859201158649617839673722564469407088873569497403425453646362776712590663015850645313395480557132463194068742575210173252121814816921498159200556957665428888223790559079798790690179091996338111529852300120047840303910033001949846138695995845653006438016150810063536932261336843869805158000826335445848608251482198034772473139920900716173564124063026394021777879266637146306061155081488383628727385046808668673912096882561349457053162033689567465031626483838760264441476261025427565699679856626518745302045121159269343667877531341247768042718992746489094853141856721568056640094826535960336683217499403643693164584446185329393855751131281541607830306220519156116716603990377987191349218725473760323768526510956645366554808287383640616606913055211458985923460561109309064992601441437159757394353052177632153186848417023765520292431388864567998712888226954453157071699510813658015285684174351918230852062180802441996078879037863788223118913211065301448472086323333760739355322079945578008034123005095776459704201726266105879525748447234031294389851896063517351433004505258269401431065663692004214393060309473132511120041332754000056360364866065154807050391181186654265202291183794872401450891433218088022830699960084302233893986506219437000897755343724160012955656108810691536804804751414106204484250818248728495559251367828310133113039233982841278873098594828070973041802760106286532340656193855845759544374325604375431143672465585801401422309595081066428877206598755018916631333647560242895918362302817653390989256872404338259921702370118699101954826734152017546356352334947956864283240615062745966790151861683347705104143576072759252496800675356582457378115078817490436433054853245793361341129436135998791551192029292256257536453083800225920274944760726907474224967108495392177670205699201991709186407421797943283889605370259085934631483830345345724478809113993551838558151203758896894113033012635511487440621134515357688047631500634332051304241863477206748201592064023176895952356688714891467595508344095484381438256302870937439196757895935957133501021889858254144857791753958383147836588692227322228362273341924142406313596721251435661140310009024648880662747005901533236051402934096430981116540748991809694754395421369583938870306513033256574673773620796221130064046949748465746652637821247544472036575333558417468073584941560247907560723204715655008589567113601154992725121061248107302025674240811873474272057460537449900242674549959320973048677823172827120273189141986242449782611147854440048932184124269719718106996693973336679038990345103751398072153531807186787518744749178434368412042892005877929371814261049499112531980482921681390783858877119369970586427483777635670970925954130774460411465318471246255397866050135093301374994225749653152819411329125486995697377315304600767105990019590955207635108023203346327801677022074726382169423705362403207934155743966824573915582778143155720585932871942339404644931778386149867483853870938298503318490055498861847738308179272319897308135229941817147021935533638900359617089899277798622541939729059843559076700547727255887769627878655416510663297229848073923690002824541635331144861283256078697407224124001086631033203640511823744466770022989151397677238154518234061252096460708174526897467945563979106050050578297129684501054219435928876208189025908307948911956565981825757027877342379463323655883382124461281734528984774641508447122123099673235365312177144162563084984296968296349952565517499694338794724584279177275662284549979349448035457203024972857550385390023269766243733624650977469416250597268701368009442304732373794767186700849607683687434312523819430339563578622035653402932450753403375640796362735466774234936305992636560252943221299540937259711894110428036102606584675176633107996400952095179557255516672581525600028434290229442944157640524941671213059649776309924288002067836182544287785794530070988752955520236855337682791344375440788269768894110541780131876313823661704392036863701848380518279931195780224700098772114728595243848146139447958878410763865664271098692775020366089874898768814581529895699706859552326651412222026383439674457170458989930921689945318185560139328573880510934060945466171555004465661052344663568537366891679187016828343405208043948799655250223817390971163522342810141145196176859742061696897467887861082867998525001514742432785508931215411934754398629880858286753974858261371742373755638626883865136882417077717557511633805375504605028445793546746296112892953099612431885287716999053582241016301231138065131345596241726764513016881580843298451319420357442697559628568163941346717313714111592834119956234380517236279917392632649662453822550024927924805223297808746030947224179005484834526162840515309418746958827336249617595863597375449816258856576084939422792933962654935839769091199622156973276626443749049569392074902093327891646285779507468004095624896952410349743745991152823072040589838799095924475021273587209052941780416739282478057871780439902904858097226189457570320389861375205968963651841111277371025555179660462435733374830600703959146495808618695688665457384447395763521947628351189349134393556777202110103075369257388824118336757129397700464451111369733132637415590898737555121470317564527579438552245007815552737327349408334736978597467245890290632356609100043381599865282489936685860973575443070256502255292714169081720910831213512031079284598118536852353713671842816183474773433520103726333902162146551377509552216508134188401865654960619462257782225453861407323693589666241112944727434642415723741894361544128431206118498372723490090591116702260064176009834954066155857822720753479746726721493465271327428658133743690616637485036859780874905472277607950303780934231663482110888801373848076915280209919303603915363276987664437862970333173652689152674012205126453792463842014980404079407393512145634507911746081549220862041236340491734664549226811161694716907853235284623831999213047381251576521678917838780185031419068535193993430792371244111556741724473705021098588182957280688506348229523310790524736639166169153231033380353339477665361782939294243843673170748470189739005698885019093910782904036273337757857909294727913045331042158343088950372359357409292566162496269223287114305268622622933285630807354594920137513872309445057687000952535509969752474305235741281540583865172695818543589731094463407483313090391296800543444518687017735812137541624262936620216338875204792745891732310867298907467311339972955896984336018290525730081398453944168084463952956678705085130000830450239646668986597927452368314132032495112243320914016383677142318209401530298137841626452591668997770901809516679574563636742554908889092885685543295870061990042582139704517149385272615857661870624977532101034248900774162021955619045736775715013393642368823936583347875992599949615291763719074626329363837984395239875851503118698334240538362068711328428652032907548332968398813653615033976477902602671903886638808619025992790098297640295870225468189497925598928249629481041420347954978914905109784750908503013285377048441953875150720018342422197976089423594231787154187496973217265307202173500201914344956564059950095281856421006690757294258719411975769685578200332830064465679123984195057041434221709656208053810597233629867981609815961828299873237390690009797751154618611971920173667251585943605521369772231796875301521100274989484933435790463042925527406776844093064104719511418138428780664173606304196728852014054411298832431022348866138697569661061724751953007976047170701126298540130611018069873477760828098629237325281659535956146581196974309660666901103808798122631679372311762716733841716203448944961224511298322437113895992616893318192999517686814384129655852280711640534346243167288524541109181486934292176935878051056282631057340156772009300778898177215483423405629672122836779509154630759860723497465465128008800896863813960353527629673971148943706274387472062517490146070001398699844863254797235583987333013866217163958975756099186109974877795797640819142675871218816749865470674209990604573610720293971908815995740828756668937221874133790251864805352779801166048835744565919869524586694091009085573068709808019353733309689835401202121817796382559848580193078537648263044167110927782450922667826163641585765537858648557046970321553032757581626024703731421321452047789149312055364677509018541610664682884782071881548603319952415337857388304323909482113737271920369216972429524031091053283478872159829553917419683624118146214349553396594159159462188844292228081169844392092699736585353100725984918182096735710971025942476926425727331352075335269065576918959637398162031202757054066784205228420604605571250375148985469382673271255563479290179762955640659030243723642296678755347145135198237118428231206162254560887258414476073716803147201589483326150532832133548489528662241082858488264381767398033167417396499874654108622061395761815923614631951718084735911865048604247860718591167230973745626813969963016230381291453560323614191405310880311657872568084541146564468859386906569712480178887769713940213391650809547876427226413109701306837302061400422639574460692554549393312890231037926378272460055839605146107675040935537211365674348540496854384843684625928444664894690656631605513791012841789342413841006156005594962448646322432788483613515749451790032130639514849574393145122326766656461043400955151968265947874345595633443576092361406316081651880898560136226597627788387489592435592393646642042691452081215496765417622983664455374090342415076283751979713600694612310442009377061585466712158434657986657262762856113226228422310352817518336381987538815537814530739118448856562512789855528223322642228773461715383765713467086149060957687544610221156084180886535686893749033950474467012014740489093025037896231072255258280860983216150840707333162588224081905777383551354936999641788415225118317037808322918024870628642798014799905545481143003008962220462562128763441313490060628032841123541841551929020000168648562191745803132459530097721468606017128602390214857624528824193569550995092349807419934745650618093180238894263404288952242666032704473896458996465492052491385913362312512116746232410801354594475061317570876243723922236298177686151827677333555021524281571839685628277294649188906402782326353993134780251554196200105823014835895678660644520233316302068879821302088344996595546807422448312383689951716555765114065539350360923520249046654671462090620594117522588578921397156054870662646163226920306699407149133715306280798751800684095489415532590840543301691996684270200921436156946103057704396828139826994213462130861851790636279330773323424836201913515837715155925603998749610730394473216499054045580068752860732048684629065541916134264237678241723743283407741872113790103837115470863024902321742716131779381853295720634248238833032200202409188627273477834155675491114328200277532082490873134862068551150276722709408224573302349581924760520941124193386474976737961614084327997573930530744597962917337805417777148323309605059235319214996165240755277164644090056482799094856165052988964125857752110681163662438710569406013537463302156957571307305152490925470035014283009187524238593171783403231224180660592544427764356138266142323347200372140282779712531871387075604527049764071842974887014067892539712415359487012128612214152826901498102882115411054765977557047393046976403153366508773970916094280323787396634746453764308312909298941338420823399317789182492606218379735648289541310174473407552330481626785064570215349549611932033873292362869971629767168287731258780363739944008878535995210028392166428843685086509051715513742448891327117330402651621584651901014979350556428827858822031576130723571501841128451587536426705712547356590863614843562573605386371997726321741126930472160099266702123460249437892908764189743412924117273706503669023154347958575384063539166813717276703177215903484158791575757416924913905751558492746186770141120139774277125596085450230530391194010497687414599803117725901113000414911827021498284982912272234682743338057654162464631528807693129121378019395561933053400111635002163919924682944064459511893830235084315879995078220187585848731203970408881038905614475574316308261065740624002752918923548513040419439976288851828413944624292981401649262804968833525634638400615512363990732593610408153770496105447956978219676835744473305142998648242856555098754638629797149579153215907507735402697031238177453830247751275093136271771955690926042588551960974929417210943899488770569321244622875922965347343372886522904419662971545029094363973579466125891604377460448387445593082503474371372114238435835241161563580363653538454966039936207967102435085008181483530756707502494408161807779422964456123771369181768847059331795479764928584332148945412259361975637035221362202119703960682074638060639558566716259383923319593904059224726384534096314125290477795858271365610436703618207008855331172570210577610672274266238103993028767466369174839606552438396037258128242997286721276063660915090002082228838795408573204992193344805346361058812594391273439844095496402860216997313504419990812869256358945468165383857057407169567780356042971812704487872526026748382757595519933309862683926038900559026871770700492923637074397911613836163801557880500961009839577758067313634048344153638326348409290972026902065059977095232658872680162034051978650051828690717973663196772639879834900668197548125631232272087114771809732294029645059870317436151586630886289330399767717583687432658513216366989769672545269770210295095934364387961442572667917842959438987462817009176982535746917827682864876011762004613057200189821882060023651509980038522800202141853309081055854293114938120554218256773932388335388182721449745876814997646297876661129559892723991835433174085291420224936640538407273249626627536101999307949435105615148686533567361673831101962016934144661580748211315400657580045713981436421526733786036999695443843163475383027635184421250275466430282940606372907912254229764090949590387750166696765623784106912958650619340147678607200977620162775875250307491633861341036175907458972227925189313999544955073288960228668482114134078932094149441700655668104997696599046204875506872821722917139557906397111915184491317541239094683282119131261016598166186815735928473740592825798329929917007159596382829749109238418311049857777296795753576946806230642675798921716878485667940621046946675940877078197058040625255866613177753088541328015312135196516491146220074485387023968826416763602037132657865041208714948063303493678682836477715055844674092182943350621915155094119681626888336534549162873636368681918059535386207690844771381491205157314551462468963025275740636832480206993698475081585527280271855784872961037432484863832072234012698013854308471529501345571529562886229585157974835227823896551771802501564178920840189146930028492311121058208281011997263647636209998861964403434251249680552809482129242318576014495217500906275340061935725132606701666470165194350705830632050059835925406271339883523601871744375300502020571402106891811938628699105521285164837888633729311676762564620349645392198910069712652759124925897899312328620337935220112873595386575406701618775181629408507125904105402508619507075037094435963649300914316568308623129616024958170956145624375829421410383761691426599298683609108963955550467504518223333136994991027415203464293085008608360044981748312573375531844348220620880619966715519146058788972478992831401560579750617383587467944318197029678011237047061142481739916153094873233274692350400417064267292454259695898537345558556964024674489336254195360556792349797828785251689184876500843250378501748734316276614537464556219990480974425746426982923394728315644635000114446802442969293855886829968451030714516234472380317679146335837948555485070408636051584389128147501315353470203308542757952937151519790180088119932126275081099461595908929128028501019302488178887122564967869323806981621212161603620021445603126006043487442054952169801373869566700968720980486168393304823822408335954783740747519723199161571323817207224574961519950479690425880964823491378725896188506894192076927738640946453785870948897076293247983299379663308991496176633139617069034362565191578520928219589024102917231289572881129677117994340896466635327210964828194863519138208090077368884690783608902736972526870934828529443811796441534059643380067718584442038403273666234072013688859126317657766099244676632214818165078521862134517027738656825150311858826818830428533558431998575017097609292046167540234689735458982058461559048341631837428913144316724573465643087480883290455655474058049140935659993589735081157561388981570276832239632017036208400225765127408757103764846465863281002744383545727564352611476994770552159762514145586754007251678495762712100400169103397045786851936839521391205389180473840751561961139128535801245394016063064213480923173631038623610653644956133337557743743278158916716845673106973118697111628022357844224725236827893429665598707902507470345756477783440719533102729383360126649181921865860194353099616912627608734912177874191902043759280207627489240061065851400065411567345122685557737175623836588114105978213700527102741374136791882278282039685086884735235587102550379189907110011987960175779984391568731047595563983794457527881714017842139143756623379394858034362185345001729994339779168133648357037722091926908245923873211571900862852747828592460851153791723822046076554921375278045348775572732566103409285151203288174172698474849915723975606383664585079945420360242153024194697287925200695836673866200487434420300580285316207623186655361523110190332103684079938868305988356231875626424942950115421371046108818177376336932048977913089235498077736428908064899087586265681859099496661926503807960779772866417734566709626009274555778506280577910318557124376091622464295083030122607748739611549490468886598122886248694470847989280898521287684067344876415472125933298986365835824496245056753768400618461639976923637796170173900469640318814336421663924666162666767135671333741274371516003709628968694626426853349506660241094336739634317895711313425194770268464740387367383206280980626478216864322377316473286782478155852462607233569978607480384746178822475022371188366205060469631823105654543944069572187312823018605198447884614214092422112196693514953552119875246536298473830304000746619080288656370592658909835594013848213935829653281506542481581639790324442854698379212816526407573252242069350963489396167386568037452084790724042244944725984895864247542617576470945493025870356460061568983428331141095458142348820273625260757146592528157302893809656619932688200981788839150897493927609347822201770353306585804879715239351342080128091443744553505037398799370585519697335009399031523938835092967497306894646520622199480144639665247022398051518173242637557736307536972161196966270785477386601299094636776802164816299981902646610033550201409313364776313746385023735806289646203836030643535223010212700873405429350176585447152726329055862005115316271748179468632934940596839777579477020472448552125886699874959380994539409183709610165712961433991072947274908433843771025309151475197339800450834059631908697131909194329349380792957414238141880009893822726953766555754933849844423504490519162398720256858999601520702210623877926526684879011653832414223747598979363095888423289638294361876465763855025974437284618919339840100830690174752712203242541840958273806246795397639630994392442938837845097474474180601862465301270225177176888241806256861065059991174717572008870491583311675050685295459051413319636308978701257065563926594318018669745343628253705995454213885330448281337938476575048857215368844047199784630475871608114615033353139189638792510893914156684241107152620656846695669106280159807003803230167711357456183423975015540241571415034393681164347169716368990779663153965606363079894123883755500472954214454431917322522281016363056271458425245102347072444534516931120653322360908670713283944160297302950297679005779963178183378394183287688433398241442793694915680817144300088942141043288583733797537687906563604146559329995339492821081143635225048936520539465607696733115578967984522573711881588623912685571353765086142875587972176295542030404278254956653281765242301466400460905038914393500181227778537351011932222474367495334199846221491223046142314680555023785900448504466743272190764160122827941144663396287427991995242767010393842520020522188996723048086886434065704430971235429762276175068328581147080461472412951321588192992089296565745729538807063385876872333871574974103765038937518442579362794951504851727136536186036109636290584468574607669977353004260569816141025892886165178306838937937667786982471391515523305296637142917570057773840639846154553541101018412526431093877602377200030195078833798494093631889979813480462380427790700022390245432924256716564730259951750400700005238109677044232146293210484138836848178424095063991934808986870976047959447171671350653221581909163252049702337031469718930771017694499407364636821806080891145883122698330803305985642865833347535488552863549667776451408792366948079668492963083770127916152962417979504853938947075744804923384977504085946349788672015512537547578617696403012705603936398713281067322368341142508799125967506099699840023919941857249224227956825690972035539187286410966513861121368330093927206993880537992845967075372506084822426561448166802289421720638609465686701970429561434852849813675167495946443221114713115342127472130250392560686552235426970925058873912576523079363813631553642037047530314499128469469972617211728818822642662885567202104877030242755247003631207090467090630186603178932685893361900477735507246216791334963106288988184310086166096015525334564285790817132655771821932489954245655680107603069645359116142427633728858515950176705559015035799915369268642355223095045728273628473542167040136417393450074145421066968938008372651010204807629779475531448593481260317545404285280196853781949364813451332699883564225463949978221103167169296554637190500423489502668567131521426346348903688925646570410032497008567152426217158863741759571585896334496727849876075434350896387916991467006147364534033167623455534646057295250242929173267480839410136858647816575656878732880030652281323828438978262257738179636777573935637766620702636736498730286682671790863906642106787074404366368733925387422961873934996101040706709578104051276633438287087507477272295191617259417678517424649904993479722595024137829656637210603643283531509002356681170477764629813055551296220996848681437013994455421939970529219153428118205203984288984205900742895813514600463692364271019256010785957863260194792219393704118015772630766400778894067804308468125217366970381613980765181267244937582020111920662476234900347730693797930273924534876702716491836970064443694589079550978636433117754890382858409802605880372600814604356522271652281951473461670447570777364576043807942164542333626778448173815909163410398265072396076156238074099438347416773860799156579255886233358168534669647196884166526000904065582091757580918980945102535670834886063399611911170814382463895824593709270390205315575391708548665064484775812793136868559592679904656716057515880876338765175720211203749605307384258365724375250601389004908504324420407609732292443551497430991738560021384805673619610145239436393320656061548324680083268099111434639836717995341016405506921024381407240047373644480096452617508853414068851755080131084144910515468527617245133820388025187463903815852653929299362818887298092255966231075757654195269750957554322088495619225036287684724311490621453051134604015067338977815718765356944334092993417524241815861775071856297790476557290058485653169157680416086462333953673281758518755657066989346180002545426031896868267341915648801516492383753471303841052810136145680030484674436949575018231828366482504815732706910460230387184452317825597986034901835606823392334735040507136577462848686673180656337205391588534257286588114748870252450250954623657178587851478999137036406677673043106501391501346693431943623653284110284537902365032732659569928149156857550504126618378083599131499299895108931169894147454719736095000088832378520613781848967840064370946214199349448719496186091027325791285860402536679554624216294734150519305905686842374659142224252162455180050248568915822124516017371813105591344828201146342555486811596736854183799198921996776450862930475522238907711135782919905498375118107714951523276012087584234595872903504648840325816153221353329403104755578553389354971748305872482822153932960913491166689953719587576621547209201163363918240119149866559850073256908354281888911254834955604347358950063132420437206877372190693648141782854376171553730739150902281486274282496076041232232332157264638885716795180644522097562232866642725691095451463994580869382297697580759177476556295356127433568182753288993276574034586884296482801884484653395991715782671762442728374681657996686631309537903057683471127782969801734660362478091388384915513257616622388170453863388878529239459398038513651268832553680472971581303151000372431958200171755805290213809055782869314235454587276891477492923576153207131788857837505342550683251640245180242015937694085272905631715323707936230457027793250174458494776370499412717565113456924867337658750616294823152093253717937836494602780643092797050631195105320312819854302148353104135125137030368746880282648265835486543227953483581204617914298737079551558741872966483349619899426683930376388915792954619738131034968444225255894306644812772144698669540095674377993703851309762603215695146363429742096155135192796763672868219093376205666467525829495172289119426954561372600871943083958626652672563709163800524711289396349267775038640813883196504751868035018846265883034675772840000786194816821822448284191539522131224910755220470239131675928714133847945152129413264214026352454661292273845852216753374820501023172990940632294640984338414436168249542876055747560519505794323693607217826371400399413547490494502039439968669813061961459279666827944383813084631782123969114116889656619432747544893504186254492883684748414316529316282194085384834781321285583709987406069024734596865660354225149105680738892616232914168870131025480830303333417775195484080584009838145027426028008635458966075064698754621602797190278913583515402988636093822773681017458315857019827306450922993507666201057227237153488344474996008695667840546451543149716656483768684370007788945242159462807270061274896110501464691211007306837551888689636407546785148125563313933480777911733649748393801512271238494734616165145033349865516138021843886561183840371765350847869678500558064663712303912349309761933126992327370154196562561470973657797733412238003925801515922303784913833252518859301995007852358005872271850332554384382911978198327745871570516904715777661889686672906893486610663527062263102882168494741496310381686117685816469462808861281239914312811047700304464730263836246844964618362040430251588377645437083527496981283608391805415777766338381107465983586814938125001892308752358249699149909449460321044619575766635528168630299443479371845315457247013666421127510208720544396110808188200339771112945399759090484306459255691928213872424588249227552108561858006034238125313723188077193540906046768235434004818194912891389133487548660293696426390749737488533121459412722515947793331114795274579515691038429682265050217032927020125236563174983957168182441758879346739265177880203552866733959760013562895094264798506978776791481183203346128301689768450351654987923740498898175754550926251303385286993745918954973179397087543498623022999347549772983203464497898817392429260025517543035481728943752980741293020693324217912096876196067409723277972707610889195864672441836896191267576457974554157396331816989169230622987444736733096197431770669313355633040181135272853694354376014666403291981605109595019827242248203561244664838160334161764015060093551545296076774138524243420493139227214949457408057429892744030460442860437709063686878296728009882585406062225474024045949440498527790054636902314043678093784870917455885509283738437845450405026077233994168949146034471877922521947105902403558912473278615305062312334480523483817209254607284144690768439759093913207008200918961906433046058532387511953177997350594920018892243508123642094024267921701286178856657845466281474076736310279425124004566093845713139283026438829365545033419478312983386263059733281841419493655094611722652139667244741739517960470224250510640490207717583084851399323232556121438014786974019727395336917657136139440132166552679572148771083926472821630975630437724753579510542966070580031260425250879303467579776715921570108521061654075815514753200103545460610453604259446315325984759918996645415783328643076850562081422167003996948073090458711234354292449355058671125815372339686292498028084033933929279025708249592836123593242411253268007761369568779432236486494900517843823598733656009011823963810468064811753489351189109424708525554382834132999783088477016210527142652821014205246968966916306246649490253667721402278804199791426150218404422978914500881654363754791507048045129991057731267507598217295740993822321745943831886276519250129871464134548353799939989347006935466445021670573568470018593160877691961084139616682809843921818142541636219677776362227432414455774988120035341006682712912018520474331260393337868814748659884826255060597202198753383934039135821350916236905475249410548923388156127820297647368689148773158367930250114955615312395578438620385639560147694073577486909331488388688743241510150570905194785822618433259583444381584116643855548249159451959486819902942600686659524669218017801818189251471598193393546456042768608912419934247181977911792879792615838656078071072971921259703235732047506807078228528416876298924277232723942062835770964646470772679788626151793785582320715243500518803209532464842839610537541916889367516256507871001724621891204612793887550324471598277371446575133966611602407478988043990981288649168548111995484538505163856175334863567991392538303176023090941357679085555315603258841554101790555130743508813361282620985865141080326974158134165829354863313143894540104298783750073369311757576093659912190903395318713039772913561762851755541061255310046659010353966858001574921579401614804782356673573929555515020067346049520785852538317669417429191760861731052015106238599331164144890088474628643419760273549051982901557312184485712843324063867099289517725299767576818182409565916967928024166963776992877191291565039793188310766110513102309526306445083924799379466926819396405422780768753051510979122072803679128415950842358336115806227884685615648336184523065744212049512755094456067835054827881708497232569713929464246858803512810280576548391664417708565139129248966236637527787663977434100475752490609355267708832729560502548025723845503918891619490893261853491966180649884532835919149433196535843313005623464784843863401776721001173034870128666196470245938434662151266009830666675275567723364902989745838408228579262826756777936985702043366105660973497416562919828338530994107432743540786459161441304622844721640056167425152318939500481691258777421239191087058159220201845163096540900534173415765157107922574667704477007897045807126707691509792712590923737090084669635572724291600730665951346102555900025998020357996355071167217391001958026940205426558246721831495691011829108191326631678486609215148925790898772304383480577585797225324329945629359955326642929670858568268272071938681093992468966538073027753666667238471502727031513581573493854196277671419572733065616585939170010485016376498184394397650800420710797375028520940806629645309951062010888599477880771667706051973166379119124925546785941134638124995982329140462841913186171236489918817286027357546684371171389351675109778187824160210696556265253816733489060985933127117127230720058537844148424859469971821785521447313730663616014390476020298070090146251121238970802673780640116514927919702918033652407418531713415442288228825267614424948520437275718726124388595589346670085467249601696902269483749538745513486789415441962405201904407807467955121933403204738325722287857502692544792427053949684146417132226854282570048287365780439943020261785298484125247064826776297078434248172809021078838235056589284917465136460508468823974207313500011263212406185800138174084802467991574310598756853743160612567411396637837635147834909172693169780987121807626117831473998788902827999874655276388911224278277727747802052721386835870211491115414514574025808922465396637370853574145671492874880532807369868533194937585988706023326490158585186490890632465388563584462536883309180317528741024594113623657487877267946986684157487915305798071028794554074698609043998249461740226085399929151817787224144248080548087668962694842459162891838461377855430278240060226276124144034490486034623106513821961727200713951401831699193790235091143055852910185245528389285695516085560028785363073244353423638564395631493467133517547177106300243176513585648980794246591530341094890418803711453697153226239756672254797049371012714034697077174105401056787743664772495541616579400082955040622351028901704289249632822352128359238908253495966755360798599043403517285557512435000934271087351854253308438505101983932578537101414217640940899976207565292386567300332734940142719744889053288573878058837505841572946619488952788225772937304589558221514184179259925804237666869750444114608335680104350895692185703453573688071278110928962440815556539746565584710340055908715002731944595539942666719875606108142849524844566525874625773037353786414366777821006626938148387746752811872114208997812525509471216610676801883164043042256973083134555076411409851874584419377730699624656328102067311162214443982328774789633810269765246118121559970251580916109344196143596793715180999441764711063285558117366111008838939367756685626297380781244712856630446191377763428486688797410971965978531522748807814540153278803244494496752214969273510589736479346943288300236542051243642431701215283590594340511268190367176281808021645005396054595334069671539823401151379820011895118293708595457072894943698415733475865681997444526285867921323877179227529663802702376346816528444445588408218955849837236389763191261677419437688742966497740502468224030952024406264311249726074054873806401653540640260104277038108925707473240991357535802140767320483436312459219728820277045846776218404489030145854754485970331174744706295254244763467614535333915741382087480946178345539033487851984687345570830705182900144875863585902406897491751853074459157529849525832495009637514361853935811301899889945023147022712929164286350337962418776912747510542931490072697929396557882452696832760975457303954802308128900441071649622559531364023148877415316538309911734590968415623603020664445239465474829868782900537443987735204389038914496742131103995816905037793861715649860317107231714263673421542184077327564827539288448756545074300093321390454060288722379358409009721689425157741425007628522045051043331519063078202032698157565416545149524129651041952229675103553830378705823540924157199549245729924979807189006983349621583977209255348462205985823852728786207972667781647500428050184680360975592389606773514433920640527074234926970439090239740710511863088810470067858411691272476392564344788430174808509785160990611520726816027169581671967486392934214095718499464863456992082155074529377255733814942918257634386577479025142582262736539083532134428411682889624348856100351640437868168771685208334628268226030164764702601193193791247011346412828718853894634786891611557609629160381540671919299946313344284114923923692304047938049647900804442142044148425023473603125772698447547223736423926400830694970278329127703225648619607143955657913944619101544078949709230081879120910423118046548270017821310115590597999966446060779310439336944584264160961864723392705629411541388879286025440011835785235766517967216230926997910702017206245107166192714718022040411814349308014314103686432986092271861628497762560786286455073908277792447159347153708678868855434595389710385060351042392563554043707165977526665621095262393899901069916726136978379497713392505689767891768190918324107402167557640564387299974591424773625678589683194046695320426422240693028869686455356589852785578416019757417455107618032067470615934631487038363626879601855019656437156963554017758613110468977886308055222163919119685202925904858008548059929015024732970992810187016426623040151882153394908440188166409641378247196920971738377781504835313663898600699254350097860477307945464688792490177497750305517787107269281551929162228166974369326883792948838872985840203068615502986044699857774909245323613496291579763664099457816495445097527083138239005014360148202782754409775779989646931178544280134748397345852736300064037806617156958858262901028603541176644226550655446430165291512641971606185656626112355460125405178455310826662880918960310737948433818584734670849548061245093593106307156907447887051721075976853863907289545646082991449539731749333741032666687208990855573797598278715690043850292378313511032202856277248037088769380570668791540632068816531595053197218601294710059407281434703580392728934878904403684208088529673987029170713312704681569510548045384845972471187495076776937983595315917117261434629519054903573172296458091055442212383138324490319400297253758556459713397289890013658119206069963425148506711448686274883178199300066668294378139380169608694838580002240675159028947201160203575637960705237613384304739097766928567418797548934298698193834761443703932633509783700792628162131882382513256564093749892884679281958725341632155620897662196881269370018173876088173621961621164154954978871948949368429066255191119992551769610540660759948536146446108066077936587857841122811018165301071745356658787188724586575126286938119936534268668426757601899799847937627238730187443232997621644753928349161880349409273869521462889707587135558215698372450841726552163243586414862077969873099390424821468870043240153954101686367692193452907560535271290794912938246922092552409321115979973355128391210873347687475697619243918748390316262413739712846884775344763379179588772017103311643166716756070242154097196660549591937844748385901467705589727086788565571702134280441418394206817649821479208658276756858192509670504072423375125154054419011254122475574395974285166079899930502067342435280787458041746172950536513863656947408893497142909431609766844639768409250715399086281581485645564771754355026719243518972734272627550302122882602192839346395667769642632951360845869802756017538470649040714966978301709660809927825384377070226072722854923663477393380155703419877098024563428850287669399798399632264199677042342610976254649936419616466224035177751439356118681567892205854851690397217205827257991396875343538990979378813312695718863871624667993063924639577268313924198699475451927145319032257049274732626863538940204409449998340082932682241491983331149374547140634507176314418257659527130868886724571883498965668221318175414527657888021700663923763105635222586511763405047231458174725526552602034750543482288975102855984436924252948447747090235420930325164505700009018947604833663920730587920737203552452614926432534880643428787467028522451018908849542765278284647950779788884398300338289932635612507227597397947741113340256963315145369527451047089436164823847667524010935234246287259650207136874795099865497752398453194423485183784153900452521864350461079941421394487637410863533941929414998588171956828914266048188703220263505893546220163517705083116542689031657887888322176917952595118769170690659672179040284945677318067433191146462643769897875620857880382529649227599782005482762066854259733123516515758390622622158898893891934741256594338973444642327885790280613016781752780405756043473245927861157269558962535773801761631508715684907111152544752541027694728137028507937331663381362854499645221447668560415102579460673900779750484470192303116787753415489631848656050115353449392243500727425624157770767816247586828286770998538621780788898704269304330046566372436092123615876253129467700539253897614618606071598814151879616613916883363932425773370296335336841107158948159424821062515615930280123596792610398707051213682241687430315160911757925745276118162216784880590062370535396446835001791135764827362096714513673402274441045949476680975480493320700735192360735284709129982685951360814628562646787333258367802638726274599868697547950212939082880519619587537162597822094077090771338583954048598964112003104454033702661031221370601282897792300399839900503921037046779371078373733477763016470190370769254122940133611020123248014371624921319018857806519404297751575602416578986843424080926439046496915351888680592688946720563869230541445409968082261843457170653511435198654354985559231931505854001625990616153237461691127705705746229551647390362078457455254278203551498795265616977968826190387964584142355750152254947863478606343494351502537167141647661582207648204421691210721100082987222342536622541903085674296598833245359045138787078893247588024619706357670438705102769813084891841204793498859714236472513903826592359637831933646437578913956144734975285159848874109265268939842357035235356721331628328917017104933098485968052056198252390604456822591194060348416403096005772222973299415260826148422485280842565353237026665414458997382622672535410204280641040511542575372702548412753955817076612806707148131845952116872006013590946038646853662032508243753374758627032765124889797345952736655928941646776802728448269380419254940254126129952831207515682103535828904992414457237363199549151064822302745487309770700498855215616329361703501335498844505141855147283648416427900006617321377521595184298300573720917533917539106239078386068295840210217681840812378244362595698572837570282864004239000060420216954858031334252508398680871969045557722466203184579379110604147463359745393456397522258579673048795498956168923432876435217886337332511695214672434358680507563663644698988137859463665034980273712708264224044896636852208071076133993595915994672086011085718810550851376387356381182489004951188875819987213959484112573965195416680585997789743573807935125517521604375951533269667777155137017480391269688783718976524651333461365399873814982477323312896557587051768622430519359155029450934877192874635748116908340087725876954760622391860815181884301699524320984955087729627750542089169910005611765890008960926234440252518195812837594270037539670005620053360409027493560273367305995594345194347782475494848580192960846488539942039310392367497465591068132958016662747906802910075828543292991087708489407133988425158852722490983833810952231059792669538103636308963173724607874928503411231760521139860284427432308152414481867437016827054237105802880876977023677392615148945184504367691381241866993829543585235644237586579709515393383494977307707239887881470858105236020006419518875390959024803316003930844871135641416245128354894839582665457403748456238568160337312921069011887337743569274362978889781793080916918846544932733535984024143827180303536666288673690893674433668115321158449643522083217346933821098967455751459704501379376917840587812978865718021534324859296818587938600213095077193687275304505076108170176548625658361320877667830456498974032270757619966549963802233610008281417887955569057826149643154241610923663243198935384373877527468669654787795665064121235369461174015907960077837415822036208079832417568995137798320264721706841230691196302941955388532022979186073944599497668244197698975539416271461209398481349082166334628339905871600842388542461095339749370127088307255885597047787241762623773643770694374126050965306479198887320548692804524422853926607352997793376562013048968763241452446799459921340813900030961086233698060754905068643775105039611959964714522867472435994801849806557194002523433156951463550585216979304788689875803506864639195144312728190607026499170737490898538298946708823669884370142209648530278892201846455728999414522316372882978356045407604382255134383750945723821648321577976806194838220640173183095451693974081448158267343961023055645165927786138145791578566146515757785735282453707396855414544234022082322279470281395679149755162721775886670335819187654946290254545402877263816305373223452718281673636329432743880745568794759536085237256642677559391585711306187017459348692817578235356098615451708583348748058644664182533247432297188943771988141497639697766050111619865505300382019918311622844305130213160466583122534603589365514825860434679136680030570207461275851872690746624057813331958845998962117717882838229876557341068475654198321803342672659910945745678757572148298691963161493925484116681918963860806199302076692965475288658711338930339508153714132382418167795758067726775082952881813875301443806787794009133148120217025138702968023465647156842006125302064211129710239924132753210600518481250084343592733277264103128630808899561714068457128109300864240896815512509444638538047427716660343610024732380226093286084255627989022307748848133367561231242839209781819621513677706573683825900482408960957969966538428232691622899235027452729331728431632023762988862738839662232032194554328814337857013230853052483508651419812117303367941035537023536445358483022251185925161199800368098497669222471509481529183432422245988949043655411411955843025830553452750423823808287907694223254153047011518428709308540868448779587109954852519808400174054411883463725557505268147942983942627185113264315020577556315394137915984589681142813321321245815613055184645823327050230731193808519531775826170904832142847016764022817891231882497070327490897057041019053121459914678439573685684804346796432007758407367814197748956303950104273570189906550371808866548025811339260971297814092398271810744666942939785503712764781503123993104704862473126081974481222264371007948395546688960119758256537335825014485555381650743533406923323629128475492263499080879164441293244009017194268516429658171397342160384936007246530958453001235605296335657519236865809550597960412207365606661178270997087753534584009624184543465019545941710000073635513158655417835070876637254147858735524909521133614462060498819297513095367262317517191363213747989219619814324008058186011746638460955980174662102087767225830744168398429669476068876480907207785141136357821421598361450534944434340099423011280721069326563017585216541610261600132716133498443098632228584241876991447859190346071294655130956057120416323921766696832943919648904160230639052151699243201510838340961444192689718673078742193410928900417198072327388713715032248492051334338551374468725751801802695808215776379389795952420273069486759342800751706266842970346586860839793624377628401674048045191309471730791083858991178731542109551075103472744457272074520593486934094037065728077075080998779526486753684213730363075338262177294170759982133531992355904070885196407748474259088248229938722386518753863468766724681115148861531706671783370932568713656818248947918652973829553092444029206574404472988721816568322485182234395581984409943877664760651001960642584597629942385395487511966850140237569508886106873917353333094405519869755830311641831595567983318014687514335586185665852618341540150634965087517564319313887539052578861255649235154194216678439504502133645072348607924043519641264876678666285254623335018743296893141285697405623182823774057598559766760481454578637236826688192000816658318944162983292195107144440876054814319525015354278337810028572060387800153168310723959678591553893526601495362107077102108463966063408330964429647434321673878308308286970992842866453095228947285353849558830393784598680483469996545783618946725718455236392140621348208328795600637691618964494172665727115624623098877389752215797111756356570098190451322943568288403921839513332820788428388706398054281143133620464847157069953683637505909045849138747898594885414774198895490090508252472390768594980890275012075471202819786598008371877105940421051662339089440578758675719892954525192503097018806664195310859955635751254955355588277597575651594499662697500055338292532349382472968959248679119864493337296786886166461706462443633562872798392994655143650805790276036590948927339438868511889047977514299471598137004758978634835441342227450072250157816849222911720948377362968588934951228746101907223575273656996587512762687836210271896163533697764334269588289507810407485031539989115741015124518846595537810912426068393814753191691742250370632773144770385230237719731519255341563443806483281786103855638914844331352443749165696001492960587716231838446386471221066755611156895810360222008657936835485843260407109874294140595641247920312227942241535880023747963995858456489022273556693984735914137766253197203877144019875818402365246394682823143814949983692244740232658453230413034264986149727822723324911488886214568819049031955146292579606507362054048705952842801213988699967244650411754329849297980916392953793165935419144477916677776766080568819166752437796947776390191744263100196411061582646419525375706841618542571171508052790482985052108265265365218741019181783145557445005674636724111253418750585038948192676940371036803484535186444385419486004545589595095153116674077310139465667069602445671498028182215180250152272149545283770123340983178509335666368917520896421470116667869166833418422227748845348239472457559367470690528625905784972203316082560486514442372518997314012039332325281593289689282952998540999633879173944894630176970989394926011283316166664672288346813850492256651907705258365680492041604042169219507886117976813276576177463747600927026353845376075040128580195210042924284891189874496833701098408508140312221998931965526962809968542498720480966545405753747097983334057270562080678965713701630717367911369342767290457076596021004431289099162742587398889841087991147111215638881616661680396178103498334359484381380073797570401074088990311183581932528313494828644906831625540320660673309101136841029196089506513360525132321122830674358061876732147915204437473027674135664109057953834394486290749399311200290475974989968165026620389483517129956831918965293708766695986015053892182621536015294979500127746135702456712003395954377627064709528587124538669325190300722944453467396661662742866422846956843118081050167370548308521442786312400062739598082162509155863737881744998751176097766481655681844494835896717949189368061977863283062290265507030491205219463163532680517464533680224848053542937376132982755988952396326954963173313308206040003060379197179252464035029210398086394847199832480815902657500939264376578551467013901695377509308120645405384878521587238638626536364492252617813187818781134443194153832824562788153783708432608074234669962620620204511030838443777014567453324679773946550357754793755776285501009573624598236416464235145598532572021340349194773319973104043810675994868061011946626356170764292676708681843326477524838720381676170915624473987511957511060272876320383798008730478981942793557742586597178888057170860815867478506743269828964164237942901715914072797132021532880167404571306781313920678318642761695123765263155645135892389404568783607122021993395339620881064242994295706708750002087445443012067536041672054275743714025859647491353028388412095813052243355670986140135520125602656202748572841966685933059432849794652519349012452841135408070502613461912756992994074664874337355663363938653793364194526865654737996261650403511863443992099856300417306827790400113902049545569319016435582519398694561785308215057405896220467239361209153584164586835471389173750977744740235299031142193469029399157215488794313729340804523573407140997127139027498638698135400686067152341077022261882341535355149351310726672172048156096669346347122939063683865785034797535373412161681448602496687616816753995516446909928273367841266500409392368412188570768760853564201081281825816228971728902727879761617012974374930217369098661820024432212324405254132185801899109950266447197896312010005084238478301347389368542558948234151306480720461780223315748451663648004284226642560503988042946064945399365695426495563358445798343199289481142415786939407941990299599563310647846268243621267466056582885421374204720216488175668778448589950287586058638517979746213700077269046900245825429479929058565618257555869477629430002574229526778620168186113334798562977457424959035445574688288592242903957478307760132441034571718511506036849578214632718542490864782476058385307026537886798345353640815668532661789383390797246153215484631833387600939847703286330054667946381921510763365019301732411141721865242179822315880283626804058800090110316229106879518222688479991982338833894372901473177706401014930894642934829767902166147513515256577133094985118653623132972160156079575046599693518942668181507746596387409380627306534807887851686463603658831273703576067478230884045509260914738023155221625833282663388574896378580381191565831971957180635123221539904540892019919677662017378831840995110255983380244326783080527980385431721144805118407289117849129511685573901050568969113511825592141510049693890618326998770582328349743484821827072770505601287679818687934337449210517489641211067773378091722848453688632015061585671166523279990826749837801182815980694443175590426591852118937076330933402390291005902361531184825267588014591570127012551823621067784356375185911139165651534034659255111543817282093891414776971801883561042033090023076014064612858455381412299812374062354733657548439626655983081188964998190619297268061789968876508735135114358582909816933266868501510713938197330610712073484815483227297504747827882832779067034230786929889894462891168366425176316149181590698491003235584783820418803262631980247207856181519705742442112699770535504108414004976457370766027697876835614803723194436472006496442833725363712096754915788356453506501618482434736360659536626340728872994839666397661899101791132508068891350766352262603292131209280399515290572217657652132234044522321341553782105594846497917818402105217439564167479351239165990045724469026308187798177729462509557600260481694090271368542679050260568946556050409030480093072003071859615339146060247969826940274586006984060137782899093759929246187414563732662119668302408339613049394616384185827818185249967452650459175178146681120778399147190433962975341213488939242165203789980870671642346691971736714537938641518751269824802054029549930265837772146791398957413951813856267898165223686052232503373796724829695280228025853781147097128334111206315470876731228128283747331984374495797781210956470033399287813211348581917227435046404605737980229773493338640052809030573577811185797702848720366529038192824547505121152006738241133847809689603611473914927485845338839223212284056477942203718716688286142470551668249089141316708944023998105038105453161048436707204007996961845796562097147055270752159003613009227105112272570906913523259166375259994957471265277250666937363502238702033066082622156305835794190171826396353386974437103219601172686383072537101337975999830457409026849208422365403520635986277637119810004740673189549406291006244011635510326895531940248556673924443433199349070058888764962467156425240907946401345495686709593048568721146598460544129100506716997959373491485997827362736522750031384368782597590130975425156312748679908782330665738912853614294958356562363953113915578768871003807170655238034811679742581379873150752733314944927877350796821899872222455979139485225244891125921390871251867683415709757983217055401300907473560196429751775657254574729051167666150278270512740845123555793395803005282570897614310667166611966593086636099322195416064038979882390457103482153238867934088059622485841320823059913984608847977598006333484231962189267130183569753946882695140428039279992128741481551765855826411819775057138604789976762594537823555412014077464500782545345228553444996262920733861219065685265233295052911139111689462090788714160783296382281340190802111001603196806502073411423767853936337625587418796438082438264917445933163750727115172825908353736301990053558552316532268372991805732837684735298524833829592463555801586788808368119249192601403472929995587105574710747111160252290554696646990514922726749812060867690485549602928985653868293849378532923750245797034862677671364520289944855437940034531020816784691320168976953820466660273663334387380353127795533494274330220960932071080361697935044601022264750120216803661114933114656612536995036286201136769182413317850135622806629358254839779258338057084729409847148335237254715035168195492654472807996051892018618318793584857823808547015496018233798123281542922025181344000916421609437152110115690035206629475424879756832389797678023579665580419553675245048662886457256683218599909680928562153342342862998445910315067838576748821636724768387029145596528530420958235721864620784357948126305763892623086207362769767407468384872381814215572632076953804592482512416745308532601034531011354147315366506179328539368583895323783892552845491771751727736035403399255612725349828724285649403033319307641962328213035929746805229711877509507482134013054927216149934868579615349151998146563032626408869326178280515516999929582541252616893833196838317722563734660116430935484299603644307003830268969769600190984558134497828956738992021325923622144872119910797441719822863947523687191422293886730815255785448738752103521030595851222881173686862229414071909980328293870511378556191150008839041880053463555712840645991410671484117202633554354442313549246099766821295861588853891489346256860992578336222183259663027985344633149264409774466098371800514831732648200848555602191296205923950644359620595741288228824120730762013126179503085902093720956827228014055311144634272147221932675122481787586851048402534933543642488900470505251805458750912090896372702797644883054823611078013140789247828425133875330751449104757453057123142087595767345703418600744289645813762743516815637815837203714969048919161406586885522258565998265994908294057526068188753230799473947588297722219328037804524299751371570532853729842302325049301389247240210365770021932074584162409636681716926834463900762674192373244695398669449541738582040923485111614599122342715526776402832585776401185981729090445979501844418449271398679457482529692594162710242257010663467083624748906597930654247228210004834420706044840006302175227451635378631063343024844255706998165373982742988431197336967582055204902405131920654232887437231550844511700517777982546832490174452345603277744480573762366933664710178840138733149030187559554109491056534820963313266274795189316000828730997343796529509589755422330626817243935181232542161474300840551642523879714838000412722079542288005193081602180620242806111089502095901438893316434693972056692709592102620352198029150764482697474812993226962575518342676176939029130829237071656525190950642907362170582403792393965651934087609948596285761063680726811447471305187823701704359299970795955751707150104981828946981381258243339079059519297354219470186699074382804061411503875721483632940986587232993437070724197768119265072712631657652431727679406798015620023441248307049694869421652955847058133278411741168893336056981227961367065336441589586837910647986911558282372076719427847804826775089419779548572151416676540875534034142798566133558695609750221437882864121814912966470943477219929423909382509355116272947781996239499669445845541595538077550735375593468796758108540016350361361884319749430399634062426571388164948930701461385637529887045862266823983896174844830929999565658381577511603582289730291290543221120075360352806125368991189285034436780370617077298286560548019149227626679609512008538361214568894853020029983911618784574127121899965973155739497308222971812561241084867744581479291677115370775199167587671792806676177780951588110432866148642203733129406561929131709641061931859436237403366768922540774653830817905277437674782474970110278436993580622964462322167743551333944495275483418252416736463993253211697060840771449200035817942160792455367610031473922179365747605509637368634676616344611208917890962172050572281411370339982612608979477571584459334186904912440985238772973848690350124910012600786680669924599552371156479928636714481947565687658081987950308432381446608738406673284539968190165947680484962850603230453785080662064058482246280031664194597798264092471706524354275020848189220252815405443650213845323118664780176865448051548896298915386694155108119027514584440016364684559841733889158426154262139832614595578407750776090551295685144035086774926028660534993476098276983904472133933736412787353696457807035889770279616585673246112647365444367220660407011147709421120214422779038480724529189994830752897868916347063394404825803852437947444053255648408858049371891644834609059327824870715672878532651038857206284715613284670772822997195142960881017415672985369778010769852210316995714493983915464940003009427959818258446489353587734271844582961147462190623558152276785337485344859845282765295238185125272402181556892519457922199353501857141812966220348942201796298516647753420894557962249032636840294126938439808502298563023632067784136246647508993196969385937692913204604195100415354037263000139710585647897014748602699267319520423268825607088418703923205269282076266380846296908495801886185935107957249635124231629408000268992337988669623786868641124251660128001260466547756197631110713024451918106446263720275891688422459529671060883071482025260312990757658132994382337096944596464297043188422805517206225156517282218954110231105327736885605415867971821995752303229612940417342582861339362303116624201893506666681680538903769091896942508040365273300696683959378415128543257960278557302681199026168149158722403029439383098110077079961810953336441142860061319194851028872376021995053244256455880332761902103102132473321617956926297920857031720097162631248599911213762478787136078303338325080373230424783927707591346811928902164269902014397040922733261861563324684194165968554827818246299031171324003814671732363060712682912154031281972869205324237953198230849724652199305806430811844120630512690170248678747076234997422451112825240797989797619277831077549738919352536767178582782078163856180167884379635387625540898585093752484027736220407493419145143804927880438751402789968968396907550985617538338190695770093864962598003034850876527572057520134583081612967244499989906314338757773010989685816278623975535447149537379091551467073465312577695392469424552358672519307887029941236563363290710246402123892104263571973041496415802188878573133102669959808755035741103232454663977887696423113777382552380499658646963153095690655483610568370728658825167470363264948176043713948510367980452136111714757780827566638439964706207414903016535814885250909010610181873411864041268954979717184221997331646758063438091280373212784257101606811594461658556742979913403896815973693380862169644083293565202763475742613881608906703318793045907522297962632821613888214207494338767220441383169084079413463026912443345833933378826858921794894233535255527752585878158619165998217064215085234122076430139527370576362548219973363351742244293195176650132016097626319820505375888287877376774980092947360487601577798778573329594495610902352196824283270098042430886057762809544665626408096624699137966521485387050908364071401668623689227848804945818694183810948469242498275931484323986200798065009175888779152829860262884068113371447149999762137817432794393769036180029289313269928574028822168946568738417272648064858645162232198066085668329330126857618913669435774585136923863879103829861540216311224952550468219785746009440210682150160059665028333247341523918083186995989470112144853483320440224295042369251344081732682001805429913797659247122150257051801351443478835600684682242856560811996347712746427073443287198710311298487488398872722490283455626643536237135227136538620146138095753496757581884477826619565042600469090792119269638528394635235106054996786553948643478654861821610345364649726910764331124354046440889023011086150546720814139425676863442012517146672352324824273788176196182821566527749878074958117327530214853228048705004792012288748115914508160193147019112215927180961072534085813673509717772747721272000112072792293482274975151494903543221865769790909054125923577721481687818909544052652012859861546903902470017327881314406390300496692629352479744732323708551012381143551090281977046805669023781061996876053531989404408445988811319243504078656745566833360909928908176365662431316498094153885605211541275785736527545164711672391826464570947652471517792537264663563705986299445003353630264126006448190193234083860802023431812460904544750167485311952720636873583591938088160533980686781939649150422302383876937530727187478715872775396323678710453887991706747522322648888574012385673068389093137646052130402383810051152764377292444374343454859875916171089241628330106947301472151011006985223701073145851439363761855126472647978384994349750107247174198634358919696975897584059554437613718171900843811902793513823601733197477422251044835409573434952152750509497897247210421806150170203799098827170793541122539437467811397000159578274149187423723470292727792203748837242642455607394049494158018326998627396633849762246410694260756996225159563231222571510212313613146213799509421014515448249356351108928114311034069105417002604513606714048129942355945992528041189704250615793878125519152121423714551176676396639881748037233615399692670113671990703469675111435164407727430856307401871213328815137088391725259308405016748816919600711726500522055907862849375872590405046143433513788479233260373102657611064880474550110553964372810082626272586441042578228776725959771254707985480469611718374114699014190764254345523151534167730614585238973466617765153002593854840673295874002914657298524220363606176099907080900419587180316443186802013126794045582995275254176928113890989802624232022916891333785674737003405590517958225404457091118076142597326650002102772679279634707209399230918632215021452508235416040127534961162365674538783343723467856303329342465286003569265008262387588025769070034144605167723557338917408698329496877328413592086457737635163931350925557457811620250553504483777639508530220095279523302980073221875497562860019423893052488574899436203606541640449268273821798079421440492669255738150140147542963228307756229197700627522586852069048554473292312663827057791790521974162332747130135096433906157003484619335255313667967412962293956028478926587630344390971165714036202529486002042500736700489149885261438660215549220252724835023394564063440136129890833190655997117026316009238662531735488151490363418533976874393230506289048571678077934315122950669104975262494800200961881728826340458902510989252395168014869847608053077141202329440635130750266867173042184151075047875558387964083309064724526459197539392811602771981749709690539147556211767260550361076095288778544963981991595444712723685207316517609196851361924500724249345081682888778044139756616271664500655434117526645732303271072904404816212960787735642158096364816233628869818412008269493429875899463548722223495183299939218961082020749609299069923997102668775286299658831856420775610402335812662910261131233095466528847877634044739677412082353479643563105304125101371487712976253419490559395386687195143298819632420962098931626979816763940898599521735340172967751259948767063430318696761580967478747211113115095413839340134983759273338315502863005764606803729620341023489519148509617246298255710902965535902671576457959458223585972189936308748488340129833519379462632105187893064750819825885123922776128472896810492445546553132960838285252309001242471390529051226680614578576951818294293947421569576369444250386840329316577934050542887671111942940387293890933347616155860539948350332850671644902029774143337918900854438638824345521495509412350935125019077877868441074938070289960013485135618735649121947605210356944280639005007929710796624411152036917176575419857281980772860099233072499869259951057554709138488780265787828407350395253706623449972407141015428169156150288779883653049494313082471821046514364558717504680428045088180223884518779193130431428067285670585939121118273832287660471638167646970535841022327082996848639987457632582324367864260696136683638412175944865943647387062939560396566826410723135422504411225973507461650625861878743056701762939408062719673885657201045042753028328643623563127103957727241958805630683298944607188842411252439204917732040551864687208195462848769026751661258631061472715199975475422266501710369386462913129685923355405051269714023774590801850805627964997058949866226845280071708718719570401323025775774880300604692857802214902300397586131371700106706701218431084357623881923181825495235998590905586174181234662037733605781621976107340479725545613446509387223497030641065394939869956566119647229213659276568583807213563138008530596509038119559772296909089542413345986962505423972035530364949430046465521471409102265345481104356647280973239796206695308288360542665239696440314880974764855533243979033000048639116324668036430969311722122608735921168509789534551880446429838299130093065721250635721582197929418440669401216152701317823639145020768949546699914152736951120774978493966356276112171935059597580325287648538003560577221609289559303924681225245548980952250355141916041101169524037745753361723682028224500228810110625925478095506834002791827315922940878056194591905199610934918198528132725581257949341057424267281579600778395428975808479256143505500657189241626093977775959240311595187780953462868577985373584722272555919128767196264992784893480473747347230713374850653498596742964059314560003766824804091838061428681844830386392755069326474406008405573729100180544860898120481034893644720445938734249873045528919561127051560415168788808667446252482719185899097209476939833543389865712442074128711400743431722913737090558084986031202477932327259598643184821316083523372415547314998128305182686563102923332229247423286212966972079096823389558801171407685037373044627892448602342582623297763465244280778169102997978245824357722815965874727739423874439336442629428885795773085608014366748068162180054301789975268723085723657851793088208063480064907438377395876628757349108332075149396202065170228654320775476613927236813210033589349159016940849775066744718309086866400591906192435511101149185134210006414212796734741787340144786134507820690738911884893424790673918621407298810876910218513630558736516657587650405123354316100705135372523548693979578244678549815060215910031383011803453562425931460550958306539538376613051486257768499769946227968854033923848031923286052446952579678245606650088006068844396371527875311939950507775291661055162022510370530493445117008841800729112301166592993855569930338716748729627510106901728313912160624640894768986291597885564415631495258898739219394003202056792609671858595821224692577262352086662389358482353652304929393180298920819057409486106449706298177248926506871028971729514704947364529153614487250462732913982455152317363406201798681524571989252164616032658005048992339251032498013273273288823081015965858860640193103035847418150208864729089569883125239642368314664375626111686826138260119456070076519549471275003355916481883770044760610173419188068199614979192786812921913908359500225272589684176934508588826658707970364096496960456243914371118001575851857234336865517962208697374442360720081812528008601922088542521224004730544899757528312760397880901752319653685707394702497502095128315857088483273772451559075099623061805514459855565052710453396307191686147657211944001631535626866997777551200114945358460772827670444986046243284524726605608790589993819895278129675204661884800172793101316677512748431843853850992476052056340277770684770182775147613086786286633117902214412427994414010349455302855469336545862450052819673916465464532058916634719416206969774324553446497319687369748431363179793445277689376422806392718180620229557121464523788599553406199042728515195574650867174466604914633480913975660802505940203640565410271866073511886265809588497493948263491097308756663600055474509821217160813435210599688779453610926379250575650821115804363049917334085774452111984163240021600719730906820751919583600511722502325620981516413786926939252796894776407109585851649569328597548025739620884973366564991852463259470133205899412317815509266597816048085381370638340197306188331642104050369324993153363740445504973492547976483054967028687215523942696033947920753387524176568522609291490650946065667608005180037667858314832439454901604794703934744484090524816238901853698103546236285354284534899882330635622673598645857811210555958025697638787642646961930971321913715997302925547302346190096519968464592184114869600158364937491727983030325353830181954285777154028733160031479697536488302970622602825749890055836515664434891903874481121099503816395145679627498347655909186179819434953715827580857184923459553946182707428797786841721383586902787094998006503577043288577277312391136258838670668860188938970898471291018370889839765737231939337306255769846052989806946319926157471871061463342535667319814330221527249771370848495476852573886493093807942270955365386061265916650612112594840076712869825253545525332859236689580350435101698748180107618977380521487775023389139491041621035311150344190587703979427302002803137702145049945295294983903345043406116807006917294497445372064105052618094526406661002469628613981787183955120246700173553653124596424782853230910069739000903148538381706807484892772153708631182736245699908874499007596406085461141115478427769285212843032305418640088278143809728328356261148615640558285323343881248717576130497694082148571837596878478330266714922603826759964019976884025681661401038558259770721677121613080302763047650085316240363986613962234280591690567653971115743603347539728297258098054201569244951991549388764248170974447014128702996804311672642947897572438410810499572503827843428796069448283224723681995526279795060741417710198517946354826566592757587825789291339472816776737723851435616444368459043257874301201800643979909934569245280638760966750926873929990576358028799731635499596113629326884955641430571314786145727851582224921203821342222525385371932247631022964337828059909238303555300393464892655760034858569939761454648334822654386746394457306380807676615262061596808999746748024945440813346716190676805117542014877005129791551777874509879865188330894768379553082222930752502597473508644375421373372692635429365477144599891806520015798608962044929182400520540743646626652728537200200546973384774434158183782286599511397280711942791123491662710777267962375860138220697404700729134135472783479990840921331634558969295666090456172062373411717917846108158938095591549709079646999310216313288895102848891474009216139398753787155036817294349778297364782522366354981538341129527334560308470211362111560441311302327618471240579229075904337644446583095716455511321827566864068136848425014616091248158985740127121141649443269839143909596737427486147813804665889422556726755072973456962136582025366427557659255840154182824000551526353002594466850055461306182433308939725996904983244158545411636903412488748780984946982557164520396334111378301484390647299065068173923148413544547338510396071069256755349145121380239469281824510925339371474337613247675468137849404245073396000750904063172820751498846017628687009956857090898889949056679390350614914152477734980460627216055041637906854228829999499720586381245931662735420298847679398153388158068168613197290665046042616615011580520356284571249973078568438574971515966435517727361400678912471897683528455276842693890882660294708440427248336029893385247421376300229626607460251459999835036279316087831943481287179561180318672866821624438469473687693048287336866655216370260547391773659219533117278898520895013323711800923510928736690343155656582633843949293051625002301137929219668537892010634124464983023194360669931453580250148512874724671946798194251112636278370383669975072143032703835881997186629280303899417157714964605946178008554298753428169158117029381526055673646504970654646483881008131451381573837763112288316232187974255952084374458176676890373573285163537185252339537552116645397015254309046045879682533199312409554574356151700515647475997800655859133036948060223383596797238156088417209866388692262419718873733447873118652215148456557325452984817510657760953303347111464297492579364120107118220574594800518823662409216633858106171965064548342594328052477942033588539843056965601462843587386687514903926708195032283120201494050123388538879651321420101416774903305306526577335228001867477119798981977438787079654631519711131265841768143684253382354273527308940004669053157694716192721050083520621547614234340425398209476911954394586815622874105037084926309775047695265817607750867634717529165575963680787247559077441082515429543512595973448884750438475164492671734626983205854346920952104460939310283447929379648041732573377115490375637766083944034390781957149550310218194624710146139923492250175471334584454122164483909320050218474457676100894735794734653751113670732135012604578253325435859507538685125716848992491114095313473523224333611497120100784906813840606372985271334609609701542019291007008945237010088033248516448577321226018365354495123275805803267869690543910158378106011167863564218500675260120338916319467121276364902059142404903145716256025909770236879958253413666887809942143495889160942073382848693102019069011864069286985464057452554945112821628577492401725940567436148193079376153797363935710873058328029009239394789010201610332291270276158920739971391906003343992772280561548304144415101294567060923133943175026789828478206252638385864321529457081259895226174106369931658594211908752962930461309445491294401074558736591665899179467005305852677032810114810531297391390018820055901753618464870094473550217909034669600287550886994350369947418577362719311648472246321545942753169709822739646655935098910852467870375002325240321376664396437562243046691138313942793785699976226863364499088322349682149168267660044140169703205184007806208414241191975465134508203855839034767193803917468250180710797073748718191111751546448635434525855225828043457695011324044933544242976276532641485661205895482319380998515251027563476343979008668386713474491997642779987128992027191095627262380829367617733397394005763387464098921139793397387531758436813075251890175000547459486164854757920062200990229477585392604201237068635091713071949701949710356117043241028000299972773219127830895709476610465017237261949946304319815582357661080095020788826514719213407752978712920198789681253828328535548841237500855190964592600641592799486791794314201944537096876985019194778608056844714187485348954860955693881744899960939758681011649844351904220252304172490965605547763576459316780528343950891865064596955059497403739424444365486315068370331680693867068964619805794733591896666574731713077984596586134183679239512501779481988355465025113836691808924248471732513720958357341064630356136035530083900462902669018213076587968423732854689116026605663120616557345513979049262648981569179574176956268649653910357409922353429759751983999465164906929567961542210514970702948391833645103944388881892549010020297878437263734633672537773298567937768957882193333032156060443721720563865646471479204932074837388641733506640417096541187335296904547175293511495554924655733142886974904062526069012425208103631450220353801819669429117504855135088465061935885001730092694659657001753438292891658838111876189571543804420628037180096165025371239929470562841723729417231721059083570913435208490515312347621037055127342876602112127721834824397648474792469933725117113500399972883327897428252425545772250614282537410452759190711025224731175648950509350418483765641771609257656403033800721678702389305706908335852083884891826206138109727216084449298123135425092987953485889440152927154128857191032926258734986813481691991272768159474727164811196974983523905451713038448223429026688051928083326179658286913487788219581756931453222731716545426003418136645234332930915571866397961775935702947004927678405892163077518649644611511426788061154220369890624549211659730976533148459530719557498064915737694764996158040350528875150836323139727373058285288254671422648727591971816989303261183365681727843148060301256640133287618742689944357580896577698062400242876255165616944005603870239697993279198011311579788029555068648624064137085192295804509586704039996430100622987553309263398235604267049279796130816963540669968735592157412425668842580262345187177828532264087023765954444434523163659545663135542155420183641109722277416402938550687921355619683272169604394079974614719403310243137491038428997892012027122545298266246495022300665511345602990094616709225790768120214687394836057312687729968392271917258376529464093043497563250565672220979069055737971172380974086410015908357123723793156577940737530732239144247034273802127814499604861544568289293542942962315844644016847804186454942097132576080214202395061574400835733958678493207509105286547605746563802940690458391754114332227592444417294463743971980168963578052109218700664003874260326007243384972451731387075707564320133856561184546654741916463237941169954275909775416929336268949651747307358158197304128719098098619830237624891747599136683173728954208640431257383614794106071132872639050133295421696422009167454178239789912413080751492141955903169146866735306850673266859288343477262755870735097352593805758341482833204790568705927211953328903956286208698235300548137313625158114346773988270352856838539991632027699398033888700119049273582903493058903292854252110795793461334538703599656307935180642068056711253165506042987363710864817876170685185595680539233215125686814786784591683054384504222972479364737702216507332185437246066745123040103399678931268541305823941240440648731099047602681347711065666485558251314591658652167287156935199642653782898454662070597211684078778549660919003974001032595464382809881405714759470144813219678185320507477726670955787181888644273239597902018537383352142198784769475539601665643117313676483325567792469567649303508905624441432658881074891901064461969472091252778838861567618290968390771833288680908809546185522900148393504884400830068359224162891995798901301266870604728094808412214783999041887935707605252329812311105793323282267474838540579686488969777661972505364372704286186060654210435339161441305947646969143225791648560815588849162854230972255188584355367463733745920910453402162801566385777159625473168407116859478304567313510277612211313689805975588213660122870558573638355367237757088706665535630523667268858008269552534953277531405649594645585245791168047333908778675160128874830202942865110564798554619919706654772122650005339915662298962451222142713456930046822359919602126368093892411296724857471408884276626057332618157336965284746511506652195112382075002838938242422547691607026303229831231230634565324901421102131914407423908650651321162054822398554732628210396689031494826763300537321068080440406010567069056175518631905810992631190449363091121810769403522928945323836967542727592754313542268890061375882326666904234844403959969992535126011975984807821208368540003401824797477635991961274970140113915214174988037014483568916847126281514319585438229785407314407921474485176342452974831069093656908561446517558146325052578898475356955520048351867835689666130296378687506022528054599166023707381977886228496674209321730774028047256641906900767024408873821996631207515277421427828582563204129053976166205470350724367473769939675524984055066005951936125853918758269350948599674298480669594695580355497717786426998747676086457851726261174422426047811427994756902670412350059472570366435578664047138493227892886960659136542987976673266344294442182284173449864002991001151077088884682418034152510862827647095011504679763987999314360954035074905818866845675873756239940104787647637093614711342584526609551136163936137958333770681850131358665695209011165002044332603817101909473759147316271478242268534276988103258084553815099673313581342897132602601570153046776042343227078626452820028737455076515598941583493165517512694337181418861453001754295092326163352571186678463632204936346517349498528643635632822142818931221768209164429216128735550984500682630295746129765410937374660773868540997642403691599406427737782032230276510265268127851965502098184704025740942499492341332392934404623367752969160037863993069354870344750194371811308929087803631538046368090425429165187335417836665378328685256870619581902722416633553248124400670580212065729054582898947301613602436047250728132818117753081589253197600906176704817468068189465130340558501278953781624678190876179610668330387448619506995468980742464602566895441133724965804763474121429408645368932508919609830557547564633902945908277817220360390977184092354541227189003094794483715290560778968842507359435574905632102559317253706277002364712413154144271165446374606254259681243371753700339644797218970961750061139394069825691852951623831949611884034696888368785693715200119402991858088021972625428888660012530952363646536717441640430597264680150443035505819410055974634272097722661436401438801409851079626102876634759665615433692250695981131180148152939024024044796811106873881241216012848720319112750236015455527342401425336367327655725537426599589268579072991700189523779448895930840480325509472306520859365889485544669368814804980701817567060217598613617039800397430308746595311251508394542724902590644677639269944522881626839614568998429447264757809161516862675581979323094054058538541184794721143525635660509572736168482333975013400646416476852858652021588587990971599622572193612296525127204508851842765245325155654910290308996181505308106328528445081578811937478602125737387719296715585099384125702226077023241216114917922022423341471959012684363468851100788722223153619032433323004661750798301336222655794261645986437361066958527172677557349701882233499892881464996656845208852335229054288421511822019216099333985718894356452549854303851244951384131416662174189781172384607433823408930055221529104638072086465765561311848673417063902382224653310007783145272638053697808094995058170053946968368206453420806833343727061123360733244043078434833785994041161545953562607905479576637149276739759580656540345150756554382680014683132463083148328433040253962285235836499815631564281173417781920766046201385334822525403381034561881929690293862294369956840227733670701144533224587124573203010491957818279961543519131331729110801360112295930586874376614658409581017575192451191124574523084015027664924759179763053781166844731703801075211919346127023042412670578429661792836146029662668116977322805182566544161480821384425198585386633895559990198471489286598030182174315293298659096602239190943271311792700851120640853743285096460062108826583491125361069410190823752196329340742200629106777833846881488592854788772978841815006993620660521540136528019497320023103706995966068460293559690152004936447977410260854712697315139788919058807356815136574983915751589365628325309363289939167885788950796446283687817309166298767653166512781486321602517893496549399811407853985304586799957886936732897436278428111438016085150221411966061586619864230129425848327238842227196182328826227532613746940945571311499142030955797361405865183850006181898131703939222393404480305998047749771738753833041369410509706100705915311218325695719618770149489033253889578203822856106945740704076134649767503903557689547897834123101070328641499498318751263273563900124933857929700917785885967832051064116743102906393120230310337346571883555524184681517199789195772098449700506880456559757007414489091504278514809282948305717705169574995070703112793169360115579926401877175721131767052507638658652903579180029783932015636631557619766126215955959211798085722770008260524432487024305615024013680557036866466616168683525668482515520045166638279293441001109470630904017700691661374643609572541936472660510539867002319976209651147209645363394899494569025320157104231655056425296876729490455433609943953245658347128540688879804451841550325338981928249771537842088924676016960381870222718142236831000092507533590446780590746637957395984944997971111864947096266981293944114989077444494366337323811271181385727624865068139884171822981660673961648536847132810652151458377279462866541551294677328262783127378337248860183774742829224900506888672715477259230714060668826851937210171017139748840486501694619959172894827340569472466892146614621943396955585755349117437541883235140739418439702671131956852270825973823951914043986639325981490027762608200828474022520419249817887695095559256342670302708769191787445180284982622923070664752027613005095499067750147652988632186928299485445838648365466590440492295343913424568675066740894995089838885218390543780186112298858815295130904680420577409059935134199920055014536738754464586372688906061567493849786680308160116758821627115385014251324101165221502207745620437064383940237681102653940674763205781479583425853326885180418874524477116902624842610191511418236744149930069011781837791965100664448731188754921560323249073338535266264791323583117822681106813034457432939553438849996588538116947034239439385996394501516040517645557092183112683809512670453406109929226910512049040219619480873806594516977808452816683784458894614075455310542637133755662238873004098908247115940238136593308558833573803226269582271185820991579731500448608214399551334548913071687849281781546903615262316786737340619196590327730138089523427183807558105343986023048797771181163219028995445783700724839863800121082382535878316515279890780172916222464651641783000131870186331210747104069824412806622923801247044597447628286832027426245138367919892206661854487332374676560965748514781066833560418605453763687255535850891725973865536025088935687958176348461781569993202567975425234558200524337960464431571066333175189600295821410800892318243334278848177903761546728006880595225509669322178559030971549592584719881037319396894933553945939861109747192303007368615415399987621936409663904998843144322225034517919644579077428988883697757860943272016422932403546534967610228258048678891167456038887729409531065353221055678521968531176037430233194408585749100571387713437034398391523530547294229995756803997599793132333204325440533347518450127536826439106723272444521026749267501624722136596557690936049548378787040173964009003371761133158919182646329025060012347382584190516610437381810338572509972977874135040425956871500412636081639717986060499134088024706256868377574303282003166938264438801175769805254943034912604789089529071966396148012193464204086074477833657983139494463441528595661108375471681928747067495588888476716329902609195835584749586709531111967451817003035961263250537353537470620587049416224726528213747509323969188137244999199157532766979850426779316909350903722264216945970525394866984978037226311115573552072370823984869135837897720647776509830550939026055405446806201475806120541347455066614348294584574531816891613615536503740858635277462066021824109839577578320675718619561373684184467519450516404507394289460452959170593128001638360143863155636171740369099734558749158967984267798764692261312822166067356180095999252508106159976416947603042697326032211522443838455720716166153279212701118094146455450258890303529972760978954681956046861874951547449907785291530161113674152742433764835507112384965207437573908360347402804451984685524880301895228041807251039513961593324668483764262774680969145589334912046138272699301916820298187592783188217156596331953653411049063646875386411279963314652221885340812223240141012052259159840016825145370778532733082480650308459461024353703730537682942781869572131509498449353950103572896018214992618463861292549901568952951191702098788957631546400170886536822455371699515926308867676109638215867312857756249446511327729000064716504452500736637849959611405163047760479308620165874764594602295967906786436392178293803897050851759709085266935625215020923354193097475104710771075695705212989715021735989726044903928911949389767088539897988442972527611457070573374378899468211917383398266635286741960736285558167643362342949624268064615160305449008115365371024037599396360961234634745425111012930091103288423992135503000365637784870285836942192730981695322413891020521134972029823335024390008937194179794012010635885979551547769887798378364247916007533908010003779636644850892864198778948336818916501092987916807954453019669410646627613024531330474632169281989796263137956413605400128970595148735712709847563945816777539197095057451890328418853054300822942887963224339124229258534672276541474646762240458787058511188154531183387777672316884684161333361312453852326617473903739814593167462807728620653631580565144025098001633688277091943581983108072453436847644039948847619671185651781679312045157775061614766342039015210902972851305716866481698553718536830776426578254739825090001960749827584124690577773972974010096531928485817220425628632994828640481483381992862575986840538276898386864139396054162685877149012364936733360556568245448338222664907052065087722429903157657074207120042157429501004588845069719791388734200209515585411532861889890942305752497822266684294668882992689926931937453146645126965272940850663289486670253889221645025709365795422682195183687863750272756026512580723207653857296521867089404099244459734434059545095084070279603273215121283022357019872923303173530764394625435102849521851848170912015777385495779497925872089673686282320787133483036703181019103265676834353308008540744300534635126471071848105919065322440193065357108763161269730722185480801916269562871325341537365829564033869405074561041462154632260822445024467913814938206844972956257073889583703754827130888207983121820054581422443714836534759093743997910521338146644029560729438194794360881465741726735509518029907561645586396245975782912893770510411810356356524868007909842691073049624418427591173294618101538382159015195429577086810604768572401017577010368762795616155252088123993681573217437953829241539507679572818237938381668154691092948626211551641546214877007577625703732860034511639434160385426152279885741054400837503256839301311564793147753852284881681306147275701257747751748347676830500407252449604831290385604479192699436542242814533176251544908924893177469451671934547005413839716108157343264774916059392516758813004721120251429680424911218038959061359823140935489891970713682144647535920699675307245149972958191749504393604620931880717857466257165643562807787456067017449080353722028821401243684381396707647937750196514243343608610462275908283853118226599254936193232006441555602937421324934398832433256173591300540658942464930929266281363301061212933304607982323355931993690066981108041726342674335613898403941791763251468169965273804249904542093690834488259710271681179914940869568049807530882200432269580143972560201273401887471381117692122747167643393796530900407280879422835333243297839246546344690483098571022622718902905805063944758226393078926908372906695681812642759189155079387020190738338488130209360234139424321357669683666357534921735589707005992246822091506741628565701500337999703876332883257684323771981282805465118718491663547035907199114929202710456132466569545205119397049810528356645474315282704530918314740702532369855666839962163563516951553715238718841939364599622194988109972519811359209416920773377821645621547333801843777704588157712764616476792981047312266832580574782262080465163589819314504563057127113331331359123499637405190733514976306790741608952295771976883974978133736907761656666868760879370095306013220499081865229897870135377513962778181604532369850110128152281474644462574674026205590229743897442098862833909547298377658612843052247997261272010317782751861066436023678047034983501091261602370966553765236129063689045398301231422156860991124870910290909568425132590926778261214113091429093672090527188713188676542298541721148284645713142910478062040896657476134429941075564762434431760515269070618533680930601910422900031701312831381131675577965236658726509756788001708829283759278512418754124278805885131730243499659647629280747212215569638472200938603970699851004009194249441981788508022045550774909559722732880783060601310870996034341801566631205694538942148180078212079933384601812798816161488225374623069792713594115174601141620870140958329337475598060468436645416937791054571376774156211729490272900547151954833869599172416782006124256001036546263775435621999295722698471211987247667207377820701475693289515574549324274068459084871803084862645559783995235710315170185030507247667746987840929129314750826383471719243917278814125383453332497480468238363025944711785519346198389355635133536691259403035412801602271848150992332169949198325348748545830964224409927489649387442567847543012767914746648505809824492153407603197134210058239014701203114026391486349078890732443711681279173283183998133167164450360288727399930148591649067645234421997416032341605842964224233870495649160681849328510674340555356969720152996501167019863277408135415156852529030534229507560986361814281279240129300346530563042962132853019331168211852774031815206017135784070967023694182818094225417344571282592743531586766855153369516327199603145410264509924074497399841070237132209663861409457995913062030802281894895564412572106660319499877583791236309611679760698019733124609839730720468215389961813611848801699674857191689041150524246790070435742870258909315114341293633709202006008692523626272399927458815886498434952247930626751476487114489030226222887416351902031655171795064603910280649385704487747788861251069669042581146762624025495516547002510291822089315601290579010042568271499053477611151799377240099796902585511617919608449471415452755990130077423137248429751493705576764398169018111395783324433021820370588541782121603569942303823201245147953565970850771018066902099407033801559982729681349206167376819950518014786483707926982879478557609398274313543354335672864316176831333612107471435197769350702092842559744088446324472555350320133525484004479641801770047041530291618056261360417015417615586276294115645276604476977865457831355663943074549213648699576282266035766511764846013074400304156444637908700084084268692021404573531270834053046292733184867602552273897956331332701995437792735991641563877913491971076421781546973067228853474002661950816445210242561376334305224853146099985099527304452838230697315529281845700977358615606153364206273697813938185804683000127906581814405195632546321620743693081028210509141483474183498327644103229929934435516302172021116440441303230941354365562825863420050416591701202438565728625988409070333889387652581343420007192034511688182000575206517226540338809946982570620559495547491969446425914803053198811065695194615889961273587147914290094822930983660011657308202230000657729738955236203406864726410023017016933869861629860421851573183183183898241568657641692718659612984730323127126384826281030790445441904352439931849170936470311902660435372878619010419342111190631072569883674207924092380351251502432672504959575554156104494742689839424822296869451159696459002782306471855395371083221818450657246886720740177971319452855923069199603344586125469581932191244884774569392283161173864016457287300607183315869441462120019577728096691087477683288791645111707312538089056930827168605181063986115280360090708030193831343190698717916476935706765805748982983847000309134291159922167659622361876938235559152619702326800636789444235372706945464942795828179203744654993620016739230026478696934858710409919907348854429403911630237075363521272022801369521281522034259494918378877029094683291245923496604534735052307967473140511442811298131057610763126318612589181788601379282134338670386661967376900286538551951188069745625193622162067523888189952908008226126611061862992587257256413251162761119460118434558315565549521143719835511728852579945500231752152232881207461948531227463216408597839693791249343668022501010357339952652297082670209771439565106731652195964728408440466568796049112992340943658880233740885991238885933791574268026403207952700951280323590740716912802145204907452051446014182883895026132229141849429457021957437092539239747233158020839408601218863643641055290182791289392158737592444878451551407368211917561087505850739962856677378588256351555585468786710160435992393215034054120126026829729492427274067507710931255932051945661611289122204704474022128858557578166141669785309056704947477146153589611853214812437702644327722092637186043685099150911528133844600185551546737614005432062024102369262039284322845109603620423036157378556745654283364333270422270941358107330099810279607801623685021949626506622636577803788637892122568989980795667566224810815099339664307930521950503746231004439334474615889357185079870262686019283967518939752138230025604323858738813919279079514618650333458189774340652670354545081507239659173000148274119041451481580376079839045576055608809966444343396247065929255305642745152476545713136630421576733665241422510572697953023779662837380012696727846880791452451030308294318928265016645344951695088719530524450644272779508830968808900907782591188038625489208648235381558315802911384336446876495555298386875768639080703563237525647315313374464662675461530058535031840828541259763916271425074899216637575635087649329407384896718088698149404118578643091890837883856395924839632399065335985776714047624870272386262755112723364069315160184976388387659243948520266158103401781487258690583493015304707662759909327157041797323915265453362433645817261171015729016229444104651864571800646877337735336370768681094164676988556407259827072823725908430340583248016003981761635824023660926000643093732830390018056790820862409232324266925509232883607357061961878192376029548065474761695284706271564605302393998872926761381384896310436318463498102172331794743910838569248872716721165032917354103010492240743896849313413092993239287043913580722922482691562551726588364528997936657022390238069041043728645478197317212128215845913651623220910561353503652140601538106167004107197867343549127383184709185630241375244743697588769444384117013291283011698669575087621628824238701837059336314380394257318166463831430008700694420102565993209272899910827811470899216119394191630148487903530699121829198797264628088046755767273935933597525508212238174401728665621456825489620626317888546246187862524941430942715964666399176516725415113419527589812537591093388556901275054187962873081171064875512905610847175273961497388921345331767182431776457425936194130978565700220057510027707662104516964712408005112809956524436599009688872039217163957254985062571170171870826574613052434138970469107411568318442452043037348780693894479713070328968012326483408743869761362244975062688262466853260288505953625121196963805500810656536836184840391164651741333354627010360318275453617945715852295880018189704925232856772768230007417003657854720503561182249342141565771463525951385185832192317774222903630439546193876803069483236921410009823529848595945753017668766172838832027933463675104466827880888475824897141403060840581171075031934448837594545255661717306147412414666744733836480421325088567599112939509953685714694939510319217995821738514285263896459166053756676278953087342264581968050258311936006881483730931327158795465810891427266502724715795427446633397258739238517247127531051521941936299204322583047901018165692684012814669424510221048198029759876778916510459489263266943189057810513105131485640931912638695680383895666031364388082948950794142418689030389281468234423129857905511328712683710248937424912150168391484669369848537504656578450267040122848770167998906037223014222991684966411912377020536166534776737015292683156794104142135862661280714670739568192516487236250670577359797312943068882156792303698018910508769465641385066883433760092177201072449591229325287203100257371867582083498264674164422406728950037035467984023340255997352745659067901995445161689408944191372324539968013980378634905396151622562196083703557904670285972299578488736026270870898445577763161208581410661745131696888088200547547470707794250298001760315943764786063025038257582361582458484702726828289753685091055374706607803197012560537865543412625091185731302221524570909953425251609265231392813600872400294042568748869010661194872305343857956052843709360916735173070422527311851622223357461229075767488730254439976522364328943097518852450959607713688403156502611889240679489396318467417623707808525994854789429893301389053979682185494150543051927294060883142522228219285251093376038681356380937122299323848425357083971630403263369531571876495558278677949962571418366016414415878764565148423745564814130592072853635452798851632935502347350931530164698870811364722813804614778434475671700423700536485456226766163643561218370190531232319696556774603736499769150466252046331236782779062454293381663321857146699676057607396035825861153357940805097051846422826910194967016813667929291506466767893051255513697021027704480252318206383894237889377727537958924297883276037099742609611237429688684502587951240600942549106496305829031197703579455509538174717343047620100117401656489158518772091430368371432108754146970444357768989358101894023918849903453317135313023063057746928709135412477840734008840335324464085697814781246923874094810694867448601971811034631536456557343625667778689838548026110125989614997197284067117550587902181615380930374571320146549437477270915915180830066447803763963535538815487309413755978874024676726373855067183337611065468355141282712845250085090906140132429642032122770898029460761012232282692628322878286777793408172146754500699247156101663762526453579438827567274860797854356194926038819806099661467135766503673815140225423154375059257151804404685373703309588207427926268529650526468027277759689753175928100711211803650381895836975935164936104806352786380349964682267597548754344513186207634653608107203666341878194082090570043797294843359067905788148414190524686662869979608675727494505615604221745821452217315578087146506325715242630363705535339024319873146225812050606025395021177726979923507294711197410071443374606255070570074073870333621110682973275673095042055658759460718334355527181189163496608840281236906486766811989639496339852602657743369089608964197994090187513707676081882472652676525508630851476071581873342536188539899348071952371643311583013806344756245485622569299901346492466112374423415279048949321894531354686543473882895079072570642123526396674257669441965666524756807429569888982250085922615749850841110586589673323747155621952448112622130963309399461069497310440606917134410367645263665097606157247259514329173024375341305707545869277962064299490221221804096759079609960058014459396206567356353735710063250752814627376235476872034944641094340255408907894485501988428422610243356904689751917115614274732195084984222481691907630174396138654401514703177980455741944670913746124837918939671189962126215713119002485422603460844148146038761716051512320979717237136569528473973840171607626058945840432757680577766181594158208770432674445943228131730910525446702410993604027217132903130558779824769879197723945110191085097999937688524876727659140887644220657587923323702786433963108819013198849548796240564740207889914242412128213657887339945643977125437299406061984120437791657256864877973758259901117382356573778419725518160559140965349104515531618487777868921017260246928884703958301048179700382892492507219006532162274067959327658367529160573127954852988457705148590809542770769355443468804366959241063697398937655994111931357591939442136159263856906977070531869951074545630942930593399175931360466918110000598971190003448160142483070344863376810070581499966973526406596691745948579594492050043298246296014587029476127731652731366417380859402621042728992935950541860695669370222868422309982797305803464525864360236013526666786090511882001669116527614214833614187923921245197977236275398790153539402268750825683507604000615426902151707746945385732169511436245142407803269612122681122244102505191204347876445079764559675526016000418256934236563475428467289848767919847782157590002483361292584022387739427062958424187821803867981204028904192081721743374423161087045892208729278858281953255958787111829309682590937727016408050962626740534974500663099273148765199768645334695471252894205261198050263215691289575251330783743883798652428696994124521215989897992466529549558091436642818458371587900206061558553873946278044200232105056232565671453099974614106119636729763927290562097660058864812036067475991927382787442172759401372931249759529468535738287494962868269326289060632301546361800989880954928626417576705487815924078792056743075788100749527334152269866268190714076801613852810354851418743793712248899336607976925597017215643531691146944014988736638444317565341530145347189764802290093444255049797104679697333873981309364314629232789769537642023791292456948019129269188471507318969485138180586535393647969594183223874475878647339476524662035049638279350456195242388723178585562641604529207706991719189851505949277451905270282623136768401679457482015795716002265998160489951191924110761725984884919800498049546904273386744208022121763913675711119439848705301295394593872710993281387717265154909287277083292753862324143399703307924960268378554910709535044468425955312330103501579966448678294685715659763578373491784192633734460779414850432002469581039045660071996817064887558601972748663232247685496158570129125292992469852579612987419798180840088897100443945529880191104431001878051161555802517447598726339684362986596344865872950134968867980217358129057430555311572251650105818495163980353679045000691200908081085710290296071404027033906981667653752187000279805150458861480185678701676641744925117086182529500875269807955511560116761926223932605395063000613477808271084389530203746340059781719841971368588413428676205056807989987044829326516551875377322721532678048220296766837128798186975804629405382226436960647369928016884870966199355590683461969785302479413313205967896988362397500367676194937048513524968405422370478231842252621739633891948674663257120503984769806304180119052527319403369075619248488394448559300571371405752247523353299263561160819447992283561532397459599763513807795705107185161050549689638008388357482893034699452759844142605855618302564299971774123457927353185966817723925293434156184211479752031991348803888916416436184585611591797416820430753149510940312959040344915506418482890955210715497498796700971211626220960640287060565721779491656508557549011054962103751826319445723478111744244747327659984124205206159637415016743932732298969955128842230688354277861036800959276613341904203757858246937367635304033747299823314123575299979109991594939552556193623153337798417674126305822798422198081571918758386774081527350889507883054275050517810435096420389905646069131236038258691798525172174007786129563285052242111484130729953858037074362562768362877840764728620294734367109589124638802307071746611077679292097394278117276864446717043896563742301792461374738550185661702111940093833655066343123291321326075508215917722089661609666564323172487190222137937572134383225498227325773235371671934887858822031595433779611249233734770007185058337926925058560179111172760466139396134256991656874703110288926001362847242443994667622273929116301116154152222203248417881903523556813051868792928953983506279438723183213055336864842756607997273088859592815461135038370107135404041047315403680879352847394718894880285793623806507846189397010529250515564093560097285803058485996491178070104863914333880983807187630762359650513639664197917462407377901700931112520603622159947518322741094897567543657877082388764811787995016656305926487497034326518901152361203770462818612557089070468823098394902224534818620408897453722079454549567454733768624880028797993732008660454152281129611181426013084567576217031998359457457313798465586005343880361159057846597449720635181567097968005047127945406061932842934114712883057094346244443084291676516034692804652911130845855068892757759442045819189482377167153184509722608631605648814095383518641877031061960163845120523548786032418305263417667483165039139292658982828340050973696103064088054247157729435098401148154897259943606827928828517785508972392869170680977081609814112756732138777027549428843790106382135685867078288532565300679558144293034050266942702151982334805984737435756922693282190243443085801868638322619785654567634253779109959745479034416612781361583329100516399993069775978538193417264232903031234081375470311485909264926960515032259073680672681625577534521481276786206557758274692231043390266137864439453779589218500341836711999231374573417751473453956878655296530709717372470189917649451904273051561395909594010089686422509185364685364698973701337725470386179739130657594099535252511967638347702781997328880470899619400732197565818553820927332558771017881540618945635527145447488332783103187638918384065341128674191139931328143196619764596563853385190079230548436565247955500979345080999468741315773658407159305822105925809154686988950847922614811491523374066514280740340543146871994135058050009556854178835372413154568581226067421451588936619390151136988528117525242983822308229575426731155897696273031793676994515396370899597504036296519515834484066260820703920258472100143717241334698545334745238557853305238976853754247170198810862151429080937206385848747612957840169471739330338134550518527885542700100083666038248122255450535256420959743259940318732916060145016408408658750826422240798156476305148616541840192663062544503670037872086865722660311116992412378053063959368001127661653910837823453200070563129514137055377576850932864158766381351875306106898299086238549459839816467030477205339824605504563550507909101173066323898513397813022492999699170399637250477763129926290536754208239242296558934734958813301613325821401225444594089588491871912887359153254669108938894408304987116576183557796414015465379602612515351836739375367994403926141443315127480814465626635933734089234041947583227887504825224293971081507277776267541323515789015590256152606363414218987946473387746699423208335122269250944953659781056626013532922142587471348199571591153747301179143029195316527240242727442389626614377817470557519076640317552543557223281944207060966724637391329269959592359755313830260085990444386524589768457563021878952376792092199555889347092525136712796739149158200360961726439467262718745429927269884689645826125953012911021683083867298236136970831752911556880033238242318435111038314157848528546688403938609764956638616998560175931577754395094427249322585559842721875875362539087137872625441449503664237996891511370681547548099527743985758302499454778691434706917154391039246169288932744592940889701713373446108262525516134397971781535405456047070684988221561606644067628522229291492280388213877358353071912574619722859592622430443116385184511183514610221506852394208809342484801038268276651549760946287668414448196872898766882424320380484359195167135809003515055972058577288151982919192837239140735657885737355294234019571961220826769965468423086370594975908894680973644743813936119844828873518373773978775069046662270094369624972324996179633335643722340044650470292248644117267602404852835049860900827475016122656431399702076745349971093928795672216559707505011443463845352164959647465889408453766651087622112808996194109809255425934770135083951560611588437354293788210979117175148023920383187025272384935336145025044066443379655082282956590740749424846799769218409853967028637837869239847410437562739688334480007957533934990455559497674218446415582376755545217842353866452910528970471478723618466440908311539826454360142457779817425057980912789051243739049981767419378600922691004653225450538224680643450665502836470112042868676250725798171105101443256762709833381826213657141123783155843853221044093725842556759586048981257335598433535762321841318913641697218145937231520510281558461770830001512637590458588462835845006687504613115571510352519836543473121934609112853976819985311458278317630952919421643937915953150303118112830625022036792477656579687816334238570479566673844309506639639084836772524273010884138865198982643493500992078815058710970089143807091593315099487420456716003698998587035213379130969572055528568187280061380225483504044604747329662292020754030223583461679348544314565997735080862627265967291584719711288813079222112677673425604964409819109020604426183597076132592749836750122880308951865861256577618166157686131600366340569940942125261766701239485616883329874778194900628692147973772963226294554531344027950204824517395279647762955603635312101190115775831105404000923749931886240802022552109619686514723480902230429840358120833519497516324287049490268655501683443483142413596501477801184820971700017456567406434007628896000738105985260599943751523089071847195399271464500874991049373669313244866115888628056591741956818024339622917410145256084547523935620585864121574419807740160639656154516857693165128102928700825285653841582118793575732476866213075244285916941198503323243323754522382084669669426972157404149838458855742055867465971642580117944741406085284637943532859108948000751846045071168248229435609789367184860929408748138443791190533514498401830108813617164182995702286881528253435930712335410402914349668589658841129344978737102200200266373435636176367736409357022595871367501534340189658540877280117096698076332133569116075882323511613622644241996756177616290954620617580473144787539769396436161206946683895846355010675838738332541463832548754681968154920199318616600199305649932551268764110309373877113807299734466904798866925350595299006242482116340567473070651581915815586534136813376015663767135349835226436213590256644253972306491603239075077648347622889652131519825091572183439337747673304684858937677332597361698766449712834735535942506192392273482210503179708562611772300786472296944380197140858612922256902761221573265830086247351509232853036768286494023425365634695966187593979033788791602974065741623196831907680268809199914294980343506528860281670675763214043768710056165941994417795976845343413621858753663839944709126720468680748119569613216833107930952085179916554512094160030372562014542983470816814068876083190548557237378443261928368605723494902326222325945860217015935746171205994663189274795004972784185213526949987326391221048899715537040754706005783127522811334487504236706996600993935691292843286036097385712462866361604491519254249417118340284641976015860621303639961776553095911457372691360560341147866025789711574356883224187022073398570533621210212771523787921727555009562409370572349893244297149127525496732198534715144478437361695734491808200739689739660516011149448328568844137645091155482018722062993666449011354185065223717577858539419608162261203877864897966131047600450125612417145116004405561506300431632407435467911666242116041599704579815890412162292817555033920316541323480492403396753750807945883249781068546121511737687119560741805892583824875679218616678905351698218772677659919848550676059263076683267460193733374219636568434367634138107795095988870302737635232771711482499783310245095650963866791763239768266132285157700440049730377302932560443456906468644586088031054055383729770626328357343346698004990344374612296816777976913209596369638625766318237152456363282869655789219916256818576132978743278609901443186002245188705234692217958213911654141167353250087132034952764640028713694973087556136417808977022599242915561177162825341882557479021806981749923370355475096441802180529931618173145400177048075439565256244928134908669192252139604673168466018962478925188655231921452488436997843636671550636253794948124131944011893694737509354439480038337609714770798418199326672049851045994217527556258269983621734101274554996108313176500953758313284253360389606894161391009327302869552826167300746855572332350850984818609845528687016214140948929826078859528596633496799393958679500788817808607236191614762834937370868315026504051115307507320853051154879012863599659844076469444438613201796226065071362520543926074161422308515304785857029881232868853689860129676799840921070425342499039097293196904699528251540692087250793044009142415610644921013082573510237971175532992215133413020438871801854904761703992480464305610447592267326224619105087267670748864048192642476470938934431532963622619067176326942146481044289488015195116614124420047221489312604049157474737435885963281580251861762742947293212305293731700279547247702891132254919768932345455867127498207249109356022187396283323687264592238469137432488861114433670190562108417139904735419270875223163249639713686122462647239168315852682927724710699698331736707754555161260589600265489009337719735415712179222079219630091475581745258971987976364047377583993376410580901320574139744480272229949888975833609321151218720540024048480626527187823131670485798171145198396022028826335547954357376973912016656944307222127788635620651281272539278623331494058058116030587376443694204373214672702705014309193564229947316310235619932864324489884117977035776511213814621467214721291915161304226861367762913822280625904579462163536157750046654864571312181493514991322258821763712833986251044745179983962106724102852146017246300075097588437530978498754036737431615881610213932308064208475075707305338939717028609884560984626894053693502394013909114784685326101342661010267045012846090941961429374097138955427935247528699488754623088622312607767589868128663048599939869300815709467722527939490109971915209168670943057694338781025221763199146092615253676713799305463585010007445673501062176999930103843184425026959959907004368526329438008188631415949182360768802474909218912006326122513783192025198810368980175268440043558092301538152377898483110013262614726312679459942521550752514917261631401728914631073127441237009288186797765142240625866773863353452392852054336045346604635112251913178310185273086718308820702280633405160455031918648623314929215770402213512805394083950847852748870759318290741515015643473045838135870024011349862062283677357044447217940509806116474237290107305807940373170312499886754611287245392955180927977425411664110316739166439092672105981998642936088515746640139688634370059395808058293891483481701463525756415974914632777688458278181527622451578594674437798252737801950864016125060152057051483159653809192605667938853302593551662419635924878815011233992320199334922442421437082007062674121762699317194968500537418474473530416938666815216225274535911369391279183759280981884831134096597672580095901295161427296385905079277640283138477701614779261681178716233077973010951940380816247669198574513542028520142287404159826603465191648931059175064645360604572080771745924828781319131551158449321665709567874647083425439589576512979065833102236689632952277290714315514761706423244216612343029635819648663589102073504789020300387415878561606370232308429448887811036778648397065479517146872424528612554193037537736749136068430402658422550378098129630747866465374593883743837882632628272936335972404426384385945479411727237878101250003700963482116914868418377563082352299158548693385776176628441528076633922164979627961156772390388930821543352871862621452403631923936259801490423284343706344445715107423321081808103134118222861401928630396417696023700839156227550678125452397404466813122010859425466729198990885340505792084082755542994293920805135162677007984448621003063941395935811110487336956927932992678109374516449659750251621666209434194313369560405835644557017582087517054455256534667798962337323340899280968082485906430556670651667016082221326684086590921028514643187915601748976414354267911222736183257069413440173670209033806644745895998676935552025239169535592274715300654550787308073584973147650831125372394184996427804657368342637913927968246975994539567485873433919836546598055998488896202590604293834112241388193520340573923889888009823612324959895765188070228705045262130370475301358071913029421597992995848944901671048129062142905410472669644889550956591152197728033054161911332057549600573179319707044084439797978031305514703198223522692132278900128325653029195212040545682786264316577109077528008602859907140710856311901655111806202522729038410825541563120919337740245313316792039806025212063567493347297216789832066761832301479849234206793045163877519368951288767370841850996888258809908474345380793606768102314602352197749897340787870584432816706409970951147755714713445202155791824981904901535850471226327749231327322757520498014415944329823880456748486972456238513633368924527891301704733246171744714740809315017365115864162967346480155221609315277123958342207117631074492023548575606809072670026132219024359440144877616173380984332911942509875254308575324351764341038323112544394723185582888848014474406462346133234476684517493757404046913489311938528749656745320489355433767657298553096541095921423164734301498087409154250244026746312231658178700671220710583768358595073358276320521439047907403985594102698096436284030924020655075426835436443655485527360450590144697635323205546332714862443940957956458923610466282805525036110657534571052543722126019918790251409837880454381988873748006321119364219641365030309674784882114136678674806859480818249832503255266188363019287295355684602175294146663834565313617598246571265604508202599354720414229139641786040555316565376628297123301308615629421973306843704689120264832560567601808074133310419097513081450402611409248116564954268029628738736985568698919866998754256457637681646847625449150183019532902225944210665548381646737147882222687083466875111325073673379548026822949336575349730689612157979957612885210750114712461907854204021288573604560255210809699918585546855061925833734634262545421883785079690445730464212525540427770452326817874016027274760815453278948919797097448700549464381447334192871192662172362143842951546573111114119699675692633442477691287989054160806331097080305294362114997402680560905243887684973770901822837015947372277872650680718504605558778402614890072071686375674180016180728517593840818148911541507183281576956185551156704970440118884676401701725863684333435765225761930987698919724744102213067378978068372206306788738325126651967206023270009108186402563472305103827638405355324728731948226366841508519642202227361233183252355907933565420070184727107156734555409185472095456312312210237417723147137093145852693809008490257244226604215525857227332361544582613950709256395197159118681818662738354041731101184991978739447215539883561203005349965390289320035913044899720058725025751280198742984432388895569615728323945161903731323128828168227650853471598568442699957450156194775845699535536218727827361450459537683525657408584976353999168999251076790713220729635642567874823666202765432061956451600789416105137917824382820896064435006734051946261401455618966761416889865665917214490162540210387694347265355508872388035043591680307877002125741100423892208195578350905426867748503617386299848713708748393186574427689365885608265785431530105746226721466385468608344639934738575775398275309888812959125196530045401592978011985544691828301248618173938239644040978468053520721847522629354224868294055642801341191939264722219700038198883158714793788097358227578340063049680258757316072374775804709011538932663854878879484120661665531555441591402584432415715796819883589030387351344964705225064538586706230438360849793638120708828849314342136224523675703609379788672789517560121421796564349266171010441512152436741506574294535847264864514207579880857030212200257239907304345829720253339054620607941608255362761206548976940975354001978392680443114294784305361273019805286770289509129993776120416407483248917391135452065136544052448229520191815809502277595182821153286172697487259458035517362781048366024119632805522285272125703218861679464258988634644604194218132379972713323306789377365873456786498741550547591040202423347371114461174376027201721448727233528147562920393373161917555170043589292576078750138234869286472196851117649187203653915154006628608697322921541634525294703250596863397380751786009971361051884381296718929149037819605094379966976015727092146099591219123244939688427872249637228361443225396722227099552366313582813389489049555610559411473775539989071768286558413009766109703482753927798126900948310032934726784434913379871392099339190645413709540897967099802447832783940554198213838188326077634879293115752366907156695351576847741924615273801199231995922310451647701679628989672597072880606875180021158830780925070159263549937881409619831414107748663946287514186859780571659599877591576867451143328388873345876396149563013017860852878176355065582153939006610678331718034885162636452742275318468563180212595522492156598899987844464449988244886313252400391301869877489398128114221833666462791262244539134465570318859557931328832524833250175870201019396501205160920996127637986940577591766336685834666902305408131072828605627900577119884305947251571825839987628966403879601384925128369598691520437901619887143868040604662840533488748814632697550835643199466931912316554356745764395970583887551498188365499660962020931620045060318214102476688721917668154329890604350965176168255244435689116876338473288103085320200865667150622168901066901430074547658155487814452765354280801408723318756173459655923806420140007282423996893957900582324983651437011053880885940073947879276228406753923290175742446090913304244773175921475184016052974012876350057024666243854655187008992840947128964002102067387894993983475866336234870752117146819122898935579213301945181406479495141217704540879516215201535811555548861928572592703385184967223796243376200030705120730715617758225154751528056923236033206592656641464357611844756227118868043923388506361632922491967548465091850578469672782090641499771248722213837455332527890194546546575311585625055594791177567805555630371840294030534038203295140907706567991674082485182860173456856321349757000900332274528075805661447626842807251244938200449123782828137298663018239235728111958126622018137422466437227525247283711423266607830601578399733208085120625804178021861733973397694440776808245367097383045780874248968592387299270548628138588479681004654017871869993863043963319589559187732244206392523491682499715963415092211148782523244768881347544896236387834515777926503998603051913104279778991942853323498923125729258747442030511125610161509462663749785513310514527954327188577549192333023701820086086941131957611457883912834588048510098407304968029515235239957812501116972365041868760543061476794610338496616564791006920244583510364619928631771483943973048016706092709066500803354886812367575185854995359779363462590731552083719160227484006864765708865729567806641132106631675714220017464146054270751356350333873102052627248283371952095641611865018306842487785989532793078268680232708445566409565022733959769254431707691826785197922239991271731334427728122122076837871187583263736076186556770738316305547645308292982569365117310252722273606283086084354922240515794088940530240346976875049409084639151824757271288781398381688741189595619918005484941934945712913029874396843319710059773187895792316153492382491440728906888743937553814404439061186471000991789309185025408789421712961701417287607927977104884745228126539617514484827320410872834356550550495748234598016122242331972066864473456396472373672102254154177114236573994253772187296298276375455385978563306264228332222101878523833132524410536232628130606986732511181829224961550308280866594893483597466869621209780420920190152735319383274375841465051740944555210175823960045683339240993857763241244529575626088775139817438352813749705354897244742992410456132367016382172693685943856054997360067089503127464642385260342215354022544698374148352019348703289734475360057774415278407475120767810858874818684197005767542582636539022384604410578159001223316337233053443201956528738151651808778055282893538918585565562626268424524828729614368722988158652391386006216780120446974421814058562734044473321372017577852284994222733842373085398538849350689782728436714666782463071949077961332901792755021921595773490641070639771117201536027559902626961601067652360966115067864588677274983605551574741742033129735791489617211387050844030086071814773696336255174915287393088518213829963858402927994297188318849759829678377183355898325293953384404643702810809444955179030105026092995213428474783621878568511300259724500648355706437907702155562120670694830936047221051813126620952138136737553772597286524336954798522422925385439358830714076378254061077417967535659496717438429808873806717319502022564104467240051963727325731175252865310951956272845785655971271643583060707707768744663629212973096618310283069987383086568072768540516622143411557675858077714728438361655426329750938757375304163039878174933207975149925090260293368712047053051238350413602269686998510970210389660405563552853203148727321233334254937100657837567438926300534630354204387033909135648387896199917407703783427923459862275642189465697152187548082758730344754891078837254754332911109550852128628146073596282923206973025131569754811134918881079272548013885338460509974820908494830290042550789765240446692699966749926849058291155874903993401727356196818301658300035592837270890111207402298234679618286793193208693127241437409653590797307150351722023359141903269233716776390699338452784393160303468891488222425236178938068761485836612654463441551363960058252054804484267102028085620063252572060831771544908543366817499490639959161107605620888955535079572761130975570912632264641582332417933025755640233182002507730771587430193315492040248722943355859950401195673245006112386472836679761170470037274036548446468136713114411763820182491688614497877203859199277088590038094519180230775611321978700335170342472424154069987194049030091830728521374974776295806768883336173617039173020620685845515068303382546551150800852098418521280744771564194432631521420391081952657030423889804921507324685980409282362770253460031589570015176860326947734095584435810462853565013131530544214048335136805750310171029104071561749597520476163171752519174132593639653684958561268230518252129599958261074804344459090328371190774028173182124221978855479105377564564415216836067437066449451821155497176361379850054854938142858642100569949420086788237588259464168682226781789395180135381700477404619974846739776490055001149388382783354832017821265660010873357351973282333074428926527931285359643682164362515285502327298573893341024662105808691897423431935180734384366240092436939362933238928872854177362327600380549882635132047345926430351476649436657337045744088669231103870313336780054892196110249016085051287614652794283781113020326247287823522863382659693541787687524612386892005584991388524302927370632902980865798766440638474792243728544988285081530492493115188739333324071940832096014764862045227232552450217032678134632600397845196025133163070046189890735077416185311097785808180264079442117152426091166215510799217485867971651654421987689122122072784522788429069995252114542101049440024663694168477625891080173868098265968809190262554124183867770449263709275833191445538599212022100332687831928875466111212307175566874879287228964556797030722807856481497307077521596937410438198309944293896754974798215421074695892639021864215528404597779974095435683420520562501655281525472268252221518116500731898954552561723379761447752667762906640056790175240445949582428844301375730779247888390748343959536258281247332782621500385831314395839219258068912845087886197680740317296564859202138009066852222451259257300079951902260282680025483708650637230878184379653101842119269697515302240794162246223777772794922783576033247885962234154222007695459288880329999544263492233087199224982670720043342732938056175668146411908746026621409905935702797883309787900799892769255607194426196431241297944167741945131332650462857275132830123548771466036231757805365134582790794314779299930951536477840544025340412250293533845536773389999622526145135209625296094314482377753818251432633089640026366092319923106830757696706924937997498979486139090319978811894631056978780078771418871324496911923426611913915548228701261105591006674556284948723441452789239208113208568680379020795896257977320066965953244330900275122119384150674604096319013567321348302239689743604348260468943402282221675194061824225432668791235691443917360601074462355139348196095006546740392821651606387997961868433926423590347755742612218311201132770565894722825686677540480730262854358779997517742926002107758562739894075597151697250403620345493021131102794931825007198390784099413666358729802012510906709121848027210560117692108251674214703208481605512759591271645541226157539632303156245535577843229007469934432811563511080454629293667398955819960833301218014345395334749752608420287126809048862299252259513514286416716248342143942627625557794164446915656361525572221480436345578499570726994942940756885672158067437123316466351605218060237391103049950760577756588117292952442179041701673332795584515994840335391367681392705312277530258210302517021274511682655892232745923981224051672176886953997317962056718243381658279271779106664544623630802610019752835101965971323402559883223886236137712754012242400545853158629911067437617705520188585264869859435395579309984140645683385587855463954594561951190830533019498782257882610691868854940961678210522083684753815338394474340814576570005229066639075898476588830745354891742885478702436388800105814755954540258480971032780219841730047575998101843556043414227507700251857272861799012833013346952230181344319567227990434749548500806018361602722528829049100940426478198200023762408254054677361425873271496625255205379219809811675773403925899438278520271855693107193487191964613107301129067623110884737949586722602983914507843190979084047632701793633166238855291242368720515644207013713455333260080374534985555636109677744769790724600537735069192666498419531356387874388904729991147601743114637555842987892727937957984864993034183120050487564485270428070916980405065540820333545138807675621293194902640551230377440449427104697465302067229438230172301091947329534178414632761460583321707884221571779563702519285132248821142327263774626371037649336648121457417111563311871098638953133371010708315641396100812576567785307904207287587236613559656719902806112842018339784498678773619591971630178470363142049978868881899199335502384765708643944548251167033320701498459500430119140957767514435348556238928168272014609067869068043380709234462527324940046699249146006825132197596222159998640875764194708979434050362931876395678862657998592041856870134599746613656048891160908574209809203195085778678214352044453609945880207608796841044207952691077834046721980335613781852808661162916944854588652256147700546681869324941970573039777499774935186887270481056731490009721533790283998513116761608438009246663968736338271162662279081534184127027247318096983281765081857022525441376263564947149359708179243154215523863567249858257465669797391548219944164723478260990858640946965674928837028183625494428698293396429333449395009341220472914503113818633646691960090560742406410074818819209898820604479215294793153822551280584006128065938304212124956243252581481844388013951773708052677237374013453558685742313101440174374839993473092069201875382088104210084409050540645567517219518586268962738993736146737706246402043659638591251928157212216658127098681846996855665491101357481959567295375052258834042872652747812640364399175484143392451817333084996014111220378159830967512361606601761678746488731840174970051712449342780323412985595310942227347951546411694189692007646546213001098946164586235848680039425645813311603379374191027030587036664764211279523639929481453201661051264701102829208820319561336480310702033214977521562050243688274455158372973595545179721375476697682605196787071188295242769069475974612119110308495868888550731526609594300925359456314750216747836537490275203676853395250096684645094617565012670271142941990645778200598615352741474354366979292262858587479109446946154213982394070371731756718600459990992868129507477696674380528443436315658114572376454520245792725388572752479275171524459397944851763333550772597529414273823664874691123686618076529133740445915946516017521540718461984170577539968707419861069417810333457342481334814330035781872922304344227895726789260472620713140368849793013190208366961964898075425494556666847284317449872072092566412551845949947893117039010357621743853164530254057255667435606539660669641176412929732747552422706414602887922277270658733599690782939442384165240258364728871709113643988557159910559761086853515431590802039540676963975555890854769103302085446458675028687095577033992352186276820275905650986763236845580142101784370641957568421124239467092939161220941209310912840508930084315783744582728573906278297664482746693187211304369371382551982822152205552849384620629286494696044832222808106075482455547556810621314615283980473178295993956167746672617347889351014667744926678298148902040102190418349390261813438042558225687530259455603214411626968993879393168358668103912344751169896422839228516113093865755058978287840658261623802304670985645385852865211330738690987555058874883066203400914796717367804243884793708084637615259829313146665793337033392030613873110822987272713488100627988638754007371160395154656762024524642827071021509674778944442367587357301290766635936356692835870015941597115642805105750233650634841537420014297817180337159467572775049252195124672819615438788155822345940278625071407588445074647245299388583650309848843828179081788621611661031817409494874028120656468936064762014027887201050749532716814293118040620583928376620517423896374299447278703594474687093522689469535503737232639918894929979116849131846063275999151543024318386842791278692906455664442686909851071078813088596645709725621553955429464542275574834687076606912431331360414352496014888205788608190989643418881181925931559566440566072346556993053814613731535116100794291331648496748563214912788711399678648010779196651085699757838773887905881983659950772728327532326246392456472192728875208364505441810117510781772452214019304163380935196825392859057486704357360957416409775738420408521606158431603870924775683378719078086183573759076328909228114012125447511698951469774525640546438232676186840029915599002507797989916699598077132270092854042367598643301319287152558590708281492905985909166755415633684607045765144355457735509138290147886370474526279854361727629663907376246435123064557473571817230466406476628114658300640369138826913573950596108913686157101865509153957113248462143683238699242195119305091534273256420473283762365636357538236983638787696316208104049299994659587084865992007413798333765702267475026657649089111377661422983115605871592605141532145687220461159135674600089971591208507160997510106330745001185788522685388916567503463635427662267940344181700236965662113347248488525148668125098347109505227449770111020712050760620606193591044667947745276767175654719022754352674675672541752072786215654401196530429324755158658169554051755424234764022703474940603769799279579060580653925401260230981118299685246868500587598261210451710174006763040116912379196508119655354449337958075410541555714249799506693255249876973190099162140506321337136718273926912002953425081644854518798470536158727024068234703651829442135159552657666843496993232275552395600662677480873390230201052472433409251138736546253220078468877076717200322390145614754395197425663593078092125294984045136309799898754277164391408203024324203012179438382789840116474346051741663465146471822325609966265790143051851697177828872588200746976270941103836567568521815940536548224885695183078837241551543837658673657242973741367734731952512237349018114833097499897648619961501210493183930299961818410783392867912611000021399159946106407684307310263305413650047445685976300081218974453611313257150133611110786151994215918143503279100334305754157799701452931473561435303390824550552922576324863613134374515707674932815249901148688349435048564773020559362469227959355387456320385001559791995623550095493048577165254755323895777508647151913532050083447204540680010251531499237213400058244772380849402582556998685853848720317241622607272914053377436954991753234506060135634970299727623572986312654434742579711208671599207646789321931046428837584596300745478299073498308573544368969830783063827843064659636469842538950551339748076943659117509161852454344149732748763230011068058305451075387131034967473275601581510529151781221981386979509431548453237221743711293751920789063282675815657216517543321999958634525023604615530032688041346697580476948455007662563604614397599711457578617201370533305861616780811519095601267549531562603206112550380347018270588625957074668071860224757405257007342356529032010435163790547853163044342080051053736690398511929115837935786741806997102332580951068049989007929651548742698675327736786422217720636906209407120480888084796088684208431176226174182666531794610090932625916232561331870019096351649349389586838768952240902526982915546562315503792423043773614036623941540401975758226317273093247233940025676596656765635795976630675277279211476795066675109263594179074478250815869834579272072816582828556406094563043889065595709516241335371455535651839685610845124190717276746573113203320603168763359096044877494819617544253456771347745526752146742756053706934937907547693170018794432604653338777725262284560426814697352939891962605977143523355911723081928283168277526993992639294623161125830447887828270531085559617983315039555405998620006684172907536170749130255978543450059745112084356778562023734488661914181669633068437832474570915103121528494266970443997168122724817195065349953488644455780437225103964175561139257225253119417608812326671950028124730814965710856866914451103639127552634887442613101614272922630519354451048986934530892241091937838601640975451990697346771876788856222889327039638018693964466381305822687298847266826967822432004135115534688077844067973946079320663587605009483183074579877745800722254194322905900388970816171268352223591970202001096367648701799462185966580197200908562071422224007519678000005284790533273888267202210416473905474008534568257797210520968826872125182680964497376390522359084291620869022440040866034991619604880560896969589087040449521608481309526399360448987427598200298090033663684103678582911422397905798931868923716698757442944306333372857656984203317452101541276791568567949891023593049257788290149306187167305384193446277824054039788509962755684581030378995125309090904801796464878383701698046095039650656030633099633675334325599043740939355202829697157618704773718949113258959092129428352325452711276923342540094869742148350654992357491691403712968102123972032028301341809609803462625521076633439355627580512084902470224870513891129558458139480579984356567952501161370016910169464730797762275660758841340567136806509557362625861689500742528082222982026470115735364960335616214177415734745553917439780605060673597783331597602104278029701592749795913357092360749093334938791714006699299640813928885182964224049537569672619598850655063034173873240017614208734477996874908706995234343935065568334750743271377498785974671421812871041491123707699741648091331815724666876532723743710364890490152490062738670635052844019476935698738512388581168878962408354769718305174887980854021095677268829474545023783383223759492973448147623993204769117732359377012332533584362181120446269650413560444606745409689915738712059168851095743657273706329791146557407152843990164473283686670459751367195923870770769564009637623059947143281095735273816921724952067721700533305928963011420890417607581826772827444051818822236346181522243096572260241767746075865142500475369937861293938767280049552951997556627700061268353339858132031501427453648187685034952792584169737431361858260535347530214306312051770314994180675074129608147211060335416336161523488397265506829227788536988940618105072551589395690214347204437293112780886336519508521208043968710045072097934194837636648221165580675406054332294888495092643917830833189555076424079550074850000582160905824508683206699798296883521593752152355770273489778648090358246195316309460257983442718502179441760806169661791748773955467164596858991606717451849108529204613884049862596269933362310821584691221347144141543154107048511594186656633104435860136218935752316234856041685689890133465071312626662007778444895738230333796533407510061791231386051856759556060665707530182552166897149366850628385844656184101723432161554201949228846642835964647586429254205635434963853497683231475798471404930247927582761716076107514978872278697170623111009397561336020868775928536362607278660748128270804152918427899901196980834423835913096679091174286936982191899769860749537796879707103525399785938382972027422186376054729055527933929632018053100792525813090814757853631801057441595218293228888296435843620036877522016397973356926244899011709559427822433064198402753381962241898394545270778437933992084216397820833498535616824865993982381752618774587195403396263826948364327524754443189822407510935745103399962006284831235330631237553706771649487962828074887514068991256253986062530179707236141665007899121757994161099633368825898536321007242820931783547807139521364078347661923852643448939941342920603958172274111875825038872803132847157330830262512022904967856172040183812246636709508398547876510829469958951569487514335785557263217477818278978475635597879897618829321019412106555826008643347480080101940816026740658494260071984603755348560748220204854940767795811112027164526236485403767034326435554482772326791979210444968612559340172504465562134185133826736882079510988001670768198898570182549053407994339284650395121302625806431735029232093168059570768391246943385713528521889413708987175715715430360291642105598475183882642993078687139620901694686072953814855419308042492067017464204979661506362771551227362862342311176033166485950059264236277594497563662089229071783167553311670209073190091306488087681170298586700479944861453421948496633600823110570156208292144560241345905429387170783739325227614579380514353059872525641686821339654525715485295240808380374702066501018277461886720085525394718833982227652856320128996523612818640405003709544664331783778813769300099226700310852116768460990229346523634133828651579324456140331121167287483489374950703440234288524693630999200493459024828840909734654127710337800181441634422251956651431869083286140858337453311950026945202878880678071236312979445924515263302105400633332632403017926959219595963991102278786062596464549594859055015156158576596335380656844874806107242385206900849624796953336210711495316142730506791796201347236816939386565318537337530794038659995514941170924254247124957012480414424878739889446976736237789077378649393794745217410562396528209691249915292328880948972494136517634863942596477078541509987151361677136659815327983406001274841841795717979639097284329582709600674358982708758422343989244201600815912875745305258580485710511176881211528379578095421869973889987561215812832966117033348760455362921126409160367058297427092967804306284191532679019205489666544420071228298508101148965030334726624280208482662942116845093755187296974093350813915899719441474934674699521707782212475099934767457690715599395591024737422941644047749200264602009692675814804522804151898636739059351581525054938902037980324055886639039356988378631458750197245465368907375062355649028246317837129657720617256547156741415220541930836929729471977443349790380595553514061733212695342315634677618094645961782574222165568581602256024720002728644360455166181816030774352240301482821005219546736587347420280999560999147327150245988458264972575769039880426587179987328919155155444485289515351073854023859442172931368405263582469805184781663035724050948682727973362808102112537687625803275767538152716427518368777522812306632123229987311665056194790195160190179319810332829021769068025735342190571386442610133941437571930536740133281219400654895070061129956834926113486986114777601460628577414073537117998465731620748107019879143103707568088713693270897546676612150714375979058443326237317387615762001453829561942272555154882441080970598250937665076165559986504243114476073445898639283286342596804019749187933055070023758357719996500546524509095133208109669637069629482137013119220464125462390056602722928200704752685336908986519414628934093373372139944986017623801586737548739954975384917632401569755098343829234008399982329888914957549761239631350216419623911188595139456086528678035850431458035363190228782288450275380554562412405055926025133728485890030199944011354815858055372367369031610441876939149894844240522728679114625559979789679711918639509895061819989227562429515965741254430021564762176110935827868213876008494548148187200826659744616833075567628048823967066764868839452704508852328787150537222799954846422419120299019777603035688066054518494387247302625128143822956958046238135904433634504554426046140323086946918164913634605860223477050385544473278931838919532959300077897163495333652918387341789347692611166133358177014057057544599677737422815527511579233177425627827143571409524014176730685172672635374642250723037202048708178524601596841552963450763116007777654251955103565884308571927755331506300479874731449004887563359834577345860758095384568689547227058306556749482732357041915557608199006937412206226477901821667957030427894500532892926497853171999400569650293558794510720895342245547956321689210810552583401545830617523832455431146991639436147986605919054396654991721301890064711853542618606630114581802913319674747982345621997375690807553555879860342669964036383218965629589231643095980687936886147601904779180750135129303212849589771106654492677122180559567886609803056743107390840512787241924067973278501395803106975762384189849609324956827118978810001337986164247965352173363438364730227092090851759329245923280790467684313902214322351714076222063658683016035290488362477386049883063544515534353070493309666753673632250120795816327038142982300761564834934088912381501949244830225752705906145315022841610047176616985485202777150634258512648343637956330242339790347464661298946783298478588485534512774671055037299006658873458098425315728919412109323898707947237300590212907253481274553956804473704269216623571205881068185648215185554465068241745081410436873746970000183170386953900078649896439144774061996596643147930278281791090382846738723120751730089018401498064105443146866785646992622883418654563293455786921093386297743472793218868342345168826111541401910830957764614001358183497878823518266525442123706812654691718770389471066391239161300684009849652809765879155667685124159794970380976328139804195158999229855290131239826734508731622371496970449578649376269139675574730527635418708212862299556770568691152526006942355195477072005279104681634713164188245294652661183834330362102887286666144558851315481150199063735892405196397046459081745848349961408151331495010183415746286660941055635391421969279007605331238271659528399659911629491437452757475146897555297128525480377760405346866636506862509055251402397510968796835770156653591998818068253751949132191092043669751231671158234612474813988494692818595942707360512437870810133615137051869645259807040633401848099771571833257500755157895017325500218688398088736083615492025497193152127169295443951134607130239184517278405353058271001598441155954469051990417558808104417352192884411958335843963088253861007713133729602068499403697094590674815582436579034562648909488933360428738449500242631276443274416127320062591048916152399669333687398669002476240060782897573631114009587364684505584180689729086230077539705094087799697105797023579670851297478470955923424669467138994074714271098517441359705318955936631722641332483861219196299887606564345293919647615992944750786621101941229123200319887337141966365354542378401969238953460353727248702813114627793797168205490827747853978997434045919201231454361846068656109270851548511604659793076000887882979200017869016731712805155181435784432032078080703702417788674222596539966809208803972051752610260479536510556092721391280782757645598658633208722559189562747088566671564883095017918563347431514244883445940156138770905255572253426755685422859136621867279662314534649105818918823697458679890885437040670098306264678888713567276697344865032398165932918630886581062340902263864495481704728895056103352685034542181953379356123529709811530438118904620954473664380767314092848058362793303648677451627610255405288008533792650624898756956585695920677496377260058943192525017638967290945036096110103013346417534742020054818241735269783510115455108184317131076765014614431532274105695198651168064884949488681900155347895622235374766991713883203594217552162215752763706275632332979786836971449929472109492938437085404415848025738970220577306353599088723950020984943322022803668513532055689226148694965719666601068739199681354006132179059171768276513240791513745031921517579353683131172385660847004638529509443180857798762088367230764400452797117991384921684722055704536065489092906082059541431366717605055047283602107202116576076771596961923839584956351354661807948196648233755383316865719951598867182647068309838045779241211365367957535884569059158924100435626335066133546538088648306584413347126395449840829292809818932213743994512683747091166978395573711208777287721875242132310682659118172625606577723524926861358451279528540124649830396816896016808674077726811136202390563691320978585416113344962581358792886118382094381032818333430397358580986168440268780489810670579513748022572429012143053660533404741682160032825894398505528049698292827067175123727126931426962063359316860156949197461718411388695997472122044156260588952011393856646813664284809098786506714480379046085892365885359940850314010002432600779790630989916603415568555648296805977854742160683847620564139272653078104848208479762659999972194103197671899490395065351895990046832676206637515035889418965573073267122478639038588642432526330083516171726744149789220912938875085684558903266432521229815910956615304447736325425079841624411821279123143561579168224626526158333568733697230236474054546328897554880111598815463254725721482736707132305042614197613798765615801797644609961356270886799350738827321757329385762322351637139036968567088412089795408023957954175670714969174939890611009871154175759654668692927670480446534803729535427879278160810530573361272577215183517730275059583959063038398881373441178039727906331049368110071299931214581826884449312814251457922953755925563373559432296133880008992879194380511627037069121822741259272404999056656758363442438035324546798325852967085477739718420928990007780737577216252087902718867422169434624218210326537556105378833481590443975516679246583194693912868779429541902516593782690039687135228803110557216143629368514454605380763176261947050390791055830574022572078944550684403040248001609870403936651997458588684123951009763062671525457541386397103619462935289868194077415365393640953789001919474421234948093859313483198990533049938081915146660480110042428573994336146460907029911198264212515768966669314846930883930665278847344032165241148817983973913601337563235260167527297014219127451400019421666105680222777977490711986302257541643526606237516075822795819334877187801215107611043510622009256225561946519150883374797365334764133050422309684687104866710257339979219556032264305001623515122404342415274673066728547751751511388063257120596158978284850334773808793537446045281245999508301209320026850711252385534132091846126591151779822559048592621922739527413157067910875020034135390612506578545681469845045848222968201082289861093963612451863493243714093295761804730698636629134268690568485379656014345979351085335401521876330748837962531980817447995812627968446361782102088724758563483046280106248154285229491895811268232656145021449066418404440015178284650705369640340217660459270748783079627961751308245155837553854403932597918764723948168899894778645177330267170066772650705476743219069112265406417111746048280735239858120339408843126793117457968511163289511516311885183441723447691981382964137819517621525643650067762867840780627181450279498545191619577395930756054868066569291045064106548032980986306250435212085728057967480353786126098692614212925898164126194213201988821380000787734582852565205929122517836238337881634867064895266155203013197754447245746311107812689809994651642763020204488266471307890444957678128200688970771951922445817491299877142128029394018157423997941130067978449961974559295534798096236138584130513380522400290139471116514214981879797543377144520148112422664493512684562432932491492792762581957266340639333194510928718215170065832018962025620426110125645609321056541171907570097776987151237758659190458885564632766676421499552598127651158719691311764685252289011459023239508818299361885660798734886161507201318002862279220374751975914111831706523981915316545593417541437970216387548886498844385202694801566888492868571430130220154335283987987847442421475782955466031528929992095162542679299264816170926151197740856147294834322161521698899549706084056252697532711995381347041915770676544378078886936628110078233093532339425412337874562686282633748992274285980214678624135554878112604898906501733864070857169605971678919571444376356615211094324184188372944985729709699811530032264332951269498586448102670327139911738928071449334158629557935121467405815363216148974869147573677604929708185313508195256475112386905053685003822196207067139860257045259097121774695659605761371667566567267381737002015120841042865931213207484992212015206427679592676892458522945345913881883041775393318419909901040293822590797981103927208381737884899698986803492549106628984426199626821478314793077336308117321260732780693512099014502197454709124282570069935602481609832731218236953425004232651622363868596212197876929319259517569682749337922859841132879736548622111567200267895813527413922670957005181996294971373114497502511491957062332082512459769261382169461050032459583588100678920144440802441598763938543366484223159990077400493569126082901592501447082091727375397584423405520095985290651155582713116087819041878408733655068363789057549076688645875436983243102084751676086450437960436541711893243018679255543961508199900271174050810250366335966527343188019066292317825506838300911170402870649117997564760575597203629081359038847824423758741429906946522529857784899803060352408972178339841224450266364848908166727474919990766268731294025165280861464035111322174679803643504961163835860097310029025474954198089930236813032473153562350831274708963321727189123415146782293660695692731921726232565769070386816178413119487294766217997016141016494183844378062457354929494674563276755084523909874927892102098558517142669281400874312357279711261527500389030566772425997905415411410288634673485801754338889274902629999023323205656333795813357025128024348802985266438341158550077381163451772606143726826913421400472055713796977184275332873613848698937912816288637881377547404185330331364194781293460449563637167898262529588702796728113407571025772124278235867325905877069012195642356688111726338978610589624122211077023907553842827477827078443511342128553396339306936630166758621824091120450527175285835688604788728585125154047013079588542052855015790224535499986213549842834122483415137664975273777753707706978357814141232914741361234053805330918632740229252872010162588078614282552162956423022462033555812065412406615559928384362207983022275422562920673386826480906370353278107083399882442830118796662382986256211007261479651330636068286431454516832693975533991537250868581003197670621046166195508860922119026790780440640910087554359805764361276608154111255202425581216897619390520113365581020480938122688792862548303542216731660510006352825828058799234353895675870272842729587069816319453353428249133974970415724611097756090323316423173958988637479951358229571592516098700748494888416390312018657334671029495157644072910246876854320244608953199517708737848782808513666764167290668299296132094677655329359871805822752045579674567062437557725752244322643161617167668525029372062458878776924242002636543806438824069617492016985724376572840814607633522759276096674488136497353474334110965805957275593636144044103543344145273410380820506676815342327601808519138135930772944080602793422779385381679972424154136844034818976198894113422395232859309914529440158799715469612436727638695341171626986961572050904576106624490306601498625166119710138431877667889177141495314770845294245699313618345933763720741668444144759025480388966634414180415762068355033210077574699879643960570457846992035785353152084129773559928067014137429665572305492431731315896857492475152355998899941058321968646272291700723375301357991474248146265857494540601515586871548438822767006631880469509420220129844592833325270606648085817652480117615346831448897432999546773204937400534362975178925083401062485936207602610531420196184855582953152136571148876310666033759443748199851346252357400626559947223072169376309166192440083786616807190132595244954483318787669708775264545678907098330181257980450064745644437492724360915856408588839077751421011361431964897242628943772153130553093598803391115107050007728387501189481355734732616831893378526503328515774191222172540209917319463845745158015807790861743599560884071458321393007911344265847952432181265427910477141269786585275900260960443067528235879155925214642943773989167556427777064747741737059614152838402892277843335123791100195390865654871558323165699453914732293994785445769758697131050978004748715198674455370421426088800734957846797439294942342363014766990638355116036391021751412640933819484921877808588378937132453958586202718081000446534716786748712625386702809183731647737975151999491079795941942705033318721439008967209563129521067842586943197033012289666849974282193411376015213027726989047875711466891821306842932914559271164313651470339869504353684354904298450194332961328569410509492452470999010294755774677816811821381880533162517441141301223360674919470261694497488598669231795745946395476859595808795318580785946117158543896018634001205851839405852225843265130586876445510166866916777732400327306581809664524111037130214437830684339448520246901071441339891911213643571780505125212258850870888941251323494356303970680578091292586932045947740750533362940932993846908906745670823604394642679359331895863251831653505370761388108278002390786323070522045962369974080479408689478986766122279219622002604583907461679059913210947697650514127807653910879311711089205344254423176442254436622229435567696868087977486653522238822339279731518425203031636865405122851949605191567212414573154431574095907087297876679320372534839983547049800359053029956364777467965589314998714684917456483393790232794381295334398000171229820441991479733815299542924389180715689357540229057217278141456097355332304890368228715827561822265008877216856434398603560045629024631140692883934119886958951444052729501027864996578980731082284539771097611009501313448557888663970936829840411104802913059159889142186376706370069375777716406859791988496736011873116083578230112975265090808040870141863524782687278219009129855861329240553988405400221450341170190931976194149341216913056198777021105088290127332357720077983523864639402192941127409272276281257377155947149997803340568531786955993147119379995363530603430491527974253426442363958286100827048956631331200040721394433987719382729882907891584249699427359777248330024303184255970276366154351460343646734003023604484741643869890152732296129086489467966141460894403452074132698648791030186257703373652465215615874999354645240553041847337928859674254235459600000727922994515017074508519814010294928711274547074894142788053128578567473478415746970376550400694612847032209783043799483504160098538032024173467441254623042475996037308530722410716471738353008635404613490095242162106154520260018902354131354552075450457646572269241089053458456643251674048201106239908757026457508445048209805716868987307358224753895098190661303028136188779164401260508367450219413841821832898380211067140903333830397742408051377082744790426160221324126852194858198399723695945142197605514469342963457530450977907399930368962823669492398304637368857485780052227454617523006095815517231625058642013540115911255118195586520781381464975569728779309537166141271735835628739285688980801350747951788785428084583620593960091423233211983212302255992471222608466228262099447402021287968011359225706987498239867668169113448294265302744566617229488617568035720621117769965628148645946151840722964574955850967205477316143630911188572642792600097486550128538453296429192694168117741475200224340161834199740631739790846818837315333822395596512043376170279131131258205079034236071309525887532220953199291484759140760248466522015826068319125231656552895115580701835753988380371022563914345910761840503406572953923039382446865533741561406169801253964159146641041251384702253040617612831843966150290964109370735946039774521467710790940310070915228080963525588247054923218092815654291769777962806916798804428488210099676354566848020308379164729889543624678459199387868852204022140804018944286164236495525736479344353800686968833103942727201982418124935697955307724834506591803814521465666676120751354764953156572785481117350424625506595584159046366242572611293147887214014591761393619139496941186325734285523529349430476396727500377125008822945553638760031855937328740767951263990064761627394493682812017149736403280327089797379225108253006352377734524718608819697985100154602407958308961214054325971418357096252839367716093765356938093142146005587077413331275689751036261464620167970552533805480444098672695129200975478009691121804782251030063800543335278308360902976862052162806567890965162291782609258954359217581584864575229862271373190839084521218624655343339974802410095688517912637723520633529794418076554665603619655807347989711047953774998793124109580651301231683965388266003878214132466515331051075583314584829418539565612070547328809073371821894328706923935851083810491507262738652644999572600285628697095816397633542001678193450143151057344319568309311042646526368732478226541940754314043848668680730744095282997932563781850253517156611365262051790116303010596869233467334580653715162536260622750071386841266014133761490657101752758388979616096948822111427006796846729219727763485318577973171024217406670072591766357997298197985589663310654498209594357011533957538938740054019701438244650303137511612075364998624321678390261801042210309104018390209267069862112334449595379464720361628220213793982204586738199996677910163483517009066213408597078669304710172192885599862396962702184772748787088039264804171554072904657267279183763408603197865057568746828103038744573843380859580017478634155574681410989193809173601185659222717616835128615819856574419448309347059479235940740357826000303181788365475226372183118377828424378097064922506356726096107055486032439467869738535751836757951630086780081684644688141357700747342840132133754213090945132219538358397130469922854029563772055042421781089271793012770951554185522590266137620593218478607185376991667553321413909800509775668942689131537798689120767875604680881730056313595075890072298509560473027855641903492726587665920512367039322399644205985906709928058434650614698112709380408977406932004388038557713431258194864350474984724442742314415328557037863517956437238132264594629487929704203477430989052754196322976571382825162330342096733424978553126918771803117337864897313654290604720065679360059744394031396368529021369081252667814065145882585094307585878275818581922840818848714046850480054171592706897578139877069347645452795846203970378031137990630844957275819725455297023066045396784174718025986310015398526263237346031419224035543511220961056691593618434467675732979733000177037189391724159620596107128656360329402746071524862473089052117231183527518205991630269331230003729881230678449817499572285269144602901110866453408649724849257865664308065756331673764621649164491119741563453333874304819600429924976917141431560213707697972184098066474863433922313085629575020928703384352625713571589710418061797619466366599077981060318286928121956613800705188019997959407024908319447154156864682777924681313186484286429625628294590029248132427902809706486494803589140197691428467060155580536055703539797508619775248295717698862453592465680066969640528521782740082585823712914604191209145989409140670852097902362912638649837880817170078761665804916077582182564452949607635890178284155151835671525563486341181711377989987186617001285820369173114682552291039910717788215529064775870809244425463810695392746799176538503508886422144935210704519107055449746325453116853467948686396452876616811764594697801649249747704006603010045660194141390183764748283958392481543620325542382596057327555714190655457079152427707038266476982890870372450702657525721107736086977666191880348543773139672204715920033188689778477005727249901407389170630744664658525222457211921613620478603287376372920369543669558721647658113788311486524659319869300467691605343602016456683925720702552373736760457164636275242275766792802876010453605748737528073051393421136545452500664657807191061756288633952132562894967546789206231695755617523178419674238782920088622975735744741757840333283219864252366639140124437009431877173497698408443490581017652536001488178840638909576599052199525810654772533619545751608227238001919826214561485831473061196353412984120370381947547728719341999849912860584075799630159429278568337184365678900580516935448117795265183149183781754820238695876007716926173826339035169595424923447092962292859817747940824986476988066077494943941707319547401387109564136001509056407054349695491525099757277523672547479031524183658214850789483231503710902861996575452755762692038040731929222294139995181777358354030026796308983027862764759665497874356804824840335444629814356114965759237648232660082644442008229884355795997622366852093460782995992031834854154638814480905842714575369508401681630451301744955934577335951628236394654080744799376576025329464776937062285354628791302022625919297577499873219808539540438367507959225901018560822859319607352748594456563489421491585354645596859409346319653466734502569124862214180742409060101848776182204102493734383639351293354227424351152136434588590430980381089169406797926530737909908675934242839054626246010843170327909449379159902076164296126421926907586471225276323418685897410662737615903451342806961470939185372391123902912442234460769408278685051486282844549945649570952288436241064773719378339292674343429614351409112519473194928332836714192587975053769256559611808859652791119946362261107070425736594030453159063943265191915661724628726238439286925451809665349119739617855310380701521267489276474492082496239719199012692153392177616038576647314413187032579503252811625004005705247552469358529623021733075394476117952838844204490595399460295387884078954808993993836577557307445478760232792235400104883129126398935261804809290322324618066073441439121104418570671486087083140206815919626955325770306977693528211201339083254616496548234933733028189574828331466786494789357426841332694953645291228916698854088226542204124926564462997656735458673882946126062033478753986865607689697176700383199336396717183742609724688695621728284365650224043597025109978158486491599406025123769658066418568934742346423829597303842467920034287688554673426559257527349377879510645511518988208611376981678965883399101049490246143598003063343180169415232094164544375638363425825296005564721850169521209953320247017035297699003382369044118102017221773159937624548312791529303760877388949015161336987733914732754055265554691555016690868928473037861158692484697446845468596107092728178949964012279962038139126641314162425427692759028817309609565604962524271262101847398622141581951297694605153148033633826124352809609407727624858738748905596656081521373317426807013831706901865702618371312534300575629431794125194904078883034306127435162611224162116861292376192805378451863585559723148151045504387012366435082000770396606226856750194310460663142380954530835773701909130153130646657600871064529583566244568734519478432596208251056701717954577406397012555467198139476349391428839430819598360127776837953095888360986928130234861372197952187706642153805999478510947322444720900257691645989764086022033780204458505358914485826253121959014709503152463373273455092479268260800745412238805027542380207302832948639391257021636468129736302748964888654612276990718877629146408810353986919094528307176751733351725433091439641758288263863249493729803023454481138526273334803426534884327865413860710817892002714879101111605423527655365936997521082411721475928939107405259313187332083815068047173485659334337230468766517598763796167523479875013329749499425709838940337739096164316249106031028653723054746033240140515745627958706852641344502152865892482989095618246643837132053547144883508137578126531269674684896542297328895412365234726600064832021976914364430396956098724949766745797700175020525243160798675900669896211989633714888680549721785594595965880562592520572726634577554145377336555066955035825000724333274353423414667972178701004845698615803968262300730785981148988262439133304206338105311947342476906357433657846984838493328982478573530547839494401176852854888770993398524662106099652555085852988517956444712035978712436695248927815522631073253472022087100249414934792343303219632604817861261580116215892505610953862733503871436177044749573121327189744146615553947172570051121371666144853837017494141319353125050435593262098090148553161369746894931334090387531900256905613903697045923784576924377772631235386346690403211149192207227902560475158076150061194799279868289900214472987185708738617944331673341928011405711906789155485157830221619270263930596930760594256074247082959757732737598424987954475102959147956573640552300705797929570205759418320055243070460722891842244469850822150101168142385505271054666570493698688330967585446335355559983217388535365070109216678018500409469051492358941779949355875640961045796152117478654629124020931203849455263924335880012572689502353343830439778188748117285936306482094550737943574149401344047208322938160892480444103407451825421357019061552283581730799665304706849262846770507138258975294312467407872554346119796742209305469387668264135302155809186084416986898406565773286924279060677629022856106488360963406081700059064900716203018206320094117251012309244173607219494038641030296078430849451352240687281460995850474222246996141461162109502764014464847683998359732297335537498243532867159836364025277007526692203394401535571908206773167599885413617101310962549885432820532809559310970878717323945070729478580618523793038027920230590090074229271691019451331111158283759743418154585394247043943250892287421726393189420318959031795176949894626699603135566958800800036806300663209325648634474778487460885436950562166075523086839742051424430581968679710757797906487310269049262491200452874261114790445518695668438941300433460868803081916833549373128203641410860336114776535236438922762948998912290635262208948814038316290927318171698233282657412367591306745037728128227127554010590148161257300972026016111142319058150453166289108098983223063428355465998367346467371049351923663887557693833800741326884385369080324865119307005947503355980548473462594293725814074671416943345814907107417369105248180766680393760816532807607293283242681518200879528868705999604536848456278035309752661774111662717907646579686046835190513587674091326693737913432180940581038558551893527536549885896410544709355541266382174537781250131140636398827893236988126769804825208730709619507453104625673075257711024560854714581024741104073881111583109949820118195907233670259335977257651971630418162360318413821880640836511547115351413389273925819166421140593858597723461178974918304030290993090760652641749612698888868305156024756839289300143182139445830026441327253978556426148934261671711896389814888047280177254166713305949977952689084941414277522164822598254281801286698912422123226743251449884492227933787699630552713729107915941269626288209173333417339603010866964321751767867730718021371552265488659477161211765778470801591505676138288640237752760749194051098091903400581045130087839552332804330777120289753913090471147518002849666105166581332125726572566244395609793092416302957617968212109484669005038430073470062752537615652562635722293485755607055889002362898255089920908941322918405944683196069601085770982503225215136517190560796512516070573770367816640173816605999233163180883663646248751786690670412515716930949615007837308225825152912853401294190506059147023231292666516779926971381684153778195385428021419279613413963644861847259282187777965375815502245408084799455590658494890304747978076297871076344062069072171769032397177658879815608280426809867421075846789013525296251526179171469156254260744420028675301934568140639886612789421783429593536872829591270661733253960002003461770925652572411612689781466348016126364025096434348810815337426086569290507654453931112261589135953603566798010640770156057640980131386794047966017711467804304879109487809479556761011026190891476218718475036670444696519412036400083819742083137755014347286996527924293616203811731780227654300848950777954407711807858583051700940457467318762996366646697865175819318979304764759780873068809850456409665884819772733814606619067155281525878043220221040252953014812682897530554995723427571075731430088903705766465728047339469554799352906029998744809166964897367143207900897569106826767123914073440938476651283529511334451388809421308567335811362982703919138912521442826896316568129370001320778838306126474562445946890390264253071707021886472459172438600552645962761791404465953501853865213495390393391017228905083815080975429666766579904694937416111440989770168241475578657098865655054004946177542591230517061393778911671311202895990832629486066235869001860804145065621348539995788773223119182895882078032452072676627702504908067079162625182900304951531333706884203167209762314096503913973785290126957136077338642405351214059527694412942230599583515032630729865897357531086205873519933509678629394242554998536162936994283353873909420875191585336213373134752342552345893634548777435374702724768671027361418259030642025999982929256377770679328363331656881698989916101703558525502382842494949045135771395127304975239182761876167768618577220432798574085262318370361436799702597085198234118236677581465752296240165418965939708914619911470172986052800257058999218749068080027595188992115737419635280220959258652535493898673772136350737398670047908695327938782353447907455928840735059332679543554998585369627358528758620598421240626400691973934080391682143392920555619268630321654486298517248800652509079702658927732774616569623803855775898649769644642830967596492171040798829223449162289036918456552256966380987041439320914782304753353472867147442346816284102162722305589551167231680977214945732620205195869400423041821530294971189542496179738162535169212171740771734992521064968091834510545917256233942181919442887584905028243946637366874381933697655560840363970329358898102374829580192960190684631536937128731023827923889971385534139311017155678838590638195670886975017520655947734943122710539183495924403220436884494407216677734819241256415103600365800190028599764926006205198495206800848738731178343069183682100011902555424756019743279701550527733475360191461480487922288661194196671020338637183791948869588872428154191141811265002436715012658804665007181636719438937521753734804228958001387033754046872703399408898691670050771548371838105720598926897221690628273515022978814472652143024185779471427681632104898323007000618807858973145776449744181121165057783794801840337198152823440837731902626742030283744229079938676582207938854619644484303343308520286168065983093047555021905430200286733317953040209524690652458978551386218246522931904173166708160698748407598691182770691220433179591329508121967549107011752706656999595121916953060876235935567571978409678091884818732403308352656349188937788612287629866884293004015110523894417977656785601754889670889314991186300226546955912231464744498650917925917820431489093197590725525404989297652582749450542046388631854134070276357515463268735383518713310558347987818059742122612216435635324774407573205977721837919225577330080381959552876565540705284940956302541750203394383037250977612240288927771514841749122245102195324403855201474881732046990965762600210452142351517220696795775035512255098766712562302659263776702439286652233170682372261881680755558232491709679522584227398234225024091313920317877004800576876060741830284047195835294451478355367228379131031182107186025079557334365223747790168470086496150823675099364776568135561075725287588297347197147456844423185649930146378290827206604259264864620874018571903645362099469813883678056383211285739266774999038363132979161167391724392210815277258350908236843368394250318646921988933393364783087103493671533321023886967654655988686063837085771759690580517766074096415036905455162680059194468143137771056004990133829999246833316761179695716201817871015490953777509208533195485174813451087933445195116337926442756383531350241054054307279872230168389184891067196420228821538690112990654628692793012927349907191866155084186833495321409773478647809715935535858581896360021632476975821734187880489809791997708045124793350767679493122506842981597780678222857061078445089794987937326386636272361163164573630904949601765262275137532589185605026782749730902193451054186005803828350596780401364727875713066743421960201970752153756297086500546577063316844517052159074898936156577462729076795421197087070674560730584723527538125698153819333097908358595217665492315766837017431463027161165878760158688444259877521869508227295480287527171947429348590496420265786791794010718631879017965770279585040206132469175434291880580273830955630821747592585603220961246680204924769585841912269854844315776885502185932712977963827878370212708997570219627715062370194314610484361085645628255402674083102510010178425186161194051763354225059579827024670500046833753697641501736329183835504755186619381426602491408546994783291187952937885740999708933273663910428000928035556237023187391619582557469974874576736121330111606252081051139375667920548741819555891178319387476639574423785097911030408930161471818934874679799537998847965602996382731378655931469534186661496741925926565198703367358392504080426080323803008830158688129669594981984353346731485278137938624763141680337347372789814026052586386076424339654243478824696200233372548949227859117905215544118537868384157131898793708523643459856451359599838818576123743526264977694399886288905162094020929106161221998204896361610893673966132329157875028198361720174861476848517161613934752659435902263041541884437459995670214152794331109380740988092783949797217330595761338964812828165276797868401338361843948598137868306231189269060468503557890412923143130465760496856705090890125042904704543132624150479016508319568790624217493824837613093703042641040948219263277001654903215920259863398689304560245934793813459771531178646064862334269972643674030589197936751900559700422722709753790214975881821363961399631877830643948570424902160809369719989999087052302773551138072068751442526950035600562532062268157036500181618799415655552944024781843504997224915160154935460797830672111197650923126623106264477919482581386757079159598785402086018285869061679860428157555931471976642749624840935001974861228934003480352438163901880209160579716777494135923975699838648384139740121328414948472600976091826259562156321135838004637314298177776156103978307874515830285384975244371885607908381446439785795204127084343873924807496322723168712306402873825928638949564041600494265325658498292003808177621904486872280515015119334895039200295519254026903243879111924201605803221828406652271186355355928791113951251664860113409552129178013358589410978735380265036885474451408700331657947514219138605479868183783394919848787479539435618351702605363149273019843225162633666287823316137876443451711231888351688644817156020276630273133785011533462676107472349316634611850734942436782036423518807858526894033054854214080399778863489376920851820799952305754126840117819422669429371895631726918710362826153776509186139150008589177041929325053366870761453769323394943624881561471856560298463332286212201816318380649242278345702749541280132521883930756359307278024993199220787682620904429192912140224242316157457173479778155498485588163364883257896018842807418639824602271536900086332966926524021700020403430061712622410573800049504536974875977724761992183218293342876279313489968044380597262855085961641566399048881033095120186480220056520287060414733336099544707895641630799684249559467055748055944224599916838618407585997083628629798605214265699196966631155241101100503380732275470156980921385167532676996877510189807915446261228211879481210637810687681873961681240527320969035422362019685990588424873485216429618376629343601762274784682354580218759236505849065469693573458376538694593978888679327304396880332495545983140159380363967517080574284122946151009027481076558559148289929476742006622102927950684525158583988837802913561523296991502104372115348403974399284643383258307545864114927290783995116429457169962762614583151201533781517696914145841091804988837383750199689059240874701867737786989407245591996542690488159579874962838558858059656364384715267860976240816333662687927758749215822500443679621990174095601940917140191965398972276274471926556933812209050287916830230672848904624941942510175204559602069225422658403215913521571419234032517925264546947294534710636703686749067438541520399954511307029812500977452962890729608311997379302635819424540848991093465145886922521588843621914547296416472946857723483529022846080054699110344253138463644863952316899964429635689095423553186887775363470187372726290211853738466987563379891350902949021130469989055834178573634772092015394799821110855729485967174896855654430002097074120309446860023931746270235110604504671239094087025727164959940704777736320589538944274418016483516032611052359980223541648868407696563502742371846074159481576528396585719443225472877185712591517141911625562841139451894014028394609712223323175833772478670193845844678168664206097108665315325838486815591311579596873624909743701907832217310618009405756518141280803095523208788796504328898349370256859029116807834281490932620552308755930631897294286470787640883647108714456858513594723807880665704347721841372404438961864312255916090798052001814469189086449277098847959032319775917550055911807246387823947333438584261091563169753470098907630496027255823562019106755182185071086739628848743383958552577508311438069055084595121752312586423616730230556375697224008755357574181456988069032753434223409421952304435622787750333735190920636725723574258319524532373394892630524607667352383287787836060339104283351265974222392688269642239961903886309210193711349234288250265115903580494181222892838511569795363806376801037504284780588672054365645156371918292593180447395964053420479099000917561796040299577305721074020788099008224233983955372343851273141464793782117321509297157562703953077095217442779763402258707922217059404799375995803059280558433895202902158596981047236312483545734375595412392674278039340871682431213949513870008112890846946745131447598369308369321930821820722415040028333819569810491703816807039923843345276149134356328883815900992870675016593717044859390854052583197738637748332230518290821912999580071451334840927267289434471228178999645426480454281596760654431006787848511968913552952405091095037427609574579024385689603297081056705078009300713267302450034084168819913520300844228088760205127629034899311066541941718229466408362293137425732924324393023250515297024751601348256863806788727047215936128498785980627198173027537409542419507496666713007054071011573285721099979025987019331788623082495892861206003549380796030441361229937799852270672985747381904464238385943510844550109469683299273708744806027334670855281601627566646615880809818343989569672575647090320895267661679500761023463814756601831982715162556630938803859678010070810210451194336413607942067714908528272292639954487336419786023834245553751407331648880847550725653614028524397698055617913393467088985953140712645344076334137642000504682285627409042193468240715299348506590542483211117646825176147871445164381818066785099439918292513379875402775617697721467247463149471140134639752248020800732813991659378184995411290413257218084584645879140249552433620228240015527359523734318341911896876971659077427433633007063955295325055493241505960629976947741738117514875438598542757108656898923979810967171578033923130753879245523085438530403807830112737272098323312849883211162059165139244031300618981386497658883733037576897813011624092495147753861770636855582564165644603250024677663760238216027094894760205618530141599704009162294284391527735307270732668869820575942313965726044325230611522167036893376851801937281633006218702956740960118998155638774904600588738876149377304890734957357373844816512456025047844996701644769612741140726602794483756943879663853262736847246355596968051924110253773170343324553989258863464367633325080287684785401645614972328954212614822159262275112937128893662121791929941900257187343905879366565085653885656730627908966353668093742938157988539865294938113322978496931238340196020849101940505418583634477238018577650011522492771400796819412731785466664227549449752174084981448029535059999039269684811402897086719246768928058285401716994083478805476677441765813597687926256992868215483046973579880875883265951240072263002004594053290852031053300752459515710856198918163733135553721406029055514288964786858261376926527869526247417792665290145240535474021099878869373213511564712541550597006391451803037132986156831847908181670304245011790437562061610794502291293630768912767644302318639804750507644783841554563137852135408359948367075315408902974805346893241272545892049081415683937349253753798011922864226691352623302531025718834520691892306177627936854462119575022792848809539526692298796348267511800945886208525410343729836877748995510823272237588313071671237285309926457761492722458910895700036044416521147597011236525772313306693827258138418174646237049430043145630776939653825176254660428005710813354412062820374798917451040830636433548995275162768374114299905801161474710348922276662737708994490182237501653943818294350543824915267036777961216669693610077360349979291111648379909008146639704948252527525015350859567714087502917535482286820368683146428322763410024007586669393324638519705443733223754581832909546490573734031363397556795915154498910988115871645261990073393954719353948733022351512578818937494626066155520990490772341616536157265895983793050504385767741031874368433211568709090708035981087295685649138249507309091620627786483430678562114683481443246637440873190082103097931141599332618594474534753424879118215162150596762982654147432924833149717492038223167130309039955370686998080159590690160894522418044956894295714847719723402895473108767251113508223928767924120083189004772189462025847635038523296193546121883334561539179335443121529304446666174587055474087670990997952786158486790090364720070078379293881373997767111157233456237289657650469012259391430625955252471797944048953838789203942834792224167079250892910087557688393637575424523931385212275222821967628685370976377301852856322065946127794115023946521026776295807017378594513868649848315707041307993424203013095548806374532942236768587711669239111064677973126559678172981868162338310047343718794159141435399087357184801857019562817787619783181849200069856754552841089132360426378115267407171582821921658181414406855894748918115922829592605755624070053094889241678594495647380249175810157698533039414571355548070667476831492562154084155701366453960466529792871830811716747801462148171323491543520371356583082687789881578432325968886721006144267638208953403545373776884204466142615132853277828807405458529401515026635937903874836965708047080949491210561014371012198858860568620723087360317066609680473947608844204391736372418195962492161247145953144741343216424594991354404665159613884459921576123840575133682723228767529656138188590055183203192843163663365343525576447985607305331473031394805917472974914794195538348478963448877239569513277510472443777804841423841093359536703123842144066733060465153652849426988927297616023869381499222030594677539751042805739928722141709316876531736299834299729215911962053953724668333141990010153677794666990305450917668869359061239260747871929036802414040589315330413545423547440650443775627859039605031797605101234161266162106733285051622878892506475011384012198868932826966087197106000008699056162628516882167970272801985646372580568955200186519926662006430523586515074038298429186753336356036659484697511164136918459412171510977280748298352205904723047080320815972495319392187579887841128395991837111299081756217079280333565581838711737364289614885177841419363812788346333070284066492870166330913636825039391937657928238444200775333528631474265426589520400037095540575656709759086341496612600913684770139046311205860389471390775014014904704616559682939051420954738933316521349575185429300126984656135483558103865112548448816103164819434195555073215416802766805619063636497421435221693845186815222945495990553366032626950666885625810940823696514439464968011525882606940133451612246779558842785275948659524767567697670085841280680388875884753397635379127823684787053005245655531209060756623397683194214322355784946584916219047559677785964637976727882188742930190905973655246404651648685183236774134140400368260624709912331658276423073027025079799060683667879687098120165798614501859091261218336294822742639739248000378858220424156756143269237022905813993828611556843994704271178355915243479769502726819988331826205054254066997881915445809690852406277902614517836685349630763602500530852704980465539481401373687540539615114633557031061548748948193613377861599697652794390892705261396424483760588385277682513861607191879865080024517028700599690722633068097756146732450744372299245680075986026194162232227996718016038144323308482677788253031466727615996875156181036507103269171537893654803215213886033684374503537545325959183811164038038827163828769648865861791328390959783996866788488926480121532641585757290271174330018558277839932249355079898131612523685624136016846961234374299724899119051555882536739220307952072943185616625251385345228471015925957008250607381436010625115416942229875429595221809583303500169015794844488649294463390007553145552972141990459741371852148722712454343988268680249803573172632418330722958497751379722530466805395201348852229842902235960650833071658310295286612868663853265816688080500888687855124203794224605734885202427099505185733444559485310239310191200700489195906092535832155275518913216896316875049847361922915651070873930645742244347303079449466698442047663919739611590538798239702766807649788916272391582286859044106974379744789401345120108751795574803010782909286373312685874059950877121757958653566054356726141254219932530897679632090568530519523448312245280713448671666647445387043045251916929354679136899122108310132182918821408189100527282427221991884789489460973024855334104085104330866947986412688877489876635323356410244384172895341179238269386969069125117880534102247734422618948961193860151596223532000071922277196200684972152738947113839967821565093000685443470881083580411118960714702038795484912489930709039838615257506438872821202976449781121375341294368508431114574716645174928442090802948018841896618443142014348300088435663070350938005624200708184018259825012791631558344632406193782770449060733841130608475105124227582285530839985992169711255235118475132362810573410513805300636484616492743924753574721810985424118981211060659554565219412319679967645903132351534529364403914185885399142706433266235323231859763138788394478711144972552741525393864527601908919091365971473022908890135733285097512493245569558100583812538295949048371112549421272005211745592140118968720320926818992713318742195574587753089186071242959348923455580677784560065761453073189332809141741639644975463032321376502287212560996264723827855269520247528527831698488454047831641419763713109905986334091059350200823116248406481330399573929722863766875254062110170332087070060278282257954872928245458917951068942392910583329115796114850916013289748013643991639738606955147137807511057017618473858592426099785705599810993838069695338633970386033758242367260774772877887905516094058094795932323776368912749627928438022199508779520556906000263562312001379211076712895715125615367847938409535022363918480175683487462050208483704560309883957659545068104908141974450111472055289797269838597087739982672992539931037193490364564151689927230933584450217053180888876707789445349384080622802882106253687311689769955045789068772898445929968292775714079952121845793283925581211202415564915351052295175173548259797777171689751370667240170002707435799815332456871087481358440315234441330776775640122075313908181062250100177360002691330347531664924860733839095686925182613940308425495014748765493686935529555757368543225176640300285443200171323211143701099336135925390138022260040755116404422915059272837613241054446208681895328656872156557328126299009014365688260546443822697167834020387702869932575387856860847107333813655617528547471548138456161275090339353592072161000623228496544779351938384072599933533562760527048304362716187828344040942719643729877093267270879905726955059303056326819833577996900832270195432493869735852642102507465405064815898820451928617169918556900650425766117969029739688184090235393909702306969406818716576945535305040382167855436813927004483909906166736884388214752291296333042093120219296104441374589839574334346134455991002233763125983387075108041223306633598942764077523440344669988093791020734096430183466982407768398862623334851281628760118799736289487118896587063334334631975336533366563949857342902817480139309153385093194736502886467989746470752625695797389608149621254729230210382232678673156050066260957209443341986599883971098893685313932859065992768844318184850189881218977703839529860932647398350771967078184954711169089449377547881188126626020549244972390593709855013098734015636532844830641886159963297478548799407359026902496804453244411295922085176998241141490704499500349334342115710599297697958183913006291010383364033291409726431305516029688067791022623507196715985120281450193366012119674687498380467016635038983475896439444587296976727390600995714559901580509172790638094815963521846204517004330923998187458102724484247773698427059464561852506933822852740334680913100912414056581114344799840146339603083744983427652626164827300191970457396253354929203339318228390767648327741924513178556209433751958170565289726610874891875390961652426295722530210925534698818062353759371433602789225545300580164095091767414072733419772078923693391066485026584850528561723084896454361695543542034539323656014176617520430306236083859189653740468561658058733789594786688495346185242104348571963817577546027755380334454770721359454164508287405554278238418274820044289576913948645503188428267695921906668161899225439961685996890607805076445778010571667211964428336824875192405932705625946386574727124542806793791755983540719681833003368633628750618868870928133191079729974219035382898646532627098786920070073948099269044996747070304568092438291520966359949884229059943078267329832372032760098889150729315357617223746290061765361469538837762942490249306066371550443760328310819001179312127877827046865306831255903600374367082484003132502216074029033183841462545211051310814821111437774765393504955063216484364637100014393402759728224501461579209740465861254666881324674082916806879210182171782943132947206358761391097712974629687758915495731496715960102896536310257231474877061360336233318307735097576151254660512558568465016304629514886763062122688939570149525814484539550506771514620086696408199642635131900174298833377019457499579364927851994226572524184659034978647586811863728332712094698663829005455593757269079962928153871122323409328574322403532344708397548204209566317368087356339456095266175748911576436407692755575486956313978632740896057456396181432524339571310323236024355853746508238277195052083581202970308147456530062068260810158218073296677908034191182963425431928748501289436240436460661254528327944011646606736199206029674274516889724500209356000364314112131749240790715883171751600786103204436067262186473536799383998535269772190279132642831416575061950972286756152415057651864535318329231522413051818888578033116294103911972145595400848367103618060489113875219132590724275334892319458530592289337214331932651788088673973861771312043655306923024378324645840945990190942980876755114774762895309099482806235604003982785046737742063895422307546539230631506696931526918713559897305106977608213506782158591451658871327444112426519710404392632634489253352225334066962118160161054645982023669807069590710814073206614912474117747398279206440487490896563180905332736648526434607419759516705557779834809911280988482665178239206571572231742291877379335920990968628397667299838471816858111381715021908515037538822117027860472006275852776326297794582069585368798685152697649788826828043030984816657340304593118441701976660014862447987767654584571973441459921731798697153514034045512412059732927743841512168356077353032739598055446937304417945571831799328057006787923579910164099626325745654276915204254705473009852520155376817688053282178167847016671869391906630309795127249805502319899228861441963438085924864078156445178533051706380143447013167386864003355965297553698781401990814103690868793428252577013791864142460715268051963501787858852352667427242156272600553175776101052728582489577637161648232914103641298216559372466844944286050580802199660223605146029670914457885330749891595471196355651008773837370523736361044025723428437902417825947304584944420956784228809785995851550199565572878471947944880765184143780995023563582211763472476028983659627989501339440919854796705643957283593285440199241080000347681037953206248111165923583870074962729864100484837066520919048554627046789168996084966327702009598262095175721953789389451588635758753345260269511080757904666832113564492746917851478283486591302596523273900395652953011437078849810705981888398040129768922718595664558998252586959636340117149797352986451525299033474372029236159421197840406665039871503962629520998752681926478685029934077600503552295824996641821338816973365154893159454527903313164016033422634367759144020507037621689551856753796542094124743255389464165661266162879100869848866927539736225221450920173116261603014256515414642809956219370204888968781217782882604861056697078251898878236657718151620432132358253588503007768532837802940847799981895047631509381756017964918212190164974115775649731534611213278013252869206077653159592694059384987634125265668276501724644753407518247084738447072528398554507305354961880479588823046670610634376212404603531450824997781033404808294772156329784668244424920522989664504962951968001206810554924134020040569452082975986178006301177142715160546808080415361650308815872878024300752839224729649252065529060450822164530625593137616523006766171264807261648674895491109878717063334275246122134014347082697001298197515692561400224871817960981097719289148961931388984307922333444674860032601946618209819732749793005603719337386554321577263451454404325746367506990117449594832026605892748167751834360885164513808647292384857012186475297910721233600487048525091365847348022901200149735187598347396098292813907935318139226300039234333129032932595606405706751193407720493070811267156157088066272027784443446178951552987936745853063686451426115296744889590314325117186400264354876265823800052088548490189600517996022236001785804957366610994580806189820454469035985415160700548133957894115123306205837897209766401328675680415563677747337778357737571884701163521330976083641833563736329084017632662675037772774215321997336209652506747724300177887006631070523356014667385533954593375325430129436437783522950108054084226307820716312197432668462826929773644681217068374375571180359143696742935867037397341882333241083523315304401683028835139567633811084488309824924832538505282796665395271847724041978100762376898365238447276187751912718618970581453569288607701749028989579830356103465846189066225960071343885063524478714449552043468691060524020643409241220176113652835957108103593561469252786646577560654553797480362958922457705915219613053166513212050394491636351662631843708694679999088720699630966361694418229195784427047496246735446124381746197192050139754305735417952064329495244751672424282616844987339875279913942448901485480913380785424015385638684234299483086327301334852067681392594989275183550745365342690704331732078052656258500498100772813980181325715472960218179298142381801061307776553166143851261276899365367322716014430582076346219207347771496343968066937917300693875770687690838939155276246802833812267211427020624495289923911559697702806985313201820487608951644537719019363960933416881047085591012908169654534132655492202985583803431592711608211571858262851887392872812456213727220935171174525769809909749367446076997883625854097048711152602142345658965633920912687380342424362789162989717934105971403613507708669041559349279002130531320184614474196799093811950047104416489028728314072681234968016153408049199566597347314604389155382402897040137807989521172295472348140086140727160891436221376933848657610791653262975969514888895669168249298150575217627715067287459685461074852821964443212894533469676290799403269991052584810076762063947503121174881661963521660176665015700864677851191702263549507566825388628540741635083346599915561241308722663579904413613318811420802716832590327408257755852596323951681040661604808181158215255253675926752241215553002554429781859962017510268244059630672032012918880276267634165546675397658434983785703808772968861824706277339470722898656748293519097602545385645188426319171058660445183915081151004714975801142589991694478836394994638114212624776922693721123150442920164292198940042463775621888649868750412329113007328431007994266630546050414666989633306980119722460271383144505349464217322073690339601670447659771251544561229963692789068850676727368465381227460562896436368368516924194768101481762154181996153268720952092473857243889720572384770396831293092249636646114806568991265547159840745868227492260544182077953581658499019714744765172828062469410083124886532515917187528865327925330908152026694201743299432713141783420789214969980687741304213231640465307177562736098600881615626199496159853460013511131905059482407786269138960999911972450211333704337204805233362409858009510655373003261008278795693930012960780671463258139709992656402117118595811823692348501238428706188971017491633631426244915757690408696446175823139063969759694768973219147744373392730005998704001605145209141346137525991229766550981028338449479394872967463778783241468574279585099179878280077594595551851239204196073306096449638085468770511845574459755092211434400816839818818621649080615519434877883564380144216159841251774943751700964547804382606013558570991865082891348518883533142512659688216660204368391865690739243643538421177445461909114068280322288049751909494907843826017466381294943757003613968829923718621885859564683460152107248912352261248698745801204516891742791001175907399762171531733113344381172462306240082725026162747039268704338558351643814542210335562748348702277288421697997545863933966116226588616067175438230283654072334455456305872813272716008121172234299841057866526294704965726528951081332892774692704988807352552915563001017249841488428934169065765088165794570366172881688979886494782502296652364549404060585640979916740933932104428903922907830496443393946079385668175619802798342776770961976129924678736687756376832171041555530418120291669100327254723958846585741148842676506892803671746633713181776249919946111945552463473353628654802292214387093391856390801661356163125090517660059737577754555315250034862729165974808933354023506483018660478622741737732066903597409841372980901547143723097527327355751872845305003283392900537342055849423025044270733493802892264145417532300261985145688572312293120518201803695269651895904692205235341622053158284436314797311759915625426840961921800048039204454836087409019616935109479845370018626484552826351049368769182125319807470698365041544786735835150255111558652348792990222573693154788894541501195836114590416371398667255525859260269528574070303614253309718692653300908234977339278036335013520762987144089168638596482972763679038259412119845284851930960635340553135733180282019336682980464217913981489578836181522443328331006666981798559646310789539336390864501102827747551405236241841026881318153300893030669355178559529452648393903701510188006674249754803766768007795461015572356054115273703173791550113736575260595657222553545657954367969539109465706354121930050657328983740677848326604938853202406103791584131962932534460364779507091631210850400840708409153578816617524754025549147875259985731935010949071934065875548203128610052802547260285281422771946001027153879627039402384025233323131099556385559651628000465562074066937403944278684171105086707190887549866158057968425262581646873280711730320377859891471470130311891002880813043389196607969518348237715312137587413429474935530257942323936787292380680176107112715426008828196928797827859005922061904552696682129521992493807870268090157652534582392170236883025222670608401538512108784801462634502333325652784808164299549985567529414211762475738194766326771072233553847548282362762274800579991970089015785502525205816903193129506718072239433152384682389184776141376219261186366026826354725207894676143907416397581538410470209840140546474160658718893817511051896359010673515596638601688373343163147801198294344546481783606245674286102529185830921479217290577210601277895824617147285416266811874194960179736942651103846080893212695415114674944905569974935832566029157210047088057337980098630680242426209515257779936684739779208343447272263231025617862271062702429594223161919971358762241215600825629085957551446390003490953779009286414528253796231596928858620844178894278881978770541955420405117134585327569889259102036400450559246315763695088642802514738108002816278962152793819254967474392431749241899297677416008880537564351067722780086596290014593096300192731712500345772382420723489265580081025046689802569793624185598038136379752386717323235546788970087520727770307821870581725908139882069001485063671087171108741763457945089597953224791916051339120015671190075320970491923784099670765812095722968445596107072916745667142371998590922922394399436685366639895033288753441493102367291927581381709438001003462831169536297756873489396762520724972808428021775259019340679718457855251063821294358881051566897926587256974920162939942415759567995475009089465096289975773353568522196644725226396096316650391939266043641940903745428389843982069308142018810185827535464781541294039986341498015437752493591671020681547418382399302777682477957356302027194428276977537586968819574449627075209582931900876324219341450937669845779588845569366787314405423017358224703960355454407991049326177059146679614146606711501042627472525907859645630169658624283163871093474756645881013492344356516575637389825074869816370957066405459643545409230969132590998888617943631592127799626884298301481525162924235655306545393130465564600475769316104800262729590644398110184823158731774635773497320609093210561455516470014144876680559739698306221530507760500257361587125180235429389989784423634786215506757272086016635186436920383336202441337415367242485932057414651669772049723727083793084030920329958103740014268512307070370928268000379967248257539859721864276757019304440097375490256404133316936238934881279170834643095965334224469783496077867741543113444138007672711642429604501225141422930500478188265276303878165633760222340058211865707308351246293662845945203354096653426148201039883538923623901818544915006353526119608862010275806120199570869206757985913661255306731869438381880160608634221631602522895914729048618521548178655608186448407829529856996820942047385015856892761129586606994737930676421615258877495859985044746058892346507518240415072934976545246185098073157006926164708339998307275170418037737060539205985728719178587342206907020986027128852000112414011291000938691722402011418718741305632760754318044081636792537829530286138972391672671692776479066689952803998347090028685064564612805078601973289640413242504260736060225219467152636775563958604165650925057433887974394021857036011238301866202488044016072483527156310563224113637009646187851334673463793423125377075888052758881227484503919173776320293499266838998263894296792215166481382919256770977317361145333657609706502180222044043554311417178482129855956443287406967936914074143555239699962219798113145901857156139330052805551953796152461021480161823057910236272357523520837224906015054679778157695909068261039787360914362841979064485714325964932970096716402721135148754123771292544995505981268484549328740164635442437582320477733502546224673390042525731515171995940286499244364353230043069284224046615225094810170254508414371807749492884115982701182119122618018018604070045080118151822805889663760346980326682374066812965177373866232955355367575647683810459427950426228391785475592930776257459231910232220320949200935562519274769976419654505411445742902393356221239694210988368983964626054726947493168273937945551383563590979727343293342855792811308161965356679686123801861907254105869230601656876088478074652781666881161171429879296963229189319964272136209646084186228451642522513475822689218008870257330446976710949599657483829712149852084997183650033350775308250780242785563598435880654672143575269158474046022166564446296251952395339002701787427520261262695132765926254115747438582866939682329314327214158408110187248178994379510026611984855402474500777993297596213419170249709822636439864134187255737877795404306112046542656281835220200305243883759126917549903234325251428038449560880573787302711876297560891054444327707708843959331626783630222566812804144606257061187692003610594495372869661658546941356701309861435270476756574365088232511331663632273669314403633193803360675949821126320730581195760957767766973272135486129831210229954999543628941520025328036353480775269369772020806237983220929174734667613859689336741849605499594554669030639036093673965602038978506756476698407770065891554987652719293718609647123800425156352458405137613066621451383964116188632127648932732303490994496153601902138968577931619176832485335183504428401391265428209574191433989242573220864314541411732258265065675309612955331296344766709192025952003904321201130427746631864011116606997065374389345563248183588624023706004691964722857768195467072093879931157384569897895802198277837967517109398522823200437105359427316219880553784257171016121870743769315402927941092182994442074670423537564918274267277984440988875682211159456586192201806018909106128265388542154775726670418393617393737237728946420234023941032705056521252807170825424699336516704845630401073954104625052676908261136529181579059303638065593946711510909468201764510013297108946052272833657307445423575037215845271716300864269967087236402467373053970883433082848898693471173593223149054412279157497653048607140417739430238283901230852142186279924843616351391359384228432848271787843892442003151331327129810653984164622829693190881997325454065008242508477273650462971935617368557284534250737432052659706394550036170480711755877465652938850566150925622900794304501651386746066288954694101601304829538629194941723351943936794959431331288139312601834042740188349196373065989320712568296122870708690573834993642624898992250355821502263057930605457316459193758680480607320385116309999620892827939807944130092820496350940868194943400401912341680606318042260093563426589631871088106194425946849383644523329256466663795513862596407534381662285195599534429215439669191125033564537701287730438948024447482241460465508087711281449480269985630936909769917159135560092353465769448632644798268906326188721007690149203947757194557863893729112349788394748009787126345980042602071384824476451603225626403002249333605669115269059359315567656881467092553577139110674909615854806388790926533907563987659423694408009188279316167945073979351111787394066521071751869361993654938113536655804985271003482900336254091580068388059614365060540370572192254873862452489123140373781172216663508573790205013427983084259716501672661514501122305581418286523912027312731947584675289676694585376882694119129548237726127284078572211354502136635491026009392311323855521909620516419539025950957943378121233112611294648934483933810178786361197109828980061006558276989705042358865015787051474350207112622767680001159892892369255851641375978384587240183466257504997423909660286897934614743474492145154767506901797346931318860211696339258381477024063125586469708049720890540931764578759684523865748513450548073664634242712823901230764661816673689803090648243649760889793295110837360996082576370621017257492516395529115167024363623984783254366517570577472575557205842356110831582508377177242274505702705688984947923100695218738541681299625883984296465842504049252912679356188577912317185136476918454613113761063998764800653209250982924442459010271490040427570857722833522628366809749809196626103935631600915652245886528434683574305434428639042119320436072745323895703603742538906269903919639560837036041159687368295725876769134829171673180726834427305911866481001616821498699810751453214542498138916173063515144442212788279355649303561504958418520243265268983774918592528612578157279141656396951398948105659150052105350851064327314173191140149888367196679601386803150583921806274069946280215824891285148571626107915063135289872743034478628310234934998112944625367550143212547475541068092416887932586183977828580024721579387286791879745011743981415173380367292012717586701181661679955707861047406375493819587533512159058285546906588634593249200207112593102629351884371411384679682333889930652342719066177883006397014138693020940535261514532885480650794714096038511663264469058258631835286237925582227580205615328324127835090442600371243316160652699068270872765964938942533970311511806257795059045228109352290479019261384041615041618896776075738388570209006527051886427693815420516726838061596060769286800228569406121120935331980188134595910277798806783027152682934825210772231293327945085460674583689503825733567645056043195243693924692355030536046477878580624800741272550382977375654750291758919955692578401595213773622239031995238674871682394460121483637235484160546083679851797061344176029611723318237895477568186618562611052766700282539432676117896964906848167801206532269683848563905721492970139907915220882408408976841325972080571879305413614853230990391124366184033348466516061521513941896865649165453436551435831759029578048241391906709702611522456239101440997223574664078780767561985852538354023846701601591981238035563007798672873804009199804345080784498295711902079718302012002497570805333610959527405584710360367922739916450396701883342447484211224874320235276705799964664271993702098963140696151817079335599179560438411484343299537896437420272902565173804193053744613242967852709126303585751950043476991126982477459883074085964175184823215433103441707766153890611233715240323642282775430410271750196381332464193386890332031084898352120322684554783443579414271289918695623417037772798080665608976041775868653382772521155739536786064814197897176335546395904514944810622213332509621296391498036877042141597515763262494051982562186336982154575915275447666895746792481323918899522624554733866368427076158613309157220073460085542402408301354418909098038136017472254194139957444327466867477358763482819606171923752630333384524547094223339006378197522543374681939572244323662864094540405323120791290850658120015569979632190736852328341649502563248250468498901315905943646564025712201294446657024245166037544097081978466313525102534088997832524813665893216147823560130034966472887333059582321697684834673984280884215413911555246044650033598608040474575830161524058082487026032000201732617851032093655963961890318731607109868479385611094553141933835976272558440737847490347875697161119627329344771203067562194288587579834194429842688578501164149570014792199950857720977575849570641341129956156438350770256724718262423270806432025142945830021255261853764269799158403492054459871096121531516982639580144951949205321515416482138635539394224694505141555445200828671240813236656724222789120790049124837904800397108578254532376103989191481125821286392747051330885131736254598752736911593625248406718223634039328034613843307497420957332457002515464296613108886840495625573217456361753545903106119055580265212898126408334922359180542491443096233393703383665758384129253040365936837660206682530908629388259824536421704401888887300371667054464231355218902020092697765417742335079009306418787115410685867797851337552186611419675609915073200164091474478132536319276833746334671524790440965536933108318029991887613988774684447410241519752295159436966681220398072721952733612865908310027372511127409818039117129468100432936124529027835436754894129859855157120855610857520491047136429007370365621009866533954310498304341109143649392183010394167612001437360295922386656719722701138510323404719632575906052262238118720665848836818351621211390407767474779029445324213226286366684250774441357822322045397720780050779714414596638571873978475448096661572970282390545725835291335529570104736604241760336003628556532682067072014599989757997888066642959820290778224538885648746142795636253795275919099109140401390850693989422480154222366257703544040364278729714123631037737629171068941660264494423831347151087986231743824161112772168374059104316277039554627654545611155145904681330281950712568118426692636355754490358633853447098690909752623977479727017608048571777117934150841065523461265924321338600629950224076229336031942452512417254955066750865084971530677694468099728072096817953383025752176827282196839565648127694891499650808738500551551338969645622014985660520628431983965775168879567800958696582978073329779718352148766303603792837945430044374043563163155928278205267745397224991172106797244424763301305535587208046210328517489794747484553196444764818341174493936868542356066111059098051215192222873598684171602401697216462343187382772742706573032140202493434887501108112029992519704640375616662692690207582380913014135431465313212327341028514906430565814517713292329563456949117516106679238379429980300026232603541124740680478408555221404576010810838923683436974540459858574870021596855723353599324191668306273452805987074727159476158185350820181864148586670647776111614556567048200232674970244428468948318160503066057046848231241511290294877204158638165042422298270732879464320900790999580108718896831811743913904520129098514457624850664863473299689271482682418498505631469868337095350499384180391118770523569206963617132826507662853927040107215518791681522658323337855146203916633143224765411106613328905375838915989788517048739728325185689134090802954400582467696085191742833392736606323410335633618132183389257662774575800983334576163472270372972729808287799521988491567913744302062136080446949055859529767158472364534448705760552175378002219432711624190310894649835118377161415478940719113458021576091933546493163674780795605067664567314434742039042784228618906621851777633888292851514948446008823072539413732307411308464903037984337922368201489554723808770734711614525155368412428565674699787548194867952289400978491127716872196236265323244727170680094213167247293938283303214766530403589803710450807543435089286983992968054749916763977511495493544838732169162825741515819172584608423503077118419008685402824732163551443413520743287343794409900658331796065608673460063573336938275006947921790460258752469556171290810549821513199295825540236446807515837327744158140971165241647194077707117587866648346284293079937024235759704391592394013710370410358756540428454621496843160883156519377090138114540807190723291162353469976833016824355660735601544497389466601573313341423134556005402031777614793481057667000455183446271732209749483448884550316141523169055985482561350521407780729288829351989359752508129222303285103205776996653056433532788187729712136805775823930068461650440760058709652848937592290017452552003740910424873664333116947122601213745782999820504579127720084510120750828079540827721545461313273798094627174524147998037811318977664866084167188709224353124995421189684101261960012378478732766778686628539635697152386412658317642276684773768001876726507837004466041991923337929211371501048145179460979493848002276831207980221383355712984851147913569713401380555020117631025606786094660059946898596882079611426148274856067436399643121362843369127421099097200040000531594784628504047315670354328150797832619261845039921960621316097777022704701433428372937121214992754494049064325342950253110461974510106329028726603877654365470089065875205441168723578875757589878470232453073326565245210611447055930252646050212763484230817341861403493716896980614654585819993417433875849424783582395214228957431325069317193467328286166236744862094861022983342355346024886466486292803736815782577106483414084528720094323573027144945868670597443951958650256593110991831993840302642770427047289071130435772034821312646970649389010475609427248578014199104298718072849173626058190315229875941580167286297157949074977441781922896344569210066794935530412745509614919372236632144977072243506979865617281595536104196082206016949097574529513194717443793513025960612326085076201262039578460531796606330095312341371664507323966739895661403985798398868834080290923431689830737104411512113729080484673271131647242078990303558095511761921484588726208583565673655035874280823647265230033407435559253591944623220472387416683636588081836700401016662209849309013461681041748024863376199869067707127521508898783372126515444734727934537459060029507590103135478977669023797876426717057247790180423308375373180514250051970748798558592838068046690033548649660390342509513651663022580733663822929062585845701366204844116591999118310425832763984827446296582667989758271981109226991834932855381709978031685479050533254570166752922602906574231593745274386736341058625556545091935652223089856146448414731056444303861471424220640879450013624471238502265851316179762757694992528401400424377797799238479893987313506796105773795911699864712456071722133395666146689488884434722016147344033344098646640081907059777135381109358796647004062719980309209621369937698003991231591960738724184539172570707362939584910506440926136181612176743928939349458876438123966924394644934091258283844350372235071938852821478109024458797591714811601590324505464778546573446831623240320644143745378296751877628066787658255688778575934251540973371452893396007849630254834804533215967800334956061845570530321436875705318710625703037998543557572616352267791492210933285735378743963945990861069561024068453238983958755289022930875137057276184168478190183293790518241077233380431034548658948968764809480480096629554248106159854428047624736111901047303424196963662582823122949451004054680136432622126590605299634568376681530337727215329570230619074381744767429187218028462786335697719532596394531873664927179148689663058695379928206029406235320001187235988652872410265179578061889496942272647398328643730979812586839804481159935329468619787601026334016773348490450579637435293783007191361838202908858552983114249810881712755069837799357432991517691507152336193620416698393369904308691493898894670472260482521937197841124092349045543876592404525888130981715635402455855379406382317752541334395981423188156568931725461894214940017022835033086759754286528067914398474821098054295307799186124695336962416219587845061029116490328587149510479777836121416976888266255843497158893017570303424206730753081105154290842678090459508796230568299240028917344729879823391920803780729639908452049554036313355866942920736049645935715935688115218746223585649504412576744391869336959820518293632802468767646852333185706589303478051053718286625970407761169334957378337940590957815725872757433461885031368629445563139317676151449985216553398389653331517148465042847323145790058513126947162130520821271758273155521511994917193923808132025551651884457941450836156489465929959771491257561427144947400916768399414828611431997347305636619270579851996067953736931883748396977415654654383957799127118503176815420300150439541923363272377451189990973744832624068395702066185607082907529702536469204056832885050324851325114772823068357474345490809870721332349909684283063659900429500048347335575781561463096946524239558297980419597859363004405596637720796163399432729331126845261972425573752034113864913607629144462409763134116335434829049843195359166431154858331497176856923793282413299154946013028834562628354433970046760532915472960110439415409812495123654757430836719230714375923301059415812851227861122484594342875850931181177965786417251796530237925640624066412140146057177496866095635160489945924187330674772650054414007617610712442532651036845015331566500357682641543752481652013837285411849437750890300115835709082018438253813491333900623331467362712761292258306699091176231981162806513218690049176508988289346534089059538299537157256965404240025768486218022773520290839589051770727491962812790016928073259231812180778716202395755028473857639258584374613114605178892449209191522304970079456308304831021976406695228074537049373832648028362522725432416875822360072968417018678127518141939328916885591915693594555708564187227863048642860219100643217124439929284225023479631118332396753417658284788111823138791612037683904564787409998700046374023721921819303812135496974483721000789017445811942364185535091754869263762168908814164997873505262654577199112169720261163290233897087453298809294056966896521440436041394886819904038878435133076991438988518039513485921844015577490132274055525901659889309250125319453303544357120843051937336331418463038053653068074125639886981066334686090046266880818640633476052808541759496243289756753508321159391921417928229542451385818643160026556120765091750193190798815764792840581754086432918921570090913044480539437446077011278600171102632448936710628686080372917209986574304683582455519497685817120416407449544171996489185163150209591562090207344147713942544442485825091152992992186941056988184482095331749927714494173843244271882113173754729482677197689854709607573051524599073627639271229820952815150106942755684147515817231135035973441884659909572143742935852630878927493585163076498131849968592798644508098258386016991672212435016068836191386246205529144136976978523335198750656979708611730769570279341713148110790516539017012601063037109872860484634522440718400869232944834044332131809585107909580014781496384996935579132064340007988178828447628238745922619022104545463811033860544232901507767651244249300862929022473553118434912730021067671082462188041751064438615830795757345130410429188802277467137319821837338726985721944253158809692785739086534254145007257089336823455027535188541999116838769721846417830397883746206222251691334223764692155635450073332282560910036189259254894477440152869619486710872714809927520533266229762803151668017320777848782915886951487346361226931554962665830518901498252766019576950350348650557277840828539914881525690303638259735891373551202472746048610109972277060946864816077046168749370210451790105429567857266650433881936938911302674490878515589328013802157297033715666589258328532074801489954213493761084161670151272691841667137119860000150412144328263447088890488980065369860911961532807453256046850915033149584119387771659952513251113539318147610389614038253871661618883075519046120739656801556735324510671443795271333074350705448963022739672601736243619859923575040014192477622824866385661279968772353189809345642242805734370553064764786717220456036265515737777739286356780875287926562164922873040027273350818887984062135322221298722039126169965331368494132520882409564086675875878539000082540386845295563322685534990361778367907714900332071614625822529927091120091994294006288665980039391929987511732099340687740535894636395701419640806186062676304671307165750150065225360979845904052082575033521633688975106760326104663594806242090479533705435525410554457843562807206413264965391448545636303695004727212484370348032747861504684820270802351665244870846879641812543750098858655126868207695837896211082227211261958068770546966058683001392606587546828780821169886010295649108696944652519698750763283660136152561519231839969457288103115768428503980855436976855678063820934731984331973963661307496716920907073984624879904315139177130002824784169172264814654322606279504083781202177457166265866047860572342559547312787021617520114713857462319605225026650071997615624941341318992523784584974561508411983538427387415897246787264693173274861765984619224409160512646421869929164943610331376833982816162747373806119403329828296259317762461442307196615422120320681490989254593791469484140335298936311376675402975718957396834822177271860140589427603624828204536404341003660922747026569291127880311076339762491689359959150683447339713484477560379119195599594479778896344494999519362785126999188396375710764252145779778106863025898852482420665837766821452832929261725489761403694643837587715795952167976338173179363746180252134142754445800765778229017013421838618674159312556514424763273091553897084008100542949297497628032126128087526410926404301850364750112714085762313281563817379957353631162315390249569517319413590850521147170997574624366745505095208362582302403087996331215941057270194812892695044157938502655856271776287957173330255909121810366731445160242994043090235498425213522337989833594732363795619375526845153930996775375731008344830352966758783634544960390746673293875418589986003320995822893826523067286468563885752363467003613603544234114563345058929032202584298937143733513714624180459074245159115085315024824269498619121939717327610497164846598761627560759072037726043728528529353364651971386950494486614135570965858893809941588231977175468651991885144800766483445620782087090370375406649710359255254046047425597170255793167508528775451138377594351586095299622277469390129290184966137984222919343618314028449356082713745305533020716218384627618964414489745971038723719723178246844035862559092119905794782634419661835390394751755715837344894219454891213728827471293000976098076779044067475680670544273402983996175297175162244868979955240987270536028233595943700870467695221026204813231613590287238683388902140221855468110279461838066860778416534614910212281786322870236597018853763134411249196600198892552231470467875798401664139067968629949848570262224490756184030018122594786213640518702964043268451708951033491878251795084162479505171580892058875720533362081625675027647876594402493136774645017703769170780331565913495902202634698947095841146304407845113327592920370703353486643346500647503505488767118730310788021385872660504051539896362762638691257620153653053456636271857289827380764811491066591254533326966612264007955114927693507937119986841961436133330661960709219203832370036162636783350492014899500545732961053468636016695977259771853028433558518034862644024255829450390757228584426639945400022475476512428347254742673629668380298300290640245221300152226935200901758153705931043540033601122420045538472628127767591129149927975898975226366274619764821485167616364524562829777162475611711221337410976920866871677638903421240430369456296301010725423402832425482942293423245889595237431861084542338026646828433672967997871138044425265005587123763483638353014556531214412045099121142113975581388498877714940801594819906295219541401674976521900550481793472098929602091855880054942014395960268851175589260208449918377624160327181940236490142450670192075582268526117395062621788176336061852473180099047732444737068385971963833818091459106537188228218623363733848190430900064871593010388677215391812450736582921800283503045678440026963279464028235567541509687041509690656084195986052967970947881519796616098091095676721388687146029184585882745228408368579231775428715704654106493288743993839180733382789374980827163479316821148617433315472776053687058825981679734405129920299598279891886117995703112198255145282705519717401779881734933347742233694312988268025458230064017353253110399058744904690234569508454903341024466318742729550608712867842660938038422813331770632389830444322009852290620004020677278177453886804029181148359846426623675675483004185177713056598585697750546338069442435190673318721830382907315512239042104672068265123143374795806765479915496092923411268382004588103119385930026573652205337649261766753094248280367271650380654765992629250587410205488233729667865320358401303665596066358765331584208106583714145063725720705855435770725424186989875152080337193223081558137097648400846423523183423210068593442437091847097707811555883970451833418482111694180697743966745202649151086574383367452419110251775209125825680523096339750965056350338200552944979549967007705281480629981089599708467515674578065127839700382140384143639813358294935677737762515551636465623106453761527339476825998566301475377274847630149968228986806803905959070820563760324107326647194585423868908984439728154223881718131702658822875206769292797685612108025681518782312207475755448324353536588559964170672847109229715357098670160938354938965237689506976561807508036332297597026481335551586356466608785764289862181408725192139019853077162697970399311901312777266707052171889236411304699135523816023229791909498864142195838401932552500229733430052059405726359996263919613994718456925912707736887932535339601424266905781483309300094751800390371285787244484932990864481138836185575181370359162139730910381012603997259988238368328696586103221823589833206498033434757990377312024849816314826572603335644655535642136061342435923082904135556085331150546061144653964315505042638859944738682310106764023193507103322703220045318945975728252615885696355358986982466419048867437627176123891557895170561105389885858940195747439288757711396225494949224721880456469968807597696643392622150617672261050751347230326595707866676844677154919203161111345926833809902906689000182335592557616566063395218166313355128843568718542380036170261763973511997315328838547808461308579992967437621696921169905417794134478566671415474616959457437097415099289712852827596664995918963007134836697295007588722483484252107360098387323407066002017821164300345695955335085084652681414406711147100416084628096615188140848455543913418958383634441578899676590436890158399406418617225235463493940249781471351097042906299920015633033639573973929515477499195208913433364052893321839975821991542562593946406313684620899827482988343960380969763854488439190846160926761632348122324279412929487815638525074951813918829048517305565457698153394297778894547155591770410415579524621228426386835075855631979846498498176688826762480019954988432980647751069338913680536547355408729838848293851939502516507331792504177651291408416931475121678744002756740323844639613217494143963213229542114795695045809506016631743310069871348264621510172926439574233387176587973792282103863854159236455063005238656929070760683810129770648261430590278302662325109709463816933626085550207703184889770086297144313992286776004037380793712977777672912043675996569941081940936414870743775478379573257119525463056243179032669252727196682427192321747702665167626804443447341177300171558750628623919610246597691507155610878553583075018185461247883845388960718035334317608485798313205165504432006136585520385797974131454151480682380740973266430950480352914936143908950169376306209153349777577566578182113684024789465485672040327112469568163586022004204302508041315062474298651925050790955831798378026550402653861143826357137521759785866895731518390520856524668550159126903594890184120939016923276069567111497355071489763977188651872176245322731301625390368781349713016440274583027966946602841959632970103893991849469448248998006236374244946697147217284602216176181185520663905008880766680719384175209582747358664970115018544186114676083395981662302330083331505742799745024532128877691758226124146847075356009739267343789304241475163069435677422470293824466546897179077399389645519151685603999370555774040489447441929664559770815367701124251425578684699252663881629268383747419400824119386893815873797884966344143223733996970024284605023888368172080291485417689627892790198140206473381480526079629423472080461785976044520393892290823557847400850347648580490180938014642591185947342855556780189433613841177951961942313712329866645579492217817033321559701471502430139753716418719112246050141152649127318883738687124304089527169168372184248129438022225496348213682012954774691818694120210869897539529960036774769185087478688035923784386483479755928920598590240599706847401250857625275381222729958445703455974480909180531452922858305789420513655659190308454674952425616605512806989973443301317174612785373053170720178017720947775211734285737989967997999507294746463105565304860117969605407840542043868580103524094720454618657661465265722089205979839429351983489065934803924506542623492599880486769174497717970800718605966721151691055248971726903816462096126723916482946029783232816847455121267772183560902982906766344083643186023539355844950468674994972547964739120661446340493618666190348613208684434629623871879732576371929332424304748738375406489948644719837397990538659233964202367241019070196062565791339191225627192336098976908130691859701862246194208102931039680458058473368376363780535866113422156939107473401005449284807759295982493363094937048771710826996557748696386661991853429444494361406199968914749303816230160152843932983583720747598803458527746432835668325605470695521342591849743850141288386355936551768627196320806160647126611659158506313629847277987270785543442599621080211526963255225690927927834657397697352564482214974439539620952141432619758750085491523895694523073089691101885314465817773288606816212715784532717533703569413268549715393196140827088243447645782148095900794645030690770191541461787521632603650782743217454662081702091552189638867734736998163775131388885584723084223531882685210674814012790212478968332090226871248125540842649239327102508489876537617233190435429263888660683415586705210350897161497864224809955463837561968271996571729628859285824273079704450912016145441612773578691764449587377146701115976652181312607269735233400562488196314609651424168030489254678551392611721880531764065494623147990497320014070116059331732517752798172851789542030744553814677742933546333375910585206087846177548268803087728934922642252442198465173967244367325768618022840318596326539521786820698797455074655874468494718825585486213207150599269824833234975167792525742844600731048663903190020551369309623336113082993271370211755383703770915907535000135486536052601590202113232508217462535857562754908463865753888887298570025645097089256547379164516580696646472411116654758614167243980613031855586039521845947396879242722041261276434573671218033668420873054647371202658197892063255309942185264778463560509382813676795327275569513752584029477384119658778299757268695593131698182848257020507386972162032384814148981398547688935640617283309226406828719756253069168359916904883514080589072211291488895500308421794133083526934904500608359555163881331441179434735521513606678075546033836393508072120281346130044797987564444279067574062478526893233876085278460941510191625080229751677972547677935603632979042093423480986208206614265904682046353561318223311789136674139774857893211535303696509810425712928961921630970850048237508005369970664023754149192552656633361960906263822598226904579364668271479508125786948530734211341792134706865605634338189928650968483105308488766853538486144938963905955882404475427239828193147890566009374265844094626777996426348080189557977760538655353376994378961246247006406662016198194844657126718803640404182246288286120986735448468852429313221322510724828632653072337828297411054078033816415864147556916343286615693840795315515439086208484363527878756059128092368624328667839931301844731727262229255698268046707983618163196773453586719050263145671101211149095547652462220052862056661275640168918798894225202040623955745886482171093418679036790442192623074147901374253141849372070784975540406555255686534503034702798260919451863469680342675814055872293795506279214126379818216925823017163223570740492159591685809785860324699632249288883554527647742819350667092556419611042670427433526148358830092236941315949352427466811637077527141308870236273430225393191111161054463797514804821533972371772152875079365743695878958651006192917738562671656492379761419718537536813349322807513559561816099910944671121987934849322922878039560532183724954676050287086276306000190294758552605668938399617883329872380638980160218316356522729984670769609394306076719602878159971251397875172783078557004064280704045623712845949233254587214540210688539887104156633087636494738195926240655804259405666268907684263619606676670477504965997759508980350385871409199689651694147587041061297218411557058577562635238766457959199757127885776332478297801579553900643755638175993463268985342495372015943364733772422672286523214387812057557843250116875892710254212479489798839462805253499346680607736705272974963491033042062713128887858225392728431712305414142645319243564768679319253944022082160582895979873149845388137172904011873735979295862683865707081106504749916915053842239740493391806228714871668115224912575822560127914279235538193606406573844162081448110825796824676250643817276863294605154128261584501623525420458565915328335935264489871145371462317764278880320150971067416143260443979999789974236147979967514444811513030741197104079722225019598534955818448408321523502075770507514653873552234224753325659515572441694570753721210242612740355875298468350548879167764022357463240057104092596516066811825715786955115849821492781188362556549025108578548247711158827632363023056086993255288315498949883395522356449454691509217113368201822368838847351706163553415498016623422576168391003827387125802262899981571843111040869058654854716509490817469139633195370851671210650317792220272233468864704250352315157902400900366357872646463090511388450182915828587043981364329402171351694269651187679553576972992095054840237854359092178870766822055013737707760760687018932459564398944342340455288741063146427566478448712925725700729449706148707908492436095221195780911770861237829571661406210086439237972363174948352111079714660183855354040006290326489364299542640484617926078901317852948457403874860281847360248313580089670893376743463889102440955734794781853095189046642408336756002983203002263710644560164149567491246356010796922880696564471354461601002441070666746969186448104490348046188955896745585991303424079294883963779405655110936383125517531856931165307120380412433111168496123650313877795340637277932760903414530444471622211315566090911464146248977846191433405589567787710756023390390826449811055369951094059421935616122811766195330641648520989926295641522246750591035111590361351805187611617195903830406762760013254618395322297062632707245018564905810383695646828299386261457457981224722208078918248837737249671215397501722086737792379291399413694504174516509380751279822143278947782792429500167408332124141319163796988959151365843890307278763597506006455769012751444956314412604716240629758688928400430688040902890571709550623861988906571871886353105409074929411458417223684026043548158063213249819048070157273266690166857937261075866341328650367000606332892511516801220724971028113595398577644517644866627020028698498173481718384256576601973323855961201401864246057387252796021913041526051810746111819518767094817560160840363564715263927292339464967157632910035894702367955412062429730297922379826596485494302816815215085079048448335723448901934081337687936387112408875891293528630524389588420232077985595941910097939751737350008655683679755225346424447141420371967710442922495348433402315165361526027433203994087136125226948364486968365949166207843042063513212884380276629483827038014082018515764694009279866772928656959390549889328079097256934478848921805231563817635322728423672578900632317761482886769174791854075628402431790532819781571446407895716197016229658880423004960065183104058652894214107406009095366406932523083442880788464629455255904915794194251084036856557409537400375987249708277323291187548227276109224381241654091793277341724217131869939229366665057424020577195466126348844009761615607237873977076119482394218325285962113152104457069224030830900222889449479914358542778778565707346320502538243674780737712705226837226078855457229140379511528059510147643816472343641013590189355489473827805661233637547395120907500547394759219005751835588982705298482572878245714406292579243071942157048126742545797314925336693136254512761196966796390915711081109931186316553396040490959841082451092236482059146251906821190365002512691905336346549704422618925704177924733781781777025864705190610708999667999265746497221911480032419397357551443789021642872539443775031271865822571544927567806472238409762109435512227643698888463959427788512851062680465083654651927254339363894261740639839823360460219418888085807324790741912458938034716251200128617412371153888339283176254525743939861130327284908710425873241643588023445074805207697161551400592809770916365569887589854071282206739417897390140532580381241467477243060501994873039458349480772707075137347825734682436231989878883498033784756504904821478022476505375488111758388554559671751497653955674497091960314208779324898855978951095143349163258956742852304071870373478549904232551085944066146534928439102426371929131428844015591877412330090709707344983338626265290613498311384414055224313567739062645706870493204164405434553940049192528799617043607460671979475379284361672900144490815359519254373712842555020415368566710794676338297669755114208108229060848682749786417107198559954862149256059856797314695440622674518138079655868427173606520789259475344334103689271610406835812717326034606981672478037704567655585319708151842796645733527996849114488166340649980139106674119259502760799395554716394333440985448902115032318497675660689139394132789619125709458538757110976822543450402349863149263228292649457073037225892212566489600873639987145728857564789158044835000302219258141101988601571772642206535148601518486422589970177392462528902627754803149890448441233289489457486643821634906072242708101302775008530727226053464467770731632455363567608029649383436210312502214579203869383857409883064901546879831822410209494490589913245547350956740175861605039015987766964488496108544210665930545240663623800638754465617230880469315098176706550759968652104838508040809895840291963275004112140974579506386714406328043803170320629641899161723269503869791991486155860231627035284795309590429055005343240769745933344007997552428793099810803893250558857253013535846359517787890039909706095790422400651047434249966791139254249163856390407386266067488940986848365868743244338711349429129053705621287377519161251203410087787914184641006842953051137293730663346221570388075575304101207746807577738533243094958715190436418430545367401162226687819760641699512610487288800492391533208960701081942874137971720473052878574761724915341464524543927101270505786998040578933637624989834267402453465307839757384946543818776116605115462385044122146397933090835571255900373318493579160510628014106662169218560073229229766594550451220467135746344411451342000291560129679116349356349191322334825614679385823728413463131686652830751959591979443800752605952125337950903908530317629496697103691477138858220625892678175443607245536885168232966041563987387137571325476088437959888110223655728139008795409405287722431885593878138605418743364452428467309871183505998099725998182229644521265639060344805697593124813002376334032989304923342725940209526962156968489170423146765106630704179950249672979066350260671466884564366927770947719996471843338224463254350117315651439829185980526057825977776954058348632082832627948627775061590100445453363929750025471569607670942104344734427208686012029964079792113001976332934307286276185920436847102553167467842765331894013894664276630921582732189376337584925337771372270696739495937146153336773987947519845700158689941136203906315700777856008557041067387728279456271081793985271290697838345257929544253875723673287784871926286825704856109787934217948662583503632369832442673936792293269285866101912176371747812418058692891896201089363202246578629693258831911226284941310257116025809189931132167200035176260384359379080135437626956636942450274698895938189301628420655664370865647321160700552011696766874622091172838216385377814368416689058570901152717730703216049270958657961926739680883555155668852113032069373932014275524127641164137250428080907409109961345640882686587406392762667254619120319667560633929310634150978306651922707965777383280673131964390876600156542247276864149060806593894443773685926528013316019766070168285311695488564061192085678165047220891153803992546158316170252061514602012498498329924587989420533161579279231246273581843369676429296015283023934792375013496833765456721199572881455903137773245402109794784688189718584154127111358756459272441207301009905898817100757211608694620542626731694345162412350326562610390726870482084789178244119260748625533481641019745142446271832002566851503222943878380849165418971854008823838861065348899057244811953133040771491582410831182570292698065969059421879224778054537194838003904885990716001693765186221285190275504763560174181717735427679319609408982916523353270068219508887430763670785265395249731985942017142264476186064933517042133726047773927075332573724697133193443946726476968464664208385084861538594236149672727900805434264664764411825407602633226767846177390090369691033313995023621230194824478356163118369751736127735818410533825609690459536555735480038378912601711472706111799877625359434236667357888859679466740955382195135466132546884083993452884448419886273694978319352900408869983118832347273841621818623038831955096412947159480131243903734233185767354527161151122081387071995185765472874940716799237274992036004177245276289344747031842867350977806031511996890955092394456530283607576019331815047368652713868332035035195389706733020757541046321718350024378061609092351475115784504033144238594088558792776454503824569920084381823561003952557572612002241865481360235891962253510213027185911771017092850869667737389424651575140429960105550040253173585066955124824104735373413617198627141078162366914799269805690045487622853695852301291884846816955178440240722668295359300263886530006744031760069576015015941957926617300926622142139619269783577594168462247239328082163545396092599678628502961404728491014432933613173728633543092900228490325377468062696295714557689500852858434508860105310038656025112259849665561941408137718367989829417174733003658531908028142281985529693196831886443419347207950650206368877113385906478718998672489135086761066313787731993802305280515774335877703900297523708480467838557566270050891056762566101548122791040463988645798048930021266474766619169920944453106294573593542480534627572177899770283569813694526291892220657033259790906208732155943007306992466054968802916367600543828315764382559742712560400669880416562628668652617319743700573924732732906970494279094754087072913888125411610402001479377109966352640246196846081231638187762868982247151250788451814356900011609753836767763327032734135635617100449593843490697624077044834306136602005982294320941819161573689188164686740510923827347076099525088095909089910723732447517737567771045976015112462891332688447645237890782143835808145314374871049244985038026659226465280298337740415480374304594136630829933582022854940215049020351538269845664638388495761238682406298593863921176210039705221994069998257538050002309055657395259164638336108832244976820759009800136940072316390553163896410798017838626902024786275768830002538531009152123125428365769539370242142350474992023493075257400302074471768844755318615047743039107369930408554636569815187713152547622942783657930690417195029962363497693489116820456118285228468668822684032346488196506351445696466354182695414936715563883685537376240763850053877568901656203183441899699355970351015929867638076357322564714231102640750723530500503899988894430885939660671687912935863278301701113104209705741134278744763376484025964881002586866652103932357100273192878023607143059364021532951320846736670849464427570503386156378475855685371890787010696402853459331017671685549302776175069487326427809968193219347100079777309005618778458143673578523951094392652235142161324236463650233266353664631550341813841252505319269471721354248591590584619901571176910013284655275586936575860590005027966150052284061168532918120302236396250618005992877111817520562058764813560086440057029062884843710378390768135228513124461579192097977734264179767329313585174580382346797478400648524716773566892793505606944702179953034403836638156495758966423401248139958947278959890226834475766142150812375224239431766612900329189216481104444200998294350176132059290402753086610579785839873072728885939055590561978051326666372945958264088702158180479489802216620789478569326644293862258886818361771849075332251387650085123871672066043293143017504718452440809293934421542983753225973022618289865932895281375025679882736711616622964391268201667411128132156879877272523082848120709030402119248239578470899357104965549189010537870831775619108116272536167248353399653195787420271885476013017296962229931034503467563376864876417227371104607870047993488186716754303475031108727793555309342781883048172649620412435205699590050087899705864092066446287559347916412812536291889860252030846311955421604926671836873310458007467508405830336798698626135846418517253950041289951272192263505378499183753002529896247474302840978627780120901462376242061528379300880724937683400337179570991288183477658200922163797112048135959187040200356253575854399241647132524893855809793400340608510421622930821169185384304300760605166756487812749841945335163298299005776856877755441573721972554410512510611816909713618267490286087478590145486087183741959970055255368988349612125073727802292140760326595785604689270424238259755970271698573223639931372806899306116705071937856325237654883747533668377085549557925421113333045902461367233099977980757877907912315125414847650158402762258302840040221863697538502789477414308339982682669015698566453104860841780221950570781650304825190078620072699308428471956305573500596906942138315940047857023448305507372369117967248944138108625601257694155398240231757337555461818935566867342857721762557868677126121019577002448348222160923003333414036234547016205993708796801583615944642134990925970375098935142635354807504866860555229537812287036217449247189232037217337695443476201576672237083478013167177274489964910560030604933554836797327421382483432415144030497807371852789529723189252580394537366252248947690190723995325589629626117568255992614334411775800176498561597323964260990703518335151025967435390501691785579836663989688543535854679799106801578930381130523728973957351927202161993048687222978947239332409085487401516950204693391268782252307809745993766292002351130183946359838559780399497565566936065151624261464979047451715945567573935450885091298184441266141418950156718487963773802614552871811890736284928015076767548728037357445659488883476619806898657463889778269714599718568287031067453378958945100640994662059540265143755959753318754803968167518870827867425520060404403516072676041693678034658020197334353367836175104511510332804831553418914329659872517921741761566155708159067108198571092177295941035933665591601631693005749506132162534350840419996069040763898558499495464882398781372866879101214485525429419997259881001335237589029704641168377811621812920087514015632565832303493621699698739621057541547585736809813229105089935823207980828100600273693370979333191026006517582992327297360536589503932141095062590670923654443056179370659995178913725321033610262277429653955510082147340033247085675533943670681463132448293806664651040951640885067555889689411328198113969693448174439623976702560269551263008534873104277052319981262084652201645738942742998141713282299893159723721760815000684534733117167391942796060078021862671753930241014081105615072041697435832559530504050836629679975698872806473573244774736375701244151130807810756121170758392263501863970823691701851982846665208124274988376336720034988997353595027251301649933122546168724955867511872658446776218577178997762266463877541100470652002485162977540621182899677890220552005567309937956538153000192901908063492341673661221233880698332979239281075143949411687950508252036764711168287079282648271169843576030699381800624100994375628184341853530714631716828151171661986171867401027797844628074372964361541302698130656656307343601952630359375790780673404293422736051751978169466475360822213485956173830948351364663705305392638248693077282587957879514432489809624109802365923233542738385798910752619476336517522832017963349390039358606873944481172106058444600012262304521498289917221562585574334363866393414227971825799410372588671874985564655002537284089155195540847743968929394361487116657926145561326322224922331490522274787641261769960520353806234484297383113801698608906060909417315263596236194858388782338970302868621544584048456601222166772267083779547850583843803779551096764327713788791318797092250210433072710111852762674606689301600781465941160718954654372316680653158384161858269416961258477119513793967398086737919068567006129846319467723329837202388218375853038663820247706129060762151585360762173536083355081560045935727863154943885617435054389272628740589000090038799283420154335635737985553696617184152334877464028985173176993636823666537961457385694829562021923490754233374957948789049228368587100231011860604051421139407290069586314933713362982010213611238119284729974143999076580055160002954996242378297544554502305267656199300426666674274049484530884912548451647789451525533684523541396769193769744929967024519910169807800871982330146883688571995056769674834734513656544068556864556032449035365724105811711664561292903771976648084680470457385920632669915912114995590319701429728448839890657114750547152810663961512242695372865688297084357349064310774820692287094642172772222231710557522677622900264849115729204840739053966650355192595684464499302770889959709192810760460495441162780461078682560040829971092992906093642413371306029182166929501024843710949559393288250801410170023825711547660104208626950485776572729460352051172042897465707795321769127947891291544537968694400387116373996355097145813469579178055357433559802721166676064948260095129945489046508688090523351492822265907205417708840538604786228278414873520089435080222945288815083963047335393659513546598009445272195473436026996675665004834264074985929131051356524694379219269958369508487218661648033880870090858136927488620165156314561472420354181736993441042282122426945874243311919930838493948264750688320995225781762441209199582879557639780895456248413717693395362553745872016035938592537209140504261871701202832250701997726314815576119723846596806118470574515970002197934741002094883586519146323167687433958970442584423561727275555118444753882171677661347511604098494610769078162311226632553520096857039269695341632850987914015494320889206504448244655264062779237976879787023375069256102249872158767532841937063195602846081995800460117605319488175682503990128810479948181088069014720133250551661618982253573012208322448544054092661301655111722006312573186015360284707603124104481514850648227345842122227355373229244230505898297968552216990593442340724793730236901857629827046721977091384254222519361155005389698589510353475774323610764844952585416206664704022754038989926357057756819404255105788551397979878422868127826518846440150499302459464306335061223031571800214261434200047150531218797274264623792732835485062203805020520837296607954089879551465584013180029637202817727899801008220384389487501177034948749536609182675313661942787783301047955921156654912493292746050124474503323645580167744831930329861328291074608486372565177900763754566373607546373521109004918004735975884996575924476504986128845640826795477484594695425698747197014906222935470945451216414754073447607117797104618939175688933375671646983517721475921771811873354178483023003085135666562841111691954991037253223130970932843065355550204265351268637828444758055409995024081327726516277928898288418429943112717356289446105951089467519202185896452848262764611352902371090240073689398774678305728211226194098474326011581396729570116547887420775636058815190055432533091276603591347745866697830100551557479647061601431127725255482732118698887669765208647726263179061781025187517013742985071134421285720371603918480356726028464196371372355958274178352360324980033523227599381173343407953631917772176984344616461531643284883887988710641072333760558698997967767434876985356327342868171267214345844304832954431183769901723399066865545411043772756612685783186713398394253943494615087234336402489813330923832932985958680120058752365124639083196862307153981082596859889900304625180353267208951032058708733586680915319660103333931326861322592581678190410297161063165558787898570659009502950510516245127798875916245595577373252773903485193672061441922461347715958557179756813778196798924295183566071849334021796693255091390722147673078355213652398278377680080328012358848023965224994526794654317694972806291694819480025106903420131626443669343486121620496074497501713539104267968387606019638701189574280462528372933467980500512944289524536440525760858735559217210650144229639256751831802974789452832909686403498038383754384754989057577731790821364184003202051490572198537395504830643334978574502848550317363572157032577389637574880709406111707282195744499142200530451271004557381970872114540184156863822944622145948558378953929779670532398327206720285006541870721374060346365805156729083408429869973916077951361452641007942676917425549828174896826239742957584802760114751111261382823530882537946150520365576448936434674723446027171264778219066859964722706456057913117638505391216458846063449780275900776449949828295297125531115776579378274152094519675745389944077221589112520044164354344980765192223581552028681165701595825692697962541458678394981798661642430227585248945942048858810691415654320551835686312087083604667051984746585707002315660163093936120922225399460046219455975912234351404965144428304339789098734615657151323019667025070310354816561397871557491546571129628699985211275931464588264790838643864353995909884051305737899420982282993437563845890823866438519557862995202528431349347766060310650250693173845146160442752137242438719373179612103318886673971701925149428781373913715047695426110432004189810140736095088078597896839251961332863492938047041860225284204539060868037343685302241247728554827580823422035705200571371277900452274311598736500204148151268100264236206110629570339658866469466416356663226096259901663536356286221677058436672053886787952218742539571931014651027378450914852671238496236003820149138701845031272938699469377748588729559738003597876196625136863726483369600190575725497304774888564034330325393725012456970768337775232906907925689289638992671813478248825817137586936638488675965165660399131637526045261012133332399354891408856937997829180682339326205286624268095279149109221915207895550135467379724685026245144119121800060105594606273045798680079577560696816587701280489926499757964680277088868432589147360637361938334112218703933905579091812880601331505957275583553646321031018989654616673674461086339871613290405533129454294359402625335525071259572448089980045441619243577309788071317462850235679839697243985359364579589175066738339815326687804262771734872571664409378544902793918857301033603359969886220969984611613762341369704162461548213829047659527327844462955994471291097984680339590521590903991786146083837566560979096974647500855700511681878534160420242692542847552997723398778109551113196542131366323509547283571671525984600065437993189058547785957750919884843428653082511892504340902009736835902521454593788920688317576083447012951168768364191451318818029153344208866499854400221257328938945668077843899628555541954857679275072940581345961203958289876599426794303101550239645305329048245798328974101898377316112297851426692088926555160784168076558068429923856847923165455904062707467600239759157675152234687404728739955884566320682891463862037959874772669594658997838295990601307541223302552140764070069824852107031598444732219942900771135146571399714068173454094691069765175905251605875027257215532355500923882565460836276132033121410992864173807416942391370226853884965803494760357645044009917032827226248742464831237915073421719709778484192459384869684697736546558861649724548627376185650652182537731185278286584030035451616942281983769228002332026274147549550115513352349465497453066758225408821150940032946440440084577961654986161248296408246288740291411324995745998708118821949351590791442941430091898973719070033431951899460562130748444513270658702689530049741021234120053537626897281158555792532622325622151365136513318742109870906558123274006702223956058818379467450212011646733914388973770597559113846570966331575026053171956556668286649447264303128809128245383230637473762200963849648689970261538119479296966902469706977882704772013987655192065819200205769415988606073328639346663784041325646242560161951588847495323180981027694687716246123298334745289445763497227794532305913528780162000737500647853153751361839893578240481867670322984038089676147713089001148716983663121005616081237823063665329304507064426249605675132037836836589110534223225528594800532706703372297317507730683979561829198212364859955202414775323085594021018584723247457787055928885843262104649499551120350625263585451429185420085263260971352694268982186001616781711293095897848799998728150341934900208941868044593689555975887151060015126596621767112337211580102129616292179109533523072889296058184747311673110288523631847692937726814041454720479262675787233848849494555876424634469729823839996073312953842905281207967721086808496957043057198198959894338141860146936843652661407588448748941336930122410161776906836512919092082810529962780231227383312788854551038645773131194896766489252949846729755705638030630180050929804059057738587161846690167077606247209002733186809570757594548879348420511273726964408723142910066915899891435028226479389637482715212347283029630571488817684373517937879748513660982335961300330068207885885746247092208153569057849261710210421720389683931878330808901889927174644844039623146948741723178816621447998777147891480564633031539175112705677531375315441912442930408145903548990349906071037356835252361113991078415377108817672379137957710561016330483001926531561297038642242165482070846954946836311252235389013549497946082577078308480439360837584310363378787616117273005792007381301254019833603841522764114542662939200303760730667682056681606524587189396967985707744998869796665321951519702772616541828622878469832604608781112981110063790493987386056337035126942534239611219513063878082004827568814474901208715462432473419818833118871026612855070598714623629430195268214790582976047440708316270874916558533388240618486389736326003961770493479469006859213491030801489908555328294363487257078027302648413363834583229374719263019985952045794350027286110349518643922210763453208981895096958233295383373919908646127178236399813675286775306721298562785296757579482708263749545843508493848244468563429322938174563139652335134905842651799033580356526767574571466462228415058951258892371896523032881168431215992635987258885954753899459013916733335363863101716623996942611056519396368168532814240821668643225752401757454426440031834584223983992885519345927722735163921120041368248048652601514317871030843533407067381616498245718425083744568473366783135253831817010322902778018794006496796386311522626863141206697364405516359191149840041815303501586779912152414804896725881295094979089531990370213540950220709425289097494297809471573067510380664070529636512629440442644679274365257121037527832134549980422514044286673554100171097542005928168731466818827531828480794914950984650475945217541142092735861953642800427798534566816055519478032282804831094211916918005089344340753871181748687067973506862058693025925807594736737365649773114669026591359491323976054932127492052689268488480530338275931474951945173872193978223326469126924888119880730135518143162839186361510991103172325255672685835255917449526171935506912019281645716458622991001786493860702579882914887157680399956806658232092343622086975935685291460218715475267686680112131736911516601486469250212540768223680510581229927834147441778154334317811689866881620735426282987014450270546814879449217196456611774001196078672550850731387540469011583161921141145847232002219207846977681543818980356141287361767571551301615422912809609561012501518561298093974152404556419588325464489488089402443719945032192657693837557381435043191833705242756824145733218953804868513417956280170581946820442526252919789074456294211507773143085866829462272354776092507545431811841786667567585073788912032370838258032294553893640826823953355774341479658029116469295563971677494764591104273235373088178490349763407396203573779220698922505156763996082059321510423612941427441501380106869511534150044787166549853825053941716043313700468279877074769917842059431670719387397806730800839037385918162436692058014320535085710027733527299179605438914523112964055776820668726522402548293382064441390552215257598536828953265915424987185753210052524371733644469372298875540751880108958086648363887286656787287775351488947390086941444891327058290338451813365717356366302991117705190023315024928118960831211934170736384885144250351417648995956872966682762491495548872160667232698005717328393744948690925738780542681866383461796807835256882243527202367460783257819727390694695220453681434524470116657401448013241338528514119681740137613463909796813582496002250767396186822857382885636150793419045753007115715325048031383474294680133660037296838069048214593980740028039293247946405482821080495801400441898512176182709925426566237852904951339057321021626592396281810399108689492136477511817439186498725771395955083739366528582164715604055030418363189188705789879126949233367587988285534880796944633591572258669210895636948112088522573963085174721900564728112923713365789591860809495527984781800841006525386991709852753869500422368286471994407242865014567429788622914395985479728943178206030852919875580203364596809498211875468190506699958106077296851426230571905759938506495146612441289817291721688930824237407234337995332443304946805905829930832595895617247079153381058476028028810689808760374032328311708194971236034281707736188821631191784671825904331654194732987772510680539857467006948320849637950955911276186922225539840502840940736329843977521611640091734050477586570209152467101015746418827812596399733623380799456917164559264617912595700517293922031511267593482643846817883791774998173011413546217304547955437993905650076618123059897163354940168044587372698629236200515363948226381547265980692243471407342146438341646668941188561515284686495817054405701730954618088006881663060644321577970509283345588005943318634924184421397857183787356838864381637107213987723894613044152191691338623824401055006588320503634968564592071740333172881363717410591604399711284084333375726944887094422720794190627714704685383369260835139722262146976925401792790110824311908885892625754713988684495733885148404924364511233286033728164286487469997076954617667490175664937632894836198010405313262145623702760545218452317874042649359366004627885925602689457470962898987873016041245689368486402515925396100926519869510169132727025751641950315105635505356959502504571257275557305776707614751818382667720233076638866349508304123013172099156518927712562525821708273203757266072438416579860505757474432746129722161528082975248136802335732173573569986845437584863989037922542934997384642927709619420207844767373230839194258620453308669223865847099839073102397573987241578942299213841210182705535447832564717711800367938363595555176320463724758551632495067083259982279368362633869082229617883715324911862962654432341803227942267575538750578101804056300726600123111218328771907172095374322861165666482755504626361701152704471441821437688268286566241538681902552148000320266022012944313348003151610828496548521545657599187003951342751204556899832925362535123899449083481465470382708245776410547482145400747830640709341982676120560138645783431099139373879134931590248730111089893246205893351590390470383934448229488202230751957178237538256079430084879481483593699753042331030253708015821596071035850683750088692194477639222343350559541133365746302646655666514999446714753710975440658461015645035998803257446312372895954614850917464552526071979765026903854141588218047523767639681950068787600009453716934779560862511141808353700351252316687408772774535526562280771348187426489790845357892311554593829304494839866413734236241951417061965638088000802064610591552180288303083001340415401147881573986800097860816232986851160988037205371349437010197296009087550685465764266302134866691184432941007941113753300567614661211100568054117506422766520724952702823467757813776385699556854140086417014091869216262816544023816569169606197412936743944888918561670443853556924304325868939743461742737193613355028449227962837799123898811101727370148906827522543109925751625837396704694954451995815645499088272058123669761520219048631938367419865404664726119640052950586792957793998665742488758531821304541388138780878840696207325088720909185931348425209031604178295298596945643076752532544629400881753809354268220465198259796471082079213203295343096493270563442899707083969124071721985527298906431318044424656093198392044562946106997553422562385680360064308387711162203892520553355636926257114127649571509162261974599425935336294169792691042364322943593956469551216768873394372432102204728174222962708952262803946023941589455868161459152598337992194219861887846687550346063525906826451842301218667987593119598606207294948230156800286985610861425483302876027927914810934883673118887217713045814872765789010596602836039741170202193406064197359852128162843607903647611707556639756725099243075991152640409762318842745363150289134580281819969944970774498365779897019862697837547548490983457664236302037849117278376169564878503327161038293654459097766806466101645283779410787035610319218043246485386821946068995554544300556499269569996543499376501939849174943056526388798324472029895237290561646142345303263962864528749062862741457981550784116774046356396389624027887725727615105209836653229576870813133241253985937099934195310318115558980331093829703710679707337627066438699910903448176805675510897714248876153709403804674315043539156615485670247049364195259974400072861790974870853224455700206997625162544528734321487361339383662862398135597310414804844396600180795879680375287959803175231046656062448646931422025746011051853083972156098674783710717482447860890436155498998698093578372999057634975850471518476950310796194956983236885572040690420418943397863351360683465124328566832943324145487632733221309185134430179831836453261040648636412937945136371084873557905562541067738923200373993767789001550401353189367751400344785852095402082867398634170948218889922052458375808132265346255171178403947675541111453364176555809596674405898163517947917838356256260164890397552847100259109602005443097065281575068284392335962037428011909099773512734730833925176558396493871906235879171826290135620761326278304697255846134813879833993712754947243203096535179110477103275399935791512767980287763836052413762225152227896435806015572633315602971202023395113887234633158802433196157680664569422822028701854778190904145519192836399918960983755079107538370302475607338839250532592403565080430595653210804973403568199313224969017365911930161824626529413478274291037911828629104756095611829874559898081806361563287699858177471230873213257982082400882474456221233361921277560370058300646652228687578009865961348273648146682793408140227655499604531582190205595238609648544219153511803285156520806814071042413345230816041398212277550959778338444232252471871752997332745441145470944710691078488890757867742920986345021451272127757204865093835496715680231582964687949926638322385760121406888461355160343719578247252135163560919566124566222189567741091443983613647146621992840315884944596583526228593310134771989785361847869294019399900975746146824619526947694716505938422808322830519789107170338764913148024645028666461299338937562627431715357002772076824002654628846069044354541691323325642906997972358005180941837961140374955830740236333251704553735228957908365092108767039691644028117198414778143872317100420253157687643823297749758178829909003052688437899861613770215066154404819856927718482970889311151470169973217018066969772566530441503265222484615667394640920597058346378394989299450562997590570175397099681357028264543884720273963171489476771510540977600711894677567570463793872447123979602370170803752294054074233990240124861462016310920767060807487711356848663501612499226161232033882907954763362319023625250645084173039473138172624084648797775177331674394907452358427669650525265489267227265815595525040898616531822170151710640413583919883997225019976238321360246492096229135235404915332685119711320195106397274805340861217979294137735510205421607365612675620441787893130155614442374384401570725939472307155489482217681503716625766973693134310176376820552035699215237705884280100271296081739411313749484425564133098222751403577379654831451960722176095823724458643995332551253209475621097761087372802653735601396587324036830724312170551970593054650609748774897282605890725328159073133097257579246533374045122883646869601054378984000160353521022845874405615334719040716389526239905478171487149091371245738718807662525391859450250539795957473741594345328178267899431441195730654391927076601978519622408125436309039578188483349423478372175322551878257466135275118651249902067324752081727845847190102581567582438248320872226981213737216135828675789470778810067167661535744318339973256328220273108321692948149204388349849655061055378434215051538436757045428684180612930852152213135448292940829176030065718671704077875818009227374173254274808220365894662719064922465673593849563747420752153490140208037349957164517865158633346541327340853612576165107700735625951261876538300568863869683918242453367517246340444987993451064714147748349579032755868254098920262559399958468738045277718273700003675921040466030273032579680975775945027946822327104527490648012683752900682324527641306260371775108720655092683576798293200738909295939643879953305649951123040142365122628241817472342507887527901747639132104656500285739466473610880735989954307844165921092983754893102477975596381874356794737912170964315115651161225918218550003959186001534233471847852625451953367306949087828848195791892754418998138215503141242195450922586302199798058035563778907394074862267126117678808979357487234761023363920267605170404480517438925315685449552470243710240790038083701791776616808002817498932290515790962193268103478253921831689157448615834766213266298045821350631481081057632571653939979735451208378563101664224870974700866957241932247798391596952867686438975289004872784320160513548901118847448441618231889775274421141269651565346113735277717393421680077441208947427232569223124931397446155598157206991928468382787463949801769265823240556370109876562597545569303276855066569086589722682943228665755390092623648987060774434295175536966491065521880735108393750126652541583018711683115229636989062794211750374717601656066223346825623143168513314648436755250356530626539857800321327993140132410370498666467707148246083179144287348049849713633298936680961495577352094096513163255126134157216002014174322525089002994899995807072126413597112078335571696394764015917921129374169304439873467529726905964008754591848660326064954332079951382591757138600881635218009085693145127146921689751257868745168045410849002151200623584625390786239500847909211389897731304432351059768158040415347014866624948344448243744319548778523936991658615989090456597347788606293140380966746269538465648478515466111861215960257355252452545049772244358056143494705182810063638602410330348612203341662260764375460659932889550473229314520079255072233158628207987724357268250409372254242957398436052820912015395506725097158412579086233110473653545824701894938178420742381646567945179325452209422659863184158642109958209213164762319458517039846058530336602152334070576444454313304868385344140405718209290134349990288624979125953311927959980142759055593394385789704976298276725679039140624828258073426973416132621061896687585146414677572470327382096402418682980621627407283457875549305676720633423070972098611799252208249392326553670612954036091886979085019767575917762728125391363586243692795531294742283412921820219559842905875345143975429362813865197236336581550949995541691580718933338355201955627290470770159201284330663254712125216421136410298103887352318445364141638498458551123572345895639748152676017580781281552651822599378066539041531830331526507099759766573345382718272248875433932577157554078572142102555451809198687871858673848190617585951455003475619331636492074143469691192431608593500400407048579708619223540303321947383448064639972577292634658137201670973166337976533923794614283721612693071398206757594934740083530528157960452199887408752761778415373050451159612908243119093682816543301451876624698998298984272021052079486806387736828501078595116962763912934671610374768856361523815812020340329723890874388083760341920899088300896920958241049223181442339770786129885957254710322359064245737469739262268421464791251012101103658452345400716089526198226474013794248671911569441880810975824117163814999147754320655874869171356105205861387775896746439179581155097150803528677786660272126918012363923804179762417213657666219341977870423070498225860637611470713009931156915846056408211973619735932606806072932416783152416953273982842590607978488160108476730701334589419549141048890641583978109028220385392110027666438260294287329886384066961381752118938440064989033806092533590412177225127349831455565613970126224804178781037070439022501824016550346119053030199160205305666030427191728689302946241195214371275393633129935888244912822346787479384812020490570876126777551791950391349383015855300042914234166280831221169454351147053456152739628063088510720816636142051202147525560004033059373184064382843295962886308340976982053320965594970558724495989957409814831021964417905660301579034265620146763380941145460116541849322339809276286322139361858077261171269349522218338801521586020377692339032184558093074917175793427595840508022537756017414382407194202056680486249934133187478529976098638955778750792883612599156564877465744363153613593298693604120098110473896444799172691994553765945494307782725366353009337068812849200768035896377869532709115399260220458137617362104690219401663471809028623761103700796467142467592649481947669843173327273324202775931166527684497148252312125152955076226730282952719945156929530526091016493043338011983274768782506096201648264536030977478343458530156859990061458213276552592388130350403489159246763113326377103928257072260360193682800548629278653068715758607249440383957438323159278459975856502236985747155352792317152271180398460341187640838523775570258447504047631428449432315791683521351721711803382302170251353440415534777397199700594333429273341969130651594645318847435035910139337094468868812836398532319812955356292662037380010435960020145057201501978244641240059383310591499929132522716058998039030723703605916332437116622916654831968977587641296433308182564852281814734039657524135901823190869344626328510911592961765042089105742187497187466560464464986023772232549741914429817417983626977628724527822956858122049308332730561682643350402096923410200300983799237150731374941174549599284629527059715566830278164562981079320881942935860965324819570127079168280961507529007898574911819513396799135048267058600174650527800646805912370376018908820351093575242617071002620240976393463360136126060439382356021145914302371014321028103413704403347792079278104474634032228554037906471849653235978392265702074573613720746674220386712561393164224789002188013498987972898797138046138483625316129916809183249100159164287695702351757782788226272313238325799243424123449981909756097354256265759932786793724923192031728370174536457051120333756783564409800279744083153628596032494894397844344712244615379454923224254721295091173416119395602567141200396701600602627420339842413605858800474077044571162828655659825521950734068252826012538869944678275473108487078775303521896975757900795534371412125432428152178542015873270423706891644451782240545040059413228179870899424787201394241001859173030142467963770045603937579889071928168453822088103946939151801433555147511787437630130391981263742459920217571320373208845909474028002668707930010447641808779650506854547731879422880949205231297426307583370728938843371455513573610853978630234012604154031205320046406261977990727324251103805009593805214051835497072295596662254094097520822247131572369653324657272991348966847954679089159096664980477499857021989346869861247253512575159763538299535370211502300141145015728005084033924881282302487107952552706234527631577721836181603897997406013173210788509665580151644934722650863576099909589238959395000124631992768729004445336419136781391991002467171599841504706309636587917390193121006015217525935340182261070977941411470228811158823599943335943591484309667124223250298880422185265451753522220450938045704360843550739295089091069237901862567732713093267926272057248051438150243785589112931524345738816138186449891212079392081743266954160459168533558152996260045731335783465119077842669490225195470919727170372844376664375355655267301133813734308412865969661896719938412894540338872265262927999389085528674508174211929024775045662688766917613255189458190317295848486572143622479411549288390354798320150605364843532799469063279173252070126879326414056951695732700763822144423537698586066985571998859509225051102749766590402511489021712934558311814615150947654571210194391649600130470679529493688764559289468421604466069792914701564621890376547974337892633865141148605965831809823641423476503256937571113742252723401276241941850837733903003415627017440114761340526758566516976798406545378079271183570428232317694941483569303631040185220056040937270915362632385042724587834175623753026046615125405168766605642710426352642784784425525285037989884356898916061428178122068531978712988328507503480135123415467840491736012125443911665285853319838254723384845816122300859745208046525753452920476078509233866432801339815105348915882188765212603213048028401737817569079624136718814858152794860612310021427642609300433907340935089368769147911115016597930461448774255269789342038039344778112194420877714329915810703336719807041108371514759664122300493155260368062014706734418126840702294665813973417693366820914558251299939654272539905536391556900515122610867493580447256757290558174947462161482804834125128468530306258548053413222756322620376368780279521462747359194373596841807131761251259266541527828330692552885968609141700711722216435261223567617691646435936507668988538807040864992172976463672664497352664396668624550180944832399103677087628796536943582335664798283954281221802102233565018788706781365656580919120179456008888678170477065190211047902966509009326904126216505688251931134937273141726938389939330681204506722043820365620637698551772470086237665118020968223202983053147868590485400982674114208473528262526817902530729049751752789626220226783498807466141258389665187522150229418811625916011481126917662926468370870764511207516909715300641452823181828352282431714930159676707368780970218933705815954299764093730905488363009281139654146860301918906976872178557144817176835462264469805018653925158082846135313809757842137796997671489715393661990053854732969243287627890926760632915987798093784635382749096016225837120034208356655746856585669618115885028963639907999914326201957230243104100109888570754200701033067152086655453354189147764030595407000503379523237273319358622795110373795841949916814255997273344454005555267819503060421419427682970544727856419750805849288797791208106120293101244091155882694587474294178169550001588787647152278193879738534091440631183763223392962695741869422724204784441044736384980074774204720264320952857587108292961719411602176336004357641098294266722434721087869032483421324988176763175031089832852316072945409551443610211054678136669314338798665391821497085719807633312288104761970116567116167566755125057996042528725822327783099669450056355146431279141100084642830413437198065170088036658420167599827553094397157259618111273788377406966513892040466008283065314935653234235614723891264163832632726891088093244216192393043705307286451695650377380275782992776815356386285768788884213170746022316456861641230302441799789602065814319924654255029583423424792722235238780853928768539204462063888738096282089508761461927600214010525309691418828050496516728713742058327707413583627426356516320168820223549677913665020077805465862665849253402460912155752278595853302598381544865520872675699841511947719833071166348469168947345058029759899355611057670455747705894366042119134471505464661625359016200384719387617041425296844988179084683478670078007825201004663099328251248697149228829909854849125772206293293078308949475070094486272194953524883300558118919285646831839083318084676390743254606324340059324555497843647671286673091409858449033949522720940028336876705891766748479391162739767592544708879562089002537536643261432755464753719884111334197938961062956729128797549858225890436095124293319348373743567046087558167953459769885942249445059214790251585870798049953806792612182646768896836206552351836732875126048000855646709404724086947215671644415093480917706923563894220019724901164127814722251469059355660263659690487612625689576155682604829404580164370311046102167922354276429724714874618463217436381368882333947440621833326487001912241466463956757927992575930975142984962532068444004913021520470782125087796194483498710041617771794274210334720832631578379244271059036053034352561788091656873938496730265332914165044333820363162175634287665969257892616844522861870870068462592650265227985376025814165712037518354036319426442029157819759496616613978875543900139301983585179752425352341808314423739594303640989950855980444176139248259991586632616242556914470471274146372338919849800324266995443581974282471005178349474656293866711554314709703514609858206711656823565260146678352765203518500765860367357134406122187210233297434647938177333291967411801133341887809024249667620080982715599990262152830473902326557217702082221545135129341382874040353145843180998385356556512526800703587395730172805780701611710883564003005758362002132746266239198355399343171862041730538808314154820040305961823886505075383353071050988802853411198071988597708007105697080237987349024030154233737428584053482625746978264270170915926798251940674148091913176503858755001647643199156713768660484686987424027066988265404146938556803580912782941168235706921504986894137258764344785681385605723273072560528918006302341560469406464905192714072107886918582477608082060616350717691915737670602890592623663765926286835774463054050702968770370642237725067245380703218461952450372277454685927595882280880354961579846308485400532138582341889121328103575040818869529511708008622259329180765093703980305379500481385366226805287451563499643866824238588374873214555810033359792327969281609238150197896150657080388914499272745365052010181883584528653193386627996311201457161548655091468965215440002990915532072299287905571726524164012064700624019848349115944818992801270241293086000215139574288273125983669505187816504481566730493560402455909737393933169272901005263029944303388383712041469404244220280455265972798729624570771010461620027590639493128627180059943079338482561124842511245207338189093693293038814016207323028851710162260751594138804909881798496470542560215058425475060408479439033444933614929508911390732664197986313186063920560963098221703254020790125978064078038578084394901852479063772553046975408890975758936789856928809451871596710564105949986261526153978436142887069053950884805520586748989045331044851653600161604150368468809945526918326112559497543919289016084793522540896067598143046869590083043791297103876034691534118371033645443387691184169430913284663649020059001669375163981687625373414687815050572416846148111841990493944401286132233332795096929742280270999042088910235998316121093142607788142839889870099256398376236770164936204611373117067747760322382430647265092501143991609397193473455370735819974416701278658450692473630545413220228005793365686087163624813817730167935363718183244630068375881444353335579496783878274175069265658054005679814947427424694086515320481902485271908036033898762475597429083445859970291588620328390945847374800639111236243990308595866993430434330485059969945700950081932919814850766932930360593465071000393664693726825237359796424583042284729049027568983285395105740103850868169120022740912449445878013396716819819900820239145625032061479608963995929673724849123634826388822062477520567986182456028353027298683065689466365108850161874040509056178829171436157052779386913941037080894098899370643279252511110069253481633814536138152037177157625540222795817126749555574847377001270037333522088339447309773643255915484206179676161524286200506262774775958400563363272626086384424972850373430750765321990827717173194101995044064032838301065387593758082570191224801418825293533682403608806688030849407502721786948567517185984142233993034401741463308680168566232864487153889878513153495579778771758471757959322073868406699287870691940291456594029321807191377366279575430994387206679088157967022902883962638407068156999974186623958863605444859424221195001700111030046330906653293183345393310395501365644999749356054428633638521907161803644556588470866293195266871309693947370998030088109677990048741625004223219208791007518882459184885666935873845383232021408111178890510464025553113101980912896508619568333912426493864295097568620960669385000372906338115164010223608472639547625539296320488517736724820308937263609372418388315829885953556921826705158350234259393263371993945812235089787738258609076492526352020143905635936716219151235399956530871777928845794554192604583433558789029891821971517635888142666861358996796529914190117836001556845796999834451239415212147676732002637080184016430985886307134528997169595265683224909559927591645145004970173142053478846177762436771912594714219318585961051617591116686833897040586808561653226976392679973003293544672281144485210799582517601342121944464454961123584770300675380877175336712123544749312083708217168961713946404045224467601058539951853446603797749899053707509624862948265251740084244059834099029176858069928727303988791197292589395849347457085579668042159850972539798519750505863998344816448315683808509576111019918942063816725323091502515696442021846436229492563276531473783391402285482672927156284009272115584049977044991111582900766679440535611377399000972050482470993182920828537259892086951464166507925261884556472339142358604907888092467404981889494547747283098905664045464645527392040861858997062221388157798796904689703055174739311551533530872940973682664074150806902132972628817732233497354717074768845034914387440296816587862318463789596722111385814043794431564353569878757907568419266349004044504048129406611815959558145294295388960764158623659151983244895834930498881703953558832800449778186776004160506552955790111129717431260760189386777637500909412391810781257172845424201385542989596447678133503852649386486760434962764878596711356880806540094890315761573096022257064195252586536826817644521104010179230136746605393413917875905197358652564464881410297965707173832841849745638734038022797521405011770872437652400809132820297510052590081298810261302578463349330006056168695714924034249741701548262732317609949875532494761645364919192322924461863705010286251071064410783957733510781135042636913791552535020947586543671774084043259118400112669634602390716676574833426268011350390009105465164898253263257257331687212242531648531505546454525863987937607672362405163635159538259848738772320146794058251242621999633196788689003421491624850452232228033196099140788476866304794922306224759955192739124649456847661629273797631743163074715518392239586410082379865557357701164019196167353088927179088320018163347866330950395507358629997131116280274243591522714902727164668238622345519834366687137383376912811106665301361371167346433913998758976632901151252645986186610289544646352120253549697506478915816671054230633995472787845776937771815389164891731481622166759052336274780319843103317792794096253120914910849091937761446565449335759551211992636432007656440075880265539216738896434702318042961093608407543705292717980954900223651692000269689318862957672480012209411383369902099348954237928906139601902635874534427995161200082181341925122701097480010082684888207816893413727229892553920023183105255064008127181796026256865775537480400566839008027318311608892522767320014437360375915091214576395432550849502916981026497029465412528991771413355533528840148209036727269895594323116186926768631407379717888159005404248948304275040518256272137149966726525064070655531613544985253960064787902003111891611197594850167031970472548391119201222047014737585767435834653772910262399337760224962629802063048076757073279775312901825941132033488900842816561345685731013856510922967929581088157655870969404310006594499464828434260277535355941626411842466040723105990275297763960457363834736556743334758493462058841577561365143015172090809892129648932509036562637185038192427933547280675835971053944309574985359070568360924262149305048354010846007333337546792086223877479312069221036912892913824370219000062221802374056603674762344040475802021012707366019428861136332974550320860650583637079972424161585158405015078911857254394388827528493567500124983788885272530955724345996423923026197563395089045280569007631017693682380185509013770860392547644316813289528805632902021117485558514365066641130612662955477658529936522676530264566972641296478971000222523542902281516616618512055548012846103274529492401894717330706955592364961089445657950544654400756677697900540453293082876021124076999004704678516350144919897717887831128377547132499238633666962587245670527517833617928506966670409873474938766014832044018322114878916264508075609378531582977402375648615319258649838881854312103769079332157834213261823406808355743790404330552027707935441439053904720991691637748812231617395379286433987380123569176593667664706990455622349665701932338051381512946509583135960356234885539268983428160869631642477282413638554260131455493833018824229160018527360843665302312241607833395300889807759440129296617192660437943410594213405215898722299245752892374535753806721298465100620077212803838141899967608837718915255825804910111942609367752698976962347943596094849874586554647004087207259306753056176040670057142259026987106943899513938899012558967205279957721955554941367667117968777506500500502418376638484470087396515553460872456165511478283182777385601393490540407989900881544177195247909960433651722837079037531702830117571333070086102525029989439155337688045032520451150309336107300713729893421099197757045277160471449566003047181463139694738862431785770913453930926576202738037564614220803052241840511517163924512300962873489197007001778662135999285601830353901594075200654470929834121920379436773557353707455336800332162074674754101597264574032483787138752338010474137813096046477563647844062165298493965250061434626522335317431834917811458043262786021443222216239284823080180564290967814884962524953898099390207208594983197900320443196103408879544485546811326573944616360654911236286775905216056494876240008140861567410346953226525883248673408803412166061021791222215183060559887853083196537375152472868509015057078534397933873460275898902895736508435869791276226887224575868852541847759327707834056971830232760290629238384723161721480959156969266326020730452848645722946115109777734380640972168944949196260001031004500767158933992003682572289775314895119677468304983702166084149612382150302218245198857845446863754725893665084964267310871340898508133695366119043955337577676110787887778307242936075215629803945671091259376835301777611592150044170795851113624464695786815070665932922162100859840479984340015648823404734589109958530719998926762235819619822580849314399662067699573772258500762708535065586544259187550328294462240569269692833323393430128640395065369054498314362941465368577295473811069776964647817246364341278006452665006521337059105957588424443121398406000651808982256213385104554777908491123820111594223859892111398250967966039692902322960471528149721947438388604585415905295878493261490639549997506173925976608224379971907118797849882349889883981122042010276713572385271501879271931452433839140224468400769787798719330445137246260407987066818301541631798740762638911586904047819836287338505170013634606487495506758460417715293521204280328367398759878046634242681307807231438051393561285615620292297041366315207506367548902144909991412657414110117117925825128660710358476746512410717456866656517576860114016195571008128023881499000845393672962177299564022912095712984363168988810947817386359466464105878759697555155544842678114567969158759452243721269656575498421934458386559510993888107778315922732184510224726048019748216016098297092542152266122273499475377868189507121060974747598777774343121680122199445459729407092182525146672657412008162395606772543951468552208509575146539479310659964651971480988279339099749215282049404420010987551743183381727139592190268701886744999211617680655159866740614905619961553040584582479151880231991580245174776321531767241283234622991338275903968247060852647559220149769434647200433686540180000698800895906641462578124175380541871304124750879386201870281037242190203131394803585253192158315097385997739945513255782872011265367856607523766864745009760140982565825638915474680719025483628063669853376995497267694383845499989220647350520517202180501373993476666688551695166769242326664718488240430705101747973531686448391197180249860717283012152876868357631986763428446609815327628416147922474073681134688587802993168348760508472868249791142723158300622629597950400571853033712983039897029001264735074553107999034059672573692520254927095929380756791638243494991754075627212543857237460492509198315456542112773316878803645854309076385639420134947920806878630276728945910715404433779567406840616080125358434263159754042705711934351759478817703133011650286815585628127029590207182087506053285631509546476720064653369601937982060778684237737803204837902045081841448537471342929853726795247985371655757135709330298717484552837148158405236434511116956824791648378811723542302669641108350918515021604559533147402631447183166565351540436762394713551915879249755530099256462032091221690935213212822382986141164106296411127956466971501943616982074438031444263149356079831544085008609278355708986263393389133256725984455826332813216384958849262898344685511032971531800044024246893040200457078034199673199924575809808384179080594970215543574279317912403056469022031542012311880506324162407939962069760829212487553479337231294684203020997779769339958816331724308544855398688832095273767957777987120057642599784927417433819682041837367265567762490306561602332939492398460115356275614624867425587274743295962768866501595427950850895817298230701600450868997090386688946993491098927084544900139685888002562153582122664545205714767375358427952534631753877791056164954339048137316789683589719949902924337799217495413015502090295581319806780465033354008121668330320012068481564415359578003999755133993075156028764737662220898193263821874986363465867862458049434872928735630266950562839068385406835001802314102759646040663424710390302574535346747212277537074316354945918142050683872628393713447465921953075392625979438606120971633348975426643925513736943983232471689142460866671639433274112088749933627027848404491336335479640147543601282378050984093864033547593844910729873724482038235234927010288838689351881191403691898901223966414749199094758437591729210842990589331525735408120084701972360622274732895024937883979592535906159849561832592553799731425127888165672828277584692447531204138038467440103514612976489201049687092554087229316152966565715642250996890991917437428651308599888876579798115511811789372914964736494007830893493790966551177321332571010073385585129121083579306132480863268189193039168474195701558346598625231584544620741647213534363756861981001109765436258416504218141862867052749442627190455930309339175284392092477899142966555821210679755782636221676876219742246533574682476709840839162517435432979877421977523802264907184381523524035619721129999528071210527422239740096884706706107049944574700170769744421818419698372009594202444980773694785907042418877117169341414480733069551839425044329898870463123782514395072152165172451399906878066563445897582518591917291191204665783793172167803557884346326675473554404694091213507874769634654786107622661331913165801362425928756996965456547441770818443120081382773126597852663297922535072518794431496915575968633941389038343111119280687904914709556886901617468930923412658166510932799494095536988998532753748663695039848174837164132875895335383003594581733919535587314383975554464919314930140454977556226140225010561242033538235359674857359747256641007969571478197289910465535361482246548265998929401822422191608407081163086669109414389505697506059912469659332896060244823129193912312133973864460416068429220363377836999570841933051314258367797752008405381745697160459472006150334910196972482601960635543436784969744629325521898492268965269207598540601548315623545123042001056517856951707265611992908979767245384405619087616362775703946971270429679505576794061307514147857043261583800359292158498264403768707030091301732151536600689418264514649992288919355027471109212905394758068405415585450568263661893137032608091374845044067570139478270203960091956277905939118730764746677620751423253055782995295010635559781449892828043445308152956905143933238441214086860140527620346312907068436617346359959004462336299889822715565220834117199431670705236721233755000670349829472591167284078714630686297947593571374809864781854355396386887708969559192364407482099026123514588449486391915725913175029253504101612356615946703666798250757369678018076180985901192537997889548454222232017762591191388635309529392169875791891303171730006323369407215471893798995359864626093222048408499671244949643255622823799601036135658584368710360411367359376448742975842158422138518277319483204869315720975759679903508293910751782036140192136359584151983204926484830070871306193847170754937217115277587875443099380295866473180883943364317286999908647831688962221310578613176965869995423944868418115718136546796973814280171167544916527650395061998524847424350110017499749094797486307297681811831984190896505941492355351255685930077757762351950462308296249552840701953732569411673014204498094662431912766775424350745196469149866530226013813328902990778144363655224513627876096043933116168981833681832457913719449303328471604044745894861726868532609341006635421659328511558503431155749252825840912433543361150397437101202063784042816590510552074871938870795763930230274764912710971935049428789815176337714866942931547934259415204123897532597657527230159543696652205009008709833536219840324870782520939822894390991259728938677506103683581958623337086194354871122365488232330089164894436437695282089151485994744768444282025597637103375370140973797480136110412342223527123616934301910665806794420461473414806005399660594830541140495400408806041644434770255298837822704110655603820311363226775763069758208531153878562382208955868089647588757162371705566876883150323040099961426286443521591312251509050271311533140090089966510660843403533640071550936276219887040837779374063177404888359275358669918338100950757657483823840615384827164166339950970416612292679805717009177749529522971841455939516375041686210373377666003390448086230852557179652567726369365005672822156914464572895574669669419219129609866273131511157839449226486765013544520227986756920719673340131671299069514846566725749834611895510339756056168245038590443945587732348000732899789523200057497353808461592739223421766684187453329226531747807496402235094685477880809031167268513816191590299102350470425336787522652035759715429964630940224069103053541950302166667570614045955819286532065615671670987525304754948625817882018523933217552010365283095131132696652442807087736782213847116749983401129270703515896372317854210690585914723743562192230261250780108170515109536583183033449286376610471218578049978234000130479826558358586272853624159099949228912096879321597541721712049615402467070638201972123362355304630734931362894428674458509467138492986875504179552548730262407879787760213041875389198699031225497738805094368658373218345453490139363330305618163605813746866479745242120097315638123034509960597055169676997294636318138214688741944134886544946570650287884816854285455705757192925889182898970969918780048985429179854684014529299672142837441100361529186178283999561422727614752158336348975103942089385081620448291368229465771384928365640909512469102636715737298664770980277469497001802508843189922853171860687447752968764370901906120281491409070535150089679578023359702000653139635837298518222029506945189543291105321254367762011143383520554913869831499442925916084193052295546608114530539308432014786014433650119566652741195853702187753867226393269607126795249912420572876282186742206287590043815774463882117952662817149766094703883866838643368967245962983227786244977609225050731307201681156246896124499929575236304384852263626032776057410094440439021495606121900923381015623366924309305756617672627814849609465789481453220639095056679108178910028656506451539374674507440648372453847169228953185825643712944977452630710626334129500636713711853784767091122645767055613877837418181134157725551067352813204448492367745469094354635830024397827232028009269276014105929655444914479813499773831635109336004606583549328851215356660425937705664171565963149873750921157584827204394361383298967441343043156905980634765158850172043889442092722988321287390921682426674979807455706648192074281546060356934947233192069975394839551567262164838420888439540831857332473534368915570122132753622990881000667304262627701413687767732204775627380686978872125665523639636790200839889968440581766214383844943704695018365726217453025302828159598997389233279096783788067971241747888205765020829354114898977026832549690356658494119434902287779791842977849120010825007028067260456534556449055701502423347153275813278001613856995748595105185397496960679021842265666285202251744501156257494711440681352118087240546613862500309303305174154847137954334896900044106650083038615512320007816381520533891675335590358219378801114448694970855250188655328664021298568522257504557713363581879206287555331967518483358815600880058202901911365931660342809419941527533589513851213056014348176078823255403906169526483101407586140994086144374421302470893327563463306072008631238784397283213548039531360088403566462016565941679599391966662448975698341609520053989791831868766625256644367150682689969615476450689831092521505617855192001717535530614102083861091024501208095390252494056370802805051898744670146392790320709312972075026458276425529107128146668346856018142645190674164798820800641972648547207394308644781105143668500872828482502580392193374492273508076604938992273318181275687022384043112225181673909760449932980088095734869100112357211308146701039213076405411076876036446374790308775078260318896569574456501889368451718173388062519695137273477034295693223959834578268789441564302033369248164047730467122448079532945323664705814161370359822765173370556084960562558148061352760954226704977879446326265395329257077841933149494252968357939465769972157355307930646020551586464768863971911029585618251608380241116964282035343892635388069186880938705011187694845749020807722909262558996337108773734300990439924858702275713430252629499937149571238297589491467144551530918242743079096091261648388308202124334032241651153426200140253635357555929462688705334931206964714030731841603166876555415437263122122008263535713124983108731943164373615835237091291930713591136755494541341444606685701997403718234785143042345536660375836483772685540702773923410279203681711488538039606666129148651237573428480802162702937393058352634282833081580838251022258867091805188800996137934747593165059809591431359170440214374930865534637840024292882075776269983669400641845247030635115164321295755661457565127195088775232486941510440769782833450940759459792682975944511521329438500425938354750217163709672461301498342892186627645584071341328977618770792198562501152968173465596632319797579565893555794387995235779432884994309647999341171064791710607413727254589525884647604942102304624910026209407026005988503002055772334480854986791346625030440891692176944208664794799393514786676462511401499993464545110719086493827631639227097757080593191931338764398551909999250568711194123878408678502536378305100768341265010581736463775894080591498620235367318900272745990115892197291296300477794343968380758799007208749672955495790721417716072593520557970814550013237822044534604384268337469452794569706191233861964326501981708159941796329270276130226260990075250963853470805053880006084767754621690252963178456975566254171170994132826547233500233975136030846321383671769643923209096629651997801895997509398816757528224533589820664708886828424262548966857143608002934119638686652777708332672778212436328609320390708713761861445548397364199998318307719980269808735929641111912200360532775359010980643160060417260691743445679201770878224455355935552122995985050268665251447509781315455707756958699517536675428754244066380616837963131756287500166407675887139470517347837073497145212186827743037184581475317256164419239230748217934273697324260252863376436106453512305476148131006194014032369610702754169288143027710678274639803599775018634849678844558060357719080531219403708885098732116465931591907977773312048934444039643835111832544773687497601107814430080705872839682496538024136630992019243058137475658462010953585842260813594705223416178731835805210014080811104857714141963053874688264906544931230762178850884132988983419038505722570058595798005251936512641816233331989539237465872767254006551992118679890402415058010141488191613373354022883642612772621571268649613522421822155383006225696245325653646296657805888368323038959531769475469651836606529762505314373899401686997125207260111297945144646234031308005773666123319699893684038611660813875676731107160778076812573540128322306657393438932693593531521717803651969143271775288438851283332705581093925163309168816743715222841875922721041749574118010855788093873782032386344292110757223989516368982568280716951547158447648442950122699209079303876649460287246232246756233880169415685158100421631145654780006526898991201676612702640931721630672141365258802200958001078893859616742308884751219559176259875838640650519070431200340502718085009452326786891370750162954719755776017960591383162546907396097851566695957790904423101468197316566286343620466550897749231415906178648398374806195906376543172542589171830412679552187841918713048453149930398534034436611678061227763463316228088010030020920610990605661566371155797380649351280280814576066054952541422968082252385886030959916379356876953249341490115670449222459308447595712403816194427242213392783126755678949847121976957723749898243952066948851597908716451012798181782666477334804208897754086339450724200179166054342111302854030783170565382131036799634361040866839474075942520260979963558228579139322856706637173361682581217131041054782801146075884972177042013224321476553526421172408520854008292970123037742153543015271618340157866432658764667051651134967429393975418373709035622401681179953207000916745293738735218623614344849867069765048412507799749637905033543922155811837732474246158105505129833107396577012809391457818927062727166935364261617920786130351729023637563778043696965107563049040407948097052729162912465603949621981377416535061485017939106017806556635775824040671587927266640412922696320710902164541570580136655443024985935238734109446026617979006242699712036286415731558672265996496398081202379974437760213235776505673048598411984994802448127470744184711804713443367943037130609733493295597959896622296450231925309877227026005415772281591914590618837298860633116408786634325771379775225113419565234683634400825768802606638927534928707534204871162582064937011152342803994892427373852612625823432564760853749050879743346573334218775252669111794455732051498225576526359813784571075360687316772757003837814183312738270999674875196278853539408733162122070856371858094118373055239858330226993242973041898186052650251902191015254054448449144898055523916861288550108091335780174944528685196923764396198766049535698121706829035662256765802194289060226907221900519024709179378989493865317968542464570575650433994334016517103970555081589374027442010239967987268366045905898171529481136319547019759162486603478182992205781470850983838340673303066619112119629345356795467036613409717819175361577191765053725817173811546868042508127103746296553352565165658586901349150736727055009547467342664172804537772893152183931487694958097250894952364688664736593472899893616950433114840114180254409868441361973458354069216162692975987536150357163660539213108043457231542728140353024888990870145886894733065670716966124987097340050234934955709511792422228316739270505929657965519156629771864304133256040508247505701399969095850006080389134060861695230842847091129322896186087774547975589261899213494999983292686767094904585303430860996315991185864526831949362880373931674715568317067653604927192512023995173573766271584163264013877268062869945943568134573138056743119050327494515281172621375234809549893445482119017195176259285509803560726246216026621418757123923553972718051579166383536362786217882202061485211462070637405687986281561911095165380714943056980783668757545643044162026967922206281464695882816320863338328034391295213160159495004540060320308987186940905690412219540674829191290131527242339018221448549455764029387473735579847026274562369024216989619127444156845467033897845701541293352666261380030754227743462141652929878395946476493733210943656821067748049281610472360132843321932397053203868559910305799333588042063867322081352157438924909947735552959806042634188911546463876909625525039969010576003760179281850709378137633264736882717045725140850138711233314380956507563474332852611276883700065515394956797395771640007893992285878973666401372716407218142371197053530507000536590082922052149416562653649910682050135917523620062853392599738078708432599443670112985800694078753174998556743368866794592447245652433040762921623275481372657097574184722013795577690443869119110471315659695710596573032749992498927291982456705255297826466463900499738541364259345361303706472657375029694690125084702130470525996863683659456669800655788880870006091107778108111300543336670869942298601997114387188222086516413684673778634323095755448620970852956306438030387385358754537949239917879868332340109371187791389562927569240033064906311900145242835370089966121848474045916047683777725318477324614950680638419490970227857712407995889690731472983563231550727358802677563681656616700928179473901260331758255565444979004822545482577474650939055317083726150013138953369843417693496002075769931981811298141077131877507473560168171699418293254938790271925014173519059131772489838832269154595560262479235907616996320639977979774126011282341308280656002077372792307168263420384591642832008059642898634328650471064057746399998716086262735480774906642825213447727126970552343603581692568843192329854067288412030613333250440603299004134772557621511672896070414839382926888513785372039939800989468001890215696099823573432309239649889908750179124263715302731920444009668260592753286076754130342339478257524597588676974666628996200748659655986866033591055348837724360850087215224629409995367364817156260844972307186440346471687487533426114949887154153901702957302138423874328955023053671693876387521075056505771286827195842047443075116304656491035723519550907331188087469700059397143080678447574029777193443818977910365530367341828635662663224063828406654606136006141151433096382532317444140523304193637799288701566077550907389081493021605572263803941543789026786857861056050207246356605363323277933100817352710963223362955747820155614402276129201916628829881887547505761585973622300170469873478295733256697601642960931893790035397707680844005759553651241535661665809160481363585474258308828157187810567072470628778686932390602839064174262738796395735495376377190801450353985342595941663335324936993268020634037069496786657528201998011914503148254824139070363050376228135031720952956377222470863853975639302509259062743953932744218860659887041251660550933060327347086612794148935995929963765065862380708087311798114603271429362043997596659932101808808062375360583092353421557025239155568282364865082972055887452973968064684585774019744863772061845409744979216096556175299519362005160457561410118361237052987864320753377747256003430953515001163161863637130527041226104870735046205237790571996677817648450649246972839000241510969325050182396498135704273660609169832524382767505034132847175119015789382809940991385066585552604113415217134610827156099469230647509222440626739285723303314149426272072596067693324230350659929236675770330263270157589538982255460057815748259332261096080071733771402658395670448466291451597284930371884751559811530283453268682238272691063218555715288648542270757493258495261835528291108826970619106185929015369981809698563735376259303425699966738858919112658919952395632014176468881528633083846369163515760050408970226646862212293126739543615030488061931011058860622933799240580389016138204580372040592865597462426287456353322419692303507484252933491417853152585147508175621752230388248081094687372383154525794364728507422013628252049471076256214053881559424835238768937741013304583210735998163305021801698930171935010374948686023605554079324687593989691793238527702692489337724377028752469469888186687936020251719914371947548154196546087963219211941241435443628611632700203504246362096589595551428455159897278701795144821247359724471479885649610165751595401277981935385587882464982626502628495520276551314851434184841013869846944633514705890380746058406573071717483371339734974182795929299499095092968371278444540250177378492515428155395279175886470945470993072808095721658117080317884162849459038546499342483111543782126292339590788110065383459822779095711753664494670688709468770731824702971613194475124093883653937334269227318932510606775273221536522080830781601596191600180534486969711081400141275419544887239990031665458011468284893213404267652464855700176439265259750828596452140826189557089044270045783855778805859697592349702042044855518131082249229282433191760067684764075714788100066711497920848083021393267299201951254426258321440323626866767485066153500555056445660997863909135903133461154764940912626745331986191641692274919206063717299486043435291890097378335438859564747544325794668156241416202351136272743200098056080514797998156751772759753395708693719302610033712073481122100208402678991016700633053870688755454478349617844140774853058313527754952312383236807456559453299082156055584306847995782106556075679674017650473326418689985513230977158063013597364616230347719642867436516330933496903603895525267096271566565453795230926500799312101592134047630470562317251773535131448427505230641042793337921500055121709936655225096801349791593144902709772160701838696797377202505016538877350830213101047988057313538848727029114950765256641762048715449562012153719616024357550439805384130861731564625776069311900538449700739207971227248837572864900951927269973973311588208065019581910847931599819631874633424204729024624653033831010726122691578105842898367259805399687766731611879207243152005426726478251164014029290345603771534242640413474537247975885010640971284726363565380790931888192363763524010540831443335653078874373748403072002028142893384749972277318596433001500962569750789129181078611483141031869959262290801623786572496259478182424037654524900280350062614987485898814459034225495498302016997874361437905287549731557298266677803900151237420527908420406257329997006141750596173614078340434730907304924694172457265781906919352899599393560886354723305993813993510713720897811176255037485295289661122320880923931093508470739561974025892340185034671669038327093461297815206857634899615961569013375762118067059879332789680758129654308417154675212650981287290509100762682290073370648506690166477873798901140895836454872867899592707445185916370964656991465888266748467679360244147958367143030543803325008263015550251008947497522723621687481115102055573012927502431991503033803927480398397758614204703166926984663327641272974327837330642710478511739203576114800994091608510611966185813342833674408238040633150479122154420907657262154273295799999406996161812400437320331235768335479679795304455296071699432764469402833143028352206743903851291228983259924358838044237615903628519428843189553548426563183492968256315042091979349600101097507743766954012868881396419639876469224478648095260576019218558374616669593730606357280063540831961547799987859789571356751827398976548031812454129223796580842119057136457117393545578844130429495594142745253902904334503491383081651162557821144362933191386596574464728672257354883812943813159223997529080949877715115641664465187223797113512501513232523389246150068201094416291750524673961297704423942853045058627586777093966436993719263437290414891051065102141264013230576357324245533946127865673785728628994548483815299499639290987438515695683731168612259440157054190185874897701082338653389747559480243537441918847873874112366213223622848130947221968077186199197359853509288545174611792084187078414954219367376644284331485309927958839523059047264378378474995625394433571994107819719748970379766978273485060661254438347481451885492566022873053004404992669558957967169776188294793305751494610221636315390265568208561574746576209807858391232137282596896175565627476951303427950743658869901110456359493287846925740589971237664334521341073614776607700319358679597430619577739357098155788358026071809298570688266390818528198391249871041238814508344610922569717146121803268683706662203719234497084576174361383671032803139583513544930452903889986488966275739720391912569375323822887463889528327216784080873697519741937288315061021501024901802272343891545030119046393467144878760417645572172897558025415570894665021506990145734151398306202727904098757140456954401045911125978756368448618509247505794662773342579343452865796629850942543473217956996260370450726512962236051039704437394956001248839806171961855212726706485698310643081510470879870525964996515221205273193921958516538935978602443738463145744679835106736105449301464462826869563090872450945399843549518776124837470868001569324982411336934908384326538441017900877703602233047489262392681411814169147783654506326379001466371969154126550918250182220137150293986047364280426531552838494439724566405069184755853427402487721033361861259493429220738729348074707911632901477654396822375755746036086593001188759754297195428312643493241258575333900029781834858705028117769065091316076674669723624027933704977944150014425118874006414327758421157430449843974620817840654026917370305495795204804999275821232939398173867773503919700094193237489083016917973813983851068255093952209296721892234309898892806602563498936427083811518562211805191994796183537416253879079810404011353214946551844464249316012083167629063566194521526452799378922942069237321988877150134862308552756941293385819031970061955817746860631481097362727358191457455937866305616820812770411634939164043750645090465670621391795657347943576672288682620505802853882383044196319222714089757889340133179382768512939854095987329729849848020525839726270146007670377686420416117499826277811237995380614920908457422230418123806627739874072255011095702660355220279603279617622762448193211899911300083391204331253760430893994184631153456025934761112194988797040077471796988547584049073499030076347218316086458639665371994663518432700618596197727362006341095659185439044240924673923866910653999303588006109253134568674133272165755747716694441026798639769791008275513747790684808812491867688541726926196693798852707349333298768954933291770432247266763899438707796090290606380940352532941050611537440057470834699878545885206207299397741323345620768991248503991714300928143667407474704964535069280701084894161074023592379962734395285750594569487963890870870468261179993414172401744801626983237560870247606887112788065639311503724943079969159511306953592704960147186969038702942358124459379393583791805280010216029294315880517348437753366337427800009721193806017695812568760101123673389389679315966884303836838438313019540699826793078662844896918223244358853277039325131216936339582512578391929616871392518746565368163985960384908791556276294797521989294433823026495576436682292998777948844004787193094496960266107811762617761297250704050384120197845408738800149125025487867748959090537494019089468783791432234041255235883600834399885979027018617006884775662455904949813930659890104784513186396785020619100539904901485352110373355925630478944415661787810464626278801205021959637955815796241293424895865552781070804963795902700586733751253213687834078462573579486118726364816753338125558027754795250213991636272729818741122849521706748802085697942927194232713654091283290595818487157741081887033031858997504375441184845250228601473916618538827663014121094573080837250497073978767982444418879396662368729430731202558691994690863415504955035978510983445640114838169069275294238082705834351145276871868146776910859286117208817136032674202833924981498665546366214969733077298689175637499948302295985076782043860067626899180313656726397949186353999039106018164771060721819422682847500735381094700748972059971791796106798348107939380704545797849328501479955938687891715035044335561551722845047538760746090963768461483013961638039773798799272217150449812212008368389565310578272158241555103627179036567381775963568515299848414433899134615002192472294363644723250626846673658019529570321362497471771298583524918441189405167635190800089137298051472199044311865428018920088901969885671919889621218781088009914662835895821678558486732960977821938676385280504760745503018986759858646845660089696457149188063209778070050936325226763701651767700490420351893690656939787523302663629970673823492956110631354769558680525014493722954725364189313707176076265866780897707927127838511829412532322968239578706171823308052008940272033865203055215436297306374599658150290077458166742074380644593138579361318067946122859771270477518810544977665155823560592853173674415503604643105226718822392576889676639800643692310481367387792018885463951481899927307962434665916199173466797808564491257375762847090846297247212223448810000577185050259876192527046999170760012973480886294516916911186661344828919552814255030185714328427506239473839923727738829715242148830252027132071946945781405126729768107070361567758815331329423219505253278321113585847619977422827764088618829569177931621244399969608394004461276656556644881316299027434863002965697905740185785967397026349128472446243016214328974684815614311580380363349877256031523033115877774994017843075455059309073412620711440842332673527501985761722051879622648957380097236876137927614395441483276883973063893044507852272210060653117910168878599967061446582736421696258961818829271735866628945512326392079508642046918733141314587305280546525546604342584315123046107048182779868914252149404196575961871116215224774060988392813165067479778829242458845369502753593067355939342909884561318153106351004092781344521933505077430965900306879390189309808695785105618701569329482872418522811024445850012615674358786306588492951445104695118065764771848659663723591099109655885548753948971615476247207726747652359558354628687348381741394506176318890301758213801606748208967654886751687352535318893905482705659447591498851298521558448027262481496744254636127152876669959939457698108153503711784284586132328210894375190871850279632393547776077464958709945260672214941740927902928487874749296561705480444505509913026836150936307703465013642161408607603971677118358946564293763357514097993977341497179915357100555906721468774829110044738819314225287966310104521900721619254262965558740998411956480716022687489759983638256631312703325473369111131181024588122195466131906427390558832601680079925221082545027818617951276308544690902350773504429479590240370650123141404735193472892373018412082277066862350122964049140717730559100608186224680910489661746520576744016004541804687172711392206142491784438037099636980183771481547333813467990388145634302524154846870909616567581107209450957854738330860315895216472867865230943200709982044823799926587312464018147174582527732533126890999043374558044580516561641527978351854505558707672093089500344723121214551887326289160777169533586230162698611409602962776190921491569092217471868908294120641729115449842227196162843403143181997529627394163900863864595529911596191873851530083072845742334716785588113617210901251821326776308725189422487803153486144407496236551335772223005349468886306730210683941275154539879031780669070772841755911926992916444520592502357442921655819365292343895516281265205017231152901825158254247366217551699517384379927891171040332019340991590114149322079276089512588377006265018384731400708398318189491769605882201854273402581801095852558346086376921413555345762293247613964099099347963419699294922718409640990238032042410161835739306789035930430375133196465797322449818748763328499650781059314057968594520032897613529280742247013051881901969698625646887423865183401249229609016780381279258273311721493825597242769778113561250942380332948387003684851999922182151104892934809825066802197710714138500366022317255721505447541700690433696515726114104491700995436915433393837156132706215737695285080213479477815228399222616294255260164949400440729181968013140027702021064834053637612274669140715214844939981010068029371249181961398146884080590967497500179588527216314320264049695631544826855540096013944543497921973362618266578809409005049624891284156537900107581799135960602440033053968978393765678504730613216132027032328537314035034083759193802292663732078681006680299253129105393467117267590830782843197982359884535511761888641297986278989855399964447897840258451244018072751650621544324777723165264676944309943381970603610917508450382120530133410917940182161780036937785836594040980525417479241902690665939484584319179636377926268842672231485406214788197808588122740013551678593200431023335381452256460903715264844296167942511699024585270005621963250331238106205842388586238256714795226243776541873989457548210215435268460215983212973912126617970692463854558592473117413092091728529201042410648412203882230639808528796197972031775738775499506581630577223907246402185455457599282558263583091477175287011073252694859924681422159000413469638160890654198526997274308608150200936741200109838164152984048001550192522604339836045550813560675987006959439287212896318739859964581639828397209441977764969191079003579839907915282272007188148092140422672507872580793488492372644347894612452263642364374138272942531710931116560009412435951716390551452462613673211494412808743537975578532369156166852191633614773761724437646740162059463392611936094275870978517653448508529924888464020182380000712248820630184317477106948714840708528160647750599745675828864919054479812151589251261108740299914651516278728715606360694258835809621292213043125034317371228095222224898954696487305918980962201627174224750469070776262236535195321588483697244726045786014373001681131339778651329191272964527672795442213644453165315678361010447268770232463046225909306934507057417767367376059884142962507664399129838148573318449265027179956878834357166740065443315993526567033896860627895979668096385601299994280901789252450797989034756598267302070066211792599095517654674277879756218158441059515891399253776981889835937082330517720849333899334765428396693698674113473685914396320014356282491674763162062817690798838145706990875775038304532781572498343441625988820668246871019627080625861131561156029971895418600451398775688203900499202947092589098520049973621534038247535089637944346572576495438703550872912909163088800213682088613656530376518773373355986543281538525453081977919244092798185377115888460895740568004521174699425416425979191351321411582451650165729605447572043717308340158788703182218892535979734643244710476650136439225944114040998309774054171288279812264817069207829961765519919832594612411551999514614578218907157805646412274057945322157095854132269149099562749059289047152567367722974985766391627599587662300944115446037981870473770778871372290609622986834556794526854922088530653413790805392371860187544647295073726550138413744997207196356151239254727698184079675083063683066054863757764044696264347155766403776606575354660749075704831663107570441961168261453943148942096383911904406385899391206841378123653093708392452891377913940339669778277976539155161139304655852613796397728773845462257223549295250119372503816779331768470843594396501244268952222531630721496107083539709698994630293044791911875273759131143332926115004465069670353424687979410632432144058258881228207913717918316875562758701060027037498401224633104147750138699981470990531634110494235988610366261193869994980973870010157510095824242800341600281474398392884135202737403876342562683780260420024063447662256400468113895180873540350112424671024919540857869980667826097231364219140312990038832690435118151692120586741919661464512387622183102825270155271879073777133819333753887365158615370348003070863458467447458972988440571823135226004456030737978164828494652185933053949153391968616539251321755078527451124161935837861826453874930009367145984997205337776316258070259771621939206407345731301386738775499591993686140122644019512167138686312787795550359423783475144215036678150250494135916575684805450965989817290816399458138901472296433064048443760891207433856257903354302314734168207786460508211907947280742219420236469944638869299378994894997611828953090196437664138919484459630108161849212575135904786145090657106604595989760564732863479818004366321017189836653583967954334530159661586234133048011649984803490317973579953334313742150342701929731453519468625199389554460666085654002918254108805152509028366249961990352582188685738052380081310892456869604650639809808398000242234891104946903514220180773864347969857974032646453935473633413994727432335962274407571641845264999411253219643312358843052906867158106237187589935807963628945467530340189057236712685390719659675139847526010128652283392698469399029984861230573155481775787292214072044976343532663217725570824876180546306570428284416078968381931319762169184912159747100052566221269705241044602811334633504133175094639164745395918155023808473799416876218637060526466179024116033602687349562965559477353021059761583811460140220700561267180949703488706331096993740990546139758321173228567095807231202983835272297101259519884549762540383554704721664917716087853993003935748672911931470408132944439930395660411364528146665713499183810034636108154048190086842366314817459988468333229153823988785119234115970108290659280645632826983303877514902008058042909082721975040449668077174390201894554810280726682845766522508130619048595961792804584408032209051502829950523039485702081352136527933242694450672705166961300547518152817610113736654869407516441246246809371435659489816462797198698759073008182860038927485297521729486625269723083243322445537753785553400766660385904791757989539788853355967560980640926736549334310588802081874619120410940446278071413831502402700788173973361496883818840479425269304011417185755327717092118366360518730265160535940898435625678979887618796807170285501401520552527642798149997127234939871695052060745355834651532044638110869939077157828555885666661434281429437549908268007823652025149021132817637928186428556988755157479351850570777559868166518975742143257189154233523926088416241315012661722050727527417620916779349968929682558563915822621011040253993858700799661709619244145297657238139702455314830556380478795539079940444852426016751339128159439516552263198130311372016208080013549644519791333059120696204666251231211892625275011612191495974828592230826618686717189971640560179941686911618142046725827120390481720820254695653691833795305052174397448655713420009379833173487853524838795322612150492336469203977783643320480310257950667357832574682283019586093096090963708282832690761805236766461486156608972131557649439661511061218668205345228271028355328378269488489885259931002603670786619094402995498087415452380470340519087415766309374500939333736803687381899467132595696373904464578022629982708952337131462653526355777024756909067138317411609605057166790631679404686088915896045324809837910946419184650773654988053821660985419357290287442193825466034781267221992242740399963485691496207914702967905684521063789262346538299030550670968477508252101063196897546615222368256902223627621319517273012512376862976539615530700364653533556080501494157067230936250392721794422121901573423209158823106683343104174665736799580972039588201170199626487673377287046865307851100791380872292997521273193404280257568882962305759768289569719304970395609038113949775698333668509785079170470004089469060465755421319280306239520724960366251483969390708549140052772775444158268189702999135632148521788242873548371187545021219703463720454271210416279241248174389911519326348461156509185948410058219557015735855531820474334230202759382537796567363049599613783672328494103806685861675723519214902033698728995281386119628144424042318003391736131387566330135000834895779462307234379075859871563540743984886084186736991456538508166224963034232363721955012284374040992861900701667698135346422891275101047285956255421084942470317505312742027839931558483546561266855013654737306255445205005213646856795809848696930949485010659447411189928410090249013395692582566143418094912709128036082847079456540578791508013267532173763445097590702480992443498123054792829713635945079877874985229810502870668386038868474622955091734307314362115626297032485090545205078578235612559540863086056792926649524823177915840030277278303841854826842865364815290691041668595018596273212480221247018419760822386490736771437651078301541723082835622365548030130115219732878739898016488612531679242771837156727817215469937583035976450905082991703371734575322410614318914879470150608867364780116621345389246150224077940490324917551846288445354825233478803041658978468736197793916732593528560061418325923225693306703790419577826289472282129362168316097860666861052318219925976926562293036354812930530069346648597778370023600951562459889345189515039287096978963784108861941015286002617577163028294326828038612761869748152362575657945003660013914380675724293430137131670547299789359061459792294250150676773109888355248913173146686356502642465907329513066649084404765246638842529077470798980746019365474799613190365118870448119234029634827876304322882824569071235775478888856367324080938102674927977522127162049314371341968590368590229230504965271554916432467976097492495046323012874458140301038223987253493227384060575064364827753141163335385694695393335486260810706149773371796976770539494598580433049875388866410872023846992312807470404716160062573759104984806633687053336808038321629449852071650669443532574667586171442708192014236635074351087142845204020871769315311491826310150081204691534841694601220491531031086315891475475159412518643422511332026088204025325006056669423909074636157402450877070068141113337335076524750535138466260638259412973858616872870046938019172706308409162464960380538630844113516907706564373463883317737282031115161097026012476372749065784856166353788467821149907114630142027046684631036521245995937297655834022100707924992396164139298645242269500506188599985073620359936876025029923357914412762833499456740788835625765914586341794251758362680519560320505536228306667713861479781146075124434736700464108166437944586312489721175650456240715403575694316966092811096690859140441710315183176030710852430438493178816172742612387535885864860320389355002729248708809268577791122664029318694737044646159426127686275112233862221296634410320052820782509117762714065389361105158861316245696413951133166216784305104160772936898909453332415115854435115719486611586903562760179391989289475790408092610448785476341904747004494041888611244702564026097163657508761128630229636092382761712523079739249514009102100947157920241135202667541402519360751831819998134255449327867303820837334466291063012694476200714089994818318281832361984323175859588540917449434683680203336393543780382100857507378745698022227684352138659641030960721281726341229900372223896814300030569816345747172355944759932142660665421506879109375646703329404380537438457522478115423240259065261168030946399641789656524147137469473365792454211884266915701234331029015664647289943526201175616236670424387851298618682742890265036687630087297445124171951242324107202346002777919585866118260124480691885435754157213257283293826621363868556863892984407330691028859977902282782462257756854112428470678227688024894204032501770633959559634319161825624906502162900565178074231734147842731877240607360124537183772267879596202927924420983196059583600739943792216206077977732688958406287058102538618067149662491631525923101607498103277039424324859736605180528903015228867270180201270603090990328455716216290330353197254570027757740122853528764479856118300806191383746429965528056656914938607260809061761563716645534601147616953125350289420483273278873175794135022579611133149536478687806349452887837425133735511441742065973898131361534658699541062095526692987406310678323846435228517028749859358907427835561597767802294035140496782550517828630367236461968772813966266822081664493808151740236481209536732554099702028336762421307984945766703296456022171007194778229050236853849593019167163976900929042922895656219308523918994380974233596077728867306409434430151853852764555028828648638256530768333117046207454660479703331122628590507118661727086724693167465510429547427794563311839281420882989573260939046456207713982270098282448325640151552812349247379907314389044597407749118269959943871461401286654860737158875960754731493484744486463771922102843500831649865207467798303671453259135960664039699677868436111828769736472040226394370967159847191988268177191622511794824685658723302646094871379407780905945189154501716611154310445572708617420180652178826158368627828478093395351792707317479936316926996979689814459131404963393545633767385700405041077947490110624016204674059147810811716055350705059865407088553960558195042835015423005809270188808888562625194645641227309546850413721191062609998006032394799343513718959208991181670312939660446694761907971002358033732881342975757640209980166274323277702618239842895609813254097864621040388115592178583145277948395649169861360429997571333880459343438793432340500587675564392414007872432100305724672403403948442815593843948874312348025281643631408090897003551495337678665426254829541537849947452642005381760745442785192309417319581596695051251160728557212358380738897922878618537811305698565680058380209283919853139614291848111514162456213235783682466567120128639212781186320439592229214136549278477473556472831396136203413600387121757003343022212148873369214585447407319667537489453214852093433981772844745314375469587504764981617305918995966006821040194961697098704099936473864506750462038448209871609506268186784158643252311556966997146702828869196694065783147715983562835375144749932043843514561011830320921607372478818151790578104134056312784033522309953222528632641860432506860530114956833521293178157361629250933787807429928658086973616375199353389581216903120511989242923288154459687782970590769369617169954310341514629923359368328993866298658088805473218921477590621638837828296164838845595114447486167514470424173754899088493441457699506155168366783472782772982996720581852070480618392602462086062999188389804072886781489383046284977222120018910374090433482895289561124018902407701856629046081509106048207214440048139259946768866891035398479857764748921120666479302808880059370145555984781914796415463054405906364731847367506387135720417959154091959924240874999369316410552500256889309187161731523532812330565416459865432520144355242164071957770410179547283890048122095527272899538782265754170912915799544560620013717611207413907211257455594490046408935925011673327189305642978564385139852437776421396796636055507689514624850500406293609678226223323059155665254914598423773511443481870504148314188570340538956408788765482460028581684241494760389069325238613427436643128787155039966481715009389224185628334022060167578137817188601400385849047734026380891895877748912891728974304403497256904564780089562455115233620759290999457892746566044709294827995376838148712371984513565883392749994257469422848160940154017673728402886084019198563406150194731143829299947015413332487710979141177666827756242527562394755430986502055983568559066445806154962125633070650655856822782589461793488784426163551665614814823135962688501334749990851685430705146429863951424552520401184677567811402133605807424524040555152020944968023602981879588583741235354763469848807956748054342224978269817087917623113642727747807534481656279928203362596715878854831720191170571183796592422335063955331422825936002563630106907319174078600847854950342208445889528631222946793056576636948355533764604472663192176293847425585451992674111775808633370917758920583293063503801487758653090980811425405841582117289524198391699138827874654005800179013548331952192373655120180335766112086417387140872167738044278755781554569098683542840328582694746176820122059122107994120583682213482982538229838364148546508468407313911584792802905289188041806198617262493320667255184928710196579363967879394043023381048350168571719304025539569028025364924604673181556134079044855753356995130963402120982129622199655593077983551807506140143573692386228192288658969508646267834485989262293086599081831108125733651021345555476098280313970217410635256221435996825493767432310312844870608886204802369389145290192573917209610316296356038507701359364902827829397665488133067069550117454792290729795979339167482220953104057262710072804507630884406043071427410052431756122860229386758265485235052492299950594127730542306525026751362784072423140722142223996565858215066400009656355605821369387958948434747554347025973553257702113341971884618850699046976386820058702066563342801438445147015338745948893405063680827843583783921567739857401375100614872386830543671582625855500174636180175003081099204331880976489811583826543058451998663083730427007897715086323261756390139756218646875170018028312481145313963669352588325997683285954664924730874711323757614688494449868572025994619488487992848562351571515082151105945378026672758475179645626646364197494003993161982542774043317266731532658009595925459648204957922060467835694765621832458730082125439931680526851799211359507815897661231028903556446578988799117501832213041300454454285620101156762660598101565640812217906603368778412794806233155152633041920016321746200399777647932686385830907812906086576690993612195834944248639191481281338923579160263752765918315940535778328527438975096666505753562857239007776421850298163030541854400144293843125018807955833782700633096887353658879242632973910463273401116402191746890633193591480375874869998428242562435349165934737668140459971780019649795735964653853348331406745281171401347378512562121189411426674501065415294388295611530075730460199445905393401919613290222316173444280143899934255473899265500828546427453364832057353673972925999043314113444054864863150845612560184625743101715441920508666675487221476422314428763161461632082206377059267474886554215669637433098449202956325889620530427833080511988262113129575972791350963443564915447559553450537902501083484789579572914626206828336266706750437820159869280768318109409444869257014955123782401218328493052372420850719457939293120450546440333892456400814090528666166723204725061994466270240864496015757314244137965333861820401206709222259160837298531006827100559459463701964028962411593040247235188412188253476959773551658081985441766227749651290230930972843988174055388970547545486394433150491548209190376296498886636262227809583958627158430569709630615406517599292581595804332309409586627053472752801794240743821910842973613952504085010470533247947391192819258593331242480480203157860864867905394120747456405028628452738670786293916100905740680610131915749175783262320853529626327964838204712042295290059208639189800565983258559517203113484060611556992068680888906722390574971069404143982991761020238104572172183400975272371751158301408098775859611310824545863923965005964762434821788194233422317802516588138509363798381257916315723277924565724857508018761467940377048387309497472896617458116377349088977063753424057348384502063575712605740948180591235130062408435233341948197974481556658999592482783605280164655069869465087305960399430418007100868940203391700197052459422197471675964963951049989127415168211995658169914661647331062386567183417729037245343348782441762943351405924421611935524843566884564584020559880727693859511906848195158290274778972674554258420274736052078865525588508879755665113629769252997478342678586224662184288276605629205404182828127136321328867845810457670359694907926400006145016874060503243525077949506559983009524891655112169498137279433031348906811537514758911274911786743276222870922843495848532569670102532930329095061513616924674083279370657943649715745861818671088829155018240941027802358850795302698897418397573569781808706880603543897275040045714956621994703451443026172566360763978162094795139535972032142272080909823430893378348426864749573227987003608288542637924440705661950388466848718422910637668506800719898301493250944861055082304515562284605047137696268826455446636643344511772502230882385043852641234794958201259615660179761323076622965681611695684147242562411574020614216471042438064488533200332862171834579356425336606724668073434953107973049430949482012893258792199643917310752759927223225456750487188426944109909986840279716961405178126728614460746095421092216886090807171711307177107525192850841172050223977442181982687141880726299664121058157332839384051505397818274773542879738307154946500609976780081585644718567375596289613801363766159930179389445843397819593443898410556005956482823293348567304241525742488715055241764258618058430559732403264219701787788935433838363069814024827408709792426858397564195703274765411044607960543861224024936066760810366382966058629066346106765073286546288054269306734019940553308391983757264993341014887887295703961630430234117790581132403577358966721435906916828916715005495293663817653073701763418684101564254607660868925667307990493918141135946481682139500061438062005997894379406304266971601708791390461337107095000190990578522853958405669832512957950784009454382887324079315234866456004692892794475110229300357646237510884192757648833578194660925775197401671699228438520278082440407866993888422113437729758414019963120998986360553104254234178755353204380252857425977421086418691074638504142214634855965852566199878002384460509683092311919376641410418571769312276034146338419663767874356146907220167040119190134724773069812886949920238961342735912345218044976611779821388140753135428739737113728421199164064364461347371744004928475119285028925534988974366699651786297206478924316560151830190265248688651499412076741862971947901739844604083670833777019852475256524515620039171458884488611858949686145269305174474012092654365132365955594081104704703062851155494916992382947773964503531427051419022068632843143987361618538066643424456774654137370379241174041969517447478033335171031758493740320497201605077851105961484421481708262909046968473464290120743243347144949731300695650094313187960717589956428758843023620468115901501705458900878364094811403401041137465898469091311628819630934707104183704003199778964994512275348512016910000699653829500659307581236419255513391022706975792021146800183757158512197106309101045007652409108151223564927553275994525551401407827700415075842340027656585246059739638165236897359656688241533536317843485465456656369865477836820419845438704295803164414845160837220570159408565801513017720200889221715437674090457457051006790004153326901235648677623737799262066321964778297975533796671421458112270670425421541243074741858337458428063363114161724425880506332381008235786825082142848446741180437710773027004218764842371870543939413327089454441338526860794853249419657578129804577808837241223860624471372319240680960722083666428191469040178344236033166788508381586013331682449362670818412052023204389927514677448469396012961582465137709783775222411374759446751854116351512523653720419685012408133925392307906798379106432803714065798615730457335929793764182855241736129449053760848823712314077752989414312992310368428647022700077678076448835795810699568808133296282239059334182614685574715014196935728660259174447646321300532108148516238107939884890708083784416103879212786783815738519745521087021455115023624131339163934258116189404427968145850329229521789219424733039145426701091480298656557505997410837415924145945182748958287432204278455075196962322583934634050714908829175960517665943265161197565954775595747174179944035936022904696889676600297553298026271006651668987191186878120152346495097034962843715373367589616797486161183452398397824633239333910601495138081810785214570284375072961198221037683752448789125579793445960193714311355613149142720554257351633675015922515737886733811169164571097922159585982070422253985744905053878270036682439704185132874530506058481756987191783279291661120999487928556680310887604718832836340418859815626022265647774756200043392484710490900115186466538959174394680927290215541201733095192523767477703213219157714701578250868116390103988343685855447518018757143271166739639344083342490513587315925669791180664225900662241825616174264709546942083091424484621336554337494927139476955253422772176308195819998677277640412546642688375603312598295571454640374337598632516638828017661155054022587537843289304694786678290133071057589508879195066261706590640309339289485981756704324292212118874424560131046130582980717808458652092536121489876064102520098078644662092945028921886932303945639097606961704199979777625455967028522309221223336301913283212919787748118767431839567541582827009425410203973540591908100555043868248766474833886944900595267827796395434842867645946071995855927574586476383200377732826409843585889428547917877294293276803583326511773154378552070067605062399122741435030436673976390905198458786350217360742858619914719043955287621390116869085959986073363557706915331851546733682494249696867052170919381081725113907084989646494144936617959413678272137943804292953162052168243069673957205323638147610040680922436179499179833229316021029791499931885645870800230753150362073837392368606737354051130403532344460941563355923453990588151236370346120264085006254629330574113933336782891400195461252731630232743904147627780882309012732260015971418210130019876580969863748618857505001979952132278033519821076963532339109654493001785130773707578685374313424649730572357879598167126546640077026112388025510921756576240632540065895667629702018012826528683426575975123121643832350714663618899333994178058675935490807964529927973327769625871198579761966641888229020398227882152141650938696769705296453179021080318728435799898142728072930376928184741017153849925840968652783761045189376941433171339386068413540004842563322400826503788940432519933321365089811257031052522820668303138100600004153065625344288853846548528078268748500232938457743683555865026191882120147563484636478009544147720912882851066346482010816545015617783395867813723464972933739244879471366378749875064503844429977810204296180614942325538910373920840106319663718237978611920970659391008956524136080444860064478750892290996344617744561112664773722850498718503444033398307096645959634216932540027892988300852898793102372046681552606906990064612311194105924875063132755393255150931448755009324333565130212989636695447544021338142272601591374550189548468878145543504129517512783330239622078280664091074982055051117249284240004431300028329422985820741739794348605536327802330842046587437422048472111857650173737349379310080612593067187357331815964422014304681635034336052288077991914954359303430075065023790421612994732083273793466771545118016203457877984733014041124936275745262903596655639738561866013110111115704952809500705528532897549496744516257880670189399284442475050191729944195575608583315017636310472470667526320654773333267717891830838523557875411232482025912112948724649733711336750162761945209931497053574903222484170548607439372936553375380768983436818551391689418257238052398347757246311164321370728613382917174065558903694380420722684851631388823465927215466033273993013667596100279683751000646299901388847415222072755091929610600144839081079391051757795380564245020770933968028441305225238942506923046684277011050050426197087649574277075458070750307722248253650160177767896443412452811558715375725035539661643386573839038417672018793589104135079730307365004981546275712816420193799849045066963582689020893406209594688300115574190283957621161325956832491244302917017203157604573003091528914291240773740561950574651826245365009407108883414564387550915081780627778143745185968986834076256746877316784767852521809703609587218424823074060146800671655792038427562961698388859358831308541711448798756395151111545916443214168775998591341482148438049396041465735079739614214125303710682495647232684236806524175619732996781537912891994202598661269196224262900538467294500905718301843042843767189101525523360213361762777872769877380110788725624789023839969866823769957997483447098938809005593649782939010620947181820447299169006012644123648492310091230264854241330125864419603021932467874952565586210456195283538995135320972270373870237275394653135851380854851563225125297762205434686122487928022100957558899766059126815439489631991398573375355467474118234052685109777457336560200755480281887829691656597012458353975206644035473672705232241104066946546457774870830691432346038094993365273287266093664742824181219748761281453466112432286473345274088800854695014804585249437081408718176076641749120135144234270040596731754757378547678682662822076856477996110450858643541262209184903385348023866283985942332164593150700326618857142599689575392311770130056637202961503739193191199307739184656450406172174846984008134306176766654211370683403857838081057921502424236777989144826076262872162125414093344426756681123202331520005320396822307744519790716103577897824388578041337114821982470695025385239246597629282052423784223653574481139976866322787302937418603925431490588381476139250364811028165625726425739493348912531417374780982618059272703247167792323332712752838801491797429525605730488732954227762855296261022009827322893195943631651922477346719239493809845935017248245929353798450745453301102239375074533559843431909445596658754081331423271383204628910594197861751549881175323068870464817234058392255000282121249626063545835417910100879969515178563791599484800672876228330472229264318484739122735984332448765758616132136029073671347573861620942253099300600157523502937647590460128589754258875027320925233564774785168144533484276511596206989166542168829971054878546727056149810008443890513897270220335542359192628130567556176177914813021540580789822425498490328732853019281014042872272681677618748479656031617079542408708056393870599603871412714599125766320597902444005725244079891729773517655768851844633186912070692035668430285072446499733178678710908511097557000133330562998170072078768241905874021015872835269087144199331156432349874618302864530070331511417313269554803989461179677434641674936232496345743565304614735927195828947227455908294641487681394445771170049667751575043428237713996729073045029785514212175521505352170999726847611565490161836528288008323361544646261781822420656149453058884709790397647807354696263769120704513950863355936071882171010877634353049722812188888682119922747377745343202868002348086695295943644163039426343440827797556658955914957267810426751165024698450054105131864052308837659449813057199421828807657178434712541685860726706046946201675301648131833604112113931996651360155756286043382500597317884582336920467504593200812903878169304433156034528914002106610147419098891094036315975461043906623631695430364738999908491646350840841214083974473262423955254722967949011211077205610994580683568258956243689705411267547846013872063528399193618257859140188405088202831709073006545350207527461845556859918856751902108637316022179844692743374970026343074932707924189681131833250378832832797737134402892965723855196369485312080002318872643657623140381469904838474262213766025645802558055199368831478592631307261296349545816066994790754448930301056681020299543577486185120592929529253325721371474449415998937768304275776620725848726839783639493088861896855052102375737428063177261265299764417803194055622444163226309175575551227692366519793747975703161130599642416823828639741926461112585983422206632249731253991723478111799539308902257306304453253035123142414342316888136290496288065099141269251531604979197740849759911836662971009834156196837306910006284543877219333718933198541554984732063167083352083067288505329214365247965565012758188070728589058938668004823534975089093465914018769191574135409399466318500327466418405397088770396058741794009608482726887836960900199101336363771014143451189312659269926513396334523282264160302922325784192392717336867841399522962523128747911324521590904675489141824652240580070503655746992024636541454618947753046369503642754572721474624684386207690458065990236089181315703887517442406983412245091463444135448140901977954460663148349355006037690010624035808556626604398028373469530825840534788757853647845504377078479086821510412474100399333774947097855099351492226663351305474842407206345363120094482119398750379333405095146635393876374560923974466594781027407174880362569947701982248201546281499332886967908635390983720861874025287374097777156830199011008549817715332068322354900321937370607747609112252720184697524772962112109932794283949002006621406248578076925056065052190014225256681359092334219227232993561936050825040733607888801772703741364006758662429206714871477336874617040660041705604966494307537317312516718448580262530416363499576710343822399525320345146925421554632512993299404831476105499842533255005753837302431913723582353736576399423938701475531855836418841783267978218556582987062348699228047198966714342070316222161819769620970697592379878038668450330300979239203470420039880954689113074425194490444925963906270163339914200082114488410788370158546735321597417584611846258388566705671668705039070590258812015094797625278310657231010077017745119623884875913393457590710900524246785635392411961084509939777955872231467119529751388702984620878279850581473401182677997607794173359348725617177020357583281675161274264057914170305261382966273954395963372258471761265604749189466988997419740461664646716893530021506996755098455130714262427743519516961995860827739616429815578991498069655293082438734584051590946431393703793072845599356983134894859000615277646260123288522242864874972664338880514325623869541519999542622206766622071223624762501785907890690326551761210436880667247714531469452850473857035546953884893644053331845904192305298459053729700278342847412202794839683377038094731953366447467352141742522771205382640320796905765588742020943679457890161053669057708307120565525508567986948116931724378269611129094194784644778981683425987012007041076489334551654890389947922720207226739147334946539215987012042884486775861146891453831170195629724296847047576380155280188000705676989019695937781132742467428174434118480320369970547771775110807772491035490232138216054762866981875271892420237439164058069963999888219611098559084518126293589765484172204968606108152067889404622949516270524132311059472707009370694161722629246718285883161746807476692811148703611504917874000263883849447003442684181247784717683765551120650772153740818727302856238591335627732114779616990899081989088848176029934484246171234473494728656220418062224055116435277474892208601496001483789450467589184861657877363395370726832641166433007309680867537730467209962698436318734482770462034356035414567865515257638617928288742257855644207632478145067126657483747584735192945913696075638630282728931041459285784836759648963807263081401516200580744802328905375506222774451747033287189641458935164369687354165703452416169357087100355707355509605807739593216074096861159275892183596252014311415539855250190398703296204566817844255119500950983837786317965860915219461642753105778027475457041538181309223408542494797006487372197968074620408131754066882665811344309769327406359785578231947237332763441928145646400900969402587566934682961260552030339441187560954790878566154174687419695712802082976780568503045969215277111241711087976225552077855597630268915127158675458164383390342567636920105306267247333983641496590551672318364535213771334148124852389147050531142852681725448038014502814126321559095630945096518711670254679723553414521620220285058141671890591299208951031972520618883381163245907182761434287053240908497717979736636980794095386431913424082499703842753943909008414273746929254113080569801999719455553733993487179100748799801142768574700435300071164928678469874516310845749396574921274360062601206979929474380475304959232369336250156510503304458042874753089038147696999800638398692868822072532997200306045142099381829717730693839705911189468883192766140434987374747586049492123244301050325573072654002519709980186139829916239729689394007216095293228751420653069370704532344794207361469162225356677125843713576633212430010019536355889431715344224958143934024916736474058832757310431614436360370612851928445350555564581620332507622866502653173060462929693812595016576975017111040751196707908715008682205977706172142837176132634968215698603018017735629022319342395585648183330936907810553489259888136629823348065824828395863044953876900717680331419793831868907936045927013965463698774717466480890032184157991797825048515645646198467690964712885059165733732730105240755290469156597584017936797140277195807830811655068804502807353006311688368801386575616885193444829481253530637009636392876754843347739609689925016161859358152703627732668689542228404624973948787914851795564634963026119032018392807512920603274840485273130274801942040385131270553831319683771820676421012468719545306361559700436780882200831416187186034173063753175825523516978853032353492625320227640015033039504551172861775630431634857636721653050958994514385095098912252239407006705836170749195055123335892048194890965884794749546557059103498570201788240644588578030672776503041006483188294365501335568864807026145916146743939498154804953303248670224907724038579241565956284393462925516503796973111445556491084335768913786847630384319403897070941499558309463523612267656627283807193815409777479343303459538553742093031793870544084940917363082481665085402596556835629447371263999956429880943550410911266459254009931387183845532469612464315227465219098374985913111177497062031697333755239053763699956888472463435752311713541009181982414958811709546779274938178976351637485622454128103455308269707895559042284467207630748171999188571867412749321480924131659198036685268539660678436159182641826248007405537409636095342224109612071512891234304491032007632496260264013869491014319494614015494803396042963569447160514881533702636064321034212639384372935091838480422869737577257675566381912534684560935583065484540406081269602545862055087160944833571137485131025373258096223558168179109105662240790156111944848650580653001664354974200691873683820241930455751398711180114842866780477940928708224910500900457423529408203998637320392996930134315094782205510623001915322527748002147277299490236590500711574724882861117185762020013167996946529019251337645972803799962438056140720376373924264924395087677071057634333015282527303967708073679624359838612099760350236821762469520070295987072762938962012769387046795666208168061835402250195206458189422700894458866181617779800692594003947026790284640667787574814168603580475496325883119183321871086564753598407002943341106514520415454464283999183188473938021921712132860461907860884613992091812000208703791320579365031101952990057165895467760959332562842361432361212505081302254625543616355950121952475599447997610375914705055941265522120912174788566612523150810033031148104496347948316520918872503811419608623043177870060088632970073774053685595236034812785293508932281072945291097448337289485212449053449834119285203163946597259910747213258658017401484379424834732068938944928252616106428248087485249295709374053353147238610294645792019855421923106578895174073260325367130812529311058203848243931517075324833909950550768019702890886715965732530374536193157789264988431751067685905442281412444751239101721528633464192729077170552399026587017120436244444795503118309394501652092497645624517147091769183617317333775512026032289563473457030878477024167730127632937558298073495480673792771364279661190834792720170879128649833981352018290015070757641237716947709788370399378073682134635826140496123374038245393053650397632924720153020667127262384990237832148476697391905153906844310829582764618838390144859744339449761268873427672627624737242769757101441134048722707175520308665156644477353443701454672172666148545089302983252271988042143168355825786203386743512619074701845682066022055798060265285396122943666366129082148565975105940044763956461858796480659365633949080753097133023898002627601560849621636164546816797367659230586766099131036174176374107011308593327605686803987168124730502755625830573611802220846107596709859293105669929073004690954695297172155588358872296815016538387676011427310510390372233770445793069323501884639847403950953291020422579212875568123703366862751246595620019233777237467302360565127913205832928629207474398341782353783260574102882402302362983988495868008572855460696451664076333338741967746045856708654748754565586944003378193227499410895079078711116266565562153803833975741838643499376273580168163216604551809289386455401781011973274338464630447105559699931974199024998631662847087613285628321030114707011767253776623656903505447745448621490111263035308853713066104865096161028129693173612299951278689650299043501781359543072152091016753760430866593283315629993301876507948181137708102997360759658218546826808680371754327314607714407990945929094138035557010084361790154814314521429000075393544422699038162337303966280906388519654318172697412207688369948401712864756966909492002443951335764242462523486408902369771355085601036846087558620142959736366899708044929828845262801417590282319255384515423480857366035832153040871584565094600781781809269561390753384141784817819282144897469128932566688378417235999373364967499390794205644985557579925226566151661800320916057668141398935591737699446756560126039710556399919122303026004444320623805733397884227076394148866597561270834566844713668513624655998695158676809078660405953153527128569731888949929337131579032229330156074495471353801602056333861140682762912846698581541290020914698502666508152388793895587588171763644422629376219263212838338837092106888589833576110883747739015247314126851887072391055308397080483761257833577094988359684772430559628623428547674943613625633152990581121352378786661742325645091122741369606872601801093141666614605096816576113161753349871874830139088779990347309401703545458926417625383138736478750863249142581548617080527993075112938575978871751634036533524811867968094291677065391778684514937830889554021834137038132654737897735089748533652495599807008695275784489308112729515338695634890959041570491680480211620611415764800697024775744747113361953370088818152988938809326349148975777575488444987843138321252085790364090999004540873566409866530072692626859613255398714063693049955723815245838273751927996720246624885024379585386099596884923515364472622407812695302781863098682198747771290053322416099642478274504785659091170542342734668866267285484116361228759925074165578779598518087215539075550167109333661445076016834562124743315727010559181059380793596877121137358794842827981620896270690440157288172057845233055289004401832863552763993607836890195220654197638262817897115549838124034186961744940082791803276183978309202977908775059052721193561735374559169053549188654947266248017466379633810295027146230831205907444028702287894483026347377528688206946831372947002080225435449498621328482189054678976481356010562916981626229703795801659634326415083969022433098977019614777330029994186492077394360493488445744206365065670588559979431618940361568831608335762262336550825152288622051272973053787924850540623319481719719353828529267850563239686224703128147634338950700645014977606112152384457927392206359107357002183074636856276658177560457526914355105605994918643962287088700474022380864805222595899809079368520687749516979971557314353386420888222763451199138565921566405085362885810136560947167444662498827877532127722869325923578833164795213735400572428731315037274358693931427640316401731540545907444134306355970583693303566848188889070537610775508165883249648786765571474364002001782597402552001823354009031685159144003405523751947221235177071120404187555456066540266133991941677742232974362337957132506759529386173884434862528053762545388753847798407094045183566360596220226160531441254473976469491929886571434229734045212546169618161537725501864398494342974441868941080477255446259117873073203494285635040379462271661449048114998584975084049229467197919797377349773113728992321604515854476762510560510031394297147706900952493621741791852680895434439294170976423122239564564562748471907280631096870909286523002579869957453071517506738862640488405657279188758710386423823176718111630660833387571775180220862809377934009794920481832201611988968533453237056157802499892039364611302366938161524273912457367720662503050696858063009056391109314938533641458741896035832198136036986825115882430274225159662995514268780204139350232597640940321753134899760963736869829592839865955946051038481349195999104374280294001161795534845895563599598171342296420981299737366944434807076996424081218507607800466474026613937263186756994705555025502460371650826648092286886097977085739405880056677970375702609565063725772815449128259376917842233943892362644321690869196461295431523854576874824840298382671878781544231964724945393992240060667697619290478662108844256289990309844694097410299513502099602667587059020779664064141137624455835205642557211250556207274902370739776490013471724364838968873432970345998400530036246784898083546990153079214399829845215773753110645205577404583330166500057983242721998309258030747567582530322559882165247749230510032034958213970319607907550889580409642880996263632272696460107538394446545255577913141497318768521969213666867683450921738735314813559535667411293990886046911860365048320057839544659044978309952682359796529827326204014468157272128079020710821876733290787025045726727151564745686579926443291366178236895764926284401836039037870331707413570725011261067585288680566472219859677861160378496601697506673518808053444799560111095658945301041230201996022052571410462826241974182587980911999220638296445010266494921455470376109772089063074376340154918962157719014240690100171587612300623556998453020408228400470126503041770153106280459633021103729852588295043618871938916249040592133602764468809530704424702830231263146305794797925093123492719417547964604642381923512634594139964747854991903018297639077307000526638083474113450298591994373853394789409432576245135455595437187928500296553595297043355565640667164979429620051139249585914323594766295662831470825048405120678810636724220329418735180064834400636025189870019260496315601561052057315039223215912333990095092607968784252806875998695511173057764764716372904177501199603932145922468210276393788988756524725625426357149793367977853928208228251464902737805203723776924526419171003096561495444068877378787838912070180575054438659974668464798802827679921587177495130995081872197395798885986409179101908106634986206845626699418947130727263069439013145565784045621164012550793435082059612734563315654452486478149693040528343984920005943685251569345943379286331813479246507521751711072263178970836765089875783333030600854619128459256699513299845412193298391895758191086534978078550608328127277269506780545471080082688759168291433442554535761988969963650604374066490251259555836388297297921618011547911161952554953536701060380319536117820180535527209600011361909253572532049237454941081869010037420011522685490932376142783720159547565039013871387767624451610712353842289440863895703771049041098413883341136083136323824825826123996579368224148955894271460434446205673343998671580983932837794219214343055551201273813893691760113257304205196902303753421148910631222101205680732427453350608340170465777251138018384167138563710268966709071061679463943052879349810575434782247508490388507035440425516923086024074913937930899702326356820915085773385157042225125309155200488388181074996438000060418291256308006098441583157279074896656776595024900600332685812039524686457922272124765742992415804615097227963425665271100926738664342094960107775278562690698981134773395407008224509735753608192083356702755211993565953173640211784341148608811636551620638726419099636882176967179255248372871081309290981770735509442777441553535781027536662637736230485058868063203941279880468733171982320018088766812046187793913358986256319385666216946468927031574220706290414401519018950517517952826966740367389130730898135664506131123933353301450277804383701799807334088890263333629617642328998123867962982542649637661442762582977359898161980900648511631039995781645185143705384947211916195214012919014705616111885747448508511255592581518651933813273448264626230747081609780371518309149678610579604856539289422772277931431385792035463840411195671341045839737785659266538001308696837311361617994673174040263801218748389091883052926155667393788663207470844117333773166571357232105129267760585458129734813593751801058139431003325823404392898738178218413751749553069355820018056936668985783320482569306777256417188668547651782600925818595878552098872517167364703647529341498472535795351705732430792768293438338456449903933609935440312436628718496715608873368867146874220528356593656646109605807028602800454257282337412753675871014484176713040878753884086175872448787793341684650794049933283337892079272659565968851498363144976781709477537362443818843652294800436992433211998045471472177608731572078901675529241905842502728076174696677721221776554100472094400004927418808134980676421378852783692547034733935962780075936414217109591225965736569388757311642434402881957275111253960249181364475544881440669859393553552321458508025347744616067564271796481951686482009508085929231903981598198142122045421136275406203401815491124434622306782187468894302894594609495772006394799555793207028905086991097400424321055280781004532127406035534036962504595549339429128777495517515937578956629217526664105269276050107822977630555795220444600694274771209930079490438850471674359864813353933159303781850420891590566055649741229828371516140718165324766839207819823194603311901690789015516042657584412032791371556424390250510191608189766848466472181609938068987798701821491209588729106040278328655886356098723359986305443701125861876507257595720164216680380188941812329127223851668936055302479926660144686334679993329033538649116782913408799353314852127189611818008283590308405855719743127275380878857043493864319256549866176243933837404911044418624309732838156012941090549370926826040764742892096466653688814973819315521646368035146738075563161928250127192138190531794524395099033852701621820988342425134990516203298454030359788017341769173415759033385249936158874719599750029344965175001220804383618861627290502696402952978973272382809764572845727128393172123652701386077571614764961384741495817077771333027625738311809945271118632897315395609346672960008262630648675324360978485920096642481801171132971262508827494661927639568406380581494549113676726927889962803679728220837840626288476357005215895696882649479518757482964785956297902348399945419521750265690577676405001400888543241222808410774283949535549570361376932272052033939284652180215170380068114539221881496486145080520212109636282957299429159846304645132190785783403210145686855353090202538620305029017295461743855800068329895133032457372794685739177994662251534531190410024190460505208953812601940834528093245488056832289117501986609953763024139778766154774328074732033906361322972834677947222625676656209583723384564135136886065210339876201086590826061762411569953498993082495027440740272196943428863932928596758880181999039119473545794402629828343490988776040396108851824396877298514079818977595981377793538998294129575107782576702499478675839567351307971951240501483794025730178805168995162811340093384824037808351949096259722638828244726182055426197136024054564744797031698152188658150089658822021098346994770649674200175274528448387775086194766750960651172099630524279522206499757716115085091242578359460053760975048535994404351120922351131199595336960821098687468301764276193988255074091313390014781141533022035116664172111949568272940756583924238342052524841026639946065720570988904700008978220266452693678836258743191563934676221140370336413735872980452430738043580650961523553528201829407557512723885498342658089324541552176388722187013061654369823329635728259678835123242171884214531687057498218159845922615004326699814630084451549803725507320962204572600253945812703699916489583864811542728169745272488626830561289910540808535003156431956587290129563003767480870663816455063439706711156734053959013016849243175533075309038383455409721769672398074912346411960802816389748687160829779572108796143405120103859163349107756065051216966199956365937135583589305522061037580398317521930122813709454581072203047625228607487054438067914867636892749259322290079871827599354940613648405804987573936330706551642607939177581673404711492560916140947119566328403146325715283164510884465646373758390134534853554292030369904631815441677058208779704319503409828102611732307047517858868829256912056298705091291302870527772894927662089583764228984451289411915311063935009348950909697472157476868098168629505501800139665228192182939520414099635356095884637052141808843102967091244921158009653738910884705166194415635065066867455697038559018745297393570577820169293546987413089659452909802440103879626045363985730862945793521396775551539267690770474659263280804141028431827146544875244995491403775635997013984243988031860841409483246343718565766956232021360255628777414815739876140806069959332485039006003106900985744587077354745144292886197264230806123199255927599645424022895735408536027403876349434075805216767355868264748315475590810598186022135371266923946310260682021269658134936772488629080401329150298849509358225051913456659799042417376344285924318631622899329745338083075936735538612372242160225690265415447223552906502924775792265406182246289834565468907034531038152418409729945340121328261131751901502609600335048966006445271431983575458635555269131077813939857016377469310159835329058251345119164225814947034134311426405187758551207640037734676185236282129452094802773461288981699370479944171652496245873060142639188008486902924914518943115743760393055527272174863802418691672017075239383679020913615415313576998782808125253729440118721208252378681304055324709843326081872602246286577716449301283032325191010361043840658352294661319873231724812078345111178808126638380641146444383694412887631892279673494524488568222770711042182880627320393228169753147946432760020951745048426766255375832450490521771837670564852653293116645196362798976384012568849988388343436739621327929220781698041702948080864231893153702152804886400857289563762383295753616307378819580664454311114872811844455448792545571848113511902434873665177849119247149546431502775898171195670892518772729061782924367370039998523220803778124704292865867120815060010143097418692081321351753656462454158048643566956530461794742621144528815183002007258173423549776363521477266377924656088262827284605347411051157696366554325744217470031500011900228391773244358203909691296926283991368021348736415273022287474907986062338984600529250347527304945097662520641015385529506426349303940886395401926915564832573669999264014374645332775086862772811739331579282582450486533729616114892587584966687149224517549681292473989715188141555441332611607144469239727601297811657233513809137629160365002064544433656536195868919683228535425238781116000981174466155992314082835488646443140996993938013891267304893679518649448075780680143015634341298505898101795085470600020858521560207083368866463214203250780434075491243885204194542852471967951975876255530949046285774803288635579328584279968327797131728562759076152376701513000209504323839074195005179888542145925190570528310185175470764915489343655053089958071909230526629972605997409909306658129191239988302126488142793809238188831552332685937197428272660565618861201560978329744276261360713274843881484633669324019218762627503921610750949242284595450393531165964970055988695160498262137680995329237160773752351022551823249481502320465867471125311173204236066811906329759665434283953167320055529853102605753791538239011844693871158018133578783993884934594526993555110520790841625786988636215127650337122707254618403789069538650583516702414950085014143175390148372521831098193517230770404518108480753001046612292857325200246980018945324195277196903432593646827016172056900714054828153244580833035577139553863664301324790574982322961088211632491353985099395941594294571504557869570938122064243760349610945040700300645379681258103557758619422020202877027702932876088967271783660644057115135150960679566732629165560160212943311848954556314296654838745847597669446794476507302174371108837922123874731827304130536048535334981971479204720209024677801500996950303002366751419037030495251556516926892406481073184120403938473899918713535054408475317215573710950148785498106756616735642245812436884509395107261788963438444636008923084702694586985330747932654316539781705271311557857008086400856651869700065981858242188401127730387873687360922653555618498870129468772207817709626187879833979992982465363705146278835445537922919518661508599646189022188751251495436329654840920284311204780526918046913543122354518849683336197711077714755703451510699951650242132557525539154921461792068421842590392291794044698019556710675276460206609772689089860777774674029596620513627792562160422232616468947073678873367351613785666956277630115856371960237743394683674978310803856596224616844976646725198055184446317056508125263568085181465931299532176149368212067834483749763128949159775728877521456180287773150685074127677051697420979020062329628425742813358029851780495697365573364763065865356996152758531393775943477957346645938126346544817264463644277771326935209686827670014315135985350759075604854640363918707015423467433911985699674470884190076612804096987475991810486143256595669067245296123834736467491507124141055816833929786570498416441180565231924356247159024326850514300845059990715148526969662597900451822146444925727504150112566463711434400291596168653925410353368537820778178482436553792134914908991566534233661330716988604882291438264185174203390776563784194088980621589977166949583437959891053690965043457634322576569091796670378929334739326599530560455606233893195634850654554992260400471076829482670765987119786547118933743429918185285344184006130655282147419086605187854570109443011286244196523877756770639233854479724040864242946941673650034466541013940913793247588779734058577542610619117388983067687933812156226770882015246289795832506692709085979596148216079761040710181238152021283848805843112484594355965265863702491549954884305005215805653151869578361665007052078312715847555155506247998288544903427112989911639445846707703180891056049362763315559816844379543291876085201474532636352423937634275811651909999964384623033164149457236094832904041837123685457399899834353464896890864784719830325422554434221610718031564389330224566848526380631707321516830170976403409583928654666188235881466071457581452793134263426427850907740298531438153364225171933999974608705166709850845474724107909375185473054370079767088556003648938424522704874622601648048819920367707764395550806313956910644385298727465999219463589732253120819601751845869295479872841858618676633962944562027106479905301829199299555771214747134912978169353055332095969316779209570876279476035361796356651301191142147631230029413830395747161528489544118205945032334737661376147997425424848170091873819450262384680004947128384215746110936399882466586046446409683981646138303604319740044942713458787403049414867787054338498160338108186532850102826663244002129177565684242951102316308058475381022970070794896445524827560462584925031593799373726740050789982735113920203539831266612611830281673964262632817509810982312467351309969592749796386180317146300490075664479395108365126491378078673406857598324339637403584691426672093855566748114408813920579238456962893650331521216994943883304409693972797022658167719777734601628908914005328000628514036033389552639531767267690425970438961368147995807634971939539807802408205371832767672186561179404896737121749062364103626754032297596419402822071790872642641244124231076066707364175179841620604629919965116353861401483502504578888544106175569590250767946369308647768020150224837676310112806654071736759466347688457441081237339301507360987710225214107468791595330068068042385886334896554602007106250936941157354002219090260817382818094127809579872763008209343917645418630490657598726677022179448860492948505564979246809408973180887106902844166520220483705202144269836528066410972508626550431461147774699161996298451170187062342782524016360775658663867543604169467478890475872590894249832381863719696737578872033271301465305333948345977167539990063255952385286536965495601034199068066693420530707546255027010991906174867961184528993563989879224454530899764251196385774496765491651930025261603641090930464026336037945730955082275276224837164606945098692442696715702542519864824636113696707704163759471114325988754419446667906276245810160991232091285600748143828194187471542030449807333488735719609528883333983350797620459891105157228855428887773904507552232619928951407532545918277776204720873218906367169472278080031692834709491512444897452322816637390087379712940098343708732405668000958185814838931535531821000554351080985528666024854516156623693016815102862285474706535330583667642304051806010380207032141587453879958871078955692676479708264840512420533423358987419250771214437394015625495427166008761309087226237255260648141385432557627515704943840243477072213444515852350219515062776487543181283719448033182567504510923185885037896371025289081530926536566410877398120534151684235539944328856872889999374808425813279103384331183076551901991363021717879505750526152474811179163633521074013333123359306628898669490934960864834001932014604433573191147685686802694009847702104252668742715042866858956937199618886418585137453636021933891808799009371314307904668027347970474566210274682857439983265510554384282013687138231703693655785965099001876482371759591990654483802613643515715526121564464870202247234616143121413244849363692342871734733160227625685796254285672735942685404776634194710992229723261860416932365825558692852000087811360387607846561653925851647451268901861192455016655759327340323361989725939316635833493031075144722148767391829443222511331190398861981197951803636394035499668667224870828330460187346248428621752082887747338851618806288477229359312550643399378457255414824711320857149556555259662913401005441643423755614350515829156515797085976367468002203719756732090903715554490092602031957867047843381014253222704200962368274461180822921410051201499515049016004393493870478763780615226461899308769875036101423247104697465579361186674508688319070797712668058105408314210602438115465818821408576892601696834159423456702062841481327510070550043273367555455034460073377397934786415363168446079741185886955429499464489635625434320194703805888621941362729969200160988680337751180796105068944647700273217117853991568852850576865527204441378533006235079915072690630494601187472167282140969545404258120462741466191325979135913161434972589982485944642593449524707486596911944413558942089702996838197080758251737880172897393730791485277149547453751303820421590014176703240620594114536796383454758469137772702086585180273698918593498381507994480000979560408542607857192444218902528360404684573154527270193297824791357831900149730765112316412565831923664882593351002926082404313987665569758910239566322111236621074756257661850433338111356844551706272578602331133824494887734770805885216354251432405852916805072542610048389097231648964942711671303563064438252690993745737012781646851784980088447809384100993967734221590440550881898484448011379449368840882285557110109588996272717962165574862617613656249545239076475754892263452705053596023141797896793193958176115112004419956722860104207153042334438287048343962788171912242554890515147544810680089443591101629334748087825256805421238463201588976171540272184548836985742529180499675639919963930204976114976790264044288025947946445986537957273923660091662518318236262654878475802255179020567235281327751150180885017458908322765521331337365588120946383588101307181931695257974098510269584147596290332641011729732583900958572608195474841711297984247769625717884175858632214737591783923271207415713115179018788187482109917432400553652382291626169151111205057529742817376765379033017420552759502209087802116461829843861229653734681164118696193018418180076320759869032557901655485120779460615462158402921318659559215983349301169810839382793965551985130198617344126643575608704305380985186643290646924987654886504519605734953878849094916976051297360648071022179270000714499501606756917300565211291130230109501851259492175296334010408205037161917654004127962276470246427832346002673042569217922039927914083575339435937389710502096559131623853823255174210387642358966137678136396310728991973315795624953517415819164282162867842713000155749975223517908100849114672088814913389867359959590269237965204283109306829339705327645480245879577085693064524543118446709593877722469354901324382281461604984284258344078133346570907501762740686736208791655229518649912293640592735454688076997477759777969295165354479042334101889280573106088402612465617039458935482867930910188631743791913643228847311522430975599088178519160384366465966740065136136295852479793846624770841633200389955842497916016948563628435203671901146071808265354039330478167607906375114413151111368126825994252107237638280774471113088441276371769148036252941760822677610347039478884196778622726248769207059271245178638538066294665810804380633237682890542789466056258924942542781086634740720959384503883055032180186967133341785262092473042005695509912996230727105049369653447491828144192726288969760030855596724897190003076683462690412381951763159761839130251403140015400943206235072659135897348967641231471571661169079620267689956291038981751419639137532343029827945335027292800840857523550220691135228001851348794004337466112726373508729688342535905189066762792290958877417276602345159560153592177317408681764878585576745195523530666005383606173326927842438925304831956939984201577516520121018295969158830538303617541662849137352243784421200638576152790677616647211326545603340776579606206129345776287541748586673821876747650873726227957730784944260690776660993976384543036674395042949934612270904823249853275551269078232982109235726300561171620747853882532050434480264448530543255252173581389447168380433246790974998811766411674202691039797003396037017477556319186010363106382257918244396574901157735677644738767035514162580455622406390046017119340260506586008020668485759080095012006921657359896095536782044866592167588037983914735053027978627842743994950211545601218000437740298029452901643371397204577375213573147515028365222702317887551830450635347316207878975953412933499234528035915272576008156386651375160597566009233583002543871297013523063412078859875447271366293337459121603369538582301558516978135574921844115655471720797559187674558975595467124034032667140795711297809796827956007379597186309315989189156908372116709707053522009578780036877964506351007368180422779132621599864073988073895944598446651098234547024107292725494275093593627580289174288611139888380851318203393673603789080887185301167366241473991469081029413359331420816904057810631321569786440121819923823755823016489115021585812267017697640793884012342855174525862106441595849264724760894846120696810285723961063430353265416523581766825755715613379146986100925956837077763395473322447452820582053319290225223712832125981349124424461978425648617664604295865954050221495936778344258923925815522932527238852692086099749324705769361924218969445042658096189747404889080667510440293195825440399930223253779505532946358275657930921096855373373619486346412050232572375869052956198563888577996856998215466076507571000644511698965741174112467598430515700164304718206675087149874616308290604291261096867338382143376808587021344517417638840518788909771740933762437145887302470800955291560713116244536941294795088839028953256049623050037556725145576605893298098579041909443823759569636328104921242603757669250331307817817202751513770290007518447697054162782450858491183074896229357999549712483544655198706769048656894400301516741230250419534671372113752875695105101067785159640251094450024233923626256724112490841633046957555797179964320401865678974844098176542554126931758287602599526776877898560879909918830149791488556746191616116160756342635012864077273070037440930817468123214452070973530547543837961714138932559226967808685610204936515067437579862971160221302850382153437772432368121708022512315721718346893306233623123577868400747810186184655813636307062284493088097883969078202365885804173648492320526968485114628625703205392042618874730911817936323189387424017638396170768327896073854689999300571476662544985087486946129539952464933139767734527039722553701179588867728083804866507515675626761373393098503116789520612414113562053897124968025903036901261729965062288574044810416587291792708083687320206780729542721515021293928986869325450118177643283807400575203563312339354301881275331772280238615408381357843693228431122384706538277619579907378004674968631969879605663125050607580854143947563020588065396099545843934329337440146754564688703835082709505795276144807753025049100275584050233834371705871343266125258014304524668827605771742997760495553478862133965304691380458476069880052483591578909350798791332531478859346451008544802922785040748061304198135996780268062602635421829412009699328101674278888723103160135170794754713923167493389383843333564194656832779895499323677073080510219990488250204096064422945267353147475691833776793213632531108147707130027116805383129219504618745028250873281845244511989253465497617576355058279287899595067075081772356043911196467375827570866824273335291899174767384285129362049185923167106754631645433698381727149867591088919432492933225094866956674638246825574355762872753152749438411107958970088901371744297326159380826522783407570266233917261485189731175459539098064786901126349102368174309944369400173089844495469036345431312946783136962298534807528533339257830352592851213187981751051556180745586311665316516633657746041728610996503131107657570127050278620779929399270660914799594250693575389363215518325873460553850961071516019364448633608997016674005678328301634176777054485587325816510531773966661833583249661775010617559112061519195751739080117633248862115170414292246812343438058293688455441435830064582617406151883390198506249621816374615934669295712157464099075414937275830958715040173517261708416399270706809495123359449774249722228228629678224756950150180443566149963568950928689037329147010251285440556176240181832766082059102501397246176200180416846123936730214819723075776664012291690082839887112102920311842623119866724923540795820018158466991227691789652559514885373845212949343101082900090008642737019774893124656383454629032240856831645436485784518269358545579029720068795291476301207323730150430102278314872192740195324889237214471114386986146546591002397372236856246759013444215615817434905638083504360747965210288270305761200447085645905206695027007951364443504939374092205816171334625266189094681796771561561453986427089357435640050414271324336230346886195673965545593684551861803082287550396466623752507023808698180386910176098422976287721556810845007810488469375588403444583450013545854502309947831667739766269920505502891537074129444471870263704354084691077899523439629326424388912755309271093303640041643399198842401781142639729024478117637745244887145249910188389336670604703091145783703419682852847954118313397591258729043785513584596785420818271537856340360723885574747951971512577903203160106378874112626158180395844027865832074424651055197541754735083792918716679845272137912315604651955984166833609911558423130626331110926081526087640805520683795609681094372621120397466730045914438920510192300306572220678094585499203305303988660391918753283542869045424552648559817370750493984141309696361689698561942310244438895828624372711947727256325994958686040234759637958117517478491345422844511804566564194404634285447258234648889700536037618337064970665074512973957645448380786626565643486081230170143650982727280148762491196788258584693224863888017396947828562965998162724165951903479759310837553116673545993309803442313434137589398455950764465605368588471665838609865317128666809235333932009367985610876057833248736853574989918706296140901990333389588324140712188788519913721650428018546013108797570337401266047548196190399298012136576788651843150391907011685265494830115911482649966265720497765520708773619669708580095402639433616961421656318918578593432937559402458215481827083166483089071613921044672988934796095296900986045158088955549396358647164662259957310989547464485025352116555405203889350728072146384890044951331072555840856880462008245849826905763171728266487706886461897928512294595405720698950434487939785290257024945389150532915294817951909250770158169796080457254975006587947457983562713708721732737140593961196867926175288046797010840444458717934263219440826528555935754798348179113432803610781803194396717235153372646581819591195524560826546056419242502248928383767187659312236485217858518779773863597603896503525911440290638465083020878117229536115882584093524619429762718299841253831566023228138823409286131140239262939821281004779687967447206452496016548843268785310633142159690743064117640011322272681951873243475456501357037893253794487622697237007558241068416855315095236304042534075722193350694205747797187961545960428340114500782311747350757572917241490061438170851223680559109566064778101295493141214965906180067511471234101192220376604534953788969193243512954914321781977353405507737541358002523882250145594198140284016803454930604038655572408138080774116922333792956186024448797454564448665158070420177709653213871105158692506140923878502242185172645702829468084190044805049023909394485706724042605421109915566045206380851967742699552366750923512970804199402490777866207391139617163290904616701413146786018484670485850770839061459318869476759989898997844375051939600191702219339208101501164146437548490753928700532833895613571234502610428445352038597559021357633888488223826124871180198132617974365843891894954828736734191760413896941242756471923741167638883496007542084134891375631203999713845775655025217869077152171195468735111253257703916780652353642359163501583552407604989339457359892060382963034810274591425208448743630897307438723539584111199043188071816757906103621827684918205164535375006906985563934607533012880799079494015072221121790824286927818039964263700820648664265476589019394467500880670212082894985977055693770471692947690097876401345938968851390795965888126562370373712388211845888053812358086556602805923582544169855268850091599231015746169957682186626208611558739409495135570248185426515485755882345059874103009902641726668757676238927255409500847343931372751409993800630405687169412393614119876456491326803213374819070910064974486959732641561517661972342548978400506127031901179678605097212541011570149938100922956960005958930627753706027496669249137154121185003143555836355800334490353992918573137411740471741865817450490448611861433761647119916100973492740433975364154684639250846038264209058436462530552088990207753178874410403754590306867133893043674597166069367845581089300470897151899904256648817456451012448224777666806540124298668958180403982519095168819884740387231289417190197456696677318456375889515894374780114381409558769880258427757265519758146280191233773344103052609414768212513444361938119599361242473046816026364142521784063743883986296286574445541375261429715195462703782203666667721448613811913427393085309711331492170523100318463200974886303694370173849626307102876604095167906714482629374962946034490945571896063793571433104159205676887283235690531730529469094317887928993905798279175753721814925774720387065118668520060161827099626023681605978936691107035750713528090397711182173963565987793273890295420770998574232266941981513665424087052523059685411877302288144883441296286735588215505932487434145183816489087792343946900325200313190998628277046026548228542502157005362946466983016262955866438637717461813337871467278898833263355244058534354403033443345146102946578734667650681098420826198399167357148980904734197502009632176599688921198542598675304043679509888472576245730454637760448108483063156331079801313531928776314963270936424895799755288752769349511598262581245598705534210108837520350168488579367437039862790184986785050211918589010224489497066208770649296286503865139494663698174774041907764393268772474852882817861098441682907792662311562177409930967524857195861182554553371563236710521709852698919637321637779101411704325884582641895393266169308466654239256094436110997809973993257719226536133496476111687024383948756304942732069126832813081432967842753629749422466211056240107017550416877855283903643144261739586377105939485869434665031200456918577850102514885321163912443589668252973182032193892683888287503562431724373196901418914217303303121505687459472577186795392094726070617034514905551062535620440477043724244780612939931451749874047764058706368079736931408332127696844599133002240675347298673653922904076757380114102456288660016728095353295226721918604728012326131569763067270875196545336121179580034656665010266236760636778202892398510060499516446646985595618627590495997886708773242440169031727216176324736176268240386921904189909097614180438138128470496000644648695307370297635488606875646104855798709437518853295279319762006756032184894406783361414248904274257758693487581664659051933900378163977760425169834870104536346858636383916026348724225613616623074893851875472985377893913513611260246647181846638214959400489371972652036128263083863016935811991702172231107612118034545479805458632660249867108074666832825839110474585538671021649214008025437458975526575378806178665090858958935331010910053250155454348700077477288874638386436695483264153546802782736769697969072830097386211565344832363719999019685914443722233389742805919966371822451328279579153874529770073028732761773761833574950559610949105533711562020771649994049320666453984271845080970743065027251653935000259050725552533078423856342459537661568235731446443936477400489713310622772439068348457649271928061598522016732333076215079335307447955487741420598843846528879128171755959105482466598018155951518375313309982970514708524373287961370626837156066105695637286746288294305131197809603338702766060591789171727244387106517170391626897441627628125883779169645478370879359574342059841218516564744709593672932556494722245532749163048039360544459730512778915465482282024835779240406777876611807663432022990778307281880827078596904918945931850681934447697302958584576466985291991773032488743638317650895223521347340487523008919498481917531921796800446882455013900324134023871672726851732647754715127747606695477451857871360636897194152094262905732546960861552777377625103352105868675237528823864345306475275414118786325697161479088515797979056289239304685252605604973295488382095142115783269344820397256407473353546840138159770343697820502555659381109230601102124262755887469159297781386837478611380725879114889785564185176121018147969694439032008386306106063528597586711954156574726503458622595575342957418866007606370558635740554163964743370591800314039282514388035770704826893862907875092729458951137625044656774640259786160674253580298027039784737320308029383322262578324779439651903740047460785852236611875225290353794744964944274709005975971985320027217264462689653081025810110053865670685948989607143881390818615561020781358578302716846926907446933437440878591198873631249126112692404420744213190373948346435496262372244453314017920893813142510722360335337712072679079720668004344802043998325591666997729583374614225810553980361320066093678018346590026793545875370973990057685981347336066377089444873845196333752271979898679464526409234659829871895738645272155765606994428996263159656569996491958301861962066690927352743474353019451448078969378299787198118760374263294385783947626769953354581836806179356445527806245748065957476848844360455930844834560885050243044140405601525317710422163468734890440869039804319739068711953150175660185933024220554374983473940229199505154047866060709553315659301518067068022082021467826038806073216969929231667254937870302866691797114793931511183359219922544687506142007092127293231208776998289021119678246257707520557135729663975393630025186538732467261568942392796137363791311159215901716985053499580190725334332904846417957860929955664657503693967969361551073306676043710111301892013962562172402382635047031788114708500025752404868134870065322969299523335417642244821173286509228401770779101427764713517470544768145623811546617316598433796542337650644654905782688105091635311935279712508064933453565665651933757791846333606173916234860967151554132853753520663208990216451768710472401597124455468285365717234640414474420876955798863062948838338116507184881307584078402742294109967635811919900445445617871516211123282063491625886595421652941757931759267405862528768619178412761158539288512925518102477169632331850926963896577354040527649896700248006988546024436369972579616372502388333454977597190307140372272390799242454890401516212495960802420672852634533115955002946580948015098794529891040917887645824960644045030550671183555809827733242440022708115663234049187998400779229559846385719277613065493911721405595337693297312436943337749867074195931013156067199791310136946449745150799278012402854643589999905421060205738105421585245069155547113520438145257405601390052960948738798004102460104165750253075218699574941268280798686797583090804166180090504822893794696897386284683265892309067589433721814975893829598518376983072205212816397630670556723620031699596545042309850871403080362133876087508478465686562131974507921579582647859626840358871878799517624338744731918018484435754766185697683180285865536955112817281368458906096713476441559754696147009757655414673025369163180704829193947204448452683577728050391111769936873420960749825406027224740342800006769729776629461806019937454671098913587451484635245897806060736736302730855638270437703138441353134722661444934642392283261693444789723972924667356184883943138107148513603306979933280820477718817144518286026252246059752743957900236431991766430786129147154446652743739602088986614697522857108292643559652426250763023180540746666243632367011871430672693793206331450422910720237652948048968462081498588422731992561214612847988533904533448911729829384211782201993248164385566103250301839039376392351958161008595122600671021568405410281264040372586862752085331191485749428735120586468266599242781643328448509461416127440084296243905238600624612930343543884178885020572444313955095410322928372364114101758522677886407875561474340818785174062356408223454401197303898100767984367357249849895456782717997333715219458732506349933214929218694850303466450368084878956593547804744502194990728809887423116050971463498363322891452020193947597163645408607592754625164557930594901235793514670977503490288786857757060756534282823354037465050283235492653993032374380043447517661299079863821812587350191188238778183239506393350143025808821647768279529352658028290815944198836392687502220800590811744081298040858621662625899847164043341668984636146251914615732225314585136124787871334599714025401253676089706288694162725529363116809432080153025561260719521660222837636057977342738838171240102270535555886324116657651680892557215310483353446088636771926344019626039363788284833194141667382447414117893089892077491332077456561304015077038496116499363769648359681088623208854977120994140014359977159391926893887637973181683783068482062217379517156801217163229794773162328036062356796412891135313730900470727291239456502749105988689382174208861896472025889673308608137956094282892748918666995519620937576637134774293927692595911749019181640566845046454128735470380794606993838735541043033022312745438637045705917112763440226687401764065990880361109727209420110153037550661734484087143032711404232086372184003384363868927289463531637686671056559712449173392894395575764483407892826143119710808250805953935826255365434222990426293167722873685758077311379995389682376602572482208719682580522469027388849421464450229942358463900920510369059179271346176931472000176524501159409524343140760344731807794767025269674165290347852834215846342513528211474510624161545018990662931704522429351686253600448268288462360376654534356305662932674590917870389552167273517644968275072259646825358938771083076251977846572414769709364275950678366448170332616025391632729049228879090803708368409487076536454829391177586808097757433979654920467051375953377908226759133762607532898287776038460455841345410046198557425954807258862234004879360344608204844923428863257264495916961548982481478095004845747987828284025943287689851279473395904747153169627096616103676288213516111178220511864973521453561681923632335481852243505169552654136059035589963376420659832393706065750437276629698760633786449391034055891958380140169577677573848105499333481868212664991140566742801661802209592960569695120508362874620243448845402704241567372669944917576755370059595367760392103445812474295673792130841171941045531584145972794992263337301232252444709354837612133556767810658908691727917780393979972508627644072229261717165029429623936662596153155654977085600482673324705711361764254886918224048150876713627847447983452593531984868954172945541875838625022377394847694057158118145147058826437272137358460422253729530637459718586884070682870304228237756758832391172611943153352263534975373312378459954735472195894365387884573910384699278501181886837627078652334844941663137553549276394639917456665877336606677344730181247124332770059998028556377572192358919584641239516643064852448767019043208810739703249187936187265600367303330076437055324973442051906981476264205733273144629192913401231281869343664794047673751012261941681446132718104416448140932300586575181797354079585600443175155005885717170406150384442161138816755565007959574491479025522168102733336866102970292577032936925084748294363414812558709211786878656127344483212634685482971637359877015607920830632068235244076575136013032907637599595395477981581113273451810637247621546805633345087030843024688475830230145400474785258611512266222750988456282317061789760649411129480371454627732098749581036760335860931978773771368738872884206048095463921407009083162449694414895047527620459532464207035051685516754000600639133420323221462538142686876771168955756655049362238624756776986438152061214953645790731415916430064335015578223535190984224670811522073872736165919739873435843480074586746220643825625143602273691275796752008269181618868292906904364909316564073113220352967920200370819520295405134518098369136339410025265358950254291996317300809358330320553972780605783851215367122172956045653393067698809065162348546993382395885743041159082226931309910390656413598921924405769950998722088994560149698151924904273831848738195514238964227287561851507052184806812056923502288758471622517311875626111388825604434820109039140166386990191901574407887498160865529258829008452971069989498121865378825183760977972741691408494910802592447974547934203746950931354756965435632964746324235119147283515462146209524903140447167374146985546742665971032644008903950657597353164594827437682654187317898829328498270114116604212910086547189516298517215271044677558498129677390182502581430919656250369311299484920275063940352020917480942154633081330316656667931620656701204783079620469988510968451669728338382742712096245964876295786930745189312272199739982671680396091192330546989751238173085885467548620051997057620479421354905426836472001253806221519132494879265220932683372278772906915545648345885119804663384589342441695106346538271116791745810867470259201389082009812281756750087057495186110552958570908166269570350488521950512534204125313862598066077885917620032960472302005533361482938174774358025667883750465528498934843116213102998810647556529168963513475442412159705687501515284465792396336056022936867322194886933765537646188739941411286332145027249049196406777430398215544316523821296894336576312749755891461836564914919629011037701006209861502744949583529857528017296352619928149478208229802829065608745427894947264379489615577110974201025459113334565770221350040299151389464187062065768926326850675785465251710743859484538699989008545440977777677398870585034586667543255945884179920419194031704568760382863283370310344797170842443344495215719572638300420489467696292921967733943892816016103763933074179610330126618249999392180253355594706738373945967495850829286458893129996507590395894097680978311728490570387808164732641880610335945674844889881933043260646843887016009666382222250671966526643339373125028219915847114470472156764807359336689320443967179996267410441924695063660036481107729309269143705883367668855413982258428572066899844059179272956270743075987889599942393747347623695269821831347137091455210270245254266101412871328114279769319845186403403209805682556452483813715236651432121890313072257621903816194143393970912056767962649692053372422206610550113092898947077872462169144378863146110514945681180262489183386252586539665470751291321158552746673871471999357068402849928652193992252803843990316991255426352955387364800721441308994985098074428929003371816960433369612645418807004880338471245271078611207526586281135195459480224812506543296288234353883622736281693185570526878594577888605416393617909073100137405408196526632840696341759977282314097482209529476735772775169920694079033731908166329093042274558476535622185641666079359734249118457046791504206189846261846958787784404840932038790513760807658604677585660200613482881056462543281250324531049139818713184923941399299306002010397850979908265038452106971261973891731607085679956658897775042982906120464792530591530456542151092296693529564227872165284207972597926474984240557649278333465969589709112341653533897928696440037883636396069718738064021787622322254867600848022128201318384042050390005243012874333708751880565478525911499704061753136789657973942925020624338872563574534607761857243308607489134093617282980614604652846764803843072442971215980428064360826183235340895420835981404929992946549045969505211888744850610126878986328064377069466251530447829703019537223041743719281271648664443248716509409302062724116774740826906334274819652270774189326760732528175134672502364146638233008961653374731569839645782001097048281942522877845638202384396763962583373992571833633775799299302733864418767792481624202394061908448709734645751505166162554366127890500554170393741888357872854201752214040526661478581104950529169813629356437789214353820110250168228321275863235642327885125070867715948430899737068898060330829856463800587844056129262742358412630345223103810572289778240926852069471084026930697437273339864723095835749536592529305259163799211313849182368254870479714153953536298417920931397368078954638124186342956910222845375609451466699469767746988400449246477733476145879280485927583252691906433080386303786882191202449287336267512789070500653089114231962859282416535066097061086446647815413744838253047144091736885822423309474524085165581019450896224468486252564068262075959484441190790782207830897648238972604978818603246192712914771115723241260563858509286577097517931056208090447828315354891681454110816705361176079167628621622760275256305477136032130270245445897243418702214117967288052670548878667047235930869603478732427129394147006107393046062935295276543248941637880460797106421969467638893447933967250976780454861227143103873345155929594894866097959147785187248346943090121903517572306905324488522773470047804931787677839869671732093136302467725308152024827460933228843501601625628445456169476778448714128659455452415915958618550309262531057835611033365857406357290861522875657250678459140244818526369644513605553093734363137937294174447537930748113791009050265879863111186633387475056406482473003679169240431681712991518334505740698629393700332558666175893506025510147012659595540727219104782431989742059367098324496761578970673975891432824953032853678153936668853623572019171492685918223380500632295588472176947005375862387328698904787281306364822480550853434272879389327744470966645493468989793449540639015736813420221742465715281081568284656792004240381412922292412552249886535375785178210518918785110599087856501268972398018306177757748459584314210489082717141473579732591014739805511909779669841184575484170841633718725278280379422801720387930482365412225531179641372357372436312617601637603151612537579314914959577577563607085190243849079865435200457372093491626102447530517029784025371542592406911050828912128757476196112077429664515926264664875407168815258872996003970113930136766703836187990624538503943349121481796942042167537456047823272123942674326763113791654523881662099429148010518224645905582935055118175111177929906934592272080887259921015800503866792374373161072414064267684913642055391918493276050654747966104943094255853864158037270310098177071918538585715820015185083754341078672196927279354165636189438063403804076316092796404837591946037744948880533651446430379676479131922250864246600887773345965638081468178680213261233215370172873573720820661617954711199174798947849198865775756934309240267221198270745283808892003604819218063509837195070246890044806245531463625360461158753301435277583680686965326566120026527463673471482123261496646280365885302328429750007369554432702777424746941874596133873771104173482449547227622382754885899688858777283409817170627852800681722246304727447263596480354565751869396102490478871753781139157202560561996131497240212033355537030014763062303010361064085115693650172604018283410240546100525758466003538954316047616220481999897042364735339455226402071353368449815766012471831027964043361790436114239686212187662607496235400868919677869705541464774604434280137388756105603252664706552829124305227118962302790114322227464867318219768745154718646869344157701174462269803848774672973417655738058049495563717145883084408448190388612568616333687086311596658908711561707796597888189401459365495040892770640537227267422413981094503460067193350684139464781933658607054620134780567973825696537024041284964080411729309372511613914465279919164875744196280697057988968670919980172656897544545932505969922732329695043977923965988483196614735091294167481268122917478574438977773129931239805456371808750405859514326229774583158785924384167201651789264074115426205314859897080485214438059425419086664195287176459167434401172385721352923847115003975021347431360029610757709494201703265024804573802952488913894387780968708107375419092122436657240861791719882040946876530280458637303218141507730344750233621352616003561237408872382343134287326017326353171396805061487692165140252575242514071646834131174434506603799659376428539048738986101244348432726411748894248956466227626878778449303939962120985687958657293208032525413588505348281158437673893855478664441784552498599522031574736577778404771714639622082670343911280171352031268823863681449749715537156088744847110236861566692235795298959245174154799878096260341029981246627905127272495342577900456217814623219018554511339081488099721640874709354612362307851482197823389033586124589857538892158141144285055545342667712611689159904342888438297927535589049582328450925629340051184935505316495093746914764226993536707059407337868139083078027076442899622039045929931752821687105050146095428880280557086420089320114966600179475918814325256246136289344649765391008744199477944815567942140213354090893302545927261484650257727838205133929892207626438464896751721915584143500290558831258354438369298999998324955834160821982207228331394429376871554809508605121365717923593965978791024122663676754512697111002655752155718654601478126644977798403997578352891333073243359239193605582464274448768506227998967390652226033524080241044064292246852208535612219595632045920777848017537265096220520095263234335494862522829813954153269130659695416467200071381439841533448835777184657191700190458002849393826672960861565425688716231781267067789949934048644547536366778973181932302045801339395808800484915348290114346243311918134988127100725288704346553714068716820247546961814748883601619554645428645097104975747170179721362571522943137495497516447238988208227333546820304320829811355316625971484019839807513823511571956515133588202749719870812968252336763150144218026434269265453669862346601428673153676303163472221379115742150615255779688275185679444813883771826334705276122761638465727839708983937150874157282389760807977650955211437390578599977192406371236021481680646939122136855500751428276195411905412001973555243659165866961752071082221831500105877216089672554644477773441301771525371879550525442448894064620899173696662695250662445351945653278897513015334944176525931134981829946987614291088066971496818256427584589319979654566993536706486100061474368707348309168047747503205733062594842327633796140203103783571514188752315210230753380877560619408932645103338438174717942673568330696016865868820279207708451489429803763091268398365018612207785140811983698887952303194700789101023128406663610306947689237723942096537664628527915550609568807288864164965932404369641720128120733128348024668997393508262703690341256343153093058491751184535299428325925791027018015811713809765486599348224204846239534735779777388299098811815260253261258653385436677501029101120398486172967849083557129911941903854754055826898703006212083974631043065886374722648854113278576008299137697505559864053698697701948995024560094564237086554391307709625017058427768842024387518463627970556839560410137684042644947087642465967500628276690988040175670464806751436153584749901905036797676045331777563943213464420570812096901205455224213178979679812263980130796295141193539675297930854192933993831418878916365024821394367921609917044201335139811937143143092067076579424478246584414437948509195174435436243710156830575187540576157517056520804499991299207021617784912275156849147384817076007827952430581691753983207637121356267404488715413497945346621115212796337514604483592446097184687932614956568728552529006727043321413311955831650231959485790613787325958884632574510717589240091273727656929230282476554841575620084818972624085929848900634405257587944733243416846038981750976615365722602581292766169940070408986134277750976959919386899264049318506928281334242965797407152564682589380555934099430910997316793553627319879187398222408728592370845555940563567797194178435478541641787154721890501926128528105931792026235474755031177185385094297846367121494473915984239160577939228457429099525921742018339025558061611668801497074407957012537504961926563065833312929170424993659535697247389407044358960160820374580253027163673810734598119878127746891352353213123733046821164929691624722880531133819243803024914001895135511563739683018482511620321055516628307616564624014211089303750002513243913275834219656961026841684718708044597775800592655316597337906898138276559962556683968619604777937328000581926282472546204548068790215014969556997848732034842474169218222015387837398469552040487794937132249517569921382208216880376260423635429239502383735203210437443488804323115893044264313584389955785363348579984070689065973820155714506906680262217556587472039763529109704792787514927431032528457962359044882979298100849821911675335361026530003346937086767720549815747438696189953340724972791352896600556407840412478631036126710155423509167937178429468635261162745020852567597688614769331734267675111705321859003782848184658224608639770632030677780818350595621861115234830621424863800277084676990616276227871782217230106097911624892039398950702140497335707002635938476771535602808282453143302455917334229416451652454474038301992533048187673201851488510194925221376398363276611126071216600561065718310140649118948316657521948555448436232643326590737659503452616498819820612129352444780778419002343223399455238107099258501476591200022986687405078253503434972335394214842827815385206855095008430955098427771674586984947842417794364856012005685850474784332424002374417371586069638274178117912253604751196018728125374667813958381755349935336550241565565034669633713058161312778590244914108299118487205610388874953601088126342618776957728039231928919130833956342376144501893037528686331732283627860854022894269717174207944054243701468374603384620080260219898168922903828670659636580485086563429638731402275321112536747080176895522686190386705805841882645480213857170577768424821338022207605412581140259383779950651791633543984828846976816784933330055292912473116642369266039286852102308951369331439303662081192758764768609912836828994173274535706862777414183414586237881707001219592466400021223360880035644960987373539829228375112905519760344505441693328943617371548948109931012546974648250837329168488673784915159877035904800723224689556874235359090468162789419478382682379650064299648159464844856838667232284448139631605387577769646200679066603453130928150899035204534793880561559886974515536848760038991112631629511900744725730642923594418700472959990827892080880249296461400732073969528385413527138916802631104432405264279966412648118152123326009255337010178942979120657999190114075050507571226405767498092845146738538253636116065262769744956553870978164245083126744075702658285933344287012392776429701467798500302030370604081799424271180433513266640695764672903482209587954419022126985363019571533296395735755389388694359510501196436737298790232663424066307259031654532480071255870342012277444836319037178610230179624471716446001963974725519008471423886680158897601419170145306418019687152009222830846781285696720307965957704022816914747949461136583918767365621685143864936363050064363118253326056693108925442422448275672149116678008865721050865001908042534354687888566426912572307735886259702830689570381772339891808734247741453311421906654854793463095389658356175959156529875189016696398976494221809402433037508608515667616232681123400339415528028079340323223892079714369281975091954048438976151849520413261742580583640601503173042586677879616632889752639745004392226128775366378482061133812154074947751876884440915041613043802294111244539144322533221382337528891754919749702910850964558089418775981660560227127518359325700723968140801244956907774842402712808775674788231130418747073221755422879691754159817298799978877545257177524286550543388427438356480977293047286854924916112772142836504223448832319495907172613207860235959749659750920714581820973375088617268049231757624841661727741439063817669862970310366295501610575906659131143018306356351001879059858069658001094653954683007048302390355036889273834659952121368506015282222616604763849898271712819843272868763073518908283103556561407717969014977504232264315358608068239300636177711597516042284172136388639814571431443202078588790871560194771640028711822281489600896045195579685697095857769045196378297594166013199077476251271103188837516869146833898617080632919894050943917540513944152020744767503140133541876904142137016997752111459910524476470110405839606286797347976468939585695361855524314790866057179956898444416274745503147348547180841276962772821803446452043540733023057752561212879280143468509293904096526179323348593537130489025716745375710203548594558668724951634755899095439929855533132708968021217150902025212753301601748596807075296593984894270438004202069250640889737504416332278880401361197345599805617676226458185950656642057288647889155514619306202972029465762339245551530647329472472766823634605827308774782449617610460275062727527476539661114354351264616349979741539846128372811501945554034149788008129202303461092541030784747986968569394412033705353198350600816889337469801745153980580018880485154572856006460723904515324743425892714084203410523133618147814416755675083426345777041318259161859554252136670353573949509639031568512736330378805991784114438136714294237327917448901886956487934011324702394110364112977592508447903640247452259480644738186286990351071639698095196237894998023710095946349207235204680903856089472166980166349792269861046897821243891082710194815187164052934475531533324241986814777663501225122362217082095511344005091482662260210739406673294308797633500507193811530058158130752578475378375410347497075315782581882272925362856496619282026425457119645081073696393336806604709390094506917393996458018262392718400325670490400158895310228896702514905827582999330783392791424878967465930002220556923903688137130200895549572140758821725009111602211464203439794901870321887260142939359209107315511045241386689461510324550911196001720448455637295372718007901097466593201035148694256156235799334486999078417586530931493845588042217789751544416863150470779122160431005276580119213527799582326914389572284963038623625871361949543337240851284543231714863113694679081649981691501498557474064623038695171685950033210085791434057347970735045071081555827442605919365135526726930124776435607923698037039795978547683927241953076281631335417744274124006147261972628709086060846584343577118526405835711416054921182891215033007818047366214989539950447144075855947514407684194565555697559483536257023445031192667623892113664512997993616255782392626988391953097503933304145690290374323321381388185868552223388393151080552649319402556316817759827645322761350017348175574910141907373902314570682589000767458928200290507765355738726587626628063839921004390280236917673778906159055645661160919619597232180813665619959752085679364689843160685115542850264550332501476522631040830229116283058476484643397121963527379029116637521843840338537942078731263394929927320846928069344394842949947665169418661305565558558668451027400041312240883316054881175859112721444782563997024977407421147110954979242787340804523548706501867354953797346592115380315569329607544393421586083506712278248512532813438127540662143991482831870550871914063053778274854954655215002617854941973347461106350834045642940751190110634609447536544868818296520743566068285379571472228443214285651707189135871645001258284864046222585163011650102726396916413490118324989446613917597644817559139399467312364623022209444145683477492700444584184891381538759843765082287388279856196473298834223410394666877551872581798818632199590354119041841864206750609480068851234193601749772731088830346678822188432927097222020152571998310534233756709987797670246263593620179833434110013669232625829220312967563406079550638465578222472120607680231447034710226428663351381375254601597764161814598174550946786743718750470547343391303269029165963132099618889399711020920835827247981889339511784161793474703530582304911098912474735349182282606397111506869745726942831065196402088963922363821847119348992851755948025601271941900343962320752097411394497964938418000371132641184544054239818340161638747074593042214290930843363062127490521809767239585645195300343482612410245759400951706862401364682611423547817062308757775263017609471079144830863073069145665468502112677358369737103221202327130270632517510880447279890843619974101326274915293431706328602197525763791779063549748484594231678340893101519071261987887087187156868616248239982668551732176383496173989109734277462696564918620602651392330115288353813938357585921916729650998961011002033272832853222237245426978414493876631252822744497708199744635126035692626512072256906164922357373564173587048785892594019813163153054810858573637180126028520250145491703174766164489912102788378870065477825969869476336160360255095194421911479711583378555428728864366492437997933699821120046979545505809991887654377671936821443194160537105752536485023034974083061650691375399056901119807893175688121564117758703504297796584398226468910220301976488563551138670239994721660584871509782614429214949237475522085132270826624685668504239556476377741218736604617382404090497545327171309559476359354090469945219324079591666401453108230694731444316151979910219966254776813698645375265775619561513857032194331723969638336365066186355796802476424260703316655224976003422624052911261224547279478267922737253230980296343398434672083229354165095076683333652627373996863890992887872316448538482378644520657546217413168228909060419919292721708631440835002194026427232788697235099025857495272633454325325221620516920641510427102737312604502780862225253488843203893098363112844016737331588082050444856490604281935634232872715828424540912821348477634780881843267256019311888002275286828667504418490264415210990999800878401855655219460646732015832900763398405409332394138513935478610585305798270290278221407160662654379861509431610053021783857101706815267158811538939534793793616191678066731891221048984519239323842273507320675790269527186532345623919064588425788414747720176368620927605144875113010407614270455907242291591073391870499668905817678834294771968382735874021203709133218333906787173890606294420405445815660937588484306753413937778819890969666910849950823139621369835335258769223013658852484256240849795927255824398339190487930782746083738425835578832902232566916663211945626035034243172404122800713488568951983882895613316978902324151869489355787658482203171540454159251268913547391121174536302152947951250626596821335369318322001673409202446547623484033655362707302496748480115901258930913215848666300725054908553279399821208409061162953310338632537981339817210048410817161481017294648590696297519205030480501097142490652500874887368604888070141173232361454022679511785742084566946720307823302513359329905894889068219431412378404347376608658667289136014108255515998950954591590174879537346044208083483453191388356247316611828123446329355127833905255164466551517556552733514682421367191351096218333877935333298463242709747653765515242818356669077639623429654064568402731920310183961637637293019856546927130422438072069622046850595186587150488180859799035576002336210003486321775061105935197680271579633353332075314798726067030817037728760554944949797688819323739017206348799386548240126881289212596400399774573316500099568145814841485021033055708316053562931237163227631345952387422695266031887246426559233074531649805321189830533176495820288153390468997882983957064174294838280711137884677684575119880288685882212150978593737584752278793983478505518869778984804284860858977144802512377202669171243569938620075139716612599342853213802463081027719934078229784371988454935991283026320525558144723492947896942604106272001373684659234376069804298910086468561862420357688626288282265168531133778411771650610799831710551084416553986632723684464627461134510412098595118723237303558393739334829734322197746425494055440806670258501420937627634655076300195190857398016547105221663753831133044840009668224536017159839091643863308298305621960975802694267123070709989085700813217829524336604068700040544224888081815598123362983210921070823914858037975391443542070584046571686773544857764418325211156898413206177973106816608530715830918087766160596804532006520968490940483351080584001525118452985350019969643543140512422867963785876134205574735797102612065604543568960725874384584162735075263698436411192647679478220824360261047892176759310094045942510828329440364780521294396586860049676652235889736654476274036387379363699751633203261118840017763221236133924609139520298504953198360127451492549126462109072872742587324444754539437977489732802846277596091783063532608475939505157650826466291697185952425528821956449625595983902545911499944106325763453094551166647197170611015357490918835864739536533312295890314731444492844966669010308547743823430467084819526284291205844964899292929139401969332019287495564478442384062554624728282870148024205556802770642985293772060694043367431782158301754044892996151657290652784240985104754590324138920539564452733435932373074252614953977098463562280046398062715514630606902724168279044429478079380543587048371240076267453919327026819277808277879352640393437371359759900941157738918462874458399069608978749302027502414439073296477968769984644759468079068043684942593285444635900355746266201057106873702394217920670850135641244168330825591832492764009037018545135555764904911152179427428645373090111161689521672568251013789843567545077948855543226966482063681674125479296858862376764018100525931571580093776569181106816615500235324866923954354726087254322813228994615280871717326162155177340570455251883050774440958463656651503591197677333693454942112725304800585502598594106270937492221418623633829744924713996968442618229229207997930470735883265032469784437914564703700061457933002286018389057380943847057980947214181602913147742688223008923202857853405923686395586722175326374785142283785525399388672028549798860780348470410777727908639960449715063167074327418267892610562441978643712020213995952912136246702894776889400751595648327249394730170671223097347638053280252061126383326465860724567288471061695246870864069224919419550362158238330088120234241459204052806076558959667216267591179840865244606622612101753032070980125667957259169568623667574816696650418313112991857838500946435852186992201186107442469899904317610739592278075893587380883674935902199168226609756081557742634896128608061405771520718224269551219534702146213400320335664427494036471527524684350467589135155799955094221055552753193234107511198625158773673387137953464661650906352616834417724117228496655899269807163556846622396693905039093480652592342185588667960059114142662603365048881591547989691521366923879641692719161807949755815275302916918807080852850927292819971493133288235688039142545663364839103367489365214526753776407437268163047687979935991146175511153781831045310694745357545617062967508091438291815913733014622981137120944503148694369700786295606138389429416055203865940575350018905809157087343721980887630033755389509952793059220499352705595365717771863598482586962740443242903693937369349414194271216927801686680846367818718076715669254840478733926196358400564329214994344729114506806321034985120273340152414947023030008030198945810505508493278949467298936916788389619137251592719075250046861806308896504481182318098753561698917253740790983500782537912656009927612637951594615957296364771985054588554463069903826147522271374602699051620686643700511118276672494018649872831746082642119854578853647194523478798441825380703611715195772970004742970046249516154076193132547267534178399450574036064898512184733508109052260261067064622816434035981173253086951555885021713183631074076633567938386145435776517009440538410653573848882813863864065742451018134893714692408912708754713981188692357957265341259138276902857143402626045852667506477925245213961656892115491560595857741263664038756061369365335898380583736847964161145571912249455754765494298857318031172840317313581922336852668543973011196721625849777083270059300743177367048509954199812760507874794125805660906956624244758328208107747807726341371947466629538906148222690449024937170784906610403044603781444240641876437700134324946459332811867388622475699176338650334586583215858008725219189313386760628695538922501346117476048085084765507185013372483487732061066599347046542598070416769971700324485536501499686070592707718816076596463726862927340510775606666523790895049637043668665213503472564164319170883043023863624007995007207080339845815230397965085942952130544584129349619934314114477170538849036800874294463448034762540708701970185594085177048350076140382625101639918270080447969069702956521227242308327375496287447272875714445531727080550498401544489895941291056996179116456987326979538426285667919977237725947901463325796194916392020843231372105989012509305395602065570699867116920465665312709678359301147198592794625489602955246524375307348385270961052066502047560960167737581785787911129536271558866019669125918316693008192082169067627059818488832545881814815578234541802738219864142684739511935505143220689981297340071041378600066787536645071190504237872608079781438989539444544973522006254332368552747937486703257610175192056056523874520559732992065567933363384590060818970321610309354639373386255214794007228181329539852908747392148956855779531067577541311811848024984666668785052372230210215933841676209109705988603834085029874133549909239726763909670017530170263264012538100411872170153482979128730048692456366204394101690665942046155123537936084699670724186669623494330800930719715703227771496596352420595691142085454561589518990256475939158601841742212724183944423850269506098335626539242749278203605412937610046810421520334706496128622561730555559718890444096375803075399550368908171969397213236822453655159113403437300936171144983442115882908125072127643534805767491521782821624383278999269660840405494047657763305960592593575627893824547762951254186266066421357428272571100332990161215879726209744039862339448439422403236024727379598179429118966692042357833461609765311272638412255056259172339666773167319549486990973165310462734745559302514593829666007667007575672094239151043157342638492068338022048924987279928641021579013513018853251786605746720261325307391643202827919001312792966150368735890824746513489676647740294746900797028717770715773013386729247876634134813906535406514518200264156900292005985179987487307480582149598640224269502173529623328787313346299038720690442300788017579338187991675992968649999879995593889573196523273639890525217850699745239986918435919318640295143918778196171083681730396511812291617673316224235086316072977612271907486766018995103801403600128911340828779778440061109679057854338491691986322000544299905481860762021701337333852132443248818148163410943193589564665456064456456935597798742295727896691271902185001076866455367753199223540792901221005458184571426243591898455677911913406159665588553072693957318824482076701734421452514675206452508896961200138313593340562423068094256033109406770157567736306692348586493791383565932459404963540883056797004573628858765592068588709717648666582694034724908667039427697442987966335097350519291997230432591239986558229218624176644649986430362096357853883777204440723454604887400184557856597162287395969277592801392551143113627527617753085794131176799130030937298570520310273741959747611382972861707835186418562993831573742262107012492979820236010586135855715407135059610705769359426826427468788570111808550143561355848305090065163955095870293294510565973460391145509893034380775054482100407311665057063925409536233818884550717361633807493419974596994219481813451210623348900048418130646602575393505748285722277973264369560783204427486128133321175809926516581121133517253031301908032826481715246143811957769409195532638560721812640502643346066054991404903062899518103179205649108883454361179023148824854745964158683555047236483454403831010175671959568890292660999832633065221538645395231889738510605219250105654549137347588239679291891125278110705254421467873903387694728274714275838631438425817051973906274320737187059441296504286805613426198025831440346166495789513263413536457821665318636389941900870931232439070940094952222108289058756258837173065886737165941185146725930114934005472513041567877030386547568486850855980667796670082755027960008978703305077701395044435843697634602999528359242408291415785612766911883029955669548134896175150704451971495648812440589613402774765800572273457114850046682429365337863240136853023912701151953611094141731698507117074325096061793307415971119976836395076697763871204912404618252316087448691985581421898181320537241877725815635728798600007299236658895373760745950044689638186968673513593297568074368635592062728849312814388595536787924997008589588672277641354382535407460164370143081202832358526237996462803010972501612093788682331301474698693794779820793638749229882019317338895174871179884818324742356639429679873575190936282019751244091822684910874746011613211297198003403866730554853745559793890055967798054749259984417893149488150891885980908469476932855713396075513833976845696512993235645652864255428570107579144043871903874568578414615620290930586552133311712754381305081141948241076569102331133315794507288306628627785964366599287782177024288960440138106817582992192069200803172401930629769576664848701753788559455428450221004362433077085909030118248045404464725485268144331513618192453323680198147352939073818789240055649986173091725267819946027212315394115167878238244216482413595058924371501256670208762644216273519488920854639496500995542037583895385681169434934593065496527823398449032378164524960261373561480773328074622825322100013308708170803235125710232296331429042318384740942678216288763797261103541568403380401880748194539201487190329301533914025123666526808413790024071108440575246467967898187966285383103114375347101918036713638283588406475324405770243383233792782969598130407414803611288273402872909487423888983036735591493228819978860021184550483856395684042910200022994418526386948937035668247751465002995673564779532295563184326566420437555018068967016581494576136677621798836679228418377232294854081538703186343631809643611780833501682014478392203593098706103753880062026486402556161688887041914324641372313626536503643851365135254493116439965830938623544970994593096215749552801395340580510745603377158023259143918718012968982287570706820778738458517845953154900002055909267343643383573492689827930066199385573327674550402582033254653248909682158827367566259274488309125579554800665931030407895548377036803962634474665119701870350195869476592037020299328938351019234476323863406892275346232999889884423022634444704550003305321705785767680599572622258763171034385830296839988257160113022138397460815078200849157607233042174734738476998402387869556196341685708718820634556474886522913115744753458396015154715343292253718370871586342458003284159964048180608118280620538919702494061312575814198172226647727056432423185820208961051196116356749347799511936022983706198926196582569493128579742245158242561076441090251800162265904031552631381176888247296065143111720430268063592436503899772783658420008838268525810609928800929766278350498120719696790781533766544039865237898358811958985732475500814952204513454443044869242060460213377036044644249981299519354109323270817674669040819475362851981789587002229788208623770986327813093321156583070099315763391358761866470138918278058434411838059369873615417447381571239580716410280154429317455443313950164273364801643387342772185412229456135053292371298446820795926332878956796382090533198686004015052690135530637440446119684666527957779454092325733559274490897857314999598183206946341761913992910150122302845659648571772869649099051571068910053973728575560061940058791191972214763220672734566877816112288301320249303744655741936745311269531000559946067122585506168934690060833328065135738510327818579338533455604255377095580595772825422554551278781507487952939474846490296992555257185769111434058170385911976989028096830366103085850710788288527933501127857617517400748585428776062588058433168489040305957133167215185288839698496068404062340040159428818667192829381415734934488855637536404552544671280604730401850168158738329464722467265963274992645590921870694943260356097051006810799992216385603476885365105384528561521159825341223826772176244857173815440255316046023605108360736327858242296776707681979516630596187220478308084836249361911682744881550005927827194200223398711578173376768145066114564788549489227927212205735796163565824803888122849608520763226517232602793985373805050787564824719826479972964731884907570647715512920080802712718495161649065574650361250339756420128236457069719120995172156819534050523909352069738693438468439501783441847837652171252663632384253718483517098545341022219511575523299505812944808458924186352978250733306259269588805134845052982847314754243328325159153267046708583424421928026901853590754064788314969039402407871517916522088265897623871841845329401052699811966238535665106236316258608892845044371021421568766909884076266348212279522812739804237456151190862660942413008351065669612139750425271188723407534127928070727760474335625909451787689865996484625394070473375113952456824392952319186995251646647798292247370865053297914354548084105447055389459514889723520876736397469546869524980414018643176283060694954096809881722315086850971667111900144090353146459840726771608654699693970054178870281476565060824824852101124552171389145795261567800841342761887652788833911063865171606755444018809540977139576097761653222246647181661930622740683102594572141772032087368476817073741197102656238526572526728198006629291333477781352525072340358443022092888338491025160952525518123279957939561171853512855487190320096466473689928783885308725823505354957683503195429277815949483023109376984486107148246398902640338601351325340803410015042992917197711118417910563387590948625012433006510335251385770634925711910586128087299327454795086936371876059962993820442995911194116830100967164498038531155145632767024736762009542198385967441936259060164319578708554000120997581417209141405379123671655308221716030096277251146923513116552092721800408795673720630385641732829123741717763899605841107127705175687061649290930420304254112158484985985900144455123799113840564640039864107263325427886632743789640846407765091913293291077135403695016118961476214466064093301554331552892137465739013247111722806776728746611638479076571714116211412290342153006536072492825551729252619187063132117984586307602928202633397576680210004027318996825132180890024732679872079635288583126002836663464976989156940730503444183813116160200277652738178314587523517712245120642168425756972440759086592820262796046516089432977655739463910221236098242133262167158462911892378718363957578094775145373998680107788348352798797328207338762607038624020099471447484399832661406140917200236022720318310086588576347872955779816326375133837405928394350491004459707520774278501668653849396546654978442056611034440125672380833888599636275540261327161321842692434262182467642412191246526439233458656115618405882854087878195206802552482472193214715394832452017421293649031031346031840619368073045633076629089350211219595963327374807544562089829430010027537092307410302685066182215683813320648956591912235402019279841681957533168599925010229422021707017970744875195542028372663849064017876597669352907159595236476574110904875710551784801141186399156205589798365725760915664873709611965475457178511854119607652963708620640290175391609942397237373064077404339535854818419704154124718850251414811858745846961845343833237877765135713042974957457087376490951089670759197128478130276746634311138190162026063877196899127220187199620125406872175253462829809787344664794760501307355193306545439973064914429800821867272494740066773853323111191783469519816728855560690979286307531306380341907006248267693425961864454256923609178806627539170121497926094173081300897168838494217541189464923933148876645135311359287822461265583682262973740618003038662614387812368901639543124215559606272080897230604280194547557987820945523459228452310853508616179641269800121741292186337033464661338199052061571598361035223661932036542892578597633106356368038065576535259267156631140741462640575809817956940519395881105684692844539869409241240873904214072291306110880855250425699375322312458449641699067803613137209167810100609217139249847862163596476102301987126759634107619335137659077750430350672378933524599496053881684927583121859617267917274558351088556892507024754871330006971760211255554082867811503257841550073607836815185367252175231949736674659284704216812895705215120624574932939046577079837478652472115615099457627142453494716444935265252352404734421799047133401415070281307693120738672583820455926144247696779368597040161577822345230864785742639140481076029049816662643233023484959934112114756942717400007572321104375278299471869012769885697606917409294164672873726060131231939863131793736003443124120659593653333439089743552378481343484864717701705457457001797886570943433212822866906957849307092346944621137666056503408204870581642733923633927273179828215116810748562609892180685147347835415324401064248657307868747004959718240615047524364712745980809670084304770363897576215178134342915063039155453525322230582545851881227056153081147757088982008656310497741559120721495654966611544249983788164142627632993793259582824107855285374585146458667143023304420239681171317298695774011671928933184512685922631379305830988959334018858441284925047556023190978332913270267555252681467493035258673830189026640857574117759854295023213411127548709635906644363064484484626792118114853224011898758921098005318108082530670863305667957087481974682223438827188707381425605954360710373810387409716637409780221273862800824508535849444570150159445228177248026070877645437027835405453591160901567980859602257904515668007403211453442018776936915400860470304326418597482011425727041598701355195154961844449388194514531934992558149799307018399760622614427637783205784472799628778908297192398841208090986084520287120958804209349513341226200105796672372070812864422503477149518738125432138390361784986283770035870199958963605347559627180517250027668356522525938124743457544192011359278308536382917024423133541031430910206668192386348280122620038466950173938284948429261202451384543808943268850296070532560713194472419231039043609044458331350838282423155519776762509456968679111450499190405916438949145481196064818371398399389017311355815536429195643674259055300517803759857950222430783798291297903742583714131771128491967852004698511103294629139945036272327570588177410321440427102173945360448126555342041688222260010214816425880611993423697452274506327935296668242851328102256357483933167818516889317985170080869104182109275961249249934312714651491573888051799065517994620249077257893281048937151438159578734235282875326471979224301559753614326468331728250193789935479891077910434954801352232887314071063452936042110578131858033855530450413787624261000201738181143452937479666748277692190181850078172445702052110915669341288577155687819648407052025406314638872632442606684052213671461349161362126017711942316954726786328416405791232188057317769588257349923532594819126101484657436053254837206383051657507548995518988546303495618031844933223327180898572442377477756368593271884474186814666730354942112085475808597144104118526181408776927706262475894502869561098461281602039155279357969081957066535903075496726842012424062179168666348825867823609689924034032719933784211385821694939662592449247587002884135770922703725398476184938495891265562987705647760107765115381391430442112620407111445313731852597229089693276025438739967074243362731040305331475495668283530252154020354733462277673879909104402644258260316905859534937658941478816517807492015004829363339984926905499574962735514877381390276717390350685036752403054783868796623919688920126989875187057191632882614190846354504637453018046300768992495655952579263558193856316797516199823780711286310291964191802200133793344670161744934111750562600127844644479587566105194797758929512968519711825654614755985557753032407114647584932412910678054762176145829226085525061345711175544079233273298774247380514452520525614231125295838936571464050384283980413320631684087722235275695881607431277030207550655482180029207565736839614184694381983616535650209321292730993322462822226923222629139575599483887282647950558058099303152852326685216092878942380148464989819814492686644712006792474360655699934657973394880025547035049609242870267338325573561793939857335840612275666891247947448977767911210443627723079102093307302810505556861499483470964449543167193067229396985365343240454211626996451126927749715779491060616259554250165071347869272888395988870655116439130615335777942474954708068365282603619775222035661739079374518770516072306235420916952475273039072122415349219888070399968728613527715623409286908822828292647998645356149572983673103946215146293664089768839845117325508772669762782577135821027131733615106179986544035660868668812384365128689223063151965812558547013515186387713962196563632934321865049709583697738486817502732583731326713251334108215342611575214879525510232178805273092077987255661326024477084835968290764107982216186310595194343812672001558562897761670868173093233586226479374220749567826440218664984802837286530156536132697934389134054411869226741205496493901874149531886063715158433584479770520509926386259229734277023756724717172475937949265900173085229654237456594982522534082666012176075305775363570656087967548361361574512939983976460046970558635646796097162113535583659236061599628094332430127016028975178920809179712495660854633103120179052171292769667278520161079728485683874104483043159180361141390495725799409594331506143426801745427178950797605508582669604970829733196111612302502782764919066105748807039569021136665452263772127104211073802951831926014230262853587148845006270142884139847311529670216923790714373550479325687477259166824167900636054331431904626051596263500732982049700655097843531583408897890716656523333652685575459911146478183823199754657119304482275514187945246186412525057666198176370608730230818625666965266130811634529160757199222217943400142105321002577890324113850566604933652974003838389886059256517317485743148785913072803396950042401910979258173546689501085308322836218234958649964011146996074249224802542899935753018014863603283943174804720973144290927754716865338043461186657427998105488118723855428274995281865374697112427747195289530868962176195018835387896969374113284052815565606316010331958368439466147119654506686241838406501786445129417746359458551706849850155590727025197662670283397514830153344335956083264986808374715822855844074418675145036490123904275735067427856634711606724357747782406234502532824755964421104716937377682984119527433183464425768155704416341059021375650987423779064755663032673131479109276818776570137139722917844230783638945574844017057148943067641715488241200914175005795389488883135284997274363623890824305442914574729629208089561405358826786922590741341553254860543924768497616583969797997846247497898394252056843049957863721852284453456829955353281617679117037356442074875241440427700388585593968461780388464235141717883903654687289776101713079527410343821319543269647433213396211046791831930445466581023199673039658228772272150822689934833372947689801780570984386452706513439087358665713002673177097542097274819581933888927233298496138314537759330093379238066824934985900434305567503051111829370361420917967747149023748809337668739458177143555214745259007360125736324465479093694774553984299467663729741546982648000887471857229868383138098934782813737978040047055994841267111971241968147552755967194960373869073198600346659095259333246734495952216119481323077977539097097609835066982672663337187360732887006506932162983958526723086068905193428928899820967886478738315367530680974070995205340454447306539257228989238146962865540524170817354148444032510959981438483832426027635864313184726715675589524364103950252022655277962802658487252093247818225524248235401228224401205538335307997232647148272298234988335040465953681204172621864632280416442902741068513290223959635369075359974236719888416893340637549456404764152664723847986197418019888538045401992252470045846983396423766941912972220451798532657938026720332951702070432661733329701876464760934919498780434541699949299280703666031017484460730111188862271760110253363145292916377955433021139620854781722711585259428351232155978575059706057778352717807382018753087506860315258352610765188085333484940760671805531374665477880860290368189943340347434054007585148505687161497349286892464174443845491232603228192819716039856921921002817911537518845448890554224406096023417003003247329332606375546290647119994252780983108396683381574505060291950806491580088177389903482284784197802025436473831673235267164187044157809784924380781029954043008818301450158040609898094143442599431937544501015430268676094965485099024747104595858247216558975147649054909273851548170972629586512823188142623820797060963956024928849982033036642876625870219362343416652727559190560516057237811500553146451187170960870050281173717290276723920241499905747790677706031564859034446817704223860943442495210192203126423844635649342558835018975584212869517657827792027166384651642982606174799134458138583173116937289858117219707449231949918211277628355224436930897428398772056247390378896892785213028380410968550981709222283854460189865162296747641970362500345368480322751923874438996588911281637092865513050672250316522934114338118331218759568786989090081978221867743870953090939244201625245962991879495160887709167621835628922534303272571924823772703685765772690064271828352710813638372479261018783230308942968128086307203313622210716747765211553724432334134607836905508580887758824075935572975293394560961266886627684674646015780771746186017943609774205417574369561557017831320506383515498874832325216935219857697568326464837486519047698662200898129630162969839016266524321886818225904028308719246102899866187152322129762483179341875980308667413891223460686633362060468586406313747928266051879193902509116278546682093816995855162094817270380929763022697918698830616782170003544870862593726626477280212348560853258793128129635229150617220363459377890749423224377001694292963462593512911869520757389958182885541190996207203166286536386297417873220274886299577856339669574385002928623701596108177130089259842311360223852706398241415532036229474517033120988139405193528414630273948076897394649127406625923013851666338855399833957501858766005353103446990464637347843798764816966896902211805923234325803129913042160381941865231683843299769398564329877924996891489041299951784083159417961493001404588124349568983747218674900734188890275823712367406347775946228333016517496209950275208779289717333045471004136437389805125530951075017408236537654083120255726204930248912838990813163451345297388474209701030508367449465419232673235962526122759375854469493353019335903688462095220637035797340756431003903024391107932356748269305783619691579283988063484198857749441434475079853268835022485394149624423850932980141685919949928931256211915848278671184582796565660676747621773053623280638112862075179110803852655413924756590707806855883273665342140307338746476599155488182529575809077889079730221339620492418152723046320239872426535360216308001082199564210272137916651644834054629840203393297040065504167059519726122511094165477024579181535010695710108648782523493096919632265040371546644979449564318599714271541607792559065389426917016903605070860964459240217198468410006549377951552714496840806959849314817614164269132919958577366912749684144688499818587601470475541727387614036328605437874692023892829370160079226239585260099974523737786274437816170534012491517323312663123237454674433557350653430701187771570743193857941381660778165965941312485862283845964672366691088107166933558539692492403120899189709461096053590637434808613955329072900604928506254874397552371352139449836480847445858242970365962421576873373414197700250690025784711013839459381950912336191470550282583254131538666846497055079871259736026611840276930631044282701434147922730531842608047024521294449836625843143336388817966574758279455259511714828850494627191046293299187551003960394679675817366928509603451568955553408729874205710681066205990705775188661058105906163493215873176802698732132486707060980218411082882706217913063847553013771341571702703819360808732711013971116582539809720195266062368777376371397069197634277316282813368422555035985742353918911091802493829054367521634111818056892714665294462089925579847029221146925209356588988369665724235153910618451607703316579220624287646201775415463746506963584213248083519147079596972734403779950855740090054309678709841014927627398596734273668795496156119607440948764132441092863101818601060510723812656779094088558081247804388240075182192241891069516419688970682972313645065497173611577468660298348281101541227903794064946254095984384954938824858214680467771394953361582263907961860826695663473714197706842730037492721801014332643995833218274776780259080403565822323814007959900462208540508961322238916826552095801136212436456658968538525312615373499556364152150816154134870723630492275981920208590596840522615098573587900701972231512377219851903642390193059355208681158209688175180692727787582212237002594626783894698674857184840299595759771315565400278003974356203030626235161757655252287239301928957739218128313763502351190343884987144513397738470515355591789144157895273736012552968442982033189664925554873890064412618317225043256996738097010971830029511828056214426373766701230809195322635150941212914334887114123146296647754393547188382729574371046273640947832247733908725322897221904596056151549700351517421735368562651219550361748382734020466511071959245228133932091853723103937474026571513997937447908863291388019434662220977654114519799831904515980552754706134188905725534646204675399770690417431572840743499930835467445326944323228279971519263241388481368085962108247032365295003500416408786131184208681897212430791661795314487843586835713376881909051348436521418186241156554644619572497352134093447169470741256833549039595574346669910789563878462077780743664496078083994445643583929593414295214866257183363897647842947524817645664129319477315825915121138030046975497906883925173632776947637549201921962361958192932523297995818859315992962703590375128659617072874183697016745315886670491285385941251811910627774898002941692494517284027318493400960702039354297475821095030895092832328750123145012754460474749886584678720904841548422690292851256770647376320130296050147443220020541132186028797593550381921054114639142965170754356006249340946988168820811641212459562090196276051216341280655199098092231637971700113916770219925298341483141987723915113869990385185088272204062900494619460611955731288172671814085513657378653230076854385464038803972033443251161684087085957970356581723672475334602512925258197114733777468137534653221809057752199655632218040152186007685662088689903670907044878824010150635606272331634041485008669287837003176140092290367845071168120573792852485982820755580377002555110614499264800344700853955063237009957016973239720291458218460187256866855266543790827268605508904205472000287453851475969489092415107127083035608284061352931167946042123842333480729337919653310499011341808162029724508289443480502228123309796096297158831722360792904642630299708961460285233889037449076974223381222466794228251801116363939723971155163933402983781236244523488650651271859107964734028998952788741892141614086469622609830161719393675742497144428754241965372301332647252184175814667607719879327568809426104864288654859791651351494928064901682035057714769368626881656855921959864942708843602198990712593236498764135978989683652661623566273916774200222629249717444519846996999174821030176376352648670070519795218603326711451561382917829162504337501948227706181991565730460912302399220564437591069217014831712720339376560641700261459787969793220635257945021229245928000950600919982570436090138660478195863914833600520501537468864385923822495404455887795912185342470477768645657099893217771121199699731894752569780432835194248288509587949940634627038439980322268753377849440792552934905828310748451210871360666584424270289275532736265195189942305876260878436070439033243311779117095548247184849094506027789815497496388039820981569494864477428558637592027791301046984515756600304550894418072711248264052127393364330624605064090594729590895392967685880103733937029587348144412575652423510881410835840489168424369725413952160887288910042751465535399097114614828239636367579482182887668067652316598395983707098487488398984412082256917428679998730286724195174466078662429636845397872365619487808267996913265682642158497062582328535485845491617153839117097794765848602777235470094514639144647356786181328997981094987371979512831518098281310470068679987646489977233207057362250944898667152838851058678315856943117255283952928334604337352017429709808429914171871307796932227272818934083276905398411219415482051400790836902599712853273302069082802252951221195166014500211207918191238234594046504183102861674451455395192417799889682115604255984059316437174057976123332107881637542089909079361085506091226174311330393165127899348018061238001999062094928106179618371829046088637170649088602513175632052858776422387460771142354979054043485388610831693493478587664869078878716107034441513544355778913191344724809095950169553160420728061933502235679763943870129394340270108820837963379595241387049040290320541709560874782637509763354727692807247161650201368101104743836247887829326112227644233890687165440632264739591935840096646578330362587358728988707279250275444757179326109854997638448265501410379299090856181874478199401114392688542956990723623171456821907022531571263287577346960332142043237670435824623118151369535583865371789847285357250713916252790893293110325588878505843151763998676338333709783680194234922488680648355250051960735901259896851260549338387642366358910711814184310259201272814248366747405339034886007233813407269791068422706052724990220942196682620955345621390939929340116662153954620246304543276572129756762046838966331261017675271246992049219838630022917016207331778870864421218586106144389193157533160450895679335149726566244287026375508127535378266133847522495598764245530048841357174378859340071094568319771924604233148908985974399071300784348578865770502921802576138374914111385292726211555753291690000125506367815976197442103862026281150337433512628559472611753224498902386688356604353098884893105970899381139288228934723321394124263494981372089037286889816096497361713175157497653397578777034880553837688590756035454221876205076214029237263051637711413888858868061865225856022813490122400643891886984587869983972924440107281654799218939745439615772527433520064617116994700519046072615247462584597925558570046177670779915632644205746700478001400225463533488689929257995043388552862574177465473587300359684059303515395264073105544488902741653783867558976200734157137061074049356899941697527972358161112119320800654733940720434407723834692283393902028027613084756491768243118169724978789555826317496613813988120663908927054981209839495791008985065957448854580731324308733619794952684851829399178639552886854749285684777639954197298115679865815870149962869251202313718064643268779993845651139913965823662758779265858675918514366251601184022790831745036923471287680026950462859653579778018972227007690468315728173158203922696485086483851437283566086205527004545695364930135492192792053002447208932607120822666953675024085163147372172096527367387710278240272484185835042862005059235738304838460806904159795668389845406090356250404783486628545832872789335161332093159389201156292385342468883738158803511206458100952094840956376729113160300527309566471341135259128556248138221618595880513823256928816183198671510026142258023572359347697857450750449888894995444964883393276612739349067130134573855415827565012056429925300721638882439656711920580936723192788244915628406719617367975792876084057502043352751043303310489191689415480454945483885464243218442237143868808069996836672429767953201123479077946850800514388198925842320612217984573132661013569917222782616277715728681816098737782245482083285683971579920841770937343193381431057880895807569371237676922646272503610404710634384990383500689115437239704282430499187342112980476820013627517093802150328110010286611117089044700803162523273389320664771593162500971316389835346916517514836364772671118036269471443151658287559161676147870962838347404349437959274942706071158437750457866481048249238997606882640963081878988370525071309066843740690205176220541675594416636851512419541893426151884322029510829300836733545563082186368487381568500000682655200616712949307237554510715042260676377186599198925269408407537749542808084462798168869984900925935761988461392624027853387319688176364024295018984006905869088759699677551173514111275975725983802325071565662602375669777470012028882481144202271655693923952828118508832676792184633320895070170469331430029107500589860566250201882228963829115222588181166072226970301396302700472742299367989668006523177957480028162195843757227252918658145543514192211224698255859014555767375242118929303676597054689509710763528538187730400806103863517648765376493765910568915836600803541641346673995829917659613407947270799504104217657843860738523605664714067594386507884646453183269549937906654294744166732545190815177265793030853050112524287452067055070281118199333562282023672247786626289601083307850315027524710274587386706469715261303651470806752564215976661568665119383525885278479611524408495672845605191789565253365914797118289204951678487052533927656031104569130204848778907040105961609077044880716173733608810733834995764531784461610254467270886279762930846484455737267887095613145449900272853960678452951691031233040193819022598747442921924196205281406563536573669698147696376132929296968518711059563727675604162397550075646839723872348911132263964040561369958205565373716146663783325852064881622501159884335920861501551546630066498758204594048467369328455633691428703041647337830789744415118457166476488331021484642646769473431057418059714979304245846874043354063806658374389114563106171497375805150307301149139309261717176019169102115461430037537853030884479573497286406612431411063705146074682599606531429278874522384780509376078143549983062493555523911454546247548038987221364875111203546627925958733684759289383686780213526739099727271149042844141873056414907056130755002305460620281640754717548048043158125396818528230764429328255161614866548847136583433070327078435526350291564758107596773616350886948610888713283341439643005920322036405319422480008447235487158485432599620114019135391168309951526530630755274132975477825712410510160559483434828658399797682679978958856094878568087116243563526474539987143312907451747926411459747188781781749202295563433961698046588082256942789572187780630852379863270687334306667612996787990714043768196162488746865984762155232214663686884313855407362674390893372004377053121793669295807662992828345442221747789034405019080651695955395038122428304780480793030491952273519187592366535159969039428723356364650858158122839808606495420269212873084012350701390181524173550597108405005620270460391024099617934809634832251480715416477411153526532776629609949136242928003623105810966021404017346232803168587546339017542153731449347938110177820408088031886540045719145789913307002614212524567751617275265493764334527323335481430302387771559211293280864201714809291863284034475383818645651665132668957723358290829392303115160519308965037110379495495868343134751815537889595080090997038185377200993656838956048009357751764624567004263041471495529154863040422465562190765739329691865483782372247808652866587410777594798822539724209310861147652574976065321418292424894720349211324210768998321059873761068421155931810712211687581554898469525497504371979568135406375230775961984964677283739346031487609163584275147205134790979971369780089651092311347468224762906811477844233621496823439932247367313646393011773271395341037650551971556411775505399835409826349405984720590613741215855350362701507404999180181507526013530051795222900938162088616045195082158259231015961517054869067238170058318945391615178048760121086219491686112721712570048360812654964096057130501320462326778243940063434994979350417806076242071218883426406880147174346312321482521638346829531486894305982095521360856938086511390563430429486916434627586138832961797028155433150219032420091124438739249404456506672644268262961623331044640844536499681522258420596853943604124067481050535893687486682767368833543916045398085199034070423878508848280636389133774986877366276610155876179034846239785246799989487988827857521652569777966101167144140552092284650584644376370748532676158606697655424684964341112692668644580182442074197038842369941929583141096607903740362467120454060536904419703993183154189748024804291457356121782020006724921622645802251986268116243438941810798661287271407009089668976574429982503515254332528343805722792802620233370739528132473483273758543356457733177366329117080807216909931382918937412671561393854844160112504114228358451544645863569146022724476301152828369518367592567091489413029105149918684106060512535593368651013431636828624528399940246527398352502764301477370304987107628894748584637434435307930567027540506140128959793166431503692504904848324932990012871588627497682341889694027574810286584469192138777196218357054213061888763181706492978649010937908430126869519933642935295937324597823735073669386122435409312733233372293776770389980299339001607652909014416690856975758253353118900519035804159253011821864906985389445435576477488735309061591300351456337915621791914723961498717542242734710848636140263340134526223607229397552636216720277768671912785509297582668144830263840083828069887614280761645653720227258086921538956541574226405515970502056951547329321066039206217214178542641767704124311458145968715787141831860211090045125078104905867205123085246887461275957267917894526805930502638790074920196754773782964408748548775787414320752348679310480944466822235651714520383318124080183787112611813486522925753081413377904213504695437167291108395385532455236424829251897569191864900568102059399794672051790125654141168424093175482856117250589928734738201653025025019201192206542685785668850544547224926844795805670013313465283482567923705425724785612988041278876855684674338940995385093757912538394304762044077995712218678912738026679195497785622507085547189600759288023838096824610765351438583842958371107504931377882120920560471135945424985464852546647942767051103621352734444372339253582166461821683834984468996542278220465791148370698435040803958473440702231406934906138444297249131595731123164226641381684352403102907456456026076481676191885021772745839400326142543783202767144624924749330928373875748275048587096220182692446558054445945213123438296584467426985069937782314795788473007660436542114694025946864187435244941044105275959089658067085145002489099745470804982603580731167806564624728235816236676362091724540306189736443169967985021237008799991059737181642871138742244125626647958484226663730062757586559939771680466140849856923830755088091648710205469567612514516354450530316639333040739449166160319048247804445531840508055278358268643079830719327441781058857443261586012544152879639580234066231222952136937892939306467437816746053320757824307164562737385676829991548617491185351698417357839361111019704759052217164559080854490664051924163038637982699536009252633081679433492028371038779316605787973945530966786455949490247025129813202701230848319081733258971428958271382306144640060358301549380933979741023501201026635708698019629498863051706842045546017509685555258962414717462756497976350137390667939794697861708087412666828503691693532606388781347066740480502174563124127847985787892200677401125535494550599937605204367287043758122651020562005875502836876122046344159425511579844635076137105470678915752681932006051634350455531277968443772969816593316913409282636713604444002591059449917714539182238462291032529755339146077787534859770770924090636143004561331471463360038131223245639161583738354383499066892002195289310436057082961592947403520816188740439514835769772292426708754872897017932206471645921832300235013227457671821739877151424672633201512867330358696982764024340438379834924590299778585599503584266262151343267516954552965138790056388891088968229340687652338207824926934089123415539427990668540454705331191284650299044825078441598498697969881003888874643346557225234668739131647690525397122247233437100299289043373321583718456417633725333643319161586918105163940067369661630908047600509615580205643668244523492731227484532229082858148734976257224785097774239031383873669534183531862487410466735600949076058441219854363999107873172120475815135889198604100947130303090439498462614165176790220343736389244332990040948913148353541177902173227378616352628915718636505628796458367987565594799210558410729522122410812168770058793123062004876640439542728749177582623417685623441245257090560415267011960505487071772929289638524872521688056951632409092048379144831964743218340726647278783397246957582514054245353762536744998824288935749945886901956308993537297743846826948648385260269638236432262134368904060551353776272549167218834585386978726465676170732654208175656102154356275073673707522424001898507256741224746435847322776242489005304034600636380863460040656028372581405372740857440230799369356872487840208681765831374673487537878184372749468958317211834434873691574578214705293062011572720162404854011608895265710397920547343297713643335592256680683453806944791809866789715182047482572039567144793419167727449737862579642917825547298780181674600247431007378940962578426773048185654494078988117273362199249755733334445098485908073500833350265723756000784213751686059088778663438009936638570209343083034449679009956740603844988667328567485262291835227488681275857028861570287862152842946706317135177109111395978013929195758691452613476629684228025690816636230579528022953727330399267390725237091612181168453484470171673751414571837849195082570179257624992844387248643760845630197638693853173002412197962182096256874974113604665417974093599609123980785258359286302900079349659615876012405058848489350701846610736057446089158706025437543304310411677559970752742573380362176701769258852426324696260081025261577574796983555321798594163516914161371870242472892578583832374280285273081354978045267154213539215113616241768216526608186178461340263589973340885487824078044535438722112832339018161857042795045697616149292828391961986255805544616960605113289225771361475277178106833164555735941771550479042017699537932699126714468676859976380100504442165918284382084486741865324031491161613382169548090533789079039491622832823683216384339003738755616181889741328217419206903474404600528782014743311923045753462892995394649671518108486560097638978834065540745467777661057160099771308543031454638368578782613747794773780425517050213893267173951118718394439065105759877837515527813965717117201461441313021446773630542141154687826604838970647791947430963270507428591567559860373269765414747416354749610698218155390837339092674443042505475529602852494966759433849629917719624391074614724322635446691745315994321066708844074332083036691978983088885121723145586797334252423805328761160662847151867049140032736773329212039205189153982724080399810029764485380253328299483543298153990096859886354592188862897045656034529669384790166543253822878175880752881917722497522181878750308986640494314136793088267767118636852234186624244408095491131048357270024776563687126753220824999699854862414189012535031642879550808633022759679244028586065817491326098902714072330290175921649669204716881078823551998227556783638535159787343656330950816369305671393194286996929347732954252522224391433493817626555971816652676845392596914539959186762344476954198704841424107092601140772193794452707810067010945964295845727446217695432007920730193552174379133804473972363587702150202498019198133932986010097848917962729335535122930510697710577081148002270573076942410064383254873668093584738027441015558996732911348290237579314538922492166660987875060883284913927510332627006640695053641753833884458947570810141656735237276713473285768898542158508325048182029620986841222888661781139465373066506636282415124402649233748169560534924855768659517849049741974979408426010830801285236379829218135281367403244177962252807313909275063861246848258823510670046235202126804955891871496926638870898582756234005457982436075234107542590869230769207874164190277561054778077514940904623128385316925656880305060749632857644393669718732050975098369386542840227591958646034043573833601496247223085078511991099228571517623145520213381977429173685322213546313656946488238560701211237195034471372131878972233328577981435148082734022993617951376141745809061522230457398837193297375666665094071560352030281517211420550298139654707871265112075671221773085992687094332223685440511663872265104058980312892128434234155145901799953928151960000279632618208483846056500351302188095407820389577943421493884720587642284935979690554266107125042133364081143703783823474175348369669601099482701692949389544452270397623254825969326178200931680194021275030846139649540335171901814233515831802353058980283109419686906125222056471252828588568697984750601358692559007905421226956504281846393643119586286151330116822204473449264459721901552073624107387739215994731153938446784487984769117444251466879874363929111490819700279701077301725297354779392573424160019294219817465664796916560576837589676415901393738308986217742205756738651084650590126521613063951729488042966591719143333873734590766606658231894789597907772084860967565530969166780476491231916218385713123246251310884504254885370820397078731265693945599910039393004855508451504720802619361001085237196374271448944124026274859810685211956889516523252006442468945135555798407159688236663459555299957131080750474057380994884463839958248632721326163189898279034894719859541391340120112582314247868874100434792877546366616786097433422621016021626203578988564380592581712818186014658385361673201493966718425279204584295588135725894914599908657652665773458475019916467609205826114790879643436828799477521455931683699086267879548848189947288578450499971294074085828704952245684454161127354504039608862691884192096481105781214394855628308589275361208206604371606642210863845066720673886034398575590727033088496664482945912451315649631709604296364313351800433159576342541938153880395352686760585009614377760630539791442790229885844607097003975423854340998627072208136676125803309986644463629878969702287302654232775057749078948399160052685464693069329187670267589119597271277139315792817804202858185477094309944259167774965669786676259349321117093699291918980599753967813431200772487795354790442079648486768199067821834593759167884111321511762713282919971978547374872451595687783741240244942221018930446718693442910526152330706506003580657394794696761359245291093540156353279701489905816680990034504809213300802427976828875456509205115720927142301970329640219774026599440165796443774601667958666931598018925082647249908921040630346766829044607392272054104393186885318638456565243389350144975377028339165785217483343187482650872859584287352349881335975115228779955870423719028155278304147352739385350314196348306950124972697574791098456026742458543019184276582660350771053032139360765909602036893676275964334705535729820099794981599122102131439634786168341230104553626229444730677956159787182839400426747770566573840903162316372229122152545814367765362842018172908135608597802986444531654323166366656329413821154968774943802899471365795204290570377103367008638993229816382370277700562127304474160535862455340457007418863855703994267700691902435967129777517221077794932467734075182591184690992166817820503062652877274736744761984060585755263860479408190050739582995066887127413507191734763679247569454448142327528141874132296796484506068095118564424230794696578977312022618100383148987950348829660926865502499707547141209087115321395059899643884574203645509633069980319048848268598458058727266277687904583362961127862571941079549438350521423566579458959948736028023009489100639553962039849933139967078779135862514619943125842454633133265852711440981026517425173076690511984714080638369981281435743577373427067818502191819026891056852440969197214413735903614668393959103224763447043058363864451457036341878942449978793539954638974805581536558583085474050668367825797309478010415480392831998513599109380171130684790251540790112132757502523552014977597598848770723859562726965846500331446407426717121057866299953617771416870528147613312973019931569999171924228394103199835791481213623950422345613449258047903258194040558219224077203317396423458940383046093239549165319174049783231930303769462137994911899978825090855294115053514714920250668783722172999503367606117711683091226100532905095628184488216440874750518679588323354719589909997249004153287737373240436391794295242009366917725722711018609633667167796693835876247499898697345757447426457691689487176849001683544983818621698185883090491987750354074038350492286468033624643228003568805456433345678579716385206834965760067529004526582017049359704377633212819004749445167856623807177988336197367641431257342045077116642596589085749689421508062305490600384434099124045196452390445151114199152165263055645724017894121953333466018564634877062411811314140161603252102950636481327473220790236405565785770048869694295295346842460984057267817064932405666482886777070269746412528835155237029710368748656805386745187866474820111252163418465562702550589175831242090747505976648490085382825048654463694165906042209287309902730642294881326996753387648462937715041727079654565327663228337279392087898117061928079948259551037023251997966056641485143824335269987277028638447987297519871216648835522856866850443336451331655869833433754132392911011944459299867992795505738890277306688781390786525715288443680871796894489477364266810382790595032552879378972793283234436923248219162774495093882445835489029859306668623739621538839345288207200340038298114102860963418182322157749658365949535521984261304755949960462133113770930022018331680507049275001845508984055701945300122416869379389863531538109188294554924590712078803985038207609263232811066585549624518152230659063194876589665447395816192750160027801053503492163227763958077950768579130715421743501464800950498199148213640385459347044563556623983630510509176584819736930532647507406138109757293919514859816406815010294211898307001824394601856290206095967507014719130035718755168588860844797408769624063535275636569055792390321819606947832076951045367411263328533203609370838135996734977067363060155194975032227736589107439015538745358657909339440469369919326421985169687809057393019176773848388810118040754331713553782741928480064991974115249487574771366914091052570604510828541016604731045978604731851723716299563667143000743985145921223835464721935494773366630669293337853615534665160632220197986693155106114964502599472076461638653926931815793898593475689185341053219979554219628499055295562086701696809379066708434776543001630922743200327288182651514426482333544361691902932854410254931293591638487144115014096096916116490291519273921142357289820224751166765847267389251590582483157193689731922777522094196443890028032729748393980940218254052039657164879445372819073322017291116776431385518668488596489079512743075081279466060649956010033302118825188730175174348365035442912218043478520267325850503373072948351598277033153067524472353825233323304162230044937535212348586609177132169245517431143424171633987743214128422144598768501039453019985118461987660693836449674459074139323771474784943167606838316347325097988204079370784490304476158533084149831248006767064506205957677006469994388371299144203324684427769247937579866242799065255508458542956865607050049650313689144681480261505005324399136679848174205677034605447695395597186818926276596492486478725490624470158344145948294163676321264632618828137846715380604786052134158951271660438433371845180641903055512867584619712797727645744525486314377113302041121097720003886032010620596043639355828715287987347797416272875961511244419541828716011018147880034994813714337704898709678012169732780683500686439800366914112035560898303298015511982992737955223483969087911549726621106809872839283575302933831883200885520945700900911664809629814837287198754190028712183648367563814727624379487349165778213886726471566445124531594527573887165681655483917946886754630602289401282252509511060980574496670911418686069420329703853144042125307193245748092057898061893879839201372154111441421453224260956303055096785506917722627975135207878126390527673529583840794117834353084997553557925316479968370524535804676022754702880124482894314155341434975887471638069051211546500228142834947375018023293236446678550599831114423736638879268446626107525045092549738577847837146834649574062484838311090894766449096006173452611904400093208605917313202302574027755530252161627389261936671896117992375862928268869991348644353357774506629567229538007358781191241961506524281055920784104883715144932925691376959224528409298519453020260248710706095373733046009304355369241824620034221817102208425467145753538707858722635633382803532385383589452146876036835646547924241210155775114320487174623056538580793337021771689686981531288290437311929785877879733215546691226417209766766425730505576784809120158755066314965243314846533724302520872165310844838184847684768355215375236747489520073182059820469066922105570755284366055205719353807356941271982694152430728477109781708341766255451638134868333299532134043013374416998673948009143712004632791127224283068859810373337634515676500751659502164275532652666079631911582084792727996267487345424012817928800369041899726874682408338896222770551663403674219139926129168241402831633340799448512190629363295831720652164954183092398471280862563173218796418180336275283152903260058346098352501598608452513561803460978896038342345709076486616805251749343478438496732537392760794095320501063686187988846291559461172743438357600644346512167494078238015462772753766305955445517918031900638591167054351680484941056315405550451652294115051959566177532313723907863217130966121338624259803781423999863973633750961714301908040092127635356092259806886979854501881580925568505476860722125821322303096819806242623981048030405954723330285486858584347780608828108204832314608297852559630079888847384329935450811689519492020868511239912244255379330828250151337266125553635525641985344136120055693780621051751455615873610247500923452894095643183937762179884828667697460997038402635143837559454618734965842364610895486087182047956158898878110523286091884521772969077685702529317734648539023053507343854264269449522103101028463429376329459734833951205510882186040345734400681057695602560516980312338577235549625711515826711263420090701119445742819457353427812546834493702515319330800942359894938699724939305167360044147069690168559889583823261595998548488633254254743282591291960295243037632422826109893372521879618958059825930109183784599714197505681929330113311006329940131492914591803134267027101088274396779729951843203812835182740234120565028875829520140039212944634115420905414549746213406581911451214935307495466461744821350766576654083900658129794154426403877327425554126815232240908319089169632996654196503372211575453843670948717508403238567675657048310880995271450611595131917475597681971270489455205985334282730402866812636781263515088736608486716953122156316175943322360319442950582975171185051315241876708311481658536886254803770162815073564805315670250992632655092517385488414638648450435852687297556927863834963425674541400613252922332369390416572345192413657772883240240156947514325710085883218841304839978894751161694920349609348640608236292936381590127113268071753085424388408118703299371764350276306992073834681485246008447069436551678451745938729573998047674607107986565776452782042156411777514292897497033953675108323119496811311631645398973470506313724273389801802171552483794996717901511319419345335965751535834586988126265708772668088072775276701676183289651778089082340196051747475458797220627086583165419359510092997588536739848515721038868363554240059595634438046859405418386589513413052324641456322174313050217368626486209918281226963102307277547162474379897174552684634350522810228066597086187509900189807409025733409289799845368656853003366814314565278869700835774418434079899286373582654921469404689723418454912021911103058810119343578187850164224748258751671337244539835189102922663977349400363848337483137126225024736176739487402704368277152334321567057501733489440376226605430695711919228741668952606874648009138375770403004790999094979003598949539700818558591629339778885972020379795466469040463700536484809953781974164812065201493811737152250942007733559289279831229682711749398884096176243527341494428983879404123577123766660474303181033104302059622473762766096156664482794653278294407002996707897772915614043596091548576975093277295735441733999699328507592175860630599424612512294386795884164071174680134019793392186798941525063871393576207868608366587660835594876839648596657016271816230707060404106519670886564697017036737119959836765307519970941532090553150367461586024360745818864023011993572641358371599869111088258650177507080962444632154805664862508748588185251854571095664188364035766607817965350282272874522844503282617586474677667962986155475333648301598418025402708907502288189586999209362452683332234074867198827279493356677895919971868102488054802438465238683881795839063134028183994236611928335349887008306665661325542324360676769470191844965709346387428529064477085287207873224527173170355265248939171177596530765715908601717871006528748582345685866957328569055763002167303893613116404518022990034043079411078926822617845330461211696021764390587912311791337942316169640640817917325941420783043610637648453408192528728712282594780619281349642824040768288312219276095712331720181955623764695426570065455726066317193841722388705999864390365539353423163224211783358409574694989389811221211358438023569627834471242236503792538244134442628250561361962459178843907090309509676644829217645529124698093879666554919888899587054002556101743778455731496733229271903653024510251583804140569579590795931632799020298887728924998328182211773675127222751697903097286551275289692968469518030445184564451316901966862873346486584530021221367022149372978667936307355780037028941755340256216705087013168062511670222393425439218928263959463804598095362790404031593190486363265397518857369850577517834891584570268629502548675343217239488948836504253856765639470936893535326821211359501962091644249618545396606119720186141802363186849112171832749158022808592490215550361183441616248194693764347668754638079068203027171439350382467764933230307746247030044837262560341303297838333491644460688308227172032178314442587875352262902475137634687837860550655532621799512200255783804653992023631122141767112476378955329030461637096135611903235636544217080261358843939035759513011832327942063772390419894228632698566228903539383430147109409415337568883967967284416994229562127154114009689020351861426223485836902794622187573366604750118543795405097712985961685630975610887465704315699130345115774342715586363944315701071290053671933460668761356853330305378498794395430313664449338840335892708580476192996544193127884863209714754135270001138360307829640669542085803397566862747466460454908581896920243389494429440638048383408778781697511320608645076601685376469588757552180953019572828626536360179043612771308743781818332405429542817803438952554282245426249355250188885038232668072840479271224656703781420055207136019903431486467560238119064971678494268647242750090471746408291796469719504249062536945364388885604325311875192742517540764436857729307512613317360864572977310997380701850058876158005827952917764178961826661028274432932367314545126174126316993642736179276364424895286704415080003960917382940010627770286181973067345777935450289159973003900993401467569654078959281617465229383713556318281276329593991915678875791330759370279819122793147112278483313854995371412205275148581798214956499853845876801593343305168856034685150817211197588333690349426738705574153276671652228984221415163331612542637541862711336130235373322448169355147931917347334182319366545117798162142335608449062209870460053298254820016632033809941383990249040059650132443734205680337000379912921167415952750744516516513027767882070906414610209563966747291211070768521822412464364026446922174655080455369742113870076791462463777706560524332257624106489787150761688172431212998747336038711256228368585389706497879109079198048166780999481984171080155986111945824429627483442091415237962445434198051313860179545451259248255753731275117862422667357466201000055756669734863254426101326715126992959147167970846856578931938553556244151309842420520927352429611042972970544092881882329498699235265756038146309986304291415418625464717147506115347933545204685403012185737164572427728845067169787730467893197716397685186910963385905963754276248685391199948695572429009490397878175256642266636861025856371010907434046830611950092858473752112432170813060200970737972969532985600610201598653261786746554923685486761361438744844086056615193413663952504967076602511653351182485229973293374543899680013443466690649594758365440911965668505593446343611485378811282509814182685993180496406972179720457098076261722773286837462824402632904967949354018751211515376825326347371227964018474002424833719677522032714238952322090163074405990651758009287749200202706769304152258758182749866431684134547334976120766707903679647826241321383905619220234200180304388505610862849369721703331227240644771677965711320625255443282256609756166014108476689722890190161511382257541765611346275783037900503129955322194589587509461004040925541785811333546148074182946815064652285396918755306227409463028084211858849102266856849490804152126644782392291871147831921654115358158249641226283630468036230610700119277935823623652795713326741185072477648447467261593503265559887779274676566832358726110920486991813399763754754460525830710207463860427447505635467023711109107181981713352294521160849421667351345910960063423412117911061696111912564966764155057028780366273986504014930983783788664288428005748089603590972421485210394360500415987234944026655873990063502172286208584360279324394288249935595726416735724108101931053461479587430000849325011888689430321507032233957089689075447278769873600013566968045305860797043670731362919811777528388906791447733862573954361402897202532320322769637342982886506009642262507551494399212813208434622107392413914712383483676449953631862957265422108992815025086265265015135950726700862383331432203895928961154847478383844117397051589736566870074997797660011439867348199049694768554748635546145226342630524740654076385577313093103923484154525183563847672976741065257969418679312953992882453077500434143822082024424932747397778321674086772572870554610095552971214221117525390229855271857878625906839925229720316177812946120142406570117142470616163070910063539949945899212980449498292145435379031574746522333056619387036128374985846082883789673154834561958758332247128941385338918498777957593667506472902851375755064164934908375381440851017614149306978693480395910519877836487839461719891565572903446293087591524650364357690288267936109071631397101514692146698709511713156296266465704733909690414266062310890898170723668231716718651542287379600727413667840783450783056607176495270137612887975019664690871818988782803644688151343679118776514574191545467816291840267939195358389529313917600134321198194020841990261858017856336743526714552728481697224848220060846021059209838178556708641976435292927922646973736241340660859561203252647743799433404074623397532996137519198847537466896370915826911919407855511572912064915162139952916466921677157864615522950737921143717588802838028917065054767373921199958970181730211754667063121303282694579829220590670916472594849631681774534140635475397527479254030311207884840294081560578201957198940940533842367450956340876272979318091362085188084558898258587705606658226155735942384992437931922535142230264120030005545663246772386339578568377662056792664969241876792002312785940795278304077330850479567397783987589155270609980573834683336327521350302118143216981475547601759926570257883054301537447060665320459384654919570872246312197085472023003216263766210109851771373979713658757628889595325723940853494511114993017127757131745831419573987361398071657412560257431453573703138100609708660284636484860828116711368284516524881792582926404275802740819349420200876736622068539373301553138178188209335594946897677531591058998572952992937843974534810339288829593205838557311475587716751911557153629214864007513602612913920414541127423430177781486235543338110621939231537027770057942104407630244851268307133127225256451552204811052909478621757931166228156390110846611907867313744373030915838692896245904937811790583318457571785470121022560086935817187979047166761314752027388406527905389372405032413894825850822010703901873629904587540188479335662130429392644669410956481005302930206558392259606715715471888728569233358603158438762123311621139036665561576812540425439362701502114408165253306087284822924662621257112428694677388464232564396820246183549398847213161676941683529301865884665866628797491194516479867384441727754811911468875876936862537678382702503628345743581649363393915082736674592439999799218092534158608897157097337192165093053951426442722663707795561683820622926658481737151185261742686538880427836888465869118091784003962987435987609774880601276303567106521078811614748716931359214713833065283353820524922513966022419146004400136556436554220083815541449459990240211668940198425597524225971061373078369380671212063106565808214372592233604687440447542717390448539645283926187580375669023862039381746684856313675639260337499368571551415752248634259372040437795011072963768176245831928131146635829663188911785153916156206438709170920115095883356023978008879693316623039656999513671991629600899822550799638496835102777111630444973458359453414540127472910530019009248458351155543576062541393947871521833929070671178744662926549443444220888440868912732008776407734356793192193437971926276446749327345471141260301301486699576804178133785551514242515057704720002845274534357529433974582755687516865510438332194740864575387327492494783600318876121410544574972045953761056800501955177462518714755629115404789369047205478548093580836024106956789924263856658680909738852207908940495154657135808258088279411447328002555915500012448615959342382578989782486920573828636774987312874503946000928149768041539192998519045912202753572502892690115292586470724217308803223146457179739298648283861148045855440891189240947157171561695012604544477360122005095404686950057869356631336337642265705784025974200658175743903996524061060024636479775103260144398631588161776767469330911862865900805522704280391529783184995769874539341786077495114466212123162812929533327701128402842830015019314066312497528530889321479453430897617851744604291718976896436741295731354791181130619488062979608927098750232632870736429566110265743994116249791907459366339537797642748720145791562304801730555592258729417794039439581359404095485945899747568884273952872084523992874337284545614350865764747512081080934251945181543848841758214229731516552921666543691386116303283223299249102766889958082835914616983819127005854800183617538909062530274442535762405205847048782386140392387612539203218023072203025690379616342838880579406996628575030851808425691359429778144377616283548679386013740406704809195032785140521871531666832147686738852470354884137499129325610327665713535075141017691470629183451382063427008209157941914632465692202428122799720861757196369908891129044429484410040970237244386876873338205883129892942728293454365720398861855337182296414321901643100860537483893594681723505205434611034417310432992452762051452845559844280745366555198178810737910338433564850369091314040751655949439255182187419290781878330729084881878562046317472856117133291919940923350029209530606477427742841791631486147972915523193556705449822072513153106443527242291240899406872764989034900558138714330109999677307441747239490911336863764386095727547866702141535457792016581684342031244303211762185954767212141218951869195646963331715562415501165828538628963050981315865953684151796260694922671738792940154980573654665494872989164934589241086547696837807251088334672802581145558196120688785971242953646930505084870016591415061331248015629895746263098960982982644395131753687913149230713913283824109511667207511861690657791391877951840862485162374801873986907489923135008954081540789489641041210131494338361450649175559076891006468849018149539835226614694762261786500149192458889912692751634459524411669603289784390090733975555587952310028769016021183879176926950160937445512270086654263723113150948842895911092668618709403844982117132877705746357514105291804139923485482504944118717677813084952901206778916159293141158055510266712451686458984701596798579283388821055579773174008051698016182572184545017252475947040056831951645347985760895694298847907207827135163017372509134382332423629736968578148652920112867262237429195144139446495154163479155649833112046030163091864286513155546226905141677227058493516697888688680884228704684592764283936835483738133637859104550860809423443754195018580623389288142980438659376417068423744382316204146489707266642631401643229620375835640277640019457090421067028974115921906629151996175031605597269630344218977884121974625172020398455445704104017604638499376615399884188595257289628663054028704421058372283241070118154811526914179277403127864011749330344948298819089905295079301431761978378805591823390712676617209187799162522630910407037633290139173456231461636170246235520508492568207919741540363760746978571932068716660035806760748741059048295574172044827488257407714611387895416501451283217692781453951695703404325030876768874021071665284207273098517779537564883720679760960322721765074697437711760218658850758375244624898863262140246348787128120478499841431084754538235801083624364642568441632944442599785905369393017405427116872172453971351012936020218980388625195562685855027266654111108715665278305909540282804428959244765003374211794431634612846628825824731412647805475254356869291529343438533933426332507825661032746282722559533639737288648100371612697650555600798417874649269681359722056422223824259423264054840936771695705521665786962346478384973337822433721149776579858262651038473662557296588416804794901361834277414713806596452462154860568479887216752995751753937895918784969738122327300600982898832997085316426830396497813407881966828712440352156278351726468061587626542273100788101486765221649501622831160815542943833850538632145756088114469817870852749775134672928953212557132928824972785419121211093842926744248783639372956115935980709646712011391843482145219596948209086038963140359890043940102772462305913525650820518899499842671957761428065354269446585985090143312333422974757892880135117726820539507443897363878385261197375089645904579738688345586437086874247767750739871103116597609742450446974114541362628698075423232857220578893394253365644589825121400886608965862676277520485133076903561791897506218799643408541089384040363393871101179819374435641638964786319212238620447181463093000070452400505449359930038029443424979122289295678860858787081509444227377104011856024866377657416075545165060180605205682210454332327953490130179080941413831439171730536453213136348730809838097333240893044396263641530304043708352759501967405331287625216773035106569796011311388973842253875869342075208023230721574713227266486507782278155710403698642145055565599385072834323113387363697489660573279527815533615439196110971119280620244304870366835554541504530079498654417108699109900557669626840607255135206911234403971838843666018883704512323611376439723254140496345346328380786980286537462422894055327828321056145736522022314639778392310973312446190340946943173101430327740010766964145185465768421917530919466467160860720866761290769133858880318806150647463200288011027854420453820651083764897683528884890967802482190920591985747908451158200895691022143323606228926912817146982711497441777644378831200725283787233110084155778967927177754704190560955388957605026051838826303119164647279208154517389190673059663769561101286031483588628559478656509380179203847324819343396336482877879417568637922220938193795307366814293613894762870456438210867198474105995900085849993973883062352651001920759694903873980996552734385893819675085629461758993661874944191160808134993348281822646709833797040335640040153276900855409762448480567225596646770163317203639025742895944386937877899974680303639345484158041919300091141182549330621081910900043901361094678293813413239180328362229758075273006321194133933285415000110430623194286522341424380560740136527128168978256068407338349303984885529040995245450954928429952510404720482974403728559563472797327758686518324582198135876875754111620520865362198948269602096508843945871564121411048649556483109253614671636729113519628158082922815804075681083451755140463679442674894088393323403254827743515936754290888731109600866054147373922670290763746809700557965939668320945733630181122296364561237292400183513616773772046989262555157404157581783739691565748847468473009331892961477864724156103057388002222378025983335040339694844091969794434024193541066215971394360426856653251577638000999195645242686993588633593264493379526943485221059190461285501233290752233515532904756344088452117080472936483725118540788447383500271968635438385530131330124545995555802748296312398886451572365691779949109263332891691402565582425146875363000774742477657675181809091652654160616605675301393061467252995124637444506665320047369703796610128952596723727854683481573020680573340369905564465064802250209365611999011800481807587593943467976838552492981271338123695184721627237641593081812095941835893909196106501214854887113777839538891581492549732573960563045768685748802889833477457213284373362763130900519242880608966610440501100542777510286370970166827162785341751444000318009812197926381736737767196591975897314125469285881596911029510451110582359867192582260041441855764982170123224838848062501637265067690985779010178925199275896837426536202070798766853734283377034160423875717644810945462841089384769799246864179421036350122066934887909836668939648402586519625093642074615166036796269345865711046817494022161774444132704373104151992887706974123192919033694277472178750266326943384140475286797453292191204774494784357409911456015369910641925496971431190084135429177923029049437105516034481726482225453654428093286341543281588254462590848721008863167476246734401203933808470976404363464448036095649212942026862137799321472104607920661116293500001776294949208942236140162761118905408011548695936281645086519006154422677687357204823214103699814196077230590282355590907579481208268919479005473995410495874360847859141165609527348686898968167569221787716244604002283875953938211989825982634174472466001442335611625533596870557451895440780770132490734477418382017867738985394462141865280499961937680623167840087979445396985652903289414508072174352709248839728369084675128464303087252765571618009102153649177213551100789683664557213619335172671727752073150421535692809059484664000032921139979088221194098345507488849700590206361132910027822308875074312591954681238301310020117281651494153764435107733258163280255618650278648833893416429644469365697642471111436955599307946957514766475422848246712522172350809261042023639821327142201085331877507482662335246443092208685880625245077104352158806054093854760224259344592832195222854474090442080874747840545020516078655173483216574195840322293487469350059280141833149120221096878419695197718104883693451627818464396797736494671028830719120988589689547481877057512195043649711877431065349639258517003399075576820237043554063658058975180108595718089323002562640710021379557943092705277302267299807096624534657452421876042646531803956203696916350869965246021985968297413125263760791900127353810034118990486571433953259738263144280728488860692008291131087621894747538654619711110443266539637291456129985284888301884060128792942711505974741236965078889469411852823276000839215715857759666838645945127759720358174195023357056862073385028067935416561723758436075920390538494672971905711651909367997545868476872641221120099634665954661098848228971392689098330406638085545938598514022119562188400489326486960174164574495184072392972288039832067581860228705170101424690491557009699031912452934275075691344125337991499189962745927725477254305428871376521430086753839300986679609580074062716662126141328597291485995653968533304310111580429259980497150098649166455176760060269968702874115520136404873694269569293406132942468713594846875176646624720130861580868437289169455995600650660711086704004185966136369744788417850409424160523566330371293308486592530304540191132078389137159706232532217559855926220690116681129564506100104996875999693914353072508931851883711396964216604852075874735555883122708570100806108449480119161183182003012271114296053170072273848804018370575774139005409457461711897787065499203853860498609500921331847284793211517245405302406503531893621208396756903852094014552694052520261122184033378180338225475665264951456083256210034734142234394965913305488411834341728164549185419449655051820877084551001862447481340780215161799759033163476663487505690780584896096046632276415118157688281876602287061136987090166341460632105243529100326428229932905307393516937798494476910197810338790117356668343514571116543456192918372188607483719029552636811054229527298353379195153482896916628920144498418002690654485708197270003007556422511238040822374766394271997842220956484732078871653192178557892573440344821249467090993647381020095977503690134862145198981049644207448841623791067365336209871691786302198719947200934721791465723750532646017601306169692511895268095691736798389034503598544426499486387958900523406266917701757434500367568039091415951874292602320353248808911409657810407307927285137892776195889781208730380765332200040416837632880761069678988724356845787177386608397886207842477467916969752245877144532674289523247945417224625943010565520394200722403858792924630244441530278568775083206627866085854059174555930414724889412470276181770800723986416558685775626824672541692507851144696169550624583007728178220150223624145555801845483939984212981486552532866482759937156103108906534939934766959655412479413848148653046414472441288048148931955600762914688531852923969442593254201959687401430539506835411488346218321826300286291811817098906447813098886192831231534779606294935317250913250229841318714830781881126306362404792175603178510062996433438460844478764007077564183187746448513824496571998175052268004890084760701022422989504591086056642363508483191057408796735556136488222396075263395981634918874989455110333095572376095750324348497485639740195317710888402279128634182620778540301900266637645529606212284499924592131556160286604628329886051412665792819449422965225424467966821727392206972889842643330753865575195608966981313752716990986364360466359308454117109944740059893252831541483735690357603145493056326485254159773801260890942661013907850547732803982245832713028659510531575644998936407824303445839343342970789711242197075630322670329593989859295098518195516029235058984873305997940459960866834724250802543172498172497388910471550707154328548819937697565096928797394839893194015173887396680646240604835635646440970319787874386278128310653128466304269114249183096967746034384630555988296865721215383368067141194412975860334970434701546437131729937290634542124926340283868013438623790002403306118557775877156264451724235604429282588047452651268573916131753699871373985399613345967701694449800631179186366883971498300525045089708481588847917794695113200199676124844504127215336532943941631835915260719554393136094878924049656660162581642599322737783124627060110065552277419908839447606886763240704341032885287522665297125333971345784616064941528908614334515509675159095456849010204240417883125761678608965392553032588054171118542646598549429779867998486895444472997209474428217035766793077241475297590995513877077896950490776403997849718427053819535810803181797787983554068535482102979345890214397447479929789815474325130458888295160457305641167852252319837160205213590390758532865209946051883552793760375005704246824158348621882037062244072843708337265608273555595374043486026188145862884743237547458447847602262421515513724420892400280127460691176866066559850322005727378662457504462861588315028948187197236296214344332226993124331674641177073393047854765380025836100899039626993512222424085780325601756095124199244478490436379493750886292270304328571613562066062944431036516833074563355982988065288255184391341232136757358905087084240370153070274771890211845906187393324987567020394924857025453217059139942710362056549563054939274467512531078539623111917167282393372168237113560705375629949465624487405088978339643001264714094518399871735198080826080483435042011280361661804441328251755383707604221494627838120899250999914939515117223920450979357685977870163649118205799167517198984603679559274151165701721086997597493012791449651270603557928387592555642972328473560167819831176804669379254495189746076857213721005827529573469091306401786829943238718929962205781751737828633343231752186476638129077589579182960778705737513242686450386443383709328520976497271438609477772645974300568137768873940470410513411284920063584914519903683657140469075198493894073730129559899407740380797856337539513448210229516081945624548346815855186913702841829014831611615286929063323874762743143630573154153790690700779678675686058283067947909376513523975528243229664721143920059418576585615282683306985360781900946221480537094251178675129264767730934311957220755608686692910995882201057015498742316994902523552266236693540709763368188961625617580995660865424646665635555681381547695697595808876514071510577250966173689309401376613047809141277823128443045969709055857539211398103544325235418581606107560544970942700468083200453118887197320364752204817912444280813047072489151618492000044891653705705116864905674884991087957749738039067622095031001495344875775403496421393178053972492776200248556706405170206782193953483074412127721516852666218236333806552550049824934059984741844108217582145309099281964037909381000105157951002341938255096917872343406479631480634672005910858179181928630660098861147845974648219428709512332097491076121052384955118515038572663253872643649336890938113104763432182924969076818044488080578199947267335175491943693757946751194194324146870715003590666977989569942560909078425314080374067507999867269709283116898270083844421569631455453263960388265946312557786086532506536489361490790443411393138700298172879014271920613296475324020998791292092342050166085552578938511716636262391743441854505424508371321452137674817560419256890496920079709559509296443440051432526040326526062797436886366033724881338800337199475227252714520468611482459571661484068100284114483669832345154837259957318775117218606113801744727368190889390139383966934936659932562431876835898243514716555787470038154376891688851230481033582087120634005288329501039473072413466687100327038041811957195973405349634611554132416018306853330618086583779415979239954397391069788059925546962666170995341011585199908007283556320503671071478433255905303926373838584835664531765172892948575082738361489877947005882451815740538193839818895623201396369897672773335006860476785375511912464686009599323267026301167858820669938856505156056833806073034762283943949553401122000162413927726293919186064262351709566086171071867350184901038879576867854886704466246358768994065771369469262875646578083751211634648466006758554989578790311735760275803775282847715256456493369106239618156668539784829049701805644135377458969093786798359891364654825086968271325309075943962557973258749149939087055221970032482001702734958842061950476941580028363531145718004925802986742063349674822433939214189335267974085213321443056596444274948177076941614079100275387971391752459018310582707455660337198937329303098658183684806101899387413003800399420354413023828108897288597705867741281457948513079569585718914259025665383141646417750147004308922058283854029599914470093478124549793989355317387155534789515244883783308366593647859497356979815765751679344504487543249259283234947498623579255783194442997376496822724983839749237954667686361444685089414259538122094676388838788292756214462459278989675076925363492842997304528037206709639271227317373382876518370067000814647530752994985135345002109781452969103762306421273315364880616730651077559800803925205549038724914946717340819201025623705755599895819356086362363106924179639514815730458351857921705342470108482896782351901629824957723621172674208606467511215935108472373165285853198379517402605195566638842912691623476425524292134683952405599047777569077495231087777006153847630001592567765645416011772802235212471821269100706416269430182765627204967885257397473312046692316758888921627939305791747119336203837431092150497226723447776162748652275099275413639302426059174170662289874317653513918549587234879967110189436997770491043558563598222487742217288832111273882956235737250919780826755771170708674345390917780264479123039847041912807964197978223782713889810980011885288642422527023328155822342577452145239798658866691244105390129774958350939986181162034863808818203291186805017575692624325733384543650571948921218113850969687787401006074365965707305628666621400457187029251193389326791314489781885650644830657583992259481432797242579533979080422689682385838620626232166748565189716345533265822475041670236193936868069235545637893390673262403914726375372103880468572921180704555442446678316787226115409912610607411014642405607163009424162872149423200915001505574151259967550021061434040227722178054489860868313016547407618089296272231576349323365539997952936133728191584271078993640525059154286621395304057510021202768482140379327231201418440973244941667084135027027679767583970109046200604105809195509186387412096590588540547035620042344659399399845253245143055204921578820733625255765706151370910287405572605666082477834827080871794716896404338059588844766561154787430948919823417913966452406701128742075186748222814433093060626839504757327107544255133249933067819284021974162257926758606916254227913618566367807608870092632369505349086824720043120842893494031254515065053588358695691431473995047399700359737925626452410192427675017702138192834858453297997707432607283379814507054503599098406309058096101020404095022956550876186472408254818252868826476813069035370339969575590396031551806176010663460199850801261084337227791767205180960405920175868097671083507705938375435903211526848157840752237477753418700587606844919494649829199403891148604228078983399270776930808352739685131324613921645783194687987984095774924759204143063796698447070604474805201257866018697400547511962712380162557508735042463964261521612443835321454600677827780515544534462940463911091509138223653302975438031527519127557664369964634004702544224894301891691700552488026651957031699445341049144415386369569860310929273405611451405141929889726123321562666973939739023739763805093306281343170985015004252413438064592892323721683519312927934831251294815475165836254823825506527708876294464926600655535547784239837070040002030128146117717388043858308101817464401059246310891442689735593657176273678877658624536651813890672427225070583718194045086657546037029054925746018521059050672261398210400026045679600726422479038824681353824592039094658255550554324615379590646537251761009850847650578751611963484990688392927130232628567683340853873841429302831458327712594119677937890705664401911146437097127319510521098081535643052781731789279862597638740561260711950195567248543899529530237826105213980133379028974887803477983428789803411994325477606385275792561193369066144349833018368836220784872891319853736904883615285512601584691261894098975924607794208374180877537680617230562570685268277991197095175148715946917325416184575972507192336700963601653549261889567504227355844096580863329589574097146099423433004587614354557315204171826654241887387560115805471911805509542890023704197857088938092536195329063611265677706082026507879925160804289613634962163397294106734964035428860513164719910193393645358902727760978971179214573881112334236383761661629094855903941539851396453138156649122294793950397217447540842309523265502797238120946507973429401764190827426501566992738334506290752973268178637841527805675805444664541884752603296284646818092658258495247038887173824737351752561044424715598699137458609817114856560810199405954699714288031040043230120127650836299419803299267758721659538992280004549994086338545026092420153406576366979561468033855870967221760775509724195850967608211936383655492796573149930144904861699731566732364477834521476742787388992559908770203545719674538524148444986304953970253125014282980220867085360509468728912344041223722328189548903718521337808338549872878088084410771246399568528891833288233043619437487334954483788991247400930265716133383185338213625544102414946958292056947231497487177830157701707575150311843455725074285406638384607690257174014681607297657881256331101052099224464641884519482884907182124852427453586212585926378377627634931358206736736947580687997636209077099687746526544989213559937275201652386083266462973937383641241173878494302288390134720894184252176713031184337558858193904399140900078402288500593532254975524893706598856679489343672887868998281882876540720165388388089897649896235247285755653583406116920563086129112010584637795568537691667725438765148091623845530297658837343100147373195455515826486460644871703929560913213748875392082512402138537685010038820067045861433585090625652064115986035620422135406360293085109072645316031293976556746955213406800725763937611751173172067865599657293802158665420759625461811992046270598912366666474994283844592289325016046359528181794013818861040171285166507939040068065339957600409721146550631133022530373904250300195354085979968220582934738423511943766135338837291028694926170407782028395393686861974571362463757413359125542641266860812045005708727805664544286352732317090243820292857182197424187124576492966882037910186051797599755719114617003963848826051985201762733533968521543810827351525693364981561800877091204982881144946345330252943617457178017770703319032289838383169059576964823614663735285418080816067415640744630757179314509784345438216939431401435299229782753432559848057818224354260911409801956396952314372484716460520752764882256893532429249680945420015481239250337996201937144996790993913381517372222916608596510188017533904730822736236553495828025938553464422027878201084159411487180400776615117574284655980263380439855363236131368469977732163523375927439581507883294190269221802065353078111639186526150291943775639433654550778797542338773796389291807081403788546666686678664814772595934340693300154079217177736832474545766551881104569756169471052979352096351894088445630359264588637409058607622107520934409142932679374762533307959051676235714426846663013005645583623350671066683683052339749117704446592786551827250790627654268298092033503636043103559054981718500452352592130508999655006121885607004277199874353994781086247027808966172498999206102400889726780530181318929572966397386829276748521305798571064479956215494050914271493332314705596287652797981126167095725585389447993558760733583701034010612611868786596216948965358370234283509713071518840741290885166700762878579548648867617076616839892800694484135281906864148093666319225286636381800146652549054508787292083262522808222060630079867585941351753866069859508045516060564662375691015048708008031562281187104387948169925793439519677041449810141018971192897364862177876916048004515619206530168708241329271557616652333695061698500024739267357148967157449235433815570165795373531159981270018104839588516009580759740930384847988812675002148683750640233528365881932776045600121592113047228356689228199654484084952481851947808841172616850546406094360299322319959406727001324121361034558329120250304245873607612787251928186886784972196525078212760806873877599528869980474494146457497123854744143547553190455895268490103779514741403069360165393914800953219471276692354359015953311843314522825277185707296348652046968952875623566581408914436912800093699121591168899018340721901739791118017972671882103380681754413093881605352580222788687541784294920388341387058867986304376036753908811485744509499852343123265714397130271210385539983172866843607884501596180259295265998503409420149769642388000525846144543979812697849469919070808966024907329707318625148948319317646760243322481281789251210157792880579526169670920810542838368354524620317933271640427277087526690399810011867376593654629737954520802365710712191994683307713399069517085447878000144381051833459212258981037724091466489446569315350686609547786201141514922786970280512749468132602401675584345390774447602450164148871590973858770010034718326622754216398726257860849040490020503198764820107512830824082611146742608565819457565319293403780554075887404830659706254525260985787537599296079742382618253625753154701014996967566223879985489512348445617213488745442852174593698912986966302545957294492141870014805243360601950506150237306743548845446289980577678978362992753054482528611885396175216158717045898018442650650762654071233565502688005012742230646368094829939472585616982554661249319134587181890017489349346291354482374178224372750397516484770558840928175895127784506027015566749350110018979352534380395141452083030259646548155045614862007215648390214092566972746234460106385509478028230936326807761852040441038061771143786806069899973698323533063648383638385071251026849236093898877273479791257955380594652320384811537549448277575730687583054281191868955649730334094975894248886031210184677626432467815590865631848091555389331169855129841741601834512924884709263307708513161137526666587445279082456093527325113199223320314536055520979908482153249664455722440211806964491186346499301979995204817436026999800465151898175853877140689958985347838767826345098948197251420458480091704281377689313037957905451676908987886981791879168064569996632012300130025217612232290245844129478511882955909172176459559135754562418388124286813958827296335720028599125311393397415978953339908935850296923047908498233544563366278940453855673971541426500271786533979496375831668853506380853514233953132780585283487336666364454230794360499426854103929401062276304460317095582025690999184370841446591052824984533066505778638922900576080327112173074697095373363235679706345470361344760060799249671089496150661633348434662860898598726771972654800379489741345491327771075661797577064539957845775631196313348072805465120793652970574052363799283070433471881539990625110334174659696857085677229632154736175836286268511755911235416238494036586898909706467668178064778322568409089565708296280132101411732416777208844529008138262628056340275866390798101423415624405967262986992741725606540446937938700911384979828078219378633972753973554505032663744927385943158888378589321536571932387175560892965380887867846993256234252342794733934237091528450030190502491461601191243762751825431277579229277564999853845111232842085480697002852605358423199469525640658968601039027133634648428027561853465801026134417541579271650828996440489496510805240939347024589068807025129890623932994956170577956288970054860526119146538600436015468872556993914277879358232602998255244397541472577717591668757258689385367729881579541158038422635743443158125901760333515593674213284459698055030560707226218336244822521618735401599684336893618358844731323066389498659983810509879071994649785090256956481359829053622871799415928315803950940993693209283967591306756966857313905077090401309630285371270709399437914103309676623779340837924787337490232841241288174250935093094688177913267936071055392582208562625228995772105973708193660105207030331490861998092885251347938446999360305635642995560508001917877870717735867030366175498328222467378521710533541554803570989997979461889653162475298555051790820121804305893770121794235630090861360731504716990488045444532748789619259170553884037397422394046037288681549214492695672985398256774535890997108223621637690283598988828896529737908704646300782102196742876736049434102314228526757741006469507728642677209266340218430660022123528244159379894682312837239351394470939707733662201177509413318878713255988332323463585383797012980314135443765937192324628240340604792324349096669126751903231005591485297598557172603298877044578035533294794489103168736503167880460690311567186523703955119281300945173860753026928501436910786547186135755818012253307443787237161146325552002184137670437261476490663064023781617591436170579040719404386313523926199987703447485225554658173329723819035417377630032373937833861661223977080144002529422987497148666335591972745211779803982891470492903064040508615301385348486131066452438329964617545169578675162406696948133045025087300600188226781315255715865349544148273453888708191014695716862493378049884047164550527777763455310025107435991445017237477734526326042913056136284158611073857155523469812099099990634228741420252494171864299903192480995136999701752738210598719849406319860808061731058931438567869414414706343797935992745175270941397519301364097779431908470507851471265582528962626457878786202382592659421484831037134742552644998384998194265005589420924000989000502796855188615730729072587845641273818982569837168024436492460319978198644916272839058647790256192398235779593027682230121885677099401780121429264348168482548390379632398523230081495544125634249475452832548002014568970977425238444340285923171539436885588784288705054097732997718664892084994704785976512111725429079551340074701973974638383662226486627225625475996001772704240615950271027277586722830228733584436782432046728310304602154406113836294076618717471376222219925485855123060543974732899921790872179835047272141422264447459994587341893239310421746892437480410041880012945421110246838932852666235620414261756921175357652931568692498233564160213234706034637334874310534894889630057769336306264554203343638321951754237706871097557230146842751633579435093418174832377646072412725987276388825395104102721268986767373917153521532418222080758693523716888624333140606568606776897932935203186179285235089434509042104234414527514802946695658440675850388714801092420440945886721688235599956805336505137396398659406167513185401219121694992985086045422670232888496886716591701533885806858245744895516689415513292335573060546724961326979282808772542282599138196482774152623535185279338975949884832601415174689334887221132176536852623741497341247772990981583068494242461380908393425610191327515758784068732362464131521459891578908952855534367661892859941841627376467899496515156453688611853791740981913610565315155767430250639203998760908580115125481954281728326775724426273520591089743723171322409714147738851975087761220561774532255466703611594068991113842267038632497135718064733583220649145166309027064319000557656282112692141548969256272894373096019944130714279920736419194008075552789774137677770000403599692574194715143599942589984805870453837757835487717933427346991803681745156995798672887952141651689745210439147352623051031865962398105112944750509328987497082520030942745739621357412839684401038527405506012052179054252092364881466305374067438705818274910752118052391313420780784746906477287523460615385198189279512217236195722667104276742313184919523114821943506401067417755198316647569760113034580153343035699103375250120280862482548373345032446452980477719571546671476762123865973419468414964559942714773588327858534572004991173575172992394831064930553060060848739739893733960832441440353927441105166674465996402567194219483824738648919929271587888245042687471085302359691713252014240319315075941560006816555793821521769270735521347010859189462519925953253369805910688499279606986730996023930444071675681461276035117899340271807479918090144055077492651114021168392504345174894124338697072679360900384298505537481014804632110981745209702085134365886615809018774629363353298561472311419316203081395647394348568886182659610679875137140495381353756383566571398559329879856513484120150958573521640603419772470432313876514907336783044947218917647973564154141621852734162565420139573847475747795339302203090295329591345788627881199345067631784083818590261452444028897610405809146011425542680812544415076720986662578828029147904661587584222235912494567303476612560658603501960349593615992279949507432692088095814048089616400203664017801171420815353233895416028424305824856192575148858484349289621099132612520251688815892918586793087082929231606613444050563818729791655191023628146455173424986289884690020667790067920513932583089569305494780499339116335680126758974106149480394610259302319955819034843508492133751101620585728359196939981429565938436681454831230258781260085885579265416184384274532782672722134051518173749619045711493543749826785788659865061944649987857070282182484043249890981968245006645519195895463196561400887244554919767629004786626913993109083746511338899566845846917628222289188780440955857310161870409853483780652611897212168858937877433923601362586511566201049788092743917604441376383045322736896265656842353182002526917057954468203706860955805328615312409275801408023484141649490765498822156697755370446134502007880656970628987501419388913766722138757908329829191152212526876527399491209607611653346254468258443099300670771150959519312905227085336382954967977186706525101929015949105766381328255971388032205812876344069936066016214271750100422397149006193515591298062876396361911140634657023393588210816208575440163622662413726975864670083842996159324333448922049061213613329760727082046710902644035800927909335515029252833692530960031834688575497878180669325618795899785084890179866590304021479444597507017573694868755766815246837346101807690232694109894193943226957014647786788874655627113160032481261137164886951277289072542405233763049465142277713635749948750665953881840456230989011892552064924249335460305463891869264674078356402685595192897392801932051456953464140340908691102171696769836861489924733096065402562877948189138080554494628608562046739124709736377530534123975766789567454496625503674890055485616149099690923931286304617351078360816983750701555236592314623398272183216679581715120159036992781960702447148801550388039532261559424892897699231274491503432434217147463242539287839204337760405711014904238591849558454834308568404683124193782053463117168201759196900696663828790139373633445717036041533568677567955754764231085153656301725861941158409198188666298755394069524937151075052987450113472299484893702863098498600936272742315399258136531443129003814879022993352581623615764822311385492650802521409937957363724028389673411270850952116193848610035014678593981194971210564773313831964688391376630030202870587954691428601308934311605284578965391550078860390400291687255014703461704679882574555104241659499338247161436075288549099251584561498060519243366566867965988346824811371697330574920879920177153081528749992865011310865726119306006206935838913520616607814816806553350139297826595221083920574744496146773157654272842821220677433251941221702850167620862576332771650064113378233628198832813304048697235372654308616021951507983967568191172837195577263678757047672440786761548740427758994545520277743380902104003917838114525145574464071824089444644945276998929011556252013750439572224693711043173224820669671286289414067622226220914190064905927323155258910822051811507045251811446252745249694614984847564250664785524374293410177115240481623475149385613276740369138889456507229727767005550779354576449642650816678357645501767210529286463201641317470806494272893635759533533320902926819362282190818543207289229874390539397760224719728930115563514408398310157977312691874442508475901803902269699929149402578221745693397449538131737927204069855845411017075839147416344058615335891119607642156992603518750799872619131732515353085096309747522392894085796646078473020536785462704854584090609683726322049453941353831593211505569494523168952287816117723294544341271315852195512366935345625510631685812648312746800420210291109252442458606422362849730430436548069531627576348551709850808037387880142767760843395908180844225623079993886335397099987234861762107122532050264242200871018112612496574817096853995233799046731232899434315982772052932678094296906206339113557403603102239855237400689197974302444850174117334352420558975993420896058872521377032914085410084970510561967864510718547429470612706371845278465071534865413016535642686501135266678941451145170540210168753962263688001993462849907492817145287369322954242311055238333092396059576195743025476798038966301156727745317415792726560442600949753533763167041428428026178629451001743068738589065959306932530052733202286004851162345735548177812589483203200559788450925618987671710759796325475221516913466992096989421197529134298053771735124510515169686612229949830272503786898520335828073819222968125817566052940678439886302127174919383939895912421039751640598759673563591324716386869379469708036129252856185258643201634943693275250402436925626286630578237939160521232884843614224490360261219209688067184697311981488609656139859552844937080613281746517086315443129799032137017719625484970448182379025537633490454614480990618642478688747192753303390100386991922323304452219616634449848482069285116586269995373889631807620013658022161378587259094039921448608055102528616155258208586357838315345984274435846497881473701821562159472548136556797783727471447168867390941645255781485343022445120957029803145607593562504302803611552569980396708308078066137236355365655694576014109804677599155796800747229583338807020064185482592640697220210212576037114243269471676138935042214142266656117518913566814314742223757426286125755994370555473399569143393365973487009179654957191947252694890589159677233864332353630577574845217029512675928216532213457529611759982226515023505572868897686699021716244937710710962138127724827221165572307328635973959109389219100362670035075905063740530747607800330715250316537964626198681545999447172897181127070341271906440955109553190490383899660936340820567202405069253516569526120676737239329284317308318634637897761790451638527711068144302031282268160479134215360579651166529535647779916222647573001825078768879379626638900671223801637372580059510245982327901354612877105060240669208775749911750254254056882672634334633982818124262820590944274516437013841091726688606701611557903504588354705804177496805733197191570547038103143705083819299324644471711360371481297820034259486406490448883183553967580596468738934354565787656613824258963036490297157159233544724097312707544324825307584324630426716120131595940472577525903551385758679422213303023740186363774789978102172855117710612376438083507980958642703633819887606049973894220063192755682853456192042196500947768433198516414454569807534786770361544990008890020224370735874891025401249174306458303845007830549321355567030045899720878522352501266718816917046654072383625632821024707599220412982436921227119600129123016322570009277799935867292370223959741943238607862935586495160651014757160896503474778504510413530979841852381432513035361839425217809630475253385113141906943674484043208667844345754586094220022764848220102579020644622410227438541397802000364800373348111272251981660010720361789212720495285120542445966509687881418635557872529608712086225742410090890624621134797977607828828051502031714028601828393203804454222251252787757967230910856022225718158815204681367257026230064309200436903012649602134435861799998815970962562629509038248434488499977783140864040572533757353383658871649810724389848792082569763515188663398206825590487719181769602774770561944395228109314178899488203760580798886975175686360699036154732346180395893807895497984029326974214359569195922532390788994729431932161784442440179099357369559254445808072181964607228135389495934847353787168204445845489296379368624397508441600802719490998620801019878380449230714072692433774580328359296769903568149341573946044301037675565544745025320041879575334448245076343506253358139049218468780969429651516342956034586383929899450230130541486487630784305985253294664096715343311826181053256890873326813593444962034649202506406262054689923900694690508061684931531351953810018516752572251833800455725532406265457990392122812927531621331071672119490023969100257287278238090161782011798398238424732318141738620742909293420267506607475355441983954612397492881659231947246616019539909011160509940749850484316653774762873366997504798376171213674466763217820257451577774136920851920613025695258689310597055039323691838414722895400826423122641387560686154685047772638896278092419728188177209900631161778299546743971130891403916603478420524166966785172169858393803500834193313431455227191116509628403809168663857460729748520178230713222467128646621750836586609655206820265832600862618158314315091378938692764826176554574610569652186218786507125396219402143153882582904894865172050771594138730760272655617365789067859577909670211773329976852318212906509397659219427610437219204084593919213575075617227284451449950087310325297156547967616927647732061024736810004186201293062181121340177746508108369274695345208296554834826439818514305843959369378211459852562231409050823015685769097372187877289680385732537082420447744146833890508424386993894887021046620733007229127423648981180278863701008952550343758739551824383201897693208114615909697155399202559103026243837129453806080097985401681642640334646051943054378643404054814164882926204364704057089573193048426474132240767378420572992124835313052534584951564547005310563769790604809618097032103186269440068850882097124462251825523201116683068247492454835363428606105754809661080646673384737899870048268541848345981065878425270873005502932702790709471573839831302702955015729091504199980057521029129633162335739928985271650390486914878682140710734858440511132139335628305943157467796403862424386417579789572186578829108159012856756899779304830915522837433119593763355745743471889481910554790832686188374903822260247784977032570989063455853766458759987840594668990065808158040362999715430958539904795977478169783347535796680791333304996180439972006528586430057171335882177033090395484683610069078478446399821235703026669622440639792907510758311663598759102600120202934165882950505417587718169236386105816160635340365697860436375865333446814351941940382384088582771137904970345261091722413600960729456037208707821236288815713729651856751920966406080225205083191158653554444809435959329294456134684605204008689963560218636655479683329476982559387739299022813919160962502608384666452689215401471219121962440296487124802573914753493461480617399263807617435561752393251245522222940471710137676194863136757167812972668027635774473269996137512880988613919277652307728138378526587357044385846653619536151687562893303432450412316352949551760005636069748121202826608505775780527164469131352608612602017842121109485887100961248620808690426394640756287058862186017336426933351700685327833670524738261897317200204531331456035914566422817103007093382095794933798164037718529200563587260058786684183125253167259257013651590717438983673762827629104930055436093933442988854521101075431445414624028584755531968765377229026813888498855751053514417267523286230551862854608398042920819433724683811294670334540552887705777948341200665821373310018194953733347546416636327977111259326846610967694468134239757175236948143809671742848847628220320800402289356012084685899627119784325787272375920091080998297741998602030692063113624769724590272279583597413230998410228452464963690190730653714183931069659506971704145656715478642384731707029658435418068146884942290709986552640518787595314499560583189433211667061714392969586196579370312143570579125368494961589489058817750883302934731922722436432251311603199794777851075586815789920988053127634337427306717665447378304811694717069929015664863215022761960395175957933998965226773136841132469696177717281091801622669372710093310803220574086244355077114496798304485625185415542593298589679716488512679486708929945847180822017360847634994434351089549113980559303314334747636695030937996923140192015849466786229517005845918806385374466189169788539595499466019457859500683136377300248399933319712198148036786064153170400904670951176380470069480034110473657380081041214184289909346516865193467214062974538501171907864634914644197437005476108789675280987397486496092580015997636470190742063488947725553237311385350851904651463365721066407481335495727541291251221550703252895520045427027464026716740682300459364210179079663060536962943110168118536796079292874573864716075696120638695138882551052776523887181739104696741808831274009604756235345640974846030058451996974265581503802917501846609853248587818026118735650663805824287843387078111154069500244118732963824953857288844176554429347721783299826525237607747742161473870034123998391171013813562694335694641113682370289120085331402801914905256169630735756372772027454945776673779942665905921211170957473448783434563678942649708386247097376594403489627625496273155650606311112524623724866144621352171283299097752458981532670721328174559567810246523132752673291142047965735832973054476736527384420163053662483954962892045674331198586335363606835193750919588632818527329287033262993419579109399935278523364317157309673106517588456511702524420952955399640917436921819988275752570965734414419824380311328310803580377055684221190398506781756950836403130973892864156997289090891901174552001436559959410261215580291742089502310392032878445661338936844815798228160897281016038461724993528681441767137898631467316663567929400764345874414398889063821069632861218272461880637377790272464364917153228718062166792308647933417905674214315564618993599301670989822372741932723893387673529019928674408381430572362435006664304720310917076199099940728938756062060479662292827136895764665729451786254662324304640183996994701568575187095495374925444675987141657583076456443335914911314039767251949392666913132839596696800161531937757225040022064068783909724527793748319339841925075650655178863788103596441242393922569348512834028130568274118678864641465497348954292196952667253931399558029408329401516197230997109444495192461793180292323879727777743786533420315195239865791335615199773853228672525010592372789893121000165414954187734338412703824686420050617674471491708544704019582442529059616433987046540598753679146817880265037708476370300175223880078868484974670325474547144689616056930387875617254520089828963985666887556716659457451691492781228896607807753545444120756004080595731471488912269939425221067098668969431203842487846491515633125862500863251068635795948376608978042567280495429146818174998708684079933722263081657679356492191647516817032527304231179811116906482658427335883685003581280329016603166238635956698578097041589006727069642660334968370130765911901256892240747372508728615267261820484030609143080496698695962622375326190329971750410193177996087661420402648967224228665021315629908176434900372346736253417983043908769927176220800485540507703731309433799543988017124095102194640756377891974359741309480593636938481833411882420451984396871899850144313330401071095987399387703501427456543967115802162382195424881021200834655339674861083444524652350857025702536542583575060889724342186496881824136756754039510596104701094360927670830191107324494575562357487638101112342390426235139760495968498042335649706461933683311451725709609129179375990148854786068421102802941061204943441663156049484024668640956639974844729390984645973687028725552525968866717095947287825702058205456926598949085247906411447265689142434938587254563273346498702122620671077895026444968763421246801837334757867010175379695473419058085187815341228505663482604496107296386715556227331544780353995695060408328207076262232582950421455361956488401320488563045111731587680316440270877263336093244806736879117485452650774021771366893957888395965480749049724530914213827515441430181068695733406840123066383323757602657926945141578718429026365210806183830918488815227573037768897042304507951123654904351072169837244276857620765668510375007871021498545222474915236251205674982769228315851095698893932793222739092840199022145130842559520258245699095521050514337550622921871987629829721218697227392292930023384039276609680358839549745031100327668751906257441003720465878592762849314155969899601617794363503429534347724620632551780958040079890595849664141117443345713927390826392498735919482696146256119019597413288002616989825262442756390323238384238384469990546875128173060808719677068095943217372544084226498648064062278221170926626697197162666790307402476828374519637832378380638603162007096997745050842209777320759812453902974268360356836665995896522633543920964975349221464204236005660667891954854224746593658842369495432482675385352307226859733046479971188734658442323020272701937115140877095263185331198595706006306792332547795975832179415515543701172803709024928782542680847443704444859103994906811791481753395503624768893177478913745085936356266873108936816456420088787829106154019840714201668196165440376381932879354335352069879751736628183087309959916489626793938375838175307137404771202053171675277270625054248792384360027234408953521275319102928789060432736685009923625493823271705801475467578372096853847407481853868267419645706916344425370050177928358798894091803208411632510719296308466904407508993773956382392916908458489156896416048181003426485032296504800639938163361631867827423844026527065179738175906845313127725699811998502755516164190492545797022612778387047909042485321790849803346238175043414966887161869830352022698954218716446160589362333847360338148643944570935137301935629446890833914810283415478088123123938653584378683613391444345898065621959731090006780193920486464737266353534198323714927298518872342453503953804366356417234043044645141981446889800070820711174986786696165597162524412108383767960505622514926788488304179821598577474832902967081512059157477860518065654218843474339959842431524758763455513249484071000118517784027544600860655329633078005802593667200095245641822644249810873704985793964240123932216166381163925632307420654641402334909769900083966712420592781296446864087201121538323316025025110406472879610946169208879340094980156751207267226071879885884245719771371016200143228272183174937690830177564440765952006244817437094530612773460961709590155761424632789740951445296905171142756242644166189751216357716771753056156771116054735823199828951383955891963702491009062922125070345341460530041122927641741991264212767916362459729677739778765123252363158247851198111345807119380590879695554469505326595014175080120302348859902646170826743626439290478680503413097514851027741497217460303493299241878502627754962990836281160878296688539739823419877982663576506939247580359694917037809981745928932785940201559040048960767231314179788736415770590932939123360190305874793210841455401899255427426809604512755604531671789699049557057155265199526000669984073726555630890457407381612449233217474724186950279743827763496060934594788780492135624949786716338405382540902310489067392041964919323730690584114315374672023632380213632706214343547287421998549934541047023993187703479339424655935061300420093798205094041412187846408681809641677902756648816604830816315228595053072201028289879729421269852103079182808685120083259956161247764581711269298498237557830745136096976585000929692364968338681178317945435636690848617348203202744592477378039563536996379508969787953039328565281580113059583222160777818121009538753227606182345480555704417733562153839554354080348808478264667137333991807106228826400146526267625736769649135198068843294815537833945134518809593728521541441449542578174978860728869955342517075227196403865466257649714559681597407836906922983485020506532054160815707275201423105498713402194664315556109277946876235345840201793648910799047486791647800085485422963381031408783077450494774360024786616909364737792719534043489304360724692271864161057179151992219773137226315341709402563451835496864415424393267564662189502800488287157857547048700294854746832223386919727598162367854573936737494047566060204514992499899274174920292116184001398756647506973552178748233306458645447133246573687686901317072252712493090660827412781349482711739871614409852870518123478450529923433768797788338848987254538471015690469012085002414807574664279642691031506979507884765828942298533865609710519076094944408147932864093678783355335500691097017292474148178087041098645356932693850303788147756708205896038746416605833874821319427479023526307862518067414415273746429914026695014987943967582264422511901430463341694105088250877458874463638919571888979029077446707790075538647766797332938230245501268759919326963828690927387802594909941777491752259358484750154936705533545334835928299487218997559808887158654147668159181939717308192189215062293331744619380893554189451921987526073682620954961906094170829261956361194935586217485020690250889742996766637860490244238970862195325260575820349376376950842478925754522160449154314820597137236880172584507804911367109062141227320281350498641218802292839752177465738996356238395449588176810715305551707584312367960517467813948190442689448721672594175288285420795185383815476299223286006050225498467552840720534371353253724624063259933417934119594892918656638748404421936803338004845225382113062842261873802571783180925453974534199055189478462750999208265647769743969783194353372831482534940643649116593733527632340835097328734188337848764676770436293683016552025095391746580049082509742559445248322095517953731209956352129582276077328359591372825698657328973691921079677804629390830177110294600750460834789613673619773160451989921902894049504711319931181052434285163377667813222802896046472615358264133219677037142369416909078371499944631512458304782722986762081681649714662763120766468794339205846175469697107035333903944976975634347541713832716408086610368416093720691548536742054093731712635455464879527010505309006682448113569269139492447791863590847313593678802059639991120647586489805397229156432435937321110845260564796666022848227364113919465238068809858027544930957248591798672044037534369224179205144598192997635606411497245000880334109974716218166041939066818222838494024527045968291070521655591154770906957702408727866472045722462443010717834191097319004396083521007609742679406696021739952367222020198697677635474281297196237047487962722422097771133948115356316137066238450435225388134025131060623915118217764397376418330389844926956314252174755388733445925074413470852992943579390463913150108503009534787490604173046869629888367818139908102845931926693009074654415012721029726859652899279158881199492429098597312353455459025213404462332702832447733411139146881329393302854381800940794980540276264092560489038925486093300784094125641779993469877146682153753625653575989564856304938856025854611515454408385855635470804293843670194126162168282883180987675178261514677911764409252430281920286160489645191961390729228649690154158166799887027008291928122427466593838267170594224259204072531650412157754807967941779976818854150467204978939157399833677445434297890376898995252255060697608616587380031744057779243830770999784752463246273287256625014990512613213874920297258653278546102297172854703394748620827431868515519745919585387239323282293137997006512761624457984003115744509999027311123694695018984405276184471292506422095824223244775924566648310595738834572942397163090853418221425139936285652312266221044386810599562870963044403826400583142304103822418910835230477003344610188056518846065040878617738580323329392218784525903709983145010134274235342296398331171257694554760145898983562395412407222017057710794793407791753652481166481192480934750745678082654204412704800141173644906783192672014576755500683768114653607765812026585640631250267755612844390084816416537328813144860363385616035841548839926973712965319443879592347445157257074723010727141541681782749196517193535125470846699269284697519563979960443260713957545256217750117862647584746205580073297989549751986237407567271126651984869638805016121051367572476303908635388514448099110181950259475508129708068617056854547353342193218652728092133422844243139728017063634951682910379358438612171051132512534264794563238198433104417455892055010803159061205316305036411337319214434731387618675264814984215289207257991220006157371904208601327023476193255846571393945203143723084807905222785260965216493160107434837739220108373537915539260974810653658509213178754066893849020209261895099121460060488882989908822850390574195187012465690302343450061446511634667713539357367557497944590449513273101742379890870931711270375097565516340361101001940832367837084278635719901769806551609328296170354274700745645550634187869388547256616191725260570809745792501828864375248727464745609486797270987725776117720730304218123557395322409133567486433748406632895154093015803402587153349995630354547290926110836853716231905117623391683361410690105740606923665589058720921854354235357021968482847482953667906985396622885460414197785084781223751042807906427146186471872544395009232048348125947439659715608322188173840261648595060946410535028784936169096480915221240244873354734801381871487151388350846192891965733397817179598310087690279858724838379958588377403352786260966195628727842169251674531198629443636298457105016395177350421271702317523400163867367625227413155963782206741512758536242205647437124811118243186107292433161203304809325919662718702997823358905336022281836800093898009565394343874170950210749690113823549984373237216668077571861971357013145622969817396830163145827785782315006733836951051393970269379857028865807243857693993079453762748339257488272088099677675134386259472897576628055920545589039381869534274580670331330632964558846065082087393648222464581672411827036523510320687450165027825213263874106243520371645435469715486170974535387497923175965361840395761607498467948980987925701519266219365320428740329112424323237639116760262282595637872299223505583965258539662728512585070059295774469482129303132960594709670163733017886352349808705406408086660444638219595998214114129169719844956407606560551461669119906371321599326893823753463453175210174819754713762865022554737682112050551045622797896896170973611445375292553651253506252140710336867783475861407788532652422623225440325162887464396490711585138602978647525306187869311317112148362356439544338324822626046116624765980153824764942814118139084660365977740410562563241278875421356904224464534497811371188844591849258863916842534158477948886805363929773861471911080998409097095771104074165132063914682442581605558907393159932657482083590569438668392660691058699236396388457000752573643455790900513354613416802759227924360790032911451695380007967471288438402305421585755324928569143210338375312098209022496324377143709892221386941901755322911900646507342987752430204836275133981572167336360708018661306278685041393680830075842387150696574583159386139568448985646454873464847456554472430478880131474963458905536145078404100915496563394055488447815353333663847257128362810098383109573497143602331969311238516206367982194271203699138416342980972929551863666902446895546879334840957639237851080402081626550667034178014182392721129977705712022877733165231629102296971557523794395515031083203687914224350924960353219688010118361988303594600463740932811086043258344690939898473281451182092268355199727939813881250579573211442133643065326026897270112364502680310723200445180250436458178418527389980124341425332847969047563970798819493567761124132060241523343670796519626231709472860235802165040765979480383222724667137310581752250145765764852339549767723698377656188576851223155690372374206354431452891869438493809000140730274946949457179533631285802682297639652857945853427853404885038250662891138583807900505585924246651205685442282854842408163314090359061543902418083081677390811789473637385887446379930803606973238387136037458983668603964019306092244068128920669413859246564362197550126213108557728784321710381284773919126673438111079771902661138552058202397754099442310339331563683511588919280550235241762419135963774975264897874321669304975292430048079393754898133954941536474708168802115641849186146215278209573309417598601534136737275345440202341692477295196454521072685473272597568267574773944748347878730343554929442743431714841794009544614363129408624412851515162849602898188928428899289272361966438340387288224458185848304482607822619074834455370325900659410718028049702587330296044661561713117164146113474066481551212030076672370165594780422917994507104636474294637455158368149270930389121878678461554836432259992290709506599003259112453286465437456260746277675563279171776783005668033204075994866373052444223193631788289637046615376546570025816545607516091457123889931670479602639966951425645790912198473275358315496350306759596673182459697672564770246610929171424800818364936719277877939477269511138545487730617181628161833141427879801919713000551668539209933094435063583565389810972033411241080072584894353445399548157151142117111318863096476558723181847098792010433907224688834879468455574537117812339762222141926817847845395239417699704214786408629775042364969196063342630288886115567807848259049733278195031414709482953616202502576558705926918531382590580558753402710890547493948957490508262957962385508840260171852977500931575355112952248311490109799436581489240721146024203125932927547459745174714252680035203579488953498847719150413247269367927978281306445235768739622122546165659735995835814222857802322833381677268445129419120984828196618360966014857824646088279996514097553582400282981989302701273217053221774794033161746510840235922839000401794776663908555951375335002589405381559644285550907053560526149087742680532478654432709477763445417248079455229541765233695786824187100000704394487899754671165202508632416624745251509895356832503407539385966493453682481717641623046047203887866790982460230496164319533037887045099416134748466361388661241652934498323688392559659251658646704826572643353567904267807367386975543381236057092452959806642889468261113195022139282455054800067155513338594296593115563173242605182637375635489648400041415916370935620997242094939787298798483655286077688865331347852613495229711928782034378085537757012454058377269467942125791774294747661014058315518174618467524313413017758147641012009379567938981590416873958589054494527989198605081969072458981444711642867412772924247454970019393888353806097179558722384073768402017265965791347406432852586757705600360816179389614014415442645802112457587322037908196200462503154869954889363266228442463276421893721733804209062994745933850485686617314555680866613647881376901052983179043742341355155053929325740124456571845954363286657575095805571033292180884233378497080143265186208647478930559953801111436887332666458301484181273920369009624737603851140380651544140796273287047222196777355446671991253414790565528262739387947000107093156119331922271725688928702143833515456809171794143495791596772270330352414522567140171978725886284677401727029474510370879078074369461355258734331696335112564559294981039249442081116277074018337121407038383221090382782566939022659382219832180497079668251182117128528333786122721844326389554237995689281848733400156920121824779611553350668725788603663998769223988090269677048147790026935471460658553956589737703668876867562607433540222751495020915418912698869418460228244811090542915353445311498758205525947526670438497206596879817877805122113345975261245008121929143840237979677332187061563023555474981296618216642886636108815104593573720016917766785420983191587346758516212918864353249595502927317921151635135458192038515851873795077992656529409487792623833246895124133195757012092043562191182866944796920091868759854841835373221338451742854135490974651453435441310682507766994971006914385499284965380968664889201090129038320270793018453244767806464263958472777256815064209500923533574766041119537554382980884650701781037173119120475247511119613034064685036326813119217878426801591151010144623305836277520715656638419236749228875974128259142758129674758570668882933294132942277520411932315716649513362710846687062166061989336001443294518288219189955180002803313210139258040316207275968330511900959580829338070523162698104009666975486139143312566607788609252342378041779274786570640478357783143772349026505792161198858673894843249835803541677552696224693764661247359277563065736026731140452738842552829766530760298604559222506511381266442206795449378881689960988523675138430051859777419461805477343257478628877854902187613128827519307957808307771578438772078123810752460152878183902512169548723910829170357695270359388751280649318925513405277568175193492202297370241671059352439705730371714406320410491013049218349222672860322353108548298694328418066038237321224362530797525015235379231224527653240674872016706528585598982942556610159432168005850050254402982525914047772847403484874354123300536457185915893425313802309928912592218156914563464756684559265411550965999706810665409145261995395187378759515644105854134097326080129565103883612968895502411188303303363504591940772085937127736348572489120652466519965006015890511904274831531119642127743037293250643053390161827058373757278576658228447923363563667398026491211929249609846337069138322431404832272519408663102433496775856460005977209135222592481357891953264516455389925923583723354752185418440340632030166104444634752122599816366231643259895175839196894069397137253707679846818313765299782727678582128213928744641418526491686478625656195791141057704836290612029402469088995137301295887574784916953784364119948970730355997525803808156836571813116623754846411939674074381122490658100992630553477959853787504014495758059030586585551949672886230270235158417288315887305054849754015214450316318827801984371271151951235309864539988561278397369095523184023307425219794708861107874436384787846956906865905715263558914044075668718818519264261554226342525544347486175963995592887516922017930527023424230686936744891235253193461625085003937876641872734114407209281374425895138084852976419045070339613234660926622256106748936586283251068025876444686009433107845309731934284040906110750569439054360474629889356524147270924279491601826866498106759597343462664091079458759170493764138987791487003349680264418585511864918759799232312185571998914543404123643416039806355368349898787722964381016159077984129171392844164194353127291986775631352840875497957636664112372074510868487529145942656399329870811524273913663830320420022752787823795997886988635129559341737071309893404706473260718840508912888575654108746796411956286282799460798952476522685473393853864540963709616538091533591815397722415048754004353737393210271498899039083033802370721935472183093013738660122620627339468637149583025979817323581149380286483393110176564204884001377646972365998433024080046058733441242812832841665346969007724773037027914587306470069427065442157351713281293516426004804168173219409662757170791730066104730336791489380335656860919244691429170013159293750712672040351056533887331206627349588792120047954057214549028001063119312281839418675229697612438942310616069965887234979745676137866466198194900264408272943198208881612766207428848863698137186491002845917544085252031079456032262491292053870812868551606590673065793455785722123752119197743832162821250804774763422531701914598680221018625274169960893874460993845921302211087524560745070828704250590887236683765133594315064216173282352694515507022440911589582823076290202056643726225323940165727553061029523656379184465766105881152420370395602291016854894401580336544891987160190717725054567666288669746601963000959825099972002493238303557556711535091016254908285134375282486412148856388584996918036934667611602611231473988452143294206463791454386226609059206981699435161795642474640030675825517845109818354321067007307070486400048432890207090607135468583411505306532941576734159752150700474643591214453919955881792567665418208832464460923742541716315679402555535376734944991137342539142156230808550173669537732723305529354840700332746134955205759925136935740722268610654126963528106210404021925552155887267276736322979196382794035782587928236732685175069480999161667959163588345672907185686651063294165128966572654781972740057260749116871953729103261231371690462656145881663552788398261787519174212188597093150743253249732296063468554159794461427197957100136688689023989392617677459792936696078987279898279454921196050625594954164050403376962580795607077180692293274340117167922336396579645119475577806971466265532216247879660641976221608904711583182699425526573546557241935330935326861373771605026036927673271170922830833254569050731180100064101044619285630252880755869027424930697736052515029617098522547367075222434932521307929496307821514253445144348664994330136448246622855098609428234011074940852346093960331109048103422990494150948382720242654118156457952865897922770724449338906854780296468528648949438406195616060454528155615461898149284415958312689859328703032233352873285264335691244637961001758565058592148924834270224275628279291161796360329029167660397459990930311494903903765390920400917889551514488412954401302950773859821232961865769356724748457845143010629957104162722548810472693364554528913974713982931987680222678039421277302697339514491397698980754368581769268387844456251586960245413000788765781574781204617729012552440540601407496769802981133377266821466954222165487459150556273643815977348099654385565226708523163892603260665591282970939274788963367517084383917606350823456270195438819177304455339926004529588777962464253863009604563924370866828557104477407966354807167585853368051917501745123302131421081586210196944879253795980186207808924062766918481169822730103379335216597886352147447601518863118360912741088582057816487801175879387353944512685220306356138684986647698027203096363880164776248936816819884505586636945248059611742189237093085364193530162238378096682053571138166467840836708063498606705931093343811386985535603980791045875768519757928112531813553080511447252733002189205567097589638952366790489653143300618566646428847267999953921928971316161236827758705135544175965519673745408357228210352991453424846326303110445453895687635983156640055062099842908879235783609930625096378283035015848374462013879400121939551553041738307862806154797599081686113676009068811881422658628694048071971759142732444164100960388310923282331210730207608024344583319856419229362276029399927440352434196233569771973477996415355534618821145280796185895244950242333680364424614616106103991657181928084293065890518679386436892861059646682437999401529690100899130484589308810365313315940376660825723025299408245614383776867360786793256657925411174355426474569992902611458371995485669376440565085831963677115541697460996143455140902007496337244849665080217769322925197521888994401838491659725641744832531473130192220201257050237707314559869143220136931480103674505415004168117351724585597195956993169234934249748041668865084248381943889191227951502332183493107651413149654029428275964470877246386404628390104057901103230038428876812428648442502817945774610211459774893524082750670722344560206186585431241568793849570334753871405482488376772757969234113264612595888161406230505378517956514860374753181925379871597830165912811925053988408499140081300893176823001676670053956634640119249658904661635750218031517600871810812142745775998851176680904183638845123070524065866422111074424344545148253288725894745688855298510880765077134559791459484334104086261009939839024294220099613149558086702445342930769377095365468527276313718788422853047234370837212966930190847998853413204625633037639896182509057850541242260188663413325744580157580918741154601391332375152247722563832725070387883113691104461587805740161455492271689859009345742876563227253391309904774549001598279789696551889810289562064630243128398927902875538335291257203964629198426180438140683869793317248228924106394419698401141834285590643740929046086195070241311720896833618635622123387797464042709084039016084559541669479699665472678473719944929191582760833142694091349657605980724209714008450976156603354119561227744419900703713339125260537249097272981418095211032567862387188328191839010128800445046128033787444767035615794101123630572829592357273853356060160766268314597821426389226650412881298906132668180120912248914022186304329220090144666907192336113002885750285814141097215601335643490936375813533441635861797780209688711977351826081246848890504627366563991238331716546729083217896638678124042988675496857375946284433033259814078010437949478005067885120170585284566874600264540445256271802430032287249289584333412026042951364786481173120352813613114571373000459605950736285271950293263127402193211645373075819172412744269671785806482125350042273789115362513394709521006233787084894804173974980036288725221519032820128980697375979572981020467757340212629830942859113806849209237988530333795166204082319966903261803168175819149946548360425865289594500715870116249617849594342073806902645353691994453281854469717294503274391796706362553658702200927799551595119216519962923794271459218343876141754044194870090453101866116018222996665199444765929977367298089969778293227266633112092672324366447696139965829954741905700593294284446986002232487299692919241578735349011456148819494297047770884229755367742291031951114918076061627190278293753322424040715212010914074546979411828411538319308042625217531922722181441315726385788578177310819621106307458284430851707576153419703045036171349030977723983617737497335612177465258241402628236859416496422426196841583834047479127259635729795558878906305170502381582238459054164616237486743258906938787116266137190203020100307962501621273870696058375873223443426398675562864495532909010414340728511520481062764199591900402272853647371425771290423765560999629344020283284580279122305158182242982498110686220508058490504378135090084183371831185291009714526611292555568793817971991038470216143511221992125999102108575406833901767780176178602242361613133629474294425892954844161266426453948144071112376261405881786348467695021034230928558981223332212905466579631080328711837415452921503084064793114746284468390918809969431802699090596492328535496417290444467820631034119479715236487094958186357689658805871670095446634733609684462396025257114534702559936969664812862690584287397299869211126313658009966377200639420202804999208400657053417854602583126540394269058042864823634530374858244045511774632114653325374461155830999084194248067882268602391423250921547990591435385447757360365981292261391032578937302046479698685002982471962968957524803868382851508939467831983551347139296065595382364089693428054056759458075243637876336902177705917135280685664413827289167260457429451921196581571771676271043024538757253661398018265504348630133601579243373547925984821127575577557888166554012151394156146257985923201308897790312161052485111474623927529450310631472799594467531240626544354102763131570742328716048715007859342325696360035500933341564757048190672537313303321987903478252191366642247458999668059194790221118942041436044765707284555958903701861466854353172459779640881851912773288614599526486119381064197561357780374333987235930569955565205006592904029537415071069236514143119383602536568108943377208241886919362771870159817059549873820576390063928015300655303981290691416330120830166409883582948237538759440428705285145963480117991340869387880293172283603524657821052467666845125274127340763638917330859726945514048970560868402183256702035166810229564798850369734728675197862915023402677004794324537490961180831916282744877694497617762482117499783619315758375585004797499439146224485922520130442615928085081432257759867350070381154883196683979892097021887489854315381691800473527512574014554744694807174808713774802330911029510822867678528998746878826407327268517744217920624522380635675339186251496399223422643861360303433201946251958624991930932666291081163046892935504155406681339989479212324911204114556929952977394432592663604830409270464916047934951666615083475601011806173767791661736933573535184487192869513551424504651129319543010434943066640488396596227372851476718148661252602887050657245747181771737469343579740639796180094139611793666529371326523627414672300534421215609613413698400642619775747734366240727197835320112400491619034343590928357188177410148819682426932827016991691199948671773996405442427440115433393362991661062696567049146493023420884938513657114068488311242411777472738192520798914923311212972448576066353011712690573789307708501448677756606885616525948874152397424214829662061663209374313951005698067757915888071828510127116064160367977832827727858086565149655957174610006916702887557817356782942702713730243104409190682763700187872853064478809099723291039703620389894112874128699514188892532031466962870738491001482940676946693396602537270005285586193482773563357241734889928414889870601404209308381493022247927267473379782336652546642236395808409911657073791610828987849907498988565666238928591827484651756029806336770030502997802623764045286625661475621508623625061550790074160611907859178837824964389464311193288672488432987179077612071916483028946704190120965717039833872957148514494879119967464404425622140418586055123847379040178675169618138373768728552536136202869926262332776681216051742264640487714457453939090616193169738364609404511816989300003494995157462779984228695587881390462894637034615317553183822013077176656108626605834447246176397725465803785794384241669293903799624450062735294237921162031026739845086504241791197931229572649892838964964663485524005545694217849247190976051187130963052542175577259124201492663263710125889602042706097605604891258723250614874280998722765946694837586953570659639057728967698728077024774162498496542341705108369226244796834103020414767180226092747151047967483675083520295003724048501068081553430834590377840392708103753249886665765498681275554969654049010297389890752494717083402550723910767075710577792433557701627102534459623154358400942133488197061064163864350127115017366134364964975565310206610651401696601774135548166578665591512539414283680120611747495049756042345158126783102253002524301030826839200636520666922224277046836992588235672098886315687266167538340421072482078131240838039965621043095908686583832777735830718254880711801672323331015121815361779629027793908504564915608884758036903239400382177161798165566171740704997991694945545852894568894120741736888789220534859009203049649130463565368665773957772656984195076695861751341825097136676166729417342938855510554011101373083636458957269932982495212443328952610190348376874395423738223606981866286590977168901681121274739336428937146558645705703095400062970043509996376188025106092777149665223911954959075533705577437688949708846382108496134126776075453363699029356835099659787465326616210425806855081796506607523888166275722411077570648227726542372318958715172247877064120070852619142945788746854567636030489094475181282935017833048967000251152889638029917095661291945426649457328353745652028816451139859396202810624977077108758096412138370018702329797543907965190972911621773350709234782749156046184204045154180246430697566957559991209824631982697713974828475615733515411190630042730749963776593881507546592495776908761308771583401255408076603800075043916824306127340927624035274867130942854815249074103987723795625867918192293705145793733943043315616435260347370198089596570345697175392031357761326473743306472744749483647215348498855136107600475427722070515699529924274017514321167088905042675309025593566090424061044455124316777697705294757539390678045716135890060547272709072502675782889409125161101285684041046529717137970044225281525545857928888380553849103535584581923881272859290916056354182000930973894317866046405843653278166430235110955042632047652591787551481086489215830039317471562784875021840030160186996340220697103708551324327953641239625185259051736079346368074465422907881910455332511192055200606033564566985010762233523500507271955217738288287423690820362136957666681473828088004125759887301168275620601038859240617401464173919654027092996598261880334613899122149983507386560315183779395077831664210567438177458213120012715138104451009779418654702180790567943417405912326324546646044534155640077892233201636499470633289622356407914853287488470446652832091398520658646472812390182550002656817454191938235135035648141689825611084124952511291897361720170691704413110200772761550755958024651122030816373443919012606588766570670379463388235564662577107479806922666310386134508826569351299197398532386992162252670428918263629917243927274474822129175594416213505662884713613591850530926874021801684732690655835388591954329232285756170281610869472405446724251751914247123728372096006630341812088821244634872492397039792566792970204105947091845651409806151360904332795423067012238594200130067388037595912152371734931034598209345211476093906636760160384971710282616506710724439125583143825095514064514912013305033667593794720017703101079268950776708685565734773081628588238891209748007396315885121019659471296497264308949963487602480833347250823576427779218816464589248776233916162108185415585116216050344652481464009319934816011319193766964958417473006262005476179779490932011498328748489487157540135124969343767244264183710831829660019375788046255737664816206958150006605682206441083043499255825795997696999578287070707305005576629260768031633722709268069365411528572069771963967542829429268191460044170582199450781142271026612229946336091045416201634514438619232645037390110842813127297060270957539474866966511255978781356441658981939838662329540969348329340678587315489079799686637176904508785599903115094156061337937332803164145744595003613761406831527440219917198393770411971801827927345147259678011293897349537636216491114672881989688673742034061229568340016522605486034238866308102840689660069034802840926034837040348946971810211109805601968116542457298837210486574062152245221518926978094560967765112121883608609947090903209096984988541369417130968061044182409653940532688983949404978744075077888341548740559956265735902653386619907263845058282788311029208910784192708619630297005134918729755732831890280484217940427033756867919051255192652363990449740207651107501476023366419480890388678420290743187877815388574843012153422412439947367741850586154106085302169649669456778694648836857908818566033423881434943155100664679020874358897083307482417898245419680803199045624721387815472820584633066384555428884443916561009958477276199418529730664848745563156984748465940517729496560979716026993957080581924598148175024958820606512642027900960792552265059887779955358554373577670905666954760145806699169511545381379308074747509603739410176630190897214226775005750911086288467455265882301333722592094798005868545275396112933339384790004814921481297605333567610268748725670074936973953043649027484213219758353062192322142994043586362043795612759355514267481345894284810932832561490076181926220244912647092257046215265455370802598670265303598239511427657807000514375364830087803993808525290653243143170825060595250367215999064608434981631807129424401055324341751179321266699675299565352012620022750968229127257618496976602319812097967114767001112995472737512597974415968623518337578644945505504855342124260640216210997393717907693427649058018569541517946845385244269448437038418548348491502505539333802866683980510645171473433866542542447118433652568068196428835446686689116558575471244272087317304834681115741456022659375623639318087539843860316069389212796270870250277595560617030740617753119772164835499190825260520385102312456787635840567397321616895083072456128840949547340756487804931928577075286345819861132883799921575199048649247835803350469769818879855571204567976888996921295131874304800036029406245456326754002768717880223554023003279351911959707738190049047786540948522455922050793176279964391697457170020343741946704180401914512511457326785919087258498335025563791691998867081085460746803441934602281689063314350097471567642633283951279149798139485446185564684779440737771653115344316001291038612715853590350935277339931816175062713940809973059157377268957763892331151053169773415126208750953437275760717521518739960132936156695852895290336256731258355218601068935912363075055634840191320682331532127927138458582485363644172653134957241769159454548156147072837680400696777686914137206160402345457193889911771563307035987179227677571434973905010409761151854185428949097438225960590198139970780311003631390707203944974499440321245734923944181526074707071256038311659950375002598528892681350433109959566981217790993327478381931757362829190377705357601156123662711246199810955842017105457224037395740274242301216987014261557836924985616177390849091344612672764469263511649164326185649506543162530295844009201799962179172230564552767661252327686565303759823205131719047990028819424724350781701629931615625508491043768693900682786093334402448414884369600003910784314412716254240522877470515716674422210296058847800925337209113887602216694585145757793423136179631773875242489157152475197711303713477320424847488530854507396671542179891871681121173053086963114319394719127861586256897811330200526791379200165852921453404578387008238751639946595299249479424075724990905605168481951292308264909420271662826719043594693320682560050704642314641159958716112141779749749082459689491138943512679900900345389682185806037298319012383417352621315013503196371912163500520002824306348850342941691448760813138578241852113014564083205271741345750124133491328477135469764353025576076686825479703702043264498295506279269416854537655133628184808452450231250185536876275013840563962023690158565048984842564817322002957518921516642840083900047089773920588010180325319580183591546749434048200852837202822064907009024600195391264192960347327195904291813122463241975666956268106528380587512104221893160413270825126028711838852677748574625104907985316173923014178531503765509668217039838765959274356958341808723758301520629934150680086335147708995395912615501329072821007742384986510255295018105693159408847052661767753762182289780117964736617996044996862015251444406259374382745032764558877094800097787399984586307877970148238495551405044994931305374530752645305725268290888363683270064700629297908816222076901548120235573913591543662283659828437891369709511449459717886422852993923224506540979244596454141624675525680076500033409504343334705608683460406007194625233107577824602367751682840498147579789617084977595660712696465971992166025981549748204126824215052280340645498553283641894200144788521562347488235653284775239169539549122606616891282298473981503254432352482483380671726064096560724865009184057122828890490449202118061484202260128902077152449283263556460030536491358146005779573057943648749981886450587295506056968273918814120079246136487636623579571885674906162863409830896781839495014707437181485815191221342188872880096025952170328395553274167432091173714683670665007788049690017162456120172838127525128304386128059297562937658386359581460266058668344816767282588377369634603951715426986858403502688109738044760046141472965276232585269746902274343559489613730772783873253683972711392061477619513935817193787501807761079698799606660695405042888628227448486773697112773453856481545835831716980297200569434286963041778406401130825728154542587650355869753184980862297188041838177345070424858700474819892500713901349879091844423358530449110733692106327015133365894483407942690425029086648892974800723028391797753922043918352702281268950097523249152297547430220441898060356951248435487696617571418247261993745050046862828038416562621277132244120112360313389114491732899757324048032212731715107298252099382130886167073346843001381695505514956790674226481014350492761574699072645359894266000539287174014533887677584248638625677402359366658028967990221190260800305504186707115095586417714979205250245082242414092657936605778606904596380522447754931308420380180352023426182414454296227932352490671718623648994025118351362915645441727291190888900941219089200195988580563383595403792778959031461452205613507499960541918950066881373049317400482948873974355334271743200979369527833181785683992853570907895585599598193121324215943183806537846852680110101952083141061378929711754442457737926616319082116518830480171982363200674337942139205877057597876123320934462442797376801425277367208853419022754945475699530016566345909464354385509986902405903123394617997343218215087031075848343567430285791721169199976355368456159021771764038504297601030532026451588395510666094063026949619591111856920339487389433392994880756777783685732442059148121458884796885765592979862585878961714491691102741205913535739434246781091881334358447680560818681832792581303591426779801442567480495011417244474362095123381291950884160569367878419724397136004428455934655687901592878286297899111636747217077025583104452682449289302835870846099887324821333444406426088886914495543793415075318118528208474354398558113458751048321877163171917650092660535370698232110715397991280142742222458651871459146659758146865797785435474588086390884958231854903572724823899906886131837560759852525160465720017814181354501501023051544604435767665578404433247108032832961720592848486591065629848448082239987291391314769214983636684703995606326258311194434018119300882362659412096267724008074742309335202249354520234463892513994098591573863694570715911174922454887862769486352677324814044999822415306906867757590007945572196474830573127288732410162936459988811476537734398694005659403425951106095512056815423204239052406237846924376070320669024500100770954484319152604421244051758867271400928177126685676630026159186526575938137735774145549273104079105614364510662396985105463314328317466545465987909634128037143599708633223398367746227219540820686936760135583420286159704342124387171450494214687672945572328636625354855350629935563258074599997451163551193236656342434927064495200505239781530090686129964689651242031008665311907240789694038718064901812389733641734485549235114514719259412154197114147599973687358538876867188463405493304587702848199110177924935893572531002022409442237147526648593521975459725067366503283116194947132578730954887485590373962154839649302055537351644087210405488487547198953679459847757465452828168046576782934905756181941329106432303322614803083987382076631616024973465074860764870588789981848456407872719917618420320571703180249608453126104938691419709037400252581422276711551304369567833940619689078644827465431585958302414874775686790816316867909827690189119868141440690069385279782710815469145248503952163711614051226181651642195075244445766021753837585702728949179454456601631891401730817268269770198169984332492877330071503005723152394550495200530343817614634635457597584859124485730097155701924103993841992066168052998550376917116912327679406756342392900289821942664726888508974878148547396112514267458681743478189206005713873750155882632715567021444785854260211575524190513865042413729523735512063958423939246432933021070293583884659806749335088275889450591507599952045210865034280678724466112126888866303584549266240887258607526744318037666192601741853716759579179086457202179585360123033429653871515379926026404200292006823240503314836672557975780762627827710336006500287071656088386390438896756895745973258618940535255815642615152620414186023566603952298121842281645099409317676311655084781568743914757545333715516536877938237302038581154408180769320162412640197441489539552075159619942057816786044571292838912221883420947075205477961138430545134991772885826564146512200031912494864706615586414718373199048560405829140068353822384690901123111568273167425948167027620187761671613826977250003287604279410654972533728252175970617410524399327566439415486477750053567059790117523987474744509475898011134156853578818558405237376510384314704379268494138784717021757819399749585237409208307035427553027855437804437402213930591318258959685051757551338582627333667127522890659954594103069614520265453484704587412648238444058029356356971484458636743105755350462248598191539293380452069787615943924890708714131607555491558688268333538888338311797358892792023385170260805075327912023536465383549611582397154210765836205059972807973584739220996060950988121698803801465777779546073939447206290481380310051724307045716517600011446194243149725591831192310041587215660855054507226430145713179882449615898797593567683870832642400128212321444920798575643500366841775702429903247954932814217103538756653657375291466214714906746198821752548571924229866429625005499213181383829428285736712006362378632664671207967308694284830318202199356782255989927512843014849717565176995088345448100331234042450259784216408257236367314062715405057003845837630243842081287271539262802721311158869619142351742272667019604139716889072398783044130610056807716841665918472753723360522853961138985752601891446724404990601910014919647790135693520118794113687863593200370488435145432548050043412326587916345515292478790050937051238554503540477621966442086008158188034210229008087995955346127751730933556778676297179663199566358123935232129163313533996084885266805836115726843313634430470349875801688581472995175817880407790894159044461955114673513504026757618456654194224089811206794199538942822683324782587150809981374175016294771290305530327215555846147119674274514318332115152358105232853709040045286897658460283384505909273421202352964435639043528697192129672366925557449141256874481426677219056948257206000646358230173702054667372038322841886437983285664210183093352569540505439917348556333488989786453731715068315045102720092642564815465677526628363979852293223795153445661707539903711804888775019520021754337911590573466074478540513184030469902293100395448419018965646218701779032801200029733213860219797284323014173442693646350858913186820399232558463734025515376119617242603531320071954934090545774057769785703688267960077919205444650581084602566389033807013949580762627685531347565915596158257103267859098729604847264973539387481782498158948254705142804599054362371810744361553571643779359760435855392764449026200743318830287019403470158155703305510327686019676884914308486767217437408304372434257691762215815015523356753170792772630869882918456456842488647584845822480508542340155791550332476850779599013189263716929198086995321579120930454067614266207627374150791445498982878207035862811331416915476663587028875180079077987481375678596327554009515555927162133660679439194343826416481387907954550924484238211264766227067586961044974582433677024525929621066109299372147371739382285424625135237899683507602932419618135466790703695748070219749826506131852002173427205553073717965344274334755484700765528076600146574482339139809575283579785997289473762959143980220845258312184353350181739085690530099319385820370979140293679651395383103681621039388754658141332854805333860552589415936444492868239848364364699465496723856096374981275272093796569893264439530518174236288876457266687271369752517095693189379542345475293318423460697409850725224226899969061637516079520140434007911471757256696440965516397838752582768334558180621842262175065913440585511707992899774343364500546832245411418695736560450509197281508491506448980426642107843052161367757114008792140418702790682785933786337145022280384322458255410541573418957331933802380938617749382661994374466821456966407508878723061660448596531992063460758555173982738249503722635842569959700143569934000514023224309965353496883835649870491087732905830690164747118041880421414540721334850330774244883986257755375310851556163705377048161008282879762418765218254475943320430037915668460599702574272439716794995520671727957599729478100148858082296233688489894182906243895960502431205787748769213213632910456879470177715025537138803726693092017421166810558620029439283647634998484812096550688573084324586469321108725467331769810076564682619032365361271383065227990244444985192143785498492359389062814554859555801147537326768248350976572910511826880357022506538469371855305044484153644560118837076369290360634431034675954926551516166558924402882988305638767253610271630101572202899947189055630234297266745541601413061856979966721337370990663228140041029944515462049381909556546932353235320023358944543847870069184519089009722541510979938302416254693507632486195188321258864748566578525003470567982061524358093265387392965169086873043361677587181533082164215412832778932732868687269729498681423473009918376950643509598583070039867122198768180620517451144433614576219640179609800356484979601904786257840457929343514232427480979611324173618064093998424288106838465989799006269347864345688811349332580397000481432564899751448234074560432057968580635208691889113520777679674637099357544411965857124818972180442545345473084495781426266587198339969976675436353910891581672065066026016010374317762016151104575570567707778193684382758372362558638225597991764358993898013349659967103014764808163183700643979781169873204799651384011324500128047644454256115835516909881499940989091375514551203645035068288232561996727124386066401324776745748388638323073825942294083849505056015156464195010076028213680216314989903630054387594639437046894465139500594591887080236315081007017321259588886313924380816415464915018594461848986538913996975293363703822186217789537756008464915766930404409560408421510903588728688288344072110271532793503516786542455233125707672925571685112373458827116113801658912833120610565732891331604474100401484252546357988629858210609794180364534221087883753427656920205557937164082668565050643231782763864809301875051346709790764003245800154447299372089754127187319780679698178623231695078901745495836418797493073146827151190597420809582858032525159763513778440259557318645857703055746977846718157058086166383775142087080630497166863653416293091758980136585078645037129519540869119696677712961438221468006813330235724518180976430113600754495944285484145166712563053399924368730843143345152310072850413627510187539494233850763001399916332030777732119169672803932468972075443839878653886084712046050307595127223730369191175853728672898995691184677030669010330389831176981926088631868181803835487067479997775288708756841589954505601903698401456049752378571188206539467841048934982516906317784939028593482192711861191728944739799784077344316319976167809182265498915969027815539919413523697244675360498433388839490377699985094303401778697912959974595066403504316619926775986716364482255977238981708802697319799650858941074497213877665637977264738156764336826701190247537372198453507445207993454362209998614246803677853459673919502829586786357540613468060415489009862868829263911559130944427400802589791225355210314096584684499223904062111780452676399294621059025879595876300749032133149349941060647595916406370169222524351200354162552774896181151866080822661614509058865945597565210640042687880116289176106159521492959758590699719838252119133930924955762155350143914568501916675000083638716869613138347376695469596778334099836920154152559119824702294689098207955097165727534828303861511390693268785039650658178467126332482897418114895599906970360766646222457014993854671826773331156205064661708276565674315825638181297883508477338362641344900034741078851147350191083120430914177864558621498849213043574776091036739920350470029475024950496276510993911511412765832155728512480273117706200866661437831173099795446055651051607742403981123651402170515024715005214820880857335567761053083028019662332570429697066921795690528422762424294347489586954085588491696360716495395402789012267328420442081566848621579824612500276211378360424686748142759949851984704800122386329267538350742215577027308130917171089034848013771953477761946034031814693650558510807489483256035798943838464667291360996194152565180666900059566130856493488195575373954434429974171190078059225960703838000548673425347611211631555625835341594503325973779001646948983424820464178254468129925403114852250384016232096566758117554908545381256495809415179660937181253179124082914410271900524565606638113936488732540584298421421349912370333701497321398869858269971945042215647506448091495207637525270094880334143771306583081737276563514933229506805177663804956516738991940446414447796181215741864383969302272597078687008897617191666313912749808838130292841378553384862224947452461284816598673285827515899491929543195342228766102191253475156927075694599164030538499035253220960613515746297832859551493820917746807951435256478269067224866362851444148601678448126528542995661519749800609778010525585516009361359493796879835563476445284919049355531698024536664442486374093789877243527654672000125577688056886641164789687083593827225911158928891894782781053618646985736915869186995757088487442347890033947305966751962958808643174809147132420259948109486916347988556105037764714811166661834640060787208440566504534693737637791991324990319411817366627671381442557841739639803918558497885385422209655041263349109502895595748489194469185947136009782278274198583273628887937042347072913892057752974437274486724896088123899664926633393117606550156181968773860994383573239784215529889020553312740955912870430402519255210338504494521792429900566534173221677896050486417042167851860736758310426957209569969454391746986496695651072039750466675920811853557283295193224822465706696891906043260135022110394515914285413846250344132359362003597092840620434238441109578777285175382002571834708167949971886919760866230268387968476514498158358089725303501595481771834348769936760686738186177691738327365203888431282662704680123789576610931707058432127183854884030787203607655204247109240577670776548227388000416681549826001970888531710347242168814840762496745278777488091171198543051496316738056755892223433970465191283466948070464091559972780073815968219634982787397167020002793855364892795699671766889562873974105994871315470904126003676206648523161175588754388386852241399744406031724326351406042293762599850440446832678798489300327418631808421292650962861918146445193940677517106172981617564082406066474754085098922164968458571166524125268385539275624044449141242168016225267111857430390287368601097086886072594324023991396840983852635924771353906556338295818368670192384172983449446069993819987884470570920068068248518245513445170089042869093068389934025788408543322303018557309198968080350984456691172594961331914779815455846069686904615286526246648708590900967078204568879430999489587038079385591903549035704002154188180123355733363531229811032050363480594207377272371981449211813715312426504244526874455924007834010097272738791909696742076658189563556506280405126679603094210443431560327453774129824443243566976321333106507067381681216202048402917046018684565547070990389457685674510970631100714242763332408913313203410655988013072875168888700662012214433236139155405248499119767250640750723323073421886393403657201451257699389520754627312427511418825559503494129851147567818612059082576929897130385693987051689831785946975016386742786592686813496868616769033751919793820801196659502305673752559357229130139953334803647712753192167824897802511183108901253467448363219835637771782428215757731073602294434835962745653745139459784056874999142165108470030667104383530888223631861057339789324846748730945673164934730553382092700145304013385110805648576082979862985486666458741026724645029173243613432670021078412046327724964691285591726348380059246939063661977416297350548176950481102983045278599202138380025490295208231747900011169900422744442570380149222740680822204606241845357586483620913160872915507860313435411997978800467356513742825954833625324431052018389414470642374578256595972548856609899549176266311059179161011603565742214847389791519521230452969447484805292470262567813634302465719490074182240904825795579040357222592339987303201074639372642742040544899783300448341684262104370098911770396220628940472471045881789005111749108449934441429906254515907243038706594372158144743731833116392073871188670585955595985916309511144896521625246384706999259161846406422158472091066827944264524022560968672360532680581195511409623660904276746700019767572899384869424293378393333206458473660141024704083871507083027435769714271157413926146343511965257906588841081007867363248411496429488606165826634569592911353388326272487387981793602458975887025932917007166397383729837406712997790895076140921318719766156527765864118085702793429204022400698717779833572423952909023647261356566757979237205178246873496018432894744386134656458298934552557068859730329296163375155904139425441411638725804740864`2009991.69952445;