What follows is the first e million digits of e (2,718,281 digits of Euler's consant) The digits were compiled using the Go program found at: https://github.com/zachratliff22/EulerSpigot 2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642742746639193200305992181741359662904357290033429526059563073813232862794349076323382988075319525101901157383418793070215408914993488416750924476146066808226480016847741185374234544243710753907774499206955170276183860626133138458300075204493382656029760673711320070932870912744374704723069697720931014169283681902551510865746377211125238978442505695369677078544996996794686445490598793163688923009879312773617821542499922957635148220826989519366803318252886939849646510582093923982948879332036250944311730123819706841614039701983767932068328237646480429531180232878250981945581530175671736133206981125099618188159304169035159888851934580727386673858942287922849989208680582574927961048419844436346324496848756023362482704197862320900216099023530436994184914631409343173814364054625315209618369088870701676839642437814059271456354906130310720851038375051011574770417189861068739696552126715468895703503540212340784981933432106817012100562788023519303322474501585390473041995777709350366041699732972508868769664035557071622684471625607988265178713419512466520103059212366771943252786753985589448969709640975459185695638023637016211204774272283648961342251644507818244235294863637214174023889344124796357437026375529444833799801612549227850925778256209262264832627793338656648162772516401910590049164499828931505660472580277863186415519565324425869829469593080191529872117255634754639644791014590409058629849679128740687050489585867174798546677575732056812884592054133405392200011378630094556068816674001698420558040336379537645203040243225661352783695117788386387443966253224985065499588623428189970773327617178392803494650143455889707194258639877275471096295374152111513683506275260232648472870392076431005958411661205452970302364725492966693811513732275364509888903136020572481765851180630364428123149655070475102544650117272115551948668508003685322818315219600373562527944951582841882947876108526398139559900673764829224437528718462457803619298197139914756448826260390338144182326251509748279877799643730899703888677822713836057729788241256119071766394650706330452795466185509666618566470971134447401607046262156807174818778443714369882185596709591025968620023537185887485696522000503117343920732113908032936344797273559552773490717837934216370120500545132638354400018632399149070547977805669785335804896690629511943247309958765523681285904138324116072260299833053537087613893963917795745401613722361878936526053815584158718692553860616477983402543512843961294603529133259427949043372990857315802909586313826832914771163963370924003168945863606064584592512699465572483918656420975268508230754425459937691704197778008536273094171016343490769642372229435236612557250881477922315197477806056967253801718077636034624592787784658506560507808442115296975218908740196609066518035165017925046195013665854366327125496399085491442000145747608193022120660243300964127048943903971771951806990869986066365832322787093765022601492910115171776359446020232493002804018677239102880978666056511832600436885088171572386698422422010249505518816948032210025154264946398128736776589276881635983124778865201411741109136011649950766290779436460058519419985601626479076153210387275571269925182756879893027617611461625493564959037980458381823233686120162437365698467037858533052758333379399075216606923805336988795651372855938834998947074161815501253970646481719467083481972144888987906765037959036696724949925452790337296361626589760394985767413973594410237443297093554779826296145914429364514286171585873397467918975712119561873857836447584484235555810500256114923915188930994634284139360803830916628188115037152849670597416256282360921680751501777253874025642534708790891372917228286115159156837252416307722544063378759310598267609442032619242853170187817729602354130606721360460003896610936470951414171857770141806064436368154644400533160877831431744408119494229755993140118886833148328027065538330046932901157441475631399972217038046170928945790962716622607407187499753592127560844147378233032703301682371936480021732857349359475643341299430248502357322145978432826414216848787216733670106150942434569844018733128101079451272237378861260581656680537143961278887325273738903928905068653241380627960259303877276977837928684093253658807339884572187460210053114833513238500478271693762180049047955979592905916554705057775143081751126989851884087185640260353055837378324229241856256442550226721559802740126179719280471396006891638286652770097527670697770364392602243728418408832518487704726384403795301669054659374616193238403638931313643271376888410268112198912752230562567562547017250863497653672886059667527408686274079128565769963137897530346606166698042182677245605306607738996242183408598820718646826232150802882863597468396543588566855037731312965879758105012149162076567699506597153447634703208532156036748286083786568030730626576334697742956346437167093971930608769634953288468336130388294310408002968738691170666661468000151211434422560238744743252507693870777751932999421372772112588436087158348356269616619805725266122067975406210620806498829184543953015299820925030054982570433905535701686531205264956148572492573862069174036952135337325316663454665885972866594511364413703313936721185695539521084584072443238355860631068069649248512326326995146035960372972531983684233639046321367101161928217111502828016044880588023820319814930963695967358327420249882456849412738605664913525267060462344505492275811517093149218795927180019409688669868370373022004753143381810927080300172059355305207007060722339994639905713115870996357773590271962850611465148375262095653467132900259943976631145459026858989791158370934193704411551219201171648805669459381311838437656206278463104903462939500294583411648241149697583260118007316994373935069662957124102732391387417549230718624545432220395527352952402459038057445028922468862853365422138157221311632881120521464898051800920247193917105553901139433166815158288436876069611025051710073927623855533862725535388309606716446623709226468096712540618695021431762116681400975952814939072226011126811531083873176173232352636058381731510345957365382235349929358228368510078108846343499835184044517042701893819942434100905753762577675711180900881641833192019626234162881665213747173254777277834887743665188287521566857195063719365653903894493664217640031215278702223664636357555035655769488865495002708539236171055021311474137441061344455441921013361729962856948991933691847294785807291560885103967819594298331864807560836795514966364489655929481878517840387733262470519450504198477420141839477312028158868457072905440575106012852580565947030468363445926525521370080687520095934536073162261187281739280746230946853678231060979215993600199462379934342106878134973469592464697525062469586169091785739765951993929939955675427146549104568607020990126068187049841780791739240719459963230602547079017745275131868099822847308607665368668555164677029113368275631072233467261137054907953658345386371962358563126183871567741187385277229225947433737856955384562468010139057278710165129666367644518724656537304024436841408144887329578473484900030194778880204603246608428753518483649591950828883232065221281041904480472479492913422849519700226013104300624107179715027934332634079959605314460532304885289729176598760166678119379323724538572096075822771784833616135826128962261181294559274627671377944875867536575448614076119311259585126557597345730153336426307679854433857617153334623252705720053039882894990342595662329757824887350292591668258944568946559926584547626945287805165017206747854178879822768065366506419109734345288783386217261562695826544782056729877564263253215942944180399432170000905426507630955884658951717091476074371368933194690909819045012903070995662266203031826493657336984195557769637876249188528656866076005660256054457113372868402055744160308370523122425872234388541231794813885500756893811249353863186352870837998456926199817945233640874295911807474534195514203517261842008455091708456823682008977394558426792142734775608796442792027083121501564063413416171664480698154837644915739001212170415478725919989438253649505147713793991472052195290793961376211072384942906163576045962312535060685376514231153496656837151166042207963944666211632551577290709784731562782775987881364919512574833287937715714590910648416426783099497236744201758622694021594079244805412553604313179926967391575424192966073123937635421392306178767539587114361040894099660894714183406983629936753626215452472984642137528910798843813060955526227208375186298370667872244301957937937860721072542772890717328548743743557819665117166183308811291202452040486822000723440350254482028342541878846536025915064452716577000445210977355858976226554849416217149895323834216001140629507184904277892585527430352213968356790180764060421383073087744601708426882722611771808426643336517800021719034492342642662922614560043373838683355553434530042648184739892156270860956506293404052649432442614456659212912256488935696550091543064261342526684725949143142393988454324863274618428466559853323122104662598901417121034460842716166190012571958707932175696985440133976220967494541854071184464339469901626983516078489245140589409463952678073545797003070511636825194877011897640028276484141605872061841852971891540196882532893091496653457535714273184820163846448324990378860690080727093276731275819665639411489617168329804551397295066876047409154204284299935410258291135022416907694316685742425225090269390348148564513030699251995904363840284292674125734224477655841778861717372654620854982944989467873509295816526320722589923687684570178230380965678831122893058091405726108658848458731016581511675333276748870148291674197015125597825727074064318086014281490241467804723275976842696339357735429301867394397163886117642090040686633988568416810038723892144831760701166845038872123643670433140911557332801829779887365909166596124020217785588548761761619893707943800566633648843650891448055710397652146960276625835990519870423001794655367885674302859746001437854832370687011900784994049309189191816493272597740300748796814848823429320230121280323274603922196875283405169069741942576146739781107154641862733690915849731850111839604825335187484389231772926135430249325628963713619772854566229244616444972845978677115741256703078718851093363444801496752406185365695320741705334867827548278154155619669110551014727990403868972204655508331707823948087859905019475631089841241446728218654599715966390156419417518209359326163168883801327587526014605076760983926257264111201352885913178482994756824725648855333572797722055435681263025357482165854140008053148206971372621497555760518904816223767904149267426000710459226953148351881374638871042735447676235779339939706323966049691453032738878745579059349377723201429548033450006952569809352828877837106705855677494813738586303857628230406940056653405848875270053088324591821834943180498341996399814587734358631159405704436835152853836094429559643606760902217418968835481316439974377641583652422346426195973904554506806952328507518687194490647677918867203064186307510535121498510512073138466487175475183829799901893177515506399810164664145921024068382946032085355540581471592732206775676692136640815059008069525406106285364082932766219319399338616238360691117677854482361293268581999652392754884274354144028845364555951247355461394031549520973970518962401579768326394506332304521926450496517354667756992957189896904709027302885449454166997919929480382549802859460290527631455803165140662291712234293758061439934849143621079935767373179489642524888137204355792875113858569733819760835244232404667780209483996399466848337747067254836188482730006483191638260221105552212467333231844630055044818499169966220877461402161570210296033185887273332987793525701823938612440268683395558706077581699543984695685406711744449324795195721594196458637361269155264575747869859642421765928968623835063704339398116713975447362286255068036826641355414480489977213731741191999700172939073033508690209225191244473932783761563218108428982077069741387070532661176836986477417871802027294129823108887968318808543673278068797716591116542244538066258617117294980382488799865040615639756299369628093581897614910171453435566595427570641944088338168411111662007597872441370823339178861147082286575310785366746950184621407364939173662549377830140743026684221503351177364718538723240404210379077502660201148149354822289166636407824501668153412135052785785393326061102498022730936367402135153864316930152674605360643517321547010914406508788236367642368311873909374642326090216463656275539768340194829327957506243996452725786244003759834220508089351290231224759706441056783618708771723335554654825989068612014101072224659040085537982352538851716235182565184822031252149507003783004112162121260527260599443204430562745229161288917668141606391312359753503903200775295873924124764518508091639114592960711563442043471335447209811784614510778723991406062902282766643092649005922498102910687594345338583303911787475759770659535709796400122240921990311582292596679131539915614380701292607801970225896629233681543124994122594600233994722281710566039318772268004938331489803385489094686851307892920642428191747958661999444111962087304980643850068526202584328420855823385669366498497208170461353761635840153428406741185875815465145982702286766718553093119233401912861706133648731831975608125694600894029530944291195902959685639230376899763274622839007354571445964141082292859222393328362101928229372435902830038844457013837716320565183519701001157220109569978904849644534346121292249647323561263219511557015658244276615993264631558066720531275969485380573642083849188870951760522878173394627476446568589009362661233111529108160415241002141959373497864316615567327027921095935430555797326605546779635520053783046195406369718429161685827341222171458858708142740902481854464217748769250933287856706746773812267528316535592452045780705413525769032535227389638474956462559403789249250076243868937764753101023237467337714745816255306980324990336764554303052745615129612145859444321507490514914539509810013887379263799648737283964168975551322759620118382486507469854920380976919326064376087432093856028156428497565493079097338541855835157894098140076918923890630905425348838968317629041202129491671958119357912031625143440965031328352167280213724159473440954983161383225054867081722214751384251667904454166173032008203309028954888085167972584958134071321805339888281393460498505323404725950972143314925866042485114058195797115641914588428330005256847768743059163904943068713431187961896374755033628209399493436903210319768981120555953694654247041733238953940460353253967583543953505167202616479613477909123279952649290451511483079233693821660107028726519381438448445326395173941101311525027504657493430637665418661289152644469262228843662994627324679587363835019371427864713980540382155134632237020715331348870831741465914924063594930209211220526103123906829413456967859585183934913823408842743124190991528708043328091329930789368671274139228900330699958759218152976124824091169515877899640903525773459382482320530555672380950222667904396142318529919891810655544124772045085102100715223523427925312669301082706339423217625700763231391593497099469332410139087791616512268044148097656189797350431513960669132583790337486208366954750832803187867077511775256639634792592197335779495554986552141933981702686399873883470102552620523123172152540625716367712700107609122815283265089843595689759610383721577268311707345522501941217015413187936518185020208773269061335921820007623272695032838273912438281981708711681089511878967467070733778695925655427133400523267060400043488434329027603604980278621607494696549892104744439278719345367017986739208038456337233119838558626380085163455971944419943446247611238446176157362420159350785208256006041015568898995017325543372980735616998611019084720966007083202805699170425901038769286583365577287586842504926903709342620280223998618034002113207421986429173836791762328264446457563303365567773748086441099691418277742534170109884358531893391759345115740238472929090154685591637926961968410006765983997449720472878818312002333832980305678654808714764645128242644782166442666167320960125647945148271256713266970673671446177956437523917429285039870225837340698523091904649672602434112703456111141498357839017934997137909136967064976371272484666132799082543054492955285949327938183416078270913266808656559211027337467001325834287152408356615221655749984312362782871066494015646701419437138238634547296069786933359731095371264994162826564637084905801515382053383265112895049385664687529211359322202656818564182608275387900024079158926460284908949222999661674377313477761341509652624483327093438984120569261451088578122491396169125342029181398986839013357958576244351940089439551805547465540000517662402028259448288338118863817495942848920135200909510078649418682560092739776675856425983785874977766695633501707485790272487013702642032839657563480108183561823721770822364231865915958836694873224117265044872683923284530109916775183768315998212632371238543573126812024451754018521326637405388029012497281808950215531006735981844304291052884593230647255904423559605519788393259303395729346630551604309237856772292935372084166931345752840118737468546916206489911647269094289829710656068018058078436004618662235628745913851859044162506632222495614487244138138497637971026760208455318241119639279410696194654264800067617276181156300636443211162248373791056236113588363345501022861705178904405704195778598333484633179219044946529230214692597565663899658937477287513933771055698024557574361905017724662145875923744186575300649980566883769642298255011950658378431252321353093712352439691496623101103282435700657814876772991609411539540633627524237129355499267134850315782388995675452879155784204831057493300601979582077395585228073070489509362355507698378819263571417793387502163443910141875767119389144162771096028594158097199134293132951459243736364564730350373745385034892861131416380947523017450887848856457412750033533034161380965600431058605483557739466250332300343415878146346021692350792161110131489482818953910289168163287093097131841398154276788180676286509780857182621170031400033773015815363341490932370347036375133545376345210503709954529420552320788174493709376770560093063536455109134816273782049856570556087842119640399723445564586076895155696868993848964391952252323097033010372772277108705649129661210614940727824420334140574414464599682369661188784116562903551178399440709617725671649197901681952345238074462998776648248737533130181427639105192346850819790017965199070504908652374428416527766114253515386651627813160909648028012344933724278669308948279134654439319652541548294945778757585994820991818245224493120777682508307682823350015970404191995605097053646964731424484538258881126027539095488526397086523390529418296918023571205453282318092703564917433719320806287313035896405708737799678451747405153174013848780828810060463889367116404777559854812639075047472950126094199903737212462016770305177903529527931687663050998374418598034988212393409198050551038215398276772913731380067153392401269545863764220650978108529076390797278413017645532475270737887640693664200121947457023582954813657818098679440202202808226379570067553935758080863189320758644442066446916493344676981808117165686652133896861735924509208014653125297779661371986959164518694323242464044016723819780207283944182645021831314833660193848919723178171543721921039466384737156302267018013435159304428538489418256788707212385205972638592249347636231221881137063075069182601096890692514171425142181534915321290777237485066354891708928507602343517682183550088296474106558148820492395337022705367056307503174997881870099892510201780156010422778362836443237297799299351609258845157720552328969783331264276712910939931037734259105923032776526676418748424410765644477670977903923249584163485277351719810646738371427429744689923204069325060628344689375430167878153206160090576934049061461766070943801109154432619290007452098959592011594123241022748454826054043618718363302689928586235821456438796952102352666733724344230915771832775658002119282703910423919664269111553335945696857828170203254955525288754644660746202947661160044355516047350442921279163587484735015902155221203882811680214138658651684645699648100156337412550984797301386562754601612792463597836614801638716027944054827101962907745436280926125675071817736417497632544367735036325800040429199069631173977878750815602273688249670776355598692849016287686996280537901818481488108339469000163807910759607455046889126867928123911488800367207297308013544313253477130941867171786075229813735391267728125939582205242899913716906856504215750567299912741771492796088315023586978161908949084877177225038608726183849479397574406649127605188781242336831254672783315131867589156683006792102159473368585912013953603016781104134444110309033887615204882969091046891676715553733466225455759752026247712427962259832784058335858976714742057240474397202328959037261486883880031741464902038435903585279931238710428459816089961019456916469838377182672646852648691729484141530046040042995850351641018990275293668674318349554474581241401907546816077709779205793838953781921288474099295370405469622265472788072486855080465710431238548733516530705707845842433355509582219128627972054554662670991319023703117796908927866231126613376711785129430593232816058265356238481641921447325437310020627384668123516910163592525882568064389463898808727352844064622081495138622752399389387349050826254724177817025820441298537604998278990200834983873629924981257423545684390230122617336658205467856711479730650770354756205674283001874730191973108811575167770050714320127263546019124608004516081086418355396699469369473222716707489728504641953929664347252547243576591929699490616701890614336169070561482809803632434541282299682759802266940456421813286245175496521472216208398245945766133427105649571935644315617745008283769357009954195418390291510331879339076142074670288679685949854397894573007689398900700739246974618128557646622654129132040522790712128206537750582800408971634671637090249067747363091369040026156464321595609108510924451624544201414426416601813859900174174082442453786101584333617772925806111591920084140918881912088582076270114836717607490469809144430572622111045833007893316981916039171506227929862827094462759150096832263450737254513668581724834984700808401638682097263713452054398022778663372932908299140106455897616974559784092114091676840202693702292317433344999869018415108889931651250900011637191149948520248215863962162949817530946230476048323993793910021425329964762351635690094450860580912024599046121186233182786144647277955232186359165518830579306577033314985100683571356243418818844057800288440181290313786537948696146304677269145529536901541670258380324778422724179945136535822609716525883567121335195468383353498015032693597981674632318476283063405883247312289512579442676398779467131210427633808726957386093146315391485487925140288850251897880760238389956156848503919958550292560541767676631453540584962967967813494201160033258744314387462483138502149804016819407956872192684626172874034809679319499656042991902818105976032632517464050164546062667655290106398687036682632990505777062663978684535843840576732982681634486467074399909175040188923192675575183540549560177329071272191345775249057715127733584233140083560809269622988941630472877800547437984985455628707299684073829372186238317665247160909671920072376588942261865504875526145578558987730087032347264183848310403948187436162244552861632876285411759464604970277244907992751464457929825498022586010017724378401677231668020041625472441794155478105541780367735533544670303264696194475608128319330956796855827719320312059416166939020496653521896728226719726400294933073847175447537619370178829763824872333618134994145416947365492548406337936743615410815934649604316035443547377288023610477431153307851599029777714996102746277697596124888794486098633494228528476513102779262797439819576175055913009933773682405109025837593451700153405222661440772370508900444966132958595360205560340094928209438629946188347909328941610988565949542131143356088102394237060871080264659132035601218759337916396664372828367523283916888653737513357948598601075693748896456571872925404485086244499478162738425172293439601372124062867836366758453319047439547406640152608719409157439552827739043038687727282620656631293874598753177499737992930432943717638018562800611416195639424143122543970991635651028483157654270379068371757648702300523881974987466368562926550582228877132217814404895380996810721430123946935309315240540812157054022744145218765419014283867442600118890417245705374707555505816328316872471102203537271661123048573404608792725016947010678311789270955272532221252243616733433663847565909497282218094186840742383515678688934211482039058242243242646436302014417879820221162484716574682911463154075637702227401358411090760784647800701827663362279781045463311312940448335701348695851652674595151876800333955224105481817678677721527982702501171958165776035497329237247320678536902575362339712168843908788792621882023055299371323971943330835362312488703864161943615065295512673342071985022597714086381220159808943635618085970100800816225574550391013219819790455200496185837777210480466355338066165170235950971332036315789456444878009456203697849734599020046068865727018658677578427585306457066171271949673710839506032675015324359090294915169737381108979347822976841001176579870981857251313722677497066092504818768355160037146386859189130117368052187432654260637007105953644250627604582523368805525211815664175534306811815482678441693152844084610875882143176416498356631275187281829486556585242068522218307553061183933269341644594153426517786533979805808281588063007499528975582046866125908536787386033184429055106897786984177356031181116775638725899115168032365470029879896289861810145964713079161443695646909095187885743988217305838849808095230775693588516160277195214889983586323231273089098615607773860069840352678267853872159209362558178898134162474864564332110431948214212997931881046363995414965394415013838687483848702246818293918603195986679623634893092830878407124004310227061375913680565188613134583079907050036075883272488678793240933800718641528533179435350734018911936385467300006604537837844724692888305469790001312489521004469490320588382949236139192843052491678330129801922551570503785218105529616236375236479626857516600665393641422730630016486526138918422435017974559936167940633035221118290715975388218397775528129815385701687022026202746786479166440307290184454979563998448368078519970882014077691992616749911483298218543827189462821653870648585886462216114103435703428788629790834188716062144300145332750297151046731560210000438695105837737797660034608876248616409386452521779352899475784962552439255986205214090523462508478304870464926883132894705538913572907069675995562985866695597216865060520728013421043557627791840217976266564845802615914071734770090394751680177099001293911378812485342559493128666534650337288463906499684606447419075243133239034049081952330443895590605478549546202632566768132624359250202495162756070809004364604214970256914885552650228103277621158422824332695286291376626754819935461181439133675797001412558701433194347640357253769143888996830882628446164255750340014289825576203863643841379065196129177773541836946762329829049812617176761915542925704384322399184822617443504701991712582146876831726460789596905699813532644359739651734733194847987580641379268854135525232757204573294772157068500169500469597583893735275386226649434564370716105115216171762375980509005532321548960628177943022686405795558457306005983764827033398594200985823514001795071045690191913590623041023367980809072401963126752689163621363510326480772329149508591512658121438233710729491480884723552863941959934556841563445779517270333742381299032601981605719711839506627582203218371360597180259408706155347131044822727168483955241059136059198124449784581108545112316681735348382537248253476367775817128672058651482853172735690698399351107634320913197803140316588973796283011784098064101750165110729329078321774875662893106503838060933728413992267333847782033020207005171889417064651462383667206327426443366121740117669149192355709056448030163422943018376552631084501725103075409426044096870662880662659005690824514076325991581644993614551724520570204430937223055502172222997062097492686097627874096264487720560430786348088857091434647932415362143031999656956107535704172072853342501713255588181132955040952178301394652164365942629607685705856985071571513172629289600725876015648405560886131654118359586287106654962825995351271932446357910465543891651509541873060710150344306095823022574559749442750676309263225299663382193952029279179732470945596910164029836830804263099104815675036235096549243025895752735214124451495424629722585101207078021101881067223479725793306531877134384667138075463834716354288549576109428418986017946587214444951988015508040425064521914849899204000073106723699446552460209087678823000643377256573850109698990581912909570798666994537650804079178524382220410705992788892677457520842875263779867303605612307107239225815047813791727312612348783340344738335736019732359466042737046352013271825924109060400976385858577169584195631095777485295798368447568031218748182028339418870763117316152898117564297113341814972180780404650776572044570828594174751149261793673799992201817893994333377311469119707378610419639864221660455889656832067013375057450388721113324367398402841886391476334916951140325834758415141703256901617849314557069041698580502177984976370147589148105432058549141006622017217197268789300121012674812702359408551626016894251114584996583155896604600915257978816703846259053832569205204257913789488275796032788775354668614418268277976512589535637614859944850497066384062661219571419110632460617741805772123816598724724322529690985336284407990300075945462815492355060864815579289619696170607152015898252997728035200026108888141765066362169059280215164291984840774461436178914151915179765378482826870187500302648676084332046585254705558824102546548060404373727718347690147206642344343742555141291785030324712634180765251878029255347740011048539969605499265080939106913376148418348845963656215266103322394174670643683405047499433398022856103130830384845712947673898562939376419144070365075446220611864991272496437998758065378502037531899726180144046677930501403015807092662132292736497186539528665675385721151336061144572228008511837578992195430634136923022931397511437024048302273576290399117944992484809150710024440784828665985794065255391410414973427802035201354199259776281781828253720229201081864494483492554217939827232793570958287485971267807831342861807504971757473737302962804773769089325589145981417248526582995108822300552232422185861913947951842201315533196343639226842591641686694381225371359607100317436519590277125716045884860448206744109352153279068160320542159679590664111201876185312567101502122394012856686084694359374081585364819125280049207240421721709139831231180540432770158356295136562746102488277064888650377651756788068724988616570948466657706745770002071443325255557365570831503200190829920965454987374197566086195334923129402639049309820147003711618294859399311999550704553811967112893677352499581820117747997886363932864058078108186573376681578938276564506429173966855795550531887153145523530703559947401862259881498546607377876987815423603970809774123615182459640268699796095645238285842359535646151854481657999664606482613966187203048391195602503811115509384202098945915557600838979899499645662625405141956107800902986670146352385320660325744668202594306188017730911092127411382691487843556793525728088755431646930772353637682260360801740406609971511768804349274891971330878229511237466326356353285173941894665109437457682707822099284680346841574431277398110441867620329544754680775111266636854799444609348099929518756664999022616860196720537491499512268236378958652454628134392893383651565369924131096381025591146439238052139078628935616609988364791756331767258565235910695203268959900548847534241605866898200674831631742863291196333991327090860650745952603571573230697121064234240815970683287076244371655327502287978025986909811112265588881515208374824500344630465059845696902761669582789829136135353062913314278818882493421364424178335193197865439402014653280834103417852724898790509199323692709965671335077119058999459519239906151561654803001453592125506964053452638234521559992105781913710301889792064088839747676671447273142544679235005246188492374553075757349027073424962988799969420945959610087025013294533253580456892857072412079659198092255505600619712835412702020725839941711755209208201510965095266851138975771508108494435082854587499129438575631156683245668279929918615390092558717168404956639919591540342183645372120236786086553647451756548793189256440852744891909181934116675835634397588860463494131118752410384254679379992035469104119354431132191360681296575685836117745646546748610619885914148057993187253675312434703354826375270813531055708180496424985846461479734675993159465147870250652710835087823506565323317977386566661816523900176649884854560549613002157761152558133961840270678149003502528768236078221073971023391468701597358685890152970103477805032921540143595952986834046574717562321966405154014779531674617262087273048206346524691099533273755610905783784559454691602236876896414259601646896471063480741099285464823530835401323329248640373180031952023174762065377261637174453605497266906017111767610477749716668901521638389743117141806222223457185679415072995262010862050847831274747919099968899372752290536747850205000386300365262188006709266741048060273419977566600294279410904000646542810744540076164295253624602614761804717443228899532858283977621846009676692675812703028065195354520531735368089545899021807831457758912802039700536331938211000954432412441979491929162052344213463956538407812094162148350011558836184211642839924540275907196215375701870670837310122461413620489265556681094670763865360830158476145125815885696100303370811970583444528746661988915346642448879119407114239401159869707957459463371702432684848646320189863528270923130470892156847582077530343876899787023234385843811250117140132657693205549118601535195516546279411755939679479588103339354132897025288935337481062578756203642942702575121211373302138119513957564191226851559624762032820387263420662273478682230365220196557293259050681348492922996472482293597878427209455782673299758538185364423706173535176530603968010878994905066544915445779521660385523980137981043405641824033961624949104547121048394392009459146475424247859910969000465413710916300967859515639473321909345118386699646227888558173532213268766349580591237612512030109838678411957258877992060412600498658950272471331467637222043883985583477701125994246912083085956667875319424651314443899711959681059379575321555242046594100814183511201741968534326723432718680996250454324756887020553419691995453009526443984463843465988304182629322392956126100458846442442850115515577659357803795650268061307217586720485417971578964015542768810904758995646054883629891402265800261341580394803579710190041515476550183917557726778971487934773727475257438981587050407019682151012188260880400845513327951628412806796789655701639170677798415291493974031581678968654488413190463683321791150591078138982610262719796968264111799186560389938954189284888517501225047547789995085440839838007254314688429884126160426822488230977885564957654240171145103939279802909976049044288321989767513205351152305456664671437959319152726802782102415406297958288284663556235809867256382005652155199517935510691277105385526619269035260813677176664350712134539837113575009758544059395586617378282971205446931822604016703085309116579731132595161017491934682500632857770046869871772552265257084287457330398597442306397518372099753390550958836236428144932474605224240519728251537875419627593274362788192837402531856685450408939294010405616668676644028682116072948303052364655609553510799871850413521213215347137706676813962114438916324032357415737737879088382676184587563610264351829518153924552117290229852785180255984784071796079041144720414760917658043029845017468679812775849717317332873052811349695916683878770723159683343225090702040190305035958919946666520375302719237642525529103479503438163577216981154643292456089511587320126754249757105208943626395013829621522140336210654228218767395801212864427885474919289769593157668919873051763886984615033545948985418495502516906168884191228733855226999768226096450075045000961168661291710931802823550425536539971660547539073489151896500274423289811817092482736108638015760072406016495470823313493615824351282990504054053339925770713210115037138986950767134479407480978454163281104063508048633935552384057355808637187635302618679717256081553287164361114748751070335129139235954529514074379431449009508099328721532351959996167502975324759319099380129686403797835535590713557083699473119235385310517366691540873124672334407025250069180267477250789589034488566730814872994648077864977093619693892908917182281340028455525139173559784561503531446034094412115120017386972614667869337331543410075875149082958227569193505421841064482649519438042405432553459652483737853106579790379775050314364746514224847688313234797626736898554749442779499165601085282576189643744646568197893194220775368246611104276719364818363605341087489710668663188050265559295681239596804492951666154098026107816916894187643533634494829001259293668405913700595269149344218618917421425610718968466263358744149769739215663927676877201451533022418531253084427272457711615055505190762762500165221662747962574244254205467857674781909594865005757110162648478337411980416259408133272299058914864221279680429847253562372028878300517885397379094552651351440731300498694534032459842369346270602425794325636606405975494712390923724581261545825266673047023193598665233788562442291882784364404346280948882887121019686427363704616392974856167800797799596968433677303524830474782406699282771400690316607099514731541919199114531825439062945732986866135248865005747802519776074426607983002915730305231990521857186285436875778609157269252325731716656252742758084606201770464331012124434092813146597602213604162230311677500859601284752892594633483124087667401281705430679852618689498950049182750083049989264720349869653633262109198306214950958772282608155667021556934846340797768795250382044423266974792648298990169385115521246889358732898783362678193617640236817146064951855087805966353546987882050947620163507570900242014984009678678454053541300504824049966469785580026289318265187087146139095214549879923004317795004895695292801126986325336467371795193630943996091763545687990028145151697437175183306322329421991321376145064113912698371289708293953608328830502560727275635483742054978566598954690899385589184410856051115103543674778107785005727181808096615427091430101615150130865228422387216181090431831637960464315231844346697999048653363753192959677260808534576522747140479419731922209602965825009374082497143730400873769880687970380472234888258198190256440868477497675089991641535021602239678163570976378140239628250543328018287981600469103366024159045046373335974881199986639956171710899118098511976164864992335943282742759833829310998064616053602436040408483796190725421658694094866820923961430838173036215206422978399825336980270399318040249288144306496147476000876543055716726972591146319906888238930053800615680077309844160613558437012775734637088220737929214095487179569478544149517315618281763439295702347104600882306375098775213912234195484711969823031695444680455179226692606313274982725209063290032799729329068272046476503669697652276736454190316398874330422263220213253681760441696120535321743527649379018772522636268831078793451941338259963687950209850330214723076033754423468716472237955077941303048654034889554002107651716308847597040983313061095102941408655740710746404019373477188153399020470367490843593090863547772105648619186038587158820244761381603903785326601858425689141091944645661626677537123659928324818657392514294985551415121367582884232859577594126844790369126620153084180417376989637590025469994541316593419856247807144349772019917026653807141072599106487098972593622433007067604760976904563415765733955495884489480936040771556887472884518381060690380265283182755603959053815072416276150472524877595786507848945473890965733127638529626645170044596263279346377211510285454723128800390584059184988338107113660736575369184280846558989823492193152052574783638552662054007035613102604051450793259257982274060121992493917351221453367079135006074865616573018540492174771620516784865079135733363342576859883612527202509440194306747286679834412930181313442990882340066529153857637791109557080006001435799563518115967647250756683677260523529397730163482357535728742366482946047704291664384035588464223707601117748210796259011802655488689951812394706259542545844913402034001964429653706430886609252688115495962911661686120361953192532626622711081421498561326464672119548011424551339463823859085409178786688269476027818532831554455652659339124878856395046441960224751860114052391875437425265816850030523018770961524116539806467854442731244621794913065026310629034027372604799401819299544542972563775071727056592717792855371955474338521823094927032183436782063826553411571627886039901574952080654434094624466346532535815748140224712606189730608605590650821630687096341197519257743186836717221390630930610193031823266664206281551296476853138610186729218893470393420722455567912395782602489783714735568207826754521426873142522526017958897591162387208075805272210313274447540833192151359345269613972205646992477182893105883947691708514206315571927036363450395296043628850885551600083719735263838389967891846003270736820832348471084717061608791952273882523475063808116060908401242224314761035633289406092824301254620138060326081219428768479071925462463090557492987816612719165482296443172635875245486075630206676569423553427746176355492318174561591856680616864287149641292905601300539134695698294908910039912590882903487919433686969426206629469485149314726889235716150324055422633916735831027285797230619981758687004922274186290770795088093362153463038429675256043696061101938427238831075877716535947786814990309787659008695834800431371768329548717526047141130648472708872466971645852187744421009000909161898194134563050289504845758221618873974439188330855099085660085431027963752474762653530315586845151202833966405474969463439862882919575103847815390683437177407140956283375544135679554246646013356636173058117116460627178540788984953343291003159856739323056934260853762309810471718269409376867543018370155575408223715380378383833427023795359344035494521739603270954077121073329365077664656037123647071092725808678971811824937995404770083693488892209638142815615956109318151837011351047901763835951681446276709034504574609974445001669186756610358893134838005127364111573045992059554711224439031964766427610381642859180374883543606632994368997300909251776011620437614116166881281782923823112217458502380807337272049088800951818895763141031574476843381004573850085236520693407100789559165498130372929444623063712843579848098719641430851468785250331289893195006457225822811754838876710610731781692812424836137964756924820763213564273572616098251424452625159525148752738056331509640525526597769220778066443381055624435381362589418097880156773789513103131573611360260478907619455918202893657701164168817036442426942830574574715674943915735933537631148302466687547275666530598197468223465786999722917924161560435576651833821670591578677993118358201898557303448836819344183059870218805022591928180477752238844071678947804147014146510735804520214991979808120956921956226323137418709797313208708645522367404161855907938167456582343530372833095037290224298027684515595286569231897980003830613787324345465005827227123250314207124881002906972263111290676290809511457580602708060928015044061394463506430697427854694774598768210044414534380337597173847772320520653010378613264188235860365690547733430709117591525825030294107389144418183787794906131375367946548933752603229062776319833379768166417210831405518641333022247871185118170365983659604939645714916860056567713605331924231852621667602220733688448444092344709485680279058941918299694677244562694433082412438461604082840064248670725836610114334042144736834536384965447010678273131695384359191204402839495419568744536764598754887261706871631095913158016097223820497725773074545629791279061775316632528572058587663767542829179335499236782120086019043694289561023017317431503522046656750884915930259266188165810087016584994564955868556282087472483183515163391892926465588805936012751518382354858934261652230866973145114120356599169341030769747744519470438367396000765786282454720646173808046029036391444938590124223801733770381546752976455965184926760393001719430425117940456798621146301384023710993472434557947300489298254026808216215223465602742584865956870745103527942916334059150250759923986112243403120569997805162238787722303963597091328568304861603621275795616013285618663881460047222005800175802822792721678427206499669568409057525907748861054938061169542935690773777928210841597374696131432918085104469539734850675905036623917221087323331699096033637717054747250269417329828904002393728795493865404638285967422163182015301396297343984795886286329347466506902840667190180812655399736759167997590108674839200628778885311027816950875457403846075946169195846106559633272834856095703055725024944163370665731502371268435819841541031544010084303806314421837767503498134081693252012408134522859746267151771522230637413592557475135351606691083594439996923158981567320330271292842412196519363037344079812046567953229863573745890316540070164722049894456290503958737889126805655164642744601747381752963134587393904845604142034264655604221122391346310231612908364469889012472851927785891952287736374404326592646722399821864527976648266730701688027220523386003728429031558284545938543490994494207509111085321387448232161510078089225162851232757243551019990381959933500326414460534703572930739125784817579874683534296297496525454268642349492703363994275193542400019731250988824196000957662572176218604745737695776495822017962583923763917178557994689224967501792519152182196246535755705642282203995466826483298229961672170801568010807997771265171562742957636669596619835074356671322183833585095366658066055971483767738669225516034636443862699772957506584689295998091689499818985885295378744895195270977662626841770885902843216763521326308388127663353633190041343328443476300679820237169336536528805801563903605627227521872724547642588409952164825544536620838117891177252256826114780142428969709671219675020944212262794370733287034106463121005573767274502716389752341114262878287367583588190567421630615234167894760568792771547897143262220410695879471864354399407386399489868361689193778366483271373636546769011737602466430822853624947126051732937772472767976358658060193962877180606791224268139228721340616948820295068316545897076236683025561675594774987151834269892089521826447105149114194411922770109776166458500689638494261655934731129610642823790482160562100942650761738380824790305109987907196118528325567874729429071510414689481049167510352958972423818022881512765822571907055376524552855115986364212442841762562301395386699703089436459076006849380408752108541598512780703332077798656359079684621915349445876771700637785731712110365174863716340983856265415555732926646164022797911959752485253003767417740561257003036258117048383853912072731918450647136691225764152137698962609403518041474320536003692341790354407357030583147416234528401889408089831251913077418233389818803163391595659545434057777843316811625518980604091830189075121701929836228970995989834054849622842893984698479386686142933245439835926370366993551842316616152445059805767457653355523387156782114666899968452270429545897109221636525739659502896456377660389880379415179178679106751990099661392062387323187867584205442793963667591041268218433750157430690459679470466856023582839197599752858653843381891200428537875493027689721681991133406972822555353000447439588300797997365184591314379464940862721496697191003593999747352627641261259953509026095400486693989558994874213795908028931969148458268731237101802297753011906842804407809381565980816946116793744256632446567996063637515463048331127222318123383717798004397310874026475365825756573510599783142648318796198437654958778036852617518353918449204881986297863297431369485117805792986364521932324813393930907545663680385136306197180339579795225395086974325465026591235850492830288329344892845913736216248525288774428918511040937463335906602332397119228144507355883733240578148626622074862155133750367755854941386783529282731090038231168553745209010951011747966630033303525341432300242882480513966314466326560815820452168839223120256710653884595032240023204536338955215399190110352173627209095655008464866053689754984789958755961031676965871612819519196688933266412037847504170817522737352709893437171676423299569356971662137827361388995305157118229608963940553804319393984539708644186542916558531686975370527607010614880257007853871508357794809523131527477357117136433564132429742081372668961491095642148035677922705666258342897734077187106498661504474787261642499766714813830539479849589380642028866679519434827501681920235916332470991859425203928180839530204349799193618533802014070724816273043134189859425038584043659932816519414973772867295895828819074900403315934360761896096694948000671943714240581053275177219524743449834141919799181799098646315832460215165755317541561989406982893157458518427833905810294116004986993077514285130212862025395087323887793574097812881870008299448314766781836446565100244678274456955918457680687049780448241057997107715775790935258038242273776124369087098751891490499042255680414631313092401010493682414492534279922013463805383423696437674288625951401461782018107341005654667082368543128163390496765587899014874779724792025022272181694051590421708921042875521886583086084527084239286525975361462900377801670016546716816053432929075730314665624858096395500800233476761870680865268787227831774202140689807034105062002352736322672919640340935712256236594964320769280581655144286432049552568385430792542999093531993294329660182207879331223232259282765560487633999884784264517318903658797564982076074782702588614099760507880367067322681924735136463567586112129530746447771494233438678767058244522966057970071344589875941266546094142114475400072117906074583306868662313091557800059665227361835363404399914452949607283790073382499760206304488060645748927405477306939713370079627461355344425147454236546627522526248699160771111315697253929437567322157587049524172324282065553228088686701536814829117385427357971541579436894910637597491515245100969865738256548995852167472605404683423386107608236057829419480093343700468665682585798273238751583025667201526046843614126529565198942911848879868190882773391472820637945122602945157073671056377200234278118026215026917904004880018089018473117511994254605944167733157779517354444909657521310263068360471403314423142980778956170512569300518042874723684355364027643927779086389665663901667766256785753542399474279194425446646433155541382655433884877788599720636796606923276017338588437631441481135616930304684200174340613952200724036588127982491432617316178138949709550383694795946179798292577409921719227832230063873849961384343984685022347804387337844709287038905364205574748362846168093636509737909002041185258355252015752392808264625557856581902269583763453426634209462144266724539871710477214821281576072753051733309634559093236645289780191751329877479529290995980697901485158395404442839883817975112453555484261267842177977282689897350079545058342737269372883869021252848433709174796032074795540809114918662086871848995504452106161554370832995028549036596173627265528680813247931066868558574016680224082279924333943609362233903214993572625074806174091736360623654644584763846478695205477195333842034039902447610560106127775464714641774126255485198301446274055386018557083599815448912868634807207100617870596693652186748059435699858596995540893292195072693375502358215614249945382347811383165916626831030651947302334193841640768236993576687234622196413225160762611619760347088440464730831726826112777236133819384906065344040439049098641269034792635039435318367410517625657047970644780046843230694302417490297311819511329357468545504847110787429054998706003739831137615448081890676207534245269934437557194466654535240882872675377591970745262863228402196295572479329871328524799946389389249432869177701901289142201887477604849398554711685248105599915744415515074312144061203337628695337924395471553942131210219544305567483704259075530049506649948026147945247390128028426466892294556649586213081189135002796549103448061501704072680100679489268553609449903739283835206279928201815764270549629974019008374934449506007543655257589055465524021034128621248090031629419758761959419565925567328742378561126697417713671044248219166714996117289039443936653402942265145756829074904021534010269239649772759047295733200279828160621305231306587315130769138323171936266644655022907350173476562930333185209492984752274625345642567022546957864848199775133263932215794782124933070511073674749180163456678888107821011518263148787551380271013798687512993751333038438856314151759089289869561975611230253108750571889625357632258342757633484210166681098845141414693117193142720280072234499419990039649482454575207049220916206142229127953226882390464982390815929611110037569995292512506736882338526482138969863840524370494021521875478251633470824303035210369278497625173178258608622156145191655734789400195587047847416588473648038659951196514095426150266151476512208202458160108012182759825774776523938591591650674498461491611651538212667269274612905337531630556544407934278765502673012145783248859487368990735121661183978773427158728709123113834724851460356613821880148405607160746524411188418007340678985871592739824521473283172146219073304920608174409141253889180879685389606278601181930994892408117023504135541268238637443412092677817297906947147590182648247611124145564239377322245386659928615514753427733706833441730731508054401388940840872531975955388976139864001656399069346006707805010585671966367961671400970315351323869728990017498629488833623898586321271765713301420713301799923263819820940429933777903452616658925779313954051453697304294620794880331410992499071132416945042413912653972740789849530737303641348936880603400096406315407018202892446673150597363213119262311791427949448972814772640383210217207180175616010251111790221637034762975722334357888635370305350083576791801206530166683167802698738607554237482985482463609816089576704219031456849429672866463623051017731322685792328321648189217329415531513869887818372322713640117558813325242941353486993846581371758576143309521476175517083424324341747795792263386634549594387368078395699119870593880855008375079840511266589730181493210619507690075875198368615261640872525948201269919239167222737184303852631072660000473678724749158286016944399200415711027060815072701476196799714901416392742828895784243980014979856581303057406200285540973826878198911589554875864866457092317218258703429605082034159388060065618457350818040323477500842141005745773428029854040495555292159864049332464810407730766116916055868048573026064677642585033018361743064133238877079996986413722755263176496628824679010945311171202438903234102599375115846519176751380775754483079530649250860028356296970450161379356962667597759234361663693750353686994545503928744499403283281289055605300914164466086912472560214553812482853076135561496184443649230142909382893732153128187975411392194156066316227848361521406689726610271237157795030621329160019888063691276474165670674854907953427623382539439900224989728836602639205187047906015840843029147873022466513711443954182534412690033311819142680707351592841804151005551991465649348727969693519929631171958212626272364580097080991667528203658186991119483658661027583758633229932255414774792104213241668482649531118265273510080316599588888148099457372937856814114380215238767064550632330672339395519642603974438298748223226620363528613025437966009431045001586048540270367897119346955799891891123022333816023022362777260848462961895507308506980615002814364253366663114333216452138825573463293668709567084322525643338959978124021641899469783483203760116139138554999339907866523058603320606419492989310124230811058001697459750385168871120377476315773118313600027425027224515709063044963692309383823291750764696840035564255037971068919998123196025337336774379706877138147475521901429285867817240442480493237503309570029291266303169705874092144564720227107964847786573106608321730937680338217421564466021903352039815316189357870835616033022551621551071794606218926743356419600836634838358967034091155130878201387234947143214004505139414289983505760387993433556776280233465658543512193618968768314398667357260408695111366498812299578016188828341240041261422514751845525025026408968236649464011778037767991571801463865547332652785694180055013634339535028708362206051218394185162391537097907680849096741942890611349799610346720773549595938688624279864114379284356205759555001443080512676644321836883214345837085490822400145857482286068595935026574057509392031358817224421649554168897855582651980462455278983432895784169688907562374672810448030185242177061365332360738562281666645976540768447159639307820910170907633779177114852054933679368684308324041267892209299304118905017564849174994523937706745245780191718416795418255543779302992492778924162772577881479747704460054236693461571352084174282118473536523675737023527914598376457122576461226056281278521695808928089883945944061653405219325148433061053227002311336803784333773897248813078743256149527442435847530111503451037376882238375738042820073585869380443315292531299610250961137616701875685259212089291313544731963084400668351551609139256929121757843791790048088480230293043926309213427686012265586304569131335609781567760987118092384406563531361826769237616133892378029727207362439672398541444807572868134367680005738239636107962231404294907280585514447713386823144995479293381312599719968940722338474045425923166397816082093992697446763239213707739918998533014838146223642994939020732850720980409053000591600916417101756054098143019064443799058312778266257622881081044147040977082480779051682258572357326652344149561690079855208488418860273527808612180494180600179411471104106887037386743781471612361419504740565210410022689878585254706890316570946771318221132055050465797018693377692782571452488372133946139878597863200480117928145468590965326166160684031600779015849468402243441639383136187422754177121703361511637823590596851688805613048385420875051269331441717058805172781279175640532829294273579718233608427846762923249803181698286541661328739090741167346123671090592361551138604472463787212446125804069317247691522192174090968802090088015356334717756643921257339931653303244258998525989667247441265036084164841607244821259805507548512323133313006214900427085427359859130413069182792585845094401507192176047942740477402533143054513677103119475445213217322258755504897992674685415295388714436963994063910992670182195398906851867558685744344692137920945906836779295282467954373022634724953594663002359989902482998538261403954108124273935302075751287742739928248669212856372400691848597711264803523760254697143093166365397185146238654216714292361916474021725477872389640431453641905411015143717737977524636327416192699904615958957939406229860414893025356786335035263820698214870035780611015522102244866332471843670355023266727497877304702161650197119374425056296399165593695935576400052363604451411489161551477763018763021360688252962744602380775231896468940430331821486556370146924764273954019094035844372519153521345576106980464697394245117979990487549514220100430902357136368926194937636026736458724929001626755970837979956474873545316865319001764272227510394460996414393226725321086660479125989383519266944975535680969319626420140427883657026103904561051516117920186989006730270823841032802134874567200628397448287132982239575791054208192863081766319870482873886390699224618483239929026853924998123670914216134887815012340933879997760974336157509109925854684759230857253686136053567621469294242643239066267086028461633760515735990508698003142397353689284352949580994344654143161898064514808492926957494129033633734104809435794073212660124507966137894422084858405364460216165178855689693026851889508324767933004048516889344111258343965904222111527362762786723666658457575595854094862482616944802017917482230858350078622552163593251257683829249780904311020487089757150333309636515768045019660252155270803521038481761670044437405721312942528209895454562763443535757416736389801083105799316979179167182711458374352220263877718052502907916454147911736162531558407684955832881902935642012196336848540808659280951315050126029195625760329325128472504698819081464753243423638638602479439210151932351013901177899974835271864693460245542470283753000337254039100859976509876428328029084456620216783622672722927377802136524040288172170124909748994544308268617722393852508837607497421959426552173017333558513894074573481441615113808453580397402777950720518934871707229554276836558267067663139119722118115284665022233834909066765541683369079594094045764729409013543564092779693798420657388914819902253990223159133881458514872251265609275767958737592070139150292165137208511371975227343654584116220662816602563336320744499185114691744550622971460865787363135853890236625572854245160180804871678236888855753250662542623677026042158351601748519818854608600365976067432333464104719910275623586453417486317265563913206064077547794396713836538773776108283000199373597603704672457378809679398944937958296029107469016094512884565500714580918878795426418201453696599628426868823634958792770070252989609967989759419557352539142377824433027467082820087226020534152927358475829375224873779378991367646421537278435539862440158564886921016447816616029621135700566383479903340496238759410928867789202700775049515114057825652950150244849682047443797108729431085416845405130163109022671129519591405208275468664181373058379332361505991420452558802135584747515162678153094655412405240916638575512988948347974233228545041405273542350703359849645936995349596985542449782495869291791824150680530025533704127787034764462443292059068329018866924002223919187146031753996668774779601217906886233110029086683054317870093550669443891319133335863680374475306645024184371360308522885821217202312741670097403514315321318039780336802281542234901837374941179732544785941579621043787870721548140917251636154151633813889125885179242377272296034973055338409428899189191611862495805600735705272278749403212506454262063044694708042779459738171468103951928215506880791367012101099442207370246136871960314911623709679393546363964481390257117680577997517512989796670732926748864300973988148737807673637928867677811705205343677057315668958991815308257616065918437605050517042420932313587248166186838210266799709829664362247236448986489768571001736435473369556193476385981877568559123762325808493415705708634507334439766047803866784617115203251155282371614692006347135703833772298773213650288688688594340512057983869370027833123654274505322834626697864469207809440521385286533846279707480178724779884611460150776171162618007815579154723052147599430580066520427101171256741858602741888013779312799381537276926121140668101565214419035673339261166971404538120100408117601232705131637431544875717687615755549162366017628802206010686555241416193143126715355871548667478993986855108735762610069230213595808381452906422177929877487841615163494973097007943683050809556212645927953336906319365944132611179442566024330646193120029531236193480345045030043150967985881118969505373356710863368869446655641126622879218121141214251673481364724490212752525556476232485056383913916307609763649902889305880534066313524709969933625681023603922640435887875507233198884175905212113903766092726584090238735534185164264448652478057638261600238582806931489222314577587837915649022275906993464816247343997332060130587960681363781529646159632606987449611053683842031053641836753735941763739559880885911889201148715454609247356135159799929997222980417071122569963109459450977655664099727228240152936630948910679632967355058304122586080507404109166785395692612344991028197595639557117530118234803041810290897196552782457702830853217337415939385958532036455905642297166799003222840812595690328869282912601392675878582847655990758280166111200631454113151441088757670818548942877376189915376645051642799854510774007719463980462650777766140535248310904978998595108731126206130187571086437357447083662153774709726601886562106815163280009080861985543035979484798697894664340270292908991434322239203334871082619686989346111771605619106812260158744108330930703775068769774858403241324746437630878896661519725561803714725900295507184242454051292467290397915325359990055573346001116935570202257224427729502638405383094339993833880188395538215403714473944651525123546035267423822541483282489901340230545508113902367680386497238999242578003158037255554101784618634786906460458658260360723069525761131841342252747864648523633247591026705624663508025530581422015522820509891978184204250282595218800988462318285124483930594551620054559077761219812979540401506539853415790536291017779397769578920845109792653829056267364026367031519576504933448795137662621922371856429991508288980809041891810154508131450343857340325795497078193852856999262388352215208144789406268899360852398275371744909037699041455552602491901263414313273738270759503908825312235368763898141825649655632945187096374840743606699125500260804241605625335918562309553765668661240278758831010214952846008048050280452540636912850105999124212705081331949759171467622673050442250759152902517427746364945550523251863224113884061912570129178813841815669182372154008936034751014485542546989378342396064608136668297500193791150617094526809847851528621231713778974174920875410645569595089679697949806797709616830579416743105192544863273588851184365971435833487560274054001655711783091261131173141690666060676137976901231410996720131237303297076789887400993173096873801267405389236122303707797270251913408503901017399248773524088810408077499244126353464131818587924807605532681228815843074713267682830972031490498688844561879760154682337154784154297422301665047593933121322565101891753685663381397368363361260109084195902155821118166774138439692058705150742548527448101545410793595135966536300491887695236775791473191842258068025398184189298889430382247661864058565918599430913245758865870446530953326685322613212098258391805383608141447913203196992760371947601912866743086152172430498528063801298342553794862878247588508206093892146686937298811915601156337012486754042059114649308882190502488576457520833639214994419371702685762222510741662309016658670677145688627933431535135056882161651128073185293331240709123438325023023411695017455023605054758240931756577016048845770177621831846155679784275410884995016109127208179135324067842671617920134289028615832773047948309717055374851093804180914917502454334322174459241330379283816943309750129185445969233887332886161442381001127558286232596285726481215383489006985115034853695444615421612832417005335831805200829157229046963655531781523984687254513063505069849810062055148440207695393241550967626808876035724639139552782222464391225926519212884469611074635861482528200173489575339542550194754426431489032333739267634091155271897684298877836173466135353885076563271078143124350189651092384536602369402760606421193842276657552106636718796032175271844046515604272898695602069970129063678471616547930688683058465080828866141119791388228981124982614345594089618135092268576114746094061479372400088421535358620527801250142700552744683591518403733093735804943424839404675057083479279483381332762379378446292093239994175933749178997864849581488188651491693024515128355798181123449008271686445483065466339752560796159358308214000219516113423370583591115452172937216640617081316020782133412603568520131613451368716009803787125567661439231464580856520840397442173527448137412152774752022592445615203656082688901939139579918441099715883127800208982759358981064821179361579518379370267414514009028330644662092805498391692610689751510839631321171285132574349645106814796947826197014832043922061401095234532092693117622981394220443081173173943388679657391357643776428193536214678374361361615911679265787001377481278485100414478454164645684966066991395095245279499147694410316125757768637136346444770067871310668324178715562817791223390778412751841931611881558872296767496057520531925948476793974864141288794756471330495435550447902771286900956433579134051273755703918068223447181679393291214484495538977286966010378415203906628907812182401412993685904651465192091986053477885768426965384594457001697584225312412680314184562687225811320400564334135243021027392137884152504757045338780024673785714700210873146932545579231347572436405444481320932665829868506591255717455683288314403227980492741044039217614384057507502886084235369667151916685104280017489717748112167841608544544001904492422943336663383476844380726243073190193635710674473634136984673285226055701264501233483674121357218301468480712418566257428522089091045837273862273007815666689142507334563732595672533543161715865333398433217236881260038090205857199308555731005087715337374464652118744817488687106523111986911140585034922391567554621424675504986767102649261765101107668765962588100391639483978119866155851962164876959363989045003832580410544205954828599552390657581080179368070808305189964685408364127529051828137448787696395483063850897561464218748892712948903980256230468121751455023302540860761158593216034652407639235936999491804707804967644868899809021237357804570403808207703573875885259760424346088510751993344701127417878788456746566404719016196335467707140905908269542251964094463195476586530321047238046252499719106901104562275792209269041327536996341457687952422445639730183112914511513227578413203762258624582247846966697859479149816105226287869441363736831251083106828987661237826975063430472632784537190244479709750173968312144933572907916487799150891632780188525045584887827223767052638118037924778355400181174529577473397140123520114599019847533584348612970929285294241398655075225078089193521041739634934286048713423704295727578625493659178054016525363304106920337046910930975887829382912964478906132000630965607478820821221409784723016806008358123369570514546501812926943645783578156085033033924660395537976308361372894986788428511398536155933527821037407330768184330408936244605767060961882945291713629409675925076313486366060113461159804341474507055114907166406356887390206902794534382369305311334409013813928491635074844490768283866874766636193034123762483801758404678512106982906051961123571888111507236073031585066225745663667407206689990613206277939941128057597983328787921441887254985430145466629450796707076881350222305805622259429830968877328567889714946238882721846476181530458443909672482323482595879636989084566647957542001959919192407076158230023289774397481126904765462568736843522290632178892276432893605359479030468111141305863482445664891592113822588678809725643516464043643284160762477661143498803197922305378896711480589680615942791896474019549894662329621625672647390158186929567656014442485018217133005279955513125398499199339070831380302140725567530226000335657159342831826509089793508696989505426358430467651456689976279896062959251197636729077625678627694699472806060942903149174935905115232356987153971278667180775786719103803689914453814845626826040034567982486898478111383280549404905197680083202996317570430114850873840485918501572643921874145924646174047352752505067839922731216001171603386047107100152356311597347111531981987106161098503757589655767289040603871681143130841728937108174127645812061190541459553788532003666152649236100301570446272317777886498067007235988895287474813721901750747000055711081789303548950179245520673290038188140686862479592722055916279022926005921077105104481033928789912868207054489799773196955743745297081954639424316690500839843989930367906555415960993248678224754243617589443717914037871681661890939002438620386100013621936672808724142911080802918960931275262026678819020855957081118538361661288487295278751432029563932959105083496870290606928384415225794197648249963184794148146608982817256904841843260619462542766936889535407323634283021896949477661260783463284903151280615010095391645306145542349233938062140077792563376193730520256993190997894043908474435969720520659990178285376762656835586254526974552609910245766196140375378595945063632270951224892419318137281416684270130960507345786590479042438520865081544913501364916986390481256666108437022947302667214991648496107468032615833525803528582757990385840916676188771995398886804319916508668877817014396631768155922620169913966131537380212941600069069475334316778026322072262658818427572160554614396773362584629973850773077514738333151014683952964113973296724579335403901361073952456862430080967204609955457089748930487538979555444437913037904223460377687292360013865695939523007680913777688477897462996994899490161418661315522008566736957708227203389366595906663505943300403637625911891956915616261227047886965103560627484231006054720914370694716610802773798485765434812498224442358283298135436451240922208966439872019979456190303973272546178231363633759276226563015658135455783197304193392690082829527182521388551265830376304774906259955149259431053074789010430098765808165081448626079751296333266752592723516117918367771289310531444716688351829205143436092924931911802493660517914853304210438997730192676860853477681495022992809380658400073117678954912860981123113070025356003478986006538050845325724315536544220676613523374082113078343603269400159269584595882978456494622713008555942933445207270077182063988874047421866977093496477581736835801931683221113655473922881842713738436905266386076624512842993684350826128813673585362938737923699288370479004847222403709198859125563411308494570675990320027516325139266942494856923209045968977756767626842247681200332795770593946131852523564562918059052959747912661628823814298246226541410672464872161743513173976971222280101006681787867761198259615376436418285734810880899885715702797222747347502484390226078804480757248077016210646701669651002026543712600466419355461658389459501435021608901857035581736618234374916226690773118001211882997373198910060609668411932660751654527418294595411892772641925461082463519316477838370782952183896453762363048580427744179071691463565462012151254186648853961615420551523750004267942534177645908215136752584797744651147504384605963258204688096677957090446458846738474816380456351881832103865947982043763347383890177597142362230577763955410112945234880983414766455593422094020597334523379563094414466982224570263671194932866539894913442255177464027325967229935813331108317118072340443268137372312096690524118567348973922341527507079541374534603865067866933962365355564791025085292842942277105930566606251522909241480570809711597834583511731682041296459670706333035692718214962922720732501269552161726498218957909088650853824908489044217555309468320556363164318939176262699310342894851843925396709224125659330791023654852941621322002511937952724803401331352470141821956184190557610301901995216474597344012116012392356793078231907702884158146056472914817451053880601097875059255371523561122901812847101379172151246674285000618182712761250252418761774859940845214927279025670059258544310277046369110988005543124572296838369804708640417060109669622318770653952757838744542291299666230164080547697058214171286363296501304165012781563977996319574126276340111301350827217722871291640022372302348090314853436770165449593807506342852930531311279659452666519604263504064548625433837722094284825435368231861829827131824898844982602857056906990457909981446491936545632594965700446890110499239392180881556261918344043622649655064498485216124984423759284436426120042566286021578011404678796623392281908045776241090764870874061570704866583981448458558032779973279291431957891103735300198731104868956562819173620367030391797106463099062854837028361184866722194576217750345117701104580012912559254626805374277273788637267830165683510923322806499084591796203056915668061808265869239205618954216319860047939611339532263959997495267988010745764665383774004374636951336856713625531840546384751916467379487432709166200980577171034755753331027027063173956124484137457827343763301018534384974502362657331917424465677874996650009387064418867334910998779260053408624428334504869073382793484253056987374694973333642671919689928495345610457193386652224715366811456665969597350759721884166987673216493318989671829786579746122165739224048569002253241603678053299909254389601699016641890388435483756480560126288304094213213002061645408219861380994627212143272344578068199258232028513982371189265412344607235971747779071720415231815751947935274564429846308888463853810686217152745316123031657058489743162098314013263066998966328885326821452040831107380320527846692799840031378789965256351268853684355596205980572789517544986942193269721332052863745779834873193888995746342520482133375525845710566195869320315632994515025191945596912314375799911383016561171855088166587567511843381457610603651428584278721902325981078345939707382251471118783115408757775600206641245622932391166067333864803670869537492448980680002176666748274269259686864337319165487177501063436083073762816139841073924100371967548338380543698803109839221402605142975912211591485059387706790687013510298622075022877211233456244210247151639412512589543377884928342363611244738228145045968214522535500359683253374891862786783594439790415980439921248898486607950450117011690925193831556094417053979006002913150242538482827828262233041513709295021921965083747146978458055506159145395064373164011733178077414975571167330346320084089540665416946657467357854831337701336289489043976700258630025406352640066016317128839203055763589894924128270224893738489067643853399318786080192231083288474598164177012640890785517778301316161620497927796705218472127303279707382238605819867446686109943830499604374073231957844732548574162397388520162023847842561635125971617831068501562991355598747588481510148154909373809333940744557008420901559038534449621283683136873751667805130825945997712574679397814919536428743211224215798515844916693625515693709168552526447207865279714664767603284713329855019456897727589834505860043168226586311766062372017210079222164101882993308084093840142137596971859768970427590415009465952527634876281358671173523649641210588549344966458986518265456343828511591376315695198952302628817949599715452212506674611743948844333126594322867109652811095016930283514965240828501201908310786780670618511457409707875631176107464288355939159854216731151530969487583789559795861326495698172052842910381727212131386815655244281098711688627439680218855815153675312183741199729194713254651991441885006720364819759441679508874879344167595983619600109948387447090791040997859746561124598519721575581346285461897286150207743745295395369296554490129530972889637677133538424297153941795471790955801201342101751509314916646990523663502330240872186547276296390657233414550059039138902536993171559171798230651626797447118579515065738685040882299348044455498505978232978986170294984183762552587574553031129919143411094130882381144430688430626553056016588014085610233242103002184605885869544185029774630858584961300372381903251622255707299757107273060660729169229780336470488409587112280451885119087185882995143315341285492971738497685231362760768684947803649482999044757157711410809580581412089560594716686262900361456026253348632849868160394633724366671129644602929157461811177891696958399470809547888635032811296268992311100998893178153139466818820283683633738222814149740069179421928888171391162839102956849182333589308133601314887483664642243817760810077391833937493469336447481505649336493231572353061093857968399021533814491269253507682110987383521975077366534754994317405805630991432182125473362813594883176814891943065304260297738854929745705694487830779458788650629708954998437601816940310569095871413868048463598536840341059483417884389631799564688157919371746567050474415280277125415694013658620977607356328329665641358170280880135463261048927687318299179503799444463281585951813801447168172849967930618141771319120992362829226125432360712262703245726379468635333917587374465520060088199752940175724212997235420696304278579506089111134165348934311491753149535300674197449790172351816715687541634849494912890017393774514319283824311832632650795303711778061858511535088099982004827618083072096496364769430661725491861437009713875679402186967101485403074715610913589331656001672521265425028986122593064841058988471296492309412151445639478899993271458759695557370908551506480023214764430372324661471115525785830710249368988145625687868347455188933851817916675790542104210363493162578704765431267906612166441422850174462784771327405955796006483432888278648370434560669664568997469103739877128915933132712662475055822586349284277183558316415936677122185376423762221047793389563787229025095430141822571803313001481133777369415084888675018931569948498389360526668180127839120058014315964419105466632368101482077993565230564904207113641922001771891079352432343227617877125682511264813329743549265686827487159866549430416484682205939216733594850578496228079324226498127052713984077209957072362270092450676656800691499665557378664118770797677548670287864318179415217961783106550302871572722822508120170607133803396418412112538562489201300107824621651369895110646111335624438381853662735637834369212793547092301196559149158005617072585185031672893704119363747806258242982507264648018215234302680814869781648243493534568558436963783841538380511844060436968716664165140361297299929126308428121491524698774293323052149999818290461194716767275037422213671866146540425344631416606498714990010006600415448684373522084830594959531828722805208286763003610917345086321330336472895841765887553452279384802977244857118155748935613115249267720063621983699806641595493886838364118914304437677154980265449590617382655911785459993785108614460149676455501036539712511385835050851124425177729238143962330437240360326031814429913657502460127875141179449013058034521999927011480717128477703012549948868418675729751892142956525124869439837290474103631218991242173395506887786431307500248233618327387296973765988200538959029354860549798023204004722368735574118581327343379789315820394128789897289732988125535145076415353605194621122170006763216111958410292525685365618131387840864771470997245530131707617121631866002914645013785878548020962447037713735877200867380541081400423114185258032932673963245969140448346657220428806792806160298840434005365340097065816946360966609111109687897518013252244782469579132518921226530560858665411153735849127902546543690208694198711255884537290632244232222871391220122487699768371476455985267392259049978855142500475852602979293061599134448983419735833160701075164523013107966203825792785331251617607899846301034934969814942610553678363660225612137670814210913735317806824201757374702871893102076069533557217043575351774615735248384321015713998137985966071296644383147912963592754296271294361426859221389930549806453991445886924727675985442715277884438367601499128973582599618697297565889787410821894223373445473752276931992226359735207229983873684843491768411910202466274795795643496150126574338457586388347358322425353281420478269344731299711893463545029946817471281792981674396445249566555323116499206771636645803182058496261322346526061754135324447020076618074189140401581485600010301199941095954923214344060676347697130895133891710505038563365035451664317744896400617388617611936226768905769556939187077039423049400384406226144495725166310170806429233451704224266796070754040285511823983615313837514324930563983818779955949425451967565591819686908852834348860508285296424375787129294393661773628301365958727230809694683989386763662264567911329774698126752265956210093183220817546947788787553561883350838702482953460785970236098656563767227557044952587398718125934419037852755713334098424501272585966924343176890189661454044536790471362942381561276568242478647361766717706470024311197110900074740659456503153750441779821923063237008720392120854995696810613791890299611789367521460223869056654813828582804495375301609214221959406387870747879911949208983740917885344175230647150302783979798645173366253295117751055590141604598733381868879778588172919766045163533535560476484205208888117228319900445042844868523383345301055339296373080397382306047141045254700948994076012152476028199638463435548529323771614108695919507868732760754000852200650318712392728578358070107625427696553559647894501660138162951779085311398110928315832169315638674597474495843852827016582461920922195291343234967793455856131402077659961425464632886773568917855768351696083928641888300948833247004479583169315338323823778763444263234563016795136710475104696690012177771280655224536893718714515673947334404472804509594330906836671106559533386029380009999490106427698596232604018637335728466795312296831563581454208905406512264191620155045004305621369918509410346096010305438166947959645858044251949051107333876799467344717186156477238117370356549176287075894560355191956039623011578663237502347250544610739794024751844155581780879628222319726929845166833069195050799933572591656755572945859621820526504733537123516236627704793332893221361418587859727716856827253037348368919118471971337530884467779432748571488278216088447657000414034999213767942096275608830815094380307056660227646781175333610281878007102197944287773131463878578172056614090230414999232482689824772221098521897581408797634861467636063686746119666203473046089172772400459530513769383753815434869811019906517069617740522182474226576521381527406126990127068808753864086699014617408905409818776718800761241519670641521176530843255442610175363482811968374933958257425412446342472335863607779809601997451877588454596458959567795588690984047682592534778499304578831285417470790597959094316277223278445789186942149294515401742146232403008419079752967824459691835094742021236179403090486349605340549312999194960879579525869771702366800338625057649380887409940095899481093979832311088387692364902214991111208706392028924906984353331527279913309863354543249714413780591322408149601564856798439664647802804090575808891902542366067745004134157943121125012752322501480672329796522304884937511660849761164127773953113020415668482655314113489932437478902689351739040432948516106597858322531682042028349936415959801973438898830209941521522886111751266861730519562493671800538456378551291718484178415947974355806178566807584910801858056955679901851983976606933582247791365045627057667351709615504933383904526124043955174491368851159874543409320401022189827075392124032410424244515700529683788157494684415080111386125611641024771909030500402406622789456070615121082661460986620404250105839780981920197267590107499248849661394411841597346103824011785567390805664833210390738670832986910780934958288887071106515596512225429291542129231080711597232757975108599113980768447326394264194520631382178622609991600867524462654570289690671922822830451691113636527745179758421471022190999062573733834727264986782444010489985076316306680502671159446362935251202694248108545306028106272642365382507733405754757017043670395964677159592610294383130748972455057290856884960913463231658194686605870921446537167556555319620918659526284482537313536981625173519301153415811713532920358731641688391079940006772660316175275829173983958526064541133189855057478471210535057956490959316721675656248187820027699637341558800008678525674224615114060157601159102564490022649800394984033580913091401978778436501679601674653702874660625843463297083037259804946535893189121639760131930794769720580347105531111172158592190662310280992120840692830919060173707646546556834132075563153150064534623210071335849076330483281534586984973325998011874796642731402793812899617205245406746952719480799303967301942740364665941544000927999086348066223349066952240446521589928642034350988584226920193405754968409048129555226547546507135328425434966160849547880907276499302527028150678628108252432229799853917598451888683870044771018667721594397085146646128711487495318621809417196768431446664351758376884367860814463196419125665740477186991609155509108789194312536719456512618784869108767299105655951551597396590343836281246291181177609494118801059463366710390497773120042435781157904298230450720383227812464136712979594150829183782132128768905459635863693448797497848411232749213316631628124563882382887156484478831424176501479801878582157687930630011537889980146236901358037533062461485760749325678076826510457380590188312376172718899337904871133955884852342402550023522006135749143182591424798293677754904963993507558396689675783643166183693076256035286029406628032554165354315180137148219417726722440052684019965333341840043455252965929185029401316006511243952978743642228069777204373637178734579484202387451512491579131394111486084164293479587936818686096896846408583341310178581427109554162933759151783923413031105433287035265999939049668221127681583165112468664511673513782143453366505983283474435362903123936720845931643949418811386079746701347096403785349071490898423178917397836506547519828833673957143600000034398633632120917189548990557486933977002456324759545044114225824107838668376554674001373243228091136926706828053975491111661711023974377494793351740361350053975814755208342857728009861894019843754464350814982183601125776324473894520516369385851364842599645183618569890887217897646947212468079003309250834966458416565542612941951088471972091066051055409337319548884064440802805795490080760400341546621376696064442937749858973536255919596185524481879403173745082560728951209454565621595404054258148869298427865823576731957992852931208662759223661151374457679160636216752674404512210510520908347074439861378290823527728958496256568819727927686947958061005737870841214448150347974223121032953592978223771340775495454777918138235426071846171083890978259644061705435469685670307454116342441344863086763279491776829230931832213414554825913672028232843965490018056532039607955170744960390066969903341992782126967677718352090839595453418667779448727403837333819852358842028401509815795946858745379895032573628098375922162292585985991238439935755732850286131559703629342498141780564616158634153386350772232699965088608709999648993730493071709678887401497461475428803874212506892121558766922423874347011209908590821640735763808173869597551760838776002775172530371334456548526356617201975630015800497902234195867380614424015024362889575032065336908257567855070205551055723818785746503710863081581858628158830545646622976948039706182654913851813267374852271882679179190913544078526854762541266833982405340224699899666525731556376458622518628230920854244128059976285054889130983317618849833529751360737720305713427396381265885674050138410747889433939966035918539341984163226176548573766719431328400506262951403578772646806495493557463264081869797186302187600258139957199236013453742297589182851675113581714726258285969407985185718700758231223170681348679308848992751816613996097531052957735846185258652118933393757718599163351121634410379104518450190230668930641789778081581013604494954096653636603700758810044502657349351277074267425786087848981856288699808516657133208358426133811426238554203157742466131088731063181119898802897228497905510751484037022905804830527318849599941566065373140212967022208219158629059526040406200118152696649100685875926556605675629633614342302328107474883950403809849818600561646460998192576162354787109138329675637615067325508606834337204387481867916689757465634560200025628896011911009804533504238420638240394341635029776888027798350874811782983494172116749194256016086853324353859511520618090312416981820793146150620738260971804582656870436239357574957373327815789043860113780785081102730494466118219574501701060593843365194586283606821085851304998204205784585771759338490155644473058345152914125616799705696574261399016819320562419279772820267142972587001932343378731539394031154111841014142927417035375420036987606087655001093452990070340324013348063885140957695571471903641520277211270701874215481239319532209975065530226468442277000205890459227424239049370515073677646298449716821219941982747940490926017157274393685697218629360073870778107974409755566278073712280303500488298439195464337533557878950640189986850602819024521911770186345051710870239033985505407044541890884720423764997490350385189495058979712866316446994074909594734115819346183366921695736050815850808379520363356199476919379650650168087102507350708252600468212428204343672458244788592565554878616144787175810685723568951507076022174335116273317094727659324132491327024255193915090836013462396123350010866146238506331270729877456189843842887640998361649647757146385732473332266538945235883659729551599051874117792886087602393061600161684340706116634492483951563191528827288228313754586782698306966912201309548159354507549235541677668764552125456812429364274741538156922195033315601516144922475124889575348359262262635454067047670338664100252772768008863832666294885827403696553293622360905724797947344340777042843185079019734690711412303641117292249293077319393097954528774124511839534803822103736446970469674930428109117972324486154132640315784309553966710614680838155489471467336524836791385664310847478486762430120184893291096152811080876174227791316293454944253954227273096450579761228853473931896008109652020901511045793776025295431301889381840102470101349293174435628835786098615456911616698573880249737569405581386305810998233725651649201554432168616905370546301761548096266208006330593207758971755899258621954620964554646243995353917432282254332671743084925083964613289295845679273654091199476162251559647040612970477598185518784414199486140131538593220607451859096088842802189433586919596049364096515703275275706415007762613237836481490052454814131959892963984413717814027641220876449896886297989108701642701690140078257483115989763306129511956804274853178863330411697671750638221352138397791384433256442884908729190670098024962815606262586369423226584906286280350572829831012669191096372583781493637749605945152169326449451882926395257723484200773560216569090770972649856428317786947778049643439917625492165006086262853294710556026704133845005078273906402875298641612874964737082351888921896126412795535364422869554305513087000098785575342231005471534128109570248708126543191232619564621493765275263564021273887651038832550073648999371671832800283988323193733015641232771853956549324229779530165348301284906778450374908917493473890156495885748021949967226211858743610397749463386330578874874055400054404393448881920441021347900345984119270249215570268737009709952053919309793194958832659221715083246219423001859743967064911495594117337281998690213116298866802674464434892330206070038212628417236796273071914050080840857039781519981488223900599489119464744386825337458899623751333782805329282720168159779700664883944824463322109283205040459830089435659542672568797149187034473382377679148292032831968381059077157271919030423653156509574645496434253280695103965587335498038509951434635061753614800501950452013502001802815069332419182678557377644140970809457456248548677049043683687175909180572697940104650194848531467266429786676876977892914311285050430981929497361659442594717547651352052450725975385779583727977029722314351999584995223440493945021154288672441887174095245547718674849114750318017733046899093179744729570351923876864055442781341698072493822197491242575101621874397729021477046380107314706531542013005838104589050067645573329981499458546551055263749143541958679925959814122187352384079574161233722640638604319889362498676496935925695921284959062544464743317599996851636603052164267704281546817775893392521155385905268233116083027511943848238615528524650103294672971981121053141258981651001207426881435775908252274668632061883768304509217845825262395941896730036408086242336576209791116417663313288523520624879229789594564503337331394223847785827171954123478604343761652415687179435625702156366666800885310067289470330795408045833241921884888707122756703331739392625090735561645136770641995391119488812406598216857871313850568506230941552068779875397406584842501352056151034898218737702450635833142436248074325424641959846474115756254410103896715766772631964425249319418064724237893346685610837898088303135713331577294356649560781253049175940158951469549652231185596690485594676079681901672666346501861829556698939650196145444017681628106044650684481395616672207292612101646923390167933996328330131638508309679427929345512684357603569019705231383646409613117749046007728408622147475476532215055181164898878790877809180090507060400612200100512715759912257252825233780268090305284615817395581981223970100920172022516063529224647816155335322754532645430870933209246318559765805617174468404500482853533965468626788523300449677955807616618018336687923125104608097738955654889628150895196220936750588416097522823282504337129701866081937489686999613014869246944824207236329123670525421454641629689104429816333732668716759467153926119506492247256272545432741934959955695902432790971743922580981036014863644091014917341830796463450648333034047657118270402768682714180845749984933920393174454026166636746466687543850939671299180674719098853127107267244285848706943070997565679491984189964257488847646220303256377511125340600879369045657792720352059213459242729652066833385106736152762610160266477724850833447198919868026561972364208475049626616077970929068447577982517955697582350843717461033103879117892394416301126340775357735205580400669825231912255705191336314072113497232265491510629617390506178571275094036231467009311761331320186311587308867982392980098050894915107883711940997503754736743057451872654140164469245767921857536803632891396641553420667056232729360011777814988861008308778495717098808586670231040432425267859555620773105430722980321259411079573491466846802205018161921507666491068620333787138260589876552104236681986701778616726719723741569178800016906566590469653161549236040618918209824140061037794071663420027358289119941826478127826596662070303847958814427902466692640327994040168001372934773015309418050705874211532846422030065507639667561683188970051520266566499294173828403273059407401471174784648392412256765235934185540664409837060836364576570818016642850442582245516508088644212121139143524539352255221624837917373303298123495289840986132737099574077867893493119752042379250228513758804367918545478364167731518214572265046408001042021004107660278077291525555032181823872217081127662086653176519264584524952696853763144379983403369471244472477969738905149411200109341400737940618594471655166126749307993747057729305217504263837983676681591835890496521637264929608371472040674289962767203154102115043337420571828540901363257214375920546404718943285486968835997851222621308129895815713915974645348060996015558772231934507603154116631129638437194003337360133055263525714904543279251907940071115047853780363708973401467534655174707470969358149127971881878543767977516759278223003129455185950428839027354946726676475060726436987613948068790805935317930017110002144177015044954964124543616562101509199978629724959058091918252554863587035293201420058570578554192177305053426875337990760387466896842834026487332908888817454530471947409392584073620582428493490247568833524462124561015627290651306185207329254341792522994174478551899950989599998774109514641700769893056201635021926926531665990932381182954119375454485094286218394241862180674571280993852588426319306701820980080509000198196217584589325168776985941105228454658356793629696192190808975368132104845187845162306239118780246040508249093360699980947762537929735970377590661459946385783782110171224463558451719416703447321627224432659148585957978237529763234429112423113686037245144387658012715940608787886385110896808831655050463090061488325454528199082562388058720428439418346878651425413776860542910797210042716581577830892298892426705300963990358223607456887192002717050562634379276091995418960273932863096592132860866113516677732678863936381316733972259528279930344200480443047267908314781726132779808609416881966180391801216897159720014750411547249515141050365790014682198153143369117183969236801627378505573465789414526396845208017702934796853900157301509192427251098757289596181258154313384824794784275717899006900482860924697520112663331458261249389273246188806998673405975692785169253707810445919864771156200766233836373688812562248357047719381902980923502800091617630646539769037461207761775310424362373327222539858777920902348843916405595859983155957213113572201536803012255576833797748586815330881597645559646307348986170444071965631722735119318496355853383142667278838334503929502937754404012839584407164497747467070573773281635284892667888932753841809432221740877096283171553737308738901163526963736764702604116554271267744300170440774596415035154466846989883081471711673591977493404140866686710887250626305478873960961808073562623368866993822044144291063277472808125183855402965433597958920418952952167800330358635917060744917899901667010507110287969962544530163817853422433826934198585932062878966056748051328052409814147654842848801447240837203479551540965529736180580526641404169081405650065306663527830520310176465019635521631396569895732763283616633158334641786662354498812075016707169149215331047006673935150023052730973025076575803867996053817576728257204318917925283698541453695686692503247929357194508067961040725957717233257533688571196220488747000661767905116010564549081891076163350991420662633687239418911489611779479008134832666507249505964851389692069950123959467416836620923119701645876240906883765587938520006979095538406103772087392136059096883611781992559392761220137173166980928432933584789138980968048937178814131478883870960209340798242036295667564225114022663896968434593705833709636380821657946503195205454166993982610975593870988470347537448765100331938094388427353416519480521582839097061468315056133311160374314325427816082428079648914867954125873478580290427396453680755184428997564616225679401317696296903390184402425625013231238201300381779451192041528619050048086815914949181885979792998737761904553100267001668506040597617165965868928153703250065852759110113456717000615598990905491153488403432561093362129628003728001616734908977851700818713878433443141874579633187905805595191765168900636832767199065347196467619579145257670009556054361162184758612900275456919584010766761933415495468759287077149471747826757744820941589147152513067467221418049117904151016162474904279545123079855572213843728125062682949390478837557122516733262041797053294441892500125477552926131338871090288217763395093255538406747776116921921192885054785808417122295404863650552168513440314366187350348137371855347902464574445997624100147625523407106447986110665383049839143323255855220712770172085993537648796177004970995751349857282128815867090652893797916582252270876037104061299826279996433578235157179663664035182625018967013722138850696559689288103451273527583078649030334396682597976736826004221675976241942929191154201658973953051518624188694450503583769109867295844843050159374556853746110450694976530431156742648128045269990643880766615744385023967811413700555660451345606494007736505188490043302973682911619945369942962555963269239427497458758295097555591208191129337714226234274058699003894827189381543990245333109240396499190551773079682183742848533132956526542258962465893682327804333629879364554438669359141191325091563026003117519365752980519900483255615493741202180024074457036001375153473513043249141314044980863133669654504913955928611585785821263309922576162798275448052250899027954387683964282929168350390017892226075735213073167988025995485009314288598877740338185639016297265478331469704055340108577557022711166116499803508657878158217189411322475976077564067149751787512424993522108843708811930734263207050469549862055134186220654005930641542425526491715449645374694849861075272220506902652328127123322134816363442202964405485999981782179737639170676469950072877203387975015316115588147937383883970018194683644191509366368859867748010164389061770577870775068310772709251173458822995825598575866740918352564787948371924967112627941928887042573918755539912612024961437272889384685286068468662394966533688165316237411111532961676740298072331599386547453150802859378249787279606708475663640986784032382360504406661237941762435774995240818249421875288354481916915330364215170099300800465233290553360919288974315083957041575312461744520577743168770224294103241021105752258665733673055721197405686989497324944405755295513927085573396663693091789729191616683115881651593648329556992307200560651327515888216207935957212946798839551015833651129400358103937051049588200715273740471993482714388268122715164050526371968657105657369826577632523561775920715827154519772679510015851457362164927305319709764977528635370155074354919473898110719509805636401084252459775239613175469396693668918090688906497021443247492565932989993384801028199545843182721879288356864736924174800948053327202180375920946717454644336792631872895708400364722262556440535360661299222568681956850655648544534451859068487569055869303111924445600902271243623510843302437564088347386677295400744355658106413466860424846943977039296171078518467789595681162531335701274530257486709784993774305212099485641012163195773168449038905190274719522071972120479312411066460345545132464586994797653392323464965868185415609190775721438973323118071460714002658922533681710177725020825273242725341423536931982047414888640861984170910782158830566268274104329491002750736573733323345877829418901333086101028366988599648041123991960043566794058868214426046145025952217045128120050461942832163777569371715568728814436149859050985578241207936836406245231945351777018108048208645820553390702497909052134296120209601725387188361809196083051370039391170664048871983709020364072156744559220662474484455181728917625308795220253306310904828412346272203490413438526957310335877146849073479715971982167083789036135813517235732067009411245564749570414079673994968453403851413759438867777835463097345255797812610040597773953291761071626993351622801264248965242182599102866001347518413366050163283769307785007240731149946152099245744132353249849969328131203348512641710717335319121096176395655663709618140640038387114645375119109236777874031544286579444481596390015293461355977611196837521368332029419179890956364499291302174233386327343536882857728034885226202401849952241667702950997582687194499913924299930728914996364211701464390109256766098872543694677687627545908156919236550023417470341570555961987814455752847816018657134267753207927737368411222193960323426040828854710640725841661756921310826525695165185054380755762890046258113647029604729955549646513472854797746620444944607431089617785231316027138364943166356880968411378414334969207850829127709975522013939897062449611625722102039950034315586827746498438701722637844906226215960770718371757518734264661378785192521702694206695082554931729344776809028642284389085187655702291408353847499270597921479572112573409726115807852147056035034044852036680395545078963414238293615276100395029801018485779153436266496389900458128421486022047231115313410324364546495011585149145849650651811245916220120287805890321350039179068447428950085811432338342782322075125691754688966969929267218738702696600505802560038801287774241508353237269280453253329444041509319110101045607436147415257589261941014362120027861903279313278562560993706163794620996251625928460876087459732096971317567714900671183548457228552682755167201874270585367504106643923919709451090141796240361175588292002439341867437330126013644336102538825325522551231580586997745765337755261195614416637384299161555198443749798724424307386916162382284287788906246065505835258956289433950255955592636266674315817085793704753767791860588314388659895547629735574000062505871313578051158661481357239984205796192568432687965448242615090957418152410051593909651338355812817319291466082211959600841960696278500655068226872347672971438467609843415022079782886281012952425838720351935578647934783437771702970813140329874097908147965952421564404239329431466115252049742923751962424438966452107344407168221070956514793570512586147704852303097654527534004901359102874764620696602451483732519825115581414512751370534359228501700352634582233914273748819020483385352309837416588902845011146993019842295597442172510310147868938896401788435746132692629092675853608760963166597601397685304154915863802648438186689889767462621325781848453137139388865080395991524106158114231529902423264952259647432319552516451945468827882489185575951973953394733820406381207144461488156460960959486447319509660857878447543655463294560026060060140352692970391076613504996165618099080440497685635336634806603048984126708180953720864448537807535541407779753022316435574830190845586580762267780516803238974528914933183865458129470917267811909957879726276518401618462188261517370321236875473288740105511936274829926165002580947481460135672486463669279585476137413391380368552871224955251612871190326662930938070764334131473201853617826123359359064248468436121423585752444917550804302953987892694271154404864078397075598587213711170781788406279227316978323558674585556636110230366547239216371412284707362696153278101958156126872183896146327765381368192791407186063192853336963336429088093641772382770266932712754114221445593752967143678785660831239983298931769318153965172805019992166851099552833615819589441777629050898531843906455802777899095182688341128627007093998158622227987006326712516715531567743419003075631596122116644373722722910251478399688137468324359860039335476967905585571519287110625883623293370638854840981450123822895192153423052971149386555151357418174790710061962115367955917745980302991252123531674766097758155425239539036949377300968793381802164533012319008704313281935718939794574495374449192234764427768123254965336553918789844359869037167053592967229322234062664691483281689657401142308986788739481025958729926646705177780235546714313998973834754933950606603416282694168392674825557139678753486569568400705055389324324237317708433607907703610465310489924949316009356767081234933680301793641694212755870790096199020269295459360015625504936497310317341744765665040562091569684045633086719439299945587460846101161946871333319416111116330714941043786254884385222059916707140558607455002402761424931614701892878162945925871184385424926800098623184045836741717629570733105192011208075773998242121372517218561081571967796785160630043814526273701023502713867708441680799383324477801660078881141824366579655389033429392704742692042875940591121009817828748339878035102280171803875064976240042615602602934657808819619095468674184122172201411197003654009448842485283805990388100622913639808069285815415452733379582371182536833889771561037816347105807596753812483612259183340084779468442979070200760168222832408378519649630239476007738324559449532014706215148554754251325982037973355663250732342235665015765559163936920978102623637545423251885415323648683722670472310919053821122778089340675871697250997293427832547657988701397415533674566456209551830396914695649000669752813329910501395422231087189878971781410469912226843322124255224099200752246501185187714247120096505065782238948566143724773354216070834451327718011434005382079038928597219287950652721893630473613623814804047552624842183655634891984327861391572241943816244503619730904043876974392506742234970071877357683443066027271942223841186616590339476550776426360051783209988779071275134036822879967510045846219083342687344171153407777796542770194112379753251017751186960606920205648599234400557483184510257517173715424370604962023418677586044195315410926691544612164818735752959316586753743855344429582907453030451239136661929122564772279777093159391344399762887943169242020834705414069293403197654048497545562452390805263846685473513238262962614340231824107379091418650803071056609192656898587695022937848192686710109208922627740317294394590873818038116734117293930659008360676302522875103152822362763894799406221850357441865249059389489972481002037192132567563333163319571938420034170040819474076072869975858328296420630514718805431887347966390736732974661273850941146869515721470782370964621045696387131714572022016246133111704828670575650803933700157500856872316429818477190503277589077105663112729709006442917338633832895897324611891997349376642542523941821501336461029143296930977863081140869496659404854528006364909741832411296444042971410151142875940314235076393404106460725102878817332760658531313665788147041629484225621515846055153828983439570464131182621000396038136840451292349587209586803866138083951124331466213666005638687264562447476806545367541018417725414974029373550220754772075171290814868209628067297919550630282120181443571965340752859641953363226512310346193461938079187834486229485338549419274602427039909467934648381170393116924613525486975046435105894445865095141049662604808480923225496717593179869011976773912124072710749032347176770642351637324311147157231047261869363478196234080433583128634996045242938116550635601062500080950601753469951254504605507476294644341845081164402888896991402093852239510560103467339130152223681805086012965658436489334376750391448958252514524773297368409500158559992661255766726424681328455037282750266367573938342171480373791603507596332887883567379752246231605390261525110437023074954471039819942067507012121404157086005546865401555986886128227862329572118840878929246209510711911317096940864603529582828247414051366104064062880057082939780095388462905953378324847153235954943900953136701597730192118375722548487222779322608639426727821328645937497350888114387531223351111710362136906514054770292584194896391891504195234375665732136348265273960460896535908208111201265989722068383846930837789637452174304948086975319942174095856506716629319723582229325092796700779505683659898017183913122170901394557200886018843201695744976322305988624520426912570090246854100312970910653452343154445989683204172385535779789890711586594120496787881095824756044403486393397351052090896418491783111157711707197088644668937252886522735017774554103756150936595497175261445125822670282722964529969060459169875310338644316159606896703812306141086280108591281615087625785198576103599333531215353639213010558283468135669683922319686285569235681841570017167754178898796821840787635174332109185810943283122062923797332369455591990845584270739401533663089593466748120108399426804727230849279978165503078970717424981016428849110638466128457325644131505258739248010988508428588400349515875475255517438669189141912254335816464164898980764106986874603995598853948571231116640524874313795715365065647796091143891379821188982425954117127048940274583156159451614648507498172932603792667077755329912824699042743818533056669745128869133047468745019342617072056814125142080359793461542398294879814812267684127767725252112170226603667011416868998562136610070806777255838680560432690286385367499448804460643496408107001153373258242205251564685722262875964776020633897252385418923231611592334384547151665361184415469001684720722524256316060967479502780978838184977692685975580082439949018955399131598415623881172990825846800181825323246203498615060708070929603006054053396868813447524948583010039169701307817430071998898046866096193554777192061742231604588039375157569830702549477953727100748462788928312879714868130625924576491633261281572549675279068015996280777672024511494334080309998295197939115765045749597577842379297011896086701608211404288619379589685930692899462895069366985471749139491870673109823356778149387865230746951221915957113432950854465447549765560059560694767237914495450187104360845957231324515055949164394227508590795776655197663113010207825977029155184852831979443591839141526745369568404191689753621517163820321209166948564688328145262767185495319332140792607575186173506694412612869483161505406923892002587322851588741094812246670969920970282435523233732161614293910391293924546981812470391238324791721110065680720748051067251909611643739542721373028973034047076785657434146315242587642711376660131551418320928724638096042765567136288528424942315601152812928630529125987107269783256112259045953306567894832781094106676166500105122976017978266178106345703321668709075532462194492017376081516506526055990312324143665594549403990585122193519093862631616559166874600562601115973732519931284082910974586982382765511124785749169538114668172372590246824164724048349029375746321767838824752376750126903009174173401173240234663891206001509549588344099874110709856708021635391380814410387703302127463999356120065937853637221264403868561273964297204946491866096748371834821879114699426750892147413478258580382867228386642725780838346065664951624962283201708902316490432686632810154398398846888644071072447428048620150909185698726857749988896651969110759088391776931216137216842485669904308486307751668242012221929845485600724210597028685630517903535931843281026864973654068233077751328237184387727473005310578473468950232042970019224756829471906170419558523429955670865611910659190539171132918941430955701307031877144631951348834388255626282900957605034146413007330312473450462050770891752910560421108615640544751009944073338042964380877129920148594055201885955680852144110951556684186420871668471050539288282983385905093436026367121221969532838580798097063296515252691556292182690387333527430093167910578467328290951748761518437454676086255109430180531907791263060510609296782221883146357758596301806656082702867846559441649936011089620233248414232958565577230564803899196421277932735510489374099711411805455476794326026066932993079694845635987531674086992364849167466701904346938031168594055391435951881633669375015730170972483287378164628822369782529873216580846626299089656293976154196439208107558830127241377925691837428780486194274930688481589207918330453574476330754832214358935415445523251204249772447511143878229989314089294804337289044190057920165567829984409205080484403300019494928859968021738124079402971031109511729856348356919027156314471810492011706469639149563477400865840248468859736872634212462309245107190345529705359826848510491758838740895848584118691707074973673703336142043201209130985883579789078290394076157205352180001131841541225607820036664735726375339446935841237340451924969292281589425816839614239385513246623433131803665174268277410010158649235015196108922886333113319038360404007129291601872366639571142432012288311307177128001398734227579586382806751295886530029128005802861237112282944098140462033930764166991549282366661020001011060008031076341072532543416494317707293689191974551683559212256757311141683127039063348603424261639701090451339644046569899129252782122443208393739920828254283180335782763583715752808178261207010802976748347774164535979759467092809594083860094504789049407041581969165463472803721943358336314913044773223948638385745495484441771511240777759688865391525588480287457836469344945178878070322118460137212208295502123841284771946126495544643148459846673923206771419977424124284075310296189124011612359084793202391737400234457834376954680268844267692861910157837759870293765594819775808131686717614062365068026470901656336330751255525583261282342426134210148171001248823794042262852947666373659059923177118568066676289227524926496778026430862749440497187622089720957740483874900570014179526892386077411804860777803146039581922435001359083699506445275872059356360561730387524561638412769577906665179644769689812457206922701835324331302919221309349671614646069722048895472345598934855837858745684517446699430798078597801929666856517466499840135733746596086966716736420136500443331307768947339773654455410365745363516076941997657760758500427772232228522418719637633485677907004593752640744502632709599649767716760239792391724926793066998331797674725862042199575762210255387674092000602024489147123378007545410539460671021098548998140368837764790478687950953647256805265946636549984140737608691678887530276339571474459253309976959187373372010010074109434112106535352003093605379330567983290406704375848008003736847881590426039699875327029621855662956405837842774364678135156164639309882298690366623351837301322105863431258703814662252415757409837437731062080289617007541617211523127891434075039703124723671683279064194732119210157333507737698943774422037933937691346929752144048781498773131445257224821894591095414153444665465530700704831578665401895641777571283918788892459763074794901980531030020928089196326145206085848877909606660439670528533430311117847583407868846206736953524432183854547875702645794937887520652188645483315949665746298259110928881903855642342416188858656637647511770227159350667299090481076809823701860005526168185532778280072288423624120515413876411035140424707176798171912706333461078089798467989652249580777369937257407541399594136555232982930970392982923286725429717089703081139515338080105802615953721471775800778184250115943153499950657517043482308564923459928823827544835561633505847002979357746326075104684471184194884820687813341953622010370224326032002661492636800109652366649885073857350790380206560617043582602581734812150721874355641997720953988629935985573570701017564977932714874746416727102877589664135424387882245953714273147864224156345526944823645836412918661542656182324105054675752384516409091454735461207028521603054325815271862604510488220479242119484707282331886721732450164885241794172598999938844178369014767376352311898898545783179991518462793238777597141067180111281073401514723432649798420633357766999034847314840912443934308264490438662024850313840171801162478567460167903124797408494760736178939873107750664241489237808745848517094502413395888105002149874573545270352583743461487286313479507013022322001297470094215223007424576823957914456261281137895380310520969930899494749586896334260276597245238769510425517863066623263434233214890737958493741344827159650986788374077841400514689723158862161633240723306180274620564642664821064219886266118183648572769916207881801459135686952883993436500366035403192369130053528089251600633193013365017838770220551587862312812095884953723748755979988730424156133562918918959913789067835450611338179257657665330625256220736460339472465065665547255551203627206440364354528331864469668269257604794989301504314926981416808568439304930897409718239228235051954909562905122146024172305768518193904868810328932684314407530827604720595899191759203379200397319833012014803361937034762259572513726368839173995348734582144852888426959818492528076177054903949223832370710044512735502640514765299023031669935150715776281675990828740740194891309388501716284205906401969871318098104045019838380994152378762629746208708093514983894593168386006225152977714371793236392952763059786429846480314846681628938146744572427179958555697968329209426852677390203773164571335948660129399406326573408254461824463178291749696429086715789046724290119595858758968223662889663779325058275525339656820999061298948346671026964306110738813384418265283801036587084799052379695314006746361763798661004858120996369326353815808039527710994862057800079396140446999268169836330289255419924007473820243094779231097473568950287094217888666537445085479432044093293125575237685364388822538837491423783448287582564535268963520548729247575826521275398560829820932266745923691237659974081158028277904448604761111556452123612532430823322933804819193755773152043986506856466917412295561452315653045463678439758553952426227313620495754536745201257164206886601627594452582709305842803981463792758249122588943175756579391157771982189102030560201834759781958624425259904985178209007050091561050067299087604041626024779151340888733715265925672763410229736185467970611826823200795119555014522295705788241198988629267779234081829170019564684509456671735285269624574779462072502878110853569241840261777121144617598332666519383951167429654408847461884192971172129583384077345278721464719380328134842945305147091952064217649090236120454973440567526440799920974377411329432465333250462307453277997064060808605929387320578742652483701625794406164744836474839624005012731439881761932458066320184879153710313261177037368528113093075514780981797960307857486298649410849975068747830834334143352185098553326752781700879881404821734183781642739580806000115855332591533933002362004699709560957131482709268909134489017312548851847763009148356702289729954011209639881554173969343874690664280702331892210017820664014228202133866234429865341230371070365602440212956188438456154238678894856429240947854899992877550718049141284435675880471987034294736117708466783352240440328642299801112157796220900313779500119792794988392204908790062990421410510049461529776508304307298412538723005095869489602053600468982367379682472524131979755129146990981193151723446837574853502809281196735489098197240097871772044751449637200204855388077976179078700180896373426341308496374558086671712452800775937522078282172250452422360687733697863997680440772603303285246225616008837531836487735798846823087128955012938641212525522445721014327047054618477136742454999788733399008386376543533791861356950434384633381882147513703497541441248661877959792912107525251942387815843936684367841774475292191478968223424995195326648108301082825520583643993432634799545291797752599042788495902724883518753302110885071795219953649862696813757856448599193177104392630736101341451196114197999391806726393353773542933281176391140420372655536396653707484131301374204740970738958045578056260585818031237100788048916432341846963050163035026762418409385248487293587090219494944663758401857501347335969340464674793872630552383927639223400670138031725448650236823108643468128330330277026612920649033558791681396055313500412613583378469417976647191190114484639137919588206784012842328312602168251948716975214347453619967492541023687783182146420115141761009795841112463500128112332002885195663517560892492177742725635799885667108086225640253997452467287004131180529483102157927687877726665012444263023354822624900062903474438868231684910801415594539668536750494221652356897061106705088361479491096715318334590001754663413891249392979740841549004735278119147217491723111033699151877671505108154961929489194061637558072066715472094521563264151307144625452122779977305109388665312957222951348060675973403194444912684748555654989597892250189476296149845898588430685315459136432318663622083637172945532029477381761265310024710403538075748100013459673028937174908033423335016678223623636675389687706983335557378308212789962762616271164383194084851312976164949111661779537910958989843676850674228531391311326942360706937290558688694930390133732006410466675004548810691597586865756335913323950663520273788326086312465401061710713964855370811496326223812547695663430225019669227365398429111357593024179537940235285155416132793419949348582894573084636224078176975151141688418404662837722284870140685358296635425441659253126154937894653689588701660511704278625346134902610586038073965723898257342431546322452251058083390347191860425723907562208878047551393505456703588478348280203714170318293154903957331774995474911390919842777135563099456667505739859276763543652853684405259629586696073684155935100881751478468812594161734979598690463261576039337790464840645116792284999989836436076549753812249497352238632072633191575027131662343866717934778639010719960869090877405547065985047444542876111884610223430738372786015109584149843475676856313906306078748332207653464612762685802082505681044954292983147167758633794743680570016815658482350107610991904348496001587689721995373234293461493592524828792954154041099149437885679959306588498076439458484786522399878062461423529959263162853321053167591673685087366794661165128603112559359533874430739416403437256520102136853757353675792199326939841273814163635869594803937836438172247896109637486970350868217393603846804013349041787602858678551100151280876503026436440376295598848111520976962621483952616990514432295532211459488889537755072247999822533538219198335147331797681419774297854369103426962657631235976054102165608434652921873518793816197891173151582877672064280145174029656771842218522572132996640026475996739081876464903202158228047734133626495758650652182030262511606666416775969620487805765765299006030793234764200741413651570173701032424770650204592625939239126756614768827035887129403364741287728354902033184450035823408075722084565079698268346889918492764534689647493256404863799907055377734984121896891367288513256307189860238768835806881873745218241817149518652386116886755020120721075328053907385566707537667931339044449037010810413299855989143171895485137914868846335607436103488804393061237883623045535187941430046773505108051100317378383283306646802382131616958051158331635897986553710012523684640521867630183475411406405750124984438400148972927359623245962469450541467570087025534536877285584028381746708992249701110405577547243066311090058399660954515653073436121532548019204648477041096317829955502697124895134823105619079135615618633468140630865643971447305434453044961312627429933423755759205314648273153790280619418489297602199632279737930233530905260077408976882205137776166466135237656120853777247203462372884081144423526834650060265611370790991018991126407089189714566262828172112133920791792955298811311141181934033101104049059014805906141757383794375522739365177732028859823328359628621282132426079565715031275121657985832805680395657274456354061135309275059206110287603465868788409426022035075627487542182548182750352729083525753821258377403331052544544947879800978070471931421201899745453305297390573872137832846075735971268221390940563230709701067891126784030483853565366050096651294343085744059284192018236414434051581401355300887254706803263210032283138914260444483781654198053933518505749742781522165908117241655490353488705118569053767623295995922800463862174784258257277885033805696189095887352718346885634044470385224900786770173407120192401899990509116528629935126427583663982846550895194318843413153092243571108996633409592186412218679008121955991938590970765113887030022072014188783699842059689799922357851989271797720755215417251803857862878188078616823664714625713388097539090458776533407267824197379787167524666698730953678653160654541214390136130185802925625726627709496197466087745808524439622371175406766481434946676413862277418844356874511575803392561741659418950887200355644283720953854987811271835540681315802303209982473299948266755710046567242252222326447857711865222417793897560315843032793757301790239170788976425574977439817303552731863487905182706100558681256630331172564540299661734771348062587745501872535909604344098065652369872803734494006366479451869037741865278665785458987464409901441547569797027334639173819283034012181779462266335038977592436152732503586212627342095830802613250010132206892907114602890650784555443021755339907131981340129161023007654805738489937567640932264468762516687088484696676753365402464379691201162447554675969111825529161263545159333860240522418291560986030949117672919686512862809627873482564346013134476947044853736511591897591596941794043607035953737189349367422484012010599898078290132791390311947096151445375086660066881672287938063208169410087458115243348461008586859001065034619616619530149647987432356303024366874181177546038176651266227025098833554579014845873335854855275606276617964221207639841607167102477814739422918178272543084316323963542698175295112896750107408670636367874663230536443405408431672453096595965054581758608117896041840662479617420022404228730887503830482906663039457773793532500931422160272679692494344581738568599367792260669676797354991834830416027084769137344171150364896613619014837851442489031829780314129000707688793652347488295248876873580075063073756930297637074304355371633058562897834022039520775535270424626026367648004169939849068661335607571943053874474579742683406081484157892340245209700970961302497861505930902138794510438578765314485752055199664243005105424484301429191210313199352578897130567693270615123526718541244723213669019648559311476948511977775025011414011503537133048479235089853083822061734059670199283740277976900397560670203749133857443792855083257532054412599600836162094167376353817045995235881873981521707904350593212232223136292487341323101534805894898837792360076227358000579972281981735922564330413069313404624825391821922051404686122525481113535304463243971318741729148258514300294358999433487290279629166467521943209808086773108330109225103792335433848881732259187142966376481129125974323343507721997244161545511988670811337798224626380401081648448726075714379446372547824529956156730363516664943826611936848546458654480306282640794437143694092704131217663329600753523310472734407974431857158449182567631885280111206569806247014776736053930254639833775394201431975366687836855243541526054217380231119998360483596122663153552465546355395072323148862144863706580778811911289313354735382583913418206608989578480236323994418105352367436960569136080342595280747549477179958914367822483417406997168740263157275248100259822941067643041717813589963185371850837109084990404162566175570531823281975702052987085727252052546377015747790091415826465082216909908916310794546642398302477995906834774702767505878740792578452116116506773637419862367632570123823083063455675312497763616445101748260843256190406051909947504378527063480374968391904569667145158250044060331082671784945121418145420725267435791362985756316491229535652575246255027416934392567692027538218454741185699668414415597296826571183850898619383682297009708509072522076130469880685066062752611644529717544909066793818044744436626110712233764847583951561049968437456035226680125400594556861171431225403844258441571501198763936859452293440069566437612366429435784436607078008703587033833125653410283456145408680885880865701445188905608631735662570329014018469059268884953100423319716296255464530668256401248007792271541943883440097640066743514595757178443129759726035854606986996900193393615336560605285504017062602022117491034910632121287344661989951441957259211483864376391431475690649637357927748152085410954012979386218951945501258476532578082266539512117278944562479190169514074321034552114050613197602522597379901321479353739831348977759229795041059427749182890502467318687837018851338814662629011954762226484073129927944740269944585361347373409495821484025536371693321710423646746471332779580572316713877006592832331925650418371005459621333682443981840281541363661749799798818374599657119467686348994391308593682696178578514572228242550339232511173396707236546776470669877966559523959224273592175315458601141195677575792497692423446214873134343321740758700272876627043206199583132143503228299294498502167568686563089408628722867718907628045663350384369466944781680930375407025376174296264524836857918276318613850205984122935112862136968349141567527079986050097534619584266248802869806220047379363517410532951927127666622736907138905377842209412060750478760380289257691051538468335044675967845046522490627119977316543085921514665186324648754994208125326394949060237555264075859101580612699872975822583615336982488818758459391579258819322121928149644199347603217543399122494177314433315965185267998594602514012997123072294410302583991941340968585898936899033170412188648175117035860752490325412915833454609895900178991534990418711732920217630473506262793008749536002771494087949407233315273550233776695057266203837442235566705592860084104207926813622900183256215391195995921665089345769336492026813849933347057643872488096110103300426277459705676742383100031470360037628303263161547783072302094657128458205474308556489093564776532680341218860426627736175980545743400270074056224816607965955958802450645437747303328744550860895626087435835971152840314185928756216033863569514936499799772825472246553947617046422427699666783235268556722146303027284147842514912131811404500161918892742719657472024325447511368781492159344238151463180725057628976211236095166616121654439723193110734920859033509842257593867149109419458281672415667434328741144321073423720755760802301688403327948101183279117260848680132151228131627066439703311680855718932963312536628028530056318839464800934990717350725469824785635057571475055568729318918360905610680578683002070488348949673325218519567614388718852272321739150710371679521825921147784825705825526713268625551814557226154628541210964744210603108767774583122568748590959221728298235452562579865826335675640817954780186896647984861538492060042168108912328866602985757052446704583641321011080539736002943325600896108631461471110931378835700149388376224767078560367792804604371165063085866910484648597857425991394300087411609566314730362968509939305972984952583491642454646419024346787593647254923366911141700782506847424820692449526489582786684166238594074921864043400747025712370627978052490999854161730658194057148877020634143963326478733867814903692360893826749508589249400078910941019261345770615033556665137623339727066867009872982461027846441061134791242008514505678233394362758443875978657187399746890973941635007446914941376581329860818107099520208466852870686808421762060251249636771798007829986048318779081537320041153492902608027962376848047202267557217817539114855970191470661187559439521504591636336655068889652016630557123114245881293515060308898906380965620414336332963674748086311249942728065466268807475696189363920948240212414942425729042863119191245609035945377217994152795013654732883938015384610263407414705324867360446838836820339950846069216578977289137605606258957855167620620284607136421691918198399863137964939227084042468413989047840787587353858847424987071524840799031160696241239746786233294579903394213272062034082347045674431130215242026463576268389719376139048461577233340298936728795042530397956914650261504623355358623209176730791361890605479710138129151490575357626800586368284199269143128144782845193528055727403990335249842354060026437197252307399964895661485347650844121208872829011860543322297141546743180145834942988961334422582815519753083479045351094778675517262645312145098380519044276764905801102712768880577054759692695120241309449233966090478499102253785307056954157114099646808694596831567231236584177247908712799954548417627881807662488340609710939025807670145124113706767684490168644733270954395476931769998049088016551771428258484955429886130977449264429386323501860746239392499672108453342113787153452275131682130353012209237818711927487165988768400863282386197283164214440206190586400318838851044632495360106514056267954859330120841874798753860127459326877991176928729667348967925538374764479359815213334563554771447019200931897848876351643776796681853304669148843519759202103289499907809183463876726105482823019649610514403319205594218189129514336598397705608027001190259333560223970615695007689121585452780907697428178636591275546670696840540057381508859035544877603842358052429688491806646551415075180267430890835373044827815285298054710879789499066167372445492949892787205932008754321675037895357912134431585603701726610074429760690699113244734784602372430696104509589182705422310495501336439868963590881860791599853101058915140966152986026877693555301637325072270877750758320097226120067788006446647560779625297871871008226989172683149854472986190896462307234648957835505096887250986462966735606107266219859434341960419096713743667376536860092829896356471707347325147049695067396799597139658413459627447354054994415288217182990795064711707520754632443344054935435280106318536373081639371889767554204415756444476552797628444685216011130244286012423967751862183072495543792855036524284967346827135046371521562320596465167275055914883841396250824870487399484183354688317476187539710323723429418398990790942986852784778496945808450736834877225446898349098849019369250651518245068096498245407562201173682546661318692090711513430503743444435586824573551282336026506475545384857678263512625115839720436176320416307295454880126782367806935135192482868366632331014265162789736328689664397034123927387198790494018195614200189762919200584886056468049666271810873209579179115039582010394137316635541552021669798013908636254268225269053344077707464255347360759270768050490330150975119374702143090103023467698838644684078389202291784019523910416621906603031237682969302289800072464773420711890712922965601362767503191058944104896112199701388999727096187299273473400939565457861959706932616460651320739299505888101161868560879830744097403335710932166345285098878799282108444717036928166885229108059505055946890260665989431413973181138879470784542353375132089350019441742258120580977453949406577587070185167165801378888385650110284381999472478526291252178725880785693932259121156745344718917498111547145292761671718568704879978473432330172276415471091516807764917716837429880902787878863292731150315582412090179560080273078675602082794843277930063303071166113130811998955762298920083351252777900379378869381218329138260138334609135261025157805015796963085211092333296096099576295468047343825862506983781196490956624795502371697100899229187711012275035899139054055622822914991285334562028830948475017401624808177476271222474098993857611882692603547782465363329991857850539065571322004791684289504407242926664199951107268344408246370055426816659239818020174534984881563861048286994037207497580315163541479919085222765462180354221413165812616606901618925414511924318475614641293610181917710969737437669779019303055310914037535596545831474904545575730589408810738641826797585591390178389620241207887717935011931120692322437474322548259533632917187050296363386367189121455753976896695256586673069188084155641342452379889054343119282798366391291151719357824663007507977935751398008445812987930302976619024002951945611834597600042865203149610053625368147636761508487262118151845741709545230411612671308011423450826444899832792970808829222557023278053346951599129392688843376081439251990674953821795221745099887113595500241427252919408171859005382876276547220585974962857310703152794477277962322246547283617112360990167665582128690194185760887128077990753605797618181963726463951790238147188061740732427388211782886434533964900624835168178691096694220294088930426025223865813031603441444054042397073678675815570039347139353387591051006586465007911322339995308370005133299274583476501672990165167416618357499503218485788222762429655753301958929257204258598347920051661084632439812439567840178563911428390348707111914400440617377256881996815367231409209848525666679836937122221062167493138572879926656415035877977071855714353541616656095752728638363783429055918464516148162985728565570880202561809353391889596829377472369308278784440398588550116327556397187013849815294508531867110276895042078777257435771497748072693666507684382539046386275178916112630192637596443082519672155657080901105133657345281598809250526080226620732264981337664782982098450930035189768944023155724207889868722096125654106254615173697220756372914763506030498162318005058434578080099130651003403495844254496885191845731274156410949045029206372231655914099963837265471598160764385792678214016170339301189338233149579532760357913968829853570452697452734890092203292549112318313625050024163424134863689378995173894069836422523398597164940433723529120845100358117173431162444727620137771820874036517680762451911319969152791472988175225422234243113623642093969337546475160128915820504289052466655237613986408175764703068614250629516802850889044905437296637791666688424594952179684755476782011212821908170573173374143937609692838202592701755873831389519477246238211138664822357708637456650721014082640574366263496678383637794856906772070161088343437611316597805199835022094755061342097394577307199375518054156818415169289847595259204638358618814156316876737544414585107197654307685383785544952837477967327958460648665370073445859453829462382089334542636469307956000556220872928554076159629236599761256504626873740865298481529159849935266609893168468824139764037033739795312464399619583676961141904027220675307290181821568297387944411938134222972980060427047960096243200267855836819807227202782880806497024711358176654230152934579755531192691883128096968438969429776888672363263180924873615124347469303815851562264091970636536971392581751454009276538729943435873278462241320944996527873656860015399654047954048623463000933710161637458878386468287084157241852244867609337508939019134878649171942599528732733784664330334158940611226145520106007725673367163705172737002636036824034295404863303499115251022330655242404942323494958436744041598270837713686249485999667835186883463663799513726805233755658140056477908156029855849860540698076574535930025502883314441498995892035350955310901265332845677754294828354243012379678095255657359006312920622025626435336440707824487903235825913163377140020753521949524437255011397397299469852363716662874192562068155925213330157827940015500353891467522311341743419331734797682567099034712689880723442549325559857368185853851873450008524336866518918464690001424072105909804511796799398463852855588812700296191234887453222866565149401729823034744319515177550476852891547641086310533912007353514941119020528514544223605397442264753856578041375268974255648673996250313497005096425162573719580588904718152955609664236359714453204215901399874715778766015302546246032237014929080124379160707156264106463030715701050829634962955126134584591247295978177357223441983726619195011170658285900160726329437703518644859836586893909316668087537806165458378486954993044161050046439884940994653753992571335289521140755442601442019738176675953225460087230060365247033926950214338690682845102783613673333868604522088928807785530544487133352698368307249713638924690301480814887214205598668558912047451092948687418431029532058267734698420746916151342454839612491075071500104294846515739000178982774820937969068334380927248895144949111283257727374306181938422473395023890291886281625412776093166884510597926785348109916648456391488702540047707512061007747058126957436357903843173009557538802212742220086099013052502621642415938663369319670625892806862072868459338415600731156195158536206503043062474129187465136987224844434034982149881882460555762661770601044682078461309215156430447527110787723604393878671466977973774781665073681566925015065758785454494249510530378162290315284783524066591016216316761718016600351383621080441785134007157008528770052499935418178158196990888922989946179850040407348126108460644713640143742820939441607221997330210632225349955319466960763175845001353361152786003244807551390785282335265045620501590654038406233383071688044041237318101975146615159183748142067724635374692269762347923967419785373373804689300402667409825069827601320746297586563730829435505106545653329156339600929992723187875128503373647087305546744598717265534689072853544968744642708500382054424617975966190334502723026895955673812607815206022152774555071526021448449019345738505973482860006129990187822912410956737882269614862317373615726332940590785213549312124484873091923766956860160861591034648365681342297428455151281123295558435190978497172594319956398531606462585891244121683838792402060040877582784032237971443388894102198904526168588476874785140362267171407882715425979452586410132506022649816531296693481079430447798584880416589022354269703075242118282528422615031112065415787007873726517506995382638177828676526363338843124952780860042119396839793101538427910539239911465330047384829979219945738093720565633384842367714371098708843165262054385620730086275550224569965437059899823281124172315986939119523651937518810045733917896186772459362315737513856189928494398848126684109481580566781212661315422472170164879548012091512107648233264714358079807113901313083489818988096617715720130642685816322818262992226985923769391856367769538506960443297493001241894677178866628918878478542946940206830990864865081430263257040852336008928178827351893702197098504993316139770099744391831178130273729261138455681497913392519602304745128331503392304695242233832531023624233849218659738933472874972057462172864525875390525241257103976509624302351659758382018475366111449158599179368757278915923087811296931837784374595946742194129594615276462189349488213742910221564945139877091060573970183592972801276880236242093476661760644487590315206092971069502623670216458282408842042087335285438773928854203734699050960776772831168440293712904093302170438277137019554817158044410407276323424782886965174732788289880548176782581841642293648670287038478717928665655350265065689639486036146525058175812893494855750365930708652913318694326827200865158087819558427786861802308111994978457072631605938831777296890442312812705446697661567239370144874482648387498807632899246933200321517581141858718178835442615355797082332936725401801084671968996506054681065439809441057313611423428687319756586985713712210455682135618403447164478927129963237281451258005257697347060215224666651026126474928805127960660110675154889686203493075609199307004235862218963624449837586982383940207066815116771005578449609339411193198168242157183703337272466347658632073535984707125559299334278552324804274586289626839356210264014667880209925468836909630030098760601630835042244754377525015829723903161699855268765624266086029755667555843337913576559292508019204573706101760537351361203457487980729382211585129331880947096527910131835045655830648145826257884961675782319232797961748381730749865848948207189790806801591305583773665192665995004420978293374689527849622148175389856770501652375385746204681934808665267478143669329865036847168367277511263852412133233016393890887844442420113134242627550718063499808469250131947315775858324298240303792954144024063708470055469856115551125859409529293336995297537689850801994057179854846453247425366874621729064515822824246586796815445270193484263575540608487183684691530804835070862685745227602559220769122662760974245527153074311990993540684529730029792259610336995113342301468803754321826596146071461171743189112095705503898447862959856075585447363892481492379243183202909981614602569385245791006615387200545600746124965370750824649927621703931094637783941785098422696547540456465104266599158913055672248027968630881831504291729805304488726232041426861464504918549182237246649363738227613605903302354777541667506655352007316643756674144967599336242079097594066427658673557560789300634944555522177230851747958732382419649202162771388621516243723841036825763104727711051029052664539150651838221872688688705864026732823271969305798719299814737468305099349221801274653581003365324789988095448576481467085976208437410281920423404572590913712155998626781946353464365818301907785140738806110766642945363041646706862117345490958126500594121915042228891471348762134688163663826668215035459448745732027951679232337681729966330093542859854151400448823447707601261770977138003179321685848528490073916655274611767968009062220493460786524025082306910896057334260495314676297919196675132378536208802143560318819398188157874783256965125521113441570622652079196869094415691900020153293527511730650542731875648353071918729536111286661416850944494791567899268037980452283029487054627410966313012776753290719902113876081161552781140274336222795940962064694349263124753842341557574361098333448903486733740357620981623451390006131529256259066427883740345708878773719277069002883272091481928260050236187776555076944041591069183088922245107113878625034257880144022977729282714283455853104361910007991550776349714108859341121700670822929246348624656130366851486201841153972549703695062964140258665030328223089847887138659765506997410791761141037643581190824509232596689102595705440845910108611952302736133640428249381931461644870882195331274373056078868584109179524586560875954052934560693639104026127864998305331287480826980615366632405389824334145457493716066781500279502465291850682557233596460155791003105129345315832398857655796408618784665758606523292442552649249189759110974173546114169283112049002642299534301500055973514944791706199015733297632937108088686618461113894047114775056154509551673090843693894089094036119082376200688866218163662455895440796362655430699074886137687012846081245552387460117051269749475814434919492107179058912672436988489091446422269687895096401617350661878779231637919854930966440001514210843330004688709018995774323794815600079200019654755615570224271519290242416799261646521493661104463592026026470924654893164525024910294951081016930152842073222268062813553198020096793430976730465373355019860477902487037525002375291902389251730365900010439201000481172943202101165232392181202442885370603642265124876397074775053771671735576905658723212969789545053489530388818642722497455919387637380313637335953709484649378564110177785607639803814653170031123151552457396431218692322295218613252196436866442389924975880062123426082772409212540592362978436096755785708256806587380021018368768125056080424837202644607599345940137408412162725552814046479789331675651378073573166849422293932866187886990423980129878057108232008950043004923354435006097627273252184947113106361403318855056703422419905098410458774618624364528885958364978012389504202694300050923097066826237868392665703649267783559280971920332536406245000947844584815410231103527163629953542819558417106904807263751407855384723037669267462670006739406128090826151599760064501025007847502494062243088878180037897842705426237847551366468416635528347263775892885186986570317205398965146002750026508708306402822154384156929387758374994400464347430437239415449306587895437025945944965697285785810942815820719872432376612996175691479528602346167887790361065545960999010860321322926607755654254558598838902231741077015806476783146925827977529690548577004802987898165113580674768471711695060989034012356975916047025665156020552055219666336089345844636448813247000318160747030566509838093777714377348081633159408881872910408743899115932666461803601444197793323910497830045778123383425924404146784159737869532415123932938638779246644729833510500210723544353337170257719969136112774640597995967250949271480692976172548747960414674922811558715404942534623222703787064548043284436251061282984734966367415074937050721313245244821484811463442134893301557754937530820154757963823776491059877151432721189980722951022830122513137904547333361580832727643186648802001956465673724908321353010087484832429452970920909242989445335669333305298416445358246443734112327146561671073509578609150066719226868384977041512331330606778729905320738845752470888955495287267918861375575463930572711666757041968546546277478029018712162731816942410822499641093191401410625265761143733011634330289411885798204790830479509190870033525354360685926176795821394111062434344493460896342746080656452955010471822358036483174373183688644000193690732868269313625019398461480039388053017644609475616825496558486537219385050904469009926229680832858435367202238369606594099219177084465118592555688839230009836815927669059286605044819884169454475392904021935167829430692343818993444083167970358796813437105155558316114498303412836530230400644446651710938863010734618894274836273716642232208314232755273856407387147556960652349528704713863740565481883333354691787263558095318634490462275007170822244618454903807573492875052259672074105605352602911571722016261599187260298983267817104258003971705205110970977174194826179171486455180183102146017205096629493897190071997335784847661232624485371092443354360877163092680946064435671432552443616240707495204464473688842074786031455379511558633701104784906267578360041110034270318234533844072754876380011658902273582139337910378344922945137136530685883075436488671902948228270420235960787130106378240306078648120224523291617428837916028600672574069168282232953433074900250223418739159976266869436889863268032154805633679834625554685278835298388622649291598257998903643188982260842166588599774273742002814721785862067292577370252744761392264431523403033109082408769310332896411961897661501961909951951668733226115868905291328941325650008302779070143752513100595691489761207659695697580199269541200388542041759629452609485406908461029364899742823675448272283716926032349928115802974302700662175862284405943717572513433695296530657347653467801208997540983745192340055188282610584124673039111683732053935977412049955115087937023684815495295778075292982699326101119512104852092258554081193065545985088139746738822868789667625474875252489768920388664627031776078627389056528714582596093179406198029656604680543102647838363286383544027808531097613983720753626292253152869881950107128031833551079913063829657791366319028431907722510364321862890114878079060057470053220595507459277241451665731671968600963693665233428252329553434923763264205550657109771352897715423834888218797171407091475602238500451858554816759215061455448988522219563288080890030232698879805249791820275644029315147475128340640142278939050978232510135161802450525451683834320608968266622592594588211536846564635123631290268333337464213673615431115440353896747304519069560905613750783595208328359982933915541178943936572534683435093452277496315714309817297559722066702452728580301840642686087601352967641425238018630307559320984967696388784772154991608612377350311112954089694370331983500648926791759626743106330007413312791632170125089063186221430833493391783203908768525070635495347729293290557996552875374040483618047967782794752283024333185845950045106686111031535525374928370027113808592544092301576611893146659766146784994719667803988966216167814332947254043366707456118425462323920145661530712053253106440945853352625115089285568451884127404154268342799066303149752165619179053335924760921191135439770721131326809372575019303308222678337089630707745112109553355386917995950753769392335777768851527166216854180900423249412673317017837135266392357152000667544056338784156383279245146542504002368359743499398370351241800504623044637856142796930664583333590495245215243453650733113302032182239523496317788129804340291706820128359452662670649415481578276145609203307065271791863265318821231799857642771371699985487766911410830811017010356925063180326376215969101477359821130091008274046529888366020577428211586429244204875783198086075451258361599024064434465429198865157602685264828082944732246547031790751766081013955575249045446675864301908816675835689123440996364990999795664078080363099196443206565726313786259668425746655560007335348180345026511386871350422684555871124740278892818216398111909307001665906921914615471381518571199482141925954353684356315469110859550202318534588251141515713489737577425098102314841045611808316796927683888426694018348204654807244127709302746487024408846590497558609288867296009761411386658355504835759508496295042265127117920676673264445753162162980438573855189171328380385828466004565009334005833416479708620290395585006173342727774859924909394164189641864913610290930127880983100400362719943027081159049747188844031769974954520453937302275159739190981520404935699189284971418696349396872918388957761708003291302933823349923364239095749164364189356206645733780545589776200262262871468458865345140089427179458822142837982990624503916863757173673397700915312212120381297835507563146091062602785518111343624039869601115510270321775757368831136100280786274080334459248150204395795869737632469396974558582313280825833726197205636623002224619269963886149081286158266098757954709030482914160997530514717350039729391958921552027064326439543760582654361368224492416988880332582271675903894080541125668487142250478303540031564979499365599909230041772293870235181863135349977775034871997617837522722705105784829306305557352626851349950351022604430435415207676552907086022578127278871398557274873079649147519081209215580830624265095765793943237962333759776204238788352841665120760584145264259575484839893195454990405954795405048777687969025960189936563753305991847729407213794976134620607725885119341440493809166307665627399974898535431992062677242835098325983129250328403424298144798728968244426497501538352393136117061004671805557327938944718604064341603612578960927223395175603573438090347490193713899793621756482078308167815410935295278196926537388828314496558464625114168607526041106599926487216731018600180770940296627957839598934353818007314185291493974337615856802615872906376482185537592764349766943312877032240424921485635554891701427828480949199823869151333027393896641816761727992188512331557992578737682206251122198343543112266113249545011590594057873950921960833707871372459002049650358254394262359381141508451970785523008218591409423515424739219508168770896925677003069441578453517083182743746427464589375418937772424709627966502024370048636975213591423922055781236774543198440690563630708122006127909510588741884158396331839350031406679053347676610880654165442868970541187970752200450204944570155948149027411730227379013718765495469836337598030391863238552171923365531724619080919797924576527738219158486741244000683139543346113342038698613697460517454097436519413726875961695871484767466908708046750310825689370467343049287705562946047919244498260276025688589925844031672387459637613408120116058704314235792009575364612177520879441630191416576697174231139741066535502157336851268787921586029082435307675919003136627479479706540713745484472130343569810298335910693371410382626724269797279853877920830826799767242434563164430864698762773024872358649048830209962859426092930448746371030849281228652066484133377904605989514086085550427295192230378637854622748224982027007419575093556521236385031830417671554429111231700360647392197391253386452558949071991584377274247788474663059319612098664899633171827371371301634599721201417251572549398626186138751828523875699318094735671462239416196141476103655284325090664071855861456089078568386311094116985318534074149637917902620238667361940598694168288951411086982146471581751039462515340884014427527962451675901098625299587164620627451094499730387892408051263489995253953869028224135107712382149690289257151369941813725445474873732840693858284422640827706283374346575610543757750768394580541601727384748632311137005970086354266881396716864227990005135166654163006455042182550695828126818670740573018957069579011796536225519419713318785273352057448092847669538111423879301025898349569687146330004063642146727410740939257243937972959783969868421384228452618749006204383761627953411339958149300842174075493416333825327950346891847675004837788519275663022460595168936231339246246837309661316943373395760059409597204567698135522033814842705321890672808098149636122329924704553937519848958805233254615910791846504420244877513783295453853004404206838051789030794945448449669513302486332092786557634628509354346914571722636936033951046485641588424280563140767175576151600251749196914092319500090953898433682266709967873975689322709505909914244456091591981306206483310425376907125592881863170373247570594282209372443138118458935775335811948355920175169076357869323928647200294055667864236813217581457777561292397454589638763627435843194598541918500975006371291399352405994343308319028163094985776625829056131858629548523722726216056180514342847439789855207258095495358256958547555884020254742694153183340323257049869024307410654978567740622959046181303767191020138428630920210295790930949129282309388288812182576842853259776611218427828097072945216937010238665248007407407711740696432538971963481117240918027246337442953968984497988745212070794128594262355095345133183231040716536655834376023127279252692996112948733893823879747536608361184524365613682540407127689342853087106630612052210867063307203632481764632629834429201214654540407162322903356115508108578085852093646562957902799696827251757393343263085112924537835050316762147970094085226459961162882377493355825437871419186104424390225813653818904466841474432933282120161110718900242483520859612594670684562087975466196853016606698136831869150172838493882968369364884341736233645339765937492684147691604480039183988215015081090916485898287986871266311439809687324816793711173749936133270275844504939982950392259830061454827045187464268062219647860139598756376569751065236333196225331059237598204767618273656614797912457868244379691739438020094107212190559218078105738504535734845650206800768541715495661511226615892574670599768263939086972284834203388506953978333697697597245495627816987558123017789588396131839829809607852657250245214018819616924224488899378561505959884932790004275780985783757643878738191096854033884129666769497347873952055104661157438502976299898171249072062287923880806839550297209349135954552006085188758835357341964468153880874846446823815139899430103757399330966385346155081173034153547092962369411649221974743132634653570619797594105993890404625183723423076718811433317366496733335458639222690891975034350374047712352820109718730831149535740942666338257041287797000531261202083480516343444500558505989239836451687297449331370788176602526038496106414141252069130301104107937167277988372554277200170643113667356612722780638675443091501525640750151755045831776949453647163622651360313256063513132799893249377495651481102975180144599103285738937588601633985406249592031442399505014087284100254253640647274727310354436697258704133466190432145351026209175711045401983125535805645838329272016403069433123789082374929836397180667703894530307173490457710604388375587331506421599711456342369563036510415877113588115152812468315560684433842693946940754549396460401087621847193252132977059233684258049604269838799624927151060347275191775609047539427210990139810031609475073336894698339387955445425093168854941692220958054837814603981253887807528575985053389971086902586626925530862438674881900826471502802485309267765814026600228439657925638937141851985786608462026303957413547345951592376851041875919807285210349619917393611186576033077667471892251289363625819185921447489651721023503305692172617684746716018125457250655005088984082858751891147124464563299503105145104452585324087914721285495806329672525717610657641743058255064495806307462307503437305433736984214958664351295983531411393905188771350054439190820180083729204275981542039515955011866527476297848019976405434550240263168782279402959873327601332819073850389048838964776218560536315188997083027163156631391902574561253747450498064960054431689098374641122931034044567621828575941500130975627334224560482117471921970451154913383285673394542980935460842320623024984704370322509129121521115395777321290805105346727164194411009559910740469116255084187975007590098973171579008607826259020809833843772101179783481133980071266253683979397154396169686665567398531536447199499956462745784021198497879446042086164738214344845342606159322524731485892838241244657767376419337375725581790102955249166091385153478851979434127902481806590453960566231301797605566787381234550588947105926595186718259393773806522708401922050912102478598903933476309043552244867714973643673691348198438290503062353259695706806661124695034062688080491789009109576050598690007416046427309000776083233140407136212188253488849909558368884862777278817434661264697270802251548051188644453047097228080364097678411584192369874986887586693934670794309106547912533593642005695876302312231320084057655524415472443001860531263241363039900417288558589897683762067452242574900427948585852612074953014141982214515530434807719460994306035294262976860583241396340397362861222675398359042948584024824540860645074014212919647102423297390111522780144316366768638356665224154560671025693684050926338335228991174974948347584173219112191318707633676249939182012813321591480837495711189982904551325002948790760609047861655547172840562752563859906676942857074946740591201402809294438905248282659884152709142854970725749330671665438989106998116929027113253746765566779404508878842366394040263644675393906445411341437880513757976413930779243276705766830518695619663399092655178899822412497039395743242702167213004034477520774674780413643314878827976857867282749202027462402208705625746509185257885444097323196246124928410674091715806882528579936576037177340504978634438744499860468141587862126506005023677561816160162313541709957061106151142179927001323183396528226988852104728658877213474548153287309150879936534441755859470576731274225630346810490114482313703549726133717348242688397773674585230135714817453463107421405465424715965328416853211721750670075911710734117466909722901076921778776398022311078110052571686504098563678324654502436572780732670851689239345015702001575172982447793456375272657031684274727650606466671860013707049274050011212395922654851729121477840523153801583565254730676096086150407445479193785616407006381393893601146730547067275968220685527416239293785180383237605854728325165649220681690341798795437061919595645847816831729889146105266719974811028911498530875725651582682870223130352203928541986765958252730633780229549466064495622659895854510858684033439469390702460450224658313082881007015357447375543554251955718184298321693667196521477692067819861682177143295332066657813494937301520617036183515312607035332526513015158430548265508080571941089594652675903720309684646465770328737023261791669572570305152191056947912116394204596811709892909506885081126469549490389142530786635150646916684332007121666646417972367819813081232577618147686118173644219282403480755425952932642390940186796757230646419640008362562236925426584899434258451133297936074498805008999741468560072844880619588928020288732695859265122167916968670258306869437729330763117716913812164922220987505222518528862033192169202720511598523588058005082501715108861714294113358552440638060174051593743514466305517703947540421564042519058204393611279969938545296011234282232414389480105547157980532893288414058787628878852473638508431578292052106612944043871183657940614457412041360958596062045690205489373532543430611104286574663560405134797302455597213263324645559554522546032686424254746080125772473166545030034154882222879408889833616524865374815146148509620160975898056544068807446372388576488803530906503919130035143811142326302550406872146518548961857533940786516856919150345921912216327399963981826840393556271082046430851556500395079280133647894311690078446800439719855561431197018926016920695816468941085880918403240815736765715168681372677528908013127537019576859159460737248021504348419396458717443803309918384020240761560015331865049093193093165415478168630991839098532014324656708311918245989135384023914793381842824143839111956176245078110891630911876505525797098450990674914420764406075673781872000070400850827644357889586386092791068649745844315833834484529208080711424330532279197732134605791181742897665439747215225734285488644933395950266070215381177702272586546271221623265385560645299562121550246013841454032760825239006234132110571799872648765028351901874968222934699158983317399840498563342604710578420787903699673677383476970005486035737420525135805484910366887075644975301525564901400563683385216674853950800178759703450832054936209539880830572627812366046241102412629738794206549117059670250185681718438460451748539512619514128270782383902259745138654609975270075593796415839346454808426274088454662179938838217979492135304884733403213945548562303199703141973491167062504657915523028137602397294951136572392258437679970302030433093876749988605597813782087953162813072779062138575889175380554788133785909825572738260619688944404656024713815172446723664641903881593023132806546983145526848268569932067546222028381866608090036798140455088093200876367130713101784567554215773011456010037421376083409450198048958364484539487309862477960624743128917777736806763854860430125418593924299007363231413074674287925755057688873555798058424204807181538446369921789103843692570829997230456393753531568469201455022197657381964599529022042785311389174223264530886688841871513790131410436312158579664452626842812013609634350087526911859873043089614254942441422513080821496017448287618357190884044785938211530589371189146745724239856984628180031215473890762108113644285715608611363713154524306576047572713445324526529977207617975931104553367640829425099916978862064160043706597823433934488723706263034435527088127429796432519836423211424617486376517901568568872741365465713074220823861953055510337971058122723405692297250636942434023975756559011554122052044689428580487964963054343610919898838578361589591205105697243043853636546834573837640866229520371170367215474817912764722242302154449698658998745338876223798948307864861161501894047953140264829812505311706005077456336995332843636542800134477884936940477798913943052361671214190052901000231049131657682124174920434692516012957926533506600505590483393171061876001652932017035709093981241592652983615924728836602635443503533400349171238924732325192217113824259521256001201469331140982115598277577121105673366908793312276604242688739558860785992714355794434469332910395546965897254170119979209462338174331205249751164814969496948624431572178852148530460325868140217500525042426124820977832273712542264508260079165108722905546406226012764293713264708709974758343923768873159726235168286577059485753694024921174873460195257918253931699577055591402718319994099831935719885501350255268404543860316606808143961679690605678377218607335323250207324256125993110014612129041303750523909051706417098415487412039902880879805011830809241513208924019253580745916352713417509589954939767278172571930619779880051369011078073301306302190325199798248509481800495300114550217157685290400250877246674892589145552269385078727305700201434265283665379179353259384408370998121784994136089623444141320966453436719992867978831632691774974532322108322011619234045740443874712577024360290894549184232852846343216450258159206634340861541827877292113774389263300357069181708785546460034050982687337924249225936374010150631141528537532566119892712878177772693500220340936518952586892983313950841497289328877205985365556455320121536874673992454082169741198445242126751072212146949944009225823985972284107667975714844371073654411965063999364986664626125959523859872611906800582525582802890448083206542425776664601988154287419564742229370600977905951940937528239044782749647510931036033451641378099818775586558540472150006930620873228978353943176406556648027496524525720740025664141185802752718162106002873025654809954740568229644966932111463711886148347023052008172870466737478995211688754596337529947836944560956329175146223660982438859617256692264164683191819379574194119917353104233620938305898199643798330803661482318497076527264932492056308623825716518519307336450093129664643614376517302020234038345001885789667754945950578731665033537994128253521063828523908505401324660976979229953209394206611869264664302722418605033342586684975197015777861738177166470990740096408868413609026002145609021842359517695188422045600272914388067884216698363830747027963862143646467276120113758276577948094389961134666627023489091529806838409654031991398339199320495683705977407452198437199091487976591280067591712150524263298847035377325950640422199400761415319168158614980071183315121797877883715741816164334622491402155520197976436977512030972810920593676882579543554915963068287662571101828090281507382737558213273997611367598183053479380956690546945915000549446755341158428339237790317223273266853043013765603821675643695045561131158015001960568714270294857678213254035982224369837762738122611074242716694029902699747666766969160770258133866140769945625177884913611201813114024861486461996505398242508607069976369134396531536270255809886570496121533622006764938766250791419199308403811218693539176370411206998043035449104437621827830068844402761646742473245372725709477776496241332759857501281762893296336488523719116298406211553393057233540125328334955064012611097361443422171177767242717393660236752341342526530445033112342008426513215602259693483712206085263142643483641942080895843345704241901486441256398182529187140857723810769948483070632694646749422010141223581669946574951072303413062195709790021692086056094095805908612085054332905462797366455250740987124549099687309269118024124472937983054832943459040280622105312481880816571237072938153796379502481787783808934400252159391766787271962301419439118140964887261986867305383086185419541842894055038445240655678010261479794039618096864592840945261900404880659913818843552243867940303927692272348918230300059794518403883702592550581177137492166755968043326439312140345798611089794325195251090564132211537459699700397314618498902369889096534738983020306686045442507252204172761738394800060108597655457698651683720675950750801104930714638602798519092240812949262276838526390123782270043138537134644999682272105168709363602625257951939529427347865925916602173071409277300149345475014176260206792021478114181999422927733694647718890007319754584034048600725651181634796658652117529044975780401128746226794869461352716743691186036624669871895497276280649169925992754170479325676611887231636493456892242265466954856828868503515218725305860272399661187578441928894560846801743795393584557319591704260487032742015333380485821148447635322773803376467302765381792923352137339050295472333669529858916990685101343379374241491068293723301298703936664103133250512971841650275605701800834108616380948759811029850928895262163482632508403597669913399435503791043472489843338349480741453333189960039170342761294959129122862864585449636946387088608621598746401459204600579732244670558659631778331365065716409921300684620365950365216818130788727270463369855071173419703874090475146074353626782089886131364451656742050394678490053689268355618175073042220164842874017836082997832606873384104350419514851725979165703584635070898355028613988047704115019358550987581180897486946930330181428767993114567386069748213054226085234532830896701768186768341734691639141865980914228769793075971857563090999736338783911168299343094807160932342849985089648270870208780262912748472476137473832120399436031922660604699535673983371896839116833755844926011183345065277062368482126628984479137900166480259832332182715804414877082675842464513383278563003588509437645662070730355485870862662463724489932552907081888506462646316417470126671783036340441441610091430285189617544702569631134508522382382370446644684802076544524992675661797108294290658982131650802148584169565078659950196991412387497213709526371046343492003377211703694666244533135639128509504526615774634932974817338363339002824111191607381605779062570280820488995366826134963041437390429240751546509996147724519145934477889264065853724727337237829928165884775363959620562792904132564186255359916632147749948424512855693897828126062247604581321339612290773885215823521159176013193965673868447880580794065770772697948260504581238028767273325691225245802454759878889214385163383442668596679882762878207716491650815084432582665031484431172947989502417681121526178371564695586328370422383306339098956082646267340556666447672906488060493881503983140143523205400984337772421098523886852460751288727990795394715953344502660419101315844339682894502301836010591490583362950541075222716599328936543969992982873442209449663501267552150525546164573440501638832181515487389335450306748707571495987514088296296110562574598056849509325759606247423483754670419381019281399322869779067523274787279795321726841087330491245891820804750762068398049992640704329386121944915079177053102997028124367187224990426066806470091223606110958919842840709961135447393219288450658056623065633721709173215353400426292374070071993238674143988198007527464892792216538072625865588708786150724378317736608070252114260113976840447792835308436434960238195341144698182025288888177986279169581762114686652113310770185852952811521357277548358394836881790071656516770271373696778889698702440712391974081659900978916554030561853567153607121123115087830294798270211788771819951792341088945459088077522742957625878058892693045287110846330191720975467835392088787522284309665618635984274560829567568791255560964594744953719478592331293183104527739682516508353232375740334012958461555279169171017634122930745594943096899941418417430908531931116345831460717139960440367817349980123772077193798176352656734560201068426193358321338783824752563346601404919370855941944418292361742589061544442284876470816152320792942313237041642181332714455363100790782884845908137131045857036084395956820981855455463763421390621008720173633634089922142035237952070332387315277446207971567072258306316169959713627172496167951098818475263559737940831308678208573882358650937795389637956218333521389097449182320640339166838387625177918633278914568311639936168277873086076315958624011635182692568522681603364263990029976452457275031771389750754928388963987555697847488626835771803834100639185871316800317873697822850615883558548315305750002221882151810336671162761412037305527793993754322401212929421082540280973577643560284297704678421570272192751399160064976574948685714356472111502907032083103522928276657170107356750533967259693463737855542353744239626327363201109039772261387092338439430140392255379452175565154255810933481112052444560558986466067542395286115556302193673018174943128615614168999272244681815439430381538476163240958409629174546127235247873008249899484617944385706482533517422247964769608041591924682969194029580449553419415053102299454937904811160841848137573566384994572644299275164433974090561287744674930200507692953301542120514044198923914587789878097020407208064842130740149020743693816250328906434564140271643641229680490838918049764414033041069862093713687487106824878615723139399001982088986780711095204783849768789422100272254574298671997183028651866652565249419407244658152876126297780809481118623835926374643912244768598375612445377184953745894103761314204877829450074830012515273612667958107407046431262892563513222533095945707510887717790476998337895850883343125902846149157943842423388460502061770395834251468093692550613367615588880624542999213953533509289839046826906581261908101084204961186654396857079993641195618990630497379230825929453352232675846551914622417810142316449178171151650230286217350567888516849182244524386933605473561667832017199415526410445904935066436252338740114610062809123722740633020925401405001634397239651786222147352300029654349768256924413891425546196902954217331119236198261007770209085037837528700439741659329932366369605424227510611987538643397879867461397566379292542643176752482181157918648924642245479284397589571510477645623026830619085207475141372376896177418132843624200393539173388253289100358549214129567706040373847890404160368323553284327739189315637882201029208938029420053378196107291550655360273279401351877102024437517739176991674126407733598677147167373935453276264259732043192660914559981909932110472987945528798753118097494943144650640777760445653503354033322336436584100083340176559135346286960190055418778523322444027646853770069654622359225778084470294570998505466124366380640674386522911030820661925257910053923648764948573448822477294938690067053159323736634748444677432056363102490969947238712364283294468177305441678576184770481181100262959004638136718915833395671337386300274019732053397352506877852119618740011300961670483047487657021986675911915767755147280152924371917184069591924506480097362517485599319689030565395021127559975463042342876306737226236007461069460106883869006732846059216613807629196548281989227248224659072567695382611782990728958514661497213240538445737395664884931049224386667746308495773205369176197688660968604028414738008497437536192302608276959714596412398814384585298982354354980644980222106628632237062934485900887516237473727570429881611968412018687060829366822811615721857839899409901539619248903410979986369061569739115422150664293609710521863100556668586893531227194505021641251480838284395582448240554876051533698474600659875590225476931304278602193103944133034785688641093750248369208005169261898267840402231878144757077804278988042429383321525055619153688041061168922576819564871947082282682832028951400470049671918336289640567284057318131607165189726857858482098605173136967855818328307516465013343990234852930313178461064157089404253151510612255002569762779100079757618456684487637622799059079850285704939427452137792346629663632799175871531913592902002788243817675387604663163374323621086607046071610240380710282179642539482208089603575303412784222058349498023633856684016932665170151740270203041095204249121915942081800738978549026023405187422212345792841638708335645063434987304363613148371910182821443204196527437238699788535321420471283585351236075877835381871131539071231237234964536051493618968568395998370184097964146109551344803104062877899480812256020330907794193543171854620597870350889938003044034259395810341509493916405566704969247399267112256781745610667161117819407879679077257747539173539510205249674811434111652531550311101508075043547803035404650885309151334375811048498679160513820960990194801990036857943402188518657036491196535347910236317599206018387008340091464029495835046281106683719282472590575802454599822645244493490149666412753633036715506037727131369357632081682329612383039467348485054690411555434958859426023453025617934340034042119394401962391793789712871144563392608412407883206001153363176228955607026262156595676518046301103822327068704834804042890317138588233487447989839449678176543052611743140451860568608907968249603436987782884785243848422136864795050908814789241127886013648368781789920238157955131446851022366817413054179623578528181502989928412137718849616501851907896987493169644649529872249965052610721023225639407299887060748114298748290251851646502745253009348094819857012386981381247194870872786456361469931546220923676694895842956729749846461603729033526400026540737079132087632714650816776031805817236622895777641788781772087463218771874680716750824088687489190665450853739556640696236067397610036274753635779733301224894969424579705858183713849706395744422226120977636797511160819161594829113969535616881339562632511286024115735687622158328184870152711459949908720783002311688786196679271632149519100549637622012522665445337633917324769991955863237082875806879697732103821979358214124911246293663406818033760715027995071356562202058111264086761520614078457988098062788280199869043032394124018298905706053207205042573344468030756275729489851014605961283478241288927194616607401738034374623789516724989557624044766470102629191961158005376218152698643198281695923812526275218215197854081230134707116629947024496103490604408145333922746475554296108708134155850969291762791589151631774909686325070483973171470362377510458315592477743622085341516287925354208280598951639160600452385382605451301874214354338491559614498452331301235340689375978219161791475200451781776445256385062780287115207556040748637508723722574011914361565110610761595550315003101012357717143656248950997748460624330096697031774612686993777315545268592890983061313881454389520667389992014222924419628944415894020555762827686746819322605067000366011976893555835006285009419519444626870474132134793279937764137395173655845686260895083185890369046482100248415142789173325372936925319969839530737916433336285199524953218562995932373513679057551611669556322278545031077772131684528051887420663543408368929773139524420501952518067320787485064650590804976250274373303660620441564556701643159000008290190203396918691569871151273800857514252440009558156650822724063774272337539660496917430228438159857961061164904233207522611457569676729857263294726381214068104034780316179073580248519072659405243466838464322938064429033319698728661361617579756034904947416952699738636656617391524531907942908159577800859880414829616541166368759371865759907670491838842715046465814492331455013219072076271034293733238269734651279158263908612146064727541087615250432960098556940966247573517302256677926045332961162742367739641619212432845598612781193816831826623232918873162441496435127295325081261358963160295417013896667241132144459202119055562599128987110553554043624203327675611338963476217187216017997255808362422545635578301421413670021866698209020111110626339498992740775463954762786485681930003415365918638805161124366943286987333373244887658285786181795023256068701744984882767131754367917351149742972937024892570492547745753352393540136571389795685489238870219521289069817761557485182211721075527517361357273661521255265418615734037507004906394120740267667457952757147076027380380316461934981556896044395334377956131646772711725805578939842391688173272140298673456215181991313046545034716417031883708858533890097578687584833496719306501721713541004355225155718244046158258336557698125108086865576343989212725037085616718212612351362597119067928209889151840823756349602026459701994515924254013286821555602798308081816203425518570107005133981449047017234605695778836160696301534388908839201311265652625343820352807312128006769789515095531237593976222582478089348273995549257617302991005385833248859477367517291720916682566890397742935989758544142767213835407534428763157368886944346950837795369896560978406212637588225200786323982332750000264715756886823482992965683730144382670358323802140851497027098325670953961272450451034481527783293136825066150883958126151024610314101425642697784998724959110170599330630738075758904825657796359661674311832108755976618450560945387231137941495586701326224572932300891390304548325667379930184357955625468550088741987314504663120142248397248754083734315263976289860009351594759920774687212074730290900162616206680109927345458076360378298490785887269026824021166511877202299912134022870798943866730957424095235487569494983180628332860462819967732776692263133237414819192967382708861997993612759110678637034668159734312161950758039483052900962739832763210232551010995184357720045750146562028193936675913132225648377120676356026375801085878518512150810474881947400345554304487626864460881455480197898294758325404600428613806700145703102343555241935385058104237937692917271389298558686017044464500755709536763665190521900088489633934572439760564158047915723653135327660484120157185859111560043005510415403039774242617566898831795099490264466710818507935067243425371354201370605277786122729898794405106865531143737444344694749055393790105722622868254756924056838469679852306402548684183821460121821331884549388870237385208174513936964099344128926745626288784561418211246011311689800962502872871475964262281234629917238588557492944282994440729121284342623185646918602093178082728114171631823097570749429982291657794820859940686870596108475779757191052388904239120700988799958136320363611088214575935843071085296900270000360809762579588448290570287008707752456512994243390813594864591246284751236067978448758489201135875180496687740638987718922309532973265393642762616182953773167789027460149789965514489549378944575426836275524075448855174224907317488663108892025298399993588239986271957865356559365722052794944494546091123006052899407757898858264531519175469584932825482508207904150586152393465485035079069317486620043603548733660402759069497452666753374152155478851835994981576679413974126583553583978566901416547534080581843950973775467592926015500361028697122281892128871900951223305611492541968526405848334022508857599801157859722750070914806091462237295297377003274215369608197714798440075121001930443282803077668961352791365650508666277667653212865551396753793556348538397076779644516954879862846545574303130138821134736454915261321744583720545838857711414944235565142993009449261339926393480244094276808587710877258189077402951363590398039641519948318829905870444617738230479162668791304255307499416025374192294984189895169855757349606327981093003275175062018170181679402680817488596922993195671886106542295474332992098085488132577766022685133559307606902602547426346267530166604458416693827374806408412166290585133057073463895451783767635402145900601819194835103995322170796976820687183069008294263730486939104344104373680749910972731654221933544777258607695810006227959872152184721260351770664411951445953148066815853476176342961111759748969669075706961582406670949875168338742281029875790495382679134490140922488635703748036296267796148562939533772197126507976943651230203830151273989675101183603867390419053782934934533896254643582131075877805879112683426602743600755866352598811648967663692505868173081754659894020951563717432232460490731468502364345237703537383883253867157192955542001045839859828397829577282258856845277604673283899697925730656393810827624163878435504056820915814113434661800854491285674079369023857754110800326931322547901081735281327797093858188935238143236991446886124596631250760399554803520025698506487222591518159072782476466732577494266380857487871239059164912982655361176287960151178820146214277975718238992230506106030766495446915867713937467954905092662069663232972869305957694210442729641411932134265354509799218310156886225208286233764739066817427115456636454775869048164216366408817160498092711868413514965138997281907883522098297364951766020013094492472355077008480992845434369722807311466847574249474300188868846521411206693281175040803310641531908554701381510786653595935025707426497856099773886275306214551122838880708302464887787759011570396704654924987315610940182988723865668059325187157286574534038179579098431826342882106380369313014999176685930075702539560380419007990758541011547865759655597441447728096361192977331317942124765006563837474718690772086388858603216223353752301380949718490647804873954933919532499877951717059174992411424189803634836811555669693768653334992620213418392911753302841065435978121135064459502992326796601467943052425576933097578562329520735435812246099834659237335925397280557751561651580751232009257692318571059408490419046758354767590392500460134208201099866070964957727407501321025498853983184377303775512181984305490103585715992692062171911242116638583996964635954908517099282436257058500220077036449119947880774496975060686156257305774699091712163834759586287446054047449000535733796987703385546979689700662191612510619688028087873688690374453912363272756089117926191488234211650406195712876283834129749204465103732661254326904332924668009293275789904785126794471525251720818420360395522691538532238111173660878431976895166248707729496234322632045084358048152120016201979295759166666359814907228458326566597747860588993591444742879046543373981236127854149477943506334920731567030575278714964025315503993658444294437391411731771102506051762452887033602705310349114606357029047376858265891829306891606352953738116686877907761003825593816626174130647208737336971480291745534698252265193497222178456517493449581433460190247840213220837950316500577091939832956727151489105253458498175455482501200256201998369501739640334944932782669756404047545084935736454923120158813723281707921502147934039174017610766767796868224665602475316095624953628066978390953614174439356726020034226374944910791830146621160069279148773265416026834812355336214661425103123558697683656342641434377299851047276594362640278231130563907824223882615731838514286098522724451367261444661971970857584439306312534537784827126391781671161647483843427596321792823389847762017998280704468080076158085144489107008468621348463752206372925580683352595785874208678099985489679688260484075722943742143015739156953638272713802788128335849140117341950958495399351593658269039396011378561511148844134039173185199217069841885149206157410461106112927483821866655651339112461441895989646895055675485385991582279129053127142262919035808780086596328222956642727558204088835614908518398313926582498972266419671532090827706698191531600501826212953582504039811631971089352020320391335478418990843184770083714616823860287238370096075335249985804279879615688004784356329582105337024802632065492041400292544195248695090188947032033642675478129886268685850549169133718551096848295168914952161158349157537764186822505375287145690696208701983251127363469110457409250739525560085597864459268767251778766842872854955095755645528431534995186410155973393223366727782513618526678096476255963474212181478219328968545072350792183380548263127443681706650834999209227188631806863987596448179535611048573638742555015417967032907864201340406005461360006448872124101198084959293244821020986414797736821049262781314729043837802081601589179958656008706989370590367367301861270313132560915609465133801344118073827670758557340449527872767531398494103409208726445337983674110361803464129859399889785535565619275232733062914856296410005083736911706971739461489596251225146459261248661216009017338950593834391593965760280857059420197800574054562603049857891374343329883919473950619538802208175324191396480778680520156877628070314686195867632809314539549721814211477975864477934699091210840597905322518779046539867261549986274425100704760061482766249667921835680829996660852639281305258387617374863838837532224011689958422556997885642863958303721197945490377030072036797281259714298663463336840630432657084069077911016762751649631895537278508908944641329025210629558521761774706442926877098875096998295346719291704217025021997782595099290141649413603064887649174562745482430704912603050497012562950006094115181144942472290687729619422409423641089262716068698303894627064012255035852020078110664117532964883872098847932104556916263446946119476165633024176366162062168299008667227309214102679000169633233272597134190199030090516669005105319293814882018135638198009002518124528235340087295388183128135716414695092214177433629925142587559228793598395886161401278566948834920250192657050080209024474245776049207711319272364624694400153776519387272928594187235406173266940764802720483346951581552450627203045285562458976987490558863031380488015393386148955673711026205695521291913599745237145699265923121691423505121884701003261215932324819765112809851134606328898216591068185109064465299413647178738707187527581262128862406401050697657252060433060297652481786686720785432660914286197904893119353798786298681488289395984775250074394177255682960198694256698349721024042565495665618111065315272662078806285809089360502069818927120326662239785213179027694847073563419450162726302100632924317372972673197180977911988915289964976445904054200457243305199467993043034413974113113263723590823180338934819660827069862667927021782132081578686341588683228077933193258984262045735194247745564599091915869830118065965958381046334725879680176790296498356836227973479308635246580732588511305535852384163792801581682763951460860089591799722721083458794473666351655913007839934262729618210620688862279546824346813178101428057661011829281496078180979003053205042196996155057900220994657607524874587607661836492138195935274803319727863942097171343858221767187426400156441383527783725559223712840450870725116186700426291688811524506864310159241490807155723791406863917134046281596498782934474665726882788364171627600654910647129303149311047068726282851552028149570623667061968217241341110733994102600235826710187161363107773384214151125928167169715898737562013566894222976374623793805840846104947582834392649161660735203555478101717519745517329323659755712447883449342832620787754968668714313177291819052765550792134156936627028440085647659070585475174910802798537702201785361055433884620092044794019774843780027792875940870033507705353312663789756506433103649211170258475013326731938401483950988381099658981845441296616230589744176949274117828520111623312122659709402623439369827930105836574122888446385817215496812148806662285823994753205592935975379513247177246804411467433613709940967030531442370377988342832786688741019555360245887295660575696563014122456095146740188183385593283963459237463793276617697151647629172331682744951984803629419515292130650348881180941928677234131907855192070567638102484414111159992708547022813258894417890340636858284832101066525809168501639650119862822615903714440139450392176472559910657585375740030085846039172463714267722158446519750938350376608365978660399167355680319373787651285062708731467981316386531496530949116567609730514495050435017810758837055851265172658175496137569121494906391407857131124657414262831798251940068829645267057350676541275797093819748112778313900051960090230913979742416259029670182169945669722648110981862950587508689439317970309216790222479679503048438625115185684594961475508137750458737164772648836260957577085262039760822947453519646782028462398292653948885675983076098933106758189760802478932266938089407665664350416472052915429277617134989976369711800220517267649431346082124942623307059128699449514181530535466034901912913385003152584578265434980592131015400381358500499425738807956231718761969700314349103905085486987301033912422524562668730491538166455719803897692549548079640181027572995957366307663921845777655002804738006880350293788045512685772024947532307393147690382431408875968671083836886036596481303271580056939382462721153583733991607221773820834827368737286806019829503245757161913293928512262915509217743944844178157864928925171654684927518435013382164428959385172271433255102885125747971358373454673237026382031304277503947527247963131808176214484229057477429192799659480729505017965188038162176917086526027596303850847749043577198619851602916566902772258159109616681049008486383389733092927076272798888166004710172244729249839152035097967111386323035310565950445771998329094946886238902593569882673034781098596463917784554214790908395198815098645421683044460115332640162550519585581351520330034569461673387628863220272484801642305870919468618255176358535593865648597884665084152640845124678342149157330407306219346618005882179472054364148927910660608757874845772921954793824472534373297244259820511737844501220531160609312922513978972541924101979517896407388692433873809991253430464354787637201892646583552757768206954548870603009810452943401466814189801597518760338208027522310727372187614611701261339214292551555265029348757469178041875685969241275697933812590418137564107757286649092204206944365168715700827762235847230759677332637637910676727451131182933946140325396256338949044655255042931463576379367181984212076009820632141125234294537921504022135289819306521668563343808530718682989479216827493072439820343070752768642743940306355468089392294014942006277678073488624890365267127526804476941954591679840761148921012839911413772206903106318880486314477557706210892859306699362566294352358335404099400323870448032205367730387523154210276440901260996895430538378975623201291873925118143742674866829294245034002455625105091032010171452989944462299993320754643738854962297684106666803007157711765060065954664839731901104438582814912700597829185705144225778836134566502651110487920961272532105860628380218485199650225885147711576744194738934860730107898067883211341387430011170616487690675271758663973245628831572473717459793940503641558721645187502182675423759156068091614707188854213045376818795926060078436005752914019904031698123514835448332761366571949788953240060513144193744032651897083443560575865390019208787861154769829030628489781869088950152590696320748601357575464997480024619456250522452298387279247360760393438956105250398248685711288277503298091949857514997037090928533539960054575959405939062006751908328240322020600194327351404553666470172774249610372671229803664445627702728320020432176694381802455844546629346423719362441670191233426618812815434105713812970741900936250048925914004139081985014082001388221179637510963217166597973925447741621116705417435157837546510801656363497847298133717350650742107625002631070731779095488722326289452410660230905170610857090742612542742022254773789234385158850815783292317532072965643451648998328491303532802815799642424293369305113733901971790292862139610875713307642281143399552960218573038634256299729792828094753024316680579201645901962039830974411889326874356124611795162698174039145518241401097746895605633745833200798660257488223549730565995868004320120087897504169873981156087531870833301296842749340679575699993348093466151639457540545813622293042804425154697200269129570065083019246827214885990800248450958585565106025942312081867181240646285689289050869876959332328172024681738932352822419964373747063608767813624210351268370604175641313450320641677516892905105176445999936312142089455775733602655500763002103145847439454329457542937031550355093959740302313796168637676829151879632566149146548297512452656592219063965397805304934750445579173879167264132986970163014225789646763597709074821986416519012862860796717824530856733227678036310463430550436510213912816729766946295551572384012013001537845884294821724598713599885863978886846059473022310974637243844112632899611006505073182933877635065703349514408652339261856630681908782344161016804840065407447046396204564637056681371002199515483025074538340115792627453171271893761243230948225132098216022675637562635061443400816691430758711012440884755780226223623817265587461351102985475955518716665250094014383740241837750327667173960218414477400983936390441315083602217105606336493635726441228369948547463112974485702731084459489761188584772270370863538734820281802899485745094168472405831670132176547053370102536934013571768598269727591063873489870021587902301752360343393944310286340371627728087979007267383385058420962866041032772580494260835029259183560890436791647091415894012611037991677503524839483577885480146219288965814927046333306335301080013359323375759536541181092888197537751353649798842375250830710636391335501416670909269242033560746835539848278062391096633794939864093915411935607339758817695474772923596983573431485401214837785432587557844899043096473373073056575686770348910643588158515401824310651108164925054414616734272656375190193318317945703111330344263994666976878475298509977111699397521793467227151274892145717835961128513864503655355665639823383315114079344530475109308082387180857005829460119008065502339749470835741797087046002617507890625261935814984158178865509982191154603968779800833780030747041557907273521074893547663151353111384174681488995197104399078329412028555975334626838399335815350239264338301542367753955997283836646779266627223162613270561690719736704091979703337378913654315885428331994395803887854114962572664682418028751499546608792289882808809678553525476160876562410399615632494804362644401252788069079355262116668157253565818056498651479900104409185735392999528476643349791772505818956785435738495800341039487956144531498535916411481710947353541164074865108398796336699364841821241939473210178563868244107042455609525975009970428734051278561798524355791717121926654416492563057438612597671650106250877875941759780145461651527017884392182924147099355605716718612530735108032227573547195770624444032741846659279428772602143812165807939145521619014054808030209173189887698677184290997935374429406829283288731333647873330768887034380305252644244799339831595183670256332764285053936804467434491841704845358655050901781392404368463754531875332509819568977717794967145785001214766965644822962519907406407677854929819075960848870181557317386033497014085413854250403756508473435354238476636041991841585701014271617065881693799460589199828446778963305604011630944975049593480446998454721021137288677080254942504164198428963665666500392689210577402577951636885832425158698545393906705760020946213061134233857726358659831978590116642919182086883027214332107545608111145051088168766754876523057239481114813352144050888497921158598444663071927988754743172164166074444262119367942301066149479005113340020158335375656726064598116288279405346303235953193276948645273340476357458552683323133642626452343022812345743427106922895981421487752183941190294220225702592304728050353065764885179299172336745258834794997919889571739835938972617464451217404581784462978479023459605647175998852297334051791912657221694555867938848872050640184908385265884590610895606009266616066433491309093380503004948237939223204249011085742873647595225172583402425049506525254117161266383505480167087468161179331902067114734913732239448179933702841905938872760191307720613206379803704385857491610968850220107020714754385916440402190807221416673794047890642528945600548349048823633545532508436967589684259363488631422628026320192260482357177336721219536876693416928353933338723801394839394156480207101919367552584006538368581943657089227336568606315554768302607745041194614068204925195546237492231272540361843101388417320190435790888390849384080882432463511171413028240208567499155447756831959325442849059965006006469481696085465788248805518025922894545116684209581426291814257067566000280811632464923007433612483410063337041244298291768029044595320037718931323036482829195089201821363990589456855983996922478053047787500367362970448609427598024115146435343029204193427352459805162202810135992290155859345076663354252130075050214630432023497028151084345490022592321307075598727082928169472396866293879148626705178583309255037685818177103364523044890508936197999087445118005932933942017617957906361015853504827267882674409226703078180251919940060277214288736543050804551268342037873965771933298795285723969406932586013418077674841263341171329174920732772009750690314229915494051324313333602021454914796846117037506222376066284032462084029979866672872732546409358380404867821746708030519672978963893069339216742842614321556802856707896470157195457376579226294975619392802284357773549719958006957915511326750631803798807132422200939761837518486155669386120477326132285173270050875030081172772132161877715696662871239077889096322266553104187241953024245785153073073013879612315689047743359320941046220971029309888537823659668060082596669433121479468671015915103113862434427014059704617473020742412127709275434650108066109475302047082918144039795799918946433426128654953634682012889268656104146440005431802576981964902562811739570349629835587185389264006251986657606474462512357788145849021128903621458925229242084410351333271338297236785923725218922311180503046534232136271202493593099512302074071968158558786336876779685985495791717175684149701997863252428709656832933065975861885952116171587743604638964362987280497699005900765381760895728673187589589690729329435271501704206501360154220363014632349374509655673127162652647671730656315633204181735454683620240619293873507515357972918094859242633771081214569951395006236564419197718226503443789843342673376641156986828623623164575282890868239609858143159880263075512182681258924511348456472705997839366917656317792781506769983513569127503506857267017058693018087324519955181784598516878136680491062983980168332103401850269637552998850139562244055476066028340816527305085521556902383075322667991829197538356422886128095253801524360766994289446898877592693817307158794502215098247466596348840493755753447590424756806135107592606912387291142611236435382772514720812798690700693022198051133553669179622474704164977137510023369505371240537786201196825454261764150790943492450885055599180008305851744310268100742910585984583659284974321806448421347995343451611640185610948496512029252341536444388739804257444522119574751756667127084284118324841375233809534243152072282913978715924197764465722318527332569798927709721776255972365338328918529182135559783558535255281681158191721822289826931291312872327412386363753866717256606584488904752864165648471594239664164343892339665555555775056239419193863222477925254050393716063049069930761687065083529101758357935028299671253460734031877085537483111418330889150878195974676967815239261824179834051442506094933576211788857140170281045041954674144373608829491885410879957890783209044444039193521356325614423066886263711876528466004235429187351177894113619572253767462973360978770268333236402722455106372239288331804947774037166672333143414155925040034438648517309581683632811844463126757145597317000305508898269907753889479090427468572793992144762925721551077879763222303170545277222039189543690707991561229361071544131931334294937812843467350623461256736954091776400118450265508992696471946089840265708040723127834324088608022241721396440060338599556556886442130988317005285790986479774340875476262876161585372681875497545328914004189373163974568210254278653921982754741845568717539303423155420488662443442952285634223356091244787971165693487787201237571751514342240963060758563430111655251335454987046939377437701243627485141491125870762001931740717436820203861270132139758996882284075122270599942134299132072673330977123608978946449389814396597359616656589938528166708626003051733334820830156279669969611561968178432649273285734161000739531555475306675620099607590535712589636423586213865268080564947826512935905608109543464384673713604499940401357188640319785463039257951865025521881657358156225763598643102776028296775234823526024702706491216530421643897608002955298311006243378135596498173836047979209090825756664332666680671227511876843528125122066343745310780109637865531448546222189852599617704865369479586845109653026014013882035705125097918406176896091785775956473438041961583194766978113952478674239477460734092431677982977550597297007671845290386617938748125816761287018399174373571156909740650823875731909968849759329074436416010239009062840305485392770043136038455242448423000531619078448867479139813489896639582918919505718757634532019670716941994971376724781748771395570466730277127479830530134240278916480680476203928606960919248302648680729583632671166626779676068363407507672637634904522589681581474018025580019717600241398693993492159001530411339629494191731716458887142873788787328881813048126199487199163427669969594397105941985223519355093614085016162631754846247919710268246156458060245644756395090123315909140966517984707330290356117755235259886436011948893889367141311185988070323786774455814288922171034067897445864864474561127675775195274080088686443802128666365672240573173872500358219425698875633084677898312643936057491021213669339018189535462254889741540600567777883833126206905884472877304057286508573191191574999883368737494688935934555103693783104430252413926926817148765471707475908495362870482441169960984335532025786534003242624468902544744738339127165534784474398425261220698635637846388972891364128077085535372084319489665275134260967427092297402788023397789645779212444835510784425706516938111442119215754808373127126741742885490551778453201317460476001308102194970734491440525081278375417302661796929064227766671037152456854439861066281284402717791657122207825410581391553880016678287253041845573479841432556638582127881556886744151702398849081135609746714203398836537056120963709935333132310857783774277954488985846488121970736265251601556337501058044637876328150007418448384138048748490398571025384288675251027310976943805008164232516317090679854329037351408013965676506408078627871504356000267155378839014265625054269206135989357848853049730603178733647050084283694901260544951484242260767187580148807479139066864567100903242236896023668060574602521273596303711669176423008129535137527142389173639910931137314672208936408019594232817962802908255501980359656559840425408305776266682427933568550126996721603354213240970125983723376799656113486887539825654211070254004728189643445301960225404729358416467342404974210620123972320453744822423136995824124157135116583185576165924580026367039827331387252414339407810803587139303738449437987903601633478919280426727540742142670752281515450991305001035168462454249717116669512213066546505564977564110385106266543645200287044967536241079709588152329710706303160566938074775580319537562864782723341049508927591142006690717379097318902032245615013945402438298099726769920424765272319924737370155731434720659195020719678584227765614098429400094376865752376359851468390061654928029909002962369511738255982696013620210003353868179434355937858379004708858492911426144943242344165695319322283992370858267013050028486169395378932457999853605920229079621349531700462217788209988321594134980339611913732956581839130786327285326063182706527441493339003864873182182862203122924499674941088300822058518425616663182718722992164091478103200352652426504140874602758082006913914273637371211638474961570708777336958849289062914047035146988420614766202152326345261577748124477080159970614665600896820980868258346739673322592322120724296309646731266109096636861283412026274913387343848161458019140027776292429624607495194280454975685645418617505849546999633775796273544797780517459832913974674208473686301938477187729923796643522371804804411536266862619747731644317493549506841656974081285024157012613157472079069439414636381338206448094542922426418299397466169364828540041097582467354812163921462435353330228644407484099145726447687428857760169927764055914867383726261024919610562204775635744008270320021753533984825328170338173705438969969799938126763264261104927359812102326989506260177614740941030741313819844531110345629659558736764498896681064521242649779181702159430735469303524136621277492872333895655970410106834362038275038336527859153019558137441667889685132753624312906878145629643662719027327533256034113302753850936700191269147981170339426787491419792129170708594557827881106040255763820288104256838268562683201215331510688601742035384043627410732528340332981323502093404328204168931053768695265264050913506283356589619830396429089520446200249234933115528981044938114122352091286319024968078756112384110250793156931820409499981144572008681753862113010524555162817616012935229205556660247747870876417284565057157462611637791064004407934874693428131930279934596287424863956894418998053332795562681750988240931457694388834756236736099959665760716699059196033490939811817152304881959210641162852266909261667186176189612471905771331297004258143281787971950190068242915595509502642828612389743276552830910025912454337404378466931001120624764363193054542562850603441869919429027298419270910979925369718742458463445141502673965834932717938637106387028430374290575691997613663198743356609612623376520636157227943291604464244065152273116445498522058252129658314777270475714303989134357348971136818463692717879360520444307911340121952147594012169821354606441077883342989454124698965327080573183880337670875809036839302290651293530690420764985054666484125890529434537482703552246096145466727537649376679333347284358229162282031959366970359666285546511346660999496178025772235590297682846894310119150869348430451775931952555566013569203185507585729259358014664116739978475413770917696988801604261337073838314748182916256282428305730006603872330270922325859338381596764243799238464046044947096866542204732446969012091809783135204980457155711698360530331464086252914495985537274687027460858517922375864434395911923404918091440467895586835328549556449600208435366737504198652113839684235675865725680448032004700470748466337725617491203715736969140998001716633293507840549249946905489105803515923587999602063492636453043374452334790502549887667922096609752034197241519444023270994593787862845138690464408982493059531655276253779265330953318774898003221404183960896766538657931878861971783403873756014209048723253897155723425806978397859937037319429537507272436300494278710671578781011676547431653626404800582567090423094325318230371379734840792283283851646583815940281858663919770085584904735869933720865698253286764426150250847350442137345912517021116562927517581374559935682041773954567359585394346693879560905748769420919005864853760305230080728648547206115712455399924152807147261594273061923555304518266721896357958453726848282879294028402273986628518764646069786044127496879432602305380494567378263737341114860324304037282156461011306059942922831080376607053903934939633633541810712831021322281976934303135106585099290114144334361449056797002334396458136685868049284706012173523986396924660225405719494113054602534157430426202230870669698809172347193811930669645877166201296090679448034397394809803020955244195702395813825085846744298740269519031596038921324993559856016509556476363339407448219894568812705192832549540691691303570894782869212614943702102357026151650072144417625293357657673063066958226848683873420204476121528000258236037953621487836405089856778487624094875915681796868056868248658385788240420214988990289109673453132164500648144142278282987788467070742972941956177537544774513791495611397429495181350509261278756446058633007677487345359228924572764758792634577682284199667688836680912736996422429518603208945054752434713622042988397681649085229449168655695948998256806140529800306814360838581131147975007911222848771051300650913762571373606943134995153524231326521021921429700529016468348733792813821706154287143487838558175673297627023216549803754309859708971132832882744332876446714083710544010773727506528483177885238631755413069561327331540165918149602341155893416442288175112401744300992809954368698291831304737335403344266833258939222139761616360100484378418618539044794830209833278072611767087715445864506161120041416132203519773932466339005468979415521409850894965078487164495068918210088148781360664215646002430129435434561143836286585220747990628685277175145965684343198472825567253746846394627917626280942056338743499498532408943638224273383299945097311763526345634916882570500131069075117332877449098523211374617011769305909063505486658293603309177800939624595835654043843933713623139860863054272873587848680715576238334900107431069328693846014946613249063099522741407571372751037376152163243189592054953419397732752690494411629859676590983230648874512124426878065837682478149262313586088780879092140249776985948101527620496331858045302586405743450268330377701359309942529190525194226834660787390808005806411921515779839373506544017159932357901692711448000508090954587623559825024649580054015663787661360921501420100469282409606274377861219126921490387797647718641881902427330894533061122368117464150591404089482841538558354058087404686554976418405587825723699532210114512913443264474403421796004214831977612081175236405076894152360411013704630339754647170172464088322955902340576362794123108937424245220897305655878027696832341033265421375208681285333513971007781098950131730346578579141843377701776035040693889607266818090218692355164868491246771861040165890235506477177550448277910663023678943843066706571638920113990086262046783834174886958673129484139547191539394344617415760558864005915934404881904955242016943514360008444068654690495039180620338398738265263334432746166611981850659720212787928996306495037059254825895173155863505670998480291370753299186892454621047286092844276638475956188902252389235775663212129335169084064746534408726865544842432802568237266351987518284661830648343153513257038546496008536656179652466175119120192912403388745411606543327325743465651437971214963210158136677540442452193216503953582602015844810411100571691372947999879647978770065239046941499376117111302928720547030294321890403046188396426277444679714692275384053682656674759652755701382005360847408110896373420569790524656294119446171238296565976403868647871498619319777356975703244954910993526666226409091153149913056732196955459414687852778487076953945462434565778754815545282771524754777669093041871794573705280775479163448082963892828510098223600663010051654701114951680747338188498067691050005832120841656292291829600368140707855585543714856427353693365523418695733922042983821657545829973414787620796889479881223559496028372696474522289084161973861113168649150699050902107732558304712185871378658559416366711914147652350522517570419668690459209941808943920880618606007313993152592424067074207234049871698529715771425388684669492703151234926588216524450607907034552551966964325552257960658707527074321776552604095322183356200998876235249734914028234468929079506585737450694413969105660626928015500108318900645238205250324915625715745114446717379838942025781764499384070087541383404430716672586170838530777603166213145389007161612026972647356814816309880669803238506501094377144092563262141427597056223602882242580300874745731312790901130977565843538164533846480909859365383443856827679425870467243262017378169606439041891462337685777828965166124598874360759912841989276836087066902476312548583421201949655119501923179283233066304513930021962984071084550696465894958843586735568630180865288773579766727963645953819165750819947257413515288238188746818437742931926996851301093160698889679088998005912044331717517877113844459917982910555076085267096174919399891433372790156559465662852586082790438574460397929649055630860283846856311221336224040545304508657782356237584376422384796010954180828075138517086614424818429120623212071767202197221103698380223050006934957510850300054624769780235708163643587779573311663613445651396061798286076460435124769469550383738029369730215052026177629130826373851963415605119020603525940369936508495399064340372121692052912097882334236216999785482601368377682916812649814195736051674511741643203283765499141191022808691895984868470656511263509985110626241047136498397445770040583858414430780641706662551444714059595295654087040880240504124158262670961975464964241261397860212491054287502355148466588812090579911301328221036697953547850604062579342509163802450893328028004210331530391788959100404700734936334432030241083499721663788007373381952652381563033925038737108426262075790487175021080124302849000662645790658322485701044860693346039870106728224721834612212478032972570977071737092472746689991430979714978384478737037539226140336374225837802196032842702796885119583269799406788310910718164297666999703611758745115540107220781965361130705861417385689723159828035598908348442250808110832115494924923981306460279095858016101765641832996455365801561790204815090206383795518147663818835772565993066031871181973410274258956378341639771569547230732204642512143617497394454037831949985231936245330302383956427344825101393145757002047423836467791371693130322675821674630898391945680908091267481394038484488787727362185432371776880386107871309107216565075313681629959940391695449504955726051992488618792152719993326721458652843638475744114178392466922081489147610097415105157689143124137333546970742669244764917584159946789243672810569475376509935647128729787602780290781976349724540491459341023181025650858402522621248262007959188247741379424421473578436319133895714889981995836023616938367477218764933261870774916976722004256495661365935265727735745026456093008273111968425497715563479925889481789204621652205838555418132788195490581267992575106258688983304312027984969928781790247198388103318735918141974642399740399755848580366764107956696848997659657737786969258678200232291537305927655377273965764886338119834243168152975856601133652693588016689577628985566409758106336069534952539898574513697909251742223564184780083184599349322618078905762889867252609275723705161378523386068678587327239793159568906244655654890729011961233395877787995360376553123290407574000279886006870544731009134015863908294300098559579796634324186061166509283526597262015719952601881301785661596359051204205277793662505650920806247138413645949831250432471069145675500706298615175947088233469573732764688909275836449923783840054407049630201869225535547937043021575130788583091388215735124666017998502153718985888480761337997844766168290784231020260997545878729490970296511505223355668431374527475648683635911341519528114940488397822793451208683631039623333826079988455900418734244967198248922643980859215273719089742733295517084235987747098730916804046938178987454689094906759637786279526398292487457040820102221165928899937555168311591362550708512401016754230481155846782528546654282644591560913181714447402601359708485273163354586397746686109950381355888273216954482036525282483547700528204407371451580735128140945541832851053394265654628720536279286083843121885056257720897109778698532420619752332674137214822523235988279590730436614207651220915107201289761254846291081964977930789789650721247333345074441855642448140397373755089682372423351650587449116892023747218130612640626096948588719076379166142804548778675327452858089300173298393274177436255433679659581396974278234034505455350295245096614535907327140831866853577153555976100280814473037618982111889220779590970522072508834536132963827491962487240979464463097298387637253696609500223638538968438776195861740201859019180687945156897582226651812922083032404835861035832244566795178689197986443546464338949141850949767793369279605007291170573671646466817242997125286066889886191412072347397354184843233116100256739862185388310681273323704397883887674478638987812949941753600405487481284756291601626557709357582406014627832120859335441760661661264296533088010276904079635742407132890838365893368640519798282708376806141129917291006472460059037033420416461476459221534182442902625065122705549836666248072743931496835132847446116105032559537842540793296358610634899015000487483068351048712529070392036881793448206581938349266583218899894287099442221495994764913793891130675516023445237149791980783249988810823631535629421281452911245855486601211884832506175439573230681008548802094570457349073396546705982967315144464859969257612578420216436349868999833964288795839758829702326627152438020724005056466490457038470904603502106286951639497932815547633491460551746979915525036618656556580901174984596005216585493742117291083466039402362763769981411608084615753999748922328853516596115366723588117112940135392007841532211619990683477729375360261961482296591067278111703832924311171132893403556401204225963201472547396037833462109945499317791072310344391888029556114467957717371820627316559490972802739450519364810211788192290356520017857117295893651192800364392295250435144949834043295244641109447219302212587457986195940647346418714535679090754641692279741331236356151236030011965785419775770974987493485377671950328716344019891041695226603019189324035024017204067048636467949939139822797930814165954420434792426945287557584423632501734909198117434588819372706602684880120383355643737030810722600186237278394291492069352940250805427928518560475780493309909891896470311468386893483834773952780387685148462139618594329458130561316377969560151677458186805175184530323771287960883466771368660979128222864271146481168379623296785910151218698670057545608526229564162152079324172020059942335256232849254532895473411760642380625564981148334949491805369602482957128917909260125094865532134947240991165962265470400624467106941147642604056161387055695640655690693544364325505408247316637547884045654817805344474525608538463740355279028847209335732887416687843700134925683955380996721500393746169527721914988058287055644271559173556868246303034520332100952524603829807229786925046640001728540663263754963029495560515490284171963785040285801345225274781180714823979041479593464970265475866899072038423622681597566688492016342973300187707655099153810953849829963039702573066256787202226874614749670930993968595070280012819715770318425034930610867154152004175954139745475875519862830297629115322841011505397918866431939603498336879193186519502752340327475639545868676882737503613304442186500612307199683939959518983540871276573254764525252160305571475296974670009498852016298228182250093211385973359498348815997657441380811518483772338259718245077936461053963238661815648096212203857767372156071856556987935672968716762930265732284752516569463333160505204527294024705810520075630195725472174194233630079737681698942988321504320150509077265133172435514238395273127529156101349274466969719056403282160046447363511225688921669823941729447373860750887816431633758835795927723859293956181144899050150855988394428703490395453388267857226397164559448947515113773374851699325652594004558349257061346370469957918379264286907561374947691999350497332530804057433947730513642222941695632704109077460358856185628692865848463079733648994960802602748888611019402233210048748260150909884460089554919851750193121741358862947855344282001494007417828174241176883582795675867978421860529811384059587696274325085962224641891038353393544815497099742689654103246448936988546178374777515821333669573248279665281039213276568457007938304689074096540358129075260192129432416436625329498914805636946013270565324080368944838589920801142620810553736225081399526587563327982630221687599508632926421370112952295775486040806325367335395524434753137171539753789275715365535570126104744163194596455821984651533055329902346785540629973068848997962677900050027756707894870923018321743510190237763056000553631896425308535795464288424913354014616097705073715467667395101106398367204814840512252844173710626539910433929380489042956912158159803777514486450403824802608775766757212457612007686819085176213604649463554829036687346914607182421961412289098922182095122652234173224465643668376357088838175144753846520656174132573632541931667692980566513073976297262962727861693142757972388140632983654381581780217897914943813829281319852002368255069121014956340117751282227083930291927782580624449017367779989313897007569177611942630906857598000407289317920496620145655602488338764220816316840679524494293717145196793250682451130415789344661323370630042954803666802154113391575222676005303915048961678149783291972679275301026737116228477837970369977330253626431049229435274161602774585322682496249218501479707332869693690160101696883804146977353461466549014082451354233608552739346901609326964306812485514082394724178432134798434327391060461234479782078884206697937266136840354117837381269414456019847309503583502833763111448737634833988754984238244223790810230580887787285778140639760534247083804375917581899414190358945192267478047231805635975938322122453150888983975518917719565109310035255373319865396702742977209951521803669663618102100751746936543971600170941326436747412411832459033550848629701882673315779356908407713114871763194126915547935329383202568218714280364407225010601562528972987314112962863582776033831479633756580374469166473472142896082001248578404910943673360665699685536595327455145867088233822514707334349577681246809760904591691593894834466525761903330103430173603484119875129479769209259635363969773959817762217999190722571297575076855126029054807186105088186088920244051381865024145006284364719268812837041332535006439217448188023997857983932028443927227930572895861560589813625061522913262109808238145014748694734365121867507214258551089407061431718584931627595008480647953675056714214243065135055833750147195674836079740027618481928275363163894319973839691047341484237901813497525616873265361161870571655045548385802584426695117006805016498818831427071272503350471142639273303350824846629840174507558828586339824341369252370581298539678239957997667789789008146028544867421062252550836231086592219934922572274220754563574040518253499253304152311349933369094852911179417745642762702977734075351267393809304861616816199505309550247429233381576915117459163050843513572593074917874484835264332097161776611349251118602712605176024075140188864443106966749569541022949661627725225668902532096784046483402000686805994874738468205687849484713288170919117293149148518030195251506137911947107620062814163756489830055201481502807327514517024925189903950337795438654811496395023335152705355073515974335173797996990911094119826548549499730265735788230449613639820974076233684132912883955831761970679096342725486801532202791249867159063585125207204534588747120339491807826133917956215860847402970637304097615163870272169394684909547301809972865167328356029217082536319846541132091273345546745123929706958239279017436962633645344197712794393408387804750738500531649637592967592102855680803081062433711361171490984063539699549920139204849207214168971822151062702958414329646470149433881729489607330821970327076348256387771298525648961397122464814359932528954380427653116227615571274743241827626393812718953420314370019703504281970730863260146635680865936469514164591015738452512343203713551295148314845538144915853888839483325657257351616732438502403736726587574074272877929431472997107313597255860568413173174479447313284961419310637107798301078705329693550482710339522462616616721167289595344850202283605735891061761592261948450997424522884405447156992785571606348410006933403544623375567359340042502871373576732637108753901975019393802956831818588056118966552581888418304613359015119934232332007468604303900329768060044584119371703552377883423718894697005210481964940987548179445650377965904635714823564037021655646825440974216321898708080417323765407856716958942154303974552071833277641682450582338183061406605918647463996989872964239482334502682608751493884444322671977183822026391411442515832424689280351204099007251718725738073789542708380910981809448854126293932317376071621791752297358424194327226880672932130636810604200778831079707396439826745907911465676960154531469914674100719230871861838705935258569625881435731256405765405056608281261163388320008935945162740412430617513084476162237174986059199971217986406566484283076955984563985097266865341168151502511861764937373852261399547138327722707851007382398652986512651654853345716035641010429543969370396394866465467435989025141428210624931201134053101503188178839671285126210587053463731673060688168633156746325011938810725310958931718437372318706999833404901388494043271332317208697857868979600824917777600807233613986950692410823182325860608212381710220599381390835543868328388691301314027410065215932533949425349271745513606204159183365694796670083368712257813788058467230692523801061726573853556058318269700011991200479950840228953450176531311841820329154698593483736197273503254136041590852004122148638382693949378033926113208605677397777410126473098406889276172405097450355707645365666433675441510765846863512128546287023415054737282782754452137158072569133763529731874966391548282107802326885065431838628753125875012422301940855954868527477605888000818673084206208906377899493181082087683392565200207355369443353744208327688517642889794489906646139166123653456892658888717962854101332486688234351973190841157816708760949568364240052217708771825352087091537440866878761477872055192567769822299764443158927506455942824372402515917088826173043960675798523375438128299023037280080665304216244551921563718845826670177686711498000222157541239716053191635594398426495025107199867948853456347788797618719827470175986724415539821821777312974217803638303555378153053642382289164468911611582614126880948783852013515632042791308952480178447160635916863094332063863871798578535040148766942674123150612681384328804125523497618275140997804597697339468773005346088955359023768595343483335630777340065446960921078921839751396707147794749124586872200310646584047918155928432560120082492394979054813172081938621883177512011989835569440546643530121039510328973654854757667823527693127360718661368085311812598058997845151653639852112266899842093570041441735766144043515773614621492119155300518381895428658165831766685312811186195097469196286652354383121140204320977958711500566364544286071354957501319275024021222380394468900282992733660436445384366321501250223112599479802345660193767853181346167835644209853579473638710882147997595998288410867316494499263717366066802721580278757722859801864677492148080014211657757155011153696709871364190059862296844482486997504851769847886322191437800657439892978254792748642822802659751435296695545589813028222050984527255176190980811829798003221996314958102926295441884143974237029818000585423668936518370846308291811074481126475931954697809263700854571712249953591244714426305194537671612474708424930968395056210204152598423657059150246411481401414396948756165920725249321185886785836213848128500517519699524401835784396265635884724203029541743383763615442299463065250975577095135827026664845263990001322322617257207933824781442409867387129388822443915926647187462369850902743948873619072013779043168797852747908717319265562113406812183041298906457298225111037833071044053706925759899928375471075896962157827592838379277617136764117277063106715746351087658994135005957999890909423067529737192189453759313288504745437931166736577051862906214619413237632149356062177727983264856810684915842043989064070650646538270228220390564126039536691714365002317697781635977127679581535061267633699906579739315657204256619171515640744770934873357059661515971280210793858214084699664809827439822085528942318202438754147190008727546655828559165435035713319112055560555704057385634150206285207315874006501744064163927983474993374867129296587290229775427407919640191488686773882705175792577246420887634413150711953999785498128257538968590209249516792630631964100651428365702958132843920179074994666996562924550308164001479032856208779611704081979989940427910798420929632354660836146472591477412792814449391581713244769716275471424125592386572934455758691000234936966265764174315059835007748677530969631780420089961881362037026125369893029356013194797622759225706070739724969083942265821467093714953870372486617038539723686894681957158936774134153887629419186514672588682112653378134478057254088167371935135278554145490707821971658491566091066674729801305017028549866901916836775210433234271480518105394098241038139715843132398553833955577348876242294361118636883521307948348798879051694245418342290972159428809368173760337799911839492105781722454789684565921550208020628401530656365818789555643124969707167088917537886154662596163457662495235611819348044885912023504099944975417514641815749980885851383578419390650410408428346270619948649966045866297470297558238761156009011989699549858110791302039135397490247021250628455660743986433086216753671136917228028056471549469539611563429738412673902581382776842608943574707346996415961404575103645776453421705386997787033984925414606853985927458832127893742822481487052543222158807327229036736334654489713141321994919891600902415297380095240767538567981592441528952513278904558461908657255138099084397062067905597526333421983281784302515145515887310142980836451662546553646921789926297908224741243500730449876700831010862733641832520483829020753362028351877879789442242592413983642531954823887186410618731941046538408590564661036204761722043473848468125600650939027443669017260124633078414735472179780052240199954996961090534477504835517864497068831976271927257749512784217098004532506619305746653789235786693782489178772736454378955277327120705573136754907110173866337834885612734707250293507691313092222657267745218224674369306696251104167242733180638451300910383902929437461954757109930699568050135992852214632552926666882663207029761080058486340189522750355188427312822518448687577015257223423802967195734522870017784183282028709639731832494468521514413210809622611396025652237748874525945600333819253163271379965100199622952129661170119230813163076978398847292406462812274559413225691751983607270129372731586199550729687637270047100717358555912295562190315251153570486194256457484762046522363535547156628295945826907153533613495487860079863749814569254441049395048573402134282284462559094843457731157982211869908247320473411076024990712870092179095180960686753076576413054712620827570979245407774534434213833060906186830746232780990423530971897277600998754716015689219218094488066347621864127686536224329094295413021897047219538841012887899974286332764930813025617498070250230766839894432166182516080926477516696329616913598692675547832127115160469344718886140453526779074972702610302064657305828210887644409264038884842912661728327931007150576752631332647796498195864195223868995384899121491118162135953396587847004882195447685223404995017662853065961043978292674311440817568429786024610178214090538099013525343838806665050044091977581529357603845260557467582811140541530943940877424505164534966165123601197361649073302474225148044718693070103324188748525584465088821528728689776649731250258906474509024673132615305952035206001834030849562330753062333306790462140835076420154818882507322705408452148198293243351953632876671191625853906776976810555409267875691516409758158376483791312163972931202606183934082132563900105419795515279781706278682780880431139834140047320145982404904203792854802412947727567133778482427886081109854371477729495803112124064878543004752169514946179182234951403110636474824090810382645530899865430097036118114185279282194470856630879866819727806656408464305533163611141137828975404391538131605945460050758354727999066677238573956092992053018361260484959847455203066321733946671692244081508707398169299639025493480413304467946296867906292197024268796814072585326855600645323079323075681025869361101848011348499029689433173045145642925794294106140596134363155342445192807790470008298017968605296787773293469243159141326338370988170002680544195451933395696139047367639307390750435382694953714644039663079754698032509741812881289838637131771924174753706014984424247789964315276872250202744560766652139625465161404273328948782054991587739856011444390562115312605798640645751888073987240493321876665578913761049390881476372624304233758433977445568893625368794308364164948791025233693376959475159699203942555647367986837762445076741996789476367873886419298319546845206056062437617508121668761553736891158819485902557339059197926443944180984575547256184869328939250694869780428601839051458540047756956897853433299942760476851182075563402254941525996393131454048287254843854097096035959324660642330479705204300598010730873949447345004448528445400430560776586443429041325237440150639709099356586806897754107424892811376124160328486568131090362438829613179127064968253588432674468339031327411995975687268581280160717942601011723048629566797126442716817477398305750748128753070534498718172598866179859268363567641338539404976787475813531227050503498587048285332719786652358978844610245191289730636233233555980586969166027278078157710298594664118655985630850116712187868964322763293166664017686996690951013395824381421916791276459062457278420452410542804762677157933959894211661519696844353254447684417933490715765980288658073235134540488638056248719818284080401611323145542390180568093410321342033235574092094137711947863973136860640469700559542542641296590525869884944458993884040879601237463523201547910899316638250871146382841378588022457430739657931969662326758785629944456664974966827661379580139646247218480709125190900936337467025438106427830385133250977544891462936056587477474829834978012962678888199607762191393559046881890016729357060813078273306396248021232959738011006169670496521105545059263120305023753560727874851159610295603692325573293067997791913609462362315727566582341098136671499231436558384765065494674387563866323913048736861699864003714572529824283067825820700937480672994253051236804370671837319440938559898365264098784044114589351402194070515824892423968174830597438593361183515039968607449776144313717090690277486902129683990942907183485305169885783674356639708585011566599534372599085578791293671942514175696763571183503317278973827756687746524990854700801212334625961688708554178860652953768656639699078899298423141431134809605508912036926612266830600706295776531238052726701142314640966147481379099340390334721319017205921349102836988405616193860350146272140178339347616368712151316355392774569297220790875199729405041874150597625360504797969075071101757533556751166535803010368727794428301551298696031178767259653051942470922339096274770747527562843162504662322815924845264052342715394402757488666503910743739072894545723357987993370924488149086189036263710681760685731399585710231863595496890959866048250880526727644591495476958394272633614686115231856525986909083539036040811278525332879751283558043942172309915220165095379509364757713994915804921482551755223539353577800347444516150314704375311362004462839687119864250450418900898245412808833398168979230771117308245971645673036337600286689546807585816200678156277761812365419507668080183881159947482681729972699084059656506539596215720461585919952688807166260157793884763123514495830268296431550042278028799406295486321698400794682215806333172090280168807552998464051296034189253961723192059669919289944256813354889074567156329791314692583140182089442889438284440335931129367623484462221809188759548507642193474351869767649332734178867172837554189334266056835151982796276863288104770156442114886131421199129154035837490436991364116461504895696389819457557874178829702648672291714949157291647404214261623811747850793853272764323039550557440386431395592296702641449928853023962196868047404378636256238527451236191434352670101222816016352005794410488890544572067066348701140532969291643060405388118621966586843142968222792878990879809285345625487075336646439367683663004393859238637854541806205873633128576452367852437583720524051330087539627601945289825692488703196874957810220669527315268791215940640903627495836784563181492398435063754028158039937692782731182486988149312616690517336423566564695660835852775985867324140857718526068067218864788969876111994406492852790550459630086894174616337602124326827585286526185774530792067383439555521224522619408487045545089714552873123313250433423058113735585604674523428331955876983627602230986558149973152658665546429077352318511179905557035050812042694273520057486018428476980781264155277021314407296316290335110173341618826106299275403021268474858636798626360606319915865184590861183048769678625265674724724257065390433469478913603707708706400912424840243291987280602419499358653265498911204798807072230894093801646810534310405184928869071493118228609283679780418033388153707123351904059761734585411512327814528178856285512111420473282494977415529198139745594677250578894434643677452569848484414052226250851343169644240205952794344343403401391607843986469462200495844926312618667660897613338184056032589099668529597709710801313377274265984860942009411915828080693011445195757714916643910297779339704764751786821977085252655125066445951776585741936729965031197748679165257453836891749666381644685383946876421462565931384214108281306882971151448637705245581406663438796462248168247336973927973418108025619671150430434074230276870627881314027411854388783927388044382926456717496487247890583331620909332373552792082868642452607785903081824727384654260799790364571548259345914528181141120341515582863697066419548048652549933853078487024449268334543570911659568176846559917950874232150620679878791486687316169009020820171755338473696413214891434678430737262628012270889912565975122007649691707353381630956303787557543978706498526819903164202902747787705120760451893441042741519352166564065188611961699388208911510578332350961379371460982190430777490288415229598618613063075914918569866093067317573119343737895679183784779724748191468155034621359270895655870607515536778962844365933024298522118502687459593294500326874871451531799102898166241806804459627078528224179776480068539301118851832925899063388250525975240371904746190529308424208869525648890818376166369791859775203493070953029931043599912525867755902232542812895581730853376370189162640159452782725724586253135690170003708073675872507250246986278423973933148266348082432894707185179550877740648721187174676703612770085874611653346902179235449546705194074696845940139353987696040510534267877645164623471592260363778641461580641982990449788426442995010606707117376854617834485156202658795148250837110818778341159828750658631323527246072322666070599357370344915607867862747583498251480073542837105211980365664332567511932915260729369750977295613831299591681589454996574199225641613281566157362158501538483729342957423679173939272978035785270806218064970790552547962593416134179931293489960370630242332476079567565246594096136759387181470903838397040349258724475919646512948814970370950390204256323960004953045520965442221204452609301274872685186562449134766631269435736657953321631496050471903487901191826891465704688232950685437195213271182143367585619422608757228248084622242858869933936805292496152740981519469493040060942514446360141939393178692911921724284603063545300769335583719423296685624922928073150526328278308437332357582635442079423416544503423762576084008385541255371305651777776935489596241142760493013371205119864684692846974623128472573402637833645570758019761380176777960274075549036268002969027092387233498701586702164739118717700187108426326985795127409116824733539660133194397576992589394280538385918237100206833884248752126675983157229677804050332970131425185833976852137909278981711488031304213285553316023997294754654320775397734175338449984404785828169494072652338898358552186792537096593253929642636363664599983756549340146820256686501350220442548659804865453196712826490903828230478872402286994251227315030872667777477514247379311791796994452717632691470723543205022067579065163656904969884095823685976092184003209345119057073127227853958906892688706201246455527358854561149307378219113983000149911818518663443224121534111750046472355752605357906093013745827287101241293925217514163718567170127872617322099741425506773904602541071821263416204915566923463212065145585011804064251587733761169280165615536965835383109534196693668684393939226857071362841007508381101959022671733163340032148822943355662686615403417273502729730045027190202806209224131197880910426202973183106455715322785783648636457150914872768979171628824759358019172530181210360141736297821429248415912028435418633543860603138565706831507760934965619440033623538010302331297360276572027663704251420126139309270344838157809951899366884748532943660253217304919908794251233078228794898089149454372560332371547423364065355049769139002163164512282200875102984247148833478150680039043721487924235492723792497935398588134426779196092222603325349904795917630839829720636782830425612702129092721342650942158706414600050617235312170129081373814790949601807806868819757885653130231167475332672481646456181296931669767227271828506115906978924991592921921422749688311552292643215103662166293066354832991119045582548097078332461939411465331393892603865075110528247496586355725428319546365335348857791500486817720510384756301520227020107159723112186089537192488099755946178697740950082776548035007656646673470387665260881741793596978875530196622340292455824456300070319096262679055343474874206741366435918738095491371971903266022229806811324689957209883582822337209556120716875836294744866910778934864401196947253946611407693925087390492031015585425046190279181118447756038245487526399214184378739626519356033444399136523032293218447559543612525465322217498746818780746178170258749906107242257143605187968994523368052833255472381866443188699828639881253280877837459243929950017706267300367569502765729826271667151057198929809860398320430300370369674930279037129247760051400206886439108704707902366721543054647610250058732857463149969400643463241274689470508166625823852004687516618520687130966287974047261581077441044117969132313943014763748631661260522671576620536771406714189134513187859586035668692828038748766056051234374383893736144467771233503713017703955047704623101575207434476076994171172655783962945853287934043919593942906119379511023692573184839725174155177110957022220055186865005282142568640102860555626102150373887942335179731776349859931760812295547372123194261084397355142314022891361672702842456507268517421369565870432142764609719388011681062030879977821234440240662714673716165346157252972367799786891740783262312886663770815494336909406663310279778002273014166269098834860248186595521578109022538207935470838111119798139312852409502824273032161561858085007092776044444750649726227020507577297593061892544687722386288523650519035159111906919214464634280453554969113673524111527823689565320086503631754857457318467670614021057242239650660558676697078586573459813189428789771773749412354590530067189126659956544338112051374825904959988240215140978039640679012807962121586639849726226608542490027870322992903876387643209169575490724739038247223475125892702454023586216732163673774757235947899010532047482430653870701860911211764643318630229740878325548252009769322848940908423314184487553106752034699259842456541635981191835639731095061832516776615890127622981580630164423761563092004072419530198944058169980045498531685446846194874899566985912753778403687709693984969995255717762684279797887453870965452673035995980146540674493880967985149806980246101329408868281152167065378130067347168925383693388778380132560325694928460842627792919621573845685054194139004224399463659060399789880810015744504584006857835750486436437305428143689301488486239994905492464664988209681080586992474758655242272984509583114509261319819259052025663334705150722916008373136281641452496141029180993364621892669138869524431902225928072779740745467900893167243230465190059112137777582267960496276514634795211406054782650470272221409028196519918081713976208809778282571785243454343365089860602603313031029866770140794059367262099198795013629808295400016277528812801591719304040134069043505342580633431339119502582872164660248780390304912394698539152764335310273899318917538414047358611268593122456956581534217461261518691533327674476677851669807171934393222031095100453511377712493756707320591617157247951979129751249368423356058251201093789341117221176311377314972234265884719294354072181731142046476909024046553307814023129273306502207644874991926142102860077977349370960260229707965897764561187991209070220349474496818521536840507331853674427953023640697055422688237429397368992859202294321958973094994423544148957718837845696032075865135187550823549665047184430076806189955674873089466719599706395089691533397762942148857099413684161996184034154040824178457443773595246115787594483960794121262375974939082474586548608145991178434164001472822512288823027169047051374981783247531515967672660692316835521049087096560540383304038759380646144309940224405794312079870859777622913823687723069799644352446030143757523534680588531641594212048251723578384033617718811841429537742383692581026380642523811900723649983999144460054332122161347081794189008460575834841948655081864786776247632079936005055894156696097376421161975912289933314424022741380131808092379678422705843527625041051403988726690016937835317411836990031048265495392888450236654585116732321133322273086855215973588388586786631233194502760271540895850928859113067174434444580567745873460854911652749866362591727501715209459425965077125807373761776719326724706339094998309678167592700932903766319075997334592280544676667031420790432274516911570803763205373792975355170975732226609931949531765724176546763227726407705165257668357331034643691481834400245174321051674250200480698329023001574190245253398432444006549058063053037546207944862583902719626382516886555075827045578135504390055834345901520182548727956942546083403573843615616304792446727145222174820406880733575534057635968149384453301137540983798679089652298422953816191360935870473545174556776440035846774619008423204143035366511048535797542371708887005554610150143602835153938463217722648851392369541283563752430147434170675714944118629849666820493161885155900044120825571674202765139770757126926715935527401530655444865541283157408992795711056335527123819362485749792672688312567145278849315419656535223087358365577794509880898078542976680652468967489095701956927876494327954259891595830066782971672420986457215606077236775296194423890327916656448991799379484359537230157444595476365122822363739660818119498942622422960107564629456216325010358675643836285116232997286944593122732243179107953806193031578107101680174020220195678961553164534479366624000829018373189058341995379639277996523719846099520898767884885434919364499952044033191531738418963174035704275473291908684878203803188638840907168388015329032577085548764700985232348701754890810461274056953037389089266448646740488620727948395755967931133518417334834538953978523347965366289899846819933934209244329185662084990749050421043843923179092474502517242387932678925787036048859941794198227943274863369081994786715980137473224068219737166070048144078673700626665477360068580796537092962366479487900075490996373017461815611382177931227098108068080651856725975598159489708899456963458421741527578901489540388893768187051885696793010972855026482642344910501992294709331045729895767349748585221969162669299750111912648949977065931265712573261067992032555871639841945570370794849951088591780571710078221706163345815483243397933096302696909115083067972526588054586173718780605814958658853169129551800528513187522033063347395696721120666738633439598689410771402766714448581649215863740030386809237522559344094136648205999981893119561345526615959187947048655806128616070405393880010720620421644247538569245602273810191803042936933381844553826731446677928329480152690263527129504095176035400779952777155488812346875648179000880553882245752001712388263789662401611495216937686782014685219135979721891623609061456748302364662689351108651441637366848914063469162098431595531619050477259938390140650797416815396439333901686589877575245744130703874551554653880842190609192871649390190584814465550212112582290726968928448035817897199758966216734182263654960900013622600996475548804368687993946474875244401286620298032933623042527894708191926372571919963486545610290449057233184720142686717077195053464452327347793276610180269248359053277952035095214424482565894474480395170244577887939114918108710551254007285635096093454903429220987954908798533660468842468442394140615726771556136007446430090688323817041759141882012217818307155770362237050956526518340036094981702678690193511568704042171697101850589198503675050418393134200359986735481818547750406072254090236030688422670040060390974678408624565345020711057673938042418529258649421255552776836231260034188672890103838080758592199607344077377370150252882431979167113473435275710909953092378394840260051748403071743098904596779858775785179953311752855949674956875549907055655372728335148061970120864776659310147641486427703174248428388970936920630675995160964013632926649289288923370487813016195160063533686042541441293097006711858301168047813118259247883517346883955820738365492922646572469723035501261740317224472763364842964401695828571778482769109114779225385482854482222902506576051053768048738948713127549490627933718075936254563147699910670025411938034628101448432399938756889495143876923495010834618792646299437545425487326094946603158203397815467103305177565851738729053595105087544364451426015229993571133276459657795502189846053455759543043645061099934501642914143075116659726188356346447620577352097104415231280732590369383287710749104017839568023895130270456380784917916111052304765215268999224090807415911051071669969141680993254648635444441827040039692452951135830522047014530144409787215194810348910898850664783148151708095803391818645014398690465188807363182272247080332230350183871920639690703551419211531992761413870307342970389797319028958382258010303903504405752137476378344701506138907515539771307482360256858434453923995811245490158432136112364163515054727198473197621881407043506208404853099032377609271733473495724772991042735702721708814774979362618898873325111995683433571872426741031864607066330190626977954597323960483943011634670442812761985225671192953810282986886771344083921162620950459965629353393556910258951191518898094632710578516533144473450914010897147188490085814930929129737704324781722901212946591387156538239002812084228767544750610745809775432593776141227501454883719448497657125849114779092397466492799429868350348585259426549239687401995061684278957611160218439127510037083920104817407962138225859501498256347962878968863179892414071948145026189625800266819874653744308507330758522693956997424139322808591424903462244143331279841198206795035466139851589776735852194701657797797121223667231408022889102802097016501506962255918249015460524362734219257238331579308179690712057466699845015280302290963782753613191678877873384024496472373656340977062990952891126716891922618713094726807924480844429251805183599337856053334670031250266011555231336699509608814895291794693158321876191430050253769931363538111346835978705661747302351847615232176752025316809242026273987070455660714220133845116085343231652794843470834044484308470038928071893374274356708859561981711740556430907802318132738380593706723304110302324676567300638470378792630803431147888182741543223636519063057920800430327870033776477102228880417887314075714107733658006315567578724369069747515205390320875370419685431714043784320519143647402582365346253675389594384269624091604263207030479046520295871911263376100909798554979937498844259438406244958480890694792739597035641842163391324001675540968664982575475874870365154980440196101627511056539591484180730988266260656879855608088828170078990109899269093029798743612626159346562203260645714190526053071619467495031399345394288141164913358402697862406110023355719209262241869897159069588925637908841135613181048973972243488240391789706869217391637275432337819804503573303971624068113753706570459797797921718066227497753492369626592101770609552927861594945396219870993016808539051975333499671508647613482988617447529532761159783635086962834117475619013090416740704125516123103019681548325782617279027983600422188620195987385545611027600807425900473918413798597010177082429477853254485395181170593096752853223544584299637563051509379889688115762070672354866301330608485421880197933153676860256502956123235978862451976978792873261118344810177712475484171731941788389361129878707000405957978472195400436245265950004143794099165064591287469939933941429667003785283682746053643939898905345513077013214509624721623641460907458014112073195026596736664671550578939506943562204662168344265094967668237488759246259288739767936337844196180021613588477819920390277232994062928519081095385003029702066997912566470300177442001860272087763709549820404238427187490502596221152905872536016282352160723014869128882557004292398892173730017008591599263676281515072185105111946162102805894835624168261936798882162441312260087148503066422031752040316351526937644955851786364469449249870383571212453365129377422097144384759239347398163509290386348210445516711868976983424892459778428437373981323052394728232665965781614728734602778609328321574904602694140583429624676224441577395075329924521951035646340424124998945553767658206782106612522220779408814918067718986254598591165038912376611213603188290950417846809877374582071156404783399546731228871781957669423746719532733868833020091057170962182601093560855623038332601087827146135808761768314181319684737688628232197714543286022811255145573768381774006559852702497665117777055508021983065455461586295647905309880784102463471113318064783932732120212661536115921468664729074309853936550045131678378412388002801350437107870041261907471228165648472611371376156206849008350445146711778117576906886724092111069989671152591858628600765556404649094518391321069477084807876681135460472782487262916024625894810136184933607140553246422319125948764788117516613590588107283074228098268038956686361325161752410862298681910335610223543254298129475622852527516899635489354291269277062017142314713268619110578845631959159962621251690182436533419941896360182345386991285055396566407096453856952034184651213226496087727968714784995494681941807906598758234621839229673851936947390161584962125218270013853604509931846810485927140701174372863044970241308124981687717319112939893159564444877541008068651906378662973378433365277695393546434261565806224123093654231924834296097734912268548086322763018603361082761623987987301534456276004948649732344094032518358083967528021781255902821542258689520596856345112357270887492432490195619870015097796367351954277922403909515074772760331433564943757851750011619353734972292931102860063652325075629303751119785573382072997059967727192579820939906562281550190592674563672309791949967541500026867259618538860445977149187332188981607616777787744230868737477745135225379860296876567540172690887231874606920753901346140582205696949652314619521404056094787664047029388832252200650706134841431491447388593643849214043168844501739317853425262755183549092705342915674000810625700639426155454401132437248560534502349211943488615123912627598925803551239670584642319532740672411338326872268802488643990483905851008628802873273537977757747127877575638646817795535113348877521314118188001793610413729390726204895937046786302118623732050747843295780087402919319384058184332499038138747063974461864251829304200285449161941852913154168916804070435069540173935202793958744550086263181499413308623553905359118944663105983291136060227176352181182088698670538991389293462640916596218377881171150349320871108109347479555378724694634729722353872063405569961368649638280269210171735848014811141301042881410380684212059957746440646199233523562331758847818589053300802506770495622966503285411244584358854713949916958435247285552399720889307805486535026431972166477477250701300267118999732969460746192544200341091917248131960203563748257099163600737451077397863344080970657151862917547868531610606562347148232317959196788671048367038599074845950840141427011065606038550234183761936201669897741098914780832283826032884641904429702139140767425241235343935539865683931424110722687006841911494061850666316959932450295275712624809095977358854923570615446748095988748218788671721406521978036685712996869925690309078059028277801552451588029990783003691993523156397589105914255533509855189176818547791412644883493602651144846465210727756470507598880526046455260020336319550552623502198950882650387055762574294268219168256053980686169433790616745674795749748860917494476151700583207800010140022393708727645483978722742206999164656014713659911290558840809503624198037133768446707941009338973848268445043129354379662793701172501195514161790729339571876330136175505373040124125836044343788384396532481539873960165046961009903290684204328279596081945893479796328851653041100882584066251171918136185363662229534393465937555538192338032820609774690880478781483673273848301722769150625040026160451554998513281426173124862071786154665757721885744633785453621445264462412919386743379337570375383480876874141432356778732798457146779019731661598352611070273763110735176128520315703254124870661758658675726918766111491977359423349688229808376384007810042778804901704730929561925969929046023331344532022369691719684509603732318045430251025093513880817632829833188659778910047822549745161547429394350974848561364550111066949819549055021609329604289812028391651145618202008725686104438044119643276019702672653334096013545177861855051644607353020111597676691510684139196458965523388059310284524364617499108944783303593520647569857859933544907001196326469571330882749325419627770827254016863513990845186934429520746472506148162890836053403358048178009716370393693642970803789821431685639540496030244761692127554159198063595353659008253787709391951012119929074728679574899609778837040116156028484465531721304196176918021371204092649565116837520970768998003300087632179124241572290749181224710995417199287577006520361850814476252368690615318065745878444717793524230004108603295644227084920640495202087012054857400378917236152561335785515225921722782089832606388296414480426135353525253311791969998423013378762129372944808842710804641436516785216819371010842750216684603315935974133558384650009328111612533952955006390607585584697978040218799448081381159282822185115099812174385391791010754667355720150830611675848933686479344324516705851383706272238468314411398697223201947668286398432248765615603020247553177637117148614568085831652498063296911424341838041711713808043960158043303565009013181448564303512502276565903725953055799836049720767557027995605837927269775174197015088815190650401701928006198027596402763599923668698653197786909571078146223058372144086744593173694189156768423394168077086189504169330851778722330640955856857155696585908125614080628838434218413043460986706564851712086076905035128286329561147063381680132839378986018369907066992166129067831556532310588340216081618823933528790562403525409950355227410417358261027192722301563269188424002683330185665071127654844619669986931735984838263251761132330961285716718609421356151212338869147907439357628400774273209781282359106126195549776144655317379342885810840602293782178294189607267782817561798165488511307499020696082780049591805851808274072107358222913979902994121899273004253695378767953672628279275462711572301440026481149924422079550932031865557749878707419333790803986611806972775750058535000590262262773285596583344037539181340787629115035909742268963511825983636970382886887860734996107895715007548218216359112838317507243121789562882323570668414717021095882209227810368665710636088211645789797880309146388492996499396328396570396484705307283926759664712239925670944888301779818538222279978538739121088529708146026518152147622504852576670793708404478304723152255226830552941569559144721674651190041893256806706611433652941884758882166967324834308341220990329538748936658146903346717085638782655857043669229721261933870490929569682781794869030540237498662879935688168891518629478193788011146936003299300504320148633144247760104976571453226642871970342758141433486336124318839420140087384042610634123085980901794877657884850192349475486867331259763470974576752313401584355381876897247411377423834365695857533530991570956147823277055248512748874408893795036164817972731212975751726107224955024078797892515126189026122292231721444717380774161231063044833948252308536358065558981340996333418152503113277325283339848358689552634974195804544689242101627144719026250807716477256302004305371807975579239229945282175112594482650749781692851043663295769343702189367919855322815969206646501828025886637184281952768724994800456950502225422272928068301477747151688542132904301695583481165833642157858185863748648094990231533243179054047063656197491931807879502320656079863534415373550038860189502742191712790375863369932078263775010920879264224333781368660300808433630939658169263471863533536716584757277664033992166128393004135837634554486075300470185099050781390056524592650711653899424320325102257501991321720028483219132575850143617798195666976867233819638448316109856027348433841434499664634244327956181650255118518718570164819025233706117421785950269460122323153058198202471654320016158005671279619091009241001441890470083865087825662708066819011510897486926834316605102231249549875953529783892630509702581743790423473031557666008670670078091903634352599709183004120913069485417603697560107765535395973552854863971714975445878783172891450336847605527801588705003403358782362797370036419023068930330638307540168900484581694177410632537628865543251143230580050720504404164762715322787145058200245970773344462906486535774651068578748373574966214364393354662014795776653727490961688699548370122070097723204233302281294910421790198460421051127333901245199913916838209393210599264492088550981310661035538769719258568369669966305903537563702709490421889675444737027979438986551851504261945223369465282740709032509659386165576176539840360144408388250323837969427747056294433116308731719701175393744928939923452714347613185360649690063146433459461931836403007046617393510599936916012881789292299487195943772600239029734420362326779465129365656872300953220317707850589371212261344903333688626873017519553046156687575381746325058107560214200188577636635696051625575732936707149828722858378237329216823604973787300183727934725468095166440991221201697893965852905429092431352050289148780438435893693124100399406297013859406447616159987827861475776566091486510532780162534732730297891722640348804502203255348478566514514711523260093062180323074850593650493103591775891193636505093868041375220595828344817552688364289646141410236358844917356064309274249364692257306625803465393191081833404715396358614812703856391327731388093488907261395233705337519424861619607226907692839142020933609713289867603371375891616181935137613051626482974882575809619880410147407256044601385913690109566223816716132677773693403534940808090049494444088249681275015146735696677020724672246916860754257035816142085882090436201069810187319133767683288235062282596374112617344539526182391013448299123712270515214721464092058563168333829746196853319949432101147565011383404131759184850076904642706568522368753064112852728722288589968636170577435471653464121256097067730462798514631541794892731737166396636944066476967840202959073698187037495149806946704388452789443100207972593709309571569207230539194212477969285582653003356868717153569522102341777247945668629096812938833749412957927073646892667909247791475287037805839521661621531895434856329275149781784616626161918726610687635893256262184034798145917404387411501395345054680820135221940188851206551762722136870736083910894023758740842500794363134257882149295083536085153289019923411963319769794681945227430901660381191902854830590030612082615504834429604245115053307184240377290956828768550224460815306969368874751841530487765315403559226894704469822524128476430953138384344767167241769393434723419830720201229155715753435965932012145988885218548352099560904047760657988064231704683473785680158321822975028244487671826529460156159063109123513260380420480251221229144779180978209026886163733212498538808433900189195181017098570518460114460978494540104316592034068415725905114650377576512560936594411254122627360706119826201551872422111622865332876470577299855029597356586411165927321339530500229993188826315865281953051121720757439648524922063071083211830883535434570000568944455173016211253103701503244522632820530705346785957112845827067612235828570694008887891510987922717757526000081215432102406833502567225381759496928583370241888117393389373037628816632895826191403651529268663671285237120885291960240216563635194445219834271033809794324040759786501254952905375594637299055839890004648993582288571854974058961855132307051265687294478948014006732370039532426901780821057837989411719012074864202139175850940557259629166172780132246546321932657732920565973723804863502588359446056835067205733820597817537787204729302993258583251854828700740109293768374538426196037692954827498196296367651933788011477079290776336844812920603840180341089986733660570992434272220509160204120805056857268197650297273807855776850023950989796219403245924966557883698144404465603676812960643293274870736376009893383083047862107744852379003438118267481079261815726138930647759423016842873895655201250823358160081734800185014209894917259399764925000654280771078790018837301950378022788866237917626366954975204483033722054582357296708918488699642589168875840667225562277785403898167044574903665331329432935358523551334183898581977337299507490159300746222916172080674734955963876619418843803249704894585270493571919701874583826201009629599996292861113287912966734526846341648057313554072467560854801832436263042303649869903701630331438131580119262005099900667478891089069534797667984906972375057384922098251925550755990721824905617598357682598374919485210422436150599551407011327778876617685180324370108457282989242143402004891734035552709186404644943795560796852587548972569566935042466572815521529188913363280789061136934745529489248696568927819564504247229019862184423556703306966207364748565189358202493908335821120859462376381166818295072094325590771797068476216433684965403621653688883634799513243890893923587588627870411227426951337610951966318342493295885535588565504096787693904059771677407709397907677338522447464973659443276692636302391870179074227778367096330437503798045246025589697581619771842395784099000029874610399588755708616898364394187375378078926088659240703653059517022393530047820235768943126275004988683300609346858171888696444695129003635592860088318146807155995117695523007453584306594737145367452896671396055899930687898293932438443537098061656432627823922765196979709544552243965030959056861034457026133271143537091044662243761200599259595903117077156060672341723329777300390304070884592941446600784369642675556625973925503803916790994817697547449833838912540515276726568409299941339026923037857821582784246995578675529145902805860901497163494346836140036146053207815780093673130234912445585792459004116904014942792642569122078106363210485544270304754622940477311388281974442644216182825617102741244887378223412129358970721596641307616405827023087717138981552700097604846999164639878476867285333697939880523372677841106136070985216573484578511343475678920025079710636444969086032947573184725058773347247255728498252964101571238788091993238776723817860725950005959434744104301044176760989071244893552892286141328203920429193917430965234317188205866588914652903667898623662686436232989374493513429577378710203419904078389213055899316993909309004688261717570706375252469961266682590856241263586233855714541331297140272646068882184906769215134100366378031488483339050787964258658099281189869535254806743373930703653313416456656249890417426709656420170699778916459965773680750276929666474793986708219717283967439300633761157656996625109691778078494836212661852920672738142969982701598088033799637327358374645161158396642525828497777141949331492855604567032657086718421721069596675967744062739642802337318370897161538856270497535692286890914114945169634074754259898122403920119785690993307191039453678185696061567538115568992765630734072426876956381369521207388100275956294739154747436784532632032921415137609158829906578826852549268924224501617835994067109008670285287021132215736398580219244510427931549511210080024684116338970813211669543597816156187151014329636339179489164258944301804652669430274660016225097532673660939794809142965926073913976314707904772092285948584387039369266081025124173514854348920704142238897583289069829088711468349235100582232847904386392731956104802727412314847596482236066570401206673358520179750003833415583412697298814712357893655256458954482663624913162660453251083484688509763899656579986308465530953763215666452230331157541888150528583966994271148282419248594206187345839858966150850898393561233294958394315148823182456352663968511210387729588963193348906324635255684913782561824496457020314320121614559820979309362797329877602632533855442159908863460089313011303676756839104106559069348869040528884437077148282370388325050287935019811249704803151456268580048688890036431862472846485582307854246951094044484874877634517782821898612325995479297062158805294506905806692345286161097081527762007195716092338851602256241061137545429291129948245776370818396738665254889832539082697872289446688886966133020846173938948978071144288968266521584851267366605378381187677937439683202471788498698165153040809277377013006541963865072108438424870529549179379302189169935310564026982113501069574778188386794680023782277586289454110605466050797826264262358001866225613963202777791058754667299587660756833563969697085710229072328073055892306626852835320380988660129497840963580063685351695638898731369946846917586775136437583042038135032137632560334809735292167839383899806297746734050510138263506636306670303074688993040970679945898743798848525485322089287813224231002305268187778887794137743340295902129931035017704261882498614277283350080271323476485396327811995515110301667885845826237075802526643670854881289561535865314092973496413715461422055317682894061995938458531584598362863077243257130701576664073640972758753381741259683525117745530906391170723933242380852276780691638993619943649007748738352947896690950667889765012551093084767914119771611002976975881614082252114575405872375777266911942247948518556683288663784603974570734077077955999010506527385307269719876028400241101821393417090057396738836627234905325222224445362787929558574825876945544670080572464508562425042930505589825068755705040345974728929298008167640988484612134521240632208143337696650145353351947853026702648214701809286957368532773419117518360844630672320829852879305859289948602365442228499521499489320625881726346771894531339941111055036575781495666305820787767401832975429911700627186717295601770878346263770389702462652451630975713460102474654669689116357250831768804220269970569289446684069160305809077931563038856019074854028832808137062506092393648850696298748398483088614850975083105527770132851539738678804856642100794423879780214904668856063119388487833823837271083827240927777238813851343330290555708608033254494714526385816051278624569904937128658300925525460876078972542648491483885580291548726678186744632730422359839487287863707839373394740317240240590316329748682229280034169707151427835450026672157087036596356704630679413485282909575230190187132801090815710231010985711205559898025603976500135945130235210467534527309398320094445036347680401424234781185673995838520772252905787916991660776372416993837251265975711930158287410843866352549434316061223041928822809066584828099055673860298823840667175363736309097291970075186086861544379467633496044464696327934893667826939635163960181092771056230521595427600015669592504979753826833142531006798147834975070746031644701611151101090621642116824579137510753668580756565756174214445990187818561638661353634202298570595623926987286156829067332070532994645522712879875068234746191697266037327521582789864238993573987132679841067362952027009025085643393592195765690822908369507789303025381479907164484088745180108329960089903951486653476346085906232427288007675894144405425138769899722350313956285050027939864302941741602025288491512409435781659291322006053337705347633969537470049009103690666637823095420089247079299732559571963694654706598673698581862764160847957286224111439308764208348850158813794968973244155640804655489779485123512324202389217236739112944177961047506425760076183286754660462470757102976997054666934819356366344691310729340302727633942482910140170354065511773301173000944991738581985554680268389349744917438466739262583990629078071478385026702229729711638142835847369681375849106112529110476514290979494020977489450056720564014311897971603041251170645012443798003321673032370348564800830949898772624597796209184994690520740291803064684016233024962344995667776705173000863671477304385431378785612180216962497659380214265682887653997033023370398284348966688746707298435650119392949797215789530349395013375527880970860805112380670571371993714665727665939481457280703941206052423153259050790115572379821606523536038598878275527106115446566905416522864933471086307685191586121774527798858286780411123006736752448955523764900058569981198694309153722856372796530538151155743121757095197468543978336928875178830058517502256360025982228076826696597883833717257369484798615625036778147749139928717268452222872712656233239348005918674760453451646324757968624872081642083884487656719464295895070275223608676064179024672783671670196952128666699812992927765389961541633135853031177702444993794138913774336345128034007162713205149790964415605313886582890147942738970799931080337374668958049022734419098008226463965595638504668022202833204288723451342681961511244038719727575073172146331204559304348060221835144101394687861300175505970567765329386682579475010490400132765790538833063800612305074886385127502454236421897311729670147530356205218929846400915466065517654640016092317667154939266940765762543725570698092592035002402405809694072227869306396066176984032047258033560032277006457948984000806213143293150623820755636963026884839512886187715298426512151855682554000474059362255906445411842634829915003410601966061794750084321143563352234509523602365872620297648345991397491168043921671352457652250735726249790476894323138686900806601776876468329790116620662531170631660579118988725437265439489027883227968118451689654065689003960043945293680057566064311243225884962798620641283253266134267238929776890677715435133259738505891156095676804069772511057873684730315111779329858258858736428382943054144289934369500664120883347077899641807669588601577255474824592105440595757600501573448539578162854852881277307892746479659752572072413414167264429543225460618016276806254906820601844529039577500337651629691637713641847578015357940810274075246533182507816235425057376579660174979664733691570740231920068432649367729604693701230952378559696317541596841778487065028880705398966705237918141664361958054986049340706192227913181779016551176962005212497612145138135147784702159382490219325914013483247683475247275605576401416795661325314195784496077694984521888340893033005025095119175222047776546476312697837777259339998708300539309825700587459121491070955558698310175497371110293092089844233334485592280825272475808277656594849380541875377792012294788326728732308256043684612550084563170384407968260134858057441311190485100760698179111357362121929380546989882569787816117663240812672083796561314444780024358590611179168616730234094094966571320671397305010707287092562885644399477813288998474337256093601295421628065764731870740185828905514978374100613562653688366836097999690584687570477139063954935638879798751808318718863492230104843558204160250327663430288626178601670385311114511228864927877940130342319803972763124527346876442288831687294982099907181045513852171236364866073577647267687792149389950068038610191489573240137584928103069308807816881596959445942758009367770296904062129394246846414081182384722367574308437854791940036269537873135987992033522388562006031642438295513069785406468148327929249356398176926924145470793172369589390277001649154057156639607538856297876084012582695514206658949596272202714584718438329038897710422314789357495902507605798112407767659080179601728435298613397072984863461147939596202037337977534461864610535802172713674418132719355556438054002403962703944449384856375740328813379082978721178637854322368943164353720757524817631967543504232545660336788577323077229535735024290723033378245179533229217644248906846487958260585207291665194325508679034931550074545829114717144136425056314448446370845418017365113422461225124921067638594348173142393019051359871444556214466795273499479582634615116209056849778491174822177523606532816186797051261158498127713126633301749867580290017587834646436381689807126809619781219118195693988654983057202075825297442856249360731934201620453812684724577397849265715904141671776576474245765932249588977019334535351518820622292978676513059792070080802369853227254103584557374353676827277687563881840535227708838140827550574738943024837349301558154490439970313426753285076289246261348342722410022271997008367434048761341135035206246378660613913131096931931089353033401925800308992822332456591737060626901699434202653674899079735051921931033860827044363124534564351259854122204957275949106942970453469666241317742783947165312247070145518515666569091784322216188683369212216715218488486431926437298208071684135258218641432795417903635054895766620295165350834645670557039809361058077333578447675731122834407930238094628081051239190124026924795409531854916633340718025231713440525320450024239282141340139435118179654588774844439799026959108380223440086004726724356568483640474849199561345786939503757296437115660835033876920142049935650284317625963433139164880487418456935946767439038870690901341279751558355807390575810484066333157050326280344004460865861714696554434125774850212372310795415915140810332616220514585849173689302310234438874509130817892903432964417312718822723109528256342929112223627401322588258293108412273516642059167158705153440027208634218911179411755560276728485791404156189340459828740965319248792724152763033036330567946827963620974711146518676285769261938337993271687939139961218176851050957595799348991706624872805252332639229076422004705000111570152255812231353344867322152128215653645330982081738455363318637611496324302247863254159510413698993788538469525074120978734467708595171067970795303357779269893356524012454032950619682312425252905743744001092232522978550563295838405786518365797985691407529802996752641675707355032624000835914957988376029634950089442265836345554645830571698322447223266290952982962428067817833390460552063198106105010991545191296431173796203346695874741745573341588443006157589446019521807679820456074960193101136150797967003017616474578432826315218355737754137719356840204041003355655691053951416893650971019435943009999968585666138071602457554660920883220213293463753637187044842420427589323756110463753431056416981395414814971094872276087494152609088030103617701229436683639069579486080786603677748328009503504803955106917561873977496708854467107992824561900600256976116177560096818039519176295793638466204282637998773784707957502683154465273785337020538386586793373088250279347664931856103682678906838251018418173668406157336041416061638485800589537133088008874047157035666042823557301156868806678833009127595147141076057928019591779141442722113246320116859112936495534725172238044011066288005236140061520469916832613777112169024578163678491631762116982895280804677163285215564020697561313648647801970949764567344777195690791903905859792334282284910775774975166310126540149768373946068916527528917344832322983780720701438475953227033919630022564636525458083221225780329334424138927947606912674977797402557080761877219640498126837950532843029153836300284359048703713480662246102544503650869389368652067419903057683062679537077397157074838144715282157368014849363065873964333993404575778052706849793627049518686300403128652648490711113859223419223947858983886401272432348821132552223103721991481653656713628775153027779520645815832012175522225226490438304374817954050802714210449009198930928135743629927642337555806966968270074245552643082132318603924400669729232114890019409549010156573586723005708000998590778807235023965309655234195632743439897213746571631604909200975836372838078949771908275419493712848193488331024005238340926539161732487496296174357951090469480763304742050549449400575025824006819501667004245646017311423951162022636426693113191198089594283699049296272265350870914151754072396486640650384417610147741172030948095384078709162824638013730142464872975382124048915282797598701665282805968721794203519130539853560121642294400265763714859361759240137277837394653252030881931277234121850333585040259052336886911878552341879846141141816369855867789402935564694209614141494389927678913925077726892437712595774122034474620682220306710763159991120920396521925937967350725856061474153519349889251821516039741891870279675428922481881083935413622021456150651843394409843085539354727457497671251646795551799277801750746280764419871005640591019537887285477132979091360639249049351610638182962527798008898472867513378757693636713348166113116689255232439487143084789378103927649580895957707526931989688503519406197476608140313774206989487999168576140418778479424138846232026106897449957103349952030102746672999284913163841395934095719112472906580587579521491310384299412761033402893621807615488192880289595122874609177512629816732578887859006956277084299857085929216482691117211972618363323377308714388060114227774015259241406023685097648700522094879237631736560900924090716521434218853757682130747265083851465743030830050972805515421423125737698003828422576922326103991508910921277404697077196335428648256400110169078987473622659719165958634504588046543744858417249815517490685979431575017976887832352014411160159696243960161717590542417142209193239217689486512962364303204313277709732293406838482967398287597287255107474149475677826940877914832570047967436876315449974891823226529106326280971458340934762959584704258561094591906867784842229146885401054866816963395482360342039758026844680875066802445912254291573306780351591022864522043034930937725355144552272282204356291697698980664714439717245583435336343663261123274800437356262941912351527925198877861824636214244032237903433110027575944701358341629878927743637619292366931154378268365963010384080240409660414761490805010559725089062974613021342709087731816070829025943817577642641276309213678372641910797290908994897180664587540113181216035214911684455194704647039542644726857069096646298633711390528439550948750694936729207437946098253332226711506585165726740750750972611140054454954573553860483637427138681464345836642490217916770411387345308573395748621621516200636023791696798500451272076423169857003150870805060069455667102798910826564480620200087917607239983836607382551617276409574702809215347913286213710166830798800503261933073311689756367225268064338564000635699052496344721996047965850191631358123104926678776019752904575414751197273841218587908671740152214376519669565270288351557019753247631397462034006168471348965406678518668906716118876379188530670240835088238830590346317833378610667099263675097290606832197779970607057850264840115377928323135082478368170385536840765776409348555577060787720808292581713047485373033160119394394661349885924863343766276969260053577417364061383113244826511499705260646628309591851703606068155640757476084618316858392324152216864322140084487773563891150866420612022660179732093629072769052412127515482885466236506580542447787737306124505241686237321456554249390248482524388617907425252032326285095444384676478841096082459229550057233263747948123810586310171103701051168254984583692715074179706980538226150375910456235974434809518488163747948654261652349040036207678179653383788695151749396382006094272191189390101696026436918717342658266034090874632027500746961244606463757597791062691172846788360794228091045957321227516633989988092640327079411008792281393379447890433415708654415849685242446500610112532624090092870301819939864036086244940370383035998886936383941130323888613284671499331916948614932304268187321939620963826934882255178688006580406783809156199261910782813100361122139402640464383643496576195957922733215611459669019382669513048331857287880393531409517969617045489670905909820507402205678940407118600600686909680327467825754542254293146636899881720445317742893375677453138341407866849471391138419786643559598388596027855721273604774559775911123182282103529827625674365135245423252477385812183874413065790806345232704467825738531008496332537514580062907043186796424324374815978858431732288357413567883712302735781102435984335539003903863835395785728793182374728184997166989698339416159598643415419615504970876087506739223843001704997205876553719066702985790847967497892691038512148241919060897863910887403120997586555424048717042915364835573711099191156215566666349444095921499295370856503846163339568098331822371223378493894759023249725637407571175738718683443404558250225937654319748187328527841630291415632696675952423134352050926565244960072398950445463902719027812720655361920578402554675730120599244673990626945233339764680687278456487392399730764093804673897460407918642345281918733539989803862749455409214852569050405816996110351044342004749974949567481767517118705345416255424156102133898355889223912197335580071051525688379363323990871789535468981738872546080470174356811999154755221315364922579593680590081894740659226500772487535347121283886271007421553534020379854497749828244664872295273279039013446905091875483886916572486595482788904363339068035311097471379598127670719396703786337072132739476793753670177913309468803206406737270068117812383036248933214726429617179025746152299808346556043971838973301288486113130362814243426291663520739005215679721135115929040585683507445217414721930677549204707760396026068945023509405298945241299939532549101041064835913161959854555298855569697658858658951589752493966484494947052617678653484067018031168172421575186328625199408672792164749771619558300778575803107631302263279236308413472320266796489660034410736799317727587683050637289250434195550063003077247105905042233754721321394006364487118505722128644195522270945152655405557461822000587837323438157504652410290090915122792762093883761761119361559722971701052045260650135337565529349742290061974264948841971649516635911604172689673568360994624513784819903827115836764561637918810549293380846714320525475454017065627770701945093356067547191941294571930226727827926478059130484291442733046951178402877415801044122044290522568412197076475932193583661089744677217697342505692100466184199343378727928015558524252580437955921907300087895421611023064708693162462472430633561479885318938385875754595884755867674446040006352972778555058703380286435820969873654255272593723915298801852759975937627006689398417476025456212748799703040345027289548068847505004433386116032366711187310497461625199469418159360323198744844617541823683981875001784104857123486917830866771432749005954855468289641644805369676752654920950220646945632231917138925728668118168431715217013236563698285829475111847557733382224289491827004335370549422954158627832229727393869915251666858041894868784492022427256465104599369056663978100372386121082017346779418215112888995074848336273098963803846301949596475834386592639044940554961203477861248727798888111620764556843270657695976920197680191993285891699453457299692218895142660954246727623046766092550930735866015483631762749988282605677680135371851036560465287988547750602433687172791522029860062683517669955524284392989658533438080261610331347894475045915820655354601310034344087823097622248664240156451192912171218147420547892759419589323456341743824112470807954308137873599581373242187327165640453413388453447370094674399642702286952646130547950886959796520896482116243658812456169803186874945676905933362612311230510582357524431100463460260732354558188164018576682593095118502504443181542029660403381839878782798364439322949623443583593030679730684546550573691496169087137020415651400261635288524460086619728104507967169749184423268060437139814054568971569786779670146649177101518324763975028678428448432997054194401531087929487843765956265352829692896161162852367763780253054234557987797199837717613240706180698494974869078696809253108762903067772095296839332165590958687455053275104446081178869035193856115505106800418845497084229313186340494091496483580376791883963607253012315436829246151432340264161082046236695965285632267358403303093259198187349475465872797803004305606412175360543584844159926637604755420981993323171162679280436847222850646589572840925662523260269926244640184559640423007124361746816213674493029534053202128027825267537543155426661130673439005157541951939482856382766541406116307220105182435350709969483881765193128916031701442417254495205926323815719518351792593646028508627705225613864247701631103731833903802864725235504125574139950632034784507378200076502835218703248204351173628237058066499559516667310231127124687345568235166836366154695238788514235029811683227274381135398698022889517687998917427272777904899751231769261073693838851244011382704470306648138907166479280479590426242482745130039233245544418974443604996418003392192478668476897857780307796080896040289865792881486185571783593282294520642370057666105544801951687445363065849157026885594374221107053510906128754272505443233015412305188485047298573666675037236524933290635113330290932614012461490306143710123217588061553361798762960703184895113394043196094267785015165103691332199064268116387536999895167239679300218719238348912871763504040303755897541212637854167663184786994988600559525413164763836766723337293822007323746442422920806538848246322241331584444586461233374825719482078346621702795996557629370093535252284231254984160268945639733524374145231743899791339582337780339132396996712683050455592219137210387802260726686517993299522714243370237699460958617937297150989517316645689510937366832856127714814495214261505033046010810467562535828977779097878120173639180676307787538113840969238665146008069751269748091514100163240704922810668487949770631070217663796141925427595235448567098230672163348474946257898137083289183592404504219598538548930808530290988760538500124076157358439952263978446195718497969589400478066582821199033961555431314562973747743657413501955556639834496577204688145916627378315045692387146459171970131386671194340256411833196830037823558286737452053326877555688670512335332583821163423368284510474383111778553424676913530382080336028230321669494796887988156795216511658480967885116120391413760738089457982011991124062181141835562359892761125105970745283814079934033442252439318508347944021852820570398105264729484943498254102977606121954818278622893275338205760440733501468020176653923599181113025894215070574316315679728470318125569315198847058907045518995690232480534565281688701425405408882782149994413433460029773243359772276883514401192169792989765159785717377716908215852995545127673589442702589190544645713598572755327153321065665617958270208086927758858745261293799687448197793120916118439291909849499134875431995085451034270184040018143575268218627906857456409586134457391694438250600932295237828665002560200921858103045285764934147544883977757998835715399758953827514747763275420651470367439848874574827393393893238624960894623042018476603599129173143544421801254265693951543032532773344468449734546825684954893417781143265635252586652875488011733553225990435863417131863669301170490655555041599328401673691526864381347131194905761594863087178640982276085086199342048584072860037766922518566044206044379701671742995524083684399110164029026620617653196661070218900551235425617510296584107917254727139795089505269792987978193943163991225810033726409912558304446133422597766088623395285647031685277326707315574605369491005610931255492831813362691393455115566031394878031097429543799888552102128604680298960456657345766173842786059797078182022331565637199233102216915919386757560117371302067452722059770395031354465490480256653349123297124102235440963941669484909261236980660196761764902575818775174899039278898801239992614471853084732145964238294693052098363445992352705151985896936954607429872125196758258989295557809924084201541806942062552479250863740371483621835258734788680188256445551847550732731466056244727956629465035970088778772128361993125776784225538144901937549744070640048351489294410133186705578236182773012638065283312235695574572406788243318268680607702213768062637104290446929811692932044591786234546356646028458184602533004989453437781321824575703636708588261405845220992493040130946139035016749870828930180775708014348614754076016273693251575181340308117824685680697505287766640690835696810197334354804781544126130392221570865293429375911743456927767979018641806124290294409483447235084946376070682429432745327530842101900639825259014096900787149439124576093510726147499241914569450849390620503217989806883025241207596918320556085036640287996949790919928351989231782755286877120084639353585629084771617191568167204439404881183766060335836611105283310556813206208915409286994971088609106090208232372977442849462247433298317171287145488942839427613021819654130911570786475527038927788480582703469842260851688402102970682155651677402778689055113935236157145114230422867832918483719134968809497764652572643522537899776265786496846668460851227323888935411396848058911652478911715992678151896748253270404546283477781107807130233391752018566366506618006263852408263603399837102078478376615312062627768266545478408538672047247526984876619031172248680234945476761379203363431626219090279065178047236901544260213085243903919682641210415581030457856358850700257813230924241574640249227741021755567336585280094327456197590239817981324291939718791436025032618968482778887315345581056018198821477660486239857698105789474880876540535891953822261635274315059008506272139542648639093738561543397411874177443873233678295289377641319358368622162223174145169296165047105724984963434539262653242225241893417478399003624573145853369201761441887615322593395571702593877373371553084732607193476286341682785310488423656185435355189887526033305996784609647500300454055362960899741778730299057098404053085117199194042494155771665460796471109472498426129005431550971708217870566893556920565402623162636844197050033941567956024165665537377738809925019008615388682458226706170590124189071537788969935963157303661046125950169128430640728648653463072344393475210377731292966829270068383532622284009224788328027780944956223951060886761924103632038819570832381311477270746157745880139058079908771195643649831624183738566207330438650483954089190428803572763642233610970683118757139583356097004286789561820034579657198419209051322796738703256765828489566037037406602810709191209142934533902918198176767154184502683337988146619863178064481222117814922486757835147013732856123880669006561193098872072516302617200039061085221896254711127924405652300542542736014867599394934799678740766386916411370020500118450396619220608166161399897664671736694921076396523038015401553834313622141072253041830288837720192165646334390238508833943903967067898336638147021973553368790026953956774731287920516692207700577843944792403331565189212265600616375573973145505318001368192562389183033156651385777830919481847523087440970224349244093008356969127122560984469463950500756513779070651972631624017838505457400790656763213901158903348134942319740284956010579264759869302989585866062210353079326118598634735465191326235668740793728375126516599609738770760908378332907379735092125765293594993362804067629294476380407939866780815721531774701346513171026986974768549157958217932303353348690485263528490253611710791417338114225908606907898022637332972539829099216951419591486969874202515273412528762613052444824100743096334165856836444471008995855982666866604398577099684479224310526410036254133226697845340694075762131811042185592672856339840530920332834314488635469416537251180728048108324849338648931154755656915515081053061288949710226316897254668287052459091300984748498970830158229426367656807833180556703618131453310678903747483909161363396050598143400215374269291023515711237719225004630264714130803159681665904203281570861798051590344567347300669579345578385097418017468636876922402807054261969558825753725789783251784376895761170869371875717164749385974518650452832978376314847804599681679553235365213259326029063324170138417739753156207866020902633867709274027718866562698930832780556092015831865529660692467114870378910834197484016267256913420414606942833428388241926340928802835271054637097687567112881643555839555968984603073176203615080208490226565705305634215919884231832131469094271016024177310021542271831654962749113151573382924247615821715734125463627506202211936019665086024031031873932271024765761246153480614129024556826283918937667667350018795665745483277164520474651603284702090320350260637385778796837912833601114847462024291263671680399418556594220352333281632389101338462307950181767385804461296079598772426530266914643338439547800125731162063499050588479585137918268368663914065374771125269657608120984234873845349946587413742907964379664268211426594954590022389945033161379708000599804767943761389007557916797299876132816613497858072150573331622590167380524126654655669512170713809487962271856943017016846410576607666778254381856661098068817419391010013763656423767047679978158777381347255258625001645417131603102384754888379856350776398571090486433467548562501321001898376760219073329306742688888949030393080616054795964249332285753800658635462787121715640912896749762170147366951399464877739808386569286402214027741110429643895557954910735089374158589641804038041755049124385550478566392284289373290124002325667625385484171447236603477399871430958700612440851822628968172584124469926857894949124202975450286971299358184075183401346169038519884591407291410888801189180168630233174931803169108267769829253158840852618612383456308654045653285533276221965406692245182379709313634900452465653934541060196813492235652298796215255894848293862607207597753667233313843940770112108042860158673427826702582532302210925188530481581375889130826464880326121120985408249790120713467493744071988158668357369053866465273807108370352059211732862111954442027341740418418660656962432714063390567648219572361443338580011435596327897292181915349881903645177368568867341644441764059804165064616540790681225846852687153704152448442035877636864313136642323996160692783781700584948250623263247950199955905258378661478048086770969891752916317297708297286799146016757420631619056838907898277594434436671327786349571275127582808510741370994937334792263214054009653436975922168381781531829024559445058304944761877162044649018299250030791859246347312221094291084983733582719242162536550540571108758806945525628653500697759846793459384006434104844673435951553694094879639962896166622879190924965842003301531125480642543199455028860713784482226682693208097959166329557697759955177536204080212439373128241851501043103527367834313121364184553640255331737721384483556365315015499089867247874650819035731353645804733105063588883685859868679263701948134312763688158136631566368714380234052417380364285142431975215375116829936691854794702178821486147495293383410129580367100665675942903134501811848994522883846189199347287253715922669158701970942512930900652501300623685597817150193471012330291857042544617733513277387132812235833362318469515258655365638774394916311880734091945579711037124951400837520861631033928450729249625335516574071229107264095256648917722208769071435640282045160719175482906665512448124683961284872157369903595882464211140483145715451081312185354512211534760027543715718202136227751388084411211888694543896215110534849618082049409664480758096723425619304822870676238921261153091513688862578440117319886105150313111139409342691856745602397672790422190933329977350705790085384163127182765699456656119048927462722271760390759674851049870455586783239767510169240948037996033189317316335471870680872830024657775905196526727543396922823558549283402965836408979095669102233062266188704319184616071126403031383992528614277097124348963769451032348009433587455027411940843818713462597859202694325445441569000371252050794806786919935718428904238533606430813569534635868494013141958270105817707032379129164424789582688380510444696229218405643710701695939935540633842106163110806970320362855398643963471643304913105755925854993595104469728197853335257245855972842785801421475427011471544585734298183418182066823074733181907203013593583349533823744129881249807723387266639533208677748977617074910217170232921356080817881188303742852932330316740078956349581732579683749285905378915459917799051709762017522124128623706167815188173485113852746401259248691929305216320369892357253996430707746632858440969760468228730160128918948019909810408390810375078908265040073022853981835161195080223701307112102721872512968037558852690322818231349185288062020898268499951960368841638454038148365870418332668872614601457797758880590008138189985351931965422246486996059545817576060490672585269295077436442590055842726487172209474057574813559355798643501424781316514562435655806557035492448663912683840004313000788057475497560711586529814724114322022540698806730465129784501415238758778962611832521213223184360952528065404089522125061825649940072773408434593794130973071058596107305075568021994774651374600769555944810647998008475113641868858571596341520740001622834995289408237325767473172715330884195262361034640257966134912528072015404190669448987293539686771909618882633927773962496650571102745472069695586407971700782465661305548461464919132624003966102099153007503488094222804825746973927413369495383738610033998062760639898203812496963730191843177523049993915936847615002814273688134128669274750934251567597314645737159002682475742393651962601885788741063990692699799953700108868276045339520412348127869374698718441867475220456839931770225442871170849513108320993482663496603509518978135948283534564589184804676912150994261761378059659196524928357120400283884325518192980175000505334054742086027791375002372455128220224945540811328340553130685235247491742349314383652715793955393396417226110614680043647665988459696906714405021550517373623304062158166020915245906422050022128513217571307847157646907524050318827380463544848380860665863926718005168141330170373757359234373848941988780945630772234914020892533424812528459695311934385455298958834503014288267551576438569477063227440153361235104804475836631018919717625275504827287362100720411701230266647463178008174891397966906226340607488155096083959284886792182803878596355798048062713716356605317946947168674621582840377187227172036782942706673567460658571127060114682024133411038785823547070906915255232406174751095801222857378610423121520922443376250217320022884771389269417646391225677369635194704016029707333023615767920797254203587019579847724194558937496298407977653991665725161633569614002249677480702804744825894816112180341171401256511965328215741751278733997491703545927718110487900843221116767029173048930880586578356677598078649679669925757941963419831748216433865717844725576446595555227612618860343370124177152282987982442978414303454243257077744144154367920571305677044716355672238813161106336495524335404866864247807807947066702734450532037794877465598487833765193784656391615167819474567635986604332673113072062217709610875499585732760763816490787078458163624547140052037146265354169606248421187694903235881646741509883878459529437155840750226730659696753350772433145837917805754702350342737004306284264707818779844224263877150410901010803858156396328623490098913859307553807141416040552370803619714022426586443285844495409655403976889497792033970631125177972715240508452480077294982507919040127912734573060833703389960181445722898037376315591517756598543672838479234368514772836744542882549509373305125209896074989429643505455195655557720244742228544737247534491414489600170114707671252095001176131709336430358958274835755167880766214497666557998656623870488444103974244401842564571956593205845763337127712693271724993770055808827559707568223550353085699686916461991711851580325645261306455752367232706723593234018636991969156021481335351614986339637522691826771448458516234210485859177352513449165744988447528714139373450817006338492390112434297809611726686876417709555621289882761699786324531195039012385192981692562730978027429894076533590985053008141846588565375540864231900436793277266611873877188070677865346662255936411046896641369180310440116148832624713073945869890199770537967900714244318126436891016003979977004269779349773705177063164286814344403836788823514830002161649081103444980654100137472226611724126376523023662218604535987330073116335745933160550988070127196929464516194720502214950984584531713879235574763561623192616294827806622009620182716169110793947880575439378914039862551618395820051404753392044961396565935052752732848454082473987717166475827631327893740643536451801807812381076522451859958499379964584547659554944620101908898233449045302621656295783349837221157967290992404976779447447294346526131288244138594337513174521971765334291658732584116300689179155012579882794543228929875084988268811661790006476401976176207149237222970484867767442111670419114610571665879530953634446192527913694288775673855406402154162839181046750546103981001212805347059334805002624775677579429881418125354176479644239033716422722268086223620275481734302907779321037480085785272342061793927972457715946107887915200512013875501096471765829004556664312695491811443141485792142847759489964386698097831971983761779897363861424433144542048951094120947441045083442639918706181683577297685492514150604038408442513584515572485213670320409256855485664721287400860824999346625133527901057413336741968232747117700599820102578936484996699471390464193166106850906177408810793321027681462922065230151638433072822980249155749973134527914298180111634760950152017477633230422519061112996483581417177368856103000760579673402700074018803419815433180716060162987974343944070070591497184556115205545360353816764480338405808440103957346388668388503471760321773924831130032243896071498849690900450413312184530788228955927307026834434956682924043770867498906587467786479546330252794008759479748708078103609355983673511591472203992725341968051695492173576985784415939394068909297999362622338689484084105639353782271339196684767464861504255074369356876860914387582818980205241639482576060244818824678275643536805936403569936130819394680552379769158390646934831254299797803246044233573240563688445451751117894715963198516438428953735565602765110273908512915243930424223907530265175260129466118160235788353470783638075350229642403204271376559471125094584517394818829615758788967861113738134926273954609302599764938990629089460732652566536024483483542204909449228105933225180551244782000363858288756934446590564264915128807758483063767072972038751210614437225788235042284399760495234142534458272440263263880528633679014700448931439459117631645134879362786883856400861741267147912539153306496180245201885476155073648494071967605976891899376933908802804062463967733139007178358392497036611102343790964616818997163706662221612723273026103615997694419151623822408503240599978288634382253767962421127900097174630725325671174580169287626834710015808292393896067998428545599249448949447031847460844876459869503189001690766779227841516386737408000499049026823290952740262399704025229186823461692057313244314362734570956435423583206733762700005766410990474366230306841758208894705672008228885781007411013868820777842471790106773977698295232805501518497683980263889453050432838226220386235791527293393925926433349284461969730794634860388319913326288113269383125968227723894025964993495576671163701685866393779954174104581907052990375931381225262797449311872947055755230677679406858785179705706303431286769205326804376601157639358025974367042289115075173941025168087938200488151767213468375815419262728586794338465766673324326195642428714823885216553009711537830437473312807981592783706932330057889379512181537133276038721281084706096328806164714348904553646386636747498237628982323253569667065229640985274831054576639664838578691111434517088480996111951031748558326934551817530934926795267033543666003254227773392581263534043489651222020707879468895968537039208140511638422476751952922406725622487275603386960281648591766202779346939246823577190846286560927823522317473496081071896370307612637948376978051644622584078322950643154639082275207690453827646738050367649408309076884446507230986959613736300319232132653009864445497472512035494274637235060232894337364594851669973814879014308655166234669702126237656461235337491844974104091984409189179380753663805192415916968183594680404863003806904092734839916753100893609723038405744063446229773512296078840231015714905693084645567279207662282808483091397450620200167988760527313306694176738257528037571727822578576755920419763975492687409262067039097439642848036784264828435687261526302858177685978678577247554727688077921487173143806960256239027174241492148798651002653380440020536569514535195210449104283740898658999191468130454494334980840752859340322733244544902468113392512091179253228663884619716399210553807024654694896976151833267818113563833737429980566762941720783214358702943614895731946006445323039748172407611705355374119849478261544601050224401757382074653194740685056388984878864446549128579228618916818603389122004935497886273643376438883791881456143915410229225475298707668145306224782266322234136383154973648442191409481017584622770748122862159328265422765801493554493148321474932646630409365527847454260749341878401274793894180879120063357075793234662642608239161590334965406785104787358946672230610157819057949092727820986080875531605513049973175653082215245427205481681266929284340571955956218220921186316352453656212547322813902270597152134222170140358404969216268857994064439408712038995251128590700138650060767421548108400168280057951437766858978967387002505738705488149289516385579124432534781981009740356866836051056243112576989491213187098873899848362357791545556759161857250867085827070924044976614010302543033758429075546630958713707390672827776455117318322049433717812610497370590364996867022311034876761574413912780946608084303083995046674551003915812876256240166398357561704954167786715256482465937539684907677920679221532532835322326504820124503805463362468285284200934153811207112573232041807672878664509627831303259294961131136001322734665613521812432461543165854496760663699365770719801597722656073603137404156096105595844250691114715091859855291141243072220406322474140992460734005833113466393355977108820564295880883040651349563328575213448994584892219281225190820022416059423344446171017050483702525995562100621067376222461292159094851081648376114539281560729117006080384405642532495564209280795989110874475459726141420865123769633909425140590256822710192678098179810504112893469983612235141646835333223629274932760418707858205941833295171571408817757688703087007028055056755500284221038965759443462157237146921422649562818813251401804702920364887824311549391206255555623112548187005495233728052387852141019761418059296233875092175465517180775766025265099713223496490834764615178281198649074034138396044954377166978994473983975404442078908212103573346556221042521574080595613562758698588297969765659845014833655512652828860894657714839970246650401491577934909358978337235905321915290168922597712244045190322445630118196790120395009933347226181980546546786643694795001854029611934848539530514672944022964155270221836181402548556013170982648710003298389930572006530976149614812401202494848604032471539259193987471194384289610009757986854807025752302874485499182283332080362843258859946438031892634606032281290903844253466301844512738075746118597916986733240212018874699339464499468159639200136529439137784287701711017131817503927247545915266142585438105156050584684176302388761163319834427807260579134112874420052518834212342792516999194005693172306214124325120689911322328796231898116718992396110628141820712226018951551810092334783586514086620944322551588522167569414673737419835236466682683453834305972908634680415344256181594080419816892025888899309103648715165173777499473496292679257653495103344698515120814075820450481017926827384835248725784830849625309503583544412211493642870758104089473872757061260343103858822017499775070827005064278280812324611374502844322605653979071371548422744672589346134196401042598014554036164340491898452543221638529344090288740521510040224562592648782967238458205092637170160285098499507955989895871016338522788287989403544015230395242338527690078536196351494768309237621031785977301432810926620468008635976837820499623196328604474521268904613192922973763799094361829882375824996540378479458667170253043834028755888936775860535079834825148794189179974896109581902923930310449606744866432409006090943497478567533712163282322774298321044277116782776670306304673270244163070198158207961872124576387214651768688228448260541945918859958389994203200627239529716341666933716096336994275926020984768060217570879733242174103897425425812123651826522686028987650970208671491256144634889820704200474202996217205673325542799447193634909543371511017957813456385604677130702475195857545571743530031553911587193799488327045948770557453892069161483047604057893626768502589247683799086822607088656249120861686750809114646215702724902336733056301086895343686557175100762628418208420950399543276386600173315609694848305620185105828636301873189139168495761615042825645450018563481208002104602630496123778955661862767429998124578593302525317330074690772580746606766294120816534069771154074605555578174484627331889777170129186521672513652354391525375400800647509707881224536478048784926315646759639605605226632183503506613319267158540207257073190125362486902895073786667166918316619920925875063585453980063233062046982372049309146746472187516730817026185034151431050723855653317037021250896901893671982039645847117024397737957637651142637193753131798517336417070931268833668447120317500792552335878548549961270242808884722231889417015694715029795218995466749324314028514278634317165894818422709798950856170436133856025183696907575221505245504462256121986412001500956824254060095124961672248383542166641777658430591141421921581416128885504793851798288566272559557428207253351473798373587913385069330975801565483560191218706459838900089429004537593267909118572113230619343771909463341159622202296824223941275669118619982382101829083848904757079193324840684917980737751491953592395368203486428425908414188230425640207993054459525560619285827057698897258830748929055331038104486341974902549547984437753551437395039995525093487138380590011016358740417744986879583039422696810788814058493825871763494737375379077841104302243214073003448257948942304037489062949677645409735899258985094241506231243465237728378927942883710673140617071734536260368032290290065112038394451384812331177882247003484722227864117907412508071314831231466493307439964975645734270437605385082573263210085028300876018915601726361262996722992210550083402082456304591687371942885175279872190366833516243013754034583991911060990449971349163044267822564867497633287629825024934501602590051050452213662389418679380663750785718240521620478165523775066621016274154809875666736147726460558959703726934498631387720729439229188279317847486237532396741779571199753694921525509971241736200089455005826190063215124637553249662167827581238391139875735793617836913149654531601911476068637639449324561814739398840569126403087548893423595752868652867312243098058449675177753562259631014363892224049070654400759803702548341829937040241575368908037901396260261644185041246143340885093567319707810997495966284859803364868248571789989156401410634792333516553823421284529383803146006159571336264336983929175335594650802872394221364851151210575067269583659647164106892759852702260964071940094652360832838523574430113242370725720675896112485720683921903617891083685282419809794249863519159484296438876755913717872971267073381603026072693413842807951490002317584680212981093419660106919347235308158563215268656953632139555236821864008431060468755809170103675906237116056662120876959040618646476269578254874189967663403798413549275453961166230309621319102372031544285761978873157871655100979748052140743715982048316359575246507307237852382286398233626638557533189711779509318734012176922140764877495408532796537260684360069241821448438871472791564549478732656526573384873618552178718585916046654587466755761955009490799581497903826084813326452129410829247540258321442879493122943982446430763510314766127555274508994601472623515495200257920090963221051022464807725348366091891265441816548705857249771773906054299851191377195764377016276963416587587593175880652210241083501267977653893352003397092975699626390593782127881097728211730072398432357559462897079079185506993703757834593439839180732772149929149615505827528439544840836800347579200485033826651926552509549319568412217589179401284576587757015212218981160597965838440235332216310162075001940561014528059359992205161602972043725077799579715066475041853548469324247995789481075303535904929477894721612966879119832735446887740462236620093822319293520516273072973555012857276009075543474526586780001389707154429227813247814660796709728293778232137744389476052525014559739219077453534991483753084290868481481764788395939029806134242014664405692550532394981858229264673872257718955400522772333538319724284099538920778540540841815829755604098323266822157165747504483715891149252939213863115477599221924832369835156764844795057729045558738329837383137744966635960640360834439456962325302962699873820096875184160146579960733423836655634900782560081158133092376841133750980389978472653365691966441242949611516559432710844286420041732298512474229666412648553433425985793160700638264690539901588820104467852197813615285473944937792378479299214095211101553207883275562534918539319409510980480042638703777200163230774129840957455449413734389931393633990292008765698535865256021844408358304577109779663369911176698929770758047885278005636376750101724053612494288938220520946131636215199238180465968969683843730985469701796006398860541767248578410099222521969656987332389866757091626720382990881283192995260221557436767272127959953595151427746590224993287064759701240990948467525523263087723034197578204914597261998299816696798546931547687678452926783483993000924040312685236967445363205942888806887600130623884271148846882248065179256937926271872014725542691238805546142796255085321186741663771721787424762344728948494177720916145881667576539093979061167960653384637485469107839070329174504121424167392912273769074337447361041241759268879090409817905716444852259328714283336748784541380891966116252573633428825966348057871439427354156720812127252481917667780303264489593988403104681819278568204482052717470277734873878683997877036577931109429389117849225735924259424388739920817780393292568770433591103003867281485559792150534706632634729644667012609557405453540619290043079083725160477051528837231515142771036121819578180630286827259285182128745591861565310653663060652815690394579324430939354287031898237491667958791085353314638478304570017318423228639164747954474901294782879019942502561306926085961211957499229131550802226693770779684987724264388156505898341469068335483598171384540038080585568268980852640512895252678340370398159729243117096857443781392491698634861060718450612869165085959491349396614459050456633826606942410614703828795875809314223760970234428985046311386158103367043908471113157874359802891362228152170927229235504540458186313958847818447991233309182341171809108327279319786001116439682839427021684590872417392239482769379453538956859271200435656174475958422747702654081333367809277094280447869140831888299580329140964620908076103227956906084691962842089640936244734776195283922228282602831485939352373335837583736510669235941526118647859378434178225862500327626128146506382667270558494442821817056336463539578693395326647030458263228257981501610332298527218497999224009953741463717727791311434917477259929255253357816153196899645882375373963656201593443951312378594142033309183385736462951423590687612764156350466731506542589411785967557850513731278941556379316472451010773458484393427702144132865915198784984823707879658653605575815107975357217689279861708934329905375495683173948352060952685838433390270558376669533357404358056084331274175473187265441823948522593148154599029063917235426980474187154214383548720637385957357805842238512055030088947681489812640487652515740485381980586844808761527516883305639269168436450081024368102851270980481288121635520183305128705271610813494279059262494741203016214998277046823585415574817150296271433979331155317920063250720481631992253220669317647222091726453071715955088546481412601972470422437541447905787890776431127552596389721865736147834748506062471351139334724023712112542785268895599452901858475973611416536480412957808925615501869598608401934303145119333321737124093624460391511622495753720298807139975891273492476167012904262801858041760707637470670225223438519847872392600497265312254085244366368925135894079873107310745513562887130523514468632971618311172076386281742537321431786274097858944633952456785986313239525942381812632975003345793757866795148193217429841322644847783949056789133958083636280065595420467679864445091403286749729705148289120460514667526593760390849798988926907560371674162068813474922321276600210409233067279112377539960941249251285926956248150836151592643325273251977129045902012966369654120710336047874794701424734699462910468194142350645897891135395269384878808643842539713157470368763368865464598192318844101088552956581691004939255988585041982005213984750902140147354848785275170777358876411719781207751091681459208808159068297625212138226220121465253037134981739794700489230935147300023512158871954108459560659045560139215227055967924142536809824441475569578635461370279761658731745643373054509318165378062072478878537947595661406752610811027381622966736583448736955991607703771418644721319265035324164857201585321709944919322966136295078580079747374755793287247933567230749173453437960652492026410188922491032230355332949225837519450601743938431081993721002229203806012405209535197453089719236017473324895624585842183580487388592635287685346842792988618633897956579507669957550214159034626567523911307792590469250635332224564267696493187587411455602102523790046661178255281453039128866069050967924680811129906484843948347288732893532232471325228651755614766221557539732922741730763901036845125384445637019900295723633396325679220061996579038988760390223139325093696396357581559278735398795327366965161760589366150086419289383329587217976744928162216709962290554473321144789610787452059915795616712138683970713486687590614926670417035626253607005492113193177484491880326847606125066530755718839738198570234810697597955191153795536330166353941903606802467474870612184022139343615751600885632903226546159033582140781743028208767146918419711160384630157230828886595783787516864466469048182936555900338354186451168331162339120270154098791424093988294138350620844461191333887131871553131088038765128709450991130767403367745696938519783864425767837752187396878137189399778968110850695550788623018527774554917531683764972236013914032718846375282152620862299114488771158129869101691631954522360970545091281180613547904119081740678133662267598067780517234092673218156926129248943401206209757611930803344532603199734844413807195069790055551458669278738101332634900212516296542511412170874085768717209636356679060530628978851524328125892944392346802442394688180999207024901872463978800702046522230450944326829212974824435486573864408421982148516210149669620721183369983825593358738139118797146810628128582934601061372803441660359384161647592266855640287380645065553453444531699890825091493481633374524590386721110224940043138609784302696429519820516679273205284689019942481425662103127425538320361882316585492089274199873480211481006837338301726554157378495953566359312400310279611950896037707630909192212015177445875657390412645262248714568751174452529091048663618728374620222129288409404223708085938959498919405973690874454479489045312854023850157765807741816872559524081188143781231338105957325807765149280016812747549337482078923389975915771702247041136740342748551901522816942757551410588780762347339018029139817905329927982865706384394810107828372035934096609372201288939091063838666202329001943325505485111699387150850342775684246490239291455908185038772592393328174673845225526459482258857299390406445817519202203643283563018958281488410836090431216829637762111810032250258170188774346324896742737357665224726870489354792016795701660805959709636027901188275153404129783626504180499946312212257280523878566812162438247634904878301745925682380887970262890655778969127109802155454253098350059573002291041706857475689254974294921111721604507323314048037221463204773366125823552708712023649459983351261330566455930066996854243954164691084599023361368011529929519779897223118521312586804766859619082508883448064781891489302253614042747004836264188880228188364833536745469522586787404455274662913561646291565701595583478734989285433954593625223240072461293512408597716918710975249973341259084977856559404278296154515401034489565930175799922679692435537308523814330206473604728121794506113953579784328595475459415078249108176886112921711080471523543570568405166998729564614778908741096793373112077118606575707153570983771720346068497322640261520074552454360831234623375238322799451972054173808516615292806795946333646481299028099241768740658321516993387507170811341493985002010214065912970853016242414576911695053999977719697617650858678209188906126715015712666604679964384179263247683071040225231368549214768757376228511444763098052171209244422968318211155333135809966745748200651727429979876729879010911349357438804803044395054931506024841728653138452560314151925404753250541932112116897773279842375289260978918635987453077650211719024095390348781596286418836889303500061733802962423052488461615282990956778844235036117627071568621772898503662790700065241329211241914010314724720692229097596211635109220841960231992989970157772021102839478319174300460472389516208698592528918014218964059971628485380377096578330371897004123035141756729475325141649215477450123502485940014693590524864033242787952067411337561745830718885958417336410896211652869792260160652197484048293121208345300445230570020726223706406397827793251943784331042705694301352946870696115225481117702348245820636618171865816120927970755500820698910315622757222104300063857368958957525947821122888865851590315529505726749330041146738333707350456450877772219331168033818406029642214563433354923016909956701934886303671944071879384719526866922374504343412496224221653907466304294422977743884174368006617224070770669606996160473331145240833170125375827507831491124828091874114501384470503611355367239794689487743708455078322135120066527336749319837058508739006827686747229273364886074581578779140280220427010261413734955001790983323775962735234621481040353508512882703372062821357705433999830903392634363920461461628524534540388654892119018870461182863341049604702738084572068460866889958213368767268322499153780829201290478794274740000336553315260222241089967445621914424694742442289518559216771472043645424095367660708549455182601422766165115551425833885019923248090159838225861251195598628575779536767697904549441590516166443149178992590434172241115925561253798038509400068498230385225379837834986115908527928630989916261564055693818729625170163617788638631272993523736874856058935437036071860931068067422596829083522358066565120297695545326703870716276294037577316270442160938933749113910160155048171622995777065534645837717114537351216865883719152970953873807657019294848500722453974661274632506167875476370473506740685219261992441581700047352364073441259184926343653175257146989449875583689502766074633311573191292393439704228192072371515361444536335569068886893271616087273537150144955630515692988121048801518532791609612617847264253883495027830091836213926504511417050563819385890915848553817700032804621898356430330415148511970335604154294938331013151505419001236432158010734413720984401052678620646313328007665194666698557762547209882856073752635251121899090822041831508582536234929691944066025206904986119222625983290802026123186963215498185180215309976686380693143988723966293320730334556763043001066110567242875564469413274046551341771671660352784719205348087566657522185766841086932588734138073236697575008113902064010945722878860098200422950886206657404063791941474112997408599913980794547408175419143599275934491483735551512341158319152816794227149166233986296351094147270364246744906397342053992987662500146652581288828312209651227027357587753690618788900908772761500319856580313547729511516229330459081529961648158889024327569789177693588756279938554230334021599387156192194838593232262526005815357177051569738031008677448332134728706498226076059331992433493029962311845350896797068109092524555736635693866649360838576911727907635340616755862855310366494988908054229169426871936737729081030998461781011855343283464518847639200956875512050725365907570234988144185808353566435019973442196165359230623285116029847645491602052955989879167766118633509935489542014771340101761619857590773118513047336567288599020289203741229371613889849204665877588043406436620181856768854409882932868026871864370523152365862666845983484638248494937656656970825450181201247823509807613325245436646138220675069549288395666639558087108164962564940906462066401912511032382674031136790885655991433182775861293698447691299129723366209306056888889309117228595919197287946061379265118638390327187503293810457898072490664043361888600618023046372884002818955487999576734185484713655517391805483853830002730602098255973975648517566455345769427836558095651384265670552469382044463878549993525612867124141413796269983545491412404671846655385966983726345355146842518179675967861231482084534808533535775737876150438358078240112094611050707365992280585525484454563254460902018980395961744337794303107510235046379848288082401246204638634502341457040422718917101279202014290640125098385983200731559128261451244143090723155630568724351718592916118692739303020043287094928969554106016095997734915174104808345843368698603345421723994139717926608044207563969603002413904110854849911620398333795566262283034689153330413971751480373117512715654319178170821669139931320193285709963992859410443821327516312664996492970930199171178065904324891245996808239551960789429623186822307753077647651585728476814851481522742513977039257048555723507947957218565475702658669591863433887857921940380544291961990940222728405466518386376490033705808081750093209611594079008545009918171063746263330176159679528985347577415099879526844934878427263697649933112792693041899601179257039744366194669081619028059286203191049096245764066479514077911416705175916031560454862452935670558956814517576407876930084546634804881239316592394880341658454529409948814419405997657076411639057980759886785820693420117725926468080541258684682554876967802700685686667539389920245493871954838881274179428217523165079409778237449767269323846143210819947629523592389643067478828638401919718528930291173253520208887092095936224008669992914689476037335019614314473990785645044169316779849142454931352822440580545437205641471343437669663326002136107165462370817215116953013274952767787257067729817374002180313733128508900651519163172731551558273758076347495158973758465717218203077138391991612586496565891498913685875607572739464990935347324899301764978754654817295840582638294305872905998543177169430866087978754999531087796549370127428652226423929491364776742904989413635155971762607690228649155934146026570552724165462589781367380866069931245011067459856094441065996405063344163555005950798104867667750362072820971824445681659197612019122174698536737635846567690401215200201103385012297587557283315008578975900107821793710011619778527739371169119528821811558122646581903537675225184617698655426165845231865831065631422806856216658928854740657392572496853846708831571760899767669762501155191767128331447977540402918007592895987255976722101944504783292630089015344356450937100195050511756778353073855831314501076464765664680973764542162356503287603768201216366751386831118937452964575218858514716006230124917696327357639117305895577256584828965761021723316236591544634232823066089014397368716360891860554323256828208425394385313122667665227671781882452596849830617979623128062962077832174538077419317466160732749279125461190607795822712028886006453548820777595336440937932984351903408849534508144822802085278633571068582649501458368211401796639713534996351948062627989787236989935969644962927728270769461379234335480482486249803616317383945869500676693907737041845763050857260226064493865197031052928278446224151309155455185032245878473613954723128204772947971994731336711768991212766782932545749294141249031883505358304634071362194318254489086700817202196845878002712358364075576462910087667343314588303663168091339552707713300565497201331478702742230039444982058085347577683927199217904931724227441130738319095883132009783935986978920410046451718067130866703898262755490476166606405251339193045011751805417254392998616116291843090983930389951795957279511382035347420486002258556242846080197210597206301146099922264433931707224626981924807961955124813616511148106832963783652563766628918085433190376389813539937694633339521386935914488036268006190634825124056427193627602613413768187219011723132472760194008021943058228916952304924544154679311162019192146924806341109512526774996495053124207950779126270311648816485046361568879709513699054185556272106873617100325847210278938345759828265096435751941116178537599627985816806443059592497360342163198179218828049328479329686791643366499340067298737812314681318527257410446477868419164742671415610338115464147216754249178386706393396646313569010283691054502457211414183269449828276240493520594796273430587210732883126781973604892513372327012282233235835274986877771188452654112339687948578095869386926853050577127328816736226094170444773964596959984860475979661333273574599352250236177008660295616870786771900332853706443167029917108117148355801634596825278698118359051083620470041529501129871358889709336412738016001640671530077001247613288810177971986561603951703962281364909572623954154671489500022957073367598774895232529874491918891547026495304657260467874034350154281470922267241060855220793606197423293633480256646062313442506733204656756305636590482331411236978131650275704733273072047637096690818413810384705735969479870104276686080426574701349834035973173322624519815947502570235718427645801305113222362725170542615284500227499464529493112317999537282302882568859926173118818065244880081684820056577409901309319963351148647876286507405674683249495500688423617861488807444633845271144889651807752232699308710587053344037494798051813090505142272978831199611321234044228734625424970882926699381818600093668045248329516609694356923925803705659433770305796736666948388184160126261242523327567219753759480975944581480290453742992617518180255243325925895503006710078786427333312580728560019195851339577557938441691835710623414225715962569199001857726310483878792083079117333317241621879301828510475336858444914902783493205266505219848645290864978509401776409723446985935788580053877101190212599522968615766252308022675005388445149718834795470707618739814368176128230221241834291402737122214673852409195842999959541115986352876617818579711661110229769711934515767434456804660853380341570449405159720420223634227903760314839324764639383620488680282926855313167779842806398195384461637217369561153669398079703447457206790366446954929315653470064243382037967338073701568836374916032563343056515632885520890289221823100662443784540485594665649004091465256397559060865281312229160406738144054195024925495006024954121069682605103475707072464552774606793578753332873276325886006940347349731261734899849569787873711775037114727240074210580615858963734608533291453580331151734858373255538808969454051185495517655217871493037638368108654725261603442500626251320651093630846648740760404608993241626121571105335953695722785366536972613155267866346519541006710969262390900717615480725202884875847647907608421462593326751094992397799421603309964306808821352791178582631026109718362821607747817328258394030206796209770973784076589368776594393763339715939730140061625825713674193532680248733223956623157814460516672421533010976729783236601043319258419931319932976221716916849810870213841276634449286971516241373104040515757606574017766094549015980831955990936471854121130562101628084576966319283416710384121624113377069456801811626885296348551679760985557532042588750709406282092683333497245859279851271428304309805306025634871812638439073991905929497946840263071848067659426096897207757441155717704523182823526949593638152546822578810331801362345962311323963320766790999386282684376359562163256871757426025711202755298171208337854065321749879125237235565053318031583374259715372532955490181140176657200650053973640552937544472696497015325026354279488505109429216840489011299024499571772168009359395162977718306537520459597382054943374061605690998296230668907074035327564857847672602131938903403716890549574836463227915351637335675703073400813899334014980989895352664104447070398294268713695843001097438533367137267582332182737309392715936221654391649063265444039776580471723244398752577638821579208548734407489282492241597888038620720628894264364455432719428302929445506476102643501400057039743228697215838122929117275388303284990182764204636820987089730273393128218867126769218198031791708540675912432088719341541290141846960281943604520670852151697989885180693203930684947713105923259790706297352536527120171069540333339191728590017741434774807490493925318243858058577159206225539746229034304167085145398092396362987612411585219122215649095298232715460652488421348066079957012902709818223544887243956289284898641672100661968923803646924762426466413626047555974493963123032227650440530445792845671723551573255774963464760601103698587576828041161947480015858100996234309941091444015658530981814623708890916966957377221774738224500896820208025465255568077765901035395994004590204834785662799613333045202704646611284166106737644648223735418592342819739597459728747819374515167990862009730549527425880504614412073861065542490460160490818419441209958787500125620759956008477985414289995927420361333375686636588410926501339987399675810044734701217871296991266023126246703156973601469959083257272601750906369154486312674370116288663158058114813235146792524197954631464516147887519124882383055056166880185145110795550963826059803696273276062751141108591339784479783149095999720386697309618790931236977401109221878454739625518863912584656126051022192528357795373406578261260944592635999051781174189016866545790368729126423730538848235417125012899401629814668001397761580045161666659236593051284542455725785747461233109077344530932998582907318861920451296972914511452413757192541302966184281901417346561885996486397515980161710405190981118153214662717983057400191428664914994261477351366459242559933471786719375417366661440422175899645728900776335745373586779716466251128923857389343032066616721114849509430280449287589839335438999347746303199515893149508054018187838900823769848201368962545057431109316060516855121384966999919868084350954587537892416879925117912953641055865033089625809425628341088451420536576096114962055172740714989429961238967046077235056649437370439052904106013773398402885455448463065662513225063883140283882867478219588435603751870886348430939311408399693685931034334127120251086636187721241873919349170060545289529748084595190202950752310402172002139064180326759697935622617415247071003297938743527223541977426321729109920268586636031484137378803023852826298243356157258928341516017488018957670399080521808636877300677571556143994564416650503809867161109624732869243910596550722415287013416405642445905822332660444249772291703879274113831471659852815534350265542837692601599724586567959632800601046687379037332187049694348129785643985690948401931964386454472679065956633853966368141183423828851611635755750909691194585441615311561186490277655450462483621225703646378191147739398552404401353458521374982498893295852765998962253779145045123121621024542802543939372891375469881112010809315229031336549577983938136917118628348235882193397237519142969421979769833873697213948379063648402514322828301205600115153845791829032320509756339058633617726326354275847705674652087207310618853283660880343848276021203949806550913436640183833690387874904834063946428193039596102910596927469567811525120048179977040587198982829001881062848329717635356767246120804569098409636617280534628456399537646758396352706944589462306437093241409969549620912225326944969425471139369067348715738551334916157819021130028312122910302235018472198007135817591558879500683287269674798925323786234542570528728801898039621069186563621055218799305399522653918211371393635122958794728186919610187985227493987620030032680326743917048560694584893172231793894357394409785259725021667726154025099240895685949562527603590725583831948216382354624627279504184861177990137498242480792271137724981912634397660143009837747846368933446712901364928061369821482792361716707609794015813552447291222614954235254540332926445669145215012791205369591208110767249981760193282378704393037452774124735688252763635425463611367558554302984816242463303914886202035129995494288982116964759483859629994657041194310321303558902427318600362630852293410527945716200870641908938022453708713451708256222575728878533078905227080871716206599201966562198433089289354012388406556985967470319134076373259269078724434356122641869665231555658787616889236635900534555811924490804865391658763703282802329600870649974769059210623707239512001318156096757957964577197129430007205104819944714174928971298269266306591468359114545007501234386602043177645531306936463721457275325612030722221106811974093739920259801335726350610236936362640060560998568955303647345085257652099972453068419443212154399595960379225229179114087127479094137187286692354496549472419849740861161352396230756811758670743394881925771268389441042777118478283385283506682908009547474836936117135484909743404190773772320419476558871448615019528089350871094082650174214803525044922776598551542546153534038575812313955111600701127353844305468116717861716068084775076215775344514863861497752895899373375920108177881049249391897715920781391298964427999687852025972434475387881298090951361147653122031585882519093123981787798755407188977121973358043062142448435454160184706282555442480125315821722298505250736658354122343149205646687163109118207383947973657247756018244461229400243518398472811373036021467927205044530251811003498892544779221306582406891594707587637058382812630527394449276522172318826493306197424085162715271741696461241354147461573790298579440691140309262777367949656791374906395705331318677540600974466058865010022420297478014738873250756536719762494743513743482412028727001970116502538831402164872215429975259746977584107982609295685377311864854781170184909423927800665038844966905960833705548408128628579324501547110142872955775046066202959667788415951084293992270149676860837432587714620078800522606690876202535036441142184999670135938563375408637552455875672513577667917279787250125273954594664155584931209602802236760462224304678679669644591478815083960619102006751929716436876422098403699906272570030798361895599213108668064514292172051384741260895161422877414979216277420683443083955456307225145208738707656675483660701373410447631190585737878075224402396603832857191100633963123804110371111785216068840914099480893348112219325615539607967635678989451053190380028895812385731666991218523358068273120495041456496071661602310046139863605223522515404054288606203230015058279549239941322262959679939884952374427047453337328850871436401067619351882264718310140570995905232546207472069473004823770523502925886851513412374857425648757125901277122724454872245842317538759192699664526956935823755342476146188076719011970304792469069661093774905987412591454905480208836592300144165212412550966154276512117067683973602723046312035078462755049908852229205079841468484222921639626785270802623602260690530800667372022608213701375602472251414795846872504256777377206618374678740642974166748385580987152356990452575113323366054771345483567301938263377929081651746365448347217591755601188029556809522996583857286821400451374239107738282589269331666488385876031999138019656687474385520771506882780881724100368079363495679770737420075472454930771451539830882234701566497063453246545592624420168406418911786052792811649255730711143013885518188726105355169955127955150832987824458399729883559496068790377750203702836755012458029279275582633337244467944151678136186445580069586149850417784753898486125832438031164545153805482755987363072071584357623594713803879990593041534402862492440002210894870371898493231729683442436774848766843606216528847970403911206105377727067442664318580641222288849853467621513766562837760462391352020888023063303745400828620726878434889395556535517509988633374575107764696103202218551115022736250870035298469146087358484191177129733950773277751550214864970116559134271438045310204074366356855124268715486876704311133532474402064794403363382146183023017827990463378537394713035054690039877748201090352433849803924250917144059116393551951224383718995231852120104642860667291370329931669870615590112362614130333557603340324096711731446200953692656910960110919079666519999510121395158118421839270108517256859099545297216074728107007606512646873255693284462996614202782976454110584268193262187466968524003600502210514468027327818400249261782273188989024502431516261526281947476853530669305361306910613911216777567578054958887836326871459452129477182629689700429625530681472388587577910691345459528245786430577672004754397888258228482581742511204178235909066301575488520397682398029645735423881049391918102349250361798847706861687852706006422546984025219874820750702226637200807429737263104079996980256925871179810441077938074400820807353401736982218107252562575254153177211361864942381768359745079406739058372893199353576724547649284690758363788334529444549224583240510224000129506323709671525310216577240763039370727369757306129546107316631565046668548013195950695331668444758360948497176694095973594485597919834943916854474547426860763153255332884199349970986605966176440084989429855041444746509554502434428734224990431130921925603690219867330876277643383609985412931114318149774363286637495785359323836935637496617773387080000885246541609011650813956695468440486518048156318009933916403106885222688862473258285044235477916019055809662667182843811072012993421551149156361447186730398820666388607469027503092056310406877332565169458980545502726602576923871121282388490975721967769328547072732269049388520138172194072791584366970306204020382716840281784757501994012913291413959270282167219010649668273349469274724181622996998270680411388188038453559258089332836116122671714669343036162127209323529147347203812583845951028729424022426212324838203482277805947781608332970422468906932454425221539409190247207573092155217512582194539186663155485695033878464885947674209954696025266301966463123467914074651210785892295213609004741155855486184342925543075164750761415057372888578579286765535163811522294799499435352949224262818211152376546328659388525788955923382438486818806888667383583774517870924490015104626709240298754735917274242436293545910639499230200813529541441425939843945136449135012812139468250837392219283007567849568403710356609489718969898240691719081142729939569538772635986749510721306419420982884377105691733703682695152300488579037219366700885374326095336563527712179311233376798061164546641631794938235831381540786602817461216584994785277167745576122335037325070171808708275301332754425375979932652155444439917367733020935065154834503286231513702715875451357628116643185279738374123481341604988006679200176075284196774690109145973507559265947858393158161196460300568284828950970790696398107348765437876942703570718361264540703689590109236097304395626267239150775285285250591260553332186398124727380361108134021051918450859508342139691808692059539161286984682566027976217786393417734504626405286074058857356339192820875536339514313216881876810613231467953236890715470682974393365880009178047788990108934479214833916695635752560340980747668023720201178031931993090867679212161587673524815622241528800629851384236207655759632479079113001692651020553627349346700570530677864774792936254415231720161611933099485897880164807248822561775939901085426316639982588508248789236004233444605951250784897952184359464494402726055595202396273640139913144270679386138339821949101091414521747617030347138528573397883888554904765064756474210472927466941367670481467612714234128890214473501444672003017670636831324372279536269456021672204606390281993315456953092482571293261594915122837941958535590497978001322601254268425839247222817684512541779710131581182859371749174130320233871601303274343623314783200791708736667708561381222020683780995495857503898216088186860073519540126055791548148436210549055440648141267395908228367698109234234394011405060907370438764115769951725947640571121046585046241763269988040065440216038097128878574846457874441503566397945019456317530811063133168941548727394210617915672099831299049898526080302603877821904652473257274460909108255196847699770160376438241696888345969405548890849376401305030027617224870114645629231370233449075815137231810524401348450438981823714208723496025063682904759156087050121091186289448909044957142543626790906876937297166255174455061673854129849163783072646947273232309256299892263290184421213225724012535255035797879338584151231853221187736874329210689502565841419146408384132044485373710171853467031178689448240241483652802157624734116560497136654186182043314408551941251733858702046102481391999103524732693435501472972809686890948746224711080306970147718829639413083025213177970088049660168122654956630696237012303378176815678128550483640999470895341144740911325691788313511783715371162753122059133341171442874694879880065372445510838520787174518698177430184212487464902134491139682668773831332519561120558209325228901256562930226761469927203566517815025354287608837289586952927676353299492772059768798464572769716127246754628478844236849129284422588643975070864990238778229140708766529734361644267920185451307016227724038287868418570252995647439525878763717259822796110552848700089091180464627212845449132918029464510142268287602070369338284250108888032486859689406400971326649294133722947959070754839904718151764087587047816628928889497227560624280023938511400718135408390817648211178710192808002886459701358242842231170085146643223263619523269206830557921568833606499905824182268485670822810168207887566668848134137395386739142223980145494556488581930878003835322671517957373196743325047821620812551472110544077537459389175395815643024451056370010275282955526939591256575958776855708599294115521443185775184263942544092566486360012709762777983195233960159116394713203998951872858527300929212282172811659688709044380843276759255807806207719368865036348147846417100619894063606226430950795664130503139026879455201104546782722732165815147843675553180909139249650476782002962865363823056817657823289788071866545447399995611124746016697675874970712722390560819563522447326064585262388608700068454419549956044827335424596074132685001931250847148000403010182741977162348942943244913004836841162581879178313985382517630545631204129306914027542175246351470943263754395559002971715468781672506907662548608825881950197091117518479739996036927642771732698284513426108452098645523736483706076194010909981897763273111207683800792279249258263900151017238520749991574565556737485478417265124248321427808015032038851219979674212633763009951153686633809816367388119321339698521206061318744305770141981458503972368534721869957725718462070338829568224638249280574531440205934358704159153623563065892820449279140220249274865311436655888733746352096163455773232832253813915106546797652918309885936521762829650181916377049231979341960571541039187733093691340855724099833168078976832317737323212426132042533682896976122921131227821971060537679134085570235432990567022099451400652870162364772119032701189317266349511143121584443659387745262775488712856932838240318437992137725687072922866072668957349430837336666750868666353254751661957610882766616018670153438522150687835211187098388533548772969116909352593445630665306603346247371481359764426600858830919916031161794038610863977483360721361650913281242023759422598209658061388546918357894724868376661551956834269758633155910854241414462007107932646780233991051978406341674858121403555900326083033866424430416176287440702562534084179267424308321640765165470147548382981584393492656749507609382034067227315766587138739160076046475596471354029521705382223830540867075155053585778065762869162541601523729342192168849867426980573083882804549897647211381227205778336619501765852356156515532268339186052290874910315327601674305911977134817286629501936608918668895298880786019650145076054520417296445320986337865689541007076853689785504383470839095682219944244053525399402609665621561881639927998410736821630881584560924271044383812239213460578699034976004281139452151703325213239035387225064699880612767725569248495458696425612312401263312170510583667087374820597364110547748739341320025553337492308094530898061179684859019840869488687854044584593846704085645484729558357180172934662491593683564819926365149365973825607623450451679542863880103479986089353961591483264427449923205203092331837209200086091941112137896670530058984346857901342844276447301761654645531242734274975647373113293978165444349864498155147906461745763353765362342535081808878722900515782741679422137388586913299199697542979333303246705583523574553560484703140233657602404838238850604991302782865185367102212579691105788698640725670913671147527860118638155833032169466610764486298844306023875876362822518310607605343932597368972024644944815733377056140023202713563021717642786819138286965086640058092608976214021284258749258809876533046452332920085660031882941832934964436979966840286889391940933139478150037340931743661046426646823817905211189741271247199270653857902152370817806031919897426432784523667254605636934085047335784905443989267719114803695613710011658519696710083230528113280029330701929203819847305643342417234149204972722200067934336258046604562216231385770289132243506613014353350692924535431637679293943533946324035778788573011202193347450512392751321725455978051748091654324067979130220555103436391455911289675055842612776106344720411748427025839819109819331239929966225285149015792655474217441628575091659872934974291046877317512363392899950165425969214223387601158037305727667282640051913785465773043490268484291982366527406400553438589830388705011280244231157529443536665964375940107125763358912845804879440898492956009049985981675454107599710935776977405754348296421881093518271093719183604889186716409993578194319865445039241480456821533809868459052931103177274240830290588525527244966900195666306956210107746512592473612444709630289592005730123939010908335752759222523145533412352704253859766846155110846045249251290773803294426566379754764954161669356394025641035351043353647997079143647202245945634191561229589445507577505987382658485258888952503138431790942470936263962177399817697649874891650745416839181058421120812862805023167709916572099814384446240808232647417431942097403503174857568373454412966910669589197228534509439515158380103327445033652274869147259753626769408205746411002513421074641400272535307562316288681321774257604326807318979358084529205148464635332919831742325722433120182803589391108718477518105446195535033552497794457141909716239280140641584389448954821514697130007550866545062020518709930039749965832589269050051464263696728032984471831942283460179061006418157113545947473976189225159743194804854684891909926389186269763312778237163122289985459563852873519215551732766728776800969343975020000413889979287757631228546440094069598411760099140351021698333631934784469182498798140870509545951981214490599890917794191170780659747507133751439033065126973718989353407684364754628035497874831821175326878721192618341489130798206178674750252025265291229974175983517497100914622076094638160387988018892225529174271673201657858762052084199462786372160970507699434699832716172064675449508942886959181528207957431660431456503098251793164844318525038029850387240794492997094497422208229308697144313257492662204362010602370274978981452907638536281245946948683227582201422729168385410998167666020736042115141145673501866758134212561351832741009241218569013486366713553756612037453776582290144886416683760943019567276424799600456611653582354940092309154872364792538127851265631575376914848929606218265138037106160163108725332179693115077237489801522442774887284675993505896395394922079073948093313569645921951013174771313877879678029375643704134388486845844005057014374915668462397660972394632840058829349577811385859416136985717527892053048655264911723435282706393140767767286502549748637085678979666902505744271473018503838407290376273841938501082170563173685110357089497246582149213934443301232982680029348743550266861205183723974960661224954093794754766542286695781141348379230552241525634281313456047528853431732186232348078162153274834450766605173225499322267694646045224984970567990459766071895194280404948601553028326402551534055591704472904153569117992781108279283945504549383984920038469470144207492035250463886565499319117127595079899332981008591232070330941183740660275937224189317861189142043390159670916744328544812832559742714146239126030771095555455710356829708459360786604287466590384372965529931941233744377042451190230120315685152621265079281101980308002316718149878692017862915100199885520253145042974213307111375544623930266667628684442916632986389516706755457711443492819423788993548062756716849627869167683635857933605551244827035900370016364586153433506725581717637451697535248922283541949814665533408853435357793685829400526470151577143573154901895453875697802923688657351789870484094632591728834759684055613512604664341735897829328181110210053409423090776720173514010536313179928084968891193430081378888736689468362865847763446703871726020288056408403734392874815952888371181199740026391667466873966468575863832368586644062589048242404839995667114281734402143073285942273555730238988517416783089209943418895485918234827130480693585014894508664320536231587376206438789600317838906706189993108407264159713606085943068639584551437131127507854891852002376227033159269536484244964263268787645491011166146899514081985302307405443230525506982323870135463778872342332842720631488986457774224420022722909387612345444600304100871080203825412023445165158268259442279472015330533253369310087521500102632031428295191207901483742914215870411213922276432501889958353029125874976581600542539376606227649306519495190531411523283190069582614325691281639124728510777934080072864203669666296934356760479059718980205288969460701110854279198529722583615020486692435886940390210565413581827997162882163115295316063104811405340166462904475858850926484443764917769015528239458556847631244379096481363191274382441578140394096451613963323691526751307032699861057132488847754471535978332259399795778555498490194830351070782845147255625221836357672630129052233271796405064378942071621689732447658753589005208406209561696170044877554503057468799196284056130821237912926660081391830197036866547947895464182365127874976800634956438305339918788698899065978618176097888674324416489146626825110976715969782495000063728451384291088489990419834559459502304526554760458871909811019836146278503643568215244567335006038832431360634958247412453991224353818195112130632857648037897092628962791290789311842868487950164143579669366364211433246286518858260615656937991364017617956982404940452266042119414655934192420294466836779340698116810278320223552412682685158011076765431169878720952088383714489937184676280606107543368024652114663280217981002285569026995535991498071213424761069002445878618802827839262808655190691505202623447870186051050412041977123972887860337471090107623988613598037613970929072942726167287646153586638637521544669665516796346807813626714458213897041105544375429434672788198440507909200095044256466880004724463041433664387611996156215678071657421055697452602533574789619928436559271318557547378509531878027725589424202137220691267309721844990809729877684588989494310108987951543297058405629920108473124721970391217715469706277187255435254165778186813879692425316692324472025112013755442317112642339851337559330304484684949458749933295712648829450601239584746582653614889955125372415553375218749675557924644295548068112337425632095980495232675690680249035125696714068984881094206367399618573782114276805601119885616850223891889037656331866260411914009732588629822424071045083584798938013247844583363117604870683760162470080287138222682628165326805788324277344077607198325569151268502912620008750524395775948632415477398854104092703749533377492696748404817475972771296564029978338419256796650779565510585013852907899711317397397474688112484267824153825318698220773980225547081480570107905674594984618467042690288783177959634959561987103913567521404557432397732506744300505018039531625381004755165959611124927150828706779179465636635716364896232312751137997508526286997378205826029729692575270022341224800785263632813773030780164526647023372376340510330285842556144032576221643241713798567125822252086931696555959513436109552618529316972726765347761865917567574497406442260929291121591849051534698783144310992507504586581827371601219367671196264583736093837939043548647703193970784151714631335344516012893711690593583615008879927286412133353598193342231702684971355839310425965829704521611998197044095824483342544103742850865098354022887791755313333853101685952773349804105616727980472056165886284753685106907683311739506612091477532911415937337100721104594098818910554366257608423436534777817983460365113761614817218967154116244046578903229957403668232954521203074719792786557307470428829566229290290104620415812308251270644545723136533162994984120402372649918254143131541285728594741321008420521883013243572751001173796361668093092542002769616330986216403933025007282059304108923669794557163692918551643749666628260779732646765716580214979975701892665162574724709320312554096513811297349422638632853213041433967972653016001312416236510490427652044564702414728831405450562510611362616159290121130541536880033697342882037724878985423523494178089177250035037576950493599127332944876808477179536668096232775860049218174390092071472143359505318482516635826689416499617616640940282219266715248397555987143992764747498940674922249633354033148804229100942630085997370305276040019942575883855387846109135079664594124435165641798793198406924576523087488907586408003429486233026098525461449001898642895125297681031111660164995791902791257065089168924987001042237117380607072778118436579870029164499909533529675047010462637730886571999238130419654372422906373284815309649465811902475915396149242031144153239629424676211711965850822385759401131446458736185551656964339691980828942383309464165682431767968198229165825245139043064239044927599021580569657530301601916718739797030297967281636284683191435158150872211527564553197225667679184217830076722110762746038608499989389729755480318531065053075801379698026725320354017255191006126882206988708876296542552551225755561033180414001638664364355995723800663747858316658698970608447362952412158973636210567123921437462806648276783869028447015765665923310241348228657110887343950652549808453027475296749928405586079066166950434577295003890823357205234068197584822025408684038534509963765400076315420983971849688096333311953392745177348654066995853919837128844167535382936549870860475037042047574986488666838603402499593476090684186997499947950346630648496413484068107675033909769314377161074640093246997432996585031248537235646654553324315494746836664532057908098084413963361847082925715720325781687597051121394930341081240420660770462483909383237015016036152295075862063568358546479573522286328574420848119978364722573121063589950649368982481509943856240126391934786842826770681912090652567246857507556667149656910590569934478300401620781404332733326741392871943457636539051944536715996067312740547043562221295970695858121107356767799697065608385753595805090012080344330001108658741700640763626011726015570319166354190134683551801803456255062075744079940505746361841010498442680879084900275283037394645134272043400813967653424080183208494508089910021996278400529338621532127725176658491377634477456553582585057787145390234571681437643908539751865070225920737646403104140104755035310311512536623949628478737945707385801867395375446444394067637828051087921247164234967374621516284949304974870697454745791500828820610248908425459516869919369161402272780710460328009748763927341279146892491816883583335598605818601392094332907281528380519356244588065658611413112119849979936226945918637238605878601245928111228707647416777974294838656186506074152052295754251145467010544354223358734823238351153599087005467190389261645438057707739536377540590506326491181953541975033099635616061482675454278371523776203523049673194817240519284715232081541885049092910671855043988839168573667067294226766811279488112350066007945875424424407735325538489117098939540312927925738871996187495461230262897718227047770067444714821824051666123489337370460154869099874754416747308082511260416785017618404241807479915742868953457865092118459121537924938667209912040537095134889507135857015331379293402029243977224232711366774464470207302953318209994328321973136433462537266208945699311135850427705494904746014294453463411995049613569499017563543605650979979648225877121542540554865604595004117691936004281718386986812022610549720135127494475892018200242575981836045411465227580614989991033800287260134533801798789179116471274580000132812015878560749351395296003283974247385367937642516391888848275378707309269439316020226946721178148615871675036048800950250308744139702722082103070619485599057058944520541354014348573769974507334589524532276763947146780080162310012626657462891352583849119926449897347129029827150919992735084446036165947065748631276917517701006769231442105083500595929168441676626667971140556668454340362985141727228615576555128915125831384280131931802118804513059975508464202674640389335485513476309279783949476985657649129723643460706850349694550082987409533727882395589280818056567629775815500326696779362007883891733973631198257908695746254944762990795511941208072139874111760533171197527306093042009539689994350127741532297876148930220401902046790972867395943300565884649757383427698493394027310837721515982485444605624385563478001853057831964601784660116184452014510641742156350165361593137805332416519324638282306395463330493983924215656275682625504491994675806949814204414571030213456351702955479522779311639647951055816089272196458187100326834165926656887934091064620888844634969769047556897683533228858388479476732430057289084628089912003416970743923676551633883766080060560579391444400682309814451500120547029340055993923647332655196762979431024099268775427853089743679566966979253606642049856094563662672660449983530413628282895537581776990738564207150059474637451387873925531315796633746745872310376362486946991917427791536475130850059774351556863316058283162956329040627498666771481454080255137827597871206001265834819409093228544842939268344105519756603591960572770461628953998738024630857068035228432543437922736827385802267930452230051706337328296862800896757501152620650901562780609044230823034552256094971529658043791448009940083940201720928109782309189849230545815019604044099322785751483723364243913043298673788565755857304347691525506438609461270983100920208900427420321821062314699503479057464523452354788065312761693816072059270834993036081828468725845058564158072813608346605057203264878752580204119208508751901716970568535225489565282183986399527847241922907033302874530876589532242414510094897661240359770454244463890866571790848144184585352215665011655826777967012981285081313993852974472603238463311528731677390750356328329559142564526008830152749845474379562660711008650687678875701354055126947596626694913868794663008666648717137928855357629911439575243181364355094870789286075924447031087297332968517102497046095721236283339511542627777670260491870185105922404186971996732375075426733921840751324711870867883278967390830642086698401080740667058093576317863085398843995618034102700720239755688387195092282174966697098895013546211826689852441298704706303013514413239209964071178962053130131534764949395027009229401591089706582512687605684885517523963221093761294475028678023005111355013732055919865443788472994311225955851378879127034768334455541037625415618434486487762329422013266648984238070680346194283643992929900556159064060504253398010035780297515908722309901663046545670472070456814388072345930469997125368974181953691531393170290177322269231954386597135133215210086345732500383045874455820996085107957405561003975704073225781887731512604111074744241030994965405174651163236742338962719304043578627024651256309432527480272774120741056857672163768326945021277453391334223126065035861583431761316582266649153925286693746375686663330171397516764629335193648349158696701805260096746498929360409459362291275078736690591993195105290617332196000144939426391723702455347618028855374360390923886630413031829768512226117363822686749435922545727184148570331040830674119693359778767885562566067256195381995412524684798391492354091118398989823830162700763779324001021019975212408468201245043657540257864072417424791569539900974252547884681886214334207746405807081705931459003234328610436535634265453866902018093994638394832827387349550561609749749885128208658924172218477673607513907447956633970369756115129039260007707921155188269108017169896639447279375319198784094714704704738903857387862177212615440209850629428144564922585480730677313570961917989428817317079794304912613394391176135414007937138028135638578691908531416076899558663449167084903364370383957563675742452700722837488326139214306437875707850842217318152058199588729383725559558156560020173947341418014176871463758057260223050395133961621336745833594809234195101326516068063372883636025576004606687858950334054173431976249340693844319468350269136395051257161720465613580229496369280562057515308977915858756500373426739377451411933255834044268641103563379803845206074763761778186181873395480938216966669357060425612054391618599955929149385792630626126425301620956634319936867663290289319572216935971118371807192672218903033605310235090575771960298021864352087569729724327984235303207508608302038241558673816650993688512203426297133787867968625726988686348895516349242835195159994541519033516942708400617465915373536800958180723237221741449309099349065906861268041891564695080001890083135589048927160866119074701249945466749453790040769996635871189370641830245167156261318855228753960419670286019292050592320801028054037255537195426352065943237829531726772218654813664487173704650316739095466182798121517090040048990212717940382443615665390992295410813365407742254839305380217822956636417464313595702348293362903864634296515781423536630077399529969660788782440616059043568564238160361522292685592602530433312597939248550216409617994595344793613739611192815088485359489542081712555972025415440476855599398841509600722036920926837449547134162655448690430561827327882192893267399747750356728931888808889351341231563399129385830435823498615740075422609141404497353368016559115400985909361387895540921415405361609547759856399663669654555359834751477096833313708256725563134160146811425799380361379432805141925465363736477416485028026060075215360169446591109595020325754186639009083461681116289587999820641219502311797049458499812946783054757047384649376478771239408766925858319084565398163786837965320530146320130986958899277681742657752914974515808008737232019210517373497371476420885033868940638145994600166421389050377075054780993261033723599020009941889169956220335593719398428183867697814922260224078121073889466291024328896647559311881332607142536572660158244480456151712016822267409086924093368363164504549652441136051900453385959918815084617090454497345564394701767380317088497798054508420998630530703010777552191534955375000664693566041001650653636269955549499202852122814318535296156924958784645739343131592087698650670724457825768765064934598784161530586439121832498748698250661439693305894127558731275342914315230638230644875631614363665232797953303551998453909099945027466362107708572698555335914631247763329654516737211507096837689019734508468618678482122883288900057582689089582899999999517485863398276331089803785185885058518383006074076347675057741459075101876992242872798643703990954131453444705850392246861400109011639757783993953111326142275191885899249837209389973711716483297139716236695560726229866278079850173676936812793085522234900050932709242170757730822564307197814848366641583657820476660944806757235994846778255918066871855102293009584963836431135636107428635937557240308044254614005633703600250581452086573176784861930862838801338262697390652886546811711880149091611661035861126681163972813708239473474584438246405140600743565706518100662078520421280677785042907637143646460143337656096999293834071671228807061949996242879424036415563858245608876914209454266281514726430538791604632465134134244341691814873963742006022447645119046837370165741980546862539338148597580677712015383846900048024172617468325519609276179575460815360634499176709079959625211008171686534952956058240965626523892962912995491718334638220798940525217043937432889377387555144886035332638574088631720760188438877932662417389130260656018644119763620504556037101898831542544951072627314482126181946341915752227510342110458785275370821548190286706362421021812147796149549474710858634839220675516978050776642214478302315542066488322353328734931462886216442332129312047763979186615641087662080674520993986736826855106069792146508263014498055861611847236933710907948822673320931607411192135290712794853297429306722337482505525295455029863055103755580438287707591259494661030218770539422475915538324960572784740599656277439875028111669995755513178170772680208689634422971958309099966273223297152274086628181817309771458404827242951457789934945546925359565924917978540628964344161110231368249243634115662082119227604157419605969967219775014069544601651218770728972180312667288488695944407516178918726469300625145538725579344345983885507084299968645763515100947645924515624531241903983732945992656327036318478590509433930634479691913441458220536959992978404397098951519973180231270436449758824468564977274352318498863594904137543797643249371289767365525854616194986503644565243184708484295139719650328734160532938999053177303671570891871482326773834543370763675648639549867880776437217443936752088309235118300031356617513357439922712841652526958117712243375314269979462432076106072502988342736999810407715842230980504644751693219183524477034257242614107215481755348557523849945973439270697670034632093630352124340126452238703279142280576114509881188967049008121320403005051527453907615670615600982241700879949737815715184276725192173829262737122182523860041619128043663757823436386941208314730513388182133241667104359799244509443825404043927489849851530299858530090338134098723054516774452551745948593727823897432474946565351457847294703379786778823921837631421337044226540374023767183750090535224001260297785110982751276756396084986965978696939466171026723350437536133327203909224917456887868373843168148504384976585351777520151248335636232524239153541690341855343743826899611970469357224898910265973028783508975465049683604754794401066973076957346770288691291949481670277151051452775148974761494792923369734847410607155413896862271491503136243646749898768005669871771771309749279506611286390948680544902452433136534280342435614431373927875117428469994776246361517771812013456335406246368967750932692171281228870538909052670368084513391240795770662992503356034021024316682379141157524525827124011046629765826991819789042779101128855196741920721898596335612350699724351837254147832691756893432081216733212808072927486343492212526688584562211280802118940535912186076577552030012760420658837777198136910324282396107581350955487502237007478539005953141055240289705538183972124335862573002932847608398418667540701687287857145859284697754516541389154413001762449957035975098153775495998921010059941692401023734576954044732299696932072960175374929708019109021145318661735399887936899627038417275292713499386749970041063275313950247535625938381613280543038923403795901082848630793228621570981656622566600130384601595836656081446302205968055431222651044725122954675328435479008470372199113169200436869073911053940033529216890727720379373235878820088152691793614291248089895496310649897916896323102535137375788485536519409861948341676387665951114336062912477796940810874121860170161086279509702081901774001203583215524653908475913002220933581050847191810934147496214479934392217250220745056056916671184046314718830017782869652127272747432528571174270453119157775315347152302595853602435808090465017306549120019578288269087547546924956648067381908362165994882542897165741488884276334964216986953069869183142489215330116459388028439451813274498896323148254890455517432719250850845853415161319312558124827070602709421501641821363614846114356997856268221017407073559140661376639816732273437264394352779757008855405760144131506752272522818557495125968992111151916787381009345492780780712758826029366991385174318394739276173854585669208882441060355815858744340530906252276458210945490335651045229073143091980230541279041776292283057883416406466758147251539583244222084311142344619749969874701035244013125532542500348694726060271768122774188066636341477672600919566217916279699201306457809930607056609210616402650726932965403203669553883822854690718408724171857678081952254749384577170657018338964095570999943321074076765251745617526291416862883254627849848145844333553509982281276259211777116253677476009937380100643004121252278169928340568991618031948789393266099001511954128789226054254600331277233606526779773567985371119463638494426456402806711298361510411814757121797972556494042117638724945941410836949649919999531552744817364169645405289409351911646900690566141417396012827453479545041532275666641847668732222554789783154438580425844126330288770311957883726324620747804245426367726529853821650084677368312485482673328185765756363764903740225344594118281514949028056710545188602459409205899180736655434996583559377092543347695313041962367961376997201925417083875067648235103152490334762755863201339604701259573037397595619473450329985787066872705873664116954924084165196545297487605537309077204323519781840987873283287858227105127156502239407890850012391052665245054930915727281234555146123501814927961460643896609471382755204571081188198002409055250086884870502130066986522066960831499127848988781454870428219899569345517053052005114499220089370600048455005025869397718022306740044388207111887329035802513187487210789716534363918471309656004862832398141122715873058044945277321397130484577317226264792173633288278237239403543241123277135831961470211130693221885510288114468008412383843795354550833949004257279341445081549824078666065259117976418854418901508728615194900481507348505545619288241869901153298478385286642478617142472700268695182472643776962453430039338468094249014397096172165888124710565660276790612107805696749892813992662582795020989984286236442765918959085057609987182699974796981852075737510246431222214341109958194341074256480213092454889557277377411663367344860295749453620479716719295533089949395770519622917114785362434884580998753243161030741838978762131713306458896035182198391615699022048945661164865323969102216858341518490098913340407407636510597513857934135125382984354628603863251113835117430665913334040455976818987349600477966412769372521656486336197110223498675991997652474266999385733193809861599017351196773540988284504086359929719355042159714581196230367851525344878717403677456685254401516095613037571958690667516923508908490194401152195739832903590950415359175149691968872147146743068792811274770393337989138276942633681098758573514122429369549525521502460221425909353483241021110964402113550145238073694083949230430175304925585818259237156982751790524389286447274794627390529718789795711670107565284002382278866960980007147274496391525777058027671906728465788532479506814622155057755340960306263527787730488308641387027933816070370959003172069043634764742423172133730277598773754081228210165916984293335759552385761298771607707436226996406306381434005974100247433261943637517719896376172732463691783217593991180577781523990471393117637503813959773919744753393134233005479619295840251012446650206766153429489026713969342429572182977992879188213833729921304904324427981448168980908724074168011534700037934228252253290845237086610070872441309747991529704415249063285731813836387218413636706367306433970018225985670460659217748450621488663856538982642545072106494877728529784073936644691003001861900259435902631186520505614292463499988812179816079027849256660249091768301134662454675900312822790677786969446038655442059795369534635139976033472809485643820678120769365665858366442937231426750705834904582725010384834146794740179893216377106313791853575086046228595258291915250031184645194820361283103774902873806000815255790347152289684116407232356288885944244525639042838668948177056542495337600092981205452393822605023053322744452930790792810717193766655711473751389001938295881507020181520891209351467188510995077955410146226638431012067642890090712363517827995521007972129630950841564558109812230675550212874855070285410114185053311762043832822297321646027037210159704913875815925110810453563793200538550758432576708247596398278682784281681338264336916733504214512018646907580330293715673270083753353579274792692109424738437891962337331854918269207402222573874217493657656811964983440919014876289746598545387797485382493658538136364828986814532939241531759267645531276750075740094469983448471283877302562520317354203631430802535736563292901479571592602062537723366175193849724616358694431556490802127735742457129067881999883425383240605732546405538014870328738263275067875494296499022606893628247805265312745666804331667152746071626966975500067608834130427671034704184328662877883727445244043035698946803949859715539911655232040328250328405797222260959842659392358214577207967221756102245247933574573320454011895653885932720030593470761221815286014596736792183073732137144844425441079695351544054878840953503303215575264826761810619232362471883286083502909901682071878029786898509170981793302874600585582282755075462645898953805893348155907155159608926251178440318199498866699730773410882578810999104269901908097545031774162353365129278784573591087562117897428148471723232794079153488101239438544738300459688911205326776526843114564035552678787860720238535081533281350767032835631280469786579607586632662369597289198129554777198818536614334915403422271593917618015267975551985730686373999938767129469084937334524581181043449382921073479362872098694240298119638364171452321425895236730808175294273268918452592224872679754730950304243392152576869360719473939373475811558282063991842779396046382212757369495933997357633482322781391539410913306104064453374640891607051168626624787386833947825123420065674439955475142504032629158758903175202085879413617501216624453192717244692775998333468429266387626874875479471333080309159016235726626071225861746237169050096946218081908906434427573272134191020241937893938278263078055686972060209750973575399759246979023637332635021924047861101699528398510046948963737941919347217145624470125095017693587206435421590706235482862629675763067874620915547865239156691411689391362205200236200831746008630656176758521513964745667809498410094891163229034202905727307531441418202116164991061597387542751912150472562141510320549279319015226942206399911264013115921645896800220516929995761208948633452877895661538405803123919828570024502396304395779435013149139450623980195502601077927937218460979225830509470370128170363029685697709043644539794841032056924000535905767703913295284761117242437297247765838261891882302601796655764252852707352598715945950581330547620706359076646261456097000269360674676654490982349727367593587300476405738931006672176139285265663383747773504392845312918575305391395051593921663254384323095417735993995889996446694055489849821416053980658389284224375198089248444373579707770432519882459112541367187662385801477891671333495209263430870449502965133331449645306537956694760073158377349782779241157846186667105102294906533655478091858483332162715338327179301134308404790980976815519120357353308939791735689823854657972914088174711148157671539508125946358607155864150364840271790265447230580863996965588778277481080496678495054550689246990933244453064446111069770271969871285607559028428680395744868972698736855082561577938413229457926076433059287047332200585009371636898959574934595757843567481635842427064807291506511802257304051581166194786910517563901246674283673373758200125087197690125374174513098040521929445148036597490621545601103780980656224128650240005468866428423795718431355382770027307398219779051465972459448967485978189944682893199967125642830757132262815162703649809208829333948058541016681845981770298319567269566587462990968578202189652515371176018980814781196920514819054386909601876568824404190800491241953398480709872569873864093626395670742875838323200193223444673261945370783046466804017965850806602605971445255797229436272842195381560190998338126239228838725629153486079109293435008328310059359086424738000636253912151554639195144476891242434806276781019835451285096276951419484205147570765632653779950906812318691861374374388760141939443638792347207162531907422407899726460428070546211342016385817800412548679848743082984535946986112983592015143730806170235913213231958352250971057856818109000681349090880859668639323098190207450154384411703669512933128387389247296452162698693105460828491387672069046472255218195082794596222713785638132909738441388859162617871550949709499720324476607068741623359878622254248267539245019722789242442846638383161949875193834981068102430083790961363753754902484084547404730365163018263357346302876197234104256209028861822625615141016598818955823425554122164978511975229603588508809108601286289553447682175613552362125576102468452167889348145400261609009233034846786279655706353150942770468614391620806620252859856693183642266699467949462694879464202051974556341829469165244994168134954804711188195624934639756681114805825950860793578144966011668950514099360175971791230739918045519223487748758943485400614747713485985241381530673326912608828558820934848073083471101002924911137958497189059674015138644506226226535390750972537269669824927211427713343649492397111802524491758860708411864881381104052035399498131020852528207465706521404324865878195631984156639565262116787061085454085268190136919343330173494488028369345676410756596052842331761758799972997706419872317258599584235684132313961644456142198725324721645991355850140167322637761270977315678814633812928903974589416522601805786837241694185164369759839569306397066052124065490370815860675573979708538002896296568154810732811999824006492664753404285673920892381621745120728407263507937088638776439078044847628423021201572909877175135138078293749694284602800593546732827998091811230085297472118624713039639615012512740323650191401460790202643108935328013147690762668703286754072387872680473827629380520883300946017566316311288855837631645577938104868293651715056716587917205021059714769138641058347222183889408497044827882650324847438393447104398890161702062998439594764964007348926852826762682351516344691791919154286460526953835092692566435787219090753889140206057810806569191530142497805874487006544155346264213718404949539595579066507974861103622058067325190594184827643506527948590220934488847902202673118757316375058647294911215062511665317909078411694071854077866657680971748478664277954345219667056697475368142287407537157245969762498213209857307553847952269092534246040125860577795242776364203646904231495733712424694717208402496395301169724241299573786562720740160189259008108762395256090673472664702594155485214889045138629182617236646975508533506048851101224630678114808475420683975476673221985737624819219176141198404833244721249263282887864541581698709096511719802006637303532002162764513296545164143279290900095342321665652849711538363343600012138848537890428436668794422244240848506898405313043903592197277431525599814204096737102655812596479127322996392936050662693889707603080454672870309327298405025947668240601075578016850774741408491249077594604290367047466349704910391865801416540228360350606574883845094326337824325176860274592833877745084996302319908815268845996532661970786727704471809974423934979326481978880035468892552318477896628747258497194585392121161274769008979672882058784864814170767952651776960742739295280670612560457817631977108871540259390202957490510325490025202159309190574505349455727931560906505706402282607505378424990379823088906989901380651446242959151136342766065711627742366464188381091841173362503761265686718356672528291014382575370788248950608254667706295675059099660076422046659944218549679835311980067360760048110465857098266131967300540098922016449432407749132307823235540028972972334454596018927275012140298836415356252729394039010362751581505280507111587339247267078664427934379417261202502506287609069585407653280041552086097787597518377256933986393635761395728757181057349519047108730221183619100542447514848930669953126853719315552011156260206167370268899248145266071655318136670573400097839124696714010161972373644302520644795200242454883191241922905739524380879775122334762916041748671918732545198089634030689893475060113220143109891873728020853223580218893395970561599051803869503104654648344693130032828866529211640300873386951868556280400048775459003580593977209473391480018832506484353292315949619820243795179281611775677944233775655306861664666198387537695116789801282316926762451131699521113713593666733366360786238097179867649503750437443242884321238074701230633758562187999836220530508233422229200145605219072426518878266059075060036218081637110021690316932303858757578898268413781461486141852268783054771810868880897220350742515792568872174374099308446887165886162383824654476705455740469316145796972395509340201974523910103957987526862638469851205731449060108515204387940904784855296774950957801749665894928505684598104141723825905448181789954825127103768259359895976310948550592145709027004831120182603681015679592943387128462198650526649350010894140995188258841791275289750226780511119557769490607645997513087647809003321540411898444718923351641438051707599371042379444062271185251762938241138283681357541781384496459930524151155117497212485497740224808148711732037387091372529302466445288128042326960511639656239764433258967919544912814482077891859883280558785125634458923438534895520150612767785333234032244067429640669793830906133135295864616908073871400256014385438008163757715798308493567925680854153439002862581135440769483044937925654948146815763188796724154227419539156339075094249353635117563632517510724210496885436042086012367163783918215881818347597422367883257164308632203004466864469530314613971505317923659398892162616790373759282288451555257358306502983862524031346390088554446571108648344407801604158177092051785448585917639458018843330619199572195554711938245785332696803806402014571041396523305290240868065270400262595366421460040485542400721038317480324923892463984444389875703475145141070507115146630622420381158100476240935563622119092421648397752675474688822290077605434743695885677166488288393488209535828346607283898171335196057776634331380782963229321095463631984304368909810191109064618352793501158933561691617218436676590586926529162859116027798907803756070241431727206779549185201930502577542459920815137705003385253111004415786249428818344877680723321114653851195095341066671966642032983428882735218780421529276539411160029439443127856006954940825744590163461092548033732738750003904458021943935716666216731812541077291470540691859157017931225062352284783501866813376847180627295537278660547075764644418688528508988728436144063807916038387968766256011147281699708160668252101155077049146887473926621218661661193794475146910362437666373705162645772053653787499599760553814848498240957619256207898917607537218556498737516230964123188899228664766077288902729714684004994472940884950183614311885819761521781848794456690178488519280177384712940007633473393680385198124344194112552673340325171546494697476214007180081360320307632718731136098829716806153592665366152275644734704363998651257803913257890336224351272808654308010590968930020942267607289362563721018587297890354656637743057757670236924382918231666532223675345626111023949438886000554068802595894596316046609074399723685113316427300973733136949037348696191757619781985750917349842491321537995054017481507150497325447085577004265629536492798923837511987226412990005179242217730646538554651451744731910158314529614645581944336688351467648028479682921692861093722543230211784554649252807561335071388743439698349065614323896550904789031986736880462216577686559716984134882659862990676252936078907108302961004570747142643809942033019786890443521594848092022237001447086097418307510458156154712595893289188032546016971999005681091407546640814724861678326663483860513612066326303356162296367783749820564642281969556402688704561746230661984429424442397260432891902209233370027646459155282174577354687406545621274024223101827405685453606737031732796696600146757921033090427546977133968635467874524000067804164831467766170349637253415380120468482441720517900138899491739000238984589526948643687625147102724619247367095414696964774105751918261756904766019131445005673602039875084198797492209379991092789928375550977242225441394189296686902387581231661974993652705676597504244377268776401936620537813342924128560947610243857298825909805287921619283520614493444886818164644876801807090361615195461946632507642843110355699548526043341724958877881582575886918931024975473308573261006782892130718393300241351715987073010737610466499064806231478580195541569051841252449900546597287672105813397550204741190672655844836531778836562466038854778696270104301633443418557515383316572613362738145357469684738652074465140891533390268160987943996570044823922293051553293746726483732147702735954676834298410077237192627614084816820023561590573176010653615538149028946962849976637993548562318092221003371547366712350894575436285715021400388724869655131942930625767517252987192436655161784641606801854029185928753409815903830466944679206599324659387619823617299628962722574883668462476943465978372963147114699221960476210944998947177356695943393118481068758784334112081320532960150105853869350284304441611387732677746813629826506607736678848790369658637188904185617063899604483078821984095529003578395537461257697513204448557142628648284642805311244122875350948949440002577282487227021546096492124166515185962998219306297880924854476463990618034147469068601048517459037875572870674168335148199184502687531026218835540347470511082439158437807217285176116444209116013180452777639396409024501418975965227975620917388252690599689808069566860715377139155112271741964483420891105737862374544591066003853033890321857028699017914302020579260977175041539410805274001864656556134994835946377453484057826483839326567774548945891026925336126115847433583978491609861153738150348534190904718998252345770304963259843273074403094327727236467256820789301001070072509859536875139833098272646460742755897816356059661140060381306505032741694355037696396093479678914478716749879616563406065681292425496542179085385637390398086258644161150933331283475439114333135819140255857017891748374231218472852593911591682141871107501959715020898979456508278001673382613586462232223193416787681815968579296639581914497688912581375536347850001051599997330843844650839798652771189357892474092285293622795426892363817400180626035944081737979348617784293684877428369391079122290220802340520164844535402330057676700398855083899104735371859794495738588622385227819711335206020393042985932179116791873416656482930179114913056235834857187914935301277394214603835176246994164288158037566175256466674303098093190333854757403365344198213190597086646764416798167824915236630778896849064169679425017757578081012040771373613061855514079773726336600869276852444001236895828857576798827002993575088626599844267914826832042143937638269749645311891373527162859006574741798368356198895520098313314386362008407325787641879828187264532892283843835356654017894431376281051578907517927638788797850555960227825775207085230718484026766490035821668020639355524816797136663827888313335015767608413955527087221977411339653081113876928560703202934217330782238904165922854612503111986182693827539962371243985021416552481592381334098563638668844040750252957865255305954350600318015031654558309895912043092514443216828531827791146910493980074714970081032080709512317993783480754147987608107459205202365303974994365679834719665274204818796930809358156212895034235461295132160245152138286131785366307181501852560449540986263275258478057537394701457886639612398608681208562441657764345279639833790613532219895152763734130816228387471730588129505285313363647195136547571416258557370406865884417004242377975702085357891522532962776386558880681415776289106695055975569832456578822420535184688348544506450599438802847961305578168985015480226274440846180129579980727011242729568125418034388263611016184256560792318579208647273956651983579187635842764948506843119427459613816312143288655148774456035500627028891463567821500745478827509305278359483837406222847570335753143422614080227135040317124996046438200092210377115866657137027244472872656923211162161115053502147827042755590189091395208735936706251545833484670429391500178207769392776578840202018582455421237908717245225698447562510341048868096710684110683191354924183975398376530502308838190864713075419380448703314070880793910114236482083622098784754007760725320050858133773392642145996956517958683405185111795008351754641611604409954743982910220134614415877356830006628505901312943575413721121861129018145890368815382962899963972386161974310245360465156406949572810244108051595289042148008492579943511676605187694091748225519188903613707667667411889526217860545433579893839399726315761600038559065947771412753108483562636790138586848556029739531690093561352460047668048387182662562045340083167392950570862057919190473924893313441849830317261713515135556316143855238503531483741911628200864806971656734844880061242335097424912181721619669059238948050375203859374531888605146439342467306389379823866719130941201459791706032316209849070553355856431675933636503657761421980625513306157724820186932699575640237141405736107678765866950092541711284724419499224133100721858744287806377036430691221463079770154214697656491422640488763292665040437976254683292985988250913173617672595837535150565191751182115893193077345341101374986027907047049806581779426602624785421198523546263050625915915380167523310268650087821688573352383546869335823115152864994059928643791211748556691496175897581732137864624212538471302774225594782387322550316952283750863523760838923667311443888096583956648179094517095912555053678613613921287773285088243043416282777469430678576903299053911923416981408518718052706851651421507518687392649621964033676318921987022173800375503880924420951208985174825597808206340376076939741302022002568565241931734256464560588869678705646699648219557122663864918832894485580801182176340900137468442861563581703055598103800304831665958483042826495729576862462818537918656193305506643721525375325868389259106800088168451726487726177024511305710082452876299040254526176674151721659098046472175840188217939735518202454626715967339379363801650930642484950871734529120229423311331545724890062071597751333139659272436816893512317478896570238614117560256622678040125738941062072711828172458230359807934666848161600797437387489691633703576577904687277822023361156985118536081734370054402676599773222948255965710575522824699864934975494513485803455854363966714288783028362794921688256166752237113246169329075009206558185320376296815055716675866381330419162407883299804524900100210732966934555204396939945772522454348665116424832139678627588344381449834464616357467198892946160644029694370510544542581620561709491903023755231485088304093916801420416787654030714782246779236894890466836430266735620871185470049187902133519737676727268589140572302200784628775076921615307805244245499095296576396068050554108185736682944276438658277396379075310257049434055541547051679988728105814232044438598731441283134931394935300471437679448338804270712469123012105823125355088369881531210526818181175857519525501065662989411530964855058328831847050463260957198825454202763497643602516175031824401721459203563524598648010875560941616226177438536414006253132631250261195481846919014482889857324962689198334238728008290761885992216837299253499954872454116939241588652046495223030537883152026750295209334392477673086162739792686886194399006948075189702638260110673213034687358435418256862644587334231725744183533930008138907436549232631915886253037474040480164266960479403936620780088688626634119917314213610173965219460750807118196100975363526514633965557980972243738197848793772692062108362560266897182099032813729080043497730956311254765715434461991386702519627814230952636154587335391749977346842190985317128226583231453372724961218547960407519193250452612095216646021082031250865524621625432328553703922135215756450562139665319207606458689024615538335989307851875361583802716699208813752807985016784059932247656116032669731743636208860293382912344157551435316684535851708498076935319404582662396097765452880203100516732597390675735555161182632230567859699350871160457910514281565544533325858446879078324835685245027269004819310062285522169942925461318023974685435409935807526062009503338726420286450895912561052653869389460428241303486233347801020102866159593269392529028727149032288208654304668266548322374395173845960006494684661173625413175880805099520539344538798527436746974410147102675210466242658230797238077496871980671438096007991475124984498793095067809380341128353121292605296945174774027459572472594151106538890232873428640033514800507274240239949756552818367171887788718170142097353938363069087110391915831482080520444030389715648647172790546655800347878737384217433113818948674294736174776700798746153590633431611385689792950972826776197881771308429523332728612966648096222348232478802209661682879886848513013656475951027316525877705860120008233057069821831529213008704509880010605331010401832935268021007863579844126396645470634552856131535634904769985546095592139148367656672790199441540285751157076062294161601421651956462257378482134564159835144007119691828913477573497013766711305290388176385308495634434768878394114307738774524087210935808916386278227579635351164577653361352787288037883420259682359953438986868289445651144262516276806162525117191848426531072243307187203531106374290064051565691003119018397355700748409527293900095792689972296060166934996299314674704444283178434171351349244209550318693108692190430160235986416083221591343237072153617964106291802109238719013903982429279754444148652640992152918242655948727269858691539391688143143551281247186903530720313144768115873837920406501829631847584627461328754305164396130229790010284577141163493052960589455220632840791602572366112603245304892048260366905311354491131444843615202487309682847336060606557901400190803769215887103143615369836182133517450917455865983216118627551660464001662332515356503125100476815657331326604426772094357368210804399317382575932969215862500268623031391359402378528900477024369367627727536799144218655430906552872550816726974842961975725708410953729675296993342455658983850216136047455222853900160735461053732124570899321573518282168367278862045347500607822658075533748604832590631740150009218529983213270244859747221910377275826460768900296579692879495065617991277972287922964366811295345034091642861043317036451408055301002594372687948457002693004804197342283347414883035358932723092136037621845900367698327388119035973045422795858896391188060076651217160084314683371212386049878986230673260432547016426821323726407934024206492864555912891982417073164317582822744823853523572383117049855099521746170549687760043906699923529468747209388590143393421919322458368564068133634007761735514732128603268853033236360682300140593288943674307274300536784087020080666026852116161381766630780094529866147299504285766467076009804757847642571630042962433508631556168956694835507102634807775471116089153052252882912592773630564027351974916601532944644151682736747012881560929899159165147356186229539496209485670896110904904871496325669906184405860450729348781756114095146098624094165292175248417854592330325663508670203317874497100296148946749908119744306060251631594606549258277700939820898554382756616319215411940893689345256862530934125239075258235433291433033662024394471717526560616360535717186348860000008937986518592965433987228802473738699302778856924587586456051552059362093815546411107229800231131369544394992933345294433224568112740656171264838471792188505388290431850560969621131335948700702161972341889868452312291446108046260195340804826739304108158116842355696349475284760585437751215655714380586769969127735066305000622964207123776061116499371490562957229187870322643061674236452675154729991254801500705367805676432218129857082422336216365786930479558498531817105613105330042454653087504997589294982218890053201069932622134856519200493002772780655286425991693485398159504751977548430825924024990010225462904923292259759030478233933925913533324886430170630102852397189214137203714638994726937516494454061599230397531691813039376215194567069762081223738863773799173434116877589660302212721027987920654759692549767363167514376690692319392413239816684149388630416118007962586759422626044699843395518174736007579437212285866352690271383037800959756885580242392608756815857186900684224780835792343459913355217942847211682020985205887306269245528132595194685934510747193608360408584729168275042674535479510019810529731136307738444337998945368020208287921435223465173622325685969481111598521121604172294311055210949337131783794736730549675670521149045091792961486901015251932285193264579172904209328814399495767838627003140878515207512111201179692297326393128198928832247794400901852299152299277821768191901379744130194332954417138802734695320035306085950517357137975331022242338451185554814269179580169988950194548540236000966268441097740020952283031176179758693200067565662957424983762216851272154412439613201625980453062771342020005919300691164930433860370927174145832632756625654406653074455365473370054055476824481599009395615524096261186972242306907275286563946516215378243346883390872472135183085616242702280657295525412597192874640796320049294465284225224994393298004883771676082880510102589912806747411067216203929522246693779620504362419110839295058999057596391618445017163761772219923105449311796633219762353359970181642443556529065120009934805954547543687018275012169247457337655276444184716123569374266263912372458708426553430572573673366609269992311275424509980941499020158385548555764069270974394882607344774494507860485318007550622259073600169131797476463642128579163309924224562145999626188890252976349890869474630663364722204357590027349680916306417065332698667508177750275170995775397040133881626301143623996522173999691746497933852014189243509486117052099804117139177149500733613830987914915024549001518697224060247876009723645901544393893852862579595231644495986374507340737487334791610185385463506646211085471052133081297899644116322984901913193081826166077783892378858856610425359000202207796390254232356064163431009637676484394579483572104201050217173230419022337390184973529043982592731647257597462930551532527893937242277321475507690188676464282911475142252456081506015610496347005558613606119265711937718448554496925753999812761907556587097685169973438999713166350925625719197237239366092368263296951673460355233825692238074432838850540283785465016746746802240390723207624812762866520209139439014379970813089388632957191807587911908764869490181778352580060978093847242461179647728152100266730174149760219697692129131748352095153698950261081618765287753991567790327739267057395258996993666769711416698599987650332710171952246467528219977514593326834732302693977613197904506532439813985263765410978586283896493770874078935360555535200242574831233038713420297117388599022498291634792791596213137598713511846991479298372418840155630056047380443044168348229310811764982387234339509913169201288501857119989938476679004051039357199163799941219088623925849433985563728531273367786452953270926850605074749361282371863296052544918455171909431582286597124048962905715445649114779713395173411430981233298994631704458233769303008059292688876350570417303203365361454551681371191367985779535913273246586697651483885671181234562559249128209718913635184656744216000764617582322954676985660468557461440903057514528793416111775036894382647182658782529723412778874589849375854703989616524239645489051989495318408304016199540242287199449442492898511475430836736942787613875783639969833176859909106822635681915689341676904029787922753387624870781657063255865319637952262841578995386895241802950739207434625483260406947889764973147051453941496488930373800847747602674752278033654969912448060327777637516216013354325587592896285256650764023575142156519550769364834863761787909163619479290311447194243556797870793183309977182992934448737589275336495647767614032056628344383322161063052618984588774314050306050435879861050193140038521535944921329782877245496614064968482680481719428289570285053531817774010829075830357164014471119424885924929207080181613846579134506369850443051146713949250218356999175063446470747923095569783048075117291535207470793065562218388456119489965202953999385894164671493524702835498613412552335549086260821122215385600098572951784977248272927512317565704421474029775663956549241996630844254031329132994061124375076577102398319638105590089090913161957702615960761704143096066114176294518753822283479863403106109922276399193263872518276072959340692814480742810803266051012158341091619883804909160251739308642494584488614229360851807453244867413905560128650906025608390510286380510368665228990595100644151128583679312079626959743347938135055893979532409724893204790417751983478441752918277907328678587208335507025852338009493790071020305844652659991905809577202787232555816198076324426050811932964026521926790820886772175984453528738678364615844896780113247354385232269833448265169776041758027761954753036621079207395727198903747531230285008252968716425984229891283633677768862031688711050228924818295743479672314099163245846665181192653121645592460375087784374607237806825427555353908099014409857171809583208326962605825083600003370561969493940673663599802967712221328619645675529653608945241827565407125845454389585696937930098527246515451792593713862374858566182373566246448762619631156992777149558354837796841583099668478895192283128375368693852866348214445698289484701709984102393842348998329210956292098184034269791092295246814225853333863371241140265418020162291933641383358987481353815397865708245420335017136689628862479261588458683508906216555223090585494453800138560032987731974809472762481764214774363567683821028111513746882851648710209924027763858193268364175559466478754162333049571807703932805465559337787460527041461420171224386337738004353515572502016280936794586347300615514977230778642881171088452682815250913899695457908293948815714844600873219448352823559517701237702511516438426453278348648867337553180877482051092660234348348439477988108719869146076112862546772466349062480991736539291410712879221371744324502511098382008855772291575582502737943365466755621786773111476124217974997045496056270536666158972358230634808033693217709647552390490318259850576669743953485119927284880275583110639155580297829348211116267065000251194841782859877370246259120765424051716656024340164483649180763017621300730083923362116876999390899414534619468643438313846767880038134583337656837696666240019105165397379740386810640874968628778179987724440906833423416682743835247591875949100564656568808093877333299489843809966704789166553324399429378230314446700935066980534845812141371793400803584796270901361655122660852398971369669475909890586055980565809645304482348329921606517204176639538889379720602542027154634575916390614744077501971279061262516666911886773634679984931456051298880571910193739803994111295097163040615426930975538673225516253669382358646600214084212204966875117881261589606793299767874792509557818202524191501240458086991410749519318999428308095815694418801799152046173893257237993548119943512097598584961306123135500974995744281512659565218580480358115180050321280990381114504280295247456506475161348986499077959784570339234692747635349964343947402435605935545843508165247785993257483935535602700621307895643650060962986520859475809964337212695214989589602746737837216108988918529091768591344422232688890656330946507808513921494212424239876484596882492059843480289536016861650188246195010092958280396609547883058761814068042803980627956168275984985844433286706404894115547431930348552634457584896612366603659292228052391948943103373513157457142626580026662318011422582521877919358115032621700087356444253900297668350209848235372910683778304247922978977217504516047888675818981795630170468142049857502820849352767030370179327231876954382621733636420626376984467110072819936669008429692566365589744166256191021899835391567184350958870939044797446856994126721639653614200146796563489719468468514866697715644156625804262877229490491807240883665004828629876390821345351680751507866193193874206985881997933618019809938565185588038129287522478009792185911744461778702883357366563242407660111797932265762824522185398136788962116181381389238682443203934160375878150098603476096372996962635757689044583238594138036690347884951874212247279719833826708245112819977460943685411288119819811653002128734611461323937982693821655449951173591407746512429222634696181434099081926295377173748453802404124510320920617035144996271621776066019758171508780442702382364538114934062144427753599744813917550471469062000020347609489891052066693911173976201006917363220328517922114352025638988392098119925424157797544977822184861059804768234891261537815238589632060893335419694872254714584313260206130630479438870620083291581736894745698444622716646533601987691418168483365518263089542840843406050912790489699571692840663760043151645406695496129776682634442397371165280992335674456859038769677316027041419460463480224421749778242096426412264264732718297406121592315747866723697395529302757628392755935622119408957587892083462680864368181382095219051021316826429852218744805858912998738857807086400490381549385920972667676667515334436991794406078801846275927981313444051662655910339615958723535145936620560775773239615336945153749543941788024842517073792855108152345638161403190480464638539684159980092191063527063473035529221771003458898687082310963490880737557871442223276959306721024940557131420426682741651553393901379429931174144499454497092271119739247304914139251855912653603852135515468034703607019640961621869031355416191315220358287960200960975021740055688202488795163527360787555730328346687214454538900112578785896198125396224255528296423694061524503115899960641024650520823504282184795831127441016149721955372633038846914029255838559960597658520943109950168090091844718015107856937192861062182178669290508280984324676722913797068453781569795298454069505829071650623007357671262746018129000330170150179728973159331919365165451276972208172749079656633480876085776662355287505920923375911242425407465864818100548407447866876631490544300755349842292670114302284603302467597238326951600917986842312668587940502132041788373711279846370889898777048323938393952906919980398781080196643268133683196202972020840052533788468691593176675716910752862714768247839987486118632330919762895026922378821276016261234666498620646324041061509430613306894381702988768372820689033061228428755750348103944590711929520520412039431286613993619716950829851140571178909629551724383956767618613662768356515199344926745406438166572938671736080532002678507315031919446412295222225396134100041579488251108852599477644528839344733666147976364343054445780722162753447781060367503479347464675410711650565367975629249338490854892594558506132696531193949713731185366512201899156462822691180609258446743509249811741527395563025802371252974225574427252980139609615107441348873255901598223631697724324956736797641676607247575308454214271787444403855518820035139399401279421801574327613347421401479113672013906692685373583000882086898601844282317735736816845483716890830376967162998660779205517077231834162103912128735045523827165181659689187110820576914954403096321649138336166064222265326399274989688174203146641356461612753893846412894251473414124088914068891628140323587631056433047857117123554866746469141658008394927670698130093299789923162935576422416276385177165204294272378821155113273205948036681470827496203532375069336654262571881793079003215700266333160189471497702091001432130599537477224503942794454652196920741644695422515972252665969056846066420777265322548878259103627714243454751453416456029771287456606682335029514380760795295495789011686802599922191779553447589784337551680400619792698680848092761805640863843541075572161356700149676452256573689691278433290573770482711835314469360123646997063391180604388793005197440232757265447907528078320407023862552022579743699959196267725489892616496600502826616131492192075763425095187014388379855738861612946441906584961204617934428728470125574198658102923264077534825264910541355479634594938109774370743990627547777651487120580359756622339065008185063558635937183435031361837627248673759628258075033230878488248490675873061735524687560164013006165386561709128238235910382093417920880846080613364861940630736545171737289674679098234153750264708991423681968428551042544376717863775842176077024172652185568796666201414412338405066564887562487175400718759432274593395965023063550965184932509954777972714524920340053446214379253292508133189081367262782764219014262847437707041592445873371750518484003406455105890722503067510686765695385615062898691300833486067516471504398466803978220824964896877413313946690168722589170465347585347178893365943149142996549197246559356848328632874006483076620433533304423532122545730524393750491502206397479186169425041183215655080048654898096576538060041765883044645173877636007359069922720624096129763797395587158378503868017671073143504930688359569244443175066877955514916965013825740410136026686466694758192540922146474100234849959511064048736446897286365871509960320130002263665240841544343745749590790282373872066560974585802772735342318291665126582426760945155967386439698561666402485779604756984501457376210127217483257506557470508378419055418897301657958725222998074993325912953907767466495865457642922216745934211966806285682457837696558705373615926174332134786393770117620812363181345609587266526787271401334778082114450779647793331619586910833078698046119606523664424126921804416478036547333971795366682347586580090318933102271965891374375105628903593730514085951555201530983616065355770471849628888401751319019202511729660918637058094168393729502839315361345455685193164794519953565879182032092412310137410269961980402739871143569202889390755020429811252055646058559469621687230851054195899231432571190158193240781759281500030070271204367490988009398047123093998503405956050877505388672556396927924831845451546986230297710426514596828929119574563357891399281239414499314619784045538798128412559747787845009034008380143529217813261465187398650323575401036160304041543102762155026142259228228095064160983828571874332784234947371563549625521331182749725504152519208466748689648686779625983044313242044892742207997583649772645831713970024433707866259457175287337029423706905332843830660191373926040856505614913538064164844898208745945957030410825882427118282088748561983552760711509610276410198999047123743760150365186429725324101595061558250900398494049976750922673827960698319429895456201385427037961345659053912723121650158375146614946128213741869911917688767377984540274533334596132539994115495343195147882808070464748750724874962296319920414816075567576244901236356418323553913987615098709172732918243953783160784589354175794995769060541993242327669444847708394442017652248139320736098216034070284254837951196061923260149859445596621169463285557713978098299000546248864816917876999253969508498896423313836498425706920562477415256689556150764986077030204794622119897301949662541022624149872172880976993108711176174892714179050737827788404603907979736722623807444898833142377783408208009395312936113682430363956668706126023027215720037006075534029781503228643381794670949702289384044369267126528058218507942805255320968127469073430860978228264349447360148752477772176153138280635787890324332065090992715836396671499790340614331183166144892683119588915569047749581596266735549435489390825103233231248997971155591056932543851664403054748045623284580216812415208094969078377491695864594718000792372777509276391356550800709338740856871730704457891308251176455233066097296339383878898575465665885419602367940303047228282885862711489460092260508921606055279502279108597315668940132154244063499991859789118948758447807153111132719541437167512249498563963201936161180184326039009077674336158283463786070960800275862296086242807495215496897827678741155803605371120984622471852967881250720536207485836257701974239079874953296952853383819708445876817012189370098981706893887727134066803654287811960101417397548424541170306451418093586724887745163538914080831158655139922683482840569231429684995351165592894033996039664580927806809692264036903346357833326772982831456499158958250990001563364830325346045908675416021512138839852724322053579262189565734473432796180820649370239237675613073845685988454767787025132226499158261670876087464490796632490350608399671939070118025025366121023568412532613202993045105791018771540961757265045938384003736317009061057575984951785908328888991403480592891475911500396861479965839768801285417814246784797589052454086880063297459311139412075022701198446833813006778067483088052995689523212000288517526864265095540666658064882890861343178771171195411359084464689477745650609453921525047619693637283137281072486037767811730305826593303904014177927872080065851817333200702114491251969226078322831702497619502500010502174970220673304842027574879370321890083412560105381051080440919238316649105413093455283465387960454892353695359614741022389694181971674685274729160020661905385762151670052700151104316576105662987584413983661827387231026750217754425739018657493964172444324204207472232538580866449961963141570087095223577156178008125809921816320224121388804707409077405079722373373970928010829119932105909046318024544734609327124943768555867058175443526179689491525992218882408090529516447959576038567724270334254526557956604609802314132008956046507212915488639229673134142770541844528997505015044241128943408503964854850936945463917444663606826657011671383575923693765367442365766738740765263170759924309203728356488121211520193177211599152361003236545088632919498885088271626966353495445697862601507239122679170953940654174459960796858573309532694789589838961260541309634295381230894196706764067133382035358412023424639752868563108833586635242316638988742038350189359818062165583805819608866515042246584671376828956083204109108538400606713160203059537585853550415953690969108111621812749181984458559535371989531863915280515237543729756655529071046921971105983296107120170635086860005966457750720484750907764573188157162013510402815565568501201696172392060808169657309683695441396334928450018029227104241339229284101651396560097570181684756863143810817548478801068705184299951138814628675608046453608282130340845932657915943624312987259719782871540028928020241965608620799262905572146999825442550463924232228256671520003372310876539069820975340842832612147082870865556167659251995578944297091320294889085125573495809201078771952261229894232563961311190391211918281804126247943465591907523287130595878439940552463367307099518257387443946153157216569310789981646744126507739681857491324335684934882849103774642610683485360303045850214933623999615409853823331812111878434528445252585302917547228294109348488877114628840307985983891359265419143755660145759349270633213314927022085911701616813407723306280020487014952006695805750708301633273029514471405696314776693998403973731133653389894844896810907182326966169696620130177069496937539878535994947587408877513322213513924401698801617731483228418875617634304514736421337767342720474666021199511433011976887972195374329482823999359933206137230148060605373633106552842153364314481038214396238302590944014193268299758519582392073513063204231176162273590902183243185645258419227580081161045360921527739169416320805601652878275044905775916572604938834761212297585373310299225899365419763239973253892959278776865964490365610313143130425109151312031279459103518264707839579786941450352859032431791679836307303638091870266271089282686567775089532899383506595171358472525647130702775021887470085113518704729873948901565580577520780902658752351567175959656617144224903326750647739077878885449872193966137153530271720547362663826396055732269362266263181106220609830534983616286148196806114719596068680448632651499469956431378383261368171681592095334828333648409490092012594304658868090606712335490552503934772777433716426363674761268050479841709931760295165083862708324336846028308653658148867686530205193332149508376949912471476915876197100150896303885735816822035848646762907866839823715672534508407740664064843351710929307882015960618699331545832115718657297947602051886712948880493492146703865081773953166307719460134423387991095301186652496790198048769585478680183641899172054243837861305354232174564801111745063905449691284147644029680555201019325413919412897613713603028775885599808459644551312706583068104469004990824269763973040129605866918108727216071642711977405483871283496676622468610430970189026619039221940267804406137914409353920162537354511321311727258743283448165171219185748379861045508290884343890450199997258624575765707904583947415828540546732590999034321238702606263481340994506039387342504654342742538649636740268923103086597263461564298690992107828924589730645265552481854146706858969380707542624575811174995558342406400500600939178458196690089740704435526068925172548799897406236350059298188375011836244426866590710156022220173420718285163231262743331894073500150974296187983937580444291852489345973293799216292120454964427123783623973659521857687184473505912868118925698806645979911338860233634488856539522725032371075141892651665257351375178355301496054913927390138587616679313338678789700640936706137578081608369644271780760221461904724396778247404198813151520809809709436097240398451493731893769851498744462900600452542608120759472654426882004352429895219085122443355683579987544662634385408920897065747250308038313669608705790564527278414454827436940925581841643895970587117839611737075983434931097732662435175628265736999482487765065743753931454853240843502996806821197030121146681070376892175967954239762717540617027013940940828997163091058002632713767743194107980436353070377621413436462633453962590475095880516885208095887831776543640188039841301638721913391065728468920720960562238299678390352823381122300454711240252603263594063365687878760967181236566602598210960941728023899092733426723793317895215158915912839511703154105912120376186908556147164806726996426733185475386841985493582539207251869173564881261561431149697509963503165552036023932868241108062459297038532233607770769776536557589713566995882900457641613245017332503182330627678789780298681389537597195311299940958594064443477919745901085560888760231447114026280857347298351024472434656620314748131043189783249593290844164712238137759486326406510715275691019020801141159446312999007458974609030979202924487186632336742560073847906870539713369189394857566352167764811976184912298808762884777385057419573535959854789449824954710577747197865802654606467102202625300840604511058912089784768163866432145887981287071339901744685477127007018930111444495538928440679984627619186433005242633697865935075872243018738161845323162823591082329157412613706406901504796429276782953628191307709533197451461549056900807938889147461438606633378105221058796912111069496775656058765738017721545203461674381572397154531336921866014545542884626069497267028359089239308030035233871529041732771716152343593310747358737219578143100108715326643699257046768518531006500064576777960770869860497659983267470273770376330500642535060706566130893023908142605137833539681596482644034992259724365611206863025644178467979585749264654507417212666641554810728918852438386748243132836852701054526452608601519680158642899947228473493272833572979384710324438006251123190383599003463464513977072684088158854603987646083926014015647795688577464311555102659982765570233597597611598506119638501073340110733809858713995002325818557916760250385513756807085902404878623178853108386449592433671221458873108806872890961611509605026875332080764917886404517758697310683539520232426886394874449332745745326388601511557622801592708906947368350934626586462808367394773984719302176883791028558450678274711123501866977244604841431934596727565431466122050325931608391319974914737013318946642413531916890042934771083429761795697303867989663853060267470376476723394639011429087053573468124687813326209891361812114879196258983755293541398376491715565682858914668322184366416091458503926887749385047652434398693646913353212655174152087605229078676093685154821955541867822746667682180125279510902966335558075981219126935152032987270396318830299957725442200732059039365063149465722597094083705855426281342755330808062396815741537279498448467739596527063678077142281580258140443357601709061809797230864254162476464804657412004640104608435207911331847550532099705696797921738212014748361076493669822636588992251524163926393550254361231166737208472487592553265631896599949995073013783601423157634433543435967478299178920726830564049352777666002835631472265648350028432489784094517109915842921832516578255908558269954434651099985279426977435192985834707004570721820513692937075659020888411040562170522360869865764720828187325292738479542670905764873026603976251997344745761958607193278079299682935138607249966201238292050613044716726165156486738542497286143745870297039493563145022549848790576364167382016854486089768294870085489374049105317488370551044370882927863410230509409385600676301041351934472394123930086149129287970068903728747923981814847422098969122649259688963549812328215147491095466523344488074550655021030392622540235303646896802662297629061692999763956423658785916180129881978642957064382164900727695306872334875711116579492010340650162239496758132892634678218706808108513355820952544471172824590702811457432284752357835452079852686502370954075604859470914413152276360230075698741931775904622045898469817756051024309532046732545222777569253509388518979638645163684965153153340716094948235953717062487261337870710650037739626850533412873370807375193677419893046233173682873091388249072251303940684799543436357961859903793649799126562165850611009234132510695352456139439747581494589398550687778856814596922954181743961559155606947951025046555750977867707313729007939919156306758502222691124644198645280296475967798961875735646526180686057983753315649194382272309083218874825970277629732776554837986498273434147308756303280212066501410864431404331584429379591298419577150459368518940770799835148427629462465830986403015671737222427638142802202484177575152001156153261868087296381049727811932121462269640130276789755256160795950805842727956730354164214442715117820366229512264640076423957198459550034583709285957397505824043440221590479492897575558620014836803518296521042431119651157569537088193734617274224735316383413209737198738823749696516884438312045341146040316979386324587127001217210104102494547096593499441577191283035285513944285794850519430694395925591010930813417190854961203615497388036328703735453251879632306284546441929424199390954172643930645987698157825299674609252575833669321305762109452674627241444631188866901859989433002663054323871675529782123537043504005593966174822051269872166001560514365596228814112397643535238268232546787154212641990910448166063015517628519623532068200301586471292883041030779908240384602441682384235048259274126959859079779730295536229748596318349407456024798568679622500115547089617281904849645587863200581681055339505388501157023992573012242385571902427199309544780768619844605657788091652025628391225283665607130219455659636405307932578557735819345407408114931209098765451256210473871465154751430877875107740719880093167785565180728187948952645752369220549816909477472596055745886935657212219700846223665808141352660859015759274620899178613636745103961283815036225304307277118130623489350292460873148004391137771602898854577390499636230798863486897832296602055208167335577530864793140840098511201177754879310766304790879165757537504454892734734492832367945448500541109917805752899899294715925075340335312141024595370214943191295170702894007387664700967437769547988648156762574697750436391363573513233885980076914906145254732324044803961841991877086301643407307898180249770620509885834690353848059668859625230062578029968827511335373205138936720002405889463733209886435629443517908615447502534702456852731710380055321977408373389301956847546000417560859136186523290510587388967731451777367283174591379429494304056430113241874077701279930645655192764934958681564887308734583531143002840922612493416769203807759709770979509733661807877457534709665726419695808527699068341768065725189587182141206094426376808052732662743596935520674156635816914571561167921924505631092552308236652162403477244168207983460292824829929398249608306586722761178870402353448125255433714124760862829430686295628837437859859479555424197344290097194095797076061003634974604432883958654716353444032505130861586072586260285224119375317996289883110475265031321492312538665258951931595590017215761137460454422976536040604842280103246390974189948374894477492496405033063648004267345819209897612003767573011131118081145346331374730166971441449774132585651706310561417024880380053033359268219627357110505385261035998602781588308785831462804179746221885203542159982176115436150237498698740034547582706583306222381381933437906854844410926610917893595372699085494264462874459178242366267394073497014054489224344105805762931423712322789987500484231091847055582479233393641238269882572493389968013875338654573707361500144538991913364048437906245262145002831251021611206881650971293406601673615267775652120621652338510161428392449751247180721494599482037531208971992414173250662758502950041203050495855897294298106158225670737681001954813042046993377846465743377345154509352748423967430447798796728389227175750595105122706829357852863495307951259752890376266485607527764335972935248087989259545633062916652631172679934095603005279693853872716815253275800758857703368576238128883862065494249393839318221232449602546232515672982051143740558479260942247038373556059004426911373077461655425282638937437603278213154548335208122744551358234082911434736894469074776316074376097409737420787559053553176107312533421580997943637080492769582216597864032865586611281133296534646872160855567974987685160322675275267947913634178981402871494525245003306554668468830494389421682981294793323428047358320798778173854197616033104212587255502164374871346558263812015335279780498644890602621997579785186325323386055797159908725037950844702063981146443761404613059492762791060167785849358253438325081452720069387591534458028894030026364255914039482430577687578067312512493845371898774699570041160977078812587257688612953223631443656004616094291006675357175959275145230301368016478205870570668399705779849403515368520721054553036548985160709075664067488866153797884734216472579050268428587130778173011846559698043362427614967622727310330687510127818201139178992877473246518050800300871099705826393056087427459189778943339192484409693618829476540272356666679309292577430038252368966498671866299929582045803602120228866863457777759188433451200482825073645784230115364371101497373900537739040150783436123148227164391022428644917473197310537761440047023049441175736336319294042884171449038613429362062260933356791276409846945337940584716541230663811630469627590101344485221264953461389951281063486125254652016393132295081223258435788687868090539068437912377200949413678712874518004247958545608523068335241128757387349450774823847583204075373070653309547103268919680660878282490978663694579498060133504885144531145586516175651416613248760143172329443193886802204570389800615454789619413734246311458761378917659128808102384306286752721127664242492130430461192811162031479456702455963372135948192706838715852057356166252947360027555696338854043172720962521186879547970715170892961083544931671234789217507352718659390753896721149373471041942015952495452584359778023531536559271288801588371704585443932877910693509304883248041295582530743367409388148586127119748744581641384760337379353412231175061317315375366017233286444325869713685358165651006165316370655427237839135935826848856152058531744211794161402334897737256366249234525743100739556437761927542325474278667750451543341198959981760907002785111390136396510674944271717169307695657478461401505013309520303998212593958125300904272572251435423444336603861429440662620135200999952034496305059665681071525446876426214516702416533374314374630364553188320562613082792036515229497114745576170493772233715987634177127386724744013270502526350963430410294505012735811052824555000299633706019623009815024783809077158802869609618847665140119795897887309640413226668029003364875940621583581993289028458887512964427713270784561949584765956581363003611795038864222266503007179539203844169202354285696765793119271927148633549680038443436256793996494031034314213961001684851284465310463315139427304142772580853326108373919510367414812929305714048162310671021869127059165821733491739559623000223607783748161096838612787115622281825651382063836115148948440238213778290859734167879522479061350339478967080885499941908781794168758670233906047665339714019284014463750068803670756099210473964305537386359994113322283003056468775165547167858750036424699690171959304713756989296385373380179748639381950341675127874053345463995940471354871930078733691913368951318139457295108271193981202584401458981559606625903005530179717131766300302789901519609592003690325832755219313288914809635428540566196389412468790737140997354050600235166386270653267076843462354231350270718252292512539313200530751791999557495082266812605563787907320649776835585770884344979643307203651416627252229430826652922393274903279629967574360236252232654746837451153490016031008250321530937043009308116392086463729839248844598054650605165701170734129741138253421493084652619883875124551973334123653986561149414328922856216693360678258032536007045433570828956698866655082373775306581273046284210245484514571599949239571007402882443756776896215064446026017881168728255544159374718041542505393804376076138226972427039481716703346463984365264149473877866118048965722586464700249340443052214542677331814281348647940261156123857407376987720680361050824486026024394819711878268478739249462800088161008058116129491415261233816402349424912539372895173694538026229413628915112030907860167117369858523428306573378035293133502460096008143018413816265305682643776377180886254554315449740780410603442288396257005420455362231411427550030496230335466541016503227502474004591458485644956855032314987085131159607340665048953492367884737093366830192330766772064826144392189622665782780580223359828661550366329878456554173720844509621128545859895547933316230206153587150939189605620858428476278586678144627667417615377270182595782064658785225192866066590169997592511841129846467321842058778087150235755949432897883985948719374307146054058840243967477391229108539453747116210938581687400000015078739701152230725254484186864824930666588807826701589622697303201733761954742943214944905514609846694822576500207877400752733258837398713606029148834614800727296815411203986557541062881146127147382239496430238636187458731210397282343264618338961030700804374510094126477297670880174313703682336954661862653614504803113244279934175923922891869303174253458012458748862576283065193248253812771354674646085381654082605827120906449275910286609325307640682504971630754984064217733135771328054804286495914130125187391202696459326170076520144031031862700976124425547210745458176813196964533744942124113553330387097342164433782013895307698525835475385641457373228165317131501761230692547649375167375328338990546876689201538916516749560357520866048739887677817221044010832313601980018888340803954203961781723399028025588953896104212066754843580097958006329202340201394792897250305028247209765797129715364506771147886432253224863223028045949034347233890528823133122487386907720812526981407813885746343478047841792000301991293462419951238284452549566933054207867858915122395247068093551168777649569089743822195891044952426945023341133537576174507777891698243029830166768296487369665966019394130363756418381936073127360042604700129879072395202550280755121692302074366045767005664001360156807314171211034380702915731591084947664539907898562547960764469446274052986625274607241255208226344542223491845537034972318902273149940419990468064671654603609255517986050848648138724950819470903918857129045990773936040342592283209863166917077210424366359732874590953091633244795246979403332135034394032368637162648106545385729478118408019917867503394867458552070425051270522846610476668560706080214551634839799019436811363042817096266015269412825622759675842143582409989129266255245178207755234209039074424105631953929808932217808361242792679630579652137896505170932720080520289100712328447786026366425483063802886488500871861706211091686346314060328283885798300743934622238887482174382713360077419690775243129185360868207787760730975073217125741224243306379440839374131649818505907601096380285216562410001388299778091137709541663210768850263166068452768970833628384567927923471772201475449310356654533721686450805003307439310354130797557146668670166199513347688442874724397019512268439282569812091413572404350949253339627640002170835694331770248886988184366913171205606539671120941344492504507828737606069441681239170924243724866987173636048134645052421595237983240937329266805412347193779216978854429999074280974530898084958108013823731988237353279149070949925606526501068555393309312899465485782729276153461525479522199348984764688646635978779654103604253302461875594194917711382203544456894938723119026658214502910056372334679822730770405507647744755411108207115342988200336975299184962587552774788350900901085163133241592056372211189075542896915743949730925861029933674625493173997343319446534451068224974038931840323977132153419159735577494950720142245858955747001048033043405863531545337042802886769168919602175157113995932679848845817679743223433723106935199244515719595308444894110179396239641873982108219950690658435295368170048873166044992852703918728559826622092151326380173558718005574819648634032275828294157160521872553252882753449474006871552036316409672581739637795570688659290343187535608802021831620595465422396385394913282213427833006650158003455827559414002887169155312140237309134732307282746548242694700990022724105612228262093604046532905696384008249417228976585383784200518170305858786213384668118535094776129878214201849810213684818242385459712052747412086312696486643027403912028517426061857183696498452023083301181851848815858137700522041203074904044806789086010509675777094881962903793371767069561017515977064808100935992294765985427251375901044490474778433130718370207899261757529569367233808395250703644007046769531044324276972818784651559672458213102249748585892691433437095195009722829477758893364241815665912495449152364642348700556589144472054665104159070812092447537098606687040344924895486627156498994577172330225727419743304387418706202576226594644339403469659030761069935974781309549802346315692848568984628408586819252113003823823183911550496676653997965181460745389694639801514701205034736788956723127081326935392139725935797933962867634146987993556245902307675384253849133197654415553877647775948502614780039472122691802257709160824448273605558080928718515425786340647215179334366326578969701780956790546588254251946094080418028124744754326834231354478334185686536504814726087491181478753440480997264893974346452431197125253372233825524996725995987707215149105205801868404933374267135326824826076111326123197403855041721640492351722979145858523683194797861955029972387327206354143024035853972328408488879557592267476074980298611618748906606004744141122793831944529995618255695057485603039835166208883640977598882699339910392866767673539648030357767526796799161041103727966814657245542865621192538913324838310703271912798456129953306003499226508628196969380140113841621235201350431146737971342531075791769773059619878532595590657560285244827611956253781172192104707046781676832145949396737379156457344885368028263583423370216153825741911875647593740279533313377505877878142644668026526577164140439489407166244829995891152828918487714468779649396074626230018064064930935034690284740450349825467340277504113986655611603945715942283498782622866855391636987300468389282216162864186554421674294215930895501066317669946403322685509557556842321720723955192097224213320145971464231442321552567769565498027344740183111932484265697662614995317475247656310925749201864860507419428583845348336022545467966794945163013269406694092040773390731191385815714989176276078297999271017354899586146659980979559311042278499674863288771472158570480365296863609173838924343706563189024350343541692313160143499452307831702534421630475662593857840457349820374088117019019807681765007757471258334748891868460650336364245320182767306718000964266855597232387056599283346277527401391434544633868337675720710009019731289912444002910633231028532051124207342973715543297107044592225159058059370923638938323043713757258526229664066575720233112422348906402809778118354937439468650925884018272107993857177386977163039636962587391483787449689668705022419261591669709775172971310598605861880644575435290944033956985277176080678539873627207857110826253497145919949426156728514783974013888989525316791201803515768435481676974330085583358183752262585112653165750793942836417843044723672197274080044104251964972386412382586864076512891910700000697586310084885361636027323800099328298592541091084632744933040870560727016074994684772112274696852144539106081944673746689204601845410229033839153677506117175842874836530454974401164650847223041930758690402465696328694678119871194072226401541421320262994309203862331345163907554602635051611911923165373118803489532663772742557591796313186250967482304568917523842970713657899084904498529092865650743637986214690636126035853706723967271895829766833561883550993200424691823462351435884694078748319793681198119075696080789259723149160194322395251962316121892595773379054814653019263567746529547985151627266957642733985685767344853516930369506380304254250273339734140457491887163236837945110101956837000791636315709739189397426518781917798147095874036145504277819967162021819536606933451928062541632321204556404983520931244042309912404702357663447263109052235254680987846365691592196661941435523196372042324243636709088077507347519689335831017718650201826139978001057023486609680483014378221191896621144163686610070096290937179211535364515483209806152527129508008544927806229841679371625937609694820803063727780299547136291769404311893597747046542481930190178463045451870852897534292486251352543360516336198619378552902993311301179740524706258760596803017061467343548352291137416425293286109710282542290588558828840384562012221723011540766772387509752231451073236476456978342957230302003948478947440881917071318392059224103666974124212786203698535043737631566796234497587865364319348836759886464174163234152243652714098740281976761752907151115266790995594094710945800703478321977030541831812856128212694218242879923318105045825893200013838397493003177728321735994145496811764054506112442675569245464469758215082631888772785916584010840253057723697891567235152647835606035209119801106571561011197194341226640536585004238827410666751282754779080342269164595030163111577094923370005417945913029445272110357822509208343347328505727035778343861679752139968723282046530731297343479304842342141953854062025386283861383802176573598007855092938196762149606958881331268346316132475056244383176636727178944267113923185462950224552550637965272801681725751020728242914992158587680683113098802418840080207719988000983417065052430225420678370317243816450152470273068312317727139521396269276927038214126465998840499693365980802436542811928675740829183530859491836321569113824095737605321285522325588528411554291919022773785598862291928213489468273136865717195556584846472149713764362488831843633226052408578953725281543709544556668914292903670108807012552453487957817749570096059293263963368553454009889728814212774069164005068678125117842685396275052346772856802740900874701989522431725122900388288659003705864201710121054555957428178706935227862647806128615514406031296738374692960671641265958819521714664570075611371440900032831758283672950670363835318391998457290698886908703034102062842929987708024776785638543017105938808424061856881111329013931737009215375144344370037585142958788919158897707110342002747464051204314212788421561016284745487027632958430217137314408977470167538421994315442641920393603946516431313391271211890043065333000919486022897539568726584007352638920547462983144685130355146544361085213843743139816683163343594362968839136961449796962661536944960192251016378929453368137242341164648059904306959544650350091197755788587424563326146200971323709313721531348248518922166419810400526463516640377979925612868348172576221687383346791078943565825625222553860976478164505256533922949906854531780570906896677299338297926607964905532901256830520853842229339934627490886695758869090264708879078822474813427026830199218992169041210375888361249581490718152792634187599105727268541546152551770103278615278243397770477170839133080508265888418484366360506080679025660233339417029658401642302308892633176060750808910391772670396672439355422410915920941876007506784793695834589856768721325012621591808693386524461724513418609305084578490126291755296046095856360970543739248798047843126749430696605286930368039789430090539121003774351097065431638491969067603206466160587547791697879861085259158655251289530533951304115707722448934532993025649669662459227908440818956397543769610359981165290265287064487872858298736373636246835199871257073129888793272333620204739110099047006601652380821554772630130220510161373508545428897445950127157953172127430249182057858744868011896749523595249170735456793421520265046277936199691673333543364021770512712822825963610374138428750919279655169206018578090937828834416214812777579157373220048156913733779199295009012216874190174238516120888404131115090030559750968785501410461684202317132523626432410620365955662919548550813331181748147214291570911087869999031096425694882745303903724420711960338330949448490548401034189937945144758259351358579587481433100313439144182080240216036468706389042960283534448515935383929709929229517539914677339707669063797811921350751010062197565827436829852623386057737329683504648333591270047757059638407566016928506200859862692628680450899973571111071791705212470776081978833632286545424870386502459304657725224848049435407566114328433412745845344377416826549626779866034165317581034301294398946026561379297091091382230985762590754921334542452278311941159441156793637936111689713197465068103486251459494650230221731133896979602970915954053067419344445076579289445042186828029134936980950768836672519281673811965589208307359279360594347078511245734323644727750673222599117503414726428630327081377671077009153145612791921057952693602831474842247472747144387292824907299343764325631475344345599361927954403515472838595913427063977145774066977205045902943537958898893539152512748391666774351224816173181979850731262295606171638299506627969601253430408693606263091262130557177195430238462996258603493419923980595477914394952381991571524565080058322904908310933698458611350984756519165429338610340264642872442481708113585180703692905692870810651497172610484433718167841764270407285873049931219291827284007319370868674379576184258144573937178893351867106364252342288970262566062354092802806732610053524803703202865511207164928449268355775438632314510656383625116420643239914167832400374091713815563984536588367555589775520686625391051473673102015546552670613829997775686267854483592963651833797437611157132892429299817835994548129790123436626044687135040807625768394625346504189272558862089743626803667906577374126594049056332213940656403356058380065223295723377368468974116434102918165378656468154848089140360369828219386834571953274293630284307176718219134503511296986539492541750451341157832731106449767926862391061651060817572368373218041911738026796628738951016286257455590611467095504209438405029261350886228183008413010326625909170982694159399300756114276866896410520447353941026014664842253410067537948060652566079372630075190889776685032016235844463046028477104891877773208385762998462221744810914059559719532877825353037289493227601115177212462765972241046104824470942431872110158383949354043860470145308464541573523027318529492589854782409868498251738369129588420743230656308342990920664631188846567636882304417178176861592176801754211605775643825014923124804645785913611887023663722622300007752882343272056508615595289902578505633129514123986951976324819521038134358082212288989733930060070442169936877970783414048272564029226831073996280382547842622086603135223698965998375337356270583394307717011097083209133351947365785960810395339083261836905050494025247995497427390264857034825475137462005558111844839429011779784822635162420896937267092130822174836273547243789590028682861943582367329928124323826074746161791300038666571429598709547152321202934889514872739845851480838238380545373855304462958096714640072995069419364546566935500906573398640070089690486574656707917433138183308451898519615888328922385316950325790785485487753758388848333864304925758579549639313380335509604739041876247696281370536651194076578897591136239446007643276541857004768550538396034364580282527667455602667210577436510055806151713616049155380417458333949051703901766361034892393599537364647275925392538627837777567186125726569694701697784366963524190364989064478060582304863530230026656131696340384627556888765030849917489392402624143841330766075611143061421876255780251118829531511264115760868167082611549232401575664088153920438077910567701274388172771970932530525391521523341053911024402483514182917255707400215988597488879292687738224159166248378710835162584724689927744799515282559860366131214308942744276198427933077426595998711331978526194995639410095205137033869038285824820547120595028171099049978622389994446619964080007093883015928898463176901698418066500825020892672853168639940246130366329906794854106089134489472826116001066067977545818798533678554666395638167640821285199394570252038243720085585191137439496356398807791907157048670821776082416905528220737174805766559177134283694168593197653979893916199909188737091729197303021324288707874305066387556659889751202821639584628626879019540879801531268803723930539031220208999255824920126884669130948305419166225238876389660123756272871329898362969875059564246324587386446015533842504421050252163652319209090178794384591685803731051754675294764775388589952677629608412200358327789508057369508113635558299179602849373245835665643560513470766345998045060446870128470883745154518148575517995293756682231135687588669343822738456994757485462637055645195136863646857822901151108701384922633895279713408929421845121498955358240880710458717242468247521981064550329002817308962216124557202664407433346804254870450077242699950826920692716872368617999951946435549242917763755349866816237636171321842277794149072275457835723966287298890171923059603080099326932815662955964830499934139731520016076081725801255619238450498680286782471090009687444706184245627468791156336682237307345168826600716685628986272353503485294598110784068717178311322344603188843351807681718971071958665245711633561653389515552820395300361835348130537610239074944631638169433266135450055109696492822073044913865902577283376749284039061249102814835732237088955164301072618331182647127152664678830551953791176579806208956884134460776290837360692596448343905826612167663555138048378634058085802092621708509019475228439819229217716096267997521163241175916466395957711487715751436507058947087872843813719459340792836087002044077913235207519417172376214308602300944679875909504351657641404991222529824433244206970437795009018172900698911935329714907838546629959745477862614150870611479410028485777922545929930302760787878879648967351851081626120641366045544713992535390645241684112587775240898663451109904729418128391219959696915053584592956026572374971311861747668429594395635604832059096947160703267263942696036698003324922568394934062877011747514142843102592560020830646140207357433992058356363136438882560240679025988966871913817399411102203087507947559712881176325535958452755883596987144789651250928441734339616849398043413935052766570170168491675759316083819563666298360973260224315374777610167287844834899841783565925827221659919147986891937445340378609281761664412590218760964625583447179818763782161755279643292218103938737316258062828107252105896825935629137872236324852391789521607926001984872001998220310980996179161688664735477291336889187201303128915309231005504591945357424073121924856274011212954266911686829358929853215002283904601509723316321084980086692491781438529686765827195358309311561179127173116465977473994784817568889472096891447653291015850014732537454851608844419745365846830141010828281982847729078576212940446408463149121586643782700952998878673277641934392934553107014902656484646339808368344169244165866226603382822244940566228530759361551434197721697318164834968999091632192484058365849595556351604177218123539196846350874514666033322277526571338870874519408969663901587881019403162734523949470700120687041116724461118556958060891474869304640479857534535357473641245155550178061549491882742926509069485693462699928870103131795005363942831027140840604685611928362771500202401470612828677838025307950084913727916653420453565240380717385104286572764789277475503812906854279251298911664830729760217187125070688508460299871730320112569150196705722951116230800410051682607539889403231836267945214299230734970759250185537819350052542457496095328236704240923163790740461985285647952399618006447311814388128994334002416195553441304529341897404056281988382840061058799352206732680972684048130871291749524481133233370168836644629689889810914200257661301486315509523461229973665026111090816424561781545727808035252033602452670630295252466100653797566822488687164927337166473122824848503601386926715590955608840668671678756179848007339906854451814860902047894367245606865536564949352982646880920608289970053742654098371220062664823438242897995676570639520100645697057251917997059499915783621492155604682477203914542820562882991581385059076047963178565577047796369762152648136707909840867406550436465719333782774617458168153872116819614000430979316365856597462317251681894795927009372385612565914738013707903920338355363417825517563369249616704694111606764719677758519779570645957068630962145070001732719630008420225969912804582687131583055434729952845374174493885275813981332771192080080747745261580246647875593772226950874128735291490273794255675526836995347338246226006477901351420823072223863727662946200961834047292539484450572867771313665479859767344458411695889872654921077402325907307557723373408596883083357131674172204281309263379898849635959815253177714285985598430583568675137850570803409946594291604873026747049654129157576712033700153058792728451658558296791867035846168531025096901699154832361006538194943794775604169503452935476954660821772051628073860863417374732797172811730405375154481370136220726527653245194487823065148701133669707669384037076041558550446748218114738218520114127216493530065863847429255102524877606127384686036304103430051845459776901117276361694105898596182664878158086596122551611950817335800085420400398177162899746277941402637127381974056715223581878004914021059326457152235427675202821346056301490825929276411990316141769995544755717087120118424584295633401604619861097054847799469094100456472001259211529749417206616464172642814606480263926235965770009840962394599446863226328489652697652982776732528403747556464970397704753511607256961459634425819907296881235216513961447566719980419487989646556353312128511908085553920331540700177843760086010760123116924370261970479668297590593608362497992301065287827358307315413346975726432596808474329058818551699472344689845228452096002130022134497883430869383253118191451971821948384440127215104447282819544974025806549309518783728143349794781758413676103541868968242108567788085448958325748796020732173332063340211454192247002218490241828742458359866482141755338469416639222243309249167631312028244798992375711923790895473369874358656250883105442058035034429085492846079572995346935357971132245634580417941423358024423541072913519044962498507660856756889876861825128293516893346723369851998128509837296422730694784169765084873918597146752119352754431161486987045206055390250548752452298385654029318775199129176527714645354656647898787961467275224472687282075581922738035598096773575563701219686737785487384888123293410337678653901797139463488773362853969836806060430119376511835976309495098097326294586922621395688278222316900505188731537254968727610758951127680369409734867863949373751579237610402237046458588973447148750240814235614987774408838686269617803335830244268510263102118923366159166924940601135140648269801180204806833350897113865233889844144716785270134964348110859839349683139926520508692848356888805857077428044226792599417485864296984994466474419337116456229230284776555018056063120746619773104994945280112425215975106903213780390086528695530782894297335963458376309636090842094797294075562828592244676450976296547473596396743619083078432026544068038985772944757470640019950504651624225861223336783705388232676790122041264882643838862657848514778571296099304424351864171229889981806717176288002777431289805866439104314174706028775659527800086984318687487171782935516562678917184660103417040589811640691623929819535554516571015316866257928214103698784140654542355141446297878538002813686326811907238906498212589307191737076897469600141265107096243513112824891817371839135084146675299495558260056533640667052445924656613452641868915608922007070854842451002667230073366431409744714974767267465802375853170118731909746739760719278829035327657509682276545302170893766332653016773349525382737914957975647879467962709110136827448694569746841782088777109674833078751536444502984798326202115424062591508629032639257573003341785624944750225874171616903257846390261929894271959097887422764493301616206505496243562330068493741986821416906620063426176809097607852939165200933049089504850948771252667366103353860341954709481854821204584520481110254792316072006460974467248402838139317966333755863307719775811463256840682069182748277247667036431908917094870114439419762024266658738612594699009241724889464168282485467302069904576419004924749858173233233693083132977648402576404464626306537748394056455889269332759298460313393928019552911502069537670763647327013923168224759705062354994707082277421332603057467924126670471113826263483428345427527253985150290574661969490225607779304721426343117131919067462927560606482157227560733187572599938517129659950156251812107283383502556456803738282145819632317572153436660549579529133998719481425645808991477522896265953696430833540165214775420086971220201947366068450479632883649756609257777828417603127339781676126479354916963815862657813309642670401049607442163671146012478444750457106007730288670117010002239341044077275756830836874357766095951167313136184776155780248802151358059946844950975712318868516766441819767247884883900857037406547466476197593350047016176963639430759027855966196801667699766718419555621924702343167510823083593821990400240622259335836793735574982574496726323444764412555588602060900743369368190784971919226468196810436099013603084859193349503269188416900438351030431297432258342543838589669415789184441290485587355920721565614249753660962822232314652348063255286488792758852367466980530531404524938750555244022889591870993869842601521929965641986356604010160272584290529725525623096911723476764777191389521054437183816352221071485544704654323983300133770918444409521862361499782565033757250752611310358375239038671957003178928859972480892852977995672054233799984413386116072277668482274102780465433503753891231028911013267439489472731351437814635897051146606227895625394808331885859802506457260473936013975608600117005066557368632443989446387048446950804945036237218397947912980925525999863855754757687970974697564011249018578669883471125918405986649003570461590613978881086029892305220108627402989110913644664330759638330288640022220710353264898546040213304532430276144471185090110133598782185183612596346880231342653696946787793465888507049802714298439505573435587382632221718487005300706466505426532084329984420545597991208397640563463313360795384081005663127908533997166131560761004142643284774233203441984703539636350081188633683928100881757927641657138536561648596836918577478229290067357384204965701345718928949068565617141572376513760014700102443365296895160239173546722302577021764785989733905116286349453991019653190929579066663191871876466896349139559056410827844113379799451889177296315448600691438924621048414707978661676423322746861369369043482885780865722598647273679712589180959757359465168677286854382284128941907784432119016820733169643373987730046054370112750558060885165162475875975173036391341606064007976352638109346740792685744349901088536825207895505412142234809570471380251340187182670827677278954188786174357147665036720938578435094375245731043433467608518138212329202555176613990321706763966110567767257309744768321144363973638230719117469231054559145541652019185908316822063676954208461952811436317937796585878628776940084047630428870127467324219726471497508038043963011933202085602860921344712812066277693521612557119477595030640475473813940785737548144284377682775939928497862576027770928304571923241645893549735285388351041853629942203708932567840936121376840684253951166966988511862082889938560735708458122576145783233195785826389541744025648147541115794754136593617599702012694142003724886797518926891395415973645102710519939021773450153065160219373719463468978140870128111181731594587966342058906023877019922717904252053229381321677034148677388241074248860137444669069748311015294548063229190498292434719719072561393093718722873546446811347547504221056697298684653776073433764535658385197688191244036211769487447736568644268400678021301185692021610576509238917688726662056391879371538571843527674048158685170071657401368700874181304202492427828362429964781765836491009784964651940957122802300022215583561969439090391093082910209263200233969404827413041182427821190110736212063864326794700508948950071747463679784053057704243332954306070276273949618811225238656052148356032435274100605121539423771049137929961207451362352801437643338876932229383324273966538233150970587638292220680830320524864947717075382933036884979277295541626341359852990870744019131690526421950453930597554701597677716433409850227357896531787904130861548580399784889886051951641178579316843923217814303065921203013738816438418784880993874271932700741369058275946040976648618035276759945650844120796443871718361444922293589038420775024091903857693307380342523640526107581970112133218248405576020984160526261273980822372894129843765908224672546739838367441199457071029691174996836165410114653634957563117049018254910180443560476565226895940107208563237277493051756579105368408095691149667365639600820959119469965649266591468230141122468148982521103437010803657990392520138335930569832549050321828126771513583804522198161074296502948479821202436027693273450188429677011084199354174397803434277866940706101368024537808493114402633205359153396915203392798510821156963282272783672892138825266256689899199267470943387898472815207674504851948951003408524924431775704218652484934330612704574479101530317279834718904427125046623534920139524261935412766366355271024620040923836462577078370048861534996805372598015267339562816695315438163249195281350672762934061875021171324340554954871077093778910182952794821009932936651333693885708670652599543053854015481266483112985998652229498889697925514435010813173017392105049643854505575822396661285256897915127026823675314483431804700604896726510112373650851014539576921207321342232767442670734213535948235745830291662904568667067313068385588442968590626954299002522328672650732940796169687094560813905028199149889893290688943910358749481693556439347483037223294112012900083614697160232420647386682412520016046589845567417231261390145993642404505932756002870304916693507883248786902915469051078545656270332372606210545974372535276642591378088197914285161778280104451148312042675255090736707296107536267209821530017246661713031228080939020356390515683493999871154840421931881986452603337602447613844318833218709168072605290114579423857274182000866779789182605637169869620844124208656660087706277208464737249072076460226583777364897012329992896503704580265990759811561212503747643542456057591699579037439666324583512763116736969274122199668791237407338995032701153315676910233232648190430385274711600023388348174001888230679046929471105600107589422121712013759692843731793024914423885049564334038642302374205457275577549752451903248624915647096842420327658483060990173119337884350646123370662326926992901666762767958049842330583531559610567122950098154261430615929123230626665724072917458729109813956666560705649335974823819177079106399575582682065937149486916646758501025814575392504815195100181981083892135126128471092222545759577540091539136562601321084980400953959291493479399539011303181520489423015012986522504815214697537784227542548593987949156759431638189756183258357737095404568321409715310993936870028353516089052769570833951597913425892974837572059605943961747884057321213129568028950431114185670543867161245362316695846355908900131222632201313652439802514535342888709241401108997649938376829252989447397765323776206766461162509277829830589680031833821598190948150991448486491881217162285298020615011608314697810787495313988851120763119606434275200865024100231929508860025040606725286498609366989288987298718140960914426869075231099373001807710099567310322771323365213268467270492521880074013710578579350693651422178849965221515235093358522907791163655848018752682967780322590019007004763287522877231184474045190091273560602015110980758153126988627724531213341911291883490207881174829946309783971937410946702814863646403104313374707189878282864262787585014828478669496685887952943726973433526830813433063552297130803546709584791986875215475774179359530720634038789905818779972973983012893021083552048441938509665025251959425452194417577726815019701015323860985777669113564372736110408191135526413667832453291731835389880694995412789220539400429131614406177297531904333331164770846277195773699386620628400459251149249759101659296313859314283753114340248726956395083770935057349089140827992013065920184224780850454648449446991547473608963308264121911968203238844280122238415521896132411761305651279430483768992946374006301181425134937189857588351216294780831487832939608420888464632328868710855407051308162131722070730385440546962861712027243535566427810410002370378476330515598475948146665954484599060595186706518559874293950237499904586746823568147213803043005411403281945651940682776480900819352088452665297103749714050821230867252711970626207776041206326242053360732544692179916915166569238931713594325286088605888452783753382832015632159441986969839716759641381307542709945853398702995905520947505045607060511086220679332776783132105440143769235723776614495164543135027366083101014321514292048492597098538721362227250001731987788335766514596094751356095240541120227312197922878081908838435037047118302874030204261760701145634656085495694850133351537979440029872081560233842692260842302570930989069655868004241618482638840247749590914592831780744713059527671356208583364782312279377216862537519646211211524297640611937542265908590699878992209531924495189391163193901519266100628119291706715805637626371899872739332783048149672577480810684123452421784927914212948936517890518675543898175975078863582369119487779324297201010017599553839684231290359483483762090530129532811677781641156952286040634908561392069690599941407059064037954489322659859368453023109598197424422359939519108196902417553456517736247327687639607518208487212678165970593222639860378354743071227574138357952402131855392162777869486725223664470202175282679883787751161026799543849381532137890410060248241430003406665726201533183981263749004993711176587306572961974792217951533050694872675456243278343445891361283018219364737549915442696430805960784112973617939007305538704110687015104616619769804950227185529469014732063737540482792432111946952742311362128795345238546240466665835949521319749002672419089644951782282767681737582300268217942297714914175474748198274013849786811784028308122141286755827144820965249986603981652876545954290566187414465389781744312340408045653224858105481144555786447818077010272296400137035052463485351213200769210190430309810443589841491094838873346315946046245588095230625581405353758528948426901229107781686237113796179568354153091044427724338006279613228218802638656779304597465699192731371490679480543027502726800504439401636202658342850453030143339385460724972494019279237288354444787182964404600553566862957218920318725116070552490923619557307919583158322422244877685472879450945247150946310306017527374886101819705244732862188514763342963647658967889163362927295127343779222170876495291670973422126399468223182771819002617279351631786851965734649983818692905315688781443489148505952414366333875472764495653555873680795451296203823866261944237229234033713918524479944681481454954658777994503814429931169055940864085454133355488468708230643622787860005389143321378205609349252536885318276289377449182232466624311576912053532536497308982766253113953760914733370372079999543668881896578710491436780160193514318325807402250740977305815580639261863529244665142716569576499682014026734239917589919978142153595332541295532754280315972736253474163159029112064222551801566210512584765652540323800158108052588899398853017836206022109804467159871935396299150057282336030008453203288349152251892986662993554696015527169821913290837408884243192583744025759723247308733310611283492860970773832840133002486764393071573154395221802889767563590832652819842084572172954755403630222886415441448129381003688691916585136082180329659276359025593738418784387162789506677543740516722809234722258175514203586446177213595013316568447576750790644476072590887503936281232864679931398021922531141129073675603951613893228850430409816272725783114343991542395537905825651979093653920510160699377369235161127634387304507541620619532698986431790404687202361264059008758320341599025712971929653920128638206451891920396328979517626485561298660596191454845936491927277420827758686435551206052839538804743527939577005618264995763098216880050050669060323913813519653609232704040271580049045827624018736009140754259456254963119707254943340000354384138711612294340286490665285383337431841954592400418001626524357549034632928417117124239223056866961601293097101915821548666673416530885302907699926029689557404410088600276537141489122440610112037994321058266331423171148197584511546922275339151125985204681469799502178749309345668077508893005760198088789148314554934092768993929447951968778399885127386068005388047783025649890208915869904644869064193005206140695984879541187081776488876669906136361568192331159677097600397163186197853049205333802464769369495454168741711609957420238589898811357942787122833855937889127607807649720607302630199087423295422844856439097452571130463421978489554720173705872527446318173453302398546605308918316567151947991804436768529240658802127486753714388997994081559617382461898921640230680855910066288896062412472596181632370725458615482977251545226152025969443452488172442056410631744421548618107957406390403328984759184862919280453810725499788266502632555474756104246743558169747101270203311642091421175814074911733320384894431976886101837277879838099622944335321169764026262617614756347027027746811557855348611158447406352816675159620310459196252041264674022404357052122017273711744370026677119351346111776539544114648377279145050681392343301819001261644345530734217739486774399894238991281136011142371478447552809055802844052961254439485501059504211845329551021258070680066526832411984279182862897584101967111102557719266578400644084019623900971893542552892804916828492457473680030442129466573200971536804277595848542679203103548690065558677552329858464950440687936287018140815685372962628176421529694795995235328000629379045747222165478421941340542202294253189556541176128520514839500476375054438050458050479689394891419246856135230445065943463911453457654256003077621001906362509989499221801370586344419061542074177334414684587387747645152150383908398932169294602483928585027720305554860719734309783017246521458930581852952175863622975739050394868162755190753760716739734639192469879778506864920894459313781298772214576576433207059912246668829273731446001996355536008039238225632393154684645163831758658198698022380318382442711996627121341731349000087760821154264286101810944470300450362142010257927910861908889768935549302994934023163885045039840769641186604065868805958132989873448377459559295045296141130490019210723352913779382371233042230430093817684852369290220217882713321278813266401696511632003727914217729081089518153712977873196522570399825360156311208135036809350548505080855457497432855908097309545371676124921616601240964299303054168034244711201506611521019824446676336459862925257376553601249083239451111805769770765542175386934022225553143245850935613999346438829908254934027830378035384308487461149120243273458231161698317062775317838260362038585028961893753281359622251933549299269572435840495158626355359495535785904675642790908631230559541396709800726143200594373519953089002768799510984802486843241322826629117528439217082684364183924175277000820185134565668021248011099573395237855290558262445455224282974048567008137856987423900041348446806247609106828508003404013995242394146895807264329479574608579321922052221391200367997096812463212404284661925883142330352858256345292970653889377407168104437047373247774761976841977527665579773959653696578789450374068924426449059867963219477690402526033266159080205328999916391051368439112576568102673355521818756751625463434605802337121297436594003515459664864625305667753037901535040299723459179740901042546136840411410275187439498754484096199194186501192331588828019897368676935916460783091056271178802161446727150672897594334991590692516299363128572160628489807193054788495364500885222626833893872563202956393440155892597806763250585051035116210158715300259636672484030670496296789083911950952455669942815114180730634799975263042726900030423019763021898136564599877991858933344418514314085009017526580405461540847749184240984844167949730417234117997983148354492220364774410126405622599690881922692916159167472712049255698256499249663726744447314074155156870821045249420735742699882216918073214294583770046149510026909541654533568044608763286575276526132187608970925871284454690709157851488391361410188189600690023987138769506415751762436863969348465867953562719244368265069282525774579417174478396454042399912192692420155314807445248900668110658013063569063084341650471976378904644247270157838743065159767679952694822054037907474889186040414181364894004304910385999155612556409043676761282070648437866255992148042144390025232411068779541171005155244662495910803408380516059452973015268259856699634039806931820484908039854316315066947683830903483556542152124731905355180826945287339994652088116344694812088428911068131589001566325078306172175988162513257872317716602430984116050401908809354381211195507084569417318644064420899284638441024428675652723106565255109492602584427496401603077946264452367202350565365159595496795626926260031711343129856823979081457440954956319901717830204074190873139260649591863249279480872073478024846659517872786302640708663265403454597079748103393476764319031572956685034676293260551722966271884204529072890618386205496887944439968006217292577939772925959080528067747707475099907300213975723715737813016386449705710153656929384503886972443529393284996656048153547603665527592422230803611570131293989642793434829391657382218073257274738972713251353087881783124736446417050035043475223233372420921554597681568170307926410783409806829982111990629865802952922645882221506072143587046562288824147294761112969152948970530344627657205957652909246431148435214970895840041075158255729714941932673757901419294735660756164988165050863468770328946077016422774120582287852333373961585968991248418810295960493768549438031226580333115688545333684692083966432106171989536407994068335548156062847803525186442464495073366776325237727762675099419665787294849165649535677340139754395671966590537101214101454456570889732055772546847745411427792929047362815905121721437870506506797010185405226901128771512091634750640137347603459352443342196672278134509441959866058511918475212445255698773708075806991484832966844715749547312550103546804796375170253976698073676248534218488993883788910151530876737721929514544234685447869497319476816804595627630759627728798108070633444746578637571436396732618195135163962905539962302328488475244373718481540152470375414793515945721808022369693131641913903776524534952944924093375914823971884040510796579445126349287139431940991108749714587170802617166981137203243600742678413680488018516735910004921476279902178499806539559509909758981340951004207780111727220020259621433170648780434005402377570734897111316335190500598193734486960009938445194226988273239094546221052599049543653008437191228764537627554524529006169475370490838639061625147094282289520480675699359662230822761474260518607370519179614910299149233169317864122699039725983155945229010285779964573566747983763305306016280421568831160887236344136188489617061232488591751573006035453221300940283434140309525280044119758615020454750585235972647326022306976075039859417624875615516476815388443677088836565337257194098972071595731527522581382831447928877071360129124691207710009637757539041437032845955629561256981271377450653286470354095652832177095903120818572847485907284204004312758811588006924617682337964463361437705516896903363074168069510278573056480492777054227097755070853421930605530433290987103263559141078918236818787328692460197028177450700089646686583742594438676668167118512694616884798291726067375546498220352955378235778447217808733413655831403588253150928533722841905682644500729702037278422440709039971762108882583595005135062825168172283695109153528972605952856842118845021435931191861424531050532647290368434196422557213388448689925307540056718219137193970662069031616735598298101799072768971198335575693617888708527364336082275533181045468937527442703286757369001709119414539811410345490014658631986546879764706229103663538928986053703722535966917651650418846130855699878602368590039923328828839940229001694924544927917679885698536862256181378056516214578562476007444697775273048592410149267757430838433223712474956928849921226263291182553553281315072918486660196209394879572403488191603431697544352182603295282596865053919157572094143885778376333265498218036740626099125140721293653505444913931395704262045737932221165139064700498977575938053906052081238121701376201084081744624271018925146106727017000767002025733374380929497655519232353422377350378524742086121551046172953430835315617691571685532172752694688254287925486616684686891037450894038914124012856240806062987851570404041135911426174151579336049971254193179949768648027634240270332501294060812793697218821383440687764485466509507954502811462562033464062577338003404899532737369684952602715049016348921869199012117219799221680404036679896602228802244413750284823210768117924066656944687510084269054340406633579209515594000359703366010284670443852409377204139307233361027563548574863225244113274173635034305569108149688436948912672540443983083912677077582559903924973071921776772484017043216969320986474705508548657493749106218945935011060415189955553405899463091975239230072182502505464949461761507044766688202348874352518730892136627561623631757483071218913414776973667052968592930934185096219991234429739927839939449051841270127330293662774120109843792688659865477046931779508336385192754801665681530823281537212844491251102140159232724805028929799098451928480196700690749047109682692041810398410729583321050618206882975028735396955534365421719855101121599386246893119799142087150771483678881201627192104254410144365196772283642167662814547278143618083926412577506050786097913482098607057514349068733019586138915722651098416088091934223388306776776070952653795172668506550377605478229207669467655635463897476582465492025986077927291164582670323078751942679356796889687525573546077892331770894957286568780808688195557112435089249996752038038990535328838531184981831951845208217994824274322917307079865123917716744844152514572969916882508831465898507381879872516618957923223440699450534071376214573583036890544565856767956125441111665350481442985755171798505163004984397659095320480574221150477911399763086501917142938586078156411001268203375386069499924509252116974866581290811900931681721916980609796445390279766202152364119515981941604726071135308418636506048739845059565490092529328351021263566632087513957390968936712746545005470183238943002999492663686604927499455410262772444940283086409273841536100323258290667562039110145403659351727318737317723397801238699013157057879701052723170823496226176355828694083918927914900767939165286364181466266261316760628077574994451124932178226953948832283849178270382391137437210226593845880331778293311765657858401795632795365267401138240621960668480768765703517576613158197006905847763395412420608803148553224301089858633117984652328699062944785868033971861514048487323282945819547465013939142213494093481772584823946162920482825891306302967000596172226889079685890829845111248329104105045945177801920471251404973434347692744649676141684232560711654858478545819020039053964667514730808834873696970836248338751146160327802950590472608165795515935381836038437050378469527142437475130086771915963718019289947232349307050997964807244099767989180298142872287610764787259377224649830916566288575490442586785698180290884847872735441887145286879072812497095014071896030264853043663600603477749448653309180634490602225686107055097209859158259695839159729975379464707275364108841321878689912077969572252418607601241956364139449642581818312994931417796846772477683874309174344880354837524034655890078333653061932943333289146887272831336773391606824577232247900617713979061456021614590800504709474489025025550831053510478876489556565408851498361835784650702604714385635970411021226235255980282752013461128272131148256214218031263373973892785062872116244258648501434469100475347567233435000696294728042878358242073152568093546797457312857642343996130326700028364789151945372532957829630927325314809676049336636937841842706516751093149342327061919763882967305714633579442682212323620409578645753492176848239700403157158999728862155222063633536296588994331519234484020660147457699569895118409617729417034933359001890112134054076499095709583575603739561371552553703862789155042780468843629372496498787724504936395632704147616872130126643667798821486135897928845266855797171549583894385298287467090622329025495547322968462947373116861989016523775827633475596656920402873999448046575982753502255858663558258438536267665503128054592463647416276353598850899838340961772094464409154962443467315494804294603079178800545243095927718775123165171948236831913254172762147825979614870630012620392010935191033547204298556150870209703977103918561401763005944786812865056064658898942528086943770363697985755460458805122863169500319971452041685023129495852575087182212138216118356021088682741512379278761952562509630626036509036590820859386949423323354860020945158947962476291260719286881981247439656664741002872113712637539053604132093363809021426464835762259143649476935790903420681820517963762543886375258924778809018151013387326461791291400381485573254467677576395983116657872934674990714160837513100612619175678497968791132555079180672063048607056140403874552453763037569066175926281166764698361004910250724338466569184194509539107993261075176935600539803718636658493163839256403954159272560204581884875207571082323647542038103089344061340052198090995035811843390499529209463812941294791215844722401316409372036381998085880772838735110024226229462903145523737278972668537314990226118797033867688350440471027054762984949628545195311487748957932589216819997425136856563594716293855810066710506365998750111340115999627748903615053656118032879390110155202187423645727410541947614149414213726218581363357305199976123397749946776950164527528436050640129475596598048598347578309013496934662444672217288585628017484364211622970624164461058660427949176320060333598411573772282390057179311646397498163702340694901132634126359742049069244792224125665603788395048716612604562278181103797900373652800123198653757359716958095722839487670501784990427729013528542364594002762780678773547699388963748136057426107527366564967460691063187706730281440942121492464702898949987860882281928603687195652758599217790244532318336630189038744430154390022689592784206895881076011760507789947712696591703370102965836919226549931351341675429553458141806086591381235070729161116419886441479297648389637880506735714894980280083864038860382903876443107174750385865041213636438310804433624284133396231515835846053489220475962562808160044939722395838863146756117051253637600940957757101940674075396722649646603145084477382709041680414260585337479076279154662500575446450109045556376585276304185021291793276315802744746599423353643625119373371823403924074325857861993453717830383246543967144445676268124551817715521249678719341140994738818655636969951391259070750546948534645347530605210849669106281708304651996484003391399956614162038539734733299864972231936399832136607187242701358466139092876517297352282087621964590241362643603179420772424979148895806889071331820389048340852821883446114014793220873447856788694995358063773214540517034135564049795551805399219818155109007900550714872863341826881219608250609110675038522719813087203130429123466602978649925415516172300604059087602266115005605880577190878890623119433303857898843035455342372613859123826752657421779786582829113492201047739623998134245823112174744737661975074696728670666655243398737543953248586415365690522277212279183077777625914449412590485077875167592382217194835568135861452183494221403849033124411529027611658466511322233720618888170964713666189287746705235590718431169568656262215705560524782905799393362053234906882995708207875297234372330007284671205505190994394538387942291692920625687003948184113822694034149294854439859964270070297412480421157573472487432986365508346142203014420918678984325977250190834397857516890293784498846628878007457148780587870330404771657610412069656727559493326502754449586110663301569299787129897483769279332110881392944565500362659291803130336864281719386764987660614392090120845159541531201532655659402082099892751088303426979112232496120216346368971889858127000199118357309801530707705053003011707976400708472888054780511259133321081254935129647700033235650496246618702547633249617661003624433357706248877700390836681553433361684757988108663561575888688538384597361975834254074504009534409610621672957853090022560890784293935996255448888655836619308276286559327823589025337821158988708041732924735015795094496538245100934488048526828316202578970954822690798194540422754664649599863694701618500022763091737882764732379694922252621848016290155529750567766540792033157218191339779332182436537095136213881050194890113172359084074279829990059082406049354104036541335745606707048145386441402139810428656456665307396206037225225158676175393024610894899246385634606301496984836827751929136548543257959421353847349089505542151775845852238170901133066382284456235972526296343285737030442986351112679429772711578545688606460695647319663987030217373111147982731256024815566165459208516826805170724052617672631677090516530758062590659935590333011618173371181568944904695878539158500646569209463849043809053216188782939564008272467178720038298927137020988426788221970366992230217928338541405885491147805517991759520797406786921043878313981465588571840727740180255847602189651858235953661758502636202393816772694337179852484283692110667479546693717417678034297426555447053778860724082091552522599451544537973497334319276615058870060183859168782005892452911214669406358509822574662965564077376321172411249574210343527970861529075255266035355686418431087825979631085951457938245316583795510398336033537992312762659374172584224366005084424155794488073408266433578953648609545671236980816917958541524236893463392779531529733683321958670438920154401903645752277321002499644209118804756039126109768856669227786561102542069262450211192344159035837126359804823671942219399179284763854704449795031797924967525554600204150237523835695822244958545402131308862823870094032669308652729556253625726318201756329851054906445217204606130865099392548439986692766838976994587651900891385878025989904722018200953647826189830472693210454491733187338975736011223346356264096419312542866352480007901344075322457995783290429361652710265048037304514705575463412940363455094181537688491908420665171651658372545498112511040968118519313099181709870219812506510969113630067688417502149152612918541319023039029304792496505196478318044663261906765218981551661945107047591335761847402315631088412465692463793418253261151464240697361126654189628669738486057124724094072579416073679310965905432570483687506918198162234445056487774117128043157556097589608266758382849490607461236828332992250459185194717136921806384451402426141681627078383533475171695070887891337676757465814553306432573170100574479044580465357731561374204144345579886613168559639134878945334931177677461196065700552508871543227095974750230291654046449539308348531476829194543649367263638540672054324515547508377139849931549909902216017797396423128695913335550202409767275071991912026762838064391930893732842601495330172307941312148001636670034643373618725774487848761676143121258591240676868318624982453158381518916379111667299595225792590405062438034867487935363926747874268226057597611160800637727248844091450679631743932052609874377257231517100035749152682843774448601826933232879520992902200529282365807565443547309150426918395126684763824670374426480062025008650454600240543661157014066292781587699315420540860104843915658303830301286847419700363391985931786187185662220409790856014900756057447078143224377543111473109986965607462114416627903794160232723983598686033544208735430440933538392993474111356331883531354702101793915020101323585034637633092321167743685495494996856613380862685740674825857119466683560488833667477492727702906533054747800796856880655669979396838903733856244328386774416322339315299329253595270626550746740934645826476301683081600855744763070030610921699493628464226540116538700451764969537809470859350180022713817986854607269725925500440390721905525340237447099133527268419175151887759552198058688889619935371343701128137959497994137471477914287949308952056179000802615459549637695863408438941187849899137649599132687116312186815735098855897474706211151019721374705809478858752407932737561168694722436206447941965826573751405217124692335741738212252691531115086648090113628377586404057422342600566391122659771356717801567390954916291333411602514121702117217615049194538793480748111099980837260678181347568910563750552843575928612497199249566398780432873338404257584768095432724272386869963225519977415303042473227727805720471986299636412520407863106494501246896847927917040262702124816920400867836707408552210850131596020062280752269502792210488407439498052377682772454064844891437979983617179420678673974494356579326416239270337994504504253618456782120914475496151112649077060630431578647493773234085852939878803669787128085819477903079038860705666294239518994539299796375877208557180113215722747268144893163146621765784066299915956535500164688575659119680643945304772346698479412498762564608755011626069880864232602654844246237184362565049983105955745918311124716729020824763743323933601165465721534087039653894092188939583098709618970385323530519019695681641699155524041136361998670453545735253516744173144788842225574510825111233249310752352383388543757089001561337212974311032205883746764709534088618835478012318532240475770408373859760002659857966586290193891309714405810088496736226692182261266992852683566464870119609838209227170497489136654900679961752227743489228369055019008292984163598305484314428457602680363030993383122657167438231260090427472784347332705562347631464087757883841234645202158764203346811705461279475459081532384858600046268634422966175804332170361627074849398590974338382899051682561067753029448652836735319292636687372383714742402846090548902299777413014897139474207451954233771024400425138961605608594585570414698098723214875826795074955611479105252778700541212567950944310242282428981877206418340096130721127484336587964673896851950169483341467782912077549703816848381727203797439419368271047818546927369336663194897070922646156643658547796475315644871044622733040333599098966023994487835302767349474742134175687956247564838772898112825228085445578217340264183386765341902515277005554267940137044209116916902209876353159756294307382581308463614192935281984719512668583585351791214693982331556371214390754582725183794203849759891513521068147968791914109166744976948791259003335585388810624177720485850093904687020454874196392417160869014722039559844888953622974963546405227555858924421105050651385221769783471962876701724375445541535242772230967635425019424303225839290532146777304320917325842549760448650923989278065634039094729713047429141901909240946772821722875697250300368719109012289693958266406373198321053456076475307332804881199802675597351824302022197078005252776231459532445617356002674915242471081986235387505510740483840479195811561742099652060700698822897169385039873964596946873954322362586028026299962442051534925677103474879678014898956507612186918838675073868830856081691035046136231226470438917076962290373734338627422044111859912940743796423219060471393969572806657609245146808210445486979798526220963258690579771700610285203704497389912650272010137222574522324021715682787449699072382286786288908879607276084957965497476791560027295142354479263656865263985906401034482062514604768449043520818401183842096233547971668773168213806507942372766580330169124265104417765702810332881768894581220291409673161833541033774714678905591451167518603074793046251070705739146517645933112603520783868587172311147056461271944699018898050257618104615512216168273361746606118402537467850928084179760072485053244867574717428749339141605639830825570528698379193027062033497997339828824012802900366121776813833637277354780048819072165248100950983514912554060565127762159487963285931638633939374264145433584919950754341624981856813210393802593368863852655535045597869281667229300231418352864213434964823196619642574849249139527315090741664101130988244544207384232335322296981796583890421894024276075444655293685949793427214835543004353805238866102863638405475580510833993122440334619056920178691243866646250355082118113491835343870549645730803031103304719519209384663268644274215887154183732025096209866709020156657924950147496720014272322603678862353803153408803987311457513974765517281078535903436960661161012721724344798306248300413730612507098457837554362335151864070110447226409204465593357013346754808858811889428596837662643638754926239573791529249605052652653081088540277153306014751468767579055549507761955054359475412545383930528830480172540408471719313742218464839006548899472039909907673498509524570931494299193293952006077562267689971539700010837691195858391838089983042312199464965742332913604974723071228522203802003755543381291130039177698564250435151633388685828892496855552549197566212649649015305591797433905648420508419898826680123760621757530876524053360337806139140668702926880839233315674891384043600518651968729053563485849953596125449339571311997089689253731966774641616676752404009527281720975442478851921528177966075933576309632352934348502295218122103526691601592044108416562242877989713623408504525378849404159163707229734260041941798348198220019925559770761920471833617305768943387797710066389528261328570530311458865839513864872528927504636735686440474720365489466808790698680253036423877136200248212552750731720745232958969174592286658412236327748513439782974575496137136492405157501893613045979597941826399467835591469297110262782287792255663999382972780576566477024512165728255730934042299934789968592158781677164606277046123313220311074573723098934826011693509530247751646107937108315487671838582564500987790576505385578747409091397781597453734765412531458564927457118838433123122866142172476914855571552282415009836107828623553376053638538390460369106828113184476272008487285246842896704437849954391446346072861281401065058238440564470963723935232815051206575559469512071218659131560537686684215868942584362143910822541814707372581636943203175223263059176969002960884042389822267817528357503422561793455372492977760520273634646422504686645369458211872585145733439924537952781676432044797410600634181295409464683806140864801074564130031668538533085418883926382923351575576415026900228905035416396542093913052443225075384414284939671174654567063719977137909679148409119258363484463158643882843362590798280361640397035870238176271889920240800613519266327927470166816593160078654901799002560164822703302374148964128833061079665234417484660418117794639159902432861364537950746253243724716737118241607698355515177860713187636936114143251796735394581148814377815336422202588332119574559600976481211206823512779191609877947883648652242178437559726871361208481406916319776114923305273814848175097871517429897506746112742072029242759625867852760840781755331744105352986728575573142846945961772029661670741051331647935496501188373504726145046896835103512948924294950197888992664460562400187784008360446802902705613829139904587633966588582050174920713753037794621631291246125198406602670532204827683565756249137415129142556281406613621982537913263957382788321729704325725503905204009331683039782780300549421569136029092828558076019818180781025267874973846636769726207497789090226250513366267768315842418739275060510091260345270878682579380285044938194184219144058676565422701211909166990820936905634116319418256811438690853728850370210742701247179493644451208794461858824695724919601128539952016344583035117102247483376232526994300913995526887508424177854897171428740635610128523844356144523968426193931180943290201708124807792054759031225684288553713792329981386537362146582217551315772106428543254827144360738980594612451347032963134097799481823103625070484650516835357044609423393720877844930928507053552423691563593344116379567691660513182657124385404004667066876248897085240710185754296858396548486212100471581586976596535845996483574890603478379717181558214065124202977047226761343303976403895761176475941532344821473595040040672216609377778390630375850073559873141518601548720936148602993483915361202261679393731956210099090752053153221407565192797990140130697512674464328170094363686778102551081102700052811597919868048753184622506983841552159916775429311911626498339526030180560398738832338969712378661665093288617436583852935432921779918101482279361541672884141532992526372154808769112351783537215688891471403461826989267134466589964154860860291931386931554131223074386878223264217600171585638513377814567715222496828172079371525756543385780535133896155303703826255911413264538237023137034455199459180761821929311001157933669001747646810955285096947491920714004085497018392784246724058109948239187410742295215599303359348535699450418816039750474407955568259226935392413409879232786019301492545758730458553525521580962026224872851475521230831867880558039643717794328775298575870054353812789915996491446215464243490017511437277332670677618526557019491247422639533232135334675203136949445215878924804708851348587806454860008677260381292354336011254396383572856779221396568244080359742376586805257954897750019905424465590560277473645737087745182571096836148108955115625363068600988364485299009171629143918537629858451992847049676869408697759746854290925282675721576093569943774227662737035700093869353875686384688003105049996405038462841742120975167919476874383784128257788115672274856892975945457108529353337848309907673718415581622043185163667184767920369200096685691822754700673564845010984757352156695031222255203563816303021142491761675164530616743118582539870939335672853629454031028034177721024909434474258898411215456982329445646794031419539619295744616106800911883874105888795692629042450653294355986715854872062710478634429271757681280387796928550183049232129368932526080740815719914183655431666710426721821006915184936273962273385352036741483601582765682854867808781965109188798800264159513520159115731336780373280197409434986348144392128167732508779413306029991396396222915311914396382340518411147036309081181795111020668977235355447439075086269821172484645882648284742253782017887957235887169218877941000217491074615665901981833930355637569476296189599792507121238110535543056260048158683139293537201822065252227700645519341215773230407041090876929748564829224678206286470976103437450512468055222618684797946666758004603859734991869035565506989641448664516732557449887290662223682722193222628146770938921381694233889594895162303435633231227790602215142530553743364886640957555368950571060246989870003799174418965397980885032009352566194402541931607936641085626389131239417142656249703450308575553474349809213786576468262130589374268707724508530570035118119724326907272225556466377180260927174327017553320044447828613915310498332252322879965705460702008912682134930303949422308818151894674446442391986211249775933574429914671765647324737255154070615532990158441033670934116818454292721157209095105693582193064289760486461065108479282127111257801135792576455910673487684364319553240794573996839127398097100719301958567953763985612842870818460585371682227265396419308184465269675684187169600495071042695117584378162325514955746657607527654908732350378063903037080923731952951038458374520988185917956310239123412814999500187202775389081013440579454446930719001997150592895360447745350184097520894000568391297602237514552521081794415360255966923288143267933846068638785129813044948107950826981708626392397344388074559536170727309095241755192097319792129534662123445969087634509522528471350614896322898688056869930912836922436467966937351663405276476718329769494241684387247790572469028628954909165667321502676332547398358312682563333941291550788536038698898631492058589428288240091419332068429388644889024617212886661692645610665844126268965129020065337529146784417422760723575208728944368017872044099813457172794095796905865753147502792979086185647089276992865718242386849873966036409033369052103675035314178193754022422910930289985797334695368660488950124891736061429999219813162572895153614287731025472943385206809987659668559731290111314619563285171309851079602871516620632882421601492675622608094486103883252369361364457540079799027256939046953891743626527253977381370456590837272822349632329205964090431338734827854135572913695180428050361901063728543417571111272105571363656749396005864154646621314459173517276312768425649577045282770452670437130307199945931496524063662439425791526174546724257858332558426668220451315171781711136561007163879760187828972026824924643761534540980849067523295732945695522987881112250124009342739216702785108172836629916925656383743510080945429442765124334226977129799486899204248934615588566153214851978896586605944463224645779495822677219578732881206001952629584714668468768608599581918564722174477458820323100402394106844135218338528785246493169255793663360068592968582946667859036044769640749373774192500282136033205680538912770827933594896341439199355504198390006154911595681388334434641180755328367033953646457102614601912722543535347079049097515299092292213178207054215514021836989603596353342874534268006285315350053447470419456265705472495331622592426014387750027920194369040241438405568479700970191903218889353123348019201951789122004912080213310092844142562890189845409281466031247985871401169452282202998355008202333238707942610277871090014053756381437904441921707650553138334836755284070008185921969211408478426472720771297572099465249909211770027937209046905392036995604680829010718829839873103120282785864325536262810214351864967224370646456487192211586992745205081783859748763265456585561484956769841352514197703320679815099131812791754479118140781186960086856379504505788794591353458272373241058502499048382209128859702927587695538443476199158181524474259960755944024216460074811000701260937986133332971403383789845789374105368368672222651560759188610745498567931092421196273754987707014544132418488210134162672973304005253397067240135856560598794160953437552779673104355240587824702547608970988094377880972429982840808790334416647149155803965880691945100270355341881626485691401083054891236306546929033842037183573466035639903369970397723402168115327929831813458064309022028218841440966287172522843513843144525787165343835069919339099570618372711211545565180178702247568679723286730228201954270339688600465989015095862830851396145961460066609179688705161409908083829201765755221081940083074972179924899417815583698894829322040009885111902471909438213451703325714414576944252816788484538669684480048424342891229293121928411099830768054873185440038259230869047013760514683745892742782034384214270857366623015752873813912597040069172024876663633755710259133617788569849522793933874329862368113282484163673389750015001424825496949002064049053086499388682151246264602313567194115474749009234490029508261513749347354103267203969760428468841798740577929270105983449182381833334339071770517744377500499536849216137249851208070744166397285775878332583060781424201256718841855158924684353293293207176867722705256893415817027745081872681614126085077669235638582184981892024165558162969944436558355760873566705986860079822604815946678680457890931555014879055704836382707326140490350784989947808203330291603948572135591081276195098013852740184890877452878033144340702219824754728629876726210833957072100108748981358847834536112826624086102688273764581089803674229926311834107198184861362900394205962941648962281106309196399756490255473902178284931941351599803720311352934796027252672936342932394779797742019628805344112440886929777534703646252055948482369003069763165770604379038730024028889594942493107209439510248064990347244280452500417747167184046351550494094596786275787253113035344315319275771186576306993042554865293076665296389367082953867521354681219521751275983613428000874235333965398138499255785664926949883572732691862271981070349078710176655238275089600835115534074545093880359655873029549573026976822874169777570776156747740281981253456785614494889515623806069755653537925478451529584801447177310814705381623588136201536685516469463702626291654016752275870284209675488627657297495538267761784597033419821112063137069589620121106088430673257866155404741095097353164167116452207083826536653785198400910771006956940947776395329144959692678724022045291428930840038095545938399929226677911749163040493817204572276853772950733267194756595467167523984238218178395388079359697347660595007912890021700403547062440971027936790845850814447535153818423652832508360221192848037406244100195174716654535920503811634807759334229270645239259238558479663986048526564633764646481807654179639014040883772553908331654268556398972452194204407147523090122866374272888553738213556451857489427177195891807500601301781528887093448750205356153278049156443744642804976932069730685228797269026526502012723363471764674550792246448185958923044224116499842189897469556888761960581007637592190008065410853610242683041748751576346576926764283798032914662528088058368391136917751105708418165093165777993342841529306255435292364301199740653514302050531928771701012121595431146064482308436341700024876830199695925231746285881940355626868877406260349529451591862910197255687689933773648668264095068845747662108230158506911073693976961875372465710233794392946242500985123610391963079635972018280891082152083568042530078241075467560581512429695006162753615813470446291501024854425604849136017031584826136191334411387197899862473259053371921665515372782572595267846197172562220082836580305660128649933620616187299170816259969142389738258940430971373491294471204132765266243001832753223044692342122807640285177090502404361371338828612261370646418818387144476999651708402943197232205314271745020705980770650282515926764571953810016844017487942162203003187742945674291877401948415007106326278540924162801133302181152180700096984155658258316428818997007377026853180879847953291985959301671879653621392460285352978712099030712766766586005546700908771395765165010327983072377172374141058710799940546028396412763200939030871374463221099171581674051780432571030044528382171303664840046826773159203291557306301185486228278949356228311266622510948385490781164556036198210868927682503284573360718198516873579851994299320810720665970298752353377232342293868096150445434322520708956315868137643084182947508407058736561126342310781239226938502416436333593522288377876783871785805331137629079628050763860743330355642812230186595155117130164192922976686356579506288338029771741450024604539715733231192521649775284859218835192480895296508321172971106515944486512308846812557446047664769009379021683552582167219311391482707145224148045579847187923070233473753622579013279755756636625917113418679861723095080344914157235068154192894457259056107280781446489924684449228123666662322470862494321023158557405082731701468332466643480270387530690291082815787501579957223274619565711777168459197548049594855476654118884496203471365620995825569534157906093729050736806319188232725147949718264043324722766984514586429787024015211310278424368914777482277452872887309669150924806607895178482572177103049270536639797146040823010269285463334751115732524339510304231384350043356577760479879041735578049173583761646371152150137245426068288317283504634944847418084752858663992744127974635439579106279591804223329400862915563509945041046658202487586720657587254483456196169565167241923393368598036012568068329081325519647221976586396259684022132585490556161528096302627565344321705892542059238566880157865270955815668322491784544384663150813453888759432426721009957271018429625583998653622590318457787898812615693508638513733381575784068491059994730644015513776347379323526762834045047760454416344048866205748967614576609135863865543352702897346089970905289119783793966326194391664150543470412139513419297473275864936260082268318805892783808473034799641102913686736763949812091548582033285113448615571726508145890967144944129721796471804445257807471087273226347368199946725165958993024737471812966838400327989263827885165507478281062093753022966559449755864594146472787719199309476649139392752447624966966309728254743101427034618050899124472327900850709228531263372871147800979767490442993814631910088779957538514990425647999686118985107617742245735567923385475430970353443602051212568028977774770662723016346040355759727711845574269556425408987173246945402511436764027934491166941651472690125685763978944095843574915629238266348345249663518674582166832519857915066399050756196896635879441676324019262419198309856793846978369237092381918597468246851302461124066623130979443263311282918884586221338507733715961016709204011372432948710885546445951813318991044449039391641480496674380593819596706422422903326670522855049289499262402167152695007062950088041355228823728156375123338401275799180619981396860196274422463604941445973410872088400812793845581445359075866804960928998116245944835496120629433866212245366254324186867499120431097774468792841100627676514682188542754722648428545312687874376660441378205163187901926827614492255381097156451493917898045373848000782347465872024392359601713933842638893941778484151138189313368311726687430669982631288724997860387578384446063280301332741247698247285763839811290702387759792013633463404858006627084600675928177809490718772886149864593809673556107242100620421651095488969118640260712347892728231929959141427583142050052070287601201822295401794458642670597481162397707200699332243782011101074086459370447793546442664285879368814004083934790320806325959039241413105370768980419234097395861359662629726755027358864674404449453049643015565805863009930196936727101377117715310470391536500088901780645522172729033722784116039529130410793982797047541919932418510198599643193684411339831339645367314740065557291888447554678279679506579677259804658563104988753445995438517721748799513464276340659265942916377317496604306023582684995703282866489305594240896599980106222658462704843924133868737975766928005355591133360447275621030128145198239669603720517505637810594523523423623014955806118787231516971445037782235201145795496417642712622179929224621365176014137480347187200992532274419974063950059579240013074825209410108328259432392300985735990428916247756368264126234863674387632115140571231898584553459619324566294193648156321825485756996489369040381580307410148422185943800521961967480406832394333456322676327646673798390043321504987265155767306909689011451394641085233046800052449214231423744429834795283170937527205474769211745391687666995429081677072029906256708769256133940956135695285453597988514244671077090932881776573512102546489663562295760732929492571230836777351536540454756003713481888359087547266328885229892218628388791960418822950856287522389928141507521425708171421390557768682356448970524002352524136749981952226081682177435698402753918188954700562989548845633059329828577474881009344561946851730158324174933604441110571405879364914606671300842302352238350240872167240581665185678430008582537163963426073609654321714487240817199544553830212009815783737950678918532257726543944547140460623366805364421704421478848526042756311777630443220743856875365896216195764472133729805580473541422429812273552507125205198162301300043408740677940140296269143046368251482251939051349356224539960629997373660458740877482735402050299973097725032118203444460677944423352612802965905042346481716760338036853632691782903158810138783657894056517097132402277962284154747402447249845717357631078440841537193635879958712188511122214741196995766134754409507055674180180198700338411100852714000094898660917336969946493530732901026058768825599837910835980765849028199912436881932944134663365322491770710145107070129332731134753049026854928273134357024661705022570700619123729617827756159388374061431954101897937289961220636295843633692484607965770524693065554844336361336707346441765935275598189190694271425413078093792515391249141638776852876315274679123252234610806885673036390798231548482149708482358993654991515727633191707363507936205924658207574152277947040862004665622536012586091252498066273710577692055983870151967980119038147947168641783977459100789331666597730215575904843996288898555127411697825783960159962779281252821498630209040067745946805731474249925339597878731961722477166169840151983412292775320342353865936647005959284563925054840254491298762376018420259699573538133385089096868701754962527179318382353841802292822745113914311158143961194453813468480214920931268247691861270653263913476936793786048747734144726750938572308231689628692275133904160304763751601472339388200236862284565034987095203814107928654412065594537477571929636422644222505685326371753161628553004826776371891579038544905177501482369152788451295599542154640884726024677570402808870479451183948303426166096906133510558634032197862938732875913193019653509385455931403574331609280281116852393097286374884250977131341634558412164357337652822884588264020783867572130673062926294952136618904954647102474602820076700782282576046705590302552366825402684946152651639702833956308261864351425921761480588628955630564463561208877289711818461598650301816839089131925667569213428278727113928453158957690715622517699980227115181118891359479222275838972680576349165327779134354236600760622450668791824202672752955673918373515208921134057451338652076060555345669030448844811993253873334935231354165371095717798440576971354831954391946427298619545396660244266896913734588504524686472973280957092233659459345051021211554255974952632931308370643199850528248562423293518083845910222822402227522802968408498738568813686795761688715001880851330690347607989792722524488777439945018768987566128030669072979409047944253397941740598658298939531976433274163907358239831619812158630948512850947369868910346957866405105619589427571302285703094465410742389916604006221312620291876984237982453279332118694043957721344698380724327457765483440341026106827634941920651095107119443749177564453331988983220066133886745786648965429863719295414464723843472422176615079588544593460856512584428112861917506099344449905367358239802106932458438109870613082274797398404043495881008892914782387535139792098674829940603923237164450075210774982673866656429161206357493222865946530009355856397934737574033926093172177120709222976407538996670812910129714054824202525680110884244572839092869473553596402055374848175684445833923724177842168741349258524823478597812940772895256696061760638532527117405019081668213042462335861362479040464293072613465593459819482122279699140365514487694443462721920845420743111243491049912199104177016884133246898665654753761519965856692805517936808060467943853807513026643563978453655152102911671445895935114678720362521094674094351067062863470229677709355332920208164344449647650233789006816432929321209531459650322565525498535839636438352510205161859615609875157191372418295522279982526433844108535480096102830374622423521535354932433728323656757737225191641572097651823666738396504865535887205354503109515607692540753671906496779234633070880088704203815993187123938747902730536597416669664467163432499855456879333763231225025412037085733506217114069445951671642906300614459483555747077620478461729697699228819363032273749676319398449626315663501996467413546275681834760194684799733384659214685741788577360395834962336593849263084736966032967516073106567120963728488680480519062408620868415237391055556615261322938463626503758958536960676710782018526439526400098832968874284591213174104259391929221905228200519753717085637153466903272572158274251247756147829280993464576519559933838526808116337856843176867127606539477536776076509353604722390823607274388895236579860721915767826176904182549519734066583081698112594150999717959933708473893516096462058753538754410304994018548030942103147863624331394138202706402262005076423696490669936418263272255836586359468810754343168149441233029723116610137405339181522233900081811112720372728456053329443337147575691546525010712821119158593172872696020381421632896857234720542709645987650769531822622756588903816972728061415564604721355767780002518865288862518020624618690512896179570945383973044964731314561315291710433775764355652534883834900075938040254861297382970684042565022566258220229302510045099033471010185625805596721048310375418027977049003656776547166164388952213389428174874708939238061267509815031456025558883339833492403391169228119534479187635973747454435632469762309762553122688945767582610456153889769452806616396232341391456850204149251067985733020306796449494781045632946979248389863660115865987460587449720450025702505405151685750616634900856453687417002237316716060009874813142217517913401382438927978898580677822389313351973925009431327469693962218904118049058112653976604919819350609041688946856455437115823253327051844213030139206913633988345336559783541633825811089001706491212492600803007531194220292499265657483573796396418367670772855181865589407623954919365935595529549118321928294887515158727994463454531859632969597751313252209937128751096252307448666719091425676202909972725797350562119568771575863809961631307877528586065950253936763412187874089507320280490924767010062015724872128863076243210447107211367888599596470944415215164690773025373690216879205872405942836059973672416678487138309193470555821073221681501089439034146371037893670656992557761061183698455196403444490651878963611546369149661395952943553106428524276630977527947622030238610446933011856765568470665248409220191324049689174940565480833206871492050698778206675240148049679113877345131995459485304802354140866066313814430249789327989231044424557618216343550313678072178705370793577563322144711715062393513383926844216682046197097410019260408720367713999359657305100894920694925499204019382151144979967073983456606321024433472741561237643706422603326493052741259163607155395908914840873974009242617050315640824470068042965171029649591432772299397747814412934350692651773960298408221886267099419785182401319019667820886645885175429423839460726975596055473592163124199860139445351766754107813671216114442915849218902461871999069917183674385086481309863627224771157930959818379001316197440427601907450516620248826689303584717380431616747812199429329330094442995776731539691920061480650947663755052872693027839780506992422388409496576578482306121176127768197810799301311337660553519761166372780503226498847073495378117612328198411748697592010130474809330846853440538699822823850432231104752206909323781302279539035128508613288027730859704264487968920762527625846936774619821252946090920267425058262398589595436065549862793643971726477409884383563637826071755664804915080899400633723473246686133451124082271140731627045233451643789601581002362630775103968344165213412849884857099895653231804352581158134766456988654301474664955143111271380738187229350631337514417730779643872034198258632060098939994040508159944759529131014585575176555366293796211461557170888982506799435162834386430014241988586904164802907621614112893927033846831382495686095609388667080036438036171140454119049982073121652265043415934434733134978652504911920945636477122191770816144067838008107268865531669185367648437553602994047533199497071638689144795450034596025243467775593061830664633159380798334227594703062651092579633157129625643894294960866898279149539211320317242813502855631037242953367994829169640511287293361378813400018407224659339711938014299606027337671815024531228179035201126955496726091965514147738528632036619181705794714741810512362888123232129769257909765265795243711579111963333212732496607624019546554957934370999152154700615335743894544184584380424108420236802750372832866464108192504920192722678035634341198547386117406608264304729034876698751152131401114599595423782644160437545532590254466429106791902916102723778256810798092285535716614176449300762158183813109022151602013986195437733538471552339873946844897956867854083385004095219035171545555906206246336494195633863183946598322351938842937193862232739574126441343582246332787359856173957570928607720059683478958906629962149214004650178405123872288089219619453456940077921819775981723589825358897426703625628137806340601647819534454314023630408514850840599065164778011885335054211899431548628668480103294826372948480788430689745607379774526027891018347202073020067269266567362754799729685174630566041348448611881511960272717360532394740483628093718577977794232069813851116974950185498089166107532619417356804241351972857974534954077678108129900425146850915813795860261728116932304731329496902746100721025799572477425179856336498354856062911737862807762467278236941480653537341335984974970926933514070571935666632533164144008985877701330483214669317026903627856637511691594784126760964244332363510285116750314727997165421720782727645572807524806351642011260271539939073508937447296513550938155473072279891957703983890141615059669771331767015056979515265483577632303993505855555237054740768264552592552272988262251992107375735397726989172431824878717742609667465057808331000460250735291207738692554234978954641057435275385566545566884759328372484523616467048551175749917978813258531596939616462665565781764641677224036084914768440071555991247570171816769638994420121446689052735626999458366744065842651658345216440011043656955958433763959996579752871303939504572552324541875682583458657027316698020363222732152775780376970814325544872825884087392245975837504798572358590496583426831899081434256346021214689875954012993388090132689410933367585688655061981212848634352301311535094488888098859714490718083597838390516227722261684616354570702517542680231194703740997006827917810225032053206283162745345251144586127362709301433045904013888540368072519221708126435173012038532120187330007314360385842626012833987227863560189038155506114778409705182422997065466290713013094510429107706284716337694535897419212906970736035142609746293476567082131378642231138412268781880249631280223318418438995488790186920723607053188387701574049466181727831622491363554454897660376675973063561950870697453087814579740127741389330338790589330988441113787553032462665253013355012695229561980362247737383193526235639062928710041902024332510931657985320038582291871292768109811914901393761358440560404542352257631489009836282152261274232379357871719151812612333334123906918560623035987376994377522775819920051030512929863255405665877031456990178082453966418638454058671738501111269822370502677703309915770506035516034212812562104583378385505289279906709795762011611062670557446239875327664077742125987267496618095377988173907994754072428554681445914940962604396348871400736808096861318373581721492397257953882911843120294728945408483220740965362642114838188175195861330429223173756652613513304940618945550203706936037781794129643254403618677943042571938920920340169235351633789211601565410161095243622234754684544045315416750267312948089134333855702383099175949308023006085825422761704026119633816585798088227702433688741117475168821300540044716719208960345164196464722780295565631549230440420135101342307337941094422412142502126195970097875447043978847572645756372759693010975928377521233141901253378239629189372439344453557142551368847731807197912302660561294875044451843784851710182091554651953815217760607767187231516901470430488119648385120812510342740655590889690339781464209009930942457541938673175710480127473455711314672623286820765573072704393025215936396951054938108170245936203825500383675515398157872718996418803922016550119361232129578880582785902547626084925099599173488612365416650457528866144082111950733711448713058525647490504279390846083077549518266230474576500478247338365355649837217789980467387163801321093177853291791737345655525568776368173986900641852805492242379317032469651080173854296822917659429990463006556975049732963481242542328740213498856298198742765802876261477027574539947215089921821458109106506576863940603133193851821434265059153494390398674014562213453550744642982360862072037239841678998820695155037726427034418811033415626409992828080314651609400237808332133534763748546940529678318381290386909592424664039466479515160681406721654622777528573358803831312034093217895739941806863051303475326079202389718368547360870949986993845007915934562273443748099967053342904308850205153003346356993147130634100702083931262219570187934514377634407199739411613474896071113233902860124233800642762874031535672209874154967214555634058821895829215071166814432146374573470461135526330687520563539319752572570857702141317025345131481878932482994410465297911681784304322364578077428585895247056203896166651494632410982470994081896163917324452317522002612802893341836434773737984842970367700485322099807634401988719970340304685336777851115089124430727353707376976815472492097476378200941484306788178411606495757082617089927508422698937172153883957340701731937542667448039525557599191725170785384885241498544387425613211832032921388515252493141967809202424527111815251147088519544261890711463996017505780638433106463482576799675026479343868261128072760908664852203154885947410597207338653293854462596294687772242669675644978056104976514315619588321991202641448640174094954994243818251976615188614153601064496375280609101263184264106194864818651688111109771835643418819142285798982616055037536679309213174416107958067632869582741812936989024729780587288514595073674194427249173015454966847655876085250252179987148507356158816539517144395403457260640403048774654833111772767736552838005316958159221070112714247721047975357444146990751203112586521352108773448822799215981395923235547989517782585902699381329169097581923467188060138442022269502700841258073995544617925399235709958164478874109103936668131175222670138767543813595871484986834986228100119130770033395057820013407459574734506571487662150789588991318933036061059721328728046914000616591063489546374949128705762801304626826695190848533317962235247052331764451587788661435999325047261122855762832008704334059684219678972082818932478423348065968836694610427080164421545340703933193189415204807001628492114635973652638926816904295204841780188032398070732013179845074709725208573638513384390097914382792606654399509565421336999950472995619903208760950617054866032050848243760316365077271262588888855803762494636821395826277733876665488128858364890378105603786536705974669615183068917809802642078395145495286471124059613605939663111560843985382734142342737087804959106141251441019276016640497791194513350424475647808331323747278893568753520893531891339380409655963544706396284747205115731742816109399291063011624622863318235526064223452213854069923635845143544593401137679674064178338439944833671835723461602139873173996333339760589870738731290400051556498084118980135993151852634759042849449430377462004945877867478022695369588488482581054867069116256770768624255371303736343607611475009129040334803085760629117239457186096956435787840973430220021730948614252430918593661842889272883719192808159595807148208328820283989290395811163242221633211238720957786463464721632835175494318582697226465546621342136969973319537070061097281667791711478752425735664831278811564168465363359767778931514687042973457123282819251175508041610952059218289621081966391092027386826546243342091428184954413338188573188547247013817565917853980124270958138497673267525321950166718962055565473918458006124925522826365564135931344611465594617197581534198621641792764824869350351223672087339457200841210400362565219335229679047809687435205003513569447065479847060818559064583902279426568794117522597440936225927836699912479139437623413759489828632708628519896212610383146621189758569447586528090713209253716841551306420250556055602742719133770479062063027097124542245002889968367095141417908011805712998203061277030448158108668768855045197570693671608680406893714949756566529176689557828983512479722986552185472514519831858814027104753227574405817925574984342532625080484165449280671077002288919915255512411378320725989458390787743077866738271133849017212499543439179734999512595110554048582732777260278199415351191594851595618897813375096331224078619649532465238404077803212052137445113464996038376695464377776167370300785793315973078164734989269404525928763259888961274573696864706456352321325131839160497147585704841067555800040422311998766451802607999785393887372556086856730995139253171480251896512296502352085462304128424767468101254530890591316084736813588948343058978406959811937851780356044477933761106244114407688816506831837690914431844446111536706988432275152873313427246242851579583176641395802169803160400126242004434934539792384260059993755061756491044152733422791252958170287938123455853163739830772476532583136978797491814586806678882036977239866054204905423782916089552255747185091640528202067625387074629128619658314386970864461916018878770223276033316302707688666932721870507459609336708913030128016385954780500847191770190748166612655681808623816880705515580176092843494936669308348330675013999052811687575701969000420828195104213580348305697805718656775676737308765927570392903510787818076346055668976749005216076453123146656455569806278601484098433987295213855766264922066813276702807251419358576717782779760178295238462204061077950960169186258093475498398334652976419429781106673226550780139757460780651394389841822349878211022195394352144885960260428678149306198128540629739845685519561402952043346813122166421371997450598917393062219743817476494614807020662600997160999624977782777232851671140300168601436719017595613918824177785144577631156576624490151540748691348709652030264449756102409714499415699683168677396658506525973351244966067835312246127505103682719674995484373837346054582611762851428373027557366941597418809425007248936726994340333218758902018176831840681045945791715571170645110980788791112210278481754341782468235030500132977830210269323484027025546766073378679530802156906858159690800230489790361075202573035688151156334468549574167901785116225599367628501585604258513129279796928626719023049492349737694768679573663333534749220203607107232486771703910203446440209961967189338089829314282989008401806657121543130303122504641284787368603517224048315755271304207756406349255237521742256989496480326097517404015849728162358256759028338120295939620317775164938448952548049676734459766916124683902556328993710881301179036851855506096914741098765345470453793992263626879163797499722927690894580666105507394486460883454147983730822561349085529679692578413770358432775797998385233384125079425323134974983746111989570134712098019574805820101675132756322607682794693862461724766467454397546032928160805945241170560239348133461522809319570745364990752228500944978862871885159813493615337416875057422204716649887040007638720300987353275585155233736211831487604048625624701385829024055077649754368823244296888416337578785622760735794397468006591058354011485134166412429038473718224727555565238294514138841212870225667852248545479583534740741795963644325460942752767403886631556007687562517068581698807177622204660067784376282086348909835084168533846165974132469646996418125132335006257001081857280260195918216784997358925026353133196624166052170727187276825839334836779510065566223014960328728305353089513163601772792861446450067047865583021954362421083597732251794134818022026705721823290335031780024196200055941274886103182347242827685628333024501506393508474273268565519415090984139928773047221260943470313309561065445220511091721020653543290176435198834814219563259814188748303108050500615207760185893548507163639370289736449056110777342755412180269568231334531889882949586454095987919782006445796208408693201670630339007488993682647133344034241457797485960335575538397176247046947643161287269880804426487584768432237277982395789184516237758096413002333277646216724494095286446851716941852455215032404481366709151894594577800205774676416999573714824805222524117690933866747058644808735784835648650722858689374310026787757560663352268871180682037977127678796506889986754309317183581656274188444223298083390956617378433954217157289248102503973236862206174011683063048701496509854780002389565602046726416521457040377548404924510169199624438783369825367421716850165094314086789455496806845442127176237026335059631378640683767557440315209896246181656836866582492721696260290070031575266107075182579857535591092834281279402749046748873039168837322678983187555683508557168276960293536978367842338914930394295603918809606041751098027854464279249599455801783601802151548212828908616506995973235275705869323205897733385380839876343623326567508646379804270294922767500752872258382183837247924018930992882648442663773404822185119437982898508106583000824361049316706937914870490817145480886234410555063316655168381741293504817896723278283269151857430091494450231025188911138611404095703719954664737952674182686995388792714575769744197544917179015420588867996366728578598012006274144879828882442408762382404333865021974829022535696452306700882752018274009668041229064736536140922001462282022179570302044324955325548333535815519746085487271027497018281407463481692613633954886682373449527627572405244424139382489232714018013414994571286023177986137308280415743938386129935220462042391581754200477129455296020206712092607851683879600423960849366684774071327814529069152268781930086283207046303862242509386130890804339777436600588003204496772541417042275076173752374965216718613721980175666139045142919691723296558733213882239442391357358563870103135021617283736506046814938525618845859675004910943666021568492458838464448616089405839421389821180413031516177675173109887217216526442715683619248825495190680189441791941605058356657692578493149679657000179461923503791482976751958544640351513630972872742022370181727657273503810846303981320450867423178219682143369231865540353508760170388233113852478300182164580454270465639754977061329060764710278552849512837764457682110419317911829065745412937234911371091561186087700180569518596131744120388532872009526084343938417789173729236984333271150277321361303226088317646049141134173799438924105511141541339872452062570214909684020819620490915935966320602245898644459648781270944613468333745266255332188090662081912355125997605218370818165696856739146260931355365329505968584554381204817117351069554908869065334761715215713560813142263142146246811652038125896145732541388230643379867009934977629090743203784066362615140793541216587336286365126793803596085676117518758002678411971338718419979303386084758786459537282559697953201209935808102225277889107439227680397709776622082244123122987780758433559380653176868548617778533110215794765190800872509339128827603229560010244666483152979979668050075583971200006356827988422010995032698650594871667688263362366713031543635567628944763629769183914695648009319258150720775616080444258950954573806762103061391169809477998725119626226025453513222095956255880364531231628094949991815442758296779106219617351620095388729736945078308810580866506754615883937340724232387359834999023209757131083696997120652954421679117093693525784555325598813878197529884359442748123509846162698706501735425694816953882036574778537421466770540784765858513657547708801916547740158228720787350781302992947050059730417134610880572461889766860453111292205287431088499774556595500805325077245125752662275672596353842971166383884708687407215669417078201464799794902763952925798982562380673902798207957016382174478609070935006047870397249702682186907109573046431514903361680077140427717785734022938320609637459121506541905841482383432441119317189716426861850107526271496583743808730883820239490012011932315278222504643661938178506237341225200174430416645301774587514443991477690616260685761050738739269694791575431514372084867931869892452186237563466237069631722311196612048515776074331374352277016300015530383411264000443974043246265001692435073563899641848547778779112063391683938658873859774414964956238420510239408607003654572735903328243898527045325649786965852900152628404619967607029469728217383953445611365887009331129029861544105274083229519593693561795786864373343351834538812911446007651721121796332908009063830138836289724573228036410326167143839219178043817166568627304992029305699896466199499872822565142429102485675242769054768905339477131447714173581911240566053619214602759838140294040353008537341209644606818729840767374458451963426350156183051877496800629657538099049390601437768317390797811721650050275571559008973796675960576789167012670012193120430781060691674278345173525318864465454765219168987899342472480224632022493496663761525771567534819363506881181191486923326420565059792460058172358702687142234029145517895142523634946030740619854095587129523535801714475370298934310403740141324386238164050526068830860866241084489392150657019194186989872031349821613798929073474873525678394733337067642244572599301537312249596558562329799835788471554678576150997916773026812599872991329518348049610032264056028694109171003228291016903497456118784790181969015439791211084613957191066296499354579466923028091688702844025692642946976627325142802420639869915485035894663837545622541962177239197042338142386433869068553646397585926326954294004334501572420696792037530858992481669368622558476977792579194988151533106802337915459164690762140206451168540518723041562550145153635210584005578000439542753727931110306808624967129328924782919477326456887641437293540107295834305700412037450050725449746330556601324656952629871402939211011519278782705222413608577299468509973306912334257246817795299753020559741001753550228461253685412530432276954125038651638680031272780638332865081330414003132520193487672642992704807929110657102571723748493878354191192822650132702314480413474633779378740886662973770669568683283906528071799218079740941478078102882121628536295409380475315085265293205712316405149282582723819484277296086757728905217084635225814745569031803544588706240525191517996222557834736201120774079975267389917986635775755362385886425544267927409741839558284059373160553592789901677666478705064006656703504977999728982204653877250411875496745152038322689101041868448872075510127573974709380405560447044499040701253439535551677728528026575639612633835391943497821419667893547094097941560802245249337714037755301919746153538466239970332305764910461454760330369935435841283654202399981179624103849808448736863595928295459264137057824292863471851156802893586281387198031439050605276426008530667477276590055497131369707287726942035369732545185612802163020127887169966415667103062146914707696135448265996099310780754627439216950393028694314311525696595414750792094046159053853825116660354990543879274464757196966035205416067655367106107944185351517130955100531461284089660191093578441087965411420920103717169201416016423103418820342074601594781529199114477959452367161819987991561176471292522484167701066042180336355711327629712296331569375439409216782174702372729261712528473029614755762271380540593073075069984087202909867185193272839758091530817551739155393431251763977987447488969671878481524563505515594759471509406764443324115959471458112785875012948857319525963254334738679688351628912350071524850865188101140394642380573531300765516008129964966009895546257902968220756345409180994395674618894132215580040592703664980265516470419684534869866851221650983928277149375418703000411002314655059439060244742292587926968795823542798978695892291651521162686363228726194846819669303264657084762905162836293099427686255070102366234205960145482876495457036256469235232363194273883300351721976962305616072484676955696623448608638680921711065242027460282392621773934499953570867245413702475091470418511567017169839744123458308152465720842109029729063374457235490844893002056894933882714920186946457262418595727535163514409716719198264242606795534660186254597288451344934348958341027508064675510982949816501428865503457978003143551619375433328338609382749309705200703717258677720586752761896208059690393886919793462371291553794509693358467872681862530190857391098615215229098983727282055923872418765148870789561939170269533128715502927890714717649865793466709221747564574394082332386673061492431907293493372918488005326009771082112216655071308941702851273811535662671268315605218519791644717575174951212745867812992015843943733465631169778911928229587466945480837382249133496733626330540909604401470283820281188506679512946965313277246356011366698746403334573464480766361078316212621606338228056711206535563840408306941845454732883709293425474861897946262396876781565286992546303346956661369030931695653972244640376692085198882182861472124773721202792552037154851323665492176442452946028732800457459629448567401186954617568050777873863346827097176884403431401750550853064742039412805872670131408328194607302454391837991878536410873456287805347046301402959835115008831918913996147784830026972202853761330129756535958355773083104378483869493672848435964396750355138517742874691552276609014116232189382117299193251547685689863465433422563612608970959848834059523690476634936986744292207937599627802771406734805571694256629782627364628091619515472811120026048573360783625730917304819794732222751046489772607502314192230042409235253093051511595443412622265444659232444092563580728542412477240472877650718480632630104328477744450559694644404882358957894268140560462210767653172104274528745804752101265211867461446720488323828962541122632198329591289921519641951270601633785219188950018974860999805696432881126324812904900592294192627366191947617355043060891477454944504884635546399648843616214540880204424351343291161571126232969651360493676746674288458158947853611653281244187823846263156461694921566002537558358864321125804568726110231909617230280925277251249208177862092772830053466615584012932921566876113439167415900096896213602120375067334122906304390646044413894356118292142178262350041958371149544686927539471550324673320905577296970237955605169579988653523396832418530412889323976830574515804359558248072622763073607255901460836392579250189950872595090765817966383757896528119138088360001138748167033068820778527059275413954399681928330446109492566390675892110008089932310583613857706833399619891246429476564066610939546831545841946556762984845548785860985860245929240005575804577830936525818586736397452911523453676899053807337093685824873414178160833533085799836772390894096363222229166204142940130597085771227359645202525394369851655994178981097602308506968050124458006673431065361157045284411242674145399203876908155383876118946953997029252580425835707394108909863775072826525687097757397072452149956643061726655118426941327611692229530478708922767289768300997691045160488274833072159184891866404850915378501735468038345455908447908602214245836656872594478246467039194952080339055356836359260324283806855811884860011545693657094806745601795033013923210617940348902286632745068454021883048899116069605210814759185945836740942244822741151207907673316802130095746490442954228858852024389553853280353234723874981951726232877431167957286895777453916352855145701858039428468058374407135966299001483387389434408445414482382747314092083900760764522392959276043836255691779849339974557245006486701246963865968399668849705021427881565834109921772657245303362189239454139727835568591212277601154241379483281107374244636528042508431605926890335103211018855683546991507442825965828373308279243879125011565448343214039982653928444415486202414285500418365756827819908145958368754875220614542441288708367715102373741761663146127338239102828116765007324308176264144048479936363936640891425164645537625178964361010959982525022500268839753350070826868917360677399784442097731618469185053262946992847491255792281607532750829666555995379954482259512392323019873606186593979558717226979632014841154563505058307366831916092427067250873473803061758877084262224185215066154637471144241191561505857065499753385782496359260357406986539070005211697943944148209156813111583400190930915358586638092887270598283164599632687545074116962829083505304351819664211697073707348137160045767040869255016747844015992102238478662670807200464361654852360288250208156744402613562348014381052460160063901760180890227424257963740824021269765688588037584572078510548419809967421042390286291667002459049992054792596736766123270259071015704903187826591351187916778885339066981101249784336212144612242771077346286707348991843464497484923400337426279256301701370862314810810264389153534076957027956143770756403412685422906821752538592090720238180908324524507400117277868651169720157227525212050463996438601751911086842201938466077697451991133199848208408371017337114948710109443689590587262797195170426533895372943300446302897346448250197965847876720717747902560961827253448983178481543223317394796813251717565387301221803431645254190189943653900392235484987738013847934117514514814758468188197935787837062275495214751568186456417833900248289371216096661117400046312100323665302805068912204053416185809879797895149336320751487962916136828658524475247962776545262077761120264439980512240053784251208750694957883906043526246646384584256743355910446636013352018262462847284562483242220594494456033788144138095671843789570525788293257551476065121148513657943936515408565655855514429499079019053775466436422442541506028944654276359103755181467076271995902824605491778861961276075512327689031288156082001513263440604773784705711832007541225059139404275054276988196412457352454831789333275952053423031953851824508722796349313710809617926936342262507721994489444770089698474957434434152429454510320826689371082003732147041536007623938509370275509049963282871296690174935818066606646294566901098457119787536615264240359252379365056168681750312498025975234230450738387656152778528139274063183967807698031975766223541782263882815829781264526586032352504932306560139054036060203544201207976632363646384398493424057198900913429868002373304979589701423458182128691519245772184312796040525657230822506603684930775652295238824220070003585785511875952118736333556145761801726501250437289363043150599332807406463223011288495300564024315404451143009745635544991900468489906219625245673303528375842199707201617750996453322959351341613461652458216064678962740373521259745674379745697543697578223719750859254943202019296330307848704166963527105928335162427543331007088241891840493113019434025284438655079429235238837007351832101318616058210888319174430486860440721976418272973617555788393286376775664690980419229271948066538729540865028045661943140826971041651880068902297285669423180589119702838522400238699342964843423892964363074695790125609201838360740733977868227490455797542501426877275991763424077528739842633591940614832204358555130909177181867865002336532174942454083401730052756724254511350067779189349533374756785444713518291412592924726960184923602763161889563309155421476096898304995511150499467442259016386047062468487201003167046507334964812681328018781047227136342046135921299058417498159743474407358909510779963379882827371779709917715842413720605643027479435366658305554290206658897355884051010675488228976170470393587135301166556013587042825683814888657160837708637618486700875665328133772634493816983387773463382328598644002376341792221479597063556967094223501340885671039732809940366144163691166993697485446968693661558117429402781750727705779039459155083289121406001642574028083407775652251028412650402409675390642089002789328169966741179812819027463754578737903038930125757054848780997441986552919481682327272213354867032883737472240364572728693303568743010300142055958062755526422542311672817776492027387543891214501728393138687005971804749600761354744459989363267457162507907845585388326052661290504562362139857555618235127065715465670773869969620145148920816459013773839210936448366655170674045202219692732218707772155007832879879849281337907924263777304955506634150958706810224579311492906034965869591830939453862449239567879632014025248507950317097976193429454558274843387994842477616821752873850846426519702426809091128471156942587044554239494084941620643261539412594372664969662689858070026850820955315828711203009446837638479039576623552504717509473450639876678924013057859194410137282743178599060412133421480419521656462043898741418501498361193183649716648681345662037612846224713509052254197352589262157345841818278604427336777079381652305782538335016610137629278973848530706922381334084202878577539433421163374762187329133150071779509460172672116139617700395154096011363665398379667136425671863181567250974607225700105790549359306364122262786907084986371275108050206926085106001233994391527518030100913003451320374770559055173923072151876655829971470706150874242944218881713709623145548414118096293796607496479415142078553568254481692906817225136039693381848287546567524039970243229327314335735003372325643733752567457366567598676380399243840223658348165935972106576338037896574058288156646294898369443984471493175562334374312298125339730257919205814406772158909902978897718862084630332574717869235085661800257625427860067092418366161776204013058732281466255213727038198654011565149044030510486674323916984463533616448932030301702251269631538332038512422628828001026460959102936543142285248668601578316171348107128671558616626630329754033926821779601870296676028642522559569227872513377142033256565289961660886126507226929574904896193468744434380772357005606956933085605873251000330001482227208782367710749757425589890993509983260691503156735792374168688664184873238596044562757054778381261145164709488909888839341303434352192343760739906225380621923283787843621888938977016486448389085750928510154031472316470200316939787303800225218270067327403136328848015113918068897585796980923102331508186703468402569255777185810318455339238043355993541365800958817954273551003794229422503866707544286913152105273251387382755864600132317249733620058406221159547117439907961661698240802003870258421470669661364363239800351802918891810735488479053210384379968600206599829592218878058724290202473544791789301509521247284317599454236218848242501231573022919458162357157928154281983514202936909089477824113524822411407969284815728681238423019271033240802564022149594232912644099847165523049210012115090195162064792672075371273941651492884497703113147086294446008383950703980808269474526128913041697253112991680023112445443943020428697321647814296937165063005426600591665437000200970153383136473140247612280664751042921385499478211097065128861396645504135335313085174835190564597373817780387494008969857806789311266048624367872325371451924773354156245210888575961929595115166088316462794143289647428997877911708252959459436107519256953887968224239336600919522645170437688832208396604778747232507860501173513790662207636035345039676429374968978132536590055343290446107956766907469530656883961765714926364550678739869897493878497924856047211365813093193374054793363755519521853893884243628599203484877005274372050344717716251359295876903960748913272699163670358809645709293572825738727868816121329158594957640480050550024225373386241110566900166489676416166869794619168540705233757574349320786015341270290997502772019821716470250103997552095391654783942458835793987992391715635678505518901255572700638124838865844747382052618576923923666828547131263225762653623620849173588103551450971060698989491639897585245868624214460806303335077022394091574368851879524129443891916149783132173555190319831354476526862940580528580025747440378337636362043249230560683162649986032972795704781966987471810932854192310025647313388771430318940110581490458121778720245803360740148570145538509107567976779708752377216144282998058128766650064388344919384059880779623878022390540195163275873082418835278974216403567290423100729914511491075369987156078320533794783723590793777225874735946761313768834022502947375680773254632236750236960756690466789701394742955291667588766923199171181884532886191284125672683972550574937552277648247870330614245983677695523898217522629414276746217177661332019138673628601669407780567226331333963534640096106706923710299106609617586773653160271411489947254364364040488406473715851694814347208302827007776026210209143653190494047277899725946817361711942133549688453957695039807447170322198096152153117215948425065516702592406874311338391370501203989438508154363547156442156688226164488527394801484667662175936120531207193777584935882891753257700778028670592206348962015897297113912467529512470598281228085753920673258811865134057218863657546650343330998310850807370024850299886406264995450507964092274902881367429616518347896008503458663468933272418266915319888380671953570164313601565830003164685285831540703034926132554138321103948151036333026092820495955474090097424397839367601456409396926933216391724769338648075464771129897479223890744684063990366094084779743288977342730156876479836977727967051981509011709058718993112592614522431309709039362179906666367745598500662200194022599112695909085094232522142398622249001923903115235564452584007433273027543042791565109498499474530489464377869680886185468852908691278583277992338917614724143436824216986702196374273238071053495116938888378209756670412976292012135819627165320028537295057686298576623814280163027989407609712304495440636317827408955263181653008261918674636856774258308023474711064769039804417838520162650772901479223927392489667923337585707928094616922294700353753161967484048559213150806376407591055442083706147743751346054415662479705081352696637659298040406907953667882169742517975486347606065351420501276138007812871092530189630123871929014542752377718213845098275068695265849115148031601442253808464598717389682859786911817024213111503996488307935861760242483930123552564968778929624392921641196345954101946339344217014743923140041374720595639396320662422031590554116125954047361280229252289819483758965647735144308113758169002173714434695886591403893059348864177712871609984606401935717130096324933058081429120836131840938126575714673372880372253986290219372064665067567182804158621483608991844598118119832248477841405817983781490152683232501684552904418086314335300647808488153179318963076965198814924900662849291448662848786271734903153805972672424428391249505091370477981386898713571404414485011565093756948562861884011422782494445898514196162015913858978069896825945622656246353044429569217915644632087660979732965726979170280470469950603678655567176619510888106065910721228331026018021264631878412727327455534467433832677133399481159460718957747599058304273851104218813819460092569941203976886482025662761466517510988624045370899624391810623360879975483917461788499113750841081735106555294855719246019969466115902659621281478948900198603666833490024330714196759356109928964698728159034536287521556677080139794885960756719912883621464378787165879458326704026421747406267675996557405724441849349484585401796332869677448493644167777078494631180355194274514016427722342958465743786975344255296619289908686433343584126568586654388886438514247117737411248868167819584442546605534576163834540420730261314857952730692031207433883222105042844011072735729634427032306609836733327527198117495059673328413773062041853752550492404581634865606910514112994327470095477388106085505956202074041230429227474355099566902152369705147232399545835112167096942785078980641767972052051815204726982426003454328364940387971424631428030132651017117451594953336641836796777359167397729200208033100380684224813925254220454991152579949040505844641727625075245570805474667279928165012950096061813276807987662490757599194629362466115142045789228451676187138722201065202858711087221427681050508910294784736860427948204209465235145281562696626636440374964668318391669863899942315423949496849314683340840835180432581784285500442963349334098548293253624933253606389366200648701259203061377021068792570751648979425738677945110258616190528344046186608825685642458403123429173458430526595278103904542129025063882122819978005644013773643132243275210785383341415314614691895610748029881936891787449427157816315929591664769607225284506846079451551315017725807660718663423248307087150445755696546308768982493036929898598700099278095921656472986629805146039900994042795070475842445264140651531175429199724203029158564480344527719413803083284674159820167896452241795870641590776231965490367745520552664186215522452558901933418188441977817887967756865862836118754391744424715305865348648681458831320754739136817796827371392742159904905734444603415411321524337316890276071531441033757944944890497918637091503143528154953931938188991645710630961999172250371116655630900495121571514510295554948096187861568945673554716286145839255315266194138783038321036867538714892682158228404053943704120801434836472221413467754473879143133736108992079528461211258188400065543600302651044708839749482483911548363986398512250716400669743709623221693588131169845246598938079002411255907945175619094246488697081443582110104050717497176443758029170938893972590723037615221208471157271520333698144815610378372951519884330281944506629211806390480188765148613463891493660402140354415929052034620277574091621201315912426546478596815890082952983192024013670409532241498137073119894621764319631499997606143061970425750602245451005139710187859223577238643717118698820789332973809592875182835601931501862051934732127097773771599446826477113570244080599082087401038228016971078637872162641856412529207317665345891629986915623781348446704597245674843822652277666016059829819560353311107999141974014133420194200254062348117578716766504248358118394641781011214900345534373269994408833905380792216752000633741255023804773008014581108521579896500226272490477429110703442532886570759926765662054865957023087645657415806765523338020924664297259952298161258024462453998184785500189264294414875365084417356344388381161095995478449944839382078642164020380314719096687621932900670189920389800179260495616165206249091405865892146044775068154429157365110944959045872370608464701146940672076561373914596645270436154417335201982650847375319376230095142086410367649272379108695309430284622458134709828969438752557836751992857690394092700127747617366275726696959084216533257460006826684178984897818740175309363119821413605123248148129167862086514966930326159046696900465963947759825282327524714530801309889161890430878683511921619564449737261825900640013638096071210106183457549369423991123378817622783254858631574107894751015343487262149452298555049941615134714114222523124983333206231902792258203850091649930056437164381592514637928207316633622382323175472986308806926730302278739540579019829037287852681464745905648215507907518056698449871514934556318476522963789533884583619486823513931851961237984703843101577678831136574014580472666156022131507814432076922705215582784244026326136433838106489195952829847192996535200075578926531128146723724706564037355955314349914314836764652960016130235176778913025104458778240239716157290881068441781644585615455108750118357622345841903310127796459409953913107016751005952954133114922776242197796746032081088036670454707428440148985118570611026834229396053426126690912380328349276425991623744535367979901652226692988115992957201465106735619339944695894748287554723234226764555273912886545461218719555022620965895017568895461257372072003507607149729588898264167043394953687337820777809419788707584427665138700926124149977636984336108857647088067790761698256616307281088915031366579533797266056072501781997537809989727763029944606973518286119262468206771175824575789572870449772490636472508771720962046145631110038519505529073850547952233486670858889158342450300583593622287016756813965966649579938998101485292637439530243647855798219872996162078082961888132144397406567358413167055602343510441856592491850105421000892761172509669797989555889190725162509905758205902545451779023466974211803800301208477613518479944757896175200704595414727317978759310694528251491759405128655762134182632447112612459172327637322031229860236046245846061867954230028319093359886060606128437548270850718454401088654014723288817409665783044991627882932613101079942655136330679062594987036677089615322072632029085082697355377695649146638787583213289069980806211541873528619961190542758238590085444955368993649647373775330805278933912910595263489106005540302485121719601675946227503929801289892578244418249575449271028597406127161625427033100670765427525902108999337480661482075092479417233203736200269242791449394110537632270646112110208028392724857468412178249565985053927100164974270959885884693347204104355221666941541086016618673411993885696266522942422926088413561259351638472538492987758309811249067409940483788167891060274080745569576623553918194246888444580458540314825019655981070142336533345065886311190716251089858528281542873862393900972697345624305822225825467354717193118814946890257793981647039702714095644659483588763683526722280428063078222321757818996832958511438256433896606629155506137400835783814491882628128344720391264208395153737578795028821311868866262282010624746763594367623685198676841751957270282153731904073151264944849817573765105813387396638197675290760037726843040033711113739975478199541573210519729154418808058990209165363913256440754236126885365418811891758342503335863900448927489566357745968622349844361629006431370741788729454580487846386015042188860416428124838576691705792183190016260270663626684215942332461101367980077764467281369838001736007851714672482419924453943704414218198102411421694313482524994726653691041296504252357115641827620130091530938393917921695406856495975491477824286565970674172136333568604403524126606809742723982755480690266809220640168995060431395382494744580493808233074262378345114409556391833947896344799129949052525497041942660060073438827114854359978727754128416535761742093605129075014998737732978738070517619440102699644321707731379395769588504229711866009266047940645676610576757285007917499411024458276132386918728084139025174008710362026605913031550255289046982881319065703185217184455261630536425798028863661784575434960895022151469558312427358132128925019800011760296353571954825989520330497955192977138391365989248319596329789174301774973846252958983178219010173614812942169357851095595797177198398898613062821089068081163937358704958076380656109670883432838731512691280577382084526563955463244778853429397724726886253322003745826244209878684969709779569116833141856882835057876035268908809309665897432979291581462359991834132319965249746758159322930889614087209885865966549319637170036708516357819615610538053802342351004737492246892262309793797444449357015487083216702632396977659740348692313746730789438385603892084974631817706740526562682011842847744361965916854207967176029936954413845106583264168421306249811815174496808746863297655889130068159719448068481308026479037210719656779827632532188428809164536022273105252531141378618218351016561000087301796742881765363525839630021755257451781156397258475096246387816091565595808529296307598690271532401221194612390307118508615551771287110052790879632499413793335519963032058020840294712232825024727775479784934372500816264823331754046264525658047629443626323617820368012066592403701009059699712130886178003840733120561617052795082656338307881824357190484636120021139459344027857133853653217455193082210743781257960221303781270265257967511934706024658024671087748206372126957155103831636573467671844211572403832664505390510063890152969594046497105717869484936086433037907440833744091921095527665508484785221704912708569093724332352887220674742440247568738432823192588192406249848471785145038749142177342704884588328723806788121998308873281240070169237448987166869071175525142873335347924942397979961493737047858461903512668524820998299580873814221919862981540286009471634781602353673958117303514752902598700925914053251474537189060041790844276299757654656102873538878598557488472654578460049441357087070483431587892129004354704714164544384158373821139905277298998862902539999122476132035702342936037479634804473202398440227870139306638681794719925747061599364695257482847583074997106548119688101019438001643083884091353767516990874331689045893305966150054179010704326101572320736115014318724981878408530088699248858678394224958575020088234837753821076689333582050247026505039572862467231731441390390894058245746855729636231261602807139540793115510485891981951461092041130192231829432037747888975781145471688566023942621910437032828794104404018694999592433576139103095176253982414597708597127372027904676380696715469466697173595881491212659047544259107403001202792358933799063399877474922479452246272096572905555404351787493401835047214432821797153738944221563424676329250589844727594072307352496458430123071302536162347722688430637380174622617120504674780413493776183309166814297125640073322231734654777574441450250836875637809846489340355041613114654088726132450524823042460397871566365132847868439637941295731415031439547270117680322190600949558427568740172712384557321687287639950109090506618503063269057401945547185530110537834337631854849826922360515771482505154425155970834158310143919079671784585158608686559852209081833149314818080553695546242543873803442563615524211460981949304163344922101581927783417983730486855356363775256266866902025326282329222487242310257707454035862531019251251363641320639897879039867238783141355810483032556852860852415061751476256739151344774893889172340982803737867337956967836808219605388082453868456552027871750757589092689419851049474088266357255562927959226586053356794989778681415528243373274026639125718604690415689521088900005366058052800652713879523118822437961474091829741107691259956134276053256586442886963345447458770523971497707546686188146628149398392381524170008860835498488874075053729093619742654730299765083687651612827082390239852373211067926694205230522241411753819705397712572206812805445179205015448130183893595354765991499835853176812196021523483154111962791954008331782314480308865368040731592452442837687293107202963318996691567422420127334404517821565502950153621255989488512910067181257638216107081035149739536093410655275453404800449214812817606800631192742706592730585640220148391400501043312215342451341499002402967918122570260761983891445415131613413464774871479530832671773670353733926253759255051685632956805703887667606698102144052809671891535574917172884759231222903988989129929486185614065459799383562427016542177634153932650172034968713458626682493982722320423678269730368598653384548051907019757039617679644793912744181488427237641034389056218034957299839491544157017013932448117940615561428258988040413089945092657411559646415742782950368047613470476177629781851599400069986048751772806475457589942701883376287483588071918445670801792561900735404135382126291673415947286365498793303259352623555586560575412797589036045523924617497175483511268338850908261417829286275863496916297882346046563950046583330138894436033077372684218710737613069032886111155254862919278896633683383304820930509102190413963824690800569636161412904454927569504912393624127886138503641111577993185533240390905439864630398156604229038394925096081540998051947313386457984294773590314760094019950189893782932568183117031033663916461152083463335949182055502258920152111484916554998844281067053099864053906502832553448766864394769199978278154538025206020195836576905542624300352703881241778261320985906262973660591319081268322149137329069432283882472572003210776209943562149836465155384107406451719306106792224189188529573262966678299776686111185278927329326970594395746040186448074640104176194707989131621433790888100957995296961337582318047614202286579121815637616590762632696951638926737745366191637465143672859450446907011978975980279401785339193419636987886281035611483959604231241079714342380846910269366738852688923883380808148761783726122354018319493974490343096016089217444957228054526184780214477136148735998108316641594398387106049301649196087157711885650883427731362556280322347789701647404515890328222644930410363224177851317846299481806678738068802154285414872044553131900164314114669163959325472294045438993336121640711281735745246876134244605892633368942389649801210631500115057192689416836995609655164349017331043729460532179957719362712674500423925786838631703029352694784541994596770596601099165794612932176879953459757536793922246133739463387131891461763063822497203430588048699606260128809357729888880551274233396862961887429784000300940562517671798356410461300717701296682548108402806581822617119930950254448647878324784409209476478577260582783721648736199785935626244713514729535835520025104764494593932807288764049519182592084659555784074775930461487031777066154196403946316672469763298332942058620710803508744896109983990981928513152858692493298816265128829862723317859910550671534851713345734809145661098882284562206371766582102242591889879985361021908391718781155986146644990389647100922710391898035447860351902212616487260562208778796317870892046105081563157332452636727029630013060374461152009722251725486510946955186777730304325998382596984295669305258490560540300544157972675097647556190712678400660295314504142806242063202521704542127133395402130695399011513263436919531426153289871315329602927515343396461296848761282674691015964259811939571313046771729548124692642892564786918657517092244307717516757026366970632882525528738120804157470667059805796843524787399799740550765509134622150777587668653474220519991031914738867487736366929641230652174092783172696128951207353501009294525261705525924588009214315883763334975794664796332185012491503419096938529125379623374684379553939138793251038461227540013540827674567125377768086769664041314800367096585983882658579152989234800552251446068742042900117234657138718998794021364744842021422191420493912773438775997715177212332973283026597034877591002603905540040423873843108298761838570905639507442745851800714809590107552327317566644071380120440360152256478069622039228213566195333279670732633326981605738374071505970036379763555676621521790462341680489901208509550623887106729386244690715601485349383295514179813169435872679939871706451750661228345024199174685849429245771998295029797742960393574102997871210148803231151607639900905342415382385645203068912420707057492407157673461300992593001093363254621238969916842592509605624739729536287630671926073637229823504979485617095335583170136272220648849746153526699053033724489859605926018436459863771176632359197494306330813957626396566848783782291332622037464131853745689433222726602329757928269151995210618755414170018312968854897497126548101120631139925934695269828845102142990039131928986556258622618725486217623282483931114681663144076790379806406372300671766463509641815978492733554778990846880067631204593128862521185094426871478322331222933711891474967227285499020089452211684453544876791543103959204741133180352246069714126199104232298185017748441972325464356260934297701753293329102105369378161489307633247092154885643174559788305069824119811596129157359400459694674601400240739251600386046615171024651248557138534283611128308243341773713245461190015584379470571370775764237264798695714684578969332299613867006639210888643596273124977943313026295751022564349480000925443980970738302178596998836927306324900023477202083361454699871947380365948645226318088195671266532392414243799864892305119130999615692391226630014595034929609020900420222311679458899777362199458583740342175386020325396199869523679530347253518897075955439773410627540979988521537712162191380892442009569088740021048626861325322826203188207723069796766338675459537536323820553626149114821526259999357190048193085164369616829177254247903801358264210234429224747676135099091445768490314276366836221328360937054316467806751414923541365799369829703242128491147875070924580605782209025404615295553240101022248663542929747550075110618100797671729347773409257274121713049096800771872963648759850059439729324289300002198797164552656900846271290654089652869769056287078646063037250453191854805700830965483576534327713878705722097374521697041819921759391844868334035169677359564843496573759334098831023069949070018254682187919719577591364699033422586182336343418476446048879619229600591686296090838563677550494975180757577314012136954768342188124515310673853412369021995558576211769528100698915373346461163214561648793815596557752406928811732239215188211866122511726139546865239664919927733207681546841847676586483573512737619426699229426023731621514455798748589335629389203411923772388004088193229898522818038665337235059977360440901879564235884889692980976680011538038685973774304673489248935944186469709583511824725212258395638795980551038650641304653893300044257356501755188429148683253202001741088190394423755425665510503884180403237388942932825649058474634519522688714400277840193092461239994289006971958497546039796534491018778001856370125154109039666748766975831874001081518045459764887832597780983402426539790595091897605330301926191496907441725695287863853449925732452816817013588994700769432671972082134642646320385566738376061100213479682567955080631732910916749876070575554050412479225809134055629462948635945936457625437376109061760624189809382486456586200995330890938697334432549062806237737899431834567587326008425493190009814723169411489492222813591091681603813736382967260401285251606292194466186829474800320661334895989919883267594546246782253035147486012521253207237401837479429549944426640316319136592971192966340788307887402261897388078500186654178329002926306510678423902593309836666302137682071714178487743573114866644302048704031444304357990365832076615648188553314564562962098223565711543596242316267926171816736907136110789386618248872102394364797904361966569773547963240576091495278790929137073325178533479808086890474273643064871114553852036479609380905358783047880357276775285322343940691070633283750487406458799610921962036631885258264796156004249525990013065034295275338745398540954004511750193966885643951466637098475185444215826864446554198122031930397731117529641626075731631403972701879053355030980309379011875669446871171927473112321014948167490463555308535312013777556382336417061890309933265195545179975337420420600288421589038767755630866739703420532672106776053355075744666703803026454726556480817016985586458000932487252896810219356131624744616401092069341389498183613089477533308577940100186657667260583575194373447516686129183050049258171700780354642920417790914458518977289798308192027863581536613230725266645269257576417880446166499713932429069093330243046177533901061791061821870522360806654673062187407109777658741068201323336003356237299480218859584022066910471247329601971972348546768298899090922938677230654400702152735966476116852715428426381237586859121970674132589585843487210660971347734659112280732059060294265970843031809175873042550584612084047498403523793471214479425985415650772864047446401367419577774718878392308861290889549877054692298008854674411993262949123057050476387175279514325911300042697114748221284958208829345304081128876320213467628111388965721902740073821729464371626470816006427014016922844891356851231434758702784934951714522337603516434994153147411418468688224238860948006392469244303068762717546343024784725603616546205582777018892801655043611078612396865069309219359439034647689213383096773883923904466070947114073594704900198366547295331703465383579387325603954973944898230223488180330914042968612282646575382909180884393290734092531936978849520424732717764498373123191663599190870206451911654683141198438591053894463198410185276474428613169243016954898112610188853847448040013406816597954287772784482573700564833586024036819763780473600609491529004738591263079467766114257485272133592572998849694339528677833963730780533127790244352290310598766034340683210589847308641685344562595939652886177762348265430863193156772395562229847305065460557525411406686352735369899329251570120971853255440464031541519220047194899876183951606825700530225859184144776769137708267742981842673796623156876631699519024190637419937559007560393457327128649197366468105359689897583540156272632298017528877285070434408930612614364043944235705832243267696196212194110491197640267665828279305127653640107658082670449533964045110798064706611773235261845994415175191954265468840641440005472560399137490058221115253249679388786201063596278734881726730700988474609251764940330879804478507353224735251921324944944995957905999337559461552807285158339255253943908633553319390157422397706520370841784319884128850216608103463459596989513609878299517025844942783934643805682104863869860983939631708189079598058474561988825988055529093810458963220307821790805806907506430842495941340547174554799422181747537300744311680412199082741151560257314687490376298093743466996069120010698882020206026164552447048803485244173193369199756883402484578744261267958510960626885479979037506727377652792750583722399657634727921495642215154460734489559005691569367722667260368692674154774535121720601788603236024927416014519409854570068904396543014660836511044123251661627029987119982280375464674504528822905371069822821155359620095702951786739900751781672525081702565809267615726618175784958705351908510006905417585679956108795780544143582993322149523701707946662127872662185264364849182758920681528029459154530986035966112165329334336973166790173456876409582848231948582301940075737489419126063378754646273633010453328304869437191114062502675338873130364244433064044764625171213149353727851712398978913216686394081547255939224404845043279113950381175708414306022757889839462923013956558942452536994574976940614053314812880011442648331225052691494501919795477832126688831146798533284166684316957124169290993728486992257246613415018542629653607595472213846535983760897306678308495529973458292430518901091219502529650868439684804030383938500823443848151923490810136293359629842885305388875410737820109342705116105329874518972008592098482989007057236609897098483264665961569275863054821880213537478987878021431659192816326300119005866042661765038453399709840804209122811770671841838695156767145721269816731758471764824235637356619179895293753912614689328883882521464960137503634092109034251897688247701794363740138046473471932364619572094584900121128916049530744375513578966179418640150766092812113283170817521881135813476753504376456738397984550610525514714057849463903526682761084956837802214824726926863498540738878834852958014201789559941855094238670520197778785178422206403000296133668620952199525452120575648103388696390606084344021040723564042344767516828087512247004380944190572763356792891817883717998651615691403582536227155992438125946967898246078337353555498092455471960298239874133556627795100871028511074429992443494180247052171554686080971659841776931277250843250949215917780243429129146359076043385079068460918025708084367054188032869542923963919799833709564505195483619768756579013877447324626904697123906811797456411877133749934515017924908353810707672341256610078739334309846159288035873435878546638303996567419426983909208363944842201990035328956527590635982408863774645688856690908171675919200425219028743038660921700082702231614012215137152078933740088475810181557723354833998443000418805548570424987322392382378144896030130790858466716135426570024568811083852358354404947136587410428812644060626034784907646519837567660997508324283694884469175907443712722832354920149574373861372707729549484552655464018192829940030529865182483549364082393636053525449683891154520086784724108277220070391497217265510930892405576355610055578566636662521975130561577191910212607757592762210210897554476030242691624523959644915673638434340604345658634848069122587034217257265762147199983124128786487232776651757313002332838783777638485323823406527027854965479194544931179780946919513949155336608729672583050252406752233556204858180315145272794798664996121636501601961545262272568399594167103135050433631324923496713494236772229162295289597377586625694630083941857271267612613631708404047864230544046088133451477216703024076842208457930805210203893680718571455437727927142936336844571419145354102000553723092658239386912288962894961455372215142671541503908975698277406788573223759213221096762693329034522090272042634734672382793242689489962736048878370905302728350177725420035350414880099445894551550762518702817831711380875144971539734418568264428534387112260008598343188805854387556527928167505791379034920195662140859180009293019376594633709793977073112630076462487976545313132704394640854001229803255886704865535841364961883659835918793790765823391270505084190043809973944281937784113927873884174065919408628977653351184459364250701573201265270917652911115765121209296718022049106939704021501500567626319851827003223372798615854912128684163874964675073992226020913411769837699560503931203731993267406849474551275821893254159288940815451363459131191377282658278599731842124362626907916563043574837656357699867472408291606461282074481162077277682684902860587848198572379292026682242426121374991134261012671152270102997147558662155307720563967937359838523238779324831852463640949021126733615839720560517984364064940717548061430997473946984482774558798254908359925767666092149732404746078088560250360692217735727449440598606730608559089763530821711944306567855175657811184458506135032904764424831108513742417253662146550084969788848213016120608697576813757739357532072154469916561786442030284916296230608065948931306697246873090290766638143826721594787952259385027263530829028966426285932279318562660515776529189152576939370577411716300379681180777662558182298706915476650907221606851991578692348597250699239353059576540600592658241867940579789214531837282815646150131043923229729433129186278390217566178044010594905029495836342022883850423387378197830405722700500257734724306788326512702897001607860910628208543119159788258933977345907390972823386482256102128512583438430284103614039890210016866766634244231561039256294727701380995115647658016543482166619084889185145903653458438379684220837978819080635736938679563117046886541449127718106072487226249377085530756024801489464936521407040002424954420811359514569771024854674834478447860195390508554599622171057103882415126461368000000774683369309986464106427976648833059386780605195303459192992695496046665511098599548706292073580500139679996537562210117776261140734904324260134911715723823229823526605850198315782482846498835754765175049675729155472164762643412736720402183918013317605081809033880681544124510232785958026316096871354854633517681063684200159706867865177354843759214376279263635384380682979290494549541300696077763102141864698007411914658623479979059487833412513619176958485612576461973976440669410573785308502776803839702479008044285332505473824981230523881503447942007611950698302021028775935382188275958608876927864889839873624578977667579997458771291263946396362874976501459423810464079642032473335132218045031261673622735355920469388083310718265034927747696238699937939532098809306744774050477578154419792814953479628251518788602061777713045165151382264482165074840652587913995263214285735456934704286519912419652719663828683202283062769221222469627555291958418463346008808303506074459789099358367389094701345815822806553145882585232950769981934618549285230812848164715619194722798183946165876034203542422884238526321193869074781659071536075152704647263434650919432437344760120800361683690424940386876675618990514238332687606923632408478905647725054586087200939365566913098544812862365552099276830266047404469801552933756296864360333120509666224151051957431085840633171694102473479336466603244906839477478157006590939177175388776856903948859653584212058838665792213073143391848069935911106815925610278556352690440187283545124497852711500446452961522226650191395673382623020364361408768975322461653581011850876812865722980417387927163275031472883256172165600089146599392020573646214364105052332817192758180204232649499584772293675392563501708245783183994640751787182143579509275226179197047458777339758591480580762301282377192161516175388972354944598862133757054112766768071484504871983712096945138131723007284756297094568970700256052956379418777450531656849321079830353427471265623477186746290881306671977736367051879610178185140099488731106259319022195767259005286617569601050818204523910378120247615177494476426122606512869710481761113617662762514201291041427308388827347692347695217746557550543266861475678324545468877926142357063327323584605912487231977447727645648732140955125423879874375152929364935773271754902198497544475888729830137417939362579125589883971986929061967743524375284965161192386290263322276066157867395580160961379268331698339328086725995282707293989482291464651273212174097511008879898641092202914377975248172748091763234797522685364444437382989513420784061032685932025752519251945273630667186222228079536232088097161232327915552095036253372254771257896532054433172417024428216801499670558707309985365822722329622445208261944346696228110953349932559167747871654953364801184322882755903561520864020228538413902161618021699589646331008328531421960089792145008164836008527291370747417545737552559904330417809039215420973620128306938505566360383444884925091145184412571285516550531448421223655347816903220238564843812450864331903857108612349282048006427753388216121170764116948559151012835418516836122240333687746628029290044939169153794898035022641976758478506965281409988455877743596067766217617739513864737391313511883772162484727279762736745697430422735705349876425558455200006993644812407837991178258249863215059122196219590301354249181468449734608389271210118666582849315008140488120741250119553051353521108054979926244236429822181418273964463377692301103559827142408986108842528434739308101680269510783017619112411595975819795563387125207078768366313191149126027509333349924105503007617569084244995530563104367003687621075693541809748801884710001603260321501488565329761814506433265648039642417840272282442400365414495532918128976104118865217881532685443927463415992735272012043715863262253713266793051164732632824488223481286471806981591947433224858982024894066753027085219156093744594800313882581523409908331713943303713620040016422960752993054197020621941809409633388126525602027393727556257391384375456752882432696791898034829703098491240477686254064660613594860906460076878756009482701775106166625975290242738172934951389792800046570784652594135726045840255035413583221236108059007320261987193794511732619830292543356757295930957910521645008894020688729954419535279002235946587818975247817265486447621592950947484659527344669062814723562322525981403769430767694586669030631245760518765354866576648215500323850942496322997906891272314604587211283286832842176462195340436554820553277118774390324262423831378340240404771379370902355261120648735602675891045793714321894985009689797875156526784512584537911555514623832696908550112961776631194940403705702145724483908308498390342227963741487582852324551838768670758178216001471079535293194651023541860304305198839802621880957496472439721925895812651756745136627294969608195833489908485220449425978767708933217645419168835822654069851264943161890077945700390799730389932309867458462997092032900724874422290049474850769465583806292760506384628477749111357266569476011217137122386400875621101554000407160049292123685445522561812176904093369058526351917904679592414040012255302651386781572765135031886845224634709445599493773139540101312855593397146272756001656229536421531329877806759111206637233110365998358705451619220957318198648175767464491134394316274371385182195772423320259161970555831176874046630359219522350393999812222489204187356029615322874633684043103601243086705805708724666766906960100075280855873773164927445211036934223418615457631729934197830964792737920787840858757402220035824046496501515868528986537628599048516762468065740935477501984859196973940067742804019149618070781965829849410072698953894369647000131767370306929352958207118886992499529066443146977107642779777974994210011095799600013368933354163717120037511100798670320033104107939235103294525773672666870562784328059606552617821310584680239402676803049586776147942751152464796608521944126615635478799037811800288748996979215302654222518501152116410129109367942995034503791997551788218053906497520831316502655735168119645021519730037027672173324385861380911788562348788381938432620937902628933150062448110743620993741729226914393902846197117227619837137777851732430761178308636175970817496076690531593236188637971695936642323403253233705210316332066534911537076063284562510166594309639987943292705225787206064076722806259748343614643584412123537421798639330312921102476283448373307326180833386941125333231191941862807521504586549797474982612543282490755184475057832839972864589252642746349158742674884328452417588703835721056048934548635524744876324470062652282867615171237783957357098217179243268335743360225542157463654879902019965944139625406647814922480744540629350902743106113970324459124232688592565715959219968036196743627213061601315720017798966261803075231343433816168012305622370433544475197226545503201438814211198054316237944129222144901340245449427228204777639231751007856885275765319139936639501668489517383357298707631259350383073039378575793999396238593792947381560019664525082586052476494224081300960028011570833533840232548271684474934596074215502864357132101824900895562639770589770046188153771072028165317643970021987947169419098760215019178560535880478870474251603306592905323047172776758669130599029719750763036070748511515333842695416976477435138918734151271783511788491886597362428178654083073411022594499228960328436231395985814852713833855565004675966205969777655023206629242534050094721150750695722817798217636289357528685575530006341421513096229297581866446045533175421927937080001740228868381952535857125575251534192459204317070732129683429045230350809602458590352881167873532540447762792264988565771347193144678039794845876635333225447108684875390644177416984285769314910873955304484402440700515200264958069490279591950393164249560624829255126197342747939133894367429176445715787346767389724268323970329885208888188847584027854227651778311015848475549954771482110080572519264829343812107095259852952159781693103424103255541985007393727424885601201074094640181220004935829608917999498697164505171681675280770369276675595909448106544207492520840630385172007968200382425804723897505310647651226286242106823241699368549508626270099916758698399564333622227743219926489176467492799699352915116544797644458304053692547349162747477262829708243410422724470793398142199474217862809565862766887537476296970218356606501739188764952669378236492933846019813122338994411793515134419897951625094659569833104053410412481423756855431390326279947212366609045534210452167499922595940378711585644616960246971744658257332716190961028699470441844254792464998793174008534578732297768923332488422672177436279032506921975268569718575025994991850862590957711468394966586740862056860077719475385303154444069574208865641317193348573518164342628465861921567696196487176138065362334104787220391726816447680238056230272987128597740036036070008021364380082719912079490139837231914446955914592443658934270663811217274646741692183099218413529319767010043838794925026553564564843632415038562489509443817523402375453770175931123168596642326867969731943779712956787588341986390536089175713488800162715535193290364797148821710689292730566763427534500300095277807183907971358238995755167846584655811030454018703211154900478896457741158820148668725908589911155229452568038979729028461010891767819304211306151869293780509027007306195259789553234726283318159980945945828449899032468510009187209053558321225389439980949139726508351480216302792730557140066159185301919897584116469368005049744042072826124277185471481442280127474661202630046298311313370441981103522370613992365957281425166643246451265887784504249272937231670771418489763910904431409264370915644243395331271999168768581205299680311416339016712399379134268860451147275857092709424028711308696224520344200960175904730750946918942262945573086706026238711245941079349818147554640028117881994231961223871284312738237192499068583534636874298355972060586983696753150739059515372699474875816953684271707853967185630365844031965545772098724139622250426265409745861318888249429895038494388918891997643294250535297821233595164554348180423681824756320422286060805935898242023058456184059356490636967945631447111227965672001447592326891955272258953757717052379150113749918537674991143143224244451129161237744415048522240125499637066793310006641539097461814280235635338172704236919775898590278657138102404016927869810539416596441043104002137857175936439916829165881861349304096591256057587743936382591387959721121154314824220788927879222877147525739354155044659024194013394906680645565860143806846399882963013826605159515099021070197122920805692272395314180056194830268316049617170910018237851957600592611912419494908136785517479688122186377908552534150521244791027631289421878612446965178314406275922721342233051502022023415051419880656808961140565902685128532743751059287789485768624133079414006092587208613547156043885667066781649551498420681994261076462290696273564187469375435583652521316211117201628729036169161468345759636174802904816245268288586076785930363170762242997406541424917091720936637216918226382835018266575567623666279980062894052415987778543818685467487486463469030331829868672440631133577318173059580355402886795405202512283872976664682967288622380432031077695408714820665940406643872812401545389047906130053862642567917441222127793576571999362256667165714274578819490408341592134747158526493234084112614164177519578439629245693555108103056802844569481623964354047518312010862322038674108300850429329565376126496680766874458056237062089190934272922054416703665472051844150044048023459362587014418936991110721557896619360922644430959979106657107612326114514517462618560850614568215407829367758404280704785054121334916041756259919075573484335557381772518212855770372026434773240229178803685950809124376609411466259247479034350525047013167432819857205736836697248836186719152479740948709129914181125235659716592046929426243146300846962788255370164176463208132773061740286079393384636138463721945188541837795863537261291952419391018835677942565872681913018640398222266716430872967299927140216836344787606241945128320036107810194868695229177484771147767799619432726629108938491614580811217598945999146741533768648453918101197817522757816082594283018009438956195822920398031316686915922503489103491843948952611280135541862865676513480533378376022227752163205879840145854720697871440282523877100105008880815076816642103020834104528418801197309586392696719859591515881116971581232674366541529515262098693515736125855839537268281622435668307111464912049633449502601878825839660940038088296405233616098524759290040072336315933546704765065846834881007216553738584192937882732073357736362534605309558237973265347337500146135246739478147895867625348662993731472117928516924895156672805317591253924401235190358549120495131793924046602442484779165287333868315535800697223648787866523981024717931283996141568496441648129650569700395646226841601150287596529048380503915395859546531834249112669862730688846795859032047636037627475021441605376416443638435029217436909206283096945996563599895641207570614902431428538841710464781171946874684216948856539267151008288130102820603423933686684131093696405334348907220773547675104432794154188006359310235046263057825810937040076371176282310654576774040245933135289687379951270898941768778486281564993784299196013340412767047390959074942611046134658139989932723491391546704605064832124824827083179618043153878094628238919837575429343655940759481575048476627393216196505814149081047146507421314533888152474906772570062333014557830418767955106103415968610116062470331255801208956312166127735276799040628665167634648151757907466140762225596802260719335127006101443324212292432947535736724668670580717217129301982862853596436768096888481274949463036119421401995374539878340011771559966287187343069677344851545523837697165809352718117948725524094822032879911889383188328272228492762451592935523907117350814319464513259311960718049993851893396966309574889972741638099967101889317614426704543456146845420217449247570222105453588033916597885163464623707754906451105382288157638720159418718154926403809010384299862785469591306948604733479415672042890325335746118073044474861298740064734791180774178884837195021549028349380704541473471557523505294546183124495775324129668494595628920932245943571457753168723875826123321756238015562811170600838909460420897876820247384455608258805199039554387587917343538993894517230830440011515425247081163989296208939519158037788716559562125890544000580591217257219316516180394912320141421414278538750759118584229684865866709522626128596857245891012228524430456425435216063359026914082868974946829720826704538905221859854274122293658860299981028167216647519275591108516563691316361383932588821850989536028654540762314718583439406499167479141885248418812437705115125887089285365774787752046083167406778878262081374013451651270467183830796786027720122865460214448888891875938098771222687753158072819684536095733588073002537626063455573731746726636712290997695289902609467348516642803076140730019719919479318341517747288221916937373475363140361549716498352982041419615830883399935993819798889161246327023554313518369532110480974876511244215908526233348798627173520330752187258458810059230326711515138232708647598665396589992223562738220509585573759616506881881998747799500234992349710518705329537186969489559557100710843690096920160578320551070682254625941295059692673464819773857843523773129425383347488350718229604567807747069528917136278040149649517679042151196438852104547524075376037995656196752719598938025626607348690749610031622656388405856366738209379339238375481232823326964706535548630296366601678923246264490052901950428882191491550053645267733335117023899121503947537041374652570494126612197958397764504757335349788307399407002272363612288460583896865853298449643537622525848017676586330813081628163780593316959709135219147016813889434659680563276673943206133274490634340934936195886260397991536150202105296558432368056173714545327445351324095870484835453752978972944215498038065322333913329274527063732539654305373467285949339780989624982416729882888080451508517521012138780866147563795749306025913221851769385976227529227314598693780028772802750001526270390662754683319541465472457775891113490777908702837099239794025643338175405581293332986257200766376577903768604757812385550735413189060049505092322153351984062661526333224758630702687525024652201914043233414574057185062966505695032041839225386790809810986042529361542991396133561927949046946802961842790981475957871982967539596644934484097362006223832306153412566499508453452457340889259883209233034205548781401956755856618448294542799512103277928217097619803652321290408050970348760129699892044298775677769943056774163943302586943475618034073264942185894398215789634098156377829374143615037707955174376857638966471692649340875582402520394081533760814349226929917980453320279220614154356727791966695761941923138803197387120960861562482061727276396036265379998012484058041522248454907269513979569550720218054399775993916359876614715084659054223409662810835192445625289386940259023661178454453299923625855158121518566742672603184347342248768100230045702872318405663198439347252957168341572046879452171189069474053334827610296621224423548823491213360016203313109116174615842330849894270928368798903901563239418911566500595920927004022958510059559375088301280508513947504343752815707949700925717284844910280841955574345475354056594045252175780216495240610987156498662588471735960085076254504505983311587624149701284774041711448462829024364074344525569024494831695422594801301750034962125315144462785048699456669316238046907331064328132761647599070041781005883561962668585841020927151233638758421681881172554075556443930110362763730719056414994903266704441841088513837682902010086891166311016680542247692560643095926180292936604639954187139448671100300407049622012006218040578429100656732436043912095504047231255016879829376390085674496970711196954351347993045303215842642619078061708189503979161498117797036970072821820203990186317150298832407193139393410451696349931059773156197140270572378155526143615107053381545398649898081007951201002277491215302041051696719662773647103516718642774136058220443856076572659789322953956239472902834765143910841726885727070742769552952180753991230832517649373601484431603013146880834421299354895909568713125402477515276777042108079357417950565188871914502291676176758901355559151697071992750645913802281652136490928332658636548583375203244978758952090645401121608331327521105720346610219681200075409207317691068059175554154466559858398312612973842723562212787469113708054355492850838662355943860320688270167823240325764756328616335446186585876921065236915401682652324291501409152879023598373844969790486514311340039221837824778752549315884052622609787087996351379850112978795006495035356234472516340962285698830882727443047771720235493237142348644064341578235278660520069976606390728638478002375425028887588592308447877583486460450270662450478521758186452252504215618684045326725680800569487905308093301305263210569438044081521293206009178231195248095586025892805093917290101060024296819756967331998292476797082406229693317954797131244779057953660153909506291328318381956911615012154117627487022993585211870381990039927272760937270049875172943812893737442686255350394349735751631690106017061980777769629833810538463567208968988742620095902500267664976631481195714888055374122423800855957729592382351669146528543312584075961863789591893511604257439732657333470817298548015031683642735704664715263147900462726978536937402727738001042711510410111628537020437590583296335217717376986183627376882214850597579997165256537450348150431433309133452956639305647534239628265682107260020116838666768790723383890786730809621217662875222771887831426338856499753166164678406357648652564994429934666280039095956524857391341006376354024958635467080828523447204777972111461284858390454257483208984872257339504640153383908576378258191701300386540834861062240871380374532281363551166896772576702793961906561184649588987747935043758753190334025069166807038744097202840105832691741223648008701883632893449322008894674478793980379240453228506618338774733767779259240431806103715168876813773518712803990679532789643661205788291376152619458014162906462835275403437649195134217286518774343633254688707132971828724328121057477814703832962473355672752937958197175466530743479972572695451590682998415525490291852278682796728068352353706330330481083403978147734091516898938308097368009554417282839391939120014351533703484264008149978141013308104785110265630203681051768413847811673083919268725036106320220791140946639446796490083986582345789799190591802155556980534058837333109897429805496744352510749690924609988937549924639437617189747311486025624536166560405559994921503427839864456820702570968172045233657434580064109881967709964064631852505890153548418484254490021087534936931865435610741209855330446434022177728796493117830638235387726536328611305220053219212234934388864395208666006793071593469548419091103219289560980069286604737674733724066595152899177750764764447640403095939479233120159051334941237554007262809647154312737147649417453508225588883806092216909303124403837716167788510844548907978332170842972634029472679387112091350095437288280759699185748723586875148136945785061384985827051740460703860389671621201845759824072154808146441478590690577267151848780493192582302617731434665389973004894057041637630630586340583490499784196163645047139971713974768930173179501459349019524142413447962718543017931260813032176122283706139611447352598655458819922799375832011986348217404394825386638895289901576618134908637508237857070159881235642814563740608132431169267202226994875485364379788850643274100819816480153620453937483191642159414497457265807464797369510141357204732267883497006947684263367910819057582335382129185139218335896582309423344394273472522949538131428352431979080088307190259479635103402337062570560854752706469343593818008703340092555184543645096043556101451985055397107252107126258561249066599488757146151143583313352259350864314786660651794575272515968309365795056801792945709025662691985378562166917887742119862670737892858372323915558517655738222246238502471601178765917129717499118677885617428073308344627520858749222588316995402288564881453340751793354632364695098752651408930434993195473908491779239788180333778862453436685344874388141825224984684163485390132075147708976961452138464821870857422002101418178313702284919740031011072367917867759338794016190436807145926377458358907746671498623741627321926284804272793704447508150668574848312007167250344358834011572353766539889661910431338555783257583352884336881085188654768185689770875624990636169611778120882680352891541550472648240127341712973265957880741462801612262694916447383347962224720118631750330154665517837488551488499519214919970647137584017297830914385003411848166256083669655298586525848520407785537475766849858402260522449648731748237480281986492252247372722963859391831882435810465256150265745848820471928596189246864676829298199174465588098318379933666984117658613156471165906871267943653452545742098476208035783888080185543447800363471797762593052345392760563165754491832586659951823502409552778898050367023594552097101426263588975626521216438563126733160142464227355746045763981520172581052734559626328347897164224530511007656738453311089296672966429763262457714265794541268129811175531945319296566956158111947836380194667872106971793779250383943344795012906031924440511291605760543543239293379202712589300063913665586506044386833761819937545408103275118274362340710226595893322627928395146068259273824867062459792972464354814927833704222794159368376750585949195411647225870066754487570536090780484392279350024476199097028484160345478795043724162552392979010193840569159555262475589198637535570984581236076970991502607486185419717264213180423852712545829179222028924169137154190463859776685109372965506312766953191202688441071788012981574005080525627222672767971400422082904541866700987380331583847271489936085786086308645162463245453031508930306959122541024071960411347003459357778573268949798078250567999068680423769678848517348773717640534516816955448656886966704649474604820668158285458803547714538894403377030130951369312441694982693109347407324603772197712105366694902810252739959150401199631831884045166162903922239817655204530309847170636483434585452938181726064522575924344782276209352111859429331105406353283576919396811840814119542924173619026600144931229149781559351317531890420218851895275788071072913993480697159107756154473928456000687791111330559067137478222005566569520580290349225474590516926025239385773352921785673365534051608780411333913833297903916580571175385338955395343439529436768372551372068334133244970279241047121748946190562600940618854462057826859154155552552346420328333328531839755938743996972140144905678663350268312632612108800609178105715751009837224924443266414551227088464754072764004106675095765897292952246733085144311968308537219941487885541848685786559305019045261213081342546350806772081417442507449150652848323292065105920588251168346609060736582484181878278374506872899209677923864884530569345819014162830034983977191766500507284755850249261458985592898273749099263969694276603944784228538024075307964456826224949960852921039276986891851582115269157522710794952513942522210368839747500142804412025310229795392220971613384932736892835609698356017312598274575930589386786697197639180323413809689639283716016317463327341781817359771141828717646241837445997159842185452268231568948334599235872535318431914870778717328080037352995552603131280191387545173343303135165316005652675661572657078693170164826223813683549180517314005658702083868983124123113901978833982910020064008144994882863473642930642418842481918520442389575450281268607963209796462670679340806663432212805877321023267661156714768496805540451593095255008642950435634113040131099278890007172927763254871709874658581317312883333557763717667004475150175697698074675680343718622741416676237445502498682814095615129640616200032361449220130066286582074999504896740908257532409809591926524509850400720275172918946172436098674078681368140505623569034317200119532020156648660184380942688416324923468441388210983061349938328762673531357765201509302134201406469799299126515096906184686470145864597697404612345253341517754685268945722936539748402274816405168009499320438970732479485233738869675659624135129732152106174105146100154150282583831039077029325555029194403876693723927398111516364292644424984042412798415889465565344518345478672800790313507897398051725880285219596398013469832977050048289507350740478026948195022117317768836007055468018826979837903495258250363228858892114385234053211826889362265596530319144519765355481496480881673380063691108692631772118276688447881076442106627036021357103279793894052880288526219801469436989909206576283629731776281547645491829336267072002072057500991303118712386586601144232871572885420229089355375508835991950518505220864004574947917436310218523237403090439027494915056071497391279184454268418459712029088735657170323787687697487501892479752116552985099595680155072534679303281281696131273533800477123876378114650735513319792770996447541571476062734828407279727442097887246478268683978869172225373977998973820326431868405265292496312480931412294813933156870598020812144041852447200178462514083987807194668041069609144717018682126984740577576170931183466281709693394057787597804947399060152359320399368924434090448862222714629605554073655882313850376803618342479222306159973498340178755227179988835743761211222078496125666728071449907027508743976549964926666856415562229728624006171549622155739653062439111200790488508034172657594059209414674033428586161584088632513840483713989429516836293314786616339321573804491558966801000462529294277888858773276167994891824046069312304171238642650632441998164610880959534529323899532175914871602200484864461127455642976236410312132479080244440326166181996205012106100403570265226581780411364322865057260557721565609483186566566581685409780591370887135647203951054368248119258977542306126124805114006076227862652793079248796838860863714315334537053599416111154181420087419250715107454554850113685513035818463682265144720784351095529395148629755686067152617435901072599264288163985583665092074852871971778954081330868356024996220668075145446731843853099304187965437375651402750043037594999966938935871594537983303415695430218475688164580429572179925640893099691541134315085732997533950830893615246261576503641510222880671879682993214994573399814295817781866047025159763916639096662270491062359859306883975925733349596465625102580064683547327860703853081999954944920201086312911745423628885998737361713116180738641832131607136394799084549455961559408866865331586747102270466485193377634230339303474297454836838235532982170533399526655545669538668385033822319007702291918722542151792585454807771680517328078774263880680499842047275416043592530116767453448689264958170670526054929607402427115296425752631314408803687777458962892337421412029178514798049087178109060159984105528907328530903977827485807458423985174660071783661964938937133450050720099194578935045544839163367300534391761224218263477326729661467077055233894537338529016644073405918346262378617910600851103703251869571080447968803380532871331823710981568397129650823600660079091641186395264093814367770047586648612190508500363561681350990114438170135703902548810714053985146379087904448224959032332936010040738805122651211343354956008886534778258005697103955891927518246359832240500327534905632741937617670627663381054239718623207233882755814459664275230079988901874180739713852007371821664297721486926808755624832851566059140186795935443714096609502898159868004878310769132585405042665683599753717656530824512623139545587784625941189468923573429665218633775787771751574482079960792781608540941440218074715406792124723410549808219572886577609151951532832135687346753535127089329729501499403934362504963168270397067505746326759916655357251111664090198105962837815091392359141204139100918948638474840228149166880692755291811486141887256603926108141845304640480041089555230251356065627610356780532347407023154956239239895682992612107869102424704605759477604771962292572163130673964886226584537330583829857323328420908323087751026611925847600615400766175504767494399539539606635270580208203488441876968773972470169833778955640997077294153152615378632362949677277301472205850828774823210146848868188085474614912227363964308817033440679275137338145969457406527783337958857186507561502455760256177336485878684046635682054943446005635320853748691046397759097081950511141354938170220661442475904303122056034661570403796036999457615149985774813449415659429905281579715579966323865509187092183017522713402577143194430839150332776678862411598958778161274486116476162199910073755207995052254585112954306271807459560354394139181231197735481186720613788216544253701547815267927611289756439707122716876516163787651247034498342627968513693812897192394895389793287779532961621729180741475007282449955618511399167941071448382109993851964968032670240421507716359543233702385454853818363699687860660144453577583299973483399112014398374198126035546801593964333910786926721137243980133589897249429000416309668081857361233759407555927584611876331653792821413658508626989673677616839560637014977097739901916758890219796103131996470689119348599743732768701445073076931546301063917947458188168998024838509796525124372106242273709323401210826733409673183726883007491670969153494805475030314756400237588303751656779523747508279290851311904819762084784280734380988866075455200240513312297713782049052936464212319179023816361201317671749771219700934536653107849613849513422633861066105682142532415217628850928090872762521237265489698949453189964674233875122469832281815771273991449934398144118686735003833765852705164982666901717245960174435335968597381961673858968758672026209248679989113698270627498251609946820057050994203146140391895461110809038835418555369955320906116737910015482086978872136804567677781409018555725009398098174959545213455403947141710925557550856455710775863204944591202107683741736710885945292875766046303187173767740017630682225965037733718498981714346989580322295110156596598233191167937202339615552825656514803695113162648399473503660011126275452718130535466367273154872143348961202268089836671285644024884145574472657472414049118901904953719011226015948678312427570573695932303762651361664066275900145156234943335531243671794481587676022577712561717428878041930520658916480917158862674217143871106838402242643229915095447078263212980431276344672930855739798751069922318931917643773502407286174356957714989308640855527554613919242653026971580668064898340065819277801561977028782962627508410852720163820601899762057058540781782848715260965261919831184843621312453004168662645366364018997938569758568790608327468941856349518548837756540502374294834114451724024960267829715894412556366588205212470818149279577908166111126649950048993621094007001671857710158510759566652183391339230729300631393850386056106655136849787738041390463498236689493387092489517953647930387838926042355486843365802666206348220463467404252405410709568619189946886844100657163665243333628203354780634895279331286391500382061929575176563548589591572692360626373591607291481763039270568453277635352514259605227271497663224281045721219253503218643595605518943620855863611484875474367031393447195797787119123013426084286984793764104355540163934607220544745456197977231938837582601479201411757688982311238958623754754361485956507568890496540590057537037988037037317840168678037019230855418982096189552881305213686384948258024819216629511522114665379105871607306969552851693202417085322468012977680457202408785740528252743494991691995411782187972868368558819886879756754444824605268329291824466776066505017193234616741921324025532234494845110259911956087794758325749042146460308659980303716841290361939050563709536567825294966920708280677891971915382142378995911763776789244088716149904929656807939329671153249579319383867821209327018904080730674870455051323066884409951331554028158335711386552254435739887541450978837902587666089685516010762307089185391697909797577379977042796419042914337069987008792072646412941113694350293762394042497010415832830212720635339248142916009522012442859007489624997750088053381188768593445213529481249040246481293617501199600977077999556660581159392367879221607312855854926405225160007172056396167801420746036938542598782547951070975986240239602120004243618670452840180624466856419315351838914443267248416707411412497864627988361769286691037490691663816747292778997679345912058953076156175616559024860293573884082718154926435103957764097536400385518853066396133485914222112987904536202542074382052734379133466047635206906643912043935528072126447364147202753989119080731818706256777032406966089707477850266695165438286161627504665414629980381890655858193629507396843636079667704990239820669877196858454791740795066709205284915048087670078347855195647991401732842452794689890203171297232054701233865392448668473248558989823182264096786649474701643082598620878322264419324699988932541364720059701059369717918725777050036187373478448998801344246159600495931266644765616801688525461416774262724330745443658941697401952117959527360020879812303822324263137876513115184873005756585682826523919606274687034055417234159858833778946183090124866162775808194134906063253621185824057302306400531286238476569513798849901207175129443447864863301497432985347596375658189156106236296078280228117713978997637657658367592670550975864447171464666012609230529412501859332219378988808481495144624703057567444522748980574748993788462079851736651096643439525316761442114118590439723599760857529104332325043360110360334835000664251038302890222317145134122962479112696383176519438567841420611011829002636418297515499159912985799181468543759809143845457694920564431776557380396291760445823913304820269291707859506692780872193634838438726638836978958298394876827735407994819510933266851581865484067497278342341849950854858679804756033180446936754259244884683862990240207980682630808109333629599950926129836648887282441563750208579181842146028329057961906612751855627276422428378613823434756661573255288702821417970415774696390067996582510430659469268416060827529935342869212748974249714676804615455517679576984868352005860020211035455312659544409940081310523764502721684170026030711802948178965766051513560843953166377914575976302916932957844039902675497130409746116144220337877349883075670706367135440549011582868519745461914461507728166223607693007169807736864402193629161029157537142957714213488421986042311605903668382964523829263471165899194110695741103476036421443952866811555274176130264507394373219065187509083407770859507176420083043516300611584398859097199468914208236119214111752509972549942795966311582209867129552248332768569262757864048528189672860110070324061610622850413816613358124141468538312692516921101090576594224340710557927067691750479760505631223608672224868410255574779826880335026770812165398478405804309425365130009810406702070368796553775241507182395483173461306601356927614906977477350957179448975720968858162114994649884640125786910289113219241371288018684672214169465423021112094464389615134427711833772171306762975266281597931514422673891809900155917782408709693394588403262020083750123341272365968287314673463263636062744970363065871943964668381787842140705908965107600517415373730631287463818389639935600538238278015001311152251986779966225274937088601078087854938991285846323418455585495189889971689546819356044675541765595188590682431251471832858488751022187795717318183663232540154381181082629754733530512978391919891964257846456636469453467484547423596373292277970493526575444977627399704915350330136371201335779566155608663024964757456159408430514767696409393500259590716115859570460300414100893865767795061727758630592773269360623297677526502299300713310179000563181668933534218708620612145982247054272675461318559007733696443192310729986741018924382080787326266800865886878014105463490204966865471903573164597305908130732955324042045759603612704808399606763739720573347553945548731947874188515825715271964762585807830054488584382717465358899853982070071703238596844979867648955865202518613263696745337194429495481229702020272839585323164062849937905990419459398509644668756070144923943548067965905443524824247211718640168396267447916911133326289313480038273541343511542691460456236748061673242582786034458098903552796834282353997118988327272883658051239074841572795160780468798636046619834593601233520001391112800397269715637707704042780585479350948146165993984305105657903277259392459236576956438548826459104572914081150440728500060668334160718720208102649081471075435118529085511136837184252340004351498379353179005048727005286480273399762992966124188820115950004876201942542056543221722115862389632035891781324308720523011677479364475529734740020454928642333280382439284504308422256938188434889568984904063696426542509499102806101464291235050334187398277663219970988022029641914420025322433437136244383472646858907752281416721321634045252314404883246296187928916563761730951059391697953998033831166389633021606400720063000691358190345565592675152476957204888310434615561257062713738936543862990971214157411707883954002687117839086384840066485954408007486085167890138191595023270234745998778295823262543319490331299180976688563353534756925946361357170661427738714666000676272367207029503904540253173128585368842543356643414645620358094375309654765348878670877893598533826385760478979260991216033850403379692490425999676107231570707792510993670635912692587125553665768154179038789189625289343975314815356636405969278586624997049626328653265657118768542956701801765057185607823963488715097683424309691844186568065034575490046805480964627582188962402976246183205426943100337444497639941115244344717317773899183529387005171357050351150124319664078687742724269250731435354185240614073800944725863527218874743784370164622936617534345828722789801445270793825064063049138762212254342687653161671312031840161170321095007695595667080164442836496640484357709734653884258985600850233018132568120475673763065472759290121553481885916360449289096429191532031595483961476759945186045712479032591316332285903579138050648403762407352221722981303229389961743760588345835296572171008696811036422300204833940953506783331156897923205951291762335648052372600724792759195714941150338438988863713972530486898780760204977683721592278258218426352814860849858857854110227694259507672037469432581684852295554899384944977423547220443381056262580356144232898551663732992463588474883727522718014034734163512072409995433021812921735285040631436546507731303939841191716895136245176930906794075051353190937769969167941022140786926823769009485921179167454785137690410487014712346546256045263013328870766343245200373535813790238008454042477383208247239873112953395949569675064242155743755865483355659568878670267469448705393296047105259866484596020006608637875635608391285994870255078690985319874534341400808624971184165931201660953668059618009565905839473041417721259382946977689839057828324919400814460696727891642281407999630314672365535475894996513165847722751228393395963797308377298005333088707629249572588787463855837970762659629952388478106257152268570570846532671937586857716823516981258647831806185125017768135931143588068044893648552950394945115220796101784172252234749418318235023697611747852586638158853109423320112179183384865616328428369477661430270457139120822715218943493379356958078718808298079298789784407523466705657359572533131932789753342403844249188707239687446298321205135688771920116932015546832316715799873254719095735619447022498116428701218977761672381879738419386556855983391667451502563682526728303675887632011215005276058875737775458158351386317842456591343797491090859413316415646058756518157485403354794255022781272992263057252278419899932241384643344912849741382299394917714066642324608044460163542506543693163902239321132317991594963377348123620762518980236351425653658417418071218958273016699150789083018369857768493599586266996651901307331415851419864781747272099156419944996198615635620810018189377094072607120842224870106491627757324415316821949803687145812391290122734490260771128819209940437148688548528124788708877210810355661596119604083061883871491508895627283008115700836659550672796782218438625747389029053367708195694045268368968833839209828703443416533584505570757530591713220994511604417259257443111094725819136190362433610119959639465931139474061449818500337070158749418937419265191221166336816800524022964252969084675823325097389235026764298218597023879688279247137105110679412305538634432120417854771938810397810075699805180508209870455490408856968262466633175909924839892196437960063780453451643414062525059780904411235910387112476693385479097975302901211076508294070323977798957992782974706485295442815460904728239936009934882226054580824743249565868422267207585077372363268430338686207986834061670968582868845352514063160477836069665049019784826822799153689928249907797443240464040797979173373013615829722865951191001762865586398132972226785796367884802148118851339120835916502062598262724911846384051516202115765774948448136971730068600285222983551119643164263581731507726772007206692857103098402593348183612275761470195960326811255847919502105893607421400669337463998779938487740053783122901562049679364583562116117087126803238271560101389529368204596387692468174211320427151245701807325553115255370908833833419108280833654764236267029047455943007097738253335258505512569867437773541426640855526130306444084138408860296905310193686936469859626102097110138719540692744170460803233005891061588268910940951063916452412336730121586484932716930437369471020268380289978387472061868085563657689588841615979397087789605703147228889583690962225781138983733365904905514068401546594838074897469494785821461932562517606550365642536231214791679073330660718510263518406095728181390506534907423385052822334418135814698530147404467169493015945219760624965285413165773027477201485739878540892568083649947146544629493166509343217380918910063614892106664680231173278930241309882016251296575967605527186196548776199520369379198922020830774100172586012149610802228948199522667670930321739801206190510981607054785790898396044921471711230537845184606196363900577882051620842405072784686758737004774599009852213877719865315374613350722691602964223233959851136044383722897285222377104644680515289846213732511298844781606541612097308777279861237194831387534001347203941496290336490446086658639663329178736917803050704405653401670652997012113854583204617662933724264731902548830506670025003494786693496534656002443914209699532635752703321968338714707208577152025718646794170436392301470336076057441162879228952218684863608502569925519052224494858966807920603564385702187963567563108369775421333725718564165030359342813091136175533640653082340286761921591714417111826879984244425810927965542402502804053792871989244363890124326523210110719194317859087531467712714115930134999260003076672068947644449812739063324625014980044598132707889125508059417641041501104515331532562003464087499824522590554235048301879732283817824502752084423741628787983148843422770524374277960591954550809107318683137019038117246280751824900922883711469975326674804983962310901731905646883034090668815307284752837544660689571695464320929454322190786451655422566063790079711081875134658024252965040280424754100764522210829991742727932115594737125280789721294253580864153593101064780152259883436935480003525314897488162589723561535158553501879045420666981596080418996574480170391290614077514343777047009148201323194249952866936689000191947846259923497156031544888881080492230161944605573501375612156075220309448129221120651947477531449236113303891599224019907101386019099050884248038132953265030162790970206380018326171362814062067277917832590833322135765280370881850390394337708219451079106616818890255251216467332344132420616287559539128606320035326044732840635591678687064889629140752165028137924021605836811463750693436109075048491441700549851866424902075700993645241002245880804333355750539382996460162839144655369749224910294077251329839097455734348758610334447698391913769579943138906069869981836243790962931844705557321603884707813675875881494774244968800205517124415893680857061413521969928091141605058647322440216720038665656911282923730566515621126631520650651364678443799259630654617744196453689295429177486585769590526425624547717614879488483658750848325111570768322700356627002987491266628865813879455449398138128658581731893972881957086295755088201114772422397615778182246690175490729479631375847196359701729478992660595614286663851827796744549489280125364549788714409525789210569291418386117544723462060391525547554936675331545846069383777993283956083904788158177052893527311856307875411459112761237451655203909662691698998141209082869989950878652068227089908071585528573185706577135231950715354047085554243718160239124157461218845559598839353419149204921854491390603362996597503422824105804807607535749933402366182544205250441107014410887446450003360894669464316470353720523764321792654294805537110731853970766267731740483080645327935202751199915386697575538059751409765607496600853370766739385782104780240337170568457016931825204475787960407417258918286074111795686659546583467802505326549770263441641022705252614808399969777204269012689169233506523499360183061502044674696256905551725358698779221202064241040942549286263466660539061356077548557000719428940405836065742470188903776344402233383219845833431675685360569399292808248742696957218159638444410787508478376546779317151767731299852212210173396050283327884483633395595189805441306485457077393676754281913836167910863412604484393339751632113483733552560836225865970344099217832350123201441940185536260800267403685972565068368463590389928476626885204471278678246329807111360847587000271740956627180466138457307370774086131447935053190491586183853621705851229884142486736670068526740259414207156550523299667498856501317395174244704535312740582544876529351481632845929177530716784948384573401591914984891548246725422890340659760701304860580073874648496616559510415638526794820690715056623731418169164901948031620617048985971318443137860359762027658933097518812532862264605575365169561529154063141501957511687760343177240043893940477921381949638173225245623693105674993764563456664167907597989355345078698362692958221343261704327810190944866135435882575113889075989243794990429666869898180062744858796256579117346184980669465362094065956419174065758134798773756131905523503817186414115920499112525231995787127773696463001304978815180198558126010871738917642059633492486838734011578868406307588934051765907623287887832667351337221654919763266357306980936871456740224937889089060617445814813403273776551337771759510344090386524980579552207669711505626188624521964045426323023791106566090096434807368488742290450090132986851921705617062709515461109191146492625324334987046841796841038733749913654574821866565868370156346007046953013216931894511988991857225701969871549147117814006079560637966903113221151090185898365355797382836733901981161235225451088141260388370880455390507209781721968799364709089188185582009749156129109834091058774873886938899615542221787288330706007891760471378921085883608352989685289725037998670523968837962686313788388999121500149396088362514278593404106988687928389922907782446380612053756278754589511434410677544186753340445793811294998201178041589237360419822605076099786094345907627845465120867387277534076744359624914179951112133483268686151100052506860078396090626975283459424049955032257233397320029421958858760583233212411162678292777387460059515908572320056026684818745834516483900677377292626809423295590909859999390392439239625560242044290816372405439778311416965604201406401585868426161043087404952253218862691245455291631831928495508262076884118655708475835912779261746554075339734082265456217104700792096165096570796478798422887404185168291472756851630094006662554575871409320772792835327009175854323212322227982752694872870108042718638916591140468929761917357800363253123907818883049375842829489310471916812140814712236804882872673576518841205175384023489720839599414733539024145774120660468765970385124425309594056785060755610422259731299831588913333505911680780485740410786225556966404871246343561909640764373659432501828564994073244685130513970580595186663262509605447106060847560976960608368320823885726852039670720244889651879016462426583992386262133421903532611528067611828145596153836689324057801210075410150713658285329601967310436083739914826571207152430687550903054007765036678232298969887314147420426229634600940587831890343524706937088879231992462118133224405177860041530587217165231900655385582346055529547210899916519655758130304032421502372441843353492313851258326835581898674944247397708722534222940166084385336853295262928261508089237123353661179653872270043128973458176237039677116078479595058082783660897961311544020936279499772561376169557187039574651168463765965177306521267297139831193876820061065152109740677151038774896030738816763745329773224324440195454326551680010437043635588696067400618872753768274673363530183994232323916334192470289493291230133289663381819514522201213685944236484666857377745231684777138244125422141760682175194602229582520364161842078556289371158108082373476040312397547562095705558752393704183195943482438574720442075135955273604016995346667990935031428361544248665491412282358581374814658388332238067629663243596777437447842225084807432246735335592924646379313318904326879419057969391454312509883603245684833341435243637252094736641878779700686096981749008847994502551651466522577224453519254060143041085945181272701010373901864246666927793421161254376843174687574085273750001039923305396418689420323250834203253969592646517496386871412135008599710032140074490110989603408046332939924410994720733326508443047109638831810712657679498494216081984124816765832054975109156537549976099836520022396363393538581003548302012633796747314071856429917125893388637137249183911867296954901728878351190489780665870587556923803958531642959961304072829865844138943020708679095884819671837050499294488003710879113541866233799669349020104560384571465995173224405024613586394124441376747914359796989139871787972700407732563360406850312515296371574431788749011052708137838935398901685220079819580777956393289016270179871795684582534281852719615017317746500013079585957772138173256985179717600143330321925912442254407485983970661577128508533652681267680644977239407428121070342026218600328169330667025901281960271122759786286235244471960100470149250598497625202995511821191290888892395569204263680461043749820603840768407872935026962391183068055088744350084998093665927035271001931910374290050828704628299687501366370109109436127442724775214782406865970406981773294626086232476877448483676486000056615495875129316546053699939602043033605786280265259053204000727326720094505504429636233115502884859334667978063868367157070194516321383369428451149970681152639956289688146513420411455495589782944718039174439398714055361358066138501135568952595319538556965771704981285771391986933390873829684178827219786928147254607171852617321142336625865561055311645047871148245404808560405702480024083390188801507817635394354255555655193642442774265144241944904732316842720161398874352373981473553907293166718336523625239937717709926786111619925937060661482165802674748966697558715150313533050471523443123700466874013536389368450577502359892931624840306549065728270531502237940827886254642979294324433928208500441350988721288685551297659878877335995949869654908075698043328090017850325713066496641543718657739661691145741863858272622801954718037860133568637814820618716902370899975111701894907000448713903190344197528648995519305270953739613960218015949661501779448059165035067363545186258178041326728746790860724731338915530205654837989657999200129180664699778312046637985399357466749004399301759233864144464500298741734226873108894773840826092386758869576016570152721600928809485817286213035601660659225526184245780348299424379253208901233806019557735267021969384286576789617194760728705275455424616666484714076900096223715509746251620158214644429027151824619857894157930660735886426929213183256457266549008983561059547540944510985639020536646716033232769772202816149275201025028059018523644481675309473918002202101034648619798765394349928250115577780721640587624456809607279977539564841758238312506874688968225127493457021754031375877280145490978530833470422143328169810185300861574242710740986530057016772613090350162946132675597943276292501788130330122006051590734886131163141542390904920383402918204612948353490027556792085855137796043594011840441808652872367721495282601928551525638956500378231193549064956530246194415556909608840572724968172937200871857157157046679213026849035833155810743711972374579358472162952666991352089018197883596749528004430065731123867912286066484638272748780476081097376068489726873105861046220617185353860637927496958434964103464405746435293731503705366056283482335165125219984402673399549172387549927799275942478069090891113803903185429432296246708245675937470174961911757482284046365758141381256246317990241038991268489429749280466566587417127024232202294940637622610830136387034790942106613650483416790343312904741545756988741417701184126531122581996503148687724940028143672814764886627864404146235006101811000229945797126806781668750793418336779497627056695410373974300739582903727353186582052153962642567357786101953264669500777432024167851434214574419281011341016764938197990129989151731142860016974410291838871990330486435090111075355801348241858913877968627971717027042184347321805055790437608924257782933390901803916863169692241925196597157917930933062887084048385926619069867429092506375498922945499933573975220757137656592516289352664858174841683028931952273249050086934917344881954756400546238843541643307960050062370078384616537944559934667700642596692075514548805500712304644339761963053923626592875825589647187570331622595381816189590911735804548661683673407511673688391746395364976663411549206743268170207176827113677219882544273300070792143694312622061935102917100359793697580153991699483467244532391827181142727736611250745010748808451215721791606965951222656257474155911104071680312478274237104808137952795501632659610728889173024198195473153611209017627031803016180147586921215472614825033880408215454859105147676091485626910964533019044118550802265458675459146383269472469531692719856028020637088366159874984729686711229438303601775213225801216104535200517019374057416617374252461086433278688816642280744000949295822245628009676705813500704062958906717014247329964260118872706596950536370725231812865356898763622572356258137193118070023741842799410605545135912298444800202180026615331360959395468637083082098347563590799213747824151036791632454114079146833122007244280154837140935167255692024722455289495348601089853720637376897971179201336181144658643565476310485481418682489976236419574642577892314366844854732084164073142641471545996994189854516365260238066196924759649914082995222498200537336286826347166163342104439946084294767109388574533834033432621478560515716013754832189224569361873508785278736835404658013389719658603487058347439668939428195484859565019405959463229357256511700860755969693575665749681310804653479114506919907164157187501648802789746265745126300310191172653155229635536153429940533103731327921951656117608705935251985701947405352928503484908945948252231721090113375974084072694499332689974556627629631640031295859913399891927056161579150053916172403946442020518543805610133127766760071334430856066673515587965163288412742454468294350370917099651947806542047709599375784717027380925437101145759197213283201077597456739368035078083850028457641754899273935395608495553230215494619529894722692372608864896089675542553585629233506750593888366533109824601888964178910958133518809146201674631633993694970796807219258402832441865795246553196123050676066110020918290790245762356711926373162447388593450745821645192716803453509040388994265000329894301820843958463904728365717384689427116792523540523589815825805736624733309767149295155350356231727978930707240806856058988319517851564761946161306007129208523329055543325859317678819440344928687150560876189472805541910548682092662871464593989578932441918642047762201921407699214028906420551677789846404549626453019003388759599979359927094696100908239503494965003123318931819945112571815772253579233425332406921157379053118443079351415341063130100924625690054764340509868581119215721967989589032625963714377749624446397472476112506911345686155455258266230402002651123064008058066533824318453017039165699967073682226829924602054795092724790943211558742175378821694305214789150952744479595404659312431558975039198412776389018602383191496682710690501331014688092132162621622434309411337765623052407252297925774442146825924508033721197368812527657569001309590206167571520781320119453120353030740311721727836172303827753355787432651646047792868435774296336970148329655852467817402968609430919894886071161166833291549503929087931417625295222890565023746925832492438996997191923843534708230948773072822124989851352690359708073077128359992681366979457408695588183203363711912206539283926659025189054763051936996909972817685902658223697549935426996874496879033331007285894876265904089302495477487042590370117460962579665494310654283782301883105478279409513419468397550129368287846522050597053387215898209426173617806727656991095601520042122970278270700220515523605760766107318296798006882936254798623656289965976562450763364786386266910727932697052425007819558271015377773087765001328753679181292209809316816695870678339826566012080126628620422231933066588259647304561495019418837155082749784792950940924683322279942400012350491658305332179010669248042139786152078096194834996131425490291779015278949620285560549685500090959517469446642477726165888890809178830044937077876474165037778670530122637910469497858568798025028145130485314714729486873986396347966475362453836262334122078637347139852674858113936809951680532864687577897424192560581175785032740486369000570791521490364460477322768735155452320681015296812830156532261628528802051662458257974494849526694584590668218035980106592866387859326742434567652494583391223148963189593385229580249667279813701734446450130716202314908345155271209493149842654632334502293875257149087527034368300472691087242163327087741910301761161320311698029893761935841519418268179333876856589142394138078774859548117784809114166369540598477688224554699478919474573480722025961588806868625966118878228790880271844997309124736298641448519964606224218403337546058767820214149893879279345998899057942163247442599744863367404126466264733735431816383530949832155237218619029497080336759457902317532821075610513956128572246362607293175665695172875897885060575649427117461681060542268433134054174147386659289318496967876310935981497299948459839588240381908721025171934568730226340768225893688812922896195983903849557645277136990725827098230753714294116069411614059628426235630837319288841519530157970217795790261838995266269777152736577732372054608656427699655700002287673739303047271924695987842851010726951205550193398425529656534371281227273139895380786958190276229854936021568448955591474333075042250922183902486042528775773989678335319372881987553678315670212034448118834758974451149865623412578859170721207920403401359919029813444774761551211851471630569312533879899663376717657692622381570317317078306269113202080773142098095226523936043464601174956749470047350851531568921036527520113439525963017087694518746661184108329058638500694283068946732254617935439543518647692013217885839360146148317330071111872719034424833778963431263096706232525951440080662087006103498943460228179267847644238797924539715785867983912208421001812989343279713071484073709455092973206791266036227315865759942626675590763131552587793470084240400274988179556112751204893448059335068409219149834054439458554896249618581141041884533697379771217056264563697726367686817517090822891558464021996260383748787620404919782955161376832812687406467789412339195868973508318461419000370424718527204584312058936988851018748099535562759903358956297939605181158395631050077136754291777784763880401093074647695807566058574048400140718330114913203994422618927271898951153711733114504414202769396740804184510574499170376483814631220924641196555513302772024322513626291836651303979675532785811510259010018925803224917359129959325206900988211654464463768102211266222622884376281608468505529383363600958819491112105907993688350240586611926793239370771696829345859906536301238066960686659477583680173077142561469314633241927467813597009058643685835384843115648266446759056386641713963562222624310272294329132931219876509221675730858459151647878831919302412060564700161858841188750079207745282757668228982099106321623134147433945609912017677194068411561601703374708803112673514461511626001400272837261128326531315153806207344432889758775826742614094448105280817698368454600317018766833347096159808964800577974718454820366587382271364871008810445452260974879115737672460908019284586619340995637268050772537786493192639567242079609094192775597712313604220380036321882407988768442558432238425584379785304963098709348685766457142458713629531658814868702742491962142073836889813123511048778388757350386694672372165948735836840511211432041309301237228881849567045031209053327140852753744935366678158167978470519435834334440794671481084923623414668016719646579394962504820879055013646893192297338640113004059332882773595200913370318263736462668293202470510186392100827049632668628245879908736747234442947817650291555991284304128957177781611031101805294936253914023806820217702348451518123013014948441363576872214823825713639630853171938803981866524065478364692896286828853771450993851180137761040534633431359399863123015503768275306902068349302350581124421584927915943971300212241737637062362919681041440538551115737316979277551404503552871071765965324921266236292503830128874565229721871343366434364919792212829696798717527477234526281750216154735830233328158366858962339049339428175234003342911904556518257275059545570536057271998272011958982408128994810133242977351158425267497358112498874682168541163266839705267232948414480432876312396971348946670125033926212521862433854745786288446087662263494901313809541726112554750128518719386150450905450622786476381564313468895809342654759137178451241274033661825069158486902478039090145716135047457776255981939593720136497470643635442955057686749948017937320333289660412533344038610146708655244563525522702597127748120174760411706776216830168157276802668321709915139706401970428468815771255670604786848317892206319314506827327536269461866557244599089968781623814645107241800928495671921832501268383726544126694983570401725818241049566725073802335701043099437738441240694059516118778781746039922935329179609282931247283738190630730552276862954694044518800645944607757301634190404968061017090527934265536969028876734384414556992722459085632100249332288261356925722844325606465345340062030211083845524085320166018907600091485737865732788113800927147213337075424253921106819598426591406263809545815928653942441822322885690129890820522846018683006785562105839240097632381609110253866543822224647718923123737017980477588662007144842999928350648391130751235073617151546073696121737340998869099892270853401946731461455582273179835511351420333823680344781606024086733460832163377543463367541661965143336159765867914487782448176476238717059900556543030908876549258077838710410717357825545887174338331066082966719131453537648482628436721679367460129368067201168107622918881810166048337923084173996258537937467977154061186419941056173175965222720599065797177972328058145094389083856262438180133624010210636438285674574244926655041045289129249082582460894033040219178453268139400856383832190498086605668227608349536454566436393757210512733697371951693160327969462875590663461624321136040070458209537605113766625439985575418660238731412710592215245696804392700663931652513218966773713750634121381958764197901968022277925463691073991826293837149773754001507570201900696347687736574821102764566981430913288378533989835151109480085251824791390032720470042641602158090800799406011833103233293046931798899413049696864020791523334521300843139526417909267095172786391091075272090623774766701112274708571167645982595028582369888910494829612631636041458555415238308730643829761639526297430097695004559778477184067201095312613940962479232562770787665882114486191697380292336577622011664913961834630412855596165944566073518088328492493555975741693544708620053557056847259795638790226483114839553640444190231732373644033422304359410661685729600835532668803403475010683639505612581018743770302846412906322871728193391814291825275279037003275047676508335389345714052906549548947259142887791236856288275630499650198882055628714314321425596032775813455247255919553468413947288604921394223442313056530705836851431966689585129100138460153741733232520717186499906172611723739436884587604869156677882222635843183371688949771040285910251487099771212427518954362913009040784115968716735361707174287279345856422869735508288289294562036019257902855904999296070895903437835180052845406848684190390857481465441575343894088493212757002650065229668523285758421918037078427404774376495862337599981939542832797944947884364548806045167211059034128298679326920878013362977579103439332760690117091953733340142417615298470616861618211754434870816977824001119264787927304096755237410416520871113663673953200321301969994800217931777792330180779138742587642153514160860101699525022772802038975304416297249490759510142741790847461166261109280806037640020156713817725411902050211882783299061708610754771357207549392084271843452841793698950657681760377194123382386047027402498506170719118167452533981389159478376771590236487531616440251123653099786848113916259144571466853047042537422878585795178369808052380275353621698595017621168052706463660613957467118736262388571054404769807576130640532671443708454924560455895206470866826426892033255564716351564619757573499868071700453330294583095942952965326376458147572106977470544139797697148846985100031553490556961956593933956541126811518643528172771001959614197848287761399513391193898298958513866356479123219255790564011735554842390350154845185243402456044885112347663050317273038888009243778470974414503025727838174744402916779894688714381843873244973898522830839156309208124581184868004942352528947692911461324791889334867374890394558231766949284927666623858402366329942731523987463775381311737097379819380559607575212279701107320046494761914771408960894431306376584661798730780060972526034468197777596497838057647666828781735111570128235800733023122994714149412164285439646261921978565529064668798105260257267288689548268169379790660814344307823028206546981471052890828486526503254837715514839619335791816194352566676027291746998241384314930385642141506854398788961820445945896397538872831099348469663404053144047026173187074205459096688813231621146044845826323615565324919579800218006354711004394550566319271587654384694448936376464820655973009193244730450031696278224384499854890612780519950604297859585898373469152956741174132574343149528029905119887470752986172785824677078527012697590246430289602592085477117643017478402743620632373959383543691847087828950425172005143734899060694282022635283940371615815797555744547262575914935235050937625697259216968089834658256094556436147633966966694229222463577650247474533523997114535032715097625935108133593928922900522552795906118144661427595767613537371479424287807692430401178174542026863159534513907403592852093504334855077579365154136988879072756284578262833405359637292546868032735119707603367256717004385197067911891048941253744393255125749050746084539543574043324606040500009459900155029280998349818274755110589187287075434668085792292226420732689698029428157586115439813222408048934010332061054136133558810658415812346482076865880166863591361571485575358181130673856452626610484134347346945818001235909390036063649325919262262288671382471257205367255538147726084867739793049000275166813801591262078207277611888738012750395279232033723215505294349506748203685894186907417464272962528772276952382138388694989695130051412600860888633547865876904382161857812301666426243844083778644861787000976323196229634542186102847697628285426532099707490255232488478325342927669940365956617657705219177305874980148471313605494779703359622114599960663432968012975718814452988106334745082465307247170638653994191705869863416589213822968096600569344363795332146897620492066038639316902928540051340387272464744511590004887663484701393077443606119222215258432465437585945574751498051284297510725320691344955012177381929624391678426679215492898234038144095978447142411078448849449076440615100016167953980573969205867248525552674821688430013797066476316584169715078863186722431584744763230883425783485925073620231148923320051143663156448825668550624744308962868928735069746321185609727684256257929513460747969792723862722031397862125647172736724320987946949393016594191922306300843789736157328502438759650597188022489907436565136773184871354633137960837643179935028134390507561883024444493284337296890806957110146435265159260558755650519489660326287841481462694326177265564888975507803179980772003820523869434089205693492750485526825634710648927208715621069746094801433107743863975337370227553211101699071660403935597443134922959047944459926914822353925195408078257122133060834775601640517977847984532643876927094783304222165341539898487543559118843861213461652961711949195754683741316810957549192153807692945384688833716336273298910869896975583236349646365869234901306444391466195676378445031543577719198578200591455789266009924011272628917556252531001692037078891683729175091232335497954935184860249174117590725822675662031366573798454974611374857287205772359706380453898181877584690327861996684665880863463530831082644501292768616333517332607707082562495763559995420258539095253659296244844782917569930672746756404758202402785846289327634780837069656726634263753337252471942010021868752964388197991045525609982363572599876445052887388077850920160796835696303131540677769106089043238617258567727911017016433395916192629540810510620802822342346104378945522144601020083846511962824180635970003465674630584033880805549803821819317879631833453429119412947860386329294379789318061369279198530341471586355066642850562239820597376388193924666254976825363018475415435897504809782587918134249807507801046343398765651357512815939521174572832256769970564726399351243523212524641990792560769790385446631332249194705350517910369508984226160580587178492571528722730820694917003943583497306627932170165238806584645809986071783281272944363851853148100128574029143222172683745184854437933497569396580727832537510444081401809626355873021316101102578035018727650431091787432276496023648757007692707283319858925078562961813464486733684218410875219080745751295424976710194078574846138874137136067453453006450471821545518022918267261314802546188835682089908596077012103618639722254944535890695521177122482880014458070444932499824956653453078259705056574062695870756773517883200062075955133999074350463915895348894675625063882164855223584359399279681349290369889662133779269623102518561397818455477962321825066259307751952142770170009458407919371738515397359790756290919727314143590136511261713751948747468239340028195653552028991269484953272710239380017735526273138617600601341855889632442751733856887356950938011870966529552019050949445964125492263034332793948367584569710235252155779049872621300571753160522928497076048183566808752438284404352519851397786943247234375694549685804995511747132993435450538953841866322806187731327530615341934960368164201593222870601554714310643043822522401224694248556211719455092723948359784645681707908242842190501094841878043160583843633729826889341602082656442024721095855446399053566298144321507390132576832941992248941050260954722357973805422226475910681633425403912859498884925999065896021923730013650013533470956946720425539039602053817890884169360466881285978630708501805026839642304208796634462452934630327142739183818242057889833310818511311060369702167811633453320831480042328491718311421650149274198563298909546996105813377441291868282884003730349309108852681275193312453040132350530010672865864645791649863758144553130825767964003273551050097981828189653408539501831681657261528499560589505579205285834210676114737466705783540010997665562359651503042299522735777093545481833212826798865076356223596369916324454065285243894600367737964847231342275369804373206536491433202533802772824457485548600317645540924370800340641234374058824277412483535670203539338440507546277477239664690479615712632559883502103410684156817773836625514857018617628923974810931596504287141491052993245814088846624944819505663905695290727946541210119182109380628511239446327050985043812269086493934404877338902083750085119064666095672703087960282517158586517317370428459065211163380884666302590593913948516499036867857702065141253344979839473792925347259310636932289836951864582206742312768903654936244594585743036489414380264191799389957920065207323007122976931726491360328649659848044092430352241416462305625627543291574456625933172105335724499132100587828556450215513603042136018620411668101099889340089309997854657112353783340293832477722135297632561805250433278372971588189095866730468873429551736373132481125232934710480311692587978430005928526429783678180569130461283798423792493804451033079764509688919740115726025069575300300792764574855102947849656941912658355678909206081303434275295509150501016032887276245174202851750990307487689352703146391974575248527245274326020231885919277632767659833385752519042573011246362224290873536602671898401429951362271722318052867829171276888181537137776619925286731204769767018271437163151068721477547473276366190849053221420828326104265063420781856132788876146020732515598908209576701165168246946229849626162296602275469858861265373844251495004535776600291268228823716581713317963082958513553292123283154873177606139518441377982875116787379467226746915495453880512239156406970826529029576501632038529326309493510844119539420845820675618330571945178315769317239043116189874864995309729970847042444686477753599670556505419061819041418023373571006472388147088808648911676518305194631742835907263936416676209571614323682339063417429728722688301407533224857118372686496780004458792040756935602802596015249943619552715179212889149966145468321634393565985102636302507604762826462416699457139891257045191120254325031485935437315949787933188825504078503826256808974044862513974828020561534883396391103978865324267567341528920922797760103638374761503980518676912600621751429050670863500209730052555779948753145232138454355284410940791569707089360278527598244540325288554012223903306792860250034917111284892201859340901706559703813723670901603857129730026902078157907558851115677977209066495801446990525565682191413605516652082498503004133652982142086061498263116196593729359593887476218802768242683597284250926457744767305056137053141157532870565629178222254100877697899554834983697348703985789922925809098615590888154490219241069156930767467632756818104040562200785485834892092183071140205239733488864133201106978941764869425282731066355930789500128139157774778830682536038996357932106376655614724464622780192086555788703707638196674371682073567982447147923456606488107000698206866409901956404597620663514032837759852018451344507151150717099022454369356953343285636423165918127370706820711527452540719212417690419213736707345617139944150855446025312288949522357278431250445763470560885308130708623696021640951615468470083934114704886026692154335022648424725802939293578315886270471831155735410184057687756121989385428537326265042185645848425810213674266690823940665276509267515213472667779848138126049926059559123943175592674574230595863245258256425456153553132668952046470847556089995453421931009504609094490647720638153689152803198342922050605434096233953131424507923385816466628965074815267449753083823227462960643867336320690222899367729739747960730724138729762986090796986862689781655750744426650305816077932431759011695968473240918284318556674743046156974628876931150635684234006381283414212790133508733306894833790094578332275341114280789951627336885786162591659633218648679218544500188873960867757094503480988509101807418189032566099427035046015288847087495835404179496473392222348300874869316878685260818288031842115260572615496252670169675540715548800114098880937749058739178789692256725756069783819067607544224235757004749766504673961808819739986257056757918581578585731362899148330915211640723460133460410367445343869861981581466313201729948001781318033912013631421577925933216838929593509908830122862663925924282132553454719198022527813505801825378123351742971177998797621783064125421706045607375641907704814377517084356684157669464592832054311693905162262876942625171148221990322311340364038868887810024458631343863989619162488901945290206311825234808282556380053566816587541900599576718497201916260450734827734289470013632850309694200523084737260455204572701791501202359779923150792783553662556165051306495795212193640631912538514863943362379577667270220694315403979532464923128959282888957003182702525721869115951756348356412757415804631542368742572353363741069799812719136073657873549925645627544814268302075147808968596728967668877198452998981922178481476803004896871708263845434465940983054432211504303472838874912713729838852770330956088989116020379184079107098282291378824641606494590208210612337188240938273107435251809845704988207878391288296592157430989693532060306339423368163094210049224678460660424847090671426211900966874420176867351314738628967180099944322972217958951557745988460627733753053142495794011533702954718642283847479200498801569684762514604649985264636964434915191037427225489144573863874024361770736363998278992909499570805630428917770240367886505925590016632510397078025134835262709974355684711587045879694598493562076082531197538406459271859421031759986412700253703391849301734433619397392761674264429864490632306908803403173846091592268096184895452986600273946649921320040104357661266379754657308823278677198382373156615976292243492472586018820681833982881093656635105804124519297408482294488909519869941027567744478044764997555912188180489660410772996572815884486698346471950699384525701299749820530197589824309272512723701694329827152255259407580943072628153204826488598349068032935477000178024997300687479516618965837766974431958463067977535762880168363145858927753608473607928176098976952785260656533904864973158949825611231023114063669571144487179080359572273509307086233799612906003150719513158633537008311463251730542890193176182969745984250512981933553577978845592970860033560996351151929119053031301550083120631939420742961608869319578048968983690903849683853052129179485791901596381600329000640672087441257839468054835521229177763381188128372891417811402855180171428254578898142504048885200726871605171229227591507536720323190675065006907397446766648548448197664911111395775349096401569733083992014758197630703681926858775647530572152606865512077415949275008053979487382556836982903430392750674962514257916657321784414888239265805004616160862442974548414986042885617357856691736114464808723884641743259858561081385666003073582800325092939150115113772449023763242824091536352911138334285354832643929434413051290152817929746679684401066675214627838561386137067097695129002473893842852225076931406134317800553152566048178615997706569124595809593088479902158587934202950098452927788759368930874214971265825145340838905063586120572522939835068466996102040156223200634989598798633343410391088401729008265190131932778198559499333897947209060484486215687651037268445056962530937542578963323611568047802876842194379986816800592944256570140295708911443572306740459585226205955066200612136852310875073950067924650263378644471794078685254044464313087982676113925794813022235994798424278356595015597014433498104947647622923735670022501985999000050483118362925292761549033886787447311482703643888173705767979401033946603858735714314232758433109391884930178623086822020062888425658705921056429548179658899963263949291661098132381045941843951064511784884752287161895507429715325049157857898134177576231747915525253017904199592657041847142622611289914627469522752198685494063708202126759826333828596012254860815550063593492421033862953747139580623679319791590334679743476026698292530924920087558222308727421912233784251116629128376301535772908318623802945129982591864438636861013810625627905297335543051089867223008000935496796239928452737345349436092871585169188160801089142444641520996519099135510894804695041396929586679788932709625871979719023532735236343266193415494706711345732973849326704249853821087484355608741517587186492137158220436580102102435928148432818011640971639760873146765817340716358364821284385685212186973464972918478256236029119993653164796356938933462408176493360016465716486667563461243152977739666105134918508471895248311602361151897161468874042259998541983418946144293704365752963535084340577611825456904352462013989079479846486572723479472146371049231286255461036004888055325198495094806189831662246865688822668963014852163273025684682707913774796401810896351921649962753479285884186383209532611609375463617689427065034725763722719208689372334536989318236688740868754346341689992658434796892367426362854373175761797768331175385423441302204470143045601545855683952261504378171535360320379151249595274052932385557532943564552180146144011981200881159570913755256415157026205793994964979621421946593251937794870793316860928165714415248194727491761964579961526553618871003018366081016856708424828315316412725618691235203374587515680991272242367670925859878940767320596425927760483408861595654127988943408858827438355653983940785958804592364166409554379488305819775103883205680658023635917062315315286483183473058164912571971360017702646851381751599944284056896466382288116376766907510121323570449252550032458448608513054057336752818107256973240941691063629122280126102664819042003008244902845091333731860741747250524088357838862345941624724789452608823808096577034839871999292057583248222051393665744530246912092419196981235452030963795284684348290008149470189968155053643779130381399119694837502613346938590475361102668733041213149484134283906011515287299316910449703058476063999954615580117201677809997219584260415498724558452215599517025860639318905480367886285748817365351167337838266848847653995710035209253936173516082541811699649806383383445712753806869534845392291655838369776160342670586114797722935951468327991188357156473026391562936441446523012261016371413046144353793072982871847161216055092492578126633754789696497973124213650497858078582042645819353812551828087715898513385959069955778497902080346755406757363316934800365853150891952645206894500383104617965481335912142841651120699361603109083410639580908767134979181905713973180629775902609083477109034742773139882143504024229842128723345683411241101081432195159029398484976958291437658113448489332591963127086739045704294230985745081162431872372290480657372443121655396193433052483854810845449994571094763336473447716907304862304578159073282224361522061731249752503004070440149290972395460757367009071701207992962597026041401245994172181306362026238555323492026744406325593140649324290754300101947271184337993959816942864601371378564710555497172490164733517191961875632462377038968818051410339262408628785404067202108814301452544966208725372404386562156970447938076526084617260538878062141849329848430220795201184630336708172382265103127157257831097132510464385704158311675923627421212854099151691908218259927216885795185036634447685245422461755892570476282827476573785439865503349640387868806547370588037852960865620779071272413719859174205960129151650512963774564639829234319049102949544503799795782168530519234065341529222262755723382007102976262421624918444838121389204409601428717067699606394867721427443984531856383128609753583667850081771975451318024481178940255996154186516170026195009417556457360007203260732838668345174914955325879022596460215019896923673311481817506738383841552541286041561872502100324654230741849992626454846120408839380309473781888910367674369286434870236086657619996100901698981310514305720972955366123489655283268940208688574360304334643729990326562558402705082788526261429592902231434950012054301224832697349612276163441308402114884803771677447702408947915045883593409702465191981569041136011076338936801766948183794826341894569097505387483944087224203643349166951471023063376283463635157365211090808836658364146548845036225509273163946128145768960475874077959145184434761089547927172587446166576402898694585812438365065677719174151112332046817014212044750740230107628693109078696436451333744245296545037688479854158559352781872183886323252960635022505520409235650085490514137857048215092685322843804268070530884794415711682060515144399481486912408861764854329315770557095642929310480521355681330468417672349070855073069845055132849790900500195247894746839358473236115719969075446338213638815979982773244301542107462654603003134259508760108358968536850180694119924078361687398963470482093050636129481973429203418869593469284120127981677093607671849508773629587651782628745929717808147596457327063593897432848525880791044317895651981458825058567387156220435805204216445969215404318566067836908885323522436519608831152215220362006892096045446545206506816579063998038954046979644712642907188614241962671160104769575032671555963996745651513209258990325772169214467555453900927088534897220281388982677380521035736611740333041501624842875740814822535306451747177752743302963363702700357993654804292226780077779161830171772707171208755589521759531967569344652695852662184586867889485689605087707490964188309633581547748890608196167240975671538484205448450055543397755946715019794718571774831005342582177930227613347548628378558995845731426387993336624658319316246273820715263288955378632242057827673529855353698806259198542164356660172248221612332771972656551366220379142734806794664283220368244937298901067052519822193075454350723563068536710414145352310881016463660671917736387482999177230527750310132052109031746104340069452576665597458081439445556194378368978587686755581985248037887728045402959040669551262070815851919340353350491133285901320734971124505943918054895431391856408398327595627203948085342141051047606187906081511375580773628128832170054566629679813794435017326272524864216241118205536460978534144095314553078927480485309806860631311894776690702327287232976313522153806144972104839397822491987013813115390290535587432423380629514963026931508894182413766678167929201269015583931951838513347874977973434543120219399706316869488895442823412429371723172101343792855735247065547245551056507754308286375505430698337548308278505895966833299176240282234562755641512842948956615049741483478035271746993892809294125914477952187440107579779903362918122618162660152686817748579641510827478484535337011647412482626966992312708120796470835810137487399735654553836775365979459259202493311980063314971161499671276154868536102407376132822836748634309217018440908103934396917420940426908841481686321381075006620650717726468201659298829230497400471684703142568439156497438415785709001832605193051429037283545992379006032870152444200132948634582265087448977663023168765926625733660414085948334227597054363164987970570386657236052571287839123022296601148452776703229310143159687951483039966240896357846005237883077749692841497942385690633381110048814206793396860594621468309469594113827376085277465434658323811768275133246569032303701854927509450389539664096301641707648970662699972316203654876715750470878568828158984663210062673783943795033669442390200837203145374229508244950265994014534197220773039332412516880147863127763736318632622330714727140794403574261738796988577870795514646672638905662544771005656313049925992501597866903916396901932241796065139223539458795619903880833818308640155433165598740658147685243463582884360459586294720137827445530429990603079049381210120596905885088200039498354375788566616128529828338690288838400815347094938971794649518467967807003062619565704393527745209111919538471451445097156990830244648784128928068613110747288361759994931912975843720523579808448383637757212545501032757304224166125440239750511057669685748475503736751107024513338596642654115955091219552082842060002713476465934434166974956058047776014177057439186799912955455663411386402319216596064374282041194071183539094788191033363512314634646597201524821302397220601493018647946132768709685570677407362966641152538948105567728275714840103447312352843508384057026061622508358167317527330240457028259824882756978900526432334219765665232931820135979896536948980924531022735166076613574165574443691974259417374795830232581237838800234046840191179858384157702103609324055405522076775280079508424072318084538857355396183402818411134734484101160683538714050467809557562037124508861529046820361769030406935504606024436331611670240191582812584068623737720861132151757280936919893683539404962762922718825285777135535967889961399340043287294525373663344833711062516303951606248496529708721648963917261548666274851014597105609501560103887118080291684592596449049823278897437410808291480064546918896767278044208593958349809519813844362131390438428829524182422548218732723454664578945957004016995304465727682403512256367265413655448897457500819211163686576277947111897220222507609332914174456497809751152624419433046914116310243516162275703910049863071244963091032067023448629758552247230939029349318583158837930226291561195641141738516645909607222712173296738051745801011396750775153970745800524478940804086206723497216791011280217256214046719956872134457918332554946552634175476431909178125722914543209349606192718917553771121163298651306808694866681002970716081385137250616599379959152267740948927019558916635449386403689817957846561305797839576395067605445831487480920392640669349748077056205715897290128127926354595153745965332973871394531056753617320023598138633574124589266778864071178672659909995105680186847708507975263705040220272203330022584770970161629372809375113768088259919091683744619297993148222557804837963607349441456592935620302556337667335466137166672215773557906807381652944229533309197630941092470957633438594750424171850783627523679488817675050958778770744431539171970786398114304845864578519242791403100837850289572715517899416925843099510859980849195418269169740228244292426316723570679990568265202604463847885070919028456422905226220917574076197689595264610358638666420359285450162398194177152055737467013767675531661203340165558970441378931952908718896319786580960163160125257982924304239308102706837759701475977449028869883983743719612548368636612887708261098040285283879500008478636693866286861445888761066575566067788780230509620096110788469804764221079183333947705855604111146949238408616905908432502499429662496317846319139548730672354637292756891501801742648922227575620421837264110008625435382334960234166521628443166983148746673816741538213049203006803933903585148295810987822224942813041034850997380500810918292040936531516871446403680259088871386803041334431182878136751964188081927303278267743005039532235227174713519526461017664887963673525324853154489909005453254162178572853078756586462172593264965316208134098146616056203776919726495180188991402716053724729297714254788018128850305269801848429198118357518580189600823900447050022079574079428868848148430567485919794211449253479358160680114507648489732785142977140524492802833332103765110812847841477732714743149231508110869149268199366959192170398490333160587912360225342207354498260248416878084581848692815722951329626691013996901140804979343051951250043590024559522358744361549114370130336763163819002369165768159764379422794624763237896712568907921953635483470064646731255063978681962704405159461552116847030737272357103699757453397349606359689382456612900006949481746075874694683323150913389645287249159392246201668716835986812679075327319791872196466011157187306619856831866976037104363464428377104628371897419114301318138250462330331755264226756746493557050535645543830532762166736169276163198249086538491270283129689697621072410630771422341785068241044774771877218588146281535794059788793313382699234577791944917462303499340587132037425788592060609332920246302702428583850878435148050324403551512623447714046939192725471878682477891455165432429915818543501389436439188000087705822545534641537803536585273970315744611569385771164526707115211477164047949031076429174167509791585308759459592572761477561307902235448319641458838203767450068539991056195066737959885391858081825174566726000862663996004326541345618970162419251727010090871229371920932430299918300359909592933891475711863026419570268083986432361698223312963200393954878150836798142911054927657661450654681133270679922114769810321444816715172158388884921954503215045863401975132636503706963896023684257835759349717807954915960003176308574669757451310130394576502391832546210011269296984784362719425115330532975129833560687702189959349906872265089869073202977394857302879506171778461318822822192232638537112870488240378772869545813674841860137285998593020978092279815439890727305716308852583800367158700493371977338513244425558109362619532418814259213305073643435414548255122865586428008851322073084294059292637261820477332627460276756166462516459608436697309941508423500119293397479643922684038381535357350342694019989805605575306721267823204704571597493376690112468506444769355233400393473111637900311873203175116336644944263959403533316408319515759982996710045758665426464299862921387164829246531460394422278362557556217677575752156518442792982348265665288318620419477886696017893683865592527897793086698775972886491672092140476629410140526863004750342499956677966750756367596503411713537195203107827074343345900505501532722714336138906248441452733295082873685883585079297619143786619742791818258922588073525568723004882947785863840295512324024798216470666129688240627930542281480185565272637856445943719193876375796003251858719186766444062773906924494629302574740295560422808506139320604042686518474020351569439678044016751829830686830677922333159168583267781666935054794167990891226345275762653228894354970945160630542311273912625225947526592927710176482778031144458071770501363370495164281670125992965020150356000166248344723357481491912049789500706701994794153566804833498934058565371438721888838187675177464493560771044548273364309184237660851806742784555272402603028559187596801826485117656914589589447742175157217144497518003851738721699441603753160528137919100189115682816249551872130568876261950579307818646492885535982570129936166670096432634454724015191004109396218651085356372176017785611122144703033440577215673614734387304192523091820706069028549596850030529385585816710593583147502736950597807084346340965819293933846374493399362529772134924645676692525169668391249877182027874962374445291595547786933834577463244485282564476488957537751686294108835517179258676446706540467754298306840405017092261408288587550162745324732837206710430164124465012091695726224345297392905541427245276858660793982277872907240612910662634153679289017871607414532071244456592551209768605172995888904384522331220628783354864273860843073758216152112749344385112515622767758270407228914139503919337883146214273462133872067498672717621220856369718933546911208283222469011479215728340561858601147914277004004020442799475874841249949388976184589936064023750904828819932563915813549749063521343879487322520357900760064247577822814976288099885118956038451120584952943114251579344351249259063099858448732649143032901463518033493723633705733739322955889282390900958694668594464516734436786718115618862093431397934618838974605388876415216284123016752438603499418014982655189166101881555248410966645384503822190308200677787251183309116810554192511814025605060425936587957054325751373639219795596706675632710830904131547884672643413509700658151979150837246011645523310863752026854242872121933484892330208888677854695772736061958751388328636228765074920880690263261644183364502449191815347406864400970032659528940630619768253736662614942181117530828709773153730783207645624977658827501768262129101039925339966062235508090387057120196989331281026734501404127926403886059552343374894149798935274855442493584909519356060763766137817282993054561494604584849909420940419664588963704055078044048284904896684839438349898526571457452209061925470886916901130110864546728350949513007956304253934954268850390824211306664741609570363414321517743992150338394224256483907290199224673833415187244431526331301704898410210432796120084404644465033620816227578476890171582520433055071840169467892203501554954909627631217968636665669554037362428037537305932463748267603202150894747168745258361401069206906943793009000419182221945097828945111866636382927555753862598300163284652705915928812720774795012668882604503816924565234759450963862284454842166108110931874239167837702390235204095854106094507532898118493723710039039072337891752520391781040633640202588146606684974873986816332122023457755298854506588487743193910888965450557463229503749621387273453315959784559563893126867810519023587351881955075415669815334653267140843470073415256644890296742409970231927310605892374231899920499515808625985864124692444354311749871530426743036584965812772235592403504682223698747253469873955044420782265741940822585269987969557607731172557304605277445480509435166715953444768094697074929995288712658739657852233387538560873155740502983544194454964813006125663252349322965859006188902279781756695326549200596309863474662171647631916118380811597459399682936849046733408247082015440290768828611606613672363784739705539248223896850853731575002238926952560728462794880761066955790788532977870369617898459343524134991607598652462475844981157162763957532531951114147596487147226920674089921948843498301729307366624381723172947783956848016110907590569830404778915356566347970758712828732721887437808521711703196232354527597205185205991079738676834736734145983019451386916593585500370143772076523970868522742446354158496880146496237744783974942749118936996295403411555475690582356265692425679891587623873295375196017321306535606553137729493651101778456330674579103849676725199128947152024456777607963208915658087370633941166569652438519107645962936694470691543382385532833903662037143184066782034178248574228480858844094798766952596136052424192073898296353186233324817605663635271293776196483990673094801487930473982465426746267042257197947252029628380707942880779120881747778570746331536226041938381929358450492450237609881490395985555616960121039909187508072158232687466833784405251644251996130048033087053101726447778280827087423655082005812332207232201049165930240072838160282357918016723316374524541676255403367086138877078446241769148816150790338589067517648763687907471692057251713766922355174149737789403603901285808493243275773259772919507910948746933128800520096118906535819060279945279504081719451796185013699020388752502498537533576582980554539044901590926205023101479173869060160050179211548309099078204793857697079606686783398475123121942051492547539341244172614093370433503178047956997323025696111081234459085736830647686610027781527194054700826150735949612994271874650681870109518108123479406588778296938929975081055948011041432587774904462716218770480483193617596375532325009724339116793667523565353001164365460802815724348277036384625573655336616143294999684073289502682009415341929749778043383163236099315210392476883128389624883324672010360393321049572603754582702099856994288947934166536040959838636426312749571199141510953769931807208520286999184461101073573131243566315294443698017677668035213445735045127911768040669138058306173956843146334551368681446078853567262826158845144057271465177210990163037528945962748386976524424967376210179442333614154392635028821727177518152354849345588901312687998980828556039897058593301878193242008120135459078450113688754928291569873294414800603987351719049216618858028580984951807862002059563645837408054456637791517856536548869724664134878715229614342128343957189322240047685315123468226058814567233318053519695977722249686519612642382999887097000100483753317582097694460656210368547375668486381000271169989447568875997958731514960660594156168063263377541347062444482373142883545112059654449230122418585382088107886455062757308794179090364814783097735185154328111860399526316950962386725521426439273712419941602825593323358280407520382092029409700626840020728394217805589167317460377556825540207461327226598479911987786138503513040204451205924026586167555292109217038190409798976830296399935074717000459850003761077686792672351294952248660438428321274139629855266721399442480855994370349653950100874013063240833659670642893756302128240469163389684046635249148805399684515544353633048039658571005131783679551993678551275395432973261139356305623340107234877737303140055747180649019155663518908146717111649900205139753578545775222054330679058722503086636960664953865471290963012631756993928501034498417606195670744288885345983056019920621983164410046543240519764904937642089602410884264741281559422401564476520940997171238289719866255375024847230686360593977430168852676118123864231374601488442419604936895376045834730586985939632920876160523374241112506879435600306735442333620648590944057226660902090567230014800010462988353806395026832429415328363433207467316038528893460747470136756475597766500738055903887176494562693334890402861947563424907738904571529407023254246303319734804628930917193194688249286955031710235078616838686393531332714981375707069742550201848364832761855534834946121395161515720305710262070145603609363875615041893247669112720026925740403371022862854628087306513271279282902443401481628226056564408963849497650486881068326140812546371369928097403185035179642451920322142803126863853924033532416322232903159544401165161599084684120886161844331685083050091702897005430498940467845159013392430770114088908942884335744137627895672905013441888302064960391654875777395276368117544666615577634434802756782782351384887154707342067783524936339685717843330476842951399310821329000221104924407886951912995122532363454853934487247753293044107992105882977083523538927458894724403004411987944234801032312736132421862932625721312227436646407310094425384477108263335834416740960103532760333118252422397832521541065083297557840285847611513823600918809219719836005646444806951744664897912699142581166009494224561564691203888550504803657414457841126781666866388500047639546601996165553965399721902047985265707190750925002826576902195936468861534315788796352839458254842974637235539276236858659422126979988233527455775963084949801869490608230107337983754515621723217895814454712261224301914379594575438124752972326322596228394970965422227357908375532588261079996065882108020763421374096144577262997983214901281755154413092902132220291970014161822418026231757464765930943182872733978260054775155634414431926983703622773600572060470183783574729245912886414341523868143262366318039391736612386739060145345134472654956159222491460322682864359755655417342051546245032394828062291437910072888050469549595042063812918764463480080644355106481200298095411614318482448573857612250415253084873641495705093541169389616602137623012750426226775315632916929672158575540907977308861893598095619526700554604029660524557232213642174416546954702082685418057137330100480242439742101020422641213521054244284484787569802501722190080105177086372706380621626559765232397030298200667643005196514012297688861086027891258164892054551488186175633553739758020489217199431132052265491073040610006319490761489106352769361317345389435344633865603748326717153789896986218873333983146590490725374235176584547655200116240263222744156509031203948563442628733827435540929788371569853836558915270608760291866643298552916090578633283062039753861348003767471761011810598179020030811235931896035280989405665035535905014807934506496282082734084338005325624785030975502117437110258628769652129502585953654768281846956981153066983105297319251501808344330382294785450138327722480709377442563235852949201030778711278023537007576717258840360353377272707476309022409342803082310461057096734893482742329629280488269716380939064877154969894675030815276236307334634893863763278024342000341990241310832973438307097984458341863090383731181525871524135304413890302162488478716873648030061198969393768286537183750996623973418507929842771741549685469277081258941113239278614461890321141103878429569792701483655404271698431150260563262829639914093063743714063945783248770092866858818412562440238424328094309826657393964997317174411832839091166370944441389758985303684036542602962637673801960660853731588837457516332872730442913603600140780873891221531922518465270487386393492069347858391979753088544902912549317379279284853596046957530919809619948407100610055903791110947353728246855542861208787409796726329904628866852248712292677496505851550862198865629499927256102104857454160400888095073281050387356763332862242575638229750618390374471976241930986762271252219973296916671567830454167633940606226810909413372484832608197621226595216681215749043558421289172137076079534728080739039152711494318147882205144274397790552484025723090993429467841914301905438759141719849337108681773411582185213679593273351163216315616340816145526068449102351250400256202439010630831921831404547445322038249875206521125961556163089754092192256558208755588446546492118975588066496990004051928766087677804214431997579909584341930589138918807431903768670261312783417983605554038836668291588223105902681768861105776148746702446028119242109529356033470475249076750162655672886652575061562616396079742024582878656534015667872326987900279128812275046323596483702115600942103987883305863381375521959983697156186066048921575503183311205420314614200344150766999363717492175204162624550480513707798612388305968771266262009678627276440138072936322635980082867964799981031933693734470767362418324346479800093397583585818444794955090801983171077874318825495135687607084557633760748354774408476715245049276530504700168915803437451762195548681046532970954741313056254355036961610388225390424977483112975742032312253745759813145659990895497701860803318342216958088797360297205415954494706113021915045377597741521425960496164401776938740226495652786423194805430264416115384116876774282346021898055034896273341433813737936144747475841571852428626606274880989800836345320333290683679240450853052253663668788276588399800580148308843266382058122362733341007764530669326274779043428373526545582908711968723908692297128558270582026335272236239132278186863553649993900339272949445434825264132766268414322667156187274081667958655780177238424612521492484122565190155601308766466346492924323323938358334198737451274076363285460538822642408128351728938529757517014513730735035395319494265336675858074569196819588026837776300985794597032306569631329433280388855845445787020273980874718443320374604198005300615622903434957725708647484571847708464215146415716824499209742080560624331458123414142404906436751645062820200777970847962737602380172300586666105838865249131974844351644945106869171233125408436531777798308713388350444476204513737965916795404955736073179444160646087122067403074386536197244882631398008062542233956961297097864783296643096342651670442690277748042966258971267419463015898758654280504845399408322239332413918248562243260311389725199671887799924987253300670799628579385459532438288135731854250301229671795387219352143300104289356343511366574399438329110730485960456251985765306608515932595257309933379399909632030062071890046200107126244059722249672442323109948466551071004751547630166000225227038379516947395356582400109337596790785404628311991277904920057107187755678422322135044926642000034570580924839518072909585800835173649597165562124615065850437203848412170839119407074063280466412365890133451322478408766491972916657136956245200344185847919069623074587418351121007007175026889089552054415128765716582364704554594745954864403653623770900997406329750608881464925066898709908288663748731554979399722220919978749582196177816929044999321665238461319042400920351766765717604723801916752068649126825583906550283124007608288283975249499214956670494053009431041741238536542833395961316003592320321443311318723742491967000232735894663409941891253698535115707441510172906158458359872416982433663697766081732255936570160808256272135189038723296060336539703927331147312990565670575889770137553320620702561061044766955306893077998046374339183676899960759435388230135006628932964601616684625276215258316782355267102292451618059878741698032667622275444604281150200161945607260047906749919390039178099727500766509519153272453122706544285171582412485875085088941060298580786891687764979174241055239907680484990721710748122891816376560234543424802472966855639930725175324303974201376146755904797035983229678458800301102884947348955808193618721142083718244076449000328244318948290872653885765578964495001367610633410046537293188402949781108947386466696053074465872625527304306694694716646824699761550151545824888667241175859113930802625183569172160395621655855253926861523051960220685200017141483639341993885710357542761971163554271712384581011959706960030893668830136437972281260468439687932650692641775755464223449060178564694171233112811578453703571616178158171036883278350819316331814537455666151323541622244544341517059349548131081170130842687090380796329971015624050646257239448593154500874671865390582017724850169512094347766100855077097940996840907336049866231743897005019397442134999088974649517979720861509350985731447429593428633031200875039326255344453267009586090079533169046133406516585045148547542832664925401545215848711993405042431138008977410162492120553189359285920941088182641792629232843276437100495354170149082776322734682990768722776274033413050792397951516142491426649649003718952058852092326005815921172983698325950557754683036181518316491767807946983887233096958481437169693539982717159174839475947346046929020871797993389981595277632317956066706157188371264016904307210456037883974350558157081538748512528925580943246995827928017185819669087200645578429466235552718824688016748285509878130758770989433625437390341080884876110860582456229010052745482773078032211703584686862841225518352030761607480064371136569589966524323988314082383174931653182431670549826049082120361762468064732978271787703911844430123505065704064306437023983318549080881901588094914028622091912889757386025707515047082139159922983288675474202170659287774716471044594535706108522771164360502430816088875517270124014468354097214566373737456831508037682545693016217032454622128238515581028562135956598268503871126108323069734892221927935867568606858707410795003187249422040941435974746046303915246033896799988731299680882829490029418379315994801664737420765111496340704754014124604493839352213091577821968448192534016151010994341433476813866064533597315089400779721623233834297010183123976530591852901308041039849590486553688064752369859627877716352672315623328119085476452345049407312351647165123993284874780243380253871724766690904067961418880371428712373265665802835207060371725033481217726540789079233174458496753815703338328117343108883881631005878401044555501835135049712386214144249856715456613776173858868156794535951155376343385314153358836055801551483940502322157381502320654530178668592956444414551935850791549568272442019892886169989758851926890705812141823571401607610859671106556183349836345849566469242969871747702952260870260533807722814641624795160290009940790338582459677360016571912475354557202667310209711221449985175314016128991803663771649230544766603313769956279344012428507308921256086345257937908231190389294978395690961590361345422754242130982335304165591435628310882198331288523756571899196935132365666804429192397391071532823504528242784989350025370693424282066129634514397905275922351179774313173402035872629580473007224521361554659687424024904109015927019847086724649024249057807797456333680880885898382672609670489091269700765168482406166914497855206462878036899755818997809011464283641838568718944319233843235570253879292578685280360434958807123715048056542152421418933290196196656855260749344135690438555732627085527301076811273862827120876997479267206127981802175290317800688046736931293680515416137563539580047017217224921372650016080727437486342943804407952220092446614344689135818039137309801797462223905942027034105597348230316528582523782497098792413629219995877105356783124130558637441299287339099489448363943237894178369453229343591792796069516568592436174914396534020793619092937459430603650734871522228342522565745260762026460812717912248382544801372374023111569074787709569222894504109209744848843806937268510379807770184378389088431449491428729816088946224510114687123994890248039302038096816282805641336768927467989672400893350432487358459569260116504493089858693706083108628900776314298045055215116746997898335908276414682218179509405646975496854307226116173219973478678102857808218138839685119260461190726947784417342819362843421040352147715745000385238882091760259528689273516937014874211434719261074150866708369035120628767979880182234687997805860603710318249548598363460909630141707571172057284932972138785806079443677182555288398606269999416248605960355217222109152143907579399808606160644490700522001122691754943362654689336869989954054829146501741758902398741044915969607753112823070052698284135537647833274171932295335392626753820790444073245156160513913672475797863600406788551358067708795265382635023083755086883831686025737314445344256440751778217474712099738202104900203819687606389969011977083953872535643325651728816387171974262936042644292401671708503831797077345952950527458836538757034327142516922003284538488652313205482752649630034164011512995254958575653064201825797748210055998930712700008255094271752351798900234488935767776884154906461175836646496292939882678376485499814468587272199930630990877720261379210929634837080155785354144117580452899808221779505943715534188602120996509564753793643038029118110591700040755144445793589073496114900358033330244080967652807738000351409333203667374772316043798939150025807614117839747585864129052435448791830178425482101191212159838215478134404841045165888077843508602114853249998177284165115206695443256250465016668416551682808779928855886373747756282336725590515539586373152784354763627905003277816577592557535218178548376409861354476072129190528795437230651245504870809308698034133987109384823738689711509087246099644163417418374734429330129752319043977196215645030169222114676067584000512938324682348581057934561038171725071098137356729719889877419721180284613958620457442012755876143576704466542942006079131815290837217281370481686216765474393963934518630464645422276823321033169708564965793174786557105199593864799100024263404594437173679874635924861086296930809575932155816369982182623593737380569289332271654327466810111159684756123757085194118116739236057951239664975612422562313240402784156223723653662492926210262457356583314600051027356265476190546227602689356426107889568379306320193528012582253553584683582520300631833316181093922068641545070440468384210680441707274342426722434314673266668546279420392939668203561122756904005803516163969809780958170932578762262781265884610282807897383477272379208170354080837223709772556442163987938391672275036216023599386377271308010159984880318280987694886512343860191985636849230428101072460480271948367140649642457065371245709177081997930227715402439228128142180679601213080520015781647315581017214686872987400166808810185271469398547944109728892206896395526341792663807795313568062894502051107372650916260843874576252544784971163985250946101861259207435618947385188525376186285103251668220440875320756292237547819490266591983598813988386933563546729549787586542188917710510760533993041995129785074589181780073176760655465889714140622857535109507835913042152926766387380313447235022838848321269257524888429258050090410768091766341181098701062463555163371752998130275518924294298026476053943869637647071000203318363924487128358889490233499241342693169684691733589742682505516647546270211290656422666271913111282436641449717809123227236141277015154029249555337399072200615364394155964628763467530020493047828338860021114873730208937116992396582015892710393351227476635239893197869670590952929326929221402080163791439496560809865025467293140901944074103213780872613812214797779993891213746961803385223641926261807278561273491440227965552029984541168884825081357805560269621759842464691900110718217475099597712984516809750622048003607980581625711401018856149234356985698769109239437270642270014250073180535159469326080099489448562226773244336093740291337914660684359460989783458380012204978409250392106648670723339664242435839374561601572509924219656622964488964851921718952407453342327723282679277516022972321075816507170910785900517815405033842785927981256717312555810497742624277017820295221386346830557219066421660423881331945629529305524612347103710206362953944816579330535247357601758271988341958967700061841211677118062728227256149936678475612331780684224380492456484128129922354814784685338431022145128823189289288225183228306141626801438747001794112339651614641906351580986211311594804014577238818768599970861076452962699699204759147110888848745754094020172412600699158806053536537306307284645763538936325587346768589888742552877193359410391333983683960173111635350516618888093054925015854791864228777864692804856102830545390491655367148491654335398833582150199128012834624347979629888793767171815263446925496402215742919945518340132977966168559842164714478520892693407739765024322135925807843216138179413029970901770824134615407145408747841786445869367073436219347526041257591614995583130124246301058515693550398285180561806553539549554625395173328279315692747553695535397025919777699420685811735526445150496420735040086451682210942913418485145268585277571520616170855286913002793575768313195712877678747826130946942631513973929425446315729710668136186243822366608480332966352011944477035055725818494466178145681311002713908200820534517560255515623488385993776497528900877878962939516641543349233574659045737413653428143292989930664067775991818649825102846796998733173216930921465416712955397359355453395822143764862148628018051142308325868050975103276686551354599003131169764810788835866059968395611338851224119471136576945137173222593123677463745432139077638846024593673234839077235988804918238107630650181700922977267898603532981211927821119121084500249837558657218688540313833061396597086169697354571945157900952004784132039037371024140745303766532053665398482360309123240574701826646839968076748789982788465584282463168077191005089119384802498176191569577920634958924473888672709886136628034356119269819064025051196181668939821905410039468642454374966965966512299388696215418630112690792670400075313247460653908018602161708604798702012534503526947474880099210729988990012256624307501003902227516375879092963676932365401134084727875741424176501858964721108808107959941682897052431933228784698089963244755009862378121581804768373688196974178906431682790724965282750432429672550399923202818288050996964696884904560727996033156176238083438313591617984214132741074029278679965161239623875777392823153092471345834424490518282095851257258906168852162714938167631792903532015708222023961848898625151320242541706455340241335099885905153011686606651270982127854468537986299789269687022627709103174503280093361727237028937294103246801158627716294686817875079506312409435384612867151592564979096397598838142073866538675287125591217192049013372944033773562335224861363074523729785626985171426064986274306298640089172276228839831240026146150808904478506998238702483554839025866184463489514933584173938300383754021236741267610779826052534641534726979688452389034811264552353530966012946596726754143709494032225316597484807469421920599003613007049088238410812750924686732312259134035493269852285760003751724178420648896489064151813815789723799575721259582218800068496680431719726170052637066841011331244867263329664506564511464596166467092289791588392899683455486396572515695875267995822421375151324087836818446912857265834475037514752936798388968540819457632654675550990730524474749028600361987912521307052658882236018068472581671634611854154326800657574642924931538449201030622823609673033227639563502585206006386057022842544375004972969154149254541900738277965614759229308745728949804274330723411422799016511390229744554555879865563819695137831575988740766441856560346354516056725767039932630908378178276090092292449433511885138680658274906391972420895519701495610937745014911736997279681895493446421803868328601691838527788973120658449038693166680495030182684753496833557095453574247301319571547115822657135859667435026165693105862133090821609774060748563055255391552608783293748382379250485754700855235631662941852513544014124185219317852977833006177171667345028931292246890756042826958062250630649874314783125685871953323900660550815489561616726994394573636295444132651100110110499413671260509860852455355911426790168832968699566160827176499966252496783486724214731758554751183812295540211324469699007648119797605021401551102554970966409849779522135009311934648699134634979877355792361017990914618029579128625576272110386707746333049294092038568014317304844172912998662044947656845330319908420821868144376127411580810182715909610349442253619920037224759048582489407053758435940119808727484006910580574046390121317860140702285773395967670404099407480035577107753959481753217559772396054285842768823744155335947112652727551890963311661047754525025963542415562910887637508696081569563861090076088562989346855089937320206890873046677621704025608832207306146797560226111741148429746111678207763235000456308914543822254371379640533783388129125836407181735552715475979074755448141007383485328767524615608485845513349759126371600507238617514434564685368169777107927738307358341116171079069109674848962766527771676862615625010661142125717179783486632998656988805685688203736331551291850631994042012414208952405791207809022426437684254924253591760196037691534569015800575894499318907483117609704579279963245267315116427175537671454011397056450225655590295003940140289482973358984956039698128619584000122026028552147053363988129083592210237778513407488105158024105872502068573551390916029842063110740662991113518177226557676076505207240951608858338868438278091154715153084571790793022923158726490539627701586551782407536000164315228750906590846878862505138140362489370417110110032061324734485171576103151120843064638167691746933957148627068415068514872579354486512988399381056797535597305068417284683721877499794220087481780211033474743764869235714952511721780938734745608178017697147646213010331560083696627829483268699469371465705930000322653848015321186141133960210141535891801737790214020084596409610336540556057944491388083084218702871499867972698244175689544405485634159943915341135892912683973383849610905805587366981791809569907861389848263337631007540554141497361413350045792453807229022492663753185668781838506584942983258962681274905360645124856732516591399106486972639749001382929430844452415156674104670784082147818000869019286212101646703622677684975581330489074778101750141534812114386854162275171598927124063734637419795320477364651188109298235819005283994556265484660045942030607247590519875631408880002654469132629853319552007811767515058596093129162556121091688065784755792351524428630381245924240398265541611897788341720489008202403889448875325393377375680098243533624257043908196278986606689403495528835730500913967927694354008441976657886256745323656044959285131764083280882437269041418665031305220175822908464067570683345730026132804506799210315649006798284953900535609171605969921025901743353231165128632592414292369334317888903524780263866407507746537361347889868986351101381084900360110671929326926934024393107379828506381473709979562786753099370186133275458847339996770256840326085999473311903571497893457512223328282606661003022661433408097326674166241116135865117807705077947667241264088976113730334445311946037800505482793770152410767151422384366258041997915633422083211116709972257853097192740688421414222918912151443584545095253544500128089700191451591197117598119486228873256255393801729707761460142052999082864418335566265415933414188828249211313505913436801149705769629126422350966195032344328478039101721850555010287407772068832250974671724390250814656946628207143719244070214164437929988564550400821579709886454690095227527619182672749155352210594625219918393709427829413302751011643071651525558547714013169988161157229184245869768816570535880124693878695252272660196819670287903826120644181239827588281399395283475618613394226038414311900494780906397101043615169309806630460919263478139088741053701063401591549556492216175688331345674338486590495968409828510170113886419837496681556513420122714713957325071581426627093983888709305437573748060189981699685692595533232180564306103519065788431511430129581615159877295210122350059878036306464312466073376129024705329539740693396193751630880453549175726187756358102547923397541418245829422638257010819301399367470773021302473734783132767874206587688908354464990736837352213012608537338207632532792447575331105997822226653723175231704283117216933337198019638919817938762786740826705965086179152705581426745806609423345217245664542821057055906075112088490440209426277930999770364173597893469927200537366776005187643380778751832056745113021297891481335109042246256432920484888467862565516135306581155418395334017574343697728566101517107070545118283776996743285947655367440039321355072461146782888408698979377235267604597076230462093143653216261706819011294501131903464465899607725293976183513631447339936132581429919274231284044977497427438747886654163954844856259197507178539427768736667867990222243841667996055750370383607095984556831669065992154902918228054694436787093930724323966229573260535720990710910514097325536168962055345999595887386528650451063610852316453353567882833872054884092773725840065627798557712928303592052846079287771841102571635735810603206651667859861075483899942404743738377056624035112112116726849284195962720573388965808280262125368689483879375441175928923951909966630465806018421478429723918423108873403241883458191709169023552691319984304765182499958799977181823698368657642058067994649109858212798999132244262993878296342208280698676483118026294295406415275505725476909297688185367377563491487670192710603686700971293793120124171820824219603796226408909612662793011943807476285295426006164369495662102249828463746687420040553126092274073684638166587081970334204757616686657379778816435455189137646623586227244319701429071441146417003727354493862969476412006522432078163588370464125820700410603145326482344223966554654616389247581316155060145117006208348411511834323123399402424520706983128523074579947465347781867095352691285881515096338601787540778345090544402061320871817403342099187422631790086567347996689345531646596935689201794880391134683715321948931057331666279756908718491573365870995766310199835364250991764361631907306210764758246169234360913861903757128315766639412569344144398807848507832622056664011204811520082209845080620986598410042664112782985313309081427716189967522751055944504516227583411217781541335170727657309984076957410823626079121307979305934196581727550858883291850923063039356530652988140735473882901283335860209124606656429215782917629141919869077839700541008626604781808282518145841377326137520909308315793309750359336456089879030036873298637908637312886892048155755522345364553466282964505068933374346478650016869351213573364836762215549599285763314513418426056126288823878361465805203089393049643497217585346233501684122078914901271498550301531902503639819892682445255878055638340498856541940529906170213164810475291482495936434431222052649055052468663315946970676381450481687662366549919083520581054473528313738800854406773636123592113997473129516082476443262961962968993519472043720898836409997240548747403184594224619883481198678843747556146288249117710634424799555046116887397314126639414357098689961457447379358806629820090935631177380895798177841384249470284737459594677358849657050830026286462104930201193013775331133653805796429545964291869378131106687370174879387802421676915769459045967308736429118444623564335961864130904160332143847605121825006709305076196482134071701392712747932394465933046213223159210895135705935492230903582081392432587556544695705868696067403597954806615033160428867520629160839055276907737151308173459732301885887718544297240264404180108375964017007776840786358315554793066599509142676749484030852201791512253021514656932528495534696779034224095082676904833737128738562177185087796218631702706571771420584558723733022071470900482294548609274021026094803601077562502708966664948840911092700541098224093585313395030372515819097919234064607798047819836659290796714160533212789463603503635434629906292895400682976328102998346029092311685847352683703745426418262764261098754688066956961149426179450481053681581325382265313179823638298481774900177808735565862701871170913848193901550481978339274021251270674624856311666047183994142195921466896046792213238561178049505493993753428603062614759692272957852933125733762770568698097405866958513644441146526898685587005663752333722636090468669883856836234958646945285687736827714087959809260624581373613139956340592252080446341346155642200810903915091089118760135756773801151007131008438948681826096699780074819736109165440334398462708373456319707042029623478009051779669381559172092990679668218260173031598148494579847776246167128113222763641710921740421660877068584798117431643563508168937905760921958725833408356802315739432404968706059806252799313068202610964041742093579428404619778773320639306676122770188108408392878653729385540336321628029717428642921571608566160177617278623021657678077032766031290322435652952099708699130292978563196315677454147257482621277527649755147097516770973010360243602162730106062186052999175544717532357090881455511596492695694208592000853843404644403168861562542596818437351317699038069437698498628954687619221698266263929145954920778281466592968924175400269932645269086164802726373078319898227841357312388824745771083019045258745110764984890382469832709402240824712556086579532240602513631506219275746315705518829449083363837960093359531492607425272952979922923376258342391268014793724935821043424258619203217468216075499568034254204601928318471016780640521325798773064062220008105458595606585103035523004635369809961838320671068602079456139837105525293615744766022938646223340750307692428673831323246789547728056301128607479923338263866287174719192141227044148593435203608648506926583968013640134145967797794979026787871151168030190559869704053569080018319332454684678290782841813557083490412308557458457896481606705645604768392491745134574264874327929754788842527313926728253938769444101597351132490660212715780290958807619750240492519943832587066659533929134273390209833631132851875030200045084765292948627886937380899535910723913253432918391864527918150117886603965844163729515010279186311716179735748740257525881837653925388936471589806100796861968672942092646436432588615813485749289857531131277922845188143818806487580471004241928458963949701304814536299321056332088481786116009352113014073393639740538489717742781627208421298515828525689549300192178784310437046579526378265165890730483664469326509436831328510969596833172416284869927632361413582767424116531369994351420122639487870334057654313642681797688370074727242858652860196396090700369865606874720488455763123441704940697804838745142443453078598936267618744203565964984127685298060890312951081543593793867962849947568349378456610386469708017716801876443318749810272126070317577416582059142749262404590079564978675125721361026164877842788049277974839649322179426469918842854073881414099095326289389881596955269965398115577449682050809874952450726849258130967572315941751407336176042460821676773329411504242602064195329154976038215135964951534845521373206858529607247370127624956981973209670505544867911208035612967427614333243313893866768651697092748356063849228609929260129317237177082983055224110685266654796523920184324616070307333152929646377852774291586106689468219556657497841487940744608827619623378164131076978913289294932990412723647129706431734877151502136072703937107054085423298900658528369810814419099574118291053189681361361225611674839399575758209390986822661102532374588561471313906539343490497587252721558091226203552603099394542996385994365483729806707506736424522823013286618275347241628629108287097755281968433465276494580651860077101549080874171446009449060907037350286974309628617565571520169599461592215501457850998845987826907227713519835339155794126868570445133688557634912235259773911244326684365780559186904202740577524436871762911453016878130338725874176414762313037125515434764908491770693117860256507568737946908604749059690328076016833981358965388734227641206351473358107190870757736550118541187310963347298461826356471072908003870134549218821854062714645211675602700573588844505831306278513563427422351788100351445392689529859002557263503564238701146441609532446239204878962239142413216694990490312190672590704367876087039607844776848994328684745036029483300800117270033621435602028468076081557436056531739178477594197729902988623686281564409722572215804737773239392747603546783269325380177937225966039599701036653209976319317175770767176114118750646693177621377109277250452122562666989532057988733929640494574842812444999307517216846673580452333300290446256330324816150774529988642855755987906166615805467801824740825002046851686477490749821405548280059147790194830242789340215020338646316777272517128672094106653698585360201415365236812763889036535519603444790500058471814146254929817667130496172848274997109562023931946471569135259603355454516173226048838675556989545235348599957966180300717616079498897893682771598029792319488250058208010096908340313121313755286239223277641060586792304115748633991723339619526390161423566366743228903831767155641662687719812563614958602296148083329539184833625508963870553617213384811271429624350195755322980416578394785763838860846968299506384270533348089538587303381847230602778212758293998107139795054565641735771691494406654916932131292108056768524454473921664364112836176255015917472472508897972732493220796781476292168555449900641719312147189413383379590171905893071413414294608468039748122216259237431377991546672565767044208890110453442155302426294645275116288300613210115031815080201345020850741515134768136755848769873513549411986392104206093171619425135337179427941008778661682929191321125705044907771834567830408234783673455048294422106620857997614665539226032593781991303099833987552723652463093202842522027218589527869485982461735389031602542018720326024499807915512976283959799644361029327884919427222931443190744400028920130877139644091140803237561160527221492600925295127898546297726693760411197910749052200344354344754606612166084222682665119483847263911859080007775205470965094805273361499375431937525677791512892687625969160336670603377071774818286932032616926424898263715151522068903458915770065575704809149966471616605290181865525730140537415342100868809874466268697988777975188195976014813610537014670835494445042808520897117164994668094062617331884144485483113110609507742828380947166800158080509297316245475392246161193942560174625246890327989390591198666707650883233093057732530025338106810250277220333628843602005453098601440663145760351000699141259694073384661894875813291434471344066136067151889004685844684874078251654898794438796106498084124728510055344235600053089459821122887726548392861106904728667100702898200474553693835561873235806194794340862881663683412306781993304004773930652023424273210345205037527940016907634722008817583488343170122589957658331010521790894479888091049796903007620192637318093559043902417416883183082318617125823762594227014414624938098698516001458642724924327905718392165373495149122835178489046360829122808307827673346488129947792649814027083426842382842751945196960942523208754399121486869371739802400580826011195488308637386694200874013239899750229653144854434301815011860691403168360761771478640853454642404529847400295755539095942750022010326694904498566866833728391682463329152630231363969545327933900222226974008721877845564803818836773394193774217651648992117896068110654865348016286344251574746435021164157985757098629660121814310423187354025906102878083400579969987503389750821453351102371875967727355576004090727118061841511293296777109632102184297551547947239479954388775364604997500620592029389246745786168085986524436231896505433753300130918928686824991024670175958764534336125170309458662716999766562736474857308787523235403791649733468927456350393411886568992333900296209384508782150534798683901500122007824610320657055680615906919731701000544600644497612090980813600315306207501951804099885943880249554626546038172412509246831106411773226813243225858173148206464247059179786338168179482893275743902790741327243411498262612266676959340150298414467810667061263890575286988599514978615093842930235790444906641084442696174730069859976029267054811087300895865259253982031588232540866076595928818240834517364242232998272153991328530517387283887185140796811043886654017042855701629191757287011992020673926812444201791267431923445663406260217596138661592566339891849151851129505315577509459002720608593092277092698262680227257594505074905702737536346477558590594976418291495819625084809090989676640102685651041354119254692814806919024238038324447298835234024967624454142116638804609556325476382131886757372855251034559402666115890608520922382851370318300901113140748329904609547309356832061166371861158590747172702455509852883172982608417603025829270642899168668954363666802153998882786181183402550763088175273513680185768703088891120615479195785468976933472801943292208065649191983542399505979406513809400427348135243106800414877495188818812321076139711647055436775940342460490834076266051890227206920918546718074606875333710648143395346962025606280957023892511316886570022355991819814760262051768929906289736512710365417288454624400662349822946233535894472005123204430185819752480851803822835559932563727999335766072755973664436893393564459684080691504580905245888982609887090277862624085167925727055043741247576796172323580185309036190525026724538589764373588308197246522633589881480016433144895479325696370300878059957578150169709568196268221591861489622053228122906978420427857498327525193488100842339090431642140360910784447099641150196776818371292645779179080441982570565673409376234781922588155402106448265641807460938297146955809917063993412425064860966899532177096380696532734578723343158367932149916285818754108566634934319774668222181213980186672069001264173084696075986934510387059050008379418734489742546786536315853565299948712066037242722292180911891071093005388128869643662699916030746088972736918998750009375383184497355121602645563261930918404858081719111222073045202467913193187887632741220037457042840971021988026184742907090167580890848215732416770857777483111932159159164008295406724462505233482416913126097194571895490458256983271554270329126983211599245731212463519578317685213792423972841062150541666039382929664015896453729113228451786557869707122480550538461917672227836726522236276179557837090249616294667799632657163322323285774092589289016581337175459619538209830978920767633344028705846558990471833430056797913805632710135141428105640516724962042657262516579440857345746609466838042012143638059843584920313665342354786434991658528428713558108054153184433086205969455821622772552285860736040386281059231034220788517124502908492628440795069832881554841141200430685674105370017517601723993099256191591870732165892368403209501426134679851925910236273374493559486632188223182442099432197041271393201434943527784922910448888579827875054284511229100905408848585718075014218679396546667020216275947448786675582627838905757843066435477720248912970477113199948852244545510926803558925578653765556967729945497829627658070444344814071040614707278620920242260888080481852490338948319491885387304714352642265085972229376884931882931718048710621177772438870600206309631379474430162026443476333088100830811473111254845340882522482365891476519796992087590653752192446100858860136817889951321413873158629561407065361120567229640987979509756883480974495227466655339032022029966720861439137808918630199275483548626772526151311785260931103583270594537618543897130681607589742445808605153280338794810205036910917100323791977391548687489096742270190664091207582590711582294708216583953242634439198923247752376904231055636934278104032568415956378165669535993372911181167905458006409003069095468073314213457041215059327904668149426950144591127285086314007176942844953612704304242700402972989258535678487955215863961640503213666943160037263557797718097657944816399788272996643868480361638832754671449087800694257434182981023961404841558367980417352711091572654764007497746778775376963888256369786862804243515565571211647636577336839066343117363931362120944917005904111878926562621965374309773824524360917416369766835439420938605105353054549257719160011111949874704996737722767877426842062612902063270659001094995067045362839853461943432165672224043382955958756521261575796960296703912594938572185869836106594284958541171363935093992425270684928381368082490722759742038975613484585499159373143903072217672716221817103124584585522173363587521796636849482976797969334360274427940625340454889160177153619956143088117346902146672303852515039362628275616245955500721337649042771037683352945740476818103769791829947583967984281339942066013182550250232787041225892351888774611781443108958857329240592676621160834655161027282163647248796170309032411892509900821170769161724724258367979903081366379550390750080702365027013576049358630979577003446768748474620807253287635840379666595508078578746968222039301265909233586126618468957239181025727981777935958283100939000368344857211186080021162264421789073816572078515804551825095152926110269270924644884151254329196121157799793171469089581272617434837014915556363244038174972420229277297276926384716538978237284433616273639945279466671997631059347005689707258291044107708375437857209993573354009744250680573334214102209344571802339318344525631670705798813345585968031255605917423813918454489144249652740800524139398196385468954033721191725465877685484059977565837638808366309042216930045248507176072559411877515156758866145042939750680392704777772380408362842113646501536207042316385862065425625345425492886386069536237761758687212288538165196331173912329279704594596941258647123424137803453676384261070213730208264676265451641874452902145163208703709463619879705502782195162406467973798351158572554889820249970610623434249192541235738805319475567276312666641725494192043794301977908260940112417641579792078359613324004568474688244063296470529047203207651780054841997516097958644969883459006096583584787037950502339373966900321996804316525101768337318127690597124234997109705423238343634654156037079063100224420398016951300848138457579410209212594569295511739133354460231949123741285835627352966355339297679747283683892063974580260336614450915680511192065753893257381528574282509067683166400599687029650813302020596410516824513937028554710383241775638718609426446224181466524163137436536276914534740670826058750526916089569775924311667504273152077205844103247833899232139645222010574957479844680314626324342480497451571494955587502380176582500178656917829592907371390525276856392291525758364689021378881611425137087699216546430108442412469855059586586457808748241056192953437324257447531320608398431951141543988475752592232222333165043626027409162247508670858186022044940351053216461612503256676684788834093386489152612899049042336051227630718571152686975889491095880525378595202203761550363340131755011637620363647674934453880051368919141394586600499509150200780062240237407865322369284787062976648084051247756976840566723421713556196587211733402096839958456013965976580124599473924315526093050787567573736994786256865092924121843539327681431568247796127990204172319326029462854980318196777030078007941220527478264691673475838079220184639191174788150180004920539875379984417009189770822389008465332886188971840596343798917557245681350423436897785778480957188468762754802607332718348298765644694926069347894031544658354842668724569813992019002281308116002072192938612004987589052324926979034965486785321912864326977160454065857261302982665351425675028597334610664795398077337895208477757479141239975456211259586363249505204083968408190476481758794662883740414929762712067061260557865711903949297497058131127899133255588867076284967694139328521225418588036179939648857777421661047445548155901738982723970284270668319681006454214718595213060212281470079287858863715850086292564019935792208904351764181584942588165887325149748174323302573941422661411916791646362017268533899263119962579149738092576094849862177343405857973220217750102121445491856653135051856902749476301675928734894679792222317337457905752516857181355699010976793008181598063186448672935426023288916918590962371146475769102472102586160068995133961079350053920799661021297313971889300516964449617153100200560334011704541452669536455921895575250744959289719054421281665277318882013368612507251868410146852425572679510270267858685572721185091718096970111072325412777367600621436538641788691972240345143358899492050016679879094956827254434794232059400812926044977305026054098052441639608679863028552358646559075465958411615046367324063807253689114627134401713670535677350275317797196035291592195511444738660189874597579390191566453897611591097825881918362836314004620581882366003546160758115339938649956051081871784170673075183590612097899120100818504881300893006209191489544227064811651984513213990538772444338232923555120931581313940948242203730246938429813876241515561250153076508190635116979386420597438001493253000927429449641936240322034833264420346706093522970275836914948184998981716094898824906009576256201252694513013250194824337464646448878167997162541868512370346499853305144840700335682153459903166669831768769800130569092261849829051831573483687138822047160121424139214380202033948843963337175496042840054066164356368267508392795256248974779009012659866749979528031600860275835510493594189379037562133226767663414420807579149446609898966836698606077599139270079168356249632637807002052528320828189142342390569483559102244782717783280146631821975208475756306717216464067925963532959857650284481274450167663626027151198424462754821419820627315244434175834185136582133000411917793649393711406762962970022007478098821605015934309001112208311883368352680323118107852612958830534485972182841489063199757244435130791364476338256655264891545403535043217546084730749818512664612880626763182884494437979755099063730236987227396080551433940661416661699829272935081081941887747580829828090628406294758820006748238246001544631354680825338777533965933429776859586459822811801288065641083432666164120532076508848549849205558353834007685260026359337176862142404304996950336370671781201614026270730124139604363773638732406642242726604387979549784875502860125700428504659586170675792765206874135982728601485361984114087856357186443669081960577851655555372658365266913563572740779116794349931400409981111650464530370512025712150209670198019109731425725981497236118328084122587070262991001200368159910054965612178527654119891811915995740918725760208994169378432687260278546556954215863942783058237198364498978490365642998439684932267095902875502905559526669468619649417406780435987505788384036085667909684474410464988596106201234002628506202079903918485911808550116040643470027913234665432939021932168510636182452960610610577016148734115558144672981789415964276348139296129116511474007132122440814661496380511701404856119423889514038015297758001614158034283268522543643104949110572645559408136468183443145675007915654955109736618837386392403005433993658633500118367369257483655505741659816026375389911191000994318009534733199368262204684905984558609354118044955238457395181517824289300314748054527958104987241967279128004480913571301688733837420281720526248578881105016910237142290621390926469246927775827765779399232966355385174717134660664327070658705547117368966649604576610631025969296446011410728980246325449619940490930314304112024730357968882512834925370634745619435659896404710422740793553370491833830552847021973233487379727503200915865457275020068779990980295370351758880853059054880209762896900484365435930302127690889017187540486137050249759990405190585533004666018131431202152774452559760669653565372819947391377673910140563365408203020437026000926015536677170428290620382408940590009293485895213447331273190621987514917716727889055829397246818594536882047879743719998337424968593765211104500610082834808106642305066779335903652367097858387995242480145868463600704240523438441825841484778300709491222623182413164333637270592310440912901620155455872119204333582944294134947393543615516601681354245328157064369041994869129199960741473012255655079061168570284124474972824038670381174053716142366834869197934445449137285251710286591044565779739246029665527280798251936928026157270258473574465563313483698884886330805354224631416127603057948064958850382309526659959048834810505597938900173689469418874056618802633310709883608780206034441991845240963426152764458107740359936680583907082073564398391712317763916226045352201180940535970756733095121684208333455089334216403117029145564416931138467437774845973790429549177513762749661656444632431003503494004696697337028164571710664116117082730975323282732983774720451561955632601999888092816484812007959456185351191752941369839191157959770319353162528641654242782153154748633160702771384552535649142534042670714132874847989041740471546193715275429542738505673381129725331685336383687101232290843849910263580242739579465490927282566249173868587372827398743465013915244440302831769019172567703887242280962261945745618859939241162317452515303303885773832266932201692370046248956348883326514122686899369904371209230565951743679009272830229947998007351260231522134775867160623550116697231519296207041425258227413931519708898986841260976177882696197932147676053514846354807985218081753834528226387529627001375035198845870873479844087910507787808002984811097802554444458972281065685220572448974298912653930024574857472294613946816959201069939685376412080364303238456287106731575894568995120314297105043689944524615423370847227518526721716792023801598278614679522124128972219981856141206987032798903088473761468506887586166587479806882732399145443685284757882530855925642485697417660673585662982160414029861592678347850988790937935246764182807360249842217684475595284116245017149373953998140394692854150795810653980326682849375171633755095459632644242670422880064661645310343406001979475107567218922533587459375568549871477632438069067832765728365228264302570375438444531538917137102777376967956013354419587781681519966230242936353306471852028985265088667565576036693896315269513051240157358541826619295705377755777814633266096340620752987554205384131749462881052546470066982315172915544969082496823391020395495923451071575351284978968363381547139371977759686517544414020570100219371384986364735997440135174949876065059252853743080157040494963340648581174117870703149737718723821391556183749786876218833840346329284504147007035521790546450489928331882338797789651307131746156414984978130767067345416011151782737861389504362506028968247165833440641228740597763205701875952611999439447860688121034081666161558775456135931463590642478903754210715713971643279468738778413891248210203894711391171571346359528743002392973680945726999022095815025413107066920657347864419002895484757197131339829671958277964762241173365852912993353640612210653793532060543568594531668153625405182379717667451398520602037574147007247552715154089269345172271514938464922785733140713025022852674095798256180387037321822262059308325399814594726434975459526051170394188283846731331562069695830092308923730016374755432618626230001140859067897941337889850661180372249256579350452221877296783659805400736752285925807731068892575100301149786530922270318505300051267137826732093489932329344341672379457950246368156138145038026885346463608552576878743221979198952842340577706201338490317464479301344404156795198217507991498564890278210737604819332242111687621332491768196529206325522024707318734008835148702699216285486195968446901558553869979475029003404815344746221709186624575492279404540742245376981583366338385630515920289068626296680513751091389895261971158453612724764476204577759527361927148419858530054418571999276655751192873366182064297621958188609020416032559003285897932519178032078671721142886336339655725883973312329574692608286362138681195190023836861080271154331529051327584032606065314259632853121131282600471005749889270305358484282531647604783509714373002932358429397194037191042277424719660460316297024985275566112583098753832129052078589149186625446422813830084804656268787794654046544614508993136352935515058851440728746213636011491841898495168597913757390394898937874538724489264918823323724691365087145564469791361835496821627335532362767031293876636377028690218621779947812062904151019372989452649757398287777402978417510557463955615248347337832743682690725533939081326917852129211318136968444797660602241071545543628623478354832929593257330713359409486057427780023902523271471255005058256299838744799791613300795000338725872953445986668051858508757933821567711874227381456236378580624061949510727267112834299556832837790300003258901501909005934832285197715312196871625271513978936933174044217166661970156407776036096157925211899265895415150623048780248417956691948150464146645118668631145129808249873943971872443708703451824934229269307581232474871404434199000918182190821283740800511014583384309058394929459820246729384165284943893444386531749131614241268615403723671572773387990096123923781703339650518043572922985175273815171759004987500587043140692031921249918338517593518184559427608329466690927548841013182442592828029500319785606468809256378063811666404751825385836428114210598430761807007124140638077810925997578399499222493818567476477075195893481579544321079195137503042224123022833348406968895694127350627124567052744370479784587053846385720610296396286436962660590531036223083476222447418567688902150462424740945361109193554076046524374823253681445354127574512696746677947055268066450750205711617549164035910513530792705303997355819036834656486108991909557119953198312755675230798793484549133528203884185570891085128635889480286128395098307068242512100935948545520781655879908226178814888100838756077442197539909015486236980619369895482092264078648153449212889503901735174595407102613695842916719233265004746489915299401651449987990481656206450089280034839271085072004702524982247525541252362684654306964984713420178247176291914468063861757147292071678973462060583684108452372792860532520192900371446460921564085376325852842227063797145317128301361112718788426882568794629317508084077451892127520795506051445037761181750672345508520214123452800531731175601477030580196185493520792474777944888931198940830297134057550396187626364562130985492669192703283509008814428511807796385883089898675260101739626712960102546884802391583525855981038030759706338787508998079452725957359797205895932043610579304965059999668285201093675138057736048118616593832442824887642788547365074390320616429708869441258818499860693282413597363675234452980551678181171762526384475907528302151817111931873812643168259938617988144391784387768237049226860418317030987726325035345501512070374391664762413848399558258085448110562366012775241197241668228427107537500945995647915333315566968165387895758029614829797303704743817499541185538517159121442851412780137947888890409240833447570451118852234562823334418564533593928523106140325128792616003319770733368852205392614239464531928765636596639116571502786962380782881349163569436081395585149476725775015342391733694371335986835835013125258151431643486243824156564742175787669472317741773197742964152921474636969073842926364360670637502134777206632549318037059207989835778439291995929075329855675813658617078365597248517390010577221834138139447121770595419000795094606533107686258515173843743610107833036260467546190582879125086247856601543763097454192814560023156162821962217051748500112275602069935547287533096518625766483752916354380763406190772733163831926308112093064480392430978851325553200292929362733792946184061696008789995057871157422857615193946535667248641467951985715303859976240391384263351251830657544945451348755585001251909495641114831534921622669634675530735237482583300316012047249416879065734097100253340618394121244054925123781390948760233772847457875097959411073820927811991095868154846751986229083250462026399312562850415532790389638532518282917284481339643979850488021644795571291499798706409265345183965504884043483547016433189978894143633169448608853016337593831896563023589352048664211275214175385904135968048055964062716467566562904867649000825244020266604681802963521609409442786468061841047790939207519373743993880880205870973321987909513720587407767905288123403954417738323130128137856745615250906887670132908917735295928883787217339134314941263006545584771695371930857758345222060074104217550784137875566148488074251479337321247584379382471872258229622062181286338569205204328100928461869782219857025399276952335342658643478409719471493253704955510405351016394824914719417746438801730152574757876338942949848004524987927665944316885816036217639566969627130940180926111731150492655731003745709616710044941221028312564394088525016496668141459139135463073289924379208475951070839732931325139900656072793368282718914524385499869500098847214299283996286489483798021335980758844033809674116609276754126100156463667877398416538178677734700909289174989616143654405601762449540480810814044570744981544062565182244441970941515700074725968227003925437037559927426498553328470887446806808541909159824853380327608793853512664351638101058627901239938054027399938282100476285511077733369520460480421496933756071012179836910379243533637786019027952122919259060725525898556161124289609690385975101712026107454612458724605325263296061879536437982621031232122347918637145943907319664578958960842280279119813610528011667038807664646343976104080867622931873700682078786671406677327143960219896602557712022913155644066213754246882763589520271689639097276321923172068817732185017313000225362318153943062772883714518504368615127203068195159363533394457780481451131847826238019241324912403312261443137647099884050913199040205890787749201256433394167143135679278028073263235816910139790541552897401557528923573178294490721900479364107398904730912461539728958404086069386598480454661232200127984230976089839816861669101413843098522588323501812262431339340721614875371061694271846271678230052780089354907081289065620840367364448829343721993746047068825629187723328063147643619084022629991813831257158749936566875208597367929326354657452073628638012311041213277322250571927526265570862972301368111478284158975246923269351752433256727094390222858766013955396337712262962013373379616291189326282068012136035117950960861967088507374594438536422648192751500593934971601758885318841210961133429834837907384025812186472883690619400619217560509820240142383528024247854042437539094235954769302359893768381434974133122293117913729396200065192108993319242883165423771507627112499909357932415110433803542261934184373099328244827811781359848526824080928824149493111174897381987860069599464880156450812539611835460615300449362121813490805476048084807331066760878530830584552712226343299407201205901386632632534091456659084713829510073978637322192445845054721273241588106754371139574391875698663188406733098426782889069753719679567441459337972451473750309490320584298171758809363219803379122919155739253913341776649181178619785261245031148159586201867664497299493656568060021536288285913230864696072117013046402872948034210616990564439082752045179763743043921839752000598954268009577618617216947464312250130290277346782511910847576478781561385982533525914834643419292998727325527889522373833012080466507975220753763816296948269711539963241518353684829080824407274184254175717768735653010982120345030500313969558530063252735985614722194299319066459702776205756957565938836274046411924650496232330924899325716214778296453533116710556022748229371348341041258382797879203405185406539407981036007637424563681382351841193357615155987361540685429381389668732157369907575109313678805294457622713208300619377017636627597285307970047107304965481999767224778923482605770348495413831131998749497377521334899247294376921875968014940011272496331114056242357781307544267916356213962237641660709693998896530907224997539876682846901018246826639637609608351422973486961712315610078047138280141011924946215737910015378187398342997849368039180953684591654706736028871101025562647956101782078330703216493934483479997025907179529151453992190427480875819078022787824771232852755810796269286533158868272861546899743841695293659138665530072615439136773728332832321515194072804140110803746126461185327558848414903342829223307326630046066098067265693683071035254062361576945291682249847411413328603085059970797693224861849692851675929931896679588552970089333519305205692507382735387710825506778229498980184194067048648793062861731529120061720349590731407748787769830894784981101821474488111075995300510677522627748886308760052234021571954937829942645434144169832158201150626290687925557809805247612028250856927896149924198548402977123652570945663668410653053542128317932563597746841360395346256528445347796085773397204616180182197992428583442614348998871970247849972472325837058067454881180169364163194408302625614354826237467061175876018843515722027476044852822149245704957295820612588038494218050411393598989890490761240318747655299448648262039038814470463330486393810514710924421627485201623849847338649819105246672913059536289639277975929308283962302801698142378730832872740440037752557029665485628606800750717457125529471164415028168208232694990205029191960000921578526942251767375891401402409597593606484591078961809785691974475616172735759796052487127675842713659297388280663845611987745417331719943696440237024528999095790780148669252220913368597532808852747879755395411708123014430823659148527393233499204416487531938867713685372775422020703516638694479231654031839424527024801093363829050978448656703645617085646915849494225561665592340500933841619744470571284134498851221449875210486831190464635329122402346440214332738320460557203566457754511504704280485659058484610206933742494445198466647693610404353550251015822700754132562041311597397411546077127013426298972014571218381654324420697527009820474691350260510790427884630746104497488070761359503695241151698907622168607691983896330235788117063002053757542828345779083773136871426281143907652311782953105360989256585149985916241673238713757148536178024757447906242826889097374943583225263566489775362212873701372478752884602196550578177027186176038104306008381168958539568747016098462143181789546493525440707963657431300175091685736165377344981244459197293283560689721708977152075081818174639857229208755642407927917170401653083569853406100828608643823468128319907229958689923605875424391294627832222394969743128696126345249799699247351273626602420155871468811294970619788392510582466106930438689116969353162855110784517413858382873918057457425132510527118513821597893923175835927527982742909295941239525804566952152358691127736630623044432834937147144290776440486912765899875990723359841074724209774225850718686066432181394992533106630378320024576215314987826060402273674593457100757377622176587747352725327297728502899311105522886445344949337502435645347558593891059067390738759079161330706482687859789124177086957983114765289600062824052244922943316732312386483660389900138222338563439974406276081065208628964061893173176530103874524955441859008917428311683561043910930122126711817217372973374331064162302896527347591415969174916244561795881783941965698273816384538984443270040412180898461948734549920849509557858202024870959207506981956983105398894526563032609441791011005537062573839270591040364836187336560825556594751527044900703284197065158682290101764988206535757381380658605495102412060874818842190214533515066817160772291016660869888558055518935333107309937780419466669010067890582002282467098605123209418098886875980351740719119876075715942049281776769454775607809463192016888907107320402731287452009168486157910913779625782738097538326372067145237597035239077953061240937037780793249811272250406334046515828656937372216949927453361304796238800394927724127244135200216543797102144934869660814487806970280589528873022714804229676540837230465903655163884356631482735972575629097315583691560049274025570794896833159744252234877468051235786845680946056316465999050933247274733222919879061159811529252307530821467625772020255745344924476112360167523989789501279077804824401310171627230440820794459155634356243860193617151579094700334530094419553221777800725431963394241122334899579312477620566140396142699876282317802072312183427029848491003469941977861796912682017585593027041501870617078784157350350282516307140927147768631365603933513640568711377286750841275078257276884574465719175649370821300020379773779021740576030719698614404962365357652792599675356592600384562793079888252666781924631901337052966066845094520661932003524810010235678505124246685210238841518932526497329448357603360553379604685459368520735661720755901406811808582555233350616386910649342180602406735467904429110739609974307481518865399619438359261351899889868279013423453590721390311968800009275395175945703052128582035962375030794034278400786223832802762893240814810657877781339742097325073941414379512379021285446096064743211045356715651527360165337321824284458637028300892987620007827640617177977746742490950291387050955864312805321517415544150055385597003090899349279869909034189056146812222105802031328664138604061808102785815955597475143737355482926945455351345372577083545655482605013082660054743625089510475916232472738663306980684287284571270926423606655503062370334199652767456848251957042416095004633243389599504795386701871915199162627193298066640562695651523650935845534705917554409597096618126158570773904977162372855615766804658747338742938361213140686159398458426309413738314699644965913855564261563245502487175148887183805738019652581015289262038991138246255391919786364464012524809643380373628816231620110937971007587150622632437950170311024469998029826619799396550136625532174411193561878292944048817943588432744520255983007693148362695852959420282626909727098140174256853569383381477495681344290340145064673648599196454612836618563401621392348118108323570689765022654615869721588447869825865754901868827009579877077300683637229693462623367858989414087189162129349583310663294687465607465479319158927443501548605379605855451212744248608837576361941607935869644636278356844111956788794556063051334705372400317952146796460665150714973096431397820916453195656915763962298278201235685911690851821941462715001766609738258239413707305523668816210249012550076960429434639697374611901034650867687969666509316812066477431235213857450153297403494177746807337149017981883068617380093278205987088302935692614535606416560787213872030403491036801779126911781315931935915660119763081577897729283013283697781684682926297771367561881288917118649023370532465552291578581608557537953144489057538966197971503514742265687283635435879057447503085547338358237117620912139516546057886077385819859776273612482050338354887197130872986795119376996969608875364208921195460264895958442091528675618108978798383136840713141521709892554487054498809995196057312272044039230316559033473322166970631276864731129450915104866642776870499837620783848454293639472694965267389220412862404778773812460346807205246330543175971277879066650316653471372592154182256852565760885997069819207466428477021111971343879712045688415024868097227805055115968949724391369069628593055852739513248603516175133945275100709009019716823958409611090787383021534951970289218831807760577087182751599834385371819653146182916121684069224211439562815502537682114798868334129801079962329832901438474215486258329314111391712344287011118855093960733567900111941683546382537223240177949635835203827632521281720437694087166223956326533733645669093768180593462380870501933201169144601716159521979968185603177021361680807560579725628432135424586587301816970816144672473061669448105927338106593935357145785512471789191571841027343192506602071678205247685893719577905030179848773279478139189159179317455582416517187263450228414468338198296922686814648419304348075923828830907026359785127898730998031732429519558277069498773659014989217333999475925694082289797387697691547476735960729810332496469906890082515021205133440293515235519175271241130821594613977267225365882025486768617069214491419332180163525450067566987634151252047373543421780483647915945371392370800687407538084645874237569920472638936896810819981075019243059310976621455015465861998229028218548596577069163888308650437509723568775028968801193111255368299268090257259769529760069484620096235419972030612015473776533883624340575490483022818074657721406654211583386550767065584492961365276565274492944871214003065343609847993128552573619516566885558813638824706590471023453273841698571659107633265138800705160292037350244617311603035533235739012717036420052940730359459324002095629765347394840762557433899606154761218832974190542135915357374337726297962725376045388951953309349815984602389097325145988889682014872889685553302501075737095570138207545728668953182634965846289385469173749764937489182873512122445346060783435878706904352563776536619835247130364560740584864363348528595701282019184378122138924858944075559032158047882674113543390570761823259741751591085652590570622318707273391204459191388888153641925514273887958430532516611985298693066139558201660379709379773737326661621214314016834920713688618154668659967837741232130583111865460084215612460532321099459774971210259959692454081182462792312168194777939026338045474665695126137256230739320100569656030355453609552965321204311856021755613436605043324900537184942081345362330595282707988541168929296646646422711509457615358959669739879575435356797791860368475214864300783668398428439343424456418688329564891725960920190331447804417774636431300866863989707896343669381884485663347412814919884438818272752531021138845290771812997683384305018467578424877148950997254659194856066784793271603861154791149328943043075790471694199197540868763934747175905557807908920133605338720909281252944680441011087601859098559059390529207709601780471267042451696165808551057939216133278696523435782090212361813490032970426933881001177369555192867649382508916547023926884387211536288482640133258057187161283491636096978041666539526781568099122670234365342716260071801285966999283960716162943217746220471148713281586921520950810230044230820988016040325509446082454296323007719589677236831501573516588503514747480144497665748983907382038324958960162400875230042927305734848524345116565218778225778403300338700971421028244207305010431485280174357940821665815262516716001281176126173787251533004290027698829011736753288086318464286009950758787337767218525602440049219933928859100709840731064357188381646928214313994079244967912654535402522929727733521194942243925041174136570143220207589154116140667584970711332494793833232690758006003504552751043569275968491018391039537035550972333525447811565387336583124064297272880465068828445432124076060396022283618944646006501234264840617180584256962272585297661814955415482388776318911009153001511614825449855023780540644314091300027555301601005058299737698170399439159534001712190700584039950192847712964626826293363383158526772140345353219607240158955576182661628811293616053769328495303424059487353114711239137418764531955778441304434572877728812462508484561683823842311699428730467594217178788429910648846788404631170497403658258115711277194975871384955790360417372439397775095087795737453201590533523065928137271695564146160067796616933214381082332761721640780810016854628173147426256205832161786368289177622457347471381550877156281000822460016928365135941956680062738362591342360497420594995841380286696094688777537685716421352960804075007226683794410860349219373527603635872657207492946460922009694008082265192470048732667002105378871868867829023807131461604909452797505783856302035683340537676459773281162799654760042348425967549274095218310349329176755251764008397752131521691807247820985592591172375230952311207995279484673150113199227774642505463747057852283812051668393638939759849588498868188606533636167844542898051937711441362009258558671234462318366923735471165365174002893632956099543470542242440940075909505271850524153191507111532850414513124794804389882593518681312405795269497253780286787115251141472555932711643997336101765893932087293390494110235700591779881836824240376835699617248030118418250698646216704502377606489297885717242375549599605001206684103229538116284478255854308481743503554167835056027600354876027043588824108049760715445353835351412482579155684141166534566956061818282758153342980228901250406536195922932261872355561241828841319727561589683954931158318282169283382115787989294358034765616906721526911802955230309242921402020629372279865237220538690064051490091794305410400954937485311092783253684512680725218612899340532033101050137932944981021922546326912770895669623078513253111508665612644931423079401516211530604089447259709567998932957809985200309606060304016182862089636757110138286219339365771291022547331948633538099920779715585634925756938240987177390506227010564934322305687587927511172520710168162703213901074095395805280643967225737119814370118055219136143389249280067731867332672690702845690937698820180914336107466732171946879549162359497256281229872337781594068972639321158275050267978469870749909125340376410863196863302326404725487575435636026912501965044930890310099613309741252111941123515147330515152668374714459813429043341168369809792007368878371234842836633911056716148254275130595507681089363780073565169504377941139401293598126791981007754873256052966459037221757483640023997891401160133344182685127032537698665356582173940232417652628772827770750761242989208791096430311936566594443880664457941004532315978090924720608294337172595268670212939138459361358358862348856238955791841578064843172240549225806318279199836040744996393474517506571775823549310454860846805289893079619158801530346914018318708302669621673071371069690240952453676939981908238197780952552664166296275441411857599943562959756688680058759365769000081350981406740208830328715957035687799694606300982594284891500420163153418774285468519553091844358353425285704101023173647031416533731953459713032120230058322246251664587404878694490332626075573754776289430031191677739085213337516780016437436794603904956250832599635888378980052686624802339759465205919138366761061733265744255429994968498775642148005885438432297467738605798388165776849337142268558910237246492118772436808513087347333010330433610957325741326172385501398122577138170743578292788152533470140635780888686119256963103207006459197070564196455229491079163584237712422715914042368867244444995323744557177551561663359876756847625211711032871351082537038433644274213886180856967604920899545516809857525203895605823764172338595113667972211563219758695723624734090399068454196569194348899811137737389597294045527551064984810176857569711109967605078105938482963086078289612572114161346045083760692398318482745087884960823983461168953871028620691537481512826453064703832393853924063649714686415730995191030104964592302324320234555375421408954847723769564316119455303837765160244759940948448476063983532533641761702908374233470804827223064547166625655465432781842755489090450400939614080581233762655569051102949331906191587018712558886769449162011113637395129317499379311560176838846583425905024257044853695355778377095330560873580725873515366739367594359712852148967692842096438251481068992781979727890340598686445769879865285047289837974841783870637225608607530131186898858724025288161689241536238787738703282655088490031263171536492456122904099418049375815287185488091202248648923325192233702284334286081346496224911725856469179242249676838953086216703589476405530586975417014133106916013850383483901630355406325154175783960481597469851366364995876643258933775364118915801659534138539266497146922983040782118941800596887029120071124223540644916359726543779315707707314313790140365830800716072346534810447897916514670470524599592105539753874895227635165739195699578699240700435359051365187745622340268080778639954459749173109559160686962213980500576662553092001298076650325458459928998133574569850649567192848177401193005910537781864128202713316921727087192853561851908535868166150477192973884303356111589345255194127354024638227823906476478341437676927176629309130948123448174543884791125798633629977205666850743781748957766475602831951827853944459155705220120004429463833423081061134893994574622717384257040516242853952156044246893414046500666978208131004923307147999064980446321816774622502714161591673262806160732545905268930873193080164089107814121010746475287587133393800713265867009204238276081866337047738607316972215701784786116719693348986813125457055283268563996031705721254466478705701717974172386173775994142383221485078800529988267716037176604448140089590842720815617316913182788277244956242418965353624888117269342121695653546750481288890243804308046868948581036254427024533896244471764019862273218050332058178131019210152836543590441761640041942568612871397188642836377092682334277429502813921688677943532053109818054356477800706897870780414189324894876522277658685148119679025645618126029646492553096169975711831099192652247151157681164316145683876945089894829347603564112887044117662322068605737301824907233068828030366166907269764918913310947216616247206622508235744826389839175506178265560526114469928543424196426079947784597521042133350709410131359286080554870845836176782705892442420850355442821867235444046482949731397966024670562549470312303741072210322416786390953332132918156619011270872760319697604081812284424042838124141974320684348932343914814301621174771317274307285631116782238334593293903959069397337647612464999318092662305343565127022089928348315743487675526849309992479996846801912258174161341486294915943079530618709898167391230509665767719797507147462580473703336270538559532258825228400789235467329107279401949351561142405292979560144405573937550842777203074071734967565935025778776740792191689790195861775677476744793274400845885464763994835161797558559122696844478782931721224706468673204134996289554483503243909317995959097493493950419753460170803487592444413812437388084003650266552057320172411647686974943789456570636208459068202329450943429562293301198591159271110614867739434812613991689464827145536212955892724475833771239918942163595910969391881373329354805193763956563563791279801064742171598874113208575605088966947906933702437325852042340726059238450438214556144050459953755029134042406545264852901306102770727048859821802798896243302925289648159115084394948684501974442805410400850285447907282551114126507213852582488399035141849678111366727455748477565403246286749861242621906673904422502937264147170756447135070687810331798934432140550250804845523464694288472231132668210571934317139149826611175087121366889858916261927469066074014738173822314602505509371834175102145444753366314635121320504874484800671625520160210981521902893654505137094586269621345716737181872310687267878541691441784222220446730934707691618822189343147972556203902157047175677600973735641606961666961339473623950661784692950947118051588786338588731188721670416234541376893476170492176812377629711758880921817595428878241193912164424279347125782327190758050559181532832220952006618678285656328733984294500404568646097735916286940557574125795428541594143261925453281983693849120900928005517807372886417695152164523825424743105544066964672609308945004452151841503399271822997791445584327624472524639036175716178004784720965967551813103132509052674730099140489810420915867201255959807221611169544015003768098954155599651109814326307986228727086015213692915024785718060509412058569064128507296973051758904721610761214894148952203157728713461343022917093368969651450608878341863106720466002126602719397632691252059498017569055199949306688328087120106252618890561704458095034415340075206027514555869858677351095515856247717101303596293587740256247488063024708609201580290970619607819599473887734856781655368719090345191574940488156825201324010751327094455462514394157778985575614835532323845319362959374278761532896886890915946356661090168400934674366407632395806057879335386382959588279179557412656907336673155524221125192159851660494857340694479241222876773519543082197307979629207539131968815424187512415796767778377558901139147584327365859639972428373945266983337626767508504917465920654102934132929169410899860205115617069296511409291093433800199945763944034477514684214498553433692866310075632942438368503866598202341117762500946042636296251545823631136171912363857426927304867889913916282206955090475388566893685705075951755380167636610443817670220845471561033890865457159491219939940513671237513021541307171721113022413325260281069418922656122321458295497172675660598910551935452938169374676369139675168168928164912505225235513372005942965168445363872619640145460677166014601673895804665178495837267534652290556319670630551382530833029522394957867586786453596031171370943155706319896257838487579805408823640691911227682322185673701578312748779667719853312340589370809130721112501019836345981598684741084103171209737713325774110467961635693307782963896650083933995193166975124736603098171719519219497081490275281793143868088650933285217540393971555688832912046674563639739179570808462121437493976974349634558108386259361226389715938392035927858004423502961069109048294279260538751192079329397160152596337202769016678919167048851741456301631170496383107546191023063135788508283230242412335993125002590184567757578280759478465585471847829883008018208241500855640010106336264139359003098366377996695490661788559470484402188794748336275896341550371881733200640384796223176500619239780097854361636784566015302394235173488484922840734454770854835039667312115812084335847903252660173468637379800567097859822809453537813320318874826363027482828415098470127008254681765240300373910490774704143429222263509502690650660789353170636990969975433683934097383103169944974495252395024028502439294977794850210479521780931556292414861626936410123528783523012004317825353395135617979527366610075539626423342466614495360076173304295883254809268753189947280254078299213184820450478737704990444374879473474999179396657928075670759658902658532792318411554539586020910346303141054425078256583842341497297483839149903847376735942381229644014005948186563629906626098737688525293349041687435951234822367790332770761284373578354519626502928192393274118769983864006452117414885150242356058622809349219572613875407271332416612289407331354030531168544698002472244264202614196743626621367680775778263600098923554535025171741524812035880637432677806169183052545535691807414457421197702400134296753212321727426453023382863028874500669806627155720475996268410972139536239170151422057004506431155664751584714601441613368796658770332086743028422891019136824579628189843083318847590875494522990869258831548259437756304141433229090969418567329585501506073868435793331366570902991412805645180871075612015758976076312226867713363487916164502353909984180537574648372921006464497835244395437776702349293664650686118439365717851913746157043912499296422503580055793402161821431001185939924904761282754608769334237843960961708322365622274074143273734054498145306311689002875852028394591113042003519225323603076686653632251370779042774809308244576503513744915798756534551069829334468701894495089115106133515129081615566544822526621124676316466218090654326299577876115394125326157550549273732153696324964577064645859865207548764321337356012844382971495897820014264956318639365307393681326809859814177184869349009251340114996120253919841737260488688821885337464973035109584521720169075279744449422174084488521947370413555016844046098126758421221248806823545622980104005541020838608249994124930279282127775969179954855350382618864654831786345402255898663450631339835867778843372875292202490893883234256427277069812877916925069088741938229820235195291592830711676450273310609247671638135039850727930429988987945784409908531162466285096405736776169451495410255432393820489991961504931241269262432168062036970886521868339310023944638639777409052302285207208176331403183847611354557465230775150329680668132828737834703874142179678458692703026639449580662037703455444483016280675290612325520927664822276231821488930830357482420725776400893555139526771193936774444080109833255766133129392189831759460277306851710578806061812807717912581004268484039080067842780470603264659179412329687642399570367201754292919710821560100537657494879010576669828847213371482876989317623793495685399301215004821834932401461828903241612279076975745939036665112686190796207879172735739013831729332282222670432117329481253424453449470977377442894074086963171259148185189227808991729626748437193494436575776825417169443133042512832028169447340403094802520399597622769956175265570665717728133511299963711179917302898943265540612363609528764732061719776167391196202388651189191008228294561179143287447968623277180751616871977624583891119855222696750337771730306325263403324168298942956647828002195184700039124992813534833819221960934095498674635639417095515120451978436682234811679036550455378833509095781099940947786177543825616254176823443812753537051911300889099649709092471321525361946363764782210787969330536705406191362668912747927999679752114271512243817007725134884512023113378898038928558806319140454983021485091967034475355463147123531169839418220876904360171880945273531070173029295144991661050248818682351366130882772415578382755675718751397900797026684337214722462694847431453201693788209164613487045702234540912535291331671975162264113791367770987235443450975403247452991301603361128805262501073826202461933407661203568401556290369266134772028640970210960497804700130700470087617827546119498136580104158787159926592303528177645490002346212151598927476047890316166048054159501709285264685193828276304238404248172513233518420080626441262299375092988977105584578518412294022276840638432208399457238345037851222682668158866592653654809682942731651741231811700862302241697607225148501522090359911670630693868663926195013272143268930709216396290635491460508182257315368746699656910680210496794247281917725698446956303930038680424070456743652518016721775089201188557619402968279382285906394507258000832907537092540673660519271722655452940110693064407723673417878388480545253654747559888409785966536555093406028152100601624751117349035323301796375673317093519193311323298345576597071179230126968155630517451637496260454534999921359408824527393215595435059221654863092937635918598718742846210193025621588446681126818438289317139723331998108647935310087728955525547019877791103773923677130632749169450178019535017206889806746312528973770355645641465736262520510941686323688439576953038127856810482164661176703696449706534380693484192529781751902615443975999807770583926448377719100641598479586180228341194168396703638112858177441685747755631066683116663764246410789943149710655714916112453859597725535958749335390528363268285556490504001765136064085090495941701724374913789419575210074133287796647324255097654662768622064803926142330404297782646533243827411077531147817060809611105742340028848559743899917643231300822698668947606751571195981870751998940215572647928711984464687799624320740673443011912846722078199384685152041709105499931977163989880712553771406449455957614800732997398115627526405385400860552953435225571410935885313321565868065038977330678570206034265757932570649585570171074831425172508031241866066931200919176687096374835686834720933131456426365608007041037065338134241290251762549284877532336051567621455458720443495205299900645451312565472091203388969103282502747278743065613125797681196046064788885826193947428724694073888145577682744646263637794629760551815296134841704592855164794556118375216333292499560739397667138899563189526503591814859307446830614772790409411259580292031963262836557306510982816857095872557845084404735877858653211579272846723577788254068817630965333573749363273679607565752386897684981773390867704117947730741318748952847312890149860646597777086468472974316977134927422607302797426062599896457191441170391740467480674693774486033495752228295519455126634242964921621832479590599715201393916150277237466648367292318004905222213919201842892696321925897298748473681146176226840001750139618692869576583174926560931222017399041857513414563229854460799922186235238253028482489585899949019086838666164217692057266198711995886260776434462871601005997509859952372514560734943983667090977744613977176896639409347828503905370661941099700722095154328781046356487061489414556195249179862776518071360995968743273001953050010030083671007629589878002982633163135146332950706483181040814230507220945247817421473671013170973833432969193124622825340209055897865589614443306345636590539800864264985301968248277442540450831384498119506663438057694761232122148302911492957579672095512545285589400428193361634006885576584012131725556159154920584799112959762350343904873738792694545259458918444823297867620735052710281954346927230246731040298073596571310755360301685514920919870598830939768265734890753163256747046356624924614569483641474738630951986095742080370505239673398706988879797858898159471922309859104333813113998379254289031616054705183439144299916957497007533594369204366317380598113163629493441282159365671148984511464289645550877043148574149497936590706262306371282736418862472972232634478085115564851895204885758797926415233020896108750551498967474185200793538240793099593424312747724464008610403087024022315332378137865870046196703279382972517402366306170165830743976790271795344664351568804093315474930292154622273544038860875009222390712994774152423391772467055842207137747249095613414316760014712478888667940327657619929833861408656327232187273183576045543296564733891479559661030861797486937243291029641435326588440495663561657573285421511769506412037181069970238963692577948751004910206496933087937324120269411072948573463044360278005948383258728039470665349839430492000410621798158355631252005431026792605061060118398178135180426346768067888454792332655308619993753972112662605481687056517477458771388825113619465046240792134615162789872924088156712758370984801353688259300474014671558597654793977619561062591573743480548759229625663248807838954020701533032953596080991800967005880207180657822399192250823341990036544294265812865085371785478960388584959643376357237780260340624874445952747124229002592461908634514041184702949582532092976462288350101732033971589578384396471702983483632285013383771005853066887240321307731324118485003004983548961891619629075634165098003039265098368457219754783035002590265620974869780201472749341849554691389548792026364521501121107499623980739106685046737005171498223432652451048230130315945667335108794712911149581825787029087472150322276817429383724773863642978161162976738444451895601342983474727338070777947377541445697954385622035797093388375755982459512705758914618325322902831995302396083924920054715598495597129198778428673879368617849683869406862545341046507345970685834157054949992044912248136798413488754527277699690049653867606377236857449203912715586842912686619940414513331507070248710002828763528634989074913010114600618381014195232069556184559856229152877937501208926893245129376009700781746731695159283512082633702927900792781353432635692617368726554514742626586734556862758763435220909622125605177594808681464724592029926835455876043292176257730891205417661723513124031036217421855930541646218492748042294883933110820428452574539978502832333001336462028035007065600025844472450728095231437686988779848083786600921575163144899715193042769391150946067373534209345118218428990546599708610723374369597142145993814491983586638151525243561226197702689013068571951390877049066718316254759081422460737028006695409368077273701401664397682962690741463803966330637107317856740089879632985326048715406426656303663406050346330052566077765780371549898811381122490462817994950748443385679882135785546326736175384316960323605216758063895693633296715261156130860561922766765297540330486258990854789545527531542125294231226122246130178549759167283407392998881934178789136106773830110044271716105202151053403616930078751407045206320840417109022100894261644163864764811983499332860417730847089569567434473763666946276958285580081602578409052758632288287572392339896716272652610568348231887118216154823497533889231417578818278211358148829201763435185297309159775242296861706095010497380234976892816813053014850352431665627468094090964313888234211528995103949057124404391152886200232912212042365410787281789282274947259949440767808025044571933476462595278475706793162386403884835172123140174514582398137010658807455033576856662966685195616455939003839296731503166212069780848619441872243946411361159693922344760747380387535550357567154510559163753875003680497459306555422855288051094571346247159903645597465162495230446748960032410769912092604220894702167408964513861922651878818560566082181881851325724533976654410280143029975768945596990658169720324143625170838588702195797703688177605683274922754827418335786710552260539226572594082242688308580740331205601538730062302264137809066929735415541169164727305593044098939878458663155643957674399836548474983056085050476629434395938030221720803954312642790996312592141106334589941570429627579743718462174192229671850897963649735809877343251397760121115897970615591758260803209186663835387427501041653632999566888173422936431794672854518827294524383100798565411987425150711492732983428136708951284408957982335273663286377810802382848726252622136787197277056348109131137283395638488193198425181053227940401144296488691512297435858674863904043997538033333799540717605569165874923783553591153187798625346677115720503843887127952236464767099578610330899661499337974817242938588208867577526312348886638722189218485683598085027779415222634719032284329745091464991325867963005286149599553229792840049411201930890108231788860906741326231045196651762368102844971163549915093418890910411826057763946898346517610842401028759609254575967460121678442625192481200061549677088966196638424844255620792696629984172202824056541457824695888502395267215264327062481380322264231478910266490084843931012324485749590250333923183609886768682893774118245216717696436394971145444816608727654958568056703795055996802061324905670389785417559547289248211045495218230750524195637910454350309846981176446215270058378558043533735722513715480921255104766600242624753755178325001906178367086808083344540519944620496215490382127722532699066043948349327377293154963781212812145587661974723721652673649806661654822529212215379608377445596997450986452574242389948061720028390980196189984013487101917321978105104286055614118559058939184148124680153651889910610006143733544281504240839590746400478364074581114031396513135532177871196928009114786713133321634733755536084067152724400616371595153287786876593213111362616380106183325653256283055554492859036721544294475879261827369537494906430522384076403199980826949995383795576610413547847690080492603721599497652163899875534408529309344683906823933535979212888827116090965830427255125227723112649343252872674291775255860999062094237052569927562396906440281216543515794603763604352545553590754527314901049748383454099012160556356556063119065021015377308422630982559564117736515146762495533882376101271400629065880790870807675771724323508730604151176729198976634097938030070694237562365342493025837728982067870920130426817264144455762537801058101260777364919226234623696266412270805066176069567344789124668164259634743354450823223230465534152430871077064398560465164789512304825839933562332371328347740963527094346375846906725955337184068092060896849282105301184128437168911054676841917350800715513862601241311881373018204637572193484462191188543265630792795923349211104854242461556565772578637112785128693611904602076054365488414917655868806924576571485036952976900444128492698199329170996499855862256352184583061957738790712024217037535015907238248482978816215176654174030339130296679068450331343443080510051097774287055431319626334906409854167197982091121332175348258917019905787268555385535159793252325160402685224946120736971333220429773332431660565146385172751387189243238626562859007170105633673952613896465775551696437998658868914040737571681685234536345778233048987009238912467951050707579660489515477791016665718847940024524837334824152302029988468156639913139808266815593955472181923164254467588089110207426147600497922553099405867423569816843098493141283188357236327991047111545913497481404747157207501624204373401232975048039128137003538067449796740221315602467994346605028304063900792758465257463291440270141780706213280266147616074239646035126254186430515185997245619454593878400639569587433922878442627685180266481100871505926026836221681019085126107619641413139348953591978546425141544972485115718839490982204210634112738917216371127770353691863979284677076063593760546808746416258534418668094454439633953584301156823218301932909567741934409301253963771177980739429130739133961764053168886239138455318856808708733915311101302447825515060423049961703678762083985681375032260827360288101529183945410092922541014633589527510684661210881734496324533919214146042447996909798295000608157659877862988474515482437633916889077366952759367600014810465764602830587337805956865193905044526454753986162465014297375328812662747539634684047956271012221072129774332407328929279141461648276971399024651448160211188110459397502554514335238659340424376367517611696590138366123487505767857187715902692210179028798231686490654849892038421797262777734693614082688376737791223833318924494274920304531945240424147575505261872904845770451801580524621786075939229016758127043439695548145811104817130492186582029414886879653860969233784047291820707880467623682929956357206137230082150489674171614136580609941553939273456083343394599396456354367749255893090949831111950845656296078044036032496547284113125109370909385751022818038765170152192390288502072893951459731971256040909097853467633372117312524767835498061706876748985428886968925968939665796853986823022520830985017802864891692651460262912772594764114581940899679536456360555201642462316870788064421264277812471050401070922243517487129112196880602035440081149625143376428931205367638816868083360629569179606636529112121600455735463507492309297713785595147428251623552037939187009102576149498993244291594253919435341694902498059626729707594251647031890090833226143690792022771276460579667719486995758032549570207791805209259876321008300545872636323533525085251234900537214479245994111697037025300099716364715622331140838604031879131237668948373081819864731870439795625672133019495143606143078903562574168846168613048060974464755612100273567114049942329764898321943872932375561209240721264259413045332588902619644245147956319156465144122809013233962526058497475751611386931641964933057397463022796122918376186507944683431628111727033660150552120246809465411048478784754713731502430247403064898719255498518892516757826487671235857280812276995655343528061869168762664219018203632009867378688877103932552635808803032349007487891926892263502045850129377019121985990571044981214625352367050418246745901308225189756011648844325131090107687299291957476609282182207606877033276285899136863968453488137594125104207018079528656370650122751569266311115351627194797993992827003614407266843210660532599342491252597826042337759261845214769737350589538109356732156500508154733351045190771446758220287766748749489346639583611121668044839446178490059750820104522086531108780768174628151830062680572474126467109325369808966466547688786348047525106088484620008384775816931705298180047634441025744309387499671365925604690368699342015523529383038123707926208310463676548947642506581386254672189637660927228511328155261479207867762176436135469901567718325852014325429617394507515140582871187055808899015156456356022454408715544975536590145477103307678293727269182012044446865749219589584510237460769308865737922379116288696627057374511488354513676101500505980567023035029535096942171882935373542613370569450393153587845311306208294270422915019413324989096873349730978892973048781766386051455745081426084113310859808864612654139543154487951545231624906587352808918739351938803787416676221790280846101403948484647236672066614866189941777300769808238773466287094743503170412612604159788944125736214344322210055962232352886421887330674854233047210400578939068034822712182489788359146773303073849425683872579256827235317131789369989987881847612867786768898690868311514943599092879037467538415731921333901606669340833291035789319775826786991387486174016869878060242291063488450123851969381709428433689335966719457277606416407876271893360801918172762029332015254763957833041320765824837311550282136350458639568784016852258719774057534666735031790737574059303948747193275781739461500338126529297980714009764333438643859468754103469399382729130789758750656369876018923101989121913147728054846943439882756052453461203570663339639536086277468624702905476610892017968169817229390340322411587847627545493578815074375515170237369779750599018383801450442708258825259648296081911084564101432829610457955626506240122712421651065365247624230148882952174933085782524967968026453225296859079379104803951827085055420481511601552538540858877882663679303641855297379192140368562682779978245029708329803018970651578480354262310249486628458724955294885712456259900935995386181581767158250862193664348259805307005357485274512397552432040011135953796695637091810634492985130779980399052853099005653280155415995350130032283377782606869816924823765354713897571167028149180324380170479396529544368491663114884531345519633777109373796661727617543531876816172748544291480834300880200596711071208583695983386718054072424265374520922489858543605466078790732474817270792237865603514403508799886220034936032613135904718552200001429335986704705320432434123523870052128404830107171318588333604830028429414576520325950456723006111644353360040568990132729218608537968127720496965348555138751096314766521364539866925671007051965905999724283290318435377553045600106342216989913417305622363845559471020242902098681162996504105073077846048413217348716044985244835730592974499636489086345861384960724743072860890538830456298469209687593228658576733238133137501188780292429670151776067656589402612838094339840020461993286924082744236600878909503027254777804349212714874314843551510038528766960424527653284669890285418724071803559883614339766927007606061345818734932454871864068760695404089010061448905485941187784674339431674993403326702579649986936975221304975426161331287245335385909833190099049590798999439122629830987511761436613756653691464632817614812934561472281403737619365021066411813999857454300120608330070151039718442482864464400798697160333306101480301531906959924965212008214837047690974947226296926965255064172847925090342799472698116080027693294769542208393597300686916593232548652960682852630647185698829069171292958283092273080704150377167363595227097315366011714418656937698049916214233897926933123804032204099599912070194018130152934216313110588484857411934062209191664814601161469365053144046936381132032254986005156310546692327126345882805424523930508691593904492005535726957619522551442920115312253147030365744903713899255878993834161635122798251365496952706951160274661091143793125492225527732791749209697889886911445120316709313360277939922475459116121170403219862642001230647545270458038410100365017907123908380522135511759501463544559084259569258790567506496468737640706138244635061658879989137794833377610165087549665759199000718727103298543971477863725915579597623240495113875531449181450389083869645603442847512712461963152271039994555759433214510478310672011194205903937076158381707896584638053582232823017947329410179714332775190703462263833801513654894056367756614488801948447041173419251138717200594759287173463058860523283691673094004254073504774941228070853446846492056366121658537305685423881548379029232605785926639035382355761907057448196418750059846396527706579586272278811699200699399976809279370985429614702655519188846022270223139943222454372449503276569264558642172823082692201707577084767013363881152948769844271219073085786028832589118881090741524017076003481224566424493729841995885170979349768585277577999357003440572246901834698053473978246670964007747267355864662239135739939295232642013434765877392571103021000361213552671875180839734231009768962368499573145014054036486323408930449457127413261591229283948896919260178982753866285280793722894476243589882047244510842554496129566518169295406153229721942576569434577435047774507896055873316145386537467532796883425173688089958427388669841573865100480156992600375641376119134017547211246221762350308081747262039698482298025791417307922709962392349159856701715957697397379493814560186628550926327782205143822889573441534633575967877169124825330150842889378748268389077773132425040243158408216642964453294873768040708919382111057897226740321473369619417318213303979903113252437420329693893473244452365064160219759917599567746980123346299154049472538829674979802779981059796241783004189518321905610934484048233940045783582280394202958796081941679400911184144461964654115176601021467942056040309988742197611154075508572321079086209655335067030698115027370246531422426646671822572050643795724488022009136772970261879854496900614884386650649035116501851311041095082218336096254192481614887615387427782093622061300042269676688048866688930360042555556626038366757778784004048147996771138490856170535434399191867024988203178685386417054870330088773900025086766130407014866527719610759517939347087985920605213366715477352687188619857702417316538029080683309512053982634584603207180553959019391568059606020918460588941157600002850688144368092431748410581005043516140104683933553383328614664883529738109888695767741173211977679659276153504210738901206971397726220732639717886888541602219226992771586389508258635472824200012807031512953743111748116564204799592203427231054251492049794428160907087274762833070772138506799530118630340208049030555875038068942875565186963571081766653627480254962382051435263472633500930407052536213371906415698073330868672083811661615444704578904423242634552339742712795273712874760606645846666894728142497013834616001058390855533794677833378752455768274945485095112947427120168272564261281071545038791572913330331800984883387588927384360472792087075959203101618682734816690146681598931998060428283724342781229200260573305976708686217609425724479160250699557395998184050637302785181340224346809166212421388000650997515701717073255735728209512656017406811268580182654225057789214427768564872946075808174332809334769861869288295493043914100697051297443285822529764625863553575008951482888832453589915985216940881453516741763202745232465237960552195733287062277417598170670570078612189496387547482086542616243065064742258519863173071850878722336083137966509480833639263415786474023784605060580945832132895807824718461800313043917899310626645331643601702443195417232075713055072901097347330364416832585717113075213560388050398204144099822384616939262229304962575539876821525168933881908879467205269180316372875827937987845067913357545369348657563876522615249714964197993137162437800008110219093374043054617512612285566012314419938901450910605689790973759858423521233623983900328419422878607051934762867145381351505544642683547496854797590623031354929441086531307890479736925261164155043899681968292392972782954398041140274967707860453142995933651461883816355117173112338787531378109048638916134506707430678369584313341031088186490241544765292795311871726881185050195516390700139348166038635329079057058604540544166646172891497527091486289818376666179288165187492698822669832457111594760164925631266917327113736211428400263009792416325525777100801812382225652270764038357684575942044513304332011302693515671957808111376420208770833843312097962454164217723059194760860656865680261027775424868246273951713897358801486473436918703671278538345941408633156898831303436494784503001220610833539246079420172975545046717015955887742965104671625296099265579180452925198863657490428213426489376227849626662296274308581662265154087731370484811513847449822661129630081126668656797693473743542564895679890868616473687943359187210580311961920359268408569924516856778196520112655965628307735041090945424290112958242623544474522467078186383018564937947498894617734551434622418741779167198386909579713347372891127947296511089123905872765009053558994481621165604030459839367557604692462630419732696999974022919991434726165220671896191907820347673146747723837389690271557598616692964816348474170680967008138261325835399758782774346324090921123127623892766417997333187494730185885607029474528156513024478672713452867091650696682662825947023018358977128312511708369848140959854167243395804347461678881541635520002120779955678600080746263352758040470941278305401339236195652411152484060203259956946903747574199337906343054455914130419729567644181368819780635232273949597829123627602498753482674692201287968101640570073211550057993918745963829292491424390343979399215959038412648708146637805983864916456659293545376029878003590957129100197174684586360738150362653194342104080396590465763374411664986956001946676659650646201321333221257375822916832130300631339667876828404096435245777944557379239045894010000579306651719549655583323339181740815134677302626757150240961844625245140246730163481094686355206394563956650896389333131547583605250331396051416517012703093608755699636703828838674634234042724703652126066241726524241276503119253568459211896925445553943160632200389046751460836221771843339801897549093049219098607807764381689820650488924869832730756071792088317209893660314624827402650690699350706445347134948951217968699431192004660379968188636436133450152031906282197646996409752521612935259893176698861222826288458453230764243409136699804477792512637906817746813810964497319884535976748713267880758567445561250635221554062655442327689167535292307683132639777817774869517311599675683576907777605783758628614248920100190053729617056401832516507100511632280932509497273573063331025123042730586186453398002835880404238776664921993526095084014540890835031467883846532415932165745858307001132171121135255589532637240800496118350244006065473531450049871060533061876674943158903441389302975925735295810155784004458297180324445711298199536520988883861311365213646458268835663278461895189121848104303648063059151578058544108677580557136843165416929746536239337206948632733716605008932753267741314804989140072184996480609568128349295793809878102924821019038019445761179825386617682163819421884470735039295326780395441531962550723701982943259196255230002825622545960975486871418370609969044612749728348812983230893188293861778718065224414503506027165159076847552447841267497891818116897310494298877217848348035405957965095050905893971169446588987840105835556746417233332666932843883350192809004588859834051267240216706229195989387195672063278000307929023969637110683016766053666171381160339427951914560849721364940218823979428383565112001338218127175159554982448545075582716927860269621600622483063458538755534645594941493234885851867780992897564097489499700770941797974809376281856314397545358066598142555261599768521504731479233482647500847660947620723765389723869718379979197272292043474994901220285504895170634432565798662481563349420471693659280404924938147403164680539358306440791545269697974877356017806002367847850106951944659160634709501414508647100150280545733787302919561692410230975806064638583244172219976912989690304850689926838899880065709517213620435209306369025246544134703813395890487051804506532942654459134472589565577993374184780426036009825098072880102302081180775922741690992115657020855046149027842886650911115811753033310901303631957052681038134289872142269830228706813590243798688678922905928844819194825192973401214018384965986313118790658304881782702912155293984816284808452947682825576157220963561233944007642995098107900604613648621545630866270763830478585056680490649096907394512587306886253064432124119256527767997218865717325907343518852603768247000699684593301069016250387729679930893185061174360556963629712515721115676549546979812324205477667388693503133803959112071035658229326624278185822233934051292445991697079366428044544538154046440362265205770842093361762259627464728111851795825361631463053748967820156278278324341550378616242571034845360004238099816422290897905556942379859794444478203236314542541326143823050627599456218635216041686228240707144500720336092397767145559063398983576192386759869426192536319182110308355336328356257605739543138250808018647567368161604393044851277210385085663951512630942985130942034406048821399587401039946574053283236936128387998179345723674916660985554137017712703666935996633030853582300393912657046593374855957653191768414543754361972375421881024037470402578093221773533855441704264287164283353080129468495583211963068083169050767277163902418234915632349100256318761145400260762905389024314402612508730069142781295970772549278720402726924613817226372373656832996865570956262055119820236104896646027153189666132100577773654693919282223017914761730016873434461351661184602366609589873733353841237202231782181205757267497863848454096989867014335875696437208683809674722351731817225691956444605657606237401309051431730579620425908393418008663683324098278660870234572321998807838363419429749460075551854206332505764402406863075413340801188780660520771895968708379897129644686770002854514470899253348720595846410520200442567836779988124295190854507712806303056858459267049904904363710180437375366498053202167400116742875485487936869237564106353198277705400242874809871404166125188271839936808440177059095824624522892136785036642585489600934758516196495664824607816638714829525096990857861271040596981956879448141778503640365631724137546639730317688399012349442090218343210734590749786710063908011346866179785066856654305602919480848979207504653118616536968324522706227017164532673955826101615132336724714510417848662763663199517695236057569805610062560115758932695920169123193746142918276070722082760566450803985187344253184517278214559891514932280426189729167669986214935534085552513034398232756123844832303585282933158687807542734243674416682135130404086022562755393303917240867951869165992118209982796920318761530572876780998095686955658129338367182844951534198908654662721150201261927346836150293573700980041369904317263475714688874469442576846201204535821554453625713374184754723874661423788670067752566645754606972052839162154934795863906279347637454051911344480185549369989640439672562293109886315150214575009472361854549913282493960655112111122371195154666987711162880061079917436792841451016242456697211251299183431073682662875441285634557446464577191664110264728674620843116367591812644633041973803502772608623426084491530877508039143640395387140187736203921613863755820582854145724215854188096915103735046681163604177756658108532504076530847243724497888884314844485319464430744703472436124218689690452738196371805420848380026470212862164660627397768260975219589552211473574031493013289679136362682120422629669845797898374868040586731389369359369341782286927644023201642999197387042676014640137508520414135397636929633598719742617114512948927413851206477752931496571816435696419421205375523433288322340374039418493909907822082264076887369780622012170075356870829758325349719039648444207399901557463061350035154487861470891765526144045001753434672920660681550895798242978814779702204603173663074945694133623468543442469645088569512218338088612506303976427012230416126129956529772188567430933895507557457951743253164471063159221229333554843702109059202026983876647717971735000762520010718708290754187792113421952681733166498471935306545601745964139071727455775524340088697909445912461857894631201464126907132873614493415152259855334798260843047475041803605672537271192155866624936735821884265895086976166922223597717233776849780378651297571566080689217099843690042655516524918189123391447584751410893564577690355560466825707662482312556662658475076354763927035673962824960421050266339491627288219795974517783276098736038140234274882952894302361760881934425630110783826794688138867769820306653581870376324559111304276663620110048999978563218454681110272676216258579398661985624418352895958572370847015671476888012969401863656173055425488702401769845358841941095951092831094621164758221242272025762073091990823809209820649165261107169685298844037141962253306144935006614808856503000496935730756770969466254915812384586244281113083414882939835540333288660791171549377209185579393820119380199320507914871545581643722107911431080786593917358237955101863252917697079395580658434436755810254979115077013428486767632285626430824389961371861567927524651800363673353537190781861861540771747218943795398136216022328092986850091719580581576641093862098040766497445276021335466652083233681549713543115284228440689223505823759183438778403394589566858002151091742007584987688604291411265479876165700915868636923348344470605778883221560966578074406061982000393853074348308740424478250903887867063555299127593138503875976782045488258068705468380629727911381237590863281369961570868025489958107418405325818005902496763453357838985613187894351181857923748298733225687916838146864630402890101564931624502026236054828935275326770352277326487551146624519146665786002052013112233152327926972622947675790883285733493064915366113495668995002992997672715148911908986682840212488890154173488350707300754938279072722214092480095982971538796639031317645904035628143797909175767734244614796246040615772284039778940202561518118254455163251000820710378114096133598731066004295282121101566608384303222501728100048141613870201773392826945092432959823574821122004579447402753117551927508123990366314403651448026568662967747425827435249582370887790125877376167213719499765746362748598312477403416776284079520269319426827802854985556186418982603326507507882851983696837140033919654877650797615036263744099611880156360184608196688370745807115113328937910456638487114034427991931985700267605898152614630461217208969777773579941824744941513536935020107040352819502256861611167625797018955785716081180068049997022116140736958561274258678721261308273406681964158010837570766258952189600632573565965472385428937887889917901281954772752511642905358039876588636211036316315229311315885822553879277327466997095193828670485168561546331079977108260567148666707026126259540487678617090554643253181076301513986899614056079595507521541720153536887050517357352676698732595141940142468799641243050452164714713840066962917054707357078844814953539780594143314098439433067027106970143200504764386074214574087658452851933109398789601376958417470477553456961162228939217287223562449767305718013661908295905686208790730567332920016463233634250354245189552992173068322652072275854964094579291093047136297245386647907822357768090055511615629210688593806867106415565415475339434507355338425667597263642496998017926726866590540387508285366905066956627150826454022581493355044699325894860942607240842094028886449570740971304757548619006765818950052630475160473818381037186672465565926822812898440070341842080050541596919948832076805878340780614671646078259317221099917476849378079085620985743203770930404690718118832269248408642592781189186010808119860826406239320164150639570713779438265310328826393750582694945764327523164793647550724306052401230652537019848253999645468848206429835673364202012294306554851240735018786552873771150405617833039593849792349455947408241587012732769154930767122626249408709499249232952639245785010406182133854246908915750225293889124571644284465344162885312311764185366976562157757950157379926188845007727336086997260729650925769807164503099792787436263834022634092372354394252566190641713551414318068229517000440608539815922070425727379270808653713195500389026019950957504828620511932172056980764211443286778081734979492040753138899549876828960240520336959022217813379753442808492539405824457553765338010150812882132822517166002705452469512193673579208395818127183313328717302242887664333887863583669412982082749148327060072221237827578988905213498144542779759602994917937240044818733918693731930761568942734751134100130979458361314219279943211291651284475547817061721258097598608428513550958517320310767388067604905407414717726630491047796106175562573931888196516430225376265090002970871785751644501241936942163244360286702058045493005776732379678163432399132257340586466764217740989904825661294585053580499128503913289750154903808750962894826319936308782480300788700110231644720394268513349766000284691919194111910665505063798452308167847174635854463377466234246503868466786063037314181980342587625443523804596719116530793064293601646105370768784771592609747646551642348599176195860728475335231115625533944724264028373622162569376287117703437816447563895057758104982470703648122762689358492537159254577410975051986300035071926351956434156181610902949141831323857273055806431739073086570483954402487069126830955932830662888171454533698920244547555202652774196268988627853294926691579091215881181591755777312175986133567133593544674953162492609157550965769110755616389365088764809110729288315591555767842839559620673127937576267067541617059307671511152742552480191516882791528803678363496223183587208392869425507131874494269104236911183788315231822712141463641038128826354316642488790391989194306895393676378436061693151578440027456372407689285971191857929391518438383077755817210994376890356503815213503343743969942089249521497711428140346886565979006749780854833828416273289877743632104743767605834448573665170354942431116585425413688089864972177515653635328181945138645992511822608863559132774919217582638521979079629769827447056675235133903446232663390789260513624461128357014307800436491447971204525740370423155714794117954292027083895881011703347949260224075095383724157110724852350503624486774375655541185238396475993648094776288880110134285220958086215972481213890560364451742019661632429979029882983912371726487363252751058266678192007387997682885494646558767766739487274321401670964328898959807296807019547057010572087690537690356935562567448960073563371362152744969281998505670007875497072948989118200660779160720165086883818179773425411904710113334767403409734635986187560848892909825142077901117848592341429015352948021399313697636114705287074176569982667924372109477299619553748661219473714759491512827824841230406546167061705194039624137122606132186512072947551000684687611672472005552474121062939506067494772960392701483473159691989809217097883761241712834533311473909611332175943111724302288089948218365624970022138225265807553288718642141398833186082511225747003138436226421477659159887897136468123356140056904429907615012778573069473413620811035076254421917856056166823196964600127738123916366899929078478199221104204099558785234974982273367262328434501657343075158513182550023558444097103639905479339209149790935153071314068466959333284280101826775280355575739465392715430502682558132390607034732449829448222002477842465104968383910222667282724472182503153911610039129937790748824869707913770038003154953494319528898005060100695297005756323180209813393841512278343005035739107522885969636900044252140058387580129827405373661516191038438599474424871517101275599594684089770012903851632753160906584517567358885963806096373145320102460085881478304906620300856338912685888557281065514357586861249396540697694926046750517070922848379543358460708056462084984288428805883854457367097454930477123345658408583489820483179941697311903663932583268279020400672653881763263126950780127554154667899198078818282195172891321901977394691746231248885382679313853375363613593940231733263634009573175402339050004886907769142173721882037237381021785221706663840971779626133920214265631722226812799301783478316212084157613720700935348008974059366887128985075496262153732403664351143503070759260393616257160892011040910948363234020127479411848862313519718044783856651316197845908191065346876264037049662455732880320445568507761763020010417351757927238608044065341903368213939767079597382963478306630329696026077064911458233499809718257733689499106042099270558772753530283729981037093634202182008491627732323472159428619254125560583962523238742343423457889619333317664253499987329226670575900893057478601281993255821568721924461506071554436640127975337548445271470523990329649519911967940838490311380705233671043759020640731220514956798984487301750059440786195490078377824617335772184503353827185816998756946022705372963738709300268186186868575792778617779106304210291680741945512152705485404967612727512189954337903145185461828130925644114827989443142219029005783697112484554921583296605519727902413187571325331459476385126544996216246912647149178609283779599796977761224294423445477777307919787602393270542123896672679159607368459845580911305978701008598568389067787491121258180942613023839749335289461812109089690537524175639990953465839201202256999083064020830703324511542983760069674951705120924380807514282536111884373189140256320446458987529977372890011724297535682993056862430339834113846854796306398365921574484361951416379532392755515565722082600141748664969155847607465714247717377976560597981804334006521326972403129732953416796878031977798769923843307939154360923676106443385572132209873667717698532432979929763597942114003306129564453917873727523653375697765546942269276875425691537101496115677649753963270698572571290564560854507392632541076548939841067093571262880434730683587073936233779074485606657718567830065907237245580135308152655959987758425270234834079287148621954025583231807122926057126039157700554522569620827369940111632220944190033582087269249122095961606355447303011882188280142321875103824656139647587655253095475495032235402558514896742372504874976055644227747566784835610793716379335160209044515051161967768919261013754198801331382144349597548659605082515417146126596542095908332436144962004980921012356341187956173857837962227927461129216699923432443034178890895478043277028032897938938128339682799152877283647265757840720912327052620743119581677514277790723543191732594720602029525995651011648939238848168392466317361873611243474498308973717470294756616493281706367279939983565747447608380673198684592008100109738188009484439442717907412017555321072781016934909648775644182754428481333875268132045120260098586429469554994184186894534986209022752466317422295569887396217550205870965517226486317264360761970661265587349017800291038088053248427168841518832915820263172323897359343176590845831329139327273799919478746365295210424122611936851432588966518175858983780180507851901875148351183055579552088279535932445907521089580820455510741153261086005517258842319187068995161077889035002223047808158909666562160625289130332925510294690053249066778226252510433596424910808789784420324546815523399171250250965540665146086608518372948819474735791831126628135796672387641959298074523526615561730450418193130074966593704307651936019734807740533852995993343829825311559808614853818694424066407219841097561922747085597053997071438849117694799248347228122705938797075776488500793540197783775612474788343574809832634439528728862413194433107069145593710240592478572890673145137956618014664106644771859532273874781899040793276332846566293557312426576539916604879319507279169918081509768711079648483153576669750400776773382544985670298435204777741975254746607515292973909466143839532479429893453594426693809658636823270628712789150580058887314014972415367889304256191747846054241035955053719682668228805034926347219191240004646255025744479309381455287598636433824686367564839942149306809153178394295621193879362954162844714350771065146932064632953778338596388010524055166645278569844717918737426306635303331489747726006340488874961989471866878716326985054501531074077954078074634549842315963911523461350851226635990826404352147077894359950052566946486378667872678524304226559916651256812703642041352360212441954373611476414344533452496983067340951694390839807503788659476008240083284426611251674973591192215955286108151798562003945121970665340014489958845566864600627464167599693879205596180445164556958905420740831394654089355688304391009964862867699869679874372734685042659532397841795592294943503335947828077513628569965730965626677343539071867755837991624261701250531323063131098495385261172044423744378204541442197498555489863657862118510201080604109142274969957672875768155492171898131632780428134312019349394160924432439084592191531631519357685530226377240653698839097614221027703733298854307269073897192724442794334353912029273575692613586793864901114800782567334972264222299216881393379319246069473614783817491166624315582719624161574956847748095634763177679409639216446541931476028504693578319818173893957341037152193599420413110458826267381717826885758253801786331436520705320783941916801005244770308943139322908693790122811408119031146030353285397782632291789219361697426103423890207176904283359647871785420180599878707430092395844384939171832288186771178859708070068106184010007576794431687113532614493504276116834838481930962702663037839011290795387868502221607913517974329719334112598111848544282519743273380383280099765609789607067978749950205277856490921158403951908848692303193073193691134265105817605680015240949303586768594524392974569534594881561312471916635259984222190774267201638539201728431232662993658633631426659873233204814306580007588744886791139362368712035949088875872982873978351222657908459441546525514165468666203071190698880235627954947249633036770335459838486282235282482331163376446714934228721785870504830598702336599649386694418883488345718164418983349147445607025694527642075363635167992703360927831322653585472239268434979229220853209450461005184803250572109177819314457262332372380184334701365704813573265847551097566376784646258997175498588187370633641796723675055888646060813196620915235214504045546373121455005649983340360187792776059496532399610438613408028988994192192604670109306806526209758773868220078512728354603298054576353538766799996821968013831723263601754100694829926910050434761445494043241322512679313746776643994166548256323901098194271700587510222645478613280939100127495763617483723485327940431031886380392526864856295312942210123688776101967521040271852748065630294315576278846233700245843104274939430600775894130864018785942943371757663198478557409257307016748885068968133363755753335950310278487242448496948024778635354783324233096633289800205804649034732962949710473268299714081395857262518481309297567896742260797473344521585269684194620476726195379149821573232817659384488672247726875573755262498818227356855669440785858478321784656607894044902975527719116123240486232594659423828467568738314595822975046045649290259306909935631545355945255274841626299818065451032213475397742100004268705931340679370520280128385950926071521709702117325342223305100359810711851848054884753394298641700651256909218631684732475436043742000381240787426187033282352003577672104297813661698921985861247743163633209081439647364877531883605415220403557931304632997708961537350760966866661551964483645275732885119779661126925648682177341133261887442094259295300893834467273627858555374466314323417521033979925148673706376487200901808630150363385223712614410524689547671974369443447889587433314000382267283180030944499568265606887753000816567819516971561137426690437348638091134221261054736312517215171942247541566959048246356432613115531207708804438452834910464895480850905238129236535893179982801816403305210687278253995357498479845717707684676893482898328536753144427607594151286443710580464853333931774498353948469391318673065228822422753350995027190508372405648025825181855605606961525551780161932122744505488851399669622146642982281958542658186041727332768297343416454072914496164604345890191824311464408538134813108610925269104093934213018985336928880952740124968319398163534374336487115050657149464305840510664135201444747434070616204752549153045945075688802194137789062011638447117893309900907477606169525909399960270691243785612181789127684342323696324558296932708833049124383898541681448286728765797332250544608638377847778896620109718792472194063173540617826933385162562877245268394593717695653931707545664977785215433969759042105378264085883133011701857824348231771828595731226311954451744165880579318698992930908184814988836913397875147266568787748350128672697818288371900525100968158572423629458148253105497013511727370935331652990507000511034164399091289309965557225928314375563993922426562907184028368150548316900926932680622711826564029141489386296753513237696909368707736176201949638089855585127367392743621770319357811148482915425206371730700431305342308163319158625006182781161063257896136872936947502756543093663097797989481509107884809568750285535831269607795359092214711786890731231455036101780298345210985737988697359715159255980866235522524908790890051152793164198484546048417955122428820635002629521829893913601762970202416273649981845130665775235636442497664196146192509429649557238921681783663417013105062171553538011314099373122250463741204680168763168901951261490597748035635815586289899593164652624006764938890008184782881192645495762838468573125665946936160783967248686594031574137591995484085018885109761692470346432316806423306506418633042792615572643754555931027933428452152919211205625968503763221194543857570069057490767817130945206160588739162843447747425242890043911164671038402615069534793897450796346598293964436045303702215938398610505461789380173211048035584920500759619959818981590955513139805190762432772301676909449610382734081607440944613188331378407937316537275771283924226600248526895812624760012461944981120308258454261237242357128827194769828252950470472632368299609952956446158573547953144269466209692303471305456546956610850456471851905575230113016614635904000374546667997854349169421171828973590488834446200173933826844588834750695297784743932194780628897198975813080190029956776892383374444334541468125295367909839735324510479502092827931028346326412480799938283052885270598449738863660457703883806215338417694211210148670477091789698007692174925948625147437528908990166109758988976380375263088113331044684445842324468464815136134495541572443239497968825138334108259214155641715932645399385600379657011146821890153162630310122550633957492309035653397458666711038055120049963879323546484544129593801011796705977613109157433681285483522467149501637998031023009766406790420754333530469282660950834542759524993513261645015983078934588316217548421360434787937252273092491164617158151575048536933003136395274541800636700124163584357056416916504749244654055147814747946348628344712551240690667166206599991392062657503202490681672446699984915915973242065978540575064194139116876307558671690319532384642026852956822218911363660917763667330807958379864663952214041629364664960900290526220949174711723132543986090710882730406608363413134622958268637492678913547476019750702756925628486779120177367040893987306022602688117268937124742257909399551439602853868138768805020225617856629588979914185187067503243579496979441916554287432359760911697194937935412418410164261314477541848126194471574445341647888464284061931886057220129596696243267898883454967223412479487987790018535204460330272145773515871541841053014835078421108305618821631111312892035616631737363598226106577412415160341804326546496195561572797640674561251632317981795059567572877615625565819621757328774051811393987358698277443158008742583221437217214687611234716192718026616749702986969522891387465762627013719890787534142834481795375182392388404402465836519272382823980440213502072180059000525551678133705975486983500269348564342289766362841919172181583060012637895546396931867537087337704305333645846259172975868174088500840279188818766146817483375513291547604490805470568828396654504341143084282088305499943792780993187690901208959586551869550278756022430511420820584266562058589955875343681848117188695787169046608921256657670851925243479647210776372360188978604284565123805282902945911688506891046742778608456363230886216345091072247957806786779789840620881199926333991459322442411869657770337471110122992949014293860866441765126719786177274095186218734269094224356162010238787429173500778148086767541451275744919542956674895008178426992041842093440790554211900803392970191832131109689719059339267713456069255597155265957277376025586711384660406396645369858985732742521662246720437594799533139307392248843516275788143483873511469199109937762205967133769550246486583510729725950757503426167126741780843326225467784371596535131136748904570519332013557217803683206849124464844251860387487003543399549193863292701272132923921587246126515015851391864581180588529583384957751787085005332314256825369350421216804586035083152528128840450050499489557618688305342230480254885794713885017440668709468598218911362128279531504642436295238111949613199015679940731786504849011858242829662238634316634108145001184335212536224998402637841688133262779539596352666072238140546029301794506841357084226149178009058394243293498196784936495291194834845633620910232113469000169176017480275367858205157515908169952521745556786814888644313073238744088367869911526849826137670769359161022700580120629009503227271608255997935314613893621288491016110070191642340665841004210444654219816107829111747395747062811719198869934796055419600482797768715301849552408447612247977836646987776480525080725673498478884283598893846428190944262864844348627441482028581327508732614134577946422694895822834201606929233044029890247125208019441186724968515727288248568094856480729671797148047568305984069221851002448170453697523540822009331015159002965003681053048902572180520688342836313545602864436301749347119471867471084681311459641289290417356165334423669888521488589594167492766566402193490236991005610591377837868532648491995659588766082976896580945512836498980779417775298505108118882459604607912469169894294840106147303964597929352098169733063909344174126639505135264723115374700963617945682076530950577817363230362344113708304053701053606212783581734355201418978673644755818250131459428735999807760209437024935573485732098388721619160398919189249698624098993659603922380774548735558404435506647644537451370045421281182733582664889457253754258802181984433866523754964553738113687610350795675661146991400027759831990973371600299897535893731474511004224464969112964707487251768146048981239990445925876131649180610341836180597193134405717507258210835305958264187309547460465220371902591217665574346245761443495098329688677543919773833461914401579135770516833703998386092302502854794360934880916334309902406603299137591229079233084375446116947578906338341203843134659519287307033266220561069488360772855216477222930408465917469659325806238411514880947353490953697134548287899592300331433363080673269014018703893739911091219297575402451109734026204579037521626448910853217778624924534114175178560807838453306670519134727516421912794924231436063008993423832443720104403324408727165274376913192567410334341860790083860144348488713570249955980002628205713032012659778272120439745713062934356111819007742111439374181676375289994574969052761274973551110980310813147766027483315974262327767695849399632219968561492586966806227678395287852115206615701186370365435707906435349410661080210436836377509640649099707765930212269121873637468777958996402469145679273987878187250380245735623531863441631071790463459415275000341373935931796710821899203169326115866708311014281477977318817366023551191492686199683335876344063119111984100583304766186336286730939116505065898144586659761382108790254476427823110249424618307963786251735466286044880283672081506042800251415732966436409646521140578279930113696965071713691113079280221118121256973852786658755980754786090394315922717286258224266500079998964025776784457768792182801871443746750493185675443903930507967278460907437179356870367216748901536798492584988480629541475487051372505873673183570025007720719569114288366721939962402737047935780580280261734623552056684430747691802298568944464159087068149940713122717923741754530262516148580785578199116160894516559476607935625637377316369291211369204794771316047698464259208110604006250994680700337221954332594877855231354229323145472094107401267922880693858499507960097713281992819235903932973419552014863617935297928662547627184482828087984246666311268745088392020700740120382675943750030434197112770952702811403183177837982869229204659831033227318575782027437453922312254668238777730615042279478637350830309685276927990833015817313710167370172491327690025195054844566323069521236886482254154439917613373973046967196876837625905744391378457515723491220296772505799785338349502314411641489246172735920767794681419076317952143391564186157926516297376081848243720538491237254832303472059710311508202758327050639774403050777546816625183536901522052298736604931000469228720627968569674042149789070523694235762663757596244554070541214207371220735886546222291727546513766963990782494448241445286006528094476209492765262490104734828771600631458649486749939167255508169568515663707163499126451873108591045738288921872170899175043837661807263709887733551826752095065286536843205608798703246682834882941841669843387092814466558236828298812698035133554779653975172256654924282583140150305998040593818244638774907889857521420596108958082058759070024564822329823467067736978414642905515894894929543866239930360007862583849688632098638681429535439991332657144752666147923336383829750592576742104399942931057096761773496510622226977570278994077236841491368959008277469453600569278426569503456000240715107962530219210676412628809926879594533000051083261686706162434908903845983395747650431690761346988834091054366487690597511910542303656359415505527840912736050153515523419393755501327379367682351401239987528143650834384036289357130027824109855735653751787556676797822751611186214406226837128032585524068261052522980968486312994373903512717983792424850421176735416321303593892943775501813519701103567097662935722713045377188563329148531344849433972135818148759227483622247150709306413581055211148525358962667095776079171666345601074602068308422934950412203217354917210480259328597963918842427511029390918585652804479306588398382170408421739742959290583097505458759209815862383055786097408650711344776477400962872029147328453381204422343090493900865772418395210477863307819265755482331711435309264728604311028917195972924870450745094894510633081338457587113359630518957902249742826329930004699445398501718798872755635156559907866533956979405655639087194084691561275978409856699028064363493222026269521795575985760488675451184869262774028276679817852693254071971828042810823201451896095043894218992038891589972726083382923209334440476825165531799982348231805907836261672298830621378642100923964786274822260633543872850055862689417205403438085438268580087459763633959620209116848661295121943670723239760364355121675006282773071728954109298375360642347533699260068566757583364899876169703117045806658352383589929070687515186530925677076896620198856577124402618318395202954790691672318023346198381516811822511225899483559698933483393369023442372233641474628565974428740240550127208158918465659992066695193753294978191193317745900421075255344516404419979476677959433785852723075639745566536406055086900917283207717446473129763327111095937180422764466875722911842276299302758158880450873880737938238232273978751158168817341369471112782437742116810653262096219247895561074741916207246876032231670446445087178655723301522111779098844816574832061720129896864102977607266305862498143390186354419964643080526698331713799425194778934137596728050525533338950318515911741891378210489150923356766295214957967995401230829550174585913489523819160008973503925060130352017977458700410856921804797794914271658937423759348084959198420603190899837803956319340026222759430101547543423939714409777567820173253383002527005185930708716081764352720672239543908622872770138122474212266538796784389820125380392968005381177646605898582652320649628207260984877658018706537067952110753700527280393246588488185970334217739219102506296286999596751834075256292411915820729750849602529065344357420462521591804708391649079012738842639666986755212646873985527189838765323671736180171247627895791519446766271970146748308860850603767067397292453752002742709202979536135726224084691427022266167654324232058928860996320924751808087024788865075938394056768638830875378842012050542386824134859735053993526528666123415366469934430991438313334619498545098980575000689984821089711038333378125677091046443607977729164978852114834611770289526846107984842927658449851602980282195748086909633554515755764414644055126583176850881637524014932391871086051280917476797938391042178650281771595638684212047217895696976778409039402597166554773297982577751259668405498471965859325776408059835255940230417917373989006907289857815237890244511226536547052466891905248858312987432412960996385930303224773714017916553410934040815948339297169535750985586579947366680326445923749543751840521684957365516216286850106956012221575992419352099619981302244767551036099308043080402195908891417090226681840072399906176506529690090595970891218201523042751326428838935907346333395522411178392677176687894261948761744092018733311193271762155913012993941305067885337085125856693455293776762873006151749912196808982926234142251254212300064328374627169723719822808003837766552204977928426974748504385054753979133200856250245229426642491771303180418981329016843507627700151707479500889061198748021563731283478022433729234053675722648022597567762215210922981575260569799364240886204654756305024322328680700306428856242012985778162606070693969026916844081737747748166412758971197720944082849686579681550576244080387017860122914660242039949715026335969929959441821238254767318947530922451073461111053679271217764140844691538297899287625025417377883597653308074175515149533174528342116306341487239437446973985358812196595852186737298624321318946793767788912096777135776332458607053541981168516940331657083872621939944507478151889934411831429913585380650270466966022036004566326784222793552396109982237397450381274024463162757901167117200623984252896236742937861742112964577947216041100125106933339820400774900979437905402438201828167816334631125491951532333560838848428002687102814422909310319733415295981728031313160026350585393273752460402077051034943637986882600993094075332708673761887938983057091925489055110144703104130706405910119793541080708216889320725638469223448654962942376317222804676576284037136195809800546877809927607210170974256482762137595901369943805747266728754783366608564651489494483469654648152204753386930078018803344216566745775898609654070206335201767255235243022975224390198027279712102107650818850595514371599083195443333045638116530991764978655534842981976651746221729268706627103860452825029119803613817932183715269154727069708124630688997801505399046285966758948940414345802356299695333333653597537867488230191646156819174084624394303508213508935058916401419854305398327670356233934848430869074252031859074946552822595993822917873498232599619429605351966739077305432770331731688580946121851514286175016495398292385190611521978917470620213922709732783353182839894315764425650956226336031492185559907091862021113953017881158985637104921641490650546941896135963141256579480633481827090303323250600519217219785999474366847525627729750812274469017548016820559948395913916961769178389823922729193604652749239068492221360610947442668908073028207485450121790381012901910139037511821855420149426539599185417201386993316442729193953069364880853953641239293632405316806546919396758013188462875595642822484903133257004110053357761454904437508085400163711274596307352255296316509772748663093020834556365899832645449871464860617123318337179532674530987691547127817696394280486989419240072757411951443045412249697183881348072702848811202638703261026796673866582802103195728270514468087917205968034358137266772458603992925035098489932523631199838359565241097787649941333347021824039680949912266950071556777749440626874927149177904219538188436213869649481988895216370078327765213794660089303796341729011158885984153270510546333638612396897478570590435590503067375461478071505783053983094502379186030614314229269370468270773707596871209108323129366874695276556169184828198998776878124137686331952734575856303092203945514795739032227507531454296230367769171409352593316103613619296722493618631450661752251517508388813754819933160705776785324350479261292019435187699102262393455878982699710052654080147840401364002211991409923539148135532398424678885784005357718170788054568159115671518154728583465407198807071365936677365111825393170674713083745790558895029118123151840781222592761386857877728057348951937096992764210380875588828129920169035808387693184576098288818325007138217978266149637548714679693949405372040867284910209917358492230369319281435897632652321406751656168184744665274997060974166581428751709256112362802417872665717631346166569019250375987230944748875453984952162399259440189521042997307490359039507055666657874400795021148713411245491368914156937552601891888391067645821106112840365666822106680305109595898343155982337469759567764808249328106036654482475776218839437341587310151426814646351693740496074350143594626549274138574318458700625691759532161759788155496265347755217459666973788005906690476409309692071207338541753823446683262066859289151914452164562221139290904774794065072005057958711092162076217204108444872908180164369973626292875510953537484939067594655377026194119641194396388075572390075088291192996063972131959290440091573763019791375042476449045732976434198155786686441869744225248106202630122592339149275139073694172535023597664822674466643619717069796078787680773953491840591158691169041784845674667310983223795051288549234449693837593668329731589695593266339346723655586281593798425477732209420872335408730911757737384422334026126687562449833730873093348735488935894905569209002513710138111918913380051355219048037280691986181148710132946165166096335961749015377839509340092974829859677297726512353424306186662430037863900165712683223901885284444997433700105004374675818245938120791983543305884633353495493827941167157903139425457304126690040767856905146175430723288341840915107371271110551933214863258405437782969215969510489070573682073076786824379155790000029182635715082831650004275902564966208003688735063475611743578396737010892453117426150759286047094106306824037704075222430598153094659632395076647938032928850851667442710760153813921375295450502042243182746103799050755449998211224582123641801799560187314356594587693955390442726082836313799770818672724007224546104636055878537279537461499157021350288626993090296596257782125815908457830026920657782306481737189121539481517001645879072881651365236451600500492591615227449433182744441368071429522019080666721244096721487245427417243119427141253590066789648723852438045617866083881894310030522864875175821159150944962171399127374402054125253156491558591240506357207647449462253038449080657932871395157450967060455302419134275085542322088947358430883308078414390496892228746487529269025146486697865742197587991634540836444484946265311636255874141465380868201509113312637033804008281896763458790034925862582272838994605926621558989850575668711557340128654316547103262491748620505368101460474662959824511659160767041498777704590318358859971725994137883346415419669540855384138218359606965797225016055298774278949504714267459737766910645550937477414697167738981951269528845893348630027722269966917041337497869047546757247514645365547533760565212521645801356345642487722653116839257724710224846745949070627024816842266014769442420693476501754037349123409142158849870786044968764103125192178424750388718244075900000928486680754534784227857948796309632221457672269295456720926364227219516522816825743416035970395567958367093265482907962276022536616818348523644381018053122317145601038062996957653460842284274865702976276471528350439498427608889541542704706496423999312346501938549748669088950532871818295762717386639889727539915865437320113322407927452064753914058290219628746591751123666947714590264697659128060949153320209614265286837421145409979657214497094093912188722327701225207189457385818057317006643083103795136072728291349913515205575980139090307767346708296267354284553313706877641288901951953492603855066724299162874937844211713507626272304657347590929974533194005623402864712642867939546436341864194667526186908845344696067133555919872354988663632900795536005244354810664932060581990917747967858588124760588960960765076833717248050962858167711904414161349588153071565605930433090266022941199317010621133048877780663337544900400579690486811221674402403799812314397560650487958790893601217000936346055942147378641213114916492110326040403644205635192035521476198790108331599291788149139792693684461652845477311637081954147957953777260471138638790408386734113551361938820160391616616847476241112137713246837765328720962967182988391351425456597203436852551351978094279836199458651732664870028967194229040968768792497491218119975512802647228269754588528558337276484966721143055882940433203673993976184339559573882741984282937580457838257021978257804141545934129409311016495122642313512678681049251493779304748685476906423172221216425687213666094558867068547380995423466178874041651505981305432340800254658318310918784781642919872415830330716600846246351534789458359667743095610754340885246805938064095397085437422409183285268194903911205765691947945890445503633754788612804182613913495186487226179193720693951695024798843945676441607981260590883988217530135237317243940383130201742839462115638584469184238723125145814322332015160625288597034148814566235062244410678891742675884219479458395275694841279276519998927382154177190059032331642515173269165626302530938976924956724804801869460564625974353604642927114841286336880336658468620790978588235829910320634775877184444775198528313727023141407833658184166833454146115344317002300758978858737279006263749152025497886930669642132514637976220890109179856269483443486805758409320664187741039569970916929224966265224160592877461920046326155587924322954637566803136398968845063606446261539820488710863835930195119853290351908104672305863247270362477100480503364573689818465560175668669883339819704310019500936186628722301047629961986485669811385602527965968779983405325890343468667134676975939140591041801276777354307906273385101349052758381070303334873852660076195114796105189398433771839186488205048126786387555083026653231554525070113534137071780438224204489392766862043988069510561250664629241880531600039090579901436171848188831066440000060567159821281395283594161601239352545113832211886625306941214558165417898885800734065781089269886902580100532446684798658073172159927296525189763883739492488017691231577582656096744489678230933414304587702138188990884413096036919205758838645350298475628838403853135712749337309474724078433227991626925659615975666437149747907708144112402617730797396205713017713990052678893333211355854540809960115270823923238553463588439925364364966156652557751361043008659788722346470952345068665266327553495702524039796322370155333634735217282957770225704672651850402471410684318786100085924939655397819615481903346904535335443190516142131276193017023794766864956250066685627506391597498068317873465602546964479400784482751204038236176836209911322494020665223778298825704793710752246638344059864605038535201041738443424452555737047665030234910980337668570540438851824016703400612864171366407781271027872147068635701264872338943771080608311194885194130117603596195425098365652866550202743857965659210728207684649607770836635444361789160506192742643546907112290006218127362916244110453628230078118680590454050409790186811328974044500224959504942067410593873269368902819345349417040570075492384290289287915054044185326932928736735957963833037589439595095500397139838745659115347277134329714629207235676759965410370968000649062061460026350687106191131412411594524089783583964924012656256147040060110937466207847866551317823980741281068384133967541761866418759857983664186768616355526938798061525172149741827980329347596902721631345932169619317908227772116364409469256808675711336171908267836624290995317608109463848889752737790000126849736544664891969146838151557132611223379226023629959776952522161935283358031953568094224601406795306600705363773411742784375992521091512051510549706908098582061343765191222784039192287770185529524639318762928207772067944372599042096799158060113894916940673638465937635161855410498230792264369424687228875498180300899385037707889479273415587529779448319020700976466785231279226539182098853354892935384420100135134371817316112833296458109134807103422298327473671554907897126291401158236541196650678822576647840827300788037141490211677203097923819019376697179368976524569547936383857139284436648684027715234069107957833153803025311537000666480737395387032283298267602701130620405010797891960734803492789269559686239499167669194155000163417421358982516524130554197179617723113353571746547560212896141684125276035905759199329551736730883371674114419948302946066608872720588490116696713942408580293467709800937190387924217461055638633827632392492782731576227456547972766218882002865850487348540856556750643151452872153112037210647770269861326189532877059236485484555888657798841498722111148465464565510989099831760867635884194345388883793801982250318907015702182889086284333911072640745378459588251598564632584690310463496568287474755666951856309643833278607876529791439599068385685541408834393968606077185161825077049774037161095011574362227968645476153945662329667081268803776220202148176579833102184982386084382673977112111900531090706889884363257921517671702634506426686910185603163664009576203812053958125580161740361121318953564558431439305762551684967303541052539812235997336808597289852707239168571279961640868312417794093777606758295376397665864302299680461271735159130518740952061184212175043152039520546763095485433122541973700854363193260209122249035479911774947663714941414952815313624004261915837904061672141378004285667089880325902041546869605905657296610758632235306688432661671797776899298057258416462624013502314092439817460643077802400390054461985734462402015029647908650253093444041352992575265896703665128128785065461820882454793197547583147889016706428259654369763240025045993608741292196609550788224675108195997699711827072306881341315947337185895936958308783095990429922204793792463405241779463049222303258885094310418671796907781931269147353475125965873330405411236321318370645046814844532953267094420411910960625756699294781873120531305020045228980323993288377307416392939523083774406207587617665067073089511586453164989346568007177881557969740221981062921335917772132235438153757078890739223016689836314259853808437313515685062398959442675856963014963111096881462491116694117926544653129139442103538188747382157446475674552556775830531396661323969294613977533161865447134384333472015764495353090087198745479958528487996131177599672932773464516958870643852611250919710473994069300606905496011933294519525095593267833492089287373010861732931722907047426683162438438025754830663031473911040317302554927663952642317001536523886273580884585223283287048338686510495525135529209222521117355347117992443357549466648227307085365437778207154383599460756711776378011734793992964712858879432613911776045037904696586420105648300480041164310470510746319789047923316321018392405238382311269013562979807062334443180671978718465303053065590067541887282577836849970401766816735296803297145201150767468144414102509820014530748264944500253739065365084076686291166292912770166164719244878165475046613628345721964086890281007337490850994179557716713068107140814603433031421372670680077574205440322161250290812147951080489070394848052465775572036312078093594657796782914612762429511712728454415287985119702303087349739137467730868585683707932581544985690746027524116787194729261938296579742196526335850370808832719277841357182086189852472886959599011659429872808364346789698479790354981933185207634129967422611542452781527142257691870255661608835869011356758678545342767966529450561437388075785753924266364576925674688474597544405879137511686113804496477768133305707488217526926061326210021537900922338270877140849986295039414519691355910344107248349664866940052119610320495281331868832551405582618624390379518128421123836189620153235329276497960122348106950783062776692837129950209304626897474006741000212318522376984748078053881097890787063502662790310113973898620517576709239001410806139247624732600669995997063187159718315683676590674988587396013487194098951867707437822576414525920855282837301921917323159217262756010938578633795353637638656086967305927060720816654871568929323190067336943572510199095170154399490098066412333693269557651430250796259605925335571361754615129700674293609422631344379459891342435410736670466577501836248398892205870370627573333088268078393508070211418796113626373448551994652644854961613922606518209689360616344425177767687194036747738119619602184791422226025095290217034537059990428512893780652471726415887226622018756981186090280759140353779153222115830462155493025249660378097815974798995999046013807453143197328039776747536028377028781212773401161955492409458143845348304768733726958229375253021136559117186052953763893919343621622916201119566398298507539868433450277940545252341463340397025716439952634293329747100286665390012694292790878000626132159092678382889214289955479602276302653655648966112472712318250425833746309162325401463556658388522428950985200349909854293882109796643894978170480932366911933558495234860140206517205745891048059218216462621163599042318426895657975158664835003249891317152826574463246475624787806359769078427695029125711506098774481444090678597921323554938045965034395862747234366559023321369245983939356178618500513138504020108552570707613745401648260818588073707152448946868974652815508790194199673129680217428690310431621246806964438178445825383580472822975981162755730627717905335574150438584529122295604154670336545009742281975794907522670661411814716032422739014366928789043147246571737680567689963698887190645536099744083308024281400423713330365508990377056931841362329358057901701525381190433165631468262697199548006749601646602820420690872287222100556048878339558737156184768064568744198063213559366418990039728242932851949138943618942667515926872419297308019663688316133671942251969065572702791922516864719424186167460090809000376102217909240509341435013193153250780931271013551224227200131958273733080393926175443867169623945314199725918406363983340794101919479369317665541363306392129374568861255329259579393271383106841623864140289994784220810551419670917453544823249332903601271399878833537801428890629845306450947546426907849795411545919858160790151596624858676483043403524059866176238640595411097835961098863378371427196663431293820586293884418512926104034061275945006904224078593147506943275639640993462584414462579736665075006170017068359557276077754473430878077565975689144404685600743220725360104113836163142349171472983405472690757032330006207224464833043056937292062180046952105603315270272227934073251505289803473741458620975312894318499783564652267615693237229534293618603603283077748895821650692587267840849535579735594417378809433676165039277595043500819279927141693693085508738115199239956660961943773653696045360593786128421831940340704039147717210949064154181873857737219168212107047197705629029036737618286498600655672124531981530234025914842068927426489307675412431949082037863667150242829556918131251151622554934006129411019910833596508626421503097887318354770003036467558830761952977052827413769931955037438702089461440377334941203267321727438352838842768113130371697240008458248396592385633144126811259680509373820274386838795244208952949556571305149617151492194478207945596073721257320986903720852502133844220112506860408564011006764671118653312804378353493614357753474205764298798070393404344520255050204917131199423918798751489199683553368700886664185884782311283174477058357387526535249187539275098487898892523004773744104417854033397732670154126903845506075748251882684913656271400758759837033254319738693139541265759044306065179909628328813732478441132657202075089826969250056460447348241803595174057755945418374499978795139741158588802167341374747132916810677692640705746779354900092564985684333712044841576993934658769326043433917246850864959227355804115934403166380534126212545758460327579381931656095282170797578311756108034552919130452239981061632053978977232596493475022224906343336320315369403332586987721712495862316181199544295000606707115463449314395068720756702340644347509221975064268234761387906404391002983135404423308037732285950263092723409106558556715747208058163160606076741203288511304761936979735205794712068727945640686312529850914941885705988556444970998282196162186058356001237362672229461408217603974285047479872515419313805825624587523038558880320810079960863495481879397638136823676597067774781845731511080669153625055716960726928555417340889845396639896713026948624040639923838445935526009535290274906528776758186645738537155872819488869180108374518312055791194462555967778891795407309417554028649069367841601081562875598296272620327044717905546469259919293610242170964139675059037748588000657389648454774398510297244114618740190276753844304648174330819156304893380109010296914358860367409090067197526463394515870899797854647733835931263804657325992098826029869721157228655573217326614114410981038411251116748919004955542319571479008018497305756131786200131111125995295423031789329320239662377820705327401304718040168445661074448216205504310829633626533527122388742496505303197722455256213250727827247048853203840514204645945117556894936769952206919445023554733839731549680219407889876133193663600281546576705718284707242891828946175893861022658811198614596501857287228880579553595366240433994240659583550202023184576549204614119047740447167330058059297716083776608009218654838383525424279494810719850617540489830685188316293682771655423748498651026750130895157177195221532631558107161293777216236055588293910058422311933998491429233883474598115191022326706131438653289921539580899277359928775701986904083942706112373966731198105184651686616494095914179634912730968869686587104985829140293875120618690801716002857848550562989965989920323628169129526770448335920418964477059953576538278905171768856939229609037143252204876663380093146740494339559880016943654670604802232922768364565153826578182837446640522359826235157330489173789989746611879802163542589126197707957993054092008587266253747533548936319222758056264186445208450564149363011426435077797008429071164835701855280542013479765199729204597707522042715598587458149987410578979328456982762205767645983257575978013320958781733009025665734395062786493222102513299573404565925241189168186364071770390252892891119793585502906553692714294406652441177533868987494071759735512283615664963525698368536006344368589929887755984282539992437236304922717494560531147073912116573067876545393284843363762740627977704626746974459543639204041538594843253847247276009103964739956437124378340467150692513293555216596607216498955639585880454235276030151759759308928338806998854400408791720997226809921250933319483263089248844099386115506962685522625573693953479849888224915108855768841129437787418270972794417903964644150744611548095072172989870556651050363208355458304516323914860390970810402228680930173652535703685491409517174904892938063265983412751788498955701793314927003720485706719380396774387341835744517840746796945283305989648238304538538592655402584477075409875953206448309088214327023436097853310168325248503510501749640356961280949944230409316899080935643396271273931173674571948828405713355647000085581895695322183043349172013802489110613464000759932255499254789776792027452257606297283916965808775597131187255556358341158425202669044197713657407999884021068597933202842474452581919140574038866176642718791457627252750999122945841816293144786017947527082871574500860023027001084060056896150689652931224607284027279527319317925265797529941613298351867676362400995703950974282691917054760818552780467056443850796072712165545234053586131816720726508777550237371718215622958965277551323223841973882560747789830626984747187444398183014531729119518562715732837500473141900077278559461909395701267793003421578364647286969088644360497415816617987678074390378872761053515252865464574032023153978567063142037695240161837614492687816359542563311948061833920253337622268502959515634625546456562330235877474565772222666283752624581111893402909854663133382067773430380330288344733284601973372957285863565673652971946382340832520654223615700669696755425115986160463934995632480561891736142921033865779099549111531079826295718151052836323752825895082152393237350269095050005098367118079745497522005927485469881252886754318123820987003778505478039946940052042631015533506913313565072529759382233522916245717331936626206934641546158326171297711699497548873325482762718635715611679754226513611642774654599936857815357050739861965165222279823057559085034579264017335752199986020598696894792922367421287898397685416884714234825292447794545909780273201019575629034580678250251319072077953864384519341306774747905089673493770797821074264503197613891168160267490630960979246596329668053955790516659635695124208565297316919330356009129205248739056887235307971173468208582744185599170825970121106792738944666023544271539147141960615076784385659515444614209005053200748923797634768160379206793182494197683485023106775291678465498177523703260122204100998997149796501951947653103292172121407734680838792556233753585549668147576105712732070984915868596467612295170725691280499436711755189615209571275817708418950329734317950265408071141538934255168777210045420162528364820841981072575330291200107621827838961041710753199557480349393103162978828363623992611038637717464665453920326442877477318293137273465755094144141334758581149268045490067316628313497358805571409701285376913159417321389601147645074542366495972863877796221617620255329527076812829564388742299678075782246296741357351946282016679573112442556991366436839992207247758235372692333298176796716784763721728310320052746004005872485677798765390833596833684568458636819648024153927093890003765617596545200294765719741762825710488382082173458927933537127650016627706269492130628844250166471854706880936033080315292738833272604202553971295002356251134165987004727210526160003043961595700018863087704709559473988635117575263046410246553368647280817510142942337801184661763963055013613772197024787924785904118318802640200569322139729594883634841565315007337819088426945768118774994326918054014707607869510164094710299504096089966555225566633346356208070336703356902715405080375344819175460394993058333506046008830859645807382025769914869597752483604303245375080132131132834557885594477415514151207979309936438289378913390058714658451292677836335427853644462654192351407234412987737040688200158260668453898495075305762021315692452686400568512699211030939632189978096549097812889160160375271315087851081284748511432082585240249216251244439789239703603459679068166693907651202336792850845521089176286155123871711096473011459251518641866351988881453751609127459281950819779176963383165345900287321243585356783520805016467705955437939908947614873131800149128777393469169703585447354175547048180698161992532737512120571715994706660709058493641284947619001116274288138350319035565031401501335036568343974273245722843878804809316238047635008084104464129880919155994436948559568175966523756272327828211552609802026028275419763961297166720452785688244380480198886921221387223370917132141217657807953913555365725401879678968792781469813521671487369709298721680671794037411780539098757260205304817391534575122374441498803080447454929961346735687893143179215827481603523191276450258493109996765309896984112435917777233478521587931268872258132715910775494377512348248429034584091414768452598594131241057581524506393621552206878430600896651035496903141878065687622324530520188409339803282296182870433285090083813341902725895154101206239138192930928782620113433623503515067911239362605712742091255282372878383548765300247408104512286975572051795272713544624555570614116968849003718460910622156752191169072116714149069126536944353743442611221537739539908337499656737214727596623777710993290323033909616573959891086975466725997781216636660401080511298036915072152737322282352551935593877590664653743043843034838164767164021821556592354829339330801838180897166281323894672302181809333022664455574466567116107706814682362457747664725895721440598578816907304968943297876539521336044446530098512789799047984954375649919946466245079426720435413984611448553840451676785494955111930701602230284685123711990866659219203949627977081329750300358820617949611250151567746594378387875099771703750300091675817480882318933599916427658105406601546837994975080375572855545484100392589210061509594458426836286478307154126187885692524482505888444414621606282579976345695884821655028314021721470566329336844530201197373119625137555477312566601659780426322766363953961457452637381482944984285135811858406136576387667647323838938848199943341265405796125732619180208697647164283601094825741456775599856861542924650570107371516363690833004807863945514587180144130673287367426757396785588553368453291183258124599289641371264591081628382565535502030683855762368334802388657384011523769106807048973008892870488426277370895227775803951118079567580425797402618273592206599091909429612731587019991487020502682747966858104480212104242576929665239400899940667807724460811909270806695475840075837577300118637081569003598157740209036201857759967666825212392060083956269913575059926802123830694099841129388139236053026235978299386141049569162352920756422958174609559283710394039831623415359686120364077373772910203326776175900897569052840237486979703466670618006359777358783616407884638103999265915333190930497693073954275748841343625820070917856296264426841777568371109160455139256669259412796465409077183225955545346596263171046649970675937067715992675594745007608582415727005444554824041683326451032505800794061331207491662322836750832255247152070122890112702761394404534853312451246969977692845003059462144290394798561006380471200647400597678429479643774414867142930813322999281616651765711053434692665788781960420074785813327133336435918203540888544654340465389423836088998717031549818434694957021944119519185227349454267020095640513542592853550936840259401515649530132270795199971750468891347416006981072866100155237203850100641217047362789943921913201052801940981359653833367487922819627359908066357212816584073566069226135810488687923530478927790563210041300014110199044047861611196344522990387165249674396959833006330412454617075560214723721738608847729833971554630358855635483601681113212363793374196157776847671673757296039375767295882160513996421363438544750442361285259158471143875620149522949687976497663632576825904292564972400367779573785571683983939481187174626002703139621368989815953133863383540550481020569012165857169055843340263765611988797217834894630807328314053351042473571817576570471647409742477457829461347556634517570821886707205895457323236568300186472459237012345281646699316436852325208250410251607124316933188913471249259814679252685513134440069837521078870654582026326056445512129081934547900052499097087132906072658858750871569596999122241569787600158489698750579885586948207871960613789036340905665721756997360708791325763661625802843449411978378916499800865427650982405986269391399838157433287482087299072239159314581796179405239783327842953914189456629018083457383154113110653110819445909991806785851863152438538530270774413118960330658810289938151317935696980008136066814355811304292610808554182233410006772576230342938818740180081857022697561598863685050120563101179478825602800370187532561728695476354697346003386302872327693079773194922545265919977136026453676764818720210584670517229541072246685404976407261792589005554028298288627967606425223749813151188884010593523329122028773461901849126406738557497976399477227466953001069233747401037508713250585632566573496857328781743861161018509451801265787987339586791884478376237978753259936552104000226761449274231973925630156134765011954601951321083656062981553304978521689998320832688207770796625212289458454583786449815980213071382063882698611970746013605827119792824250959829643763419092043415688744869155552823690857597580776460896650329994331292484530293737316365051595087595253101352879173323146140538282960637706974806604692496737911034210613197856124464467919570381502271420718746266224570367789515222033475504264507373662961559096350428987575354103928290443560835298963238179268510843043148475011564295029122439633164306396928839345442083134338949931935600588844585171586656061656822383776774674701286760047960980202651760833416620675417462172661118436759205220476698899694440210152589928372361747603272401824566498584908702970724476236946174711228551154602515045213810358656408718849503700977395847242809829011764025514329615578099556237462116154067262470646619780940068852387963995683348811666905245830816017515846168165470445197501872468530132811890780402243124753460297723392199419191475823884469659603883522761603988577338805407771737757020566288045709137749398921502991369307554018404615758874703251647399457882584036751285503193657313780367114893733889261723152871436462108351520175083684397288028881605079186534260101338032226849510274057742943761604634845016926604355573233489530421687333335841901075625119078048142254637392460113314773254766715868616636861048223348127841483521252984019877638778950503596042640147339223815238663285376189825067096656818916439921886479868469229289502579343276312575339472057440485310680230577666168065257225582328872319087717150748425404455509049599898946780493998289342687577553774376195149748380787311324977512995168847369867935779387842489168063896357725808745414734406726636836460655845743480176869423392539889720868032385786616215660405300526766656267406148091461211917453662454899890440248991874796730467639347533514957818559212674743232782573908932412954534468337743339422926279805825366994374836461290687164000626535433376410118571642651939514781392131490344206766297330348946308714459925245548416961657332517097112697900245143075480803487725158209367928909793472938520692108626748589286779386883523057280980703840546207472444674525424114848789039485433937430431832132891035659425925091141025753460024080011805276648833196304272588405077278089514125973487139457558702381400269446029712703874136840652216603717344557016570823164224592853407024311507737702590529336104921837805100784294311573193947842138662028047311049795291327374111158111698566399731618109955885465350557078910627123130021856640690150165966582858994018410502062249804170641270812418658009636138901810665849291225681042155843986951040452961702819550949764145861224660714015642544606659084444427853229725160883265254969518547167716124505972507334083379923833761329892600957190601186239287611737543002231043463238488742177828948630558657621797640998444354188860836753460089958928219161577642681757675709408507001057843985812445360398693198693567234511905711058819885337107006197513527779966352184807819733342505626738905959614393126044885495633989979285832031987802654719219612035576503191419587813512444895710895063410335491367239235833832641094824333714516935960468076615081591256300741209891252432128256006998028963421630064286700253885538632944039500221159850168509987088390470728064925985916551581922155736487568056847062972545165547632198425143822752964844193045046672935777097103583534282418714514318198133196301379909873656306401377043145685061691191908195807894584685145090693872239151027050087197848833659015893491355287076781904494384344261646028240506108158043574470162114234348373970321298037455881892500549701821292267191350184023326728005746144902173210084930746334616600420960486654331361866870902596923703123108431788894207797029489717184417460197280286918680137888692025569033659470961460792982201999673656571160529241475599839900084958276746340639947807044461487513864707177475469297014530265081694213217700124844607984961221808359131928176471877080833000720825996941988401375198454825057628661678603693366477984405716493330406110100251923278705956928181700571865776435332579053593715201223391172865190592776807157204632710758188238486554121893728426648383983896854853225872690196375114473832865301820853356084975120554657252751988782908959271858410336876188418263776604178658334156262354994596688150733268616870326783685664597880510075515787259547464619159753875911978445620148567000230556562721457889360475435661641985051412404144670927755146722476372083350010012879217776945545265290416299256726312787136579679637854766728575338226091156729412437176193205941757804516326064064122593356683532324181578898436624137165249902848752738173650224257325287581469906598487877002149119134695757130370064554672391662333379249590155234287304938855604757799780148496554211300984527819482642048323893462123185599244155518704227263766198512926352168728967300681325649135915485494474457488285362965946487355427694332373708945185211063240563373806261230682760541316509852307124702306456466463976174469824460576442465585264047315469301128636517187464782656047556060286099522434852431007400271533046529833656332877209474631669929009864305259852657181633612516160482698791140877144896748742092633982546734406494151133013722056635067501600890106330533531079524176851249871350738814198807546091504466327116347486216598806419836146683520801554322428184542556305448208144185018505151182811405886454501930335601859758409748453013013619974093994047362039778365448155895845390543177651756960365631783390676192977695464293291440007480166286072442700405115834510993611994590411577187673983886356259679954922176983667417035297748610684163428896076501903844792871772339452566844029213325974476126926038068829126786827691841100912777257877368694840434099144498078806327276742432358752070773922276127770913387365907886068680700730291651387280690088970639806064215949467813731505177898613221948044053528318450567818866675581561086087207696920338944982151826507043265601123045752252019369144708230787288950987746717229989484150466211161288269495505828890807799956468182724989868529170564311498589254456435219571192252837084400039417746126713099889404858218998336148063141608261898923609394215061162890070372079851918302402825278729348000772377431145114131553661446987918659121546354769623193170497178898079475573131457311455615604234529340393883052335216418177243601539739038376721115437389186106681654110530632155449961283862949886478815544491843879026923987046988244560775224973766397161306898205414268305957542485815856629256745992306017911812685197278518013508698404261588114520291783441624831273439842955941404859720871027191394885786779827930395025682934965419448741543126250647572567553954446223992409301964136953608040891234794920708826121723861109348857509541997762751788326325580528612917624870692194003170376932457534260152122246865734240032350185875136564704310706869280902700481172473875088665477547344924920608315145999610069212629496822140824251084856074120550516421689512612671220029287048655971614565140973704896429426639000919048817292096335018741097192755280613250910999417552680582589124745548016741375020197312351029412044322841324313737085903039322483770747629498164583445690654815437193188962783824042854796676226487427164804758982419112646456820296343986301190985478717054657060393673817801109345801829573245321730647880299642392458755431372087734618209457162901538914037453150879905118815592886300126020675924251028142145935815015032181356513353817303668506397338798834755566101967239439892214743407383249600502584418198413736485210960181637726815161487256546871167522125595819336957687748319661210508299478962939978414711383395524354319438620405220600194052029055865854680389400687501874621082203399389472108532227172087046066824103216664120479831525371881468362814824138432819400000426171744048362143961482729279804984806382382684985424768256734263039165463648885457225924194390514258822850535503789564065571418059856950859922977911707931763466822528513516097297315930650162471417469167955505944009451750613592091461582781769586972778170569918091582324681373852966453347111771503184741327028287901373741066353185430211430075296150200964563504274650882003266674035351620960896758179702706243985872351542957059712522259353021884847947804996258159600946238618306325733261887979554846150442902229390122270727695783472866471591430817074575693640716567608389431644053251199757907251981887735852169756594092370651714864489788225584009152992300469383189417424237049489278743624572577735908179789231411067214566742129150501315825729359201485598806299869083211670338163153442057695869958765961352690950803676011584594799751685805864048426450351314184901527285320123473130507765567601383000719138300313509904741488994863515734943318305508662552239780116139428518555999735394677161024438066166392742359484379609173190923876726531728117817399875908508430354462467913964937033848330857148960170509876890405779033991400997480926660902184818721955954670906844977695439773736698593027263677249161990846610931616868921659989796080182392818190335008192348379191536863441851656736132767095157493383324647003396491483319548297203650989000075683467890864302513246163601395862167035573467281737121552222912311571338502315756728094664017856366413157409884638647177017071607520230133306730697658262361934141409691257736515542653007643350252717093543423348433383154504480581825697829305321163354499609938783476448658178531462043108632192737854590788521713151892186285993526081855799228508491733074652946199521210946184827495721928687041803375427160784925453828044330096641905848119395637472550340538608214419925436594795799254826146081222194737568284979821983092103026267066595924560602673221118528407324386752049832295487413158815915696585026548522701038569010063470701807064049773299621017466496276466087418418346285791477656087609073538784421034604767473355336456523505825070717178815740080567674787438246915602226613004018660793481180643663274980375585215907994164235395068705512668761778220773000429349953215475002550603276694489670801688477593325871139683740758747446339456435736396722845014067949428813460412034314966496323647951250527230674479563725363772517311937175668968157007671213617074425629012883208096483526277513175212073345161996282356784391433164953092195416870583182030648168647089199011600609278114549400536764474532673459802363584440900529951774037987098161819879790353212946224812730675134612210831878620562450507695689074832301640602192076720759503346847377381893937098815768435588922836861159919143429963376507980741024367662600120552545394664492007577762123356476082121402163919566586523059783964088896016203330691481575056014003940137794893211553739821327807709482040940463452834207508564577646068223368988316157338912815622964846600903675992496208052505386495085672956216442297518902146247107175825295828091776955742341178815032807672872959736518153753038355286400172618615049397698346433862337262346169750071378048675158829200336851191704571720662391491565809334685585903356228835806802949886500557392497638797522068980481041987947010772291630036665546871677057760636203239146531406029626990599764754790324998146176306334987511954854852377350127403349591119684916100166697982277230377382667745715799351165667028739614989779193119072590184112530937680961011637647104234445099216542768245617054801210338056052595856979410868792602242127375105973735542142444238429380682382487809960352548807409910617911873647320682055107227340851628160849379931626281783419644383384932172397699340196578232270559319254883583746135826524066443347214008929763525112704695014315201501842112737994495073249774639604300617286878480962292349630834244844742413870340370246423804943760489638821891456960848518661562155428340101707308669442628634981937575962195274589161157415234619740192831262541639548865047464722317701064640239081432157309402911261952019808649853411000344739149881081694971166349332733545756711374543301318023065825371768066876859414424192838870041360086567400700225883582404485244145377254883251736058702430988823894342963856281733371586065570124403021254786503092904889470869602028117487869128326129795910526179383426877702717116596633434257776923649044586438665596517875363641893090463021762560895094299805373870964085611651296434169306381056765350419150228679239430127486173023392662672058587189072828722575148794490344362093718827961914487986296392466499316036747948404204709705563236265404509906581343720776810881928500290774890170977131180113582852796760515282934130548107600648131889918575347912227708308839719896207659839424492356725571269676593648659183771804932032643851303496269911156299043357922597793938476567341001970868976902849033163739776441084863268808579786338291393798021929853266178815669102848759861538709566331913164300357066357873352551011682021508779418263284245958174643392491725263514045529385849589599052966730683887627406412607840293448885505849842503333381804288761489886347560135641949269321148182070378323506784396117706181377826157473479490138342442719587726207870226897459095150758861343555062264021785622014188917185712917791023263602256994338822002780562556996914416891413475744964450953150105321354837282681308098439797292296967128429241357419783919753832149983609683716721876797181916105039119991941069584773654845962557379028780589849265430358859752252640881747257986037508756323862017002068256189839369793695549681467300221911691859179457455357498116958014768098928110029271388503294235871146041138950243672379478929050297823588793526910017671941080854097545499569492394712310015126759078130513035026488555303605523951344388758632094383365366893599343794626225647469231893375277947737022206979883624369534912780210809129083240699740190290794459540484026261358805438229466563775484505341142317443859458004503573060912193728023199558235563182295762944983794991037494591030598430708590941645991781412063774097155831321944922028641431691179537963752459157068354175039941407084448106827852973360637064060608178107668411084042929372971219711557393434667244943918083723643928438460113627428152935999028587563516853501371676973182220844012959062489669180563932643584934110152309969298382868322578851927334557982309642063964268767891327770705359811163391342698836008255315905840035244401039801155710018307036038136650283225316280429779133737716680511232727356063227376881609340746251102366663809064819771732447101003322636907152195005756602417260491255681169641293347859463434606029897985385246192252232240888456463996373101496895684857485191557571222149965869635877480761466482143702242268674815609673888299117799818274466590353929591619768198297941676416818659576974655757976660917737301963248283476265450206812689974187948713445713015907239959462197365454039660881275214887001038816365266670576512190776652467038674173216398702149425992246160399836739144365015985343710870872530747614138283974862989098085915286483608756979585945199090277003416805103409714106483781447727211406105974675194053216675888579624676369512737593396402838902508654675072283287296529774608945366711595681979462377666925278192408890654328916995256652354224898609829602095645952312192421285518770903383651289213948350930144177701373102538230508466717876914111796694635832361942403074890468466380422030079744984978129200510394453718264514456382416292573291137460293231869754381848094393438713368037717940322006009105298322069826190111875625513174193412604555128983466238030302510098273998783774496459648001206242867288826582754896845212355193145810991862021304879260147122267208863392892995521794862617630942538601424668375886557908342841737855246502001549713253451097185900454385357477638634440179700734460857593455936029454019702930334271681562552004935141740191192090672079961827674793161145156573811327944141828560100413270474404410892292849804048115108791768657251123282775822384334618142427977156591708391078439993568548477868231751042255466757328090372353090310980649333498991225466978177120800423909995244223541228990883956694011602579407114947416030046042406180276062155407590644103233062407438040205114350830631560485817906365026228319854722236495753751837092216547179611612378472071716863100418684974111039298013471529116748234755624320270429924649564606457847193241585055483972801873959242218476810938379580691573398563125684661074590289857986178043508174821731285796614753268857701236451621683593122739361790363404839580392427201429099356632739505921462378614798015574136580077021070373849144960849125032122256238133580124518605340261248308576006193338749477358889479131214706812161692547841791927819216919309412861549144820914053297743385231763196306326011327631251705589005475291451301270383620581145348950979941045575879022566047547599447329650312230241351582286328208234763009154416760865877836139981675094112109305448485713456699849270631145437190879522646415486875329196088536086436167788107000859377583864487287228399385214619628746848655937733022631269729784756709386074488984806951761826395386398574661192232142308870537809316236757684921974705758431883838964516637265601901868595031622983077381160199572782541027968821005195697464108826654370405564221146832491738944898297810017116362570633557320812774069193780056812006550199277879169379829237394884435315757172114765124280557023933487582545325369130301480107901592304844285515851143105047394548644237365024942668158882253433503451642530765606998511785712159199326059676430504049610893802498938986355822715238075295768265008899626621920824560215384830518944038609536995690703449298253920317539691830180323945565863692062830437617589952567477680793446682956454903591047633046962232034400785848675186750117873174433323962880336804806065887417322141753589265485319617643185165032409713072192918090184384577048775197522497454305820389420027869565887318847036922646451048040273806880762362395739979521836122955897863430745232292482397053059815276222959397815217222619615571379550883510122742956771127665569485336297168435686385771288500611996243675654851424726638346582920297211420445893889499156717467472785749859977613564856947240016315336066018515711939459252184264913059362529043607487849889576284580084051397639666749057987271185606595463638386750137479494674962144242738962511923533551583209479462386638900319601097823740629772620098075933287567619245655546525658865264895339311737510453317927888331616749999386292701041216959428902715458669573114622422024383040720293601890729883819379080742368955945949953416311003730573395728553384283356778932830594457027793985259242729286911211780702401147940842428063866207125731518227863345638160323142769095122348029587342971377949792312530207973023888706626720122838378477761387755030967629175425246392491379717464440413176491638739518565708133404128557303243920936734486986128184867334977147113761761248900941151529886702241446054472476315486103137132080421633814468499989361811394694194070806546617882636981134189339653827703126613153287635635615595245168385660670852388576468515797690679041388816868638488797141234143655403732991408343162424081339806228772706992199300698227966283443052765498586244767895379517070742645706910490618512996935007056657029930002879656815678720313992002743873777625156214280873368136904619006305262206912534997792688382428018452157365490914499862630091892818960644280460482539497958479665357788509153823319171446516945303804361375524003070205202049154069705504227753339587163122330875929449671193404253690924387895522973491217695499582064210550929178732393831252833153635760175330599607456033617474411081999053650528673349047658786518797461732191619238779341774941050584412225769084065267228813684835683131588775981714349512332697284759407993342437248183821233298753133068962092922388653623894879784819498121664011289821348898731614924765669827851179212914185918624167930951625166109116063201301847097358507156518299011632712700790475884574527588670830073153705126936639939769830926208994549516105740797031582345921387004457266339260909301273402718339222336775954712820576249206600055944015389505558486068720850361413622060924085842917846709206801246304276989625108458357975030169098024629299116511940437257556334292784511505344775150776122103258848063559633617248657594205405115379596208245437194001373762312873922890777814458584785851251338447199726843485334898000777729515411628211320211929827128153683738248266758200660189591636561998675895585961380575561990651349766535676287765312424378065323874142834609704366582014939893253542641912715257709076615086886121981754600255381725960767641337283821986860896554605948898514694333116612034830434788664371755358505474524333917879171388575755112006995041406954739295220842472132261717097177484949681607069729049874762055156266222030169374584050849689323939941499789006660681478593805664293404909711385062653868612559229811500585004565717932621085491871232129918080095860948353581182282111593012235084681343770115022186354002951932386860027808625742809581635957311833751971195151293825863895186343917821823195166056402510574487047041188025220153757676588141694225844396854619435558820293081494293756424202892510370316454871204318040477451243948942666243454421486835369964448149968098518586962832262788463638932233626845168418755248516975164111248679029076290156439136986181899309466925191148216326816416904034392213166026819700915030073284683685181066385060217635209446839538802324055556688689103481895010397934797588797204080496367932773738132359343365660238723714454029016148677458891044259546095383157334182075462891607391020424969512414210089984407488834548060072574573295177907836648506184942453445541574242851930687538459947718126809752706285476197625339114615551074885243790792709216418974888733068538160310385940117281961515438164532676227489221531237237759910376854376413880927261731311438049518369694383612439082725189205332327069145496291467415046313714085329069629207327001408919768598040049527370362802583922011085504506797067361886840656426751906213597216638109424419480198942138186965944115020488135303942243139902650374503051807703137849483264304298729490205727137510825947073776326918790572944541042204725572644362644995496264043150840452424811196832418473757727378531969436119623416702083159967473347296271494423602441614252606332465376497445227766027988665532945438271463410937427069173090222034702873471520067461676286312995530376503519680618397783085676036513554374761563535156728151955430647168702757363526409271412076809583004382169272372503797393115827392623837231409257903810734556521813636631399293380747536271091815857422281226330277106693336981469769435079177928601089546831851840451690886207089740822543411747416375687067981166017198762037213773915867839779378051658867047745686986495935579830826867027561094904616253523547167462003474924146829257446170201507266466744232637002853064503187545520286668574305406368885856218564575098257923943215954425841538771373949957486995727987249680606690590031575008364407701057656816208601498229677132503924819178778836920486859202811008469260451548445014368818317387483008785002286960579496649631045312972582205482035394023797305194683284367134298390515355721721822906331436076574002213353653894666595152390546586171315171006003415404229872938262107811964763877292276607559585747881880153460759205277796195846946165618493630038154498567529428710960157847838875751472161498699287532627615326714119412004968322628353133148847386774555133042483237692176009352837332434475254959167468929411710667266122423787459706281714398209097411119633272055481716755077390983130042264766022199415679863631739245116077745864494019439241703867715974125047723048823870061020591184329559037092292319482163244194566588049735634405498776775226980112101104778568688322951534198077363487295341007601107007822581221402115752672186513469996067880269508079619708118793308986946115301354038240322037543456450272575208829604849591639289058366887444558170150117186983571923516997893697387930127030531417043470641241403162678820587890267461443934640752151826904951552232880202776993632390204852176560979202447538366758437258830305181163177636707498431529167994750816351167656098361587924418369738089252250348431955587171918981791078111995674105676886289695599982084015747830050115026562148714075260771836030863839209502322786119563207511728584114289330998370113974314117094053407425905204057753814470170247440084060816748554229611461136594517927983932025668555080041171808956784750620135345905880641726411930559261392752482322552999487982408554639284134074557682887144692703997060353149352033293030611473679510366328475884700323649504501369813332406476623561223848008241525991416191326764465727417859101568673088009911455136271254753899668064895911081553201275783465405596121292164965927730802553308966658614321485205625733273620447817465467599914964780957310402790114594111286584334939988414324471843898271992196588318101398746131235741863189824015542231640296288421041812504982392299980860298073624902675512974816694251880451296293203784931040701249336752076349606398776462054943410121352451118390146507690718403136901903448761780849435527227674580398156155054101207406314620329383797234937082639359195673606280490645328654951771844437388527610426626174113313374928490114146940037982486092417383002756911607332740753973539234692302916523603893144268317608926816625120835133329903073038531344497584135673690561699564722442717348389918881481619920281605778739498684863768219918703072905220939520090578420935048311257939301156188371238700614229206666937311207904528023665638223820530990455387525767297873772279631658538017607286861288293542278762693306215376911944311426188158084576764543664833044160655805767208120369985173044351388669101324441233030309063368081500737932885929437288284707181820525156268777499925630938326326845431949266227646531281014567736379538665154015457451261174567781300406812172381664725878771562473191823945810403329033545428432331516630391718529927040895810576296491309762516282927593198955772994140048666974716114570683592265158848873852252954353498240460229644731913955575796551998068250147303952954105636814551553254186475738808870858676174838653222671108140381174806686189990791256927949453712609441596996383191415717442959835501836111933298172007742093457565698462576238856788384555204212596363049465768395250559871380712360921596234141345948341652751263546245690594808142519994929880894230392223991264103552344486513866663871909139325335030355762691334253165544575885640397853607338043353202130719044023831131748748308838712742924877603031311117818026534663745696251353644260556236252454314557433190273441142242262224714737303858561668768127007782939501173430296811729279159766931627338851983916119785964415736145028887458186401867899135162409896769162015589775155104660350540050433135555469764340188646817220971113648861008826568993505810113788372514953401698063082259300250788387877742334880255911271729339588404910509472363999104890420194322649705515915789769456892699983354220408188809615727884151129341571171618212355161573390181202110758650513038252445451382080556686213058564126307089183635724203931144217406346049654769247526638087875460900673554694425371596352981814366596405139473318695782277699882017396092393172575422448938638482575483075389828398514206464897990137048194483128390775526760909265675915164086392565264571747545249933518001198682339387347042551556748022413011444325897000163599876462489335006159880117614998282043490299262370900498550479630596540134806515841192168536134368995069653205007761996135857639773899614735766686893240416424446052385041591979686439893904474177287611248383995241350763459599146526151769486120790409706014173582100477071536326112071490403075188422455904174800877980631505419126531784930117650746445474646013232385351479825459104117818617990926895047396242368618912480322063786488472874764743087405829225285985860958420305580389552938492021767921658403376205410130771312088883911411184766865265153625856823745395843698814847025238878633822376203454219776029632485432605117196571759308544601406922811639539715224515230914503517038545732680700776746248007356045358516728775777136952062170667939013106363556729693816201569439169757803881698062917791333490853398469011782668440411715725808645852683021541467092576348547217307450784393372422721075461124791276755260042314608108454669012467318974266682883384107463949879408267879053224219320763698608031684696572032346647696816183894589006250187039032108636172716502916824918493948379713277082162693684326591581721948496247172080599205247303693437784059372176596830442840471127170691167962001572667333230555182716141455869332556420390851396235864667455002837728129392693135175077151221056241956458438178299600761237681155445684430996731904752060538518525084067349666681014677982861920944812477815929351961675879418881676134669554746921973834950776831961341174784369720483545758020723391488429506831936109121333109623452950165257417751968514957534252221477488801383179134075219219153546733274377321599585800680774376946693876374017490388139588495071578168356593665773409282873659292689405956577359396955956432484083014141476435621563517132729690219417055019538540198630031245580293906835744483083665521868051298426799180124795348816147513050553795714622450161127719227178503375082693184202183682697135935866375248927660921702088783405095052340366963417593351431666419747583654185543770540360605014946931557976013330236125582800234686286810909447612710824347740318972508557352187353286371359003269031549322374734105416906051033177337808047522546175616877540332579713318604899281948669234856008717182945076298213951771246049523328951914654731533692723701277860511151279156897722541403325694374959742328070854181954443655409827846486986340361281166185152548789678833587958674118537629526909280796708159951574578006486631475809629528827939123842314826222886295505723624763925425773890771314101557732747971669230957985746502264659606840290634044825308057465337344622631834095302840634145953475787130422926500537476234059552653667860841362203419467679450555180801735391380724788142619753471051628749573064849993429111893857677694587142198845708334025932878384426862446261484154985837893533054398502589618383017189396822047567188102842002764895077291254338934138587101515095229978899921479168251151991730326025614294172359906647459837051846336949340202513325086471374351083590450660673049620811786540277788454240789445421976627058717545627107894900377454143877021638182409141360803856740654712247731257907670172119262200719355309271046628176651919419667015710714161100638883792470491131375794711009838850441902845086610373895343146236582000080009095169781498087137251698717253055991102194021878906598258017895701293231005845151333284760994801942939683983713841450121354119149581733377959070311841970228586786728725011194610969717158318636928848973375942338768001118453538503332566887526811071992208210043706824363929665109491624876332486220900018822728979264382173336534426030754335408357371686120201730141874901364313587093709448823875019109589886716277002216521080396630558390531592840070716149548994028625214466998380896541882666869942612680296055066982367095436478255397610543469255228734625197379174071762577657322589517818247840353115241194954181733050249959680923565620440786277428648607758322495067378293175702174665958708164753003883494909327613971765223361836754462490072320720024724808214524969324363160260879317073483828782257461430897331196256738777181234701602238753417995088449512118686131489539708571614881950170750814299688610219656017420344231790515906979623757908251678497754719542363373454622920892441655909009820806787986979996048293962564360471359357268224817287281756472821036409772440085470335401858324646847756181910139908805623494588729061872540302052816698209601239814465630731128680893051537386847951681739988013300891020554813651977488198893046978007252615379727893792789517547005549169151033756298752525708984745143179992565628986233339096557547322372263866612316008906817541850140631749169647614463616248364400364335221600102048346042619383843448897734035379508227350569385011148929094825551906824556386779048443961441683199207279179830884612803163785536287243873046469228139434661088729017306746452228610383163710054500516273373911535259032538475484967628118031306494774345899166333808612654105935980637679162464177004060733564799536023772256789827551608783985748503607239496395225191472686875339854875835076946943590322020425521184459654711752737396282231695511944039113061546850121363663437785288274458974843948689533356801869106149201268359289014146527534565827920793541237462699805238947356414339447831090138318798689101691184455698464099194023603060933346071561045126830468839672912387019367753845967286245594467183487980040275484466951507326811490146323817435555147698127238672931929252115725625508173698307380692968499057372204546729474401933166969324222783931303321297405223498182290477668325905332617797984700530938333964071676605559252666612194506905540558947311750118764635916841656912761018026058243705053771122906987549806301650019592020941244624912275087847663117417282763265710466248661541915272586836599395602071932701940238339502295354714988653367675527505852968304059390045823521859896416889259994701637034416901905909757817543414514823310525872898422817129829669145981620664982328081764947040471605647091100089674200792864262033911484356914118960573953876292218137270000427126890737838492074633504892799978625538146921315767036000035035586755210083558425261683078720290986443960837104571853022724303400406136760526109980448025721905204352901400431356047127556627445560816667659076790297096860268445397670081910072788322314014791945412879513030589349219109016051412206131856799670365392948148039427578568927408395144327180074208804289237600889155878321205414975482817117606229895620031007503666620332654647205032409679216809923367325456984875045473141426713099412206705115514776889257540905917882635299190547795934160454594810932622060372398216743903249345204287076368934373613870598569307625806290210873148835786683625142951067908946358675358646156377790029121994293772125646664201810797629813277318804252583176839924637010748389488161369870542013512243795785102670330193483748001022132266800586408657996628639081727970761700565515401080206597650370607655621242445769281173516645046753888108869816634309437328089054425219871847905675854820253076310804052724012928247779102700521613529534761216515683659221234690364540506162086735015756604878876119639008332228421592390032319844062346288794539325162165787245791173250578620795440449070290786987271179759644321240649000572679397585841394540287186008451611239625741202701850779523206210693577081381438367883465260031977420785663441580171924016391138691702037695125192366218832179200047799113493989591983889957325213707393708425999998900915371510869016382596422575850588901485709119865683774518805481206237319949994873057669900107494951106074231041457878010663018129522177764284282159566064997788059229292063551433536577249807736514066816187820403727923264706295972380574293596133833247985003332176802148075314094107209047097076482428705891573689154605489527724727414367974558312644700348120242943796390119193932960381725077864610531241999017689531569429614720151425429777942292998425230675005776694223482137857206024001989107050406336168689707854000961918199332107838731778457967082759710014189101492819677926083225031807383571119184453063081651840514313476880767435785908147970134592795272865605086385504776302221027445958726862579032048969556353059731619983080428761806223645254021240797274161900808042858563007732682733754344097844540444794124678761943763631022816172510156560412101119367898392695442249215162542336979702033333071151133595865978530825898825716192423603615784558699918356374765868316011826016862563724722711207737100024459719107042605635819413896305228104367872762157948204144607643969691706393559551194496874211587665727641058079374719511998593328471252907930812587990200532355486952515428717718026868132109765187037410809809186916065495203278552343982055025482756612907465099290877076353264914963630730967346326181114956883570298660739792698079649274740441186841106364245144332642995253705573382978067796398775557666307226256187154601026642435883758613748330497423828465857949897499955570050298950706976323744896059611774566775932946531812778742899866248477061131662591829848349222303645343375577688849371910275245126434702082503334541030484429958713898961181089361807594622786957936353811299092201841501568905510682099184665095075108344741672376889625295599938476694385736314459446898572730527194307115492981443809271513349318143692456160358763938147938525330483250768037849928305607377764702711196940361850327103678980213359604969742440924031531382389361723275286392090724937843190948175616443341259483659287306009214484382366521403672959071350069139150909651422980495142445504162562846173287075246925970548266385952672739086735147297371553125837934028189516239407397121306435890908923711914888626978495698516652578149360958667484863581158035164539308848332274549042428971571755284073381844003204123502736891150968158778713046758334192526924326097313640820812080359299369365906813932308654916216694153530740615940983238089567890589522514065453166756953963922962134122838353243841966669980055346316527392109891456688090102979583102925313825290167681353687277907394534205046869136260082767444262810906779177549653375991263807103304734468248677667933093499164610785556996468817232431256172899548908718045741150009309558040649328955997283364761346301786490594937365845764416778285346487667612803497527811258874354199063217736331604819506776781497241305423477233197301411494376310479025780930923704864321808649300812234994230533095498772088532610806770381700564793675804282239259188386697598861372315745460929533082439998218628530475029949251878802452576095095956307062092206353188752979640521017284316351249685314231039657453947528384884902910648567998536600796555110000085950704676729038842138960232583529783980508252906572224778212321983660821402096975212535027428724496390796288934872218939946213822974946303949482473722611507443441510106657884014318486284785226255465579992497848724054511322151562955800192672599814913475491026102650075947313462882347074161066372906760850677161379354728925821897589794818034983853734791059450581485365413621339760538395303656367779598825486307806224837345944727530012844263624741456548610470957928817608099091482521680171650059433069548903118224893571736109364763706055386576318246490426095856548489977771197262776289181098586044489833128287898234896661414006373182133326760745978101729803122309543763193569695015897458073832734682320861693206167283200045411068503814649387563456811273615013645677773962432446280053674144047283650172461865503885220766158807113171878964131379823049123710001442084493660468427765440726274240421577291878878078547660216971039767742329658473198081469819422719267727066376616046511729864448006906069884089046063170601392391990582043129863809168200688953279878171208155237318298583114772522241645821588325173052204370990288471469391472002245713975724931706405455025564783150453169045534419000140912145461374886355497125963430991067518941279597995354914937096426094485719570508263011274789373578196877548795681455547826223663810345470951731713253894935576511292499714263203074344284187872043570622522286418414054887855335034685693404420367738834411866085455121264942701671136883078712452399648840575528032253509179425788355246390908447805093885128906172361078140413507718263485798452365212959818210278109706111192608487459031311447774419020120235802916730173993283239782651523766012555454337296163009518335267464860245818579536866315506535301791557059345936042504598029020052551497855894892903828385370354422342804847262803633927197538724146723877557361893796433088273205961346302503197270385608045785151164166616264315230303149899155742238784886094890649431047675738911077220494025747781703829666359213521159203564539330028944705980916403619512848452870219136695802822962865478335724112123562064217037045196717837062233581835114303360662939251456754366119897568550797412102623383209676445976739133136519431451015550039355970241563781871857275969970793267250959137453136655221193711218679564571764253475425649099585954155287986521087431157331050036873148706569127505139486475444724775984522527448397047710173035898821173486912627720925392506136580625921371444666277873450262870379926878244476845762183068749354281305782627863421802018984430126570538499479275968368026302466637205954653243428595473036888271846525608290679930395892405178245983460605687306378627505064239992805468906990957684206447634328006534809818283587148005682843906981325890961815553231679565438578009756062241577306977752706227477526908348310162774375978048838096244470261597668821859506580885349899658104813720938251334472652256092831028217103218521131102644998627098353735010565872705108316635393586614293097388667769784335070468857232602577099331740814549760527952876553443796674763799836285733695611710989362084803970494236752666469531814777544752958543642828477809319756194015951702027910483917188286986076077427389105480032164686412007137129570229970149039322463928350185906430595414708758531095557565761007192032139589458033133965878327403556153252863878509723383628748569824997057767643605595433666744440586919178400151403774691315954177295483453663364770247611517292224274825042183985615811633947064442445349663951719293699115618421304585813984514052850283684461413886867494335126289688738732382709272785810117945217239475672247739825460914784625319800991641544532886927731565505266418320969332650620244080440133830152492370932853107875597566371638106409307290311716503687113189508245034706437877242338290520134831065855609532228395726447209837614897359839683799683644887898110153629514613230640667288868748964439112168688447292174179422438217982332026870261005156035537446028851916423606251964581819352603760820134642833162559328699288394039625996543263415925344308061306340817949687232963386273020607779877740175195376149909542368813779314267808195645588400848646119456269169818148526411524408465815748828341388519706133972037438132777979474694345202521087962246215054781824036537111586971097859588861619688149159384267922787328033212568494659809663887379642999863001781125279883488340246373175947827051347181776836362291750131423992547233259855600364539418222226234079144647972175955091315660377451684154217559036967973541987970150959472699157030261202917170499116094335483279642225431546319067134985395038262691582407473030421922868551352922243881234337745146934891696216619271633793658780345647277672548276438351645581316388019855589516128477708232765313236383518469836410559644453274885552736118361242699468473219652661782883021505500196711605637172808587354869952198789894113705931623344589256049356857665696079052827627061221652896287867413410854960589810556915268973831125343335937736907092708292147072470483406785130741903501455549105553744093695730652856443680601829942994815291723845828694708519857885205052277000360587577045117999375191692712874842311070058353408193689986546158272863983723576160877508353207996230790139401280804831212238484411868646138071102618633560725843989711102471506787580784188864507918506114918061597483176668097150829446338941549662940327892312477583861681430910125296219515550842020601031974566609630643922965941235599450757922585832182944730749114558661720500096961938032570030803224807500272819246542291309034519452390365299779011248652450813175470401929897869714844294116553856351772395974101959687944968026186945743179748490532503963090140321563625442741035089300823466357615987519724827759790160725658107610838413863601190048528942704051468145214942011370691741757403477931855773333192466533514510807959552693413314031231934305758887634927750969418404620979266792041961038980002126940489614097919322890525465534734082683744082523994695633798389406706120143768378266802798021270494858277316402838847865581911804325079403446381275702911474596383345919350986231453399943867765249668965872049192801337958438468352968110890474733460845754867990089362751967754154394203840351604661770120835131139730397520341210233507718184701835500286194961310552498437060149110854411936867582072234437109563987987146161422401776194115942185607686078971353471645782102369515556972555776546345039417084291045891966732709256780099694816036699642589591692911603663050240531392222493172133542631083109061574974834608077648285764832935785727263966261162354904480584485402893948046940448357573701346675778309340756777274238653341000267939964582024650090725330605062664954759613481126739859507038518930067457478066655327607324747627579163462570782052203528470695559038915327864108732427646526073688106394928141867896383298756745955411360219754518050674149226491551199163466866328515242570390019847523198834966018995567978461587440816933678189282079289280632359394820221443899096774847532643814163671150327857860191350791873580215480232620148557471457389544369523793284155361103143727578571315101701760453294731823118091329623457078927703378017350527000892562710838308878662057548845237357856719135621793839638641970166809566739424961338924689472946276454918931611446959750387617769331451753332236774069313750873739138039515698760740112004395912402569276639011940909689085559841883383104796557785938712904869018185481295449524991039586651633354283677583845573390871952445286205401386764085793427935667471818544179500163422434131457687456259495889506638801820019034245972730467331034810139634150492335240931567606898468985746450169606962663936596125899286726642857655779990947499270093182164579045963647973677939317283816281898858556139580177950854279124048508034956980979114346397235035532510711456368293207552532762886958949930273110232903042665170644410370953370805375250745224930085497005610128216887369201432714979103154728868711181447337919494979580997871550367873738460419612770831319345956900304947563175923562792050371631406440241061981066471096475168979293431456633481746319066278098769850154842010246376952071548684033904315193208934250923412265630684931138332667857643932008705571342917297464388135995207164594599118343752478664474744498347466564732643719910326143024304734302671706610841650211968517836600780905575769109156890707414687589015838039930678850716157468900752054047626364026386885567859509956152805613850698978488239603904163581650545340406252114344444073543655659481411054441614506577544183624569019906017666660371543826426299007533903543849884983336780568267942007409497397241547369217275997416791624082750436991747366248656965271584742295866214242116694563175906659106969891257566333371292278535194091340170880984211952117773805420351062681471786951136397141103991370426695176344005987610392314435802095044405369713908303096573056029749922166452001699005771310362095123189098488133845368115678657696937511194399862014571815529402514096249998533732775672646850757941105932993557512091608405551292796106104363953182802544017569769102494286017577573595220637877462446457017005990545996309973123303729459784135449938334769350028564246765122416109116141363732247518096602377684410959385952476264912605496579602929679899434555424426491179274267824556764817853819623046944633537093802924683591838118446106979057280426813756968433123720478177758939148407885161657051263336413772066885923201354845005008509736434218599605809450781787964713259093301661693177867277214687702140294948092460316552608951265125485456516508757170814194265802496677843846227126389630203518240600856078308185506807528890032134077587241094336391586638291395078509225890693941106234778143270896334690863645745411604707448517708030879493144851427769345616612963369755616318316728263107073506047042367645241462941008874877653088862167411835539531331526234412572303251043539822800416565515357025048689686907178116005018717612404053306259863978639999194838277549932569375250429902380722985892758074583064086106552562536592723274881726093259221662196629557560243925643705186887322207070492680376550393746179140831965935269757599828103319530523957307626140378083278170736020152345757748380398935458745611173851940449969600169159736513338125856778739820119945419332206377429732070475752779605236200532879991482366275814187668701128048002564877555118456426794881394125678733820659524424114251861203250697654933179045054900927004439009020877624701154207683087103178514681910400937055999758162499249263933744460834455613463597173182586287830355910793675113168153194253823653568085244170518283732692850966466521415988104651010396651862819985791376576194970907320222010736406629303058194006764774752682055300984608401630612317574126875643804893541401982574278674140849956216881102307483636826905102058096257716492684106092544604474555603902725553114856128417595249829251799863529139443377963463756016072644976307714886038645892128662155100755582459987829323841560058952671976386419211095869878028442903896752424589333040672145110183547220472534108753550125267244630762561765083031394012695218853336188684557100792856995406578233337070252989878970458727232138323629951607440290758615880261372382263596736530134925728636600964366438596448770296356431338483209634416343916077474368851132084627103661151567352626034366880973529534934472093199348030107693450496908356772703640132257406492000813763329372316557743068025906455831336773851149738757936326528856619195433107355816950457584062867815807424772446278352828604666532442348311503227982109649530138272050742910391723713139048050361932613348598849976325419539373111149585847125732894653106565802650879030321487036791410339684571167620452747576402869509008983777030155818430999171340963916819896375943818108026014483182734851149610708371686866330937960562309289498909483121798291918824607821805420470027453849996308846254473145521743759966545681455791443881103037388860725263710442395531603010385256641545927327971879257580300589794567347548388687568682516770008257912932142937687218053182507646647798379419151550071784557947779740806066726639609424949604736281242432349537948325252979933183218411235877640818615121420858545845373475701472911672403295418398917244723858296655831687537234958538036493540811408572846959689474871912326330513343181025639668516748525570174263692648713235328121561768646216059527773872475920097115739352848182099674578838945791152406457518153336186219010467422157800207786855726288361281605354163052036013464899237780150289296802748264491032658241231815699726827685602455698613803263989364378534415528198035307295262912595775800847067561302532938749700106279972199229972083246065320446318198129657880204143460883649476681406152086539209494254004493177370689189829838947493136488163298188518886284395846154965368752143058394224160973020562299673130021322085677781869420583516752563660250120135693003114564412393020422583346910376035118798074420177537264421177274120370995330028083408933817962058232714560347669414887461511900935714997153250331337225799393819850771737486480559557561374369084474224700129962152370303184675259069694479288938263629419315233023168359133472883467355191564124944194227520768146676353525605709566063158546185617540155703832670420888636120646524340158581019776963973648014571287288857172495571581917036207410093791540104663529691639767110449112652396550770323039957966215520575099284955666005174493115106095626667570044697753011638599879350429045029262703669030780636015239542614022905558130781569000967576382067417784776902233075428655847873765131406494156917398034546996063314733448921981014873559089129614918442797374674151322276243244357375852641189291032485757232977132676980926102642038153218477645745909916135955232011007380398942226052996294433208599681708945329759080648196986771518718680507570750409277509444711103039894595575748919445815163327804487042507160760132950306251116145158114911606473782319071901000229837490003388918789197259939332466678211044730087722196187538050981097879949471731426283720648460952863619180086206418483221885155340735114578795504722940525496095652959097714155384929761173399823597232587832410544378628578766422649872218746023556300329125959926723025474712291979975242682267938724938777109708415725041414731218194372053110855937387244957162251694207756379543598316633061108091570801050503320339862295675465143950386899441235458418344126454141738246664865113582141113345147391890115602237884209448507360345396332493579535956397109334486512287274292626487628816079572362847202167360816682325559770868350382381976477062050876495783526200317354660340411244054040786732027285882182381511017044431774219495545972427198542127966042830419799369253844126847395990810012026966504307262992767851562638151618079124922483076651747146405682455300587549673064259579585938372638867093636745609790998020663863490346692075115724703551053685241553691376694197063282620783976948323529502933051457802349891246442894918523600397210614224719220666950531844572041474182513270885408645774793685350217461678811701242175489854663764362249599734614361197180763714293879471710997511644079431666401868766084370419963198495931671431863677847616516767010931787497467427498094440655982312750663991155857101476116090587110374843665643711809721711374269376508110414245918683422346561961322807573172732328661598261787838733071556032489396299063414613746970010321328857523319316430634912149429128691627780853083609289078415857429197472268899062324344550421477480660358496806373130904051820761747600502183116188613882624280185390055890465621557745712050392274455638245296114947654464609068971478167760170801521313002689324915755290248833719019882876824819990407685344823618654281553638656996681929738044509612559349630462725956888197337529786624839046880288089925276818329848205698111229476535571528756757103632784897885774288519673308125334945812528955420303688430973361774223786980423048078506784432930930149621006346748483670634322684975800851010879742509371896084970320541619523242925715040203866470931234682768501289574911838777176050479292486731719851409641439996616933162045494185533823655949528986310512447251358063598940440751903520602887321487843822425952085478724730243751270733879083554982740460736639697171988887597195290404230615082495443594914519587477037351352071047975420421471002190345262309509970789602005241959245588633369408935321610600132308159887904971193218309585908081208229121604146216459662263613115184865609187147984213861744040892683728831007984905916257466478471438945076403795359886671547628764279667313708566704289340279179300241996455931252104910876874722006381955135577252232317615650771068421078746041633621871008339941178904681065321985768139033366818621314572532579243908452278536982948498523900087079922240783440475076984692863012017613138835777701218957308123327229561039727512119976394193400819538297036923163410460336857205110405912934369337393910561587427165947769316938675458788723640482696999795981838558992893546305392807674750885317585199078792415902651595061655887780419079173597372383911512281272597771122354414596594369035047912608980983717447489374354826780083706222534571262767783201719414569591649157744784417167720137393553305913889499574401421164782844093904176225265454188393483085273785573883750710720834884208930722871973526718117756337009881550159944909307702077283963920581667445815385796810347661904703675258166146424394893362007917068436609507054907623768185978882525402822006865340789429919652722298463042676935948347441070903002689005464378864521963708316786187480947087049803368364550214617728324255048077306395646452511785144651167246940145260120473611672294235520491564055675778125841910188433352038635837691067186711414715628891376972600764576857732459614374303055260586110360943280865062470652358558542391426577920416108655571045619845312297778287250739203630048523901962078497749253586401029244548066811784953389716939043442303187966498324107111030007920127679897144547630503595566984182874651692921570086071675772079547366486779872927081451600965861869055145151801777718500248195832245879103345636654243679798260829341933119156335025141362936352967512831734527002568934030871973265156230941829371750959635263635446839911805254327048014646545460386729012789360800196872481876590233974051480231217510887907111844546590105699277236811920889001342669007735725706357489510347882218193884740716048330878735065818784317251329821122712205102570744564711892093476263084930660393028543755579960787825405679941328512415886405121308094398604610402451872356212265211769080673247080434888264547790986773567175155460531052240200360853455136093070485838099283769982543989689376906257479312673008345353395012512237403075863834760048874554828924916821135948221877567816406596950793696344738434960873677837749080497503587320106314050129776467421452016982173157003052173638408453225084411739260415142473707156475362765559553839393619165089618121916930611394577056406649248064647747730437761239709475929971082768602094161095889012641192877273394561126582114176728139454203010690576370877438268800056867099540839015672421912472371247764745133324441721813924992659692227535136695395985589117696960802213679139849599443604872271525940210520640519823573329355422776597276695802402176734653040036703192241311044915018981829842908364515312948688566174276526590672042253619478594020833146106201201500115335936670228609219778114923682377864750644351378583527241515227446760141481344296431199405517240802895912410895435774604584646177710853578890853896783794061183069966371829824552592265144715814463758972833221386344471389246122296626154351676286227776028403150520985463735482062586074355232828832724396882158117804667221615493386479969440943802329216489496079582351191865699974341358913202094145632068879659502750838145374155966025496764032565591310770539197781935014811471842710146152560234997503962945362670397887077206122085283266888732411414449678069834634078990669997758185356116794312334257223911347457712399308986620781184582009025693055833225112642266591596772666747932469651403213273664420117723019524179152922862813895640526408677039985955491372735857741294315856471185198933199968008370340980420046681188366633974638756630766075121220908203408292046468839864929177968274409441206174446009723679715155962479390816565728124242042616353904217157996196996658361687700819293041086638652249003591546170563605839564973519650777649768822628636921534841350479206044020803906513856404414106229537090536779790002431697141669568751140983834269057778960428068776821889661544312621137063606829903104662737451270198406482441646564866885114395743793343097190324989483024148405074145266594913788655853545978487282979256745315631003873324803552340038859327912971812345324739187701998101285635147183663560931470145784851831247211970583816696400018380593569386691570953369793661463941491315938152605630826350888956801721543691213608567202934557076475772029557549984467897424479071938675804506903185362018203318240062223232035333011821437039253705546754733949326832501212950082437682182023294132685304709694686496158635401239226833902375741325198024156123204798645735690831164377293616529861052011257363229477376699941839478906420180013729605258732745292561942861178170743497744834721001622644201124702108794907211458425601795951582617168071620171790794421611301288424639993665136453318736120091585373538473965452941601546740472408235276121843261595685675179513428859564376025649313034607143905430927428850054358750860588858856624517042395858137391175639542993465094833855829386214073155284984356844888115368507694425225960650827688196510468260425592614864022121308188876540406452304386116089211643832178395217104165502546230533931724425946462265714445438627722605672149626618566343874053622491797145600167554053948842298720969155333919594918864405746039755538531338990858646616714439646980499199949058967167743401327737394938632802672259874985897859183683461734827440875851623999547508871549004034451923775470124663912863823748208950707998556478756749991580547739454381487588799277141307207458190930885967364983370274611738946982331608927198791018960416537056290806319861190883117219030897635017720351207019944842675784991384704059962984330431653354838659452521392579456346173816497403109395487265599023439225910154453717706380767664361433499234698105987148934119694814401508657867940944834625588527883981674956604423683120515222268445767459449587433510057175383094219898047890898622567319473776743583090608975932223439246608005369388388159522282240564969437517118405870848140837854752321588852494312245462603783737930736599858155176390020950636855867522953824547452113041742129718327975674350821406955894088670000966107865905371618851920404831165134024146782043541833347864247739445794401402531784508750956520012388396127240389266976852200060108113601832376096491889533202596233720973234306675085768151070438401442389472793828598472837143714067934652274001182005219055757932562740324085243736001926214957725505632187108995044800129836461793630277273737172315478860448626148960089296252130622746385940152866686733114617247251517526191122359471665513446456673045010892631688600292684031087862877513295883927311316845759466083820117014195164117242770617326769477589193933394184327393465172268490469953924195541306792623580418600911014217657327560768997818156863303715824349449384693977438544202505464033448039289458676763919111162424788503424055684104390381126519833305026953126480379836194478092057101031877606343153674930576687438208878464746772213564157115342978447610665103077903390501640527065637752903438245842568570978448370654389435100649398841676153367798598094495827330968592835723772532655645837135493939119940817282044295071276623207701722884616391239613602453798375996044064465438498544458882457412444465848005661760657667010421955357736529389492048772860225261321108848403047793997793411260379950202423604972599329753124500649121026160463878084863180658042818429829704869656012235099372940011539467645730070018475532963256548633904599656501585239850230677787994923307833285252271725571512158060729040369784569296201670280949197605349676895652175697984704657926953818637128586786942284475503429944148609497678479171087944055781962269865920336919787155107453640075413640390982799095446571693727129165612780387042073485901681271101214840403620409287448470794340332782794325935454279026453154219803164151226782351163757391358752710735423022768191075819895782725230672309498781686240125170529697279833199402953364429470462981026655554686428853695112029760725694339028266268947878503561034258651824821231251278459292451882852678437341948751123493176477996730671770868513184982908799444583566836839985657542130205230492053533506203248182158790615194668528612372311508221557586884439837682813005268146621789657268094668324516032034612281167949232613101490249420436542785279677712983048281478273704715190044434093001291076603206456299967624608625678454517722651968575887706281444271088933104956225743052239007213978509671723023761737731712997252172798931686931019523261177674931148647715103733034989651308479048323472906549450170734925040121619324562001174841019112251007498885329651402883663024163987442502503879553436725373765877796284633309570495948026596409872584396979543808550562110922354158286146661034297897199050650633286755871509505928969076998588402548762231929885617853482646338671045019309097393749406485896209870394108880816508786493324762939876995344649165076449147153710982868234223243996591596724357271645620965767115243591367154309849858630371963371102122484655529509485993214067581214506537543563713391059753182366727244294650243719968239694162306965427689749747199703723855247036836283267609148777350799799679541955313424471429978757072281709226802904815410599656185426304418730058107687709485826403625804221917134676526045494343728687476007561273352816824420876673250585926666890030320078055879455745834115890816703352839542350385509192375547527358902620466818875445584834439334046013947267103153202118516812163950228628632645251188610112144131230338202515765278706894305898240676237340644985753171463133255063935512846501872327140770898142361964776910712554038429785079744864730341502560502903251553920793074434351651459205307636767561431316587157877661765798409661695407055723692773159411696453313869140591861532368871706710491355305227302101259366497811880840851587743886996021915345584631051596136782073661836217711978780486670718544187925374275486944026605502882004924479086595860904581253592222605876857185745558962699513122039295478541250444041598936801077228211762036257189091188659740764648478778778394997351002626474316789334001999427518365642262332088650617756291275786229722792246296253114040446574929894574189866657923203209285311638093973760286268751545222065694113718123256285039017575782798850788128857024296363118608414770404990325274170186666001184900187379474702839006563545697338046525641683585266107683770028327896675943950745890958939807935985985162992366492966404928402234180313249512481136769306724869979811723532786596444091967469166526532607584213660233619839467892816382480746664281661626322564526009755323598085820240237001033626202128195079097503729873133969023607535129791392945253099119081820937291486097927368071101984777613054236577500023112156956614373857531912234594810470605150411249783093741642464850820521928899365901095779102579853084967504421061625244678162977331169400428202398409858981745064891456180316867400941924347257688668640912218026043365349457691952616548643140268620804978377438688478712577901452692493279813274009170179761699203951276574365212410520863450542214750396288747840586061169780204473574881240473613677675311851138714446489352850160992830856742581356447222629278030607350419093504030090806249502987496667503848261548706802552424389956836980532365984599010492744608716539940022006180942243940913623482031719433891081531558022107319125755305932726751628171796785076088513750240427667392518933959027214417836283076894337729336948051094367384416991564788081574309383212823808801937377768957401439015093301376616796475671880212694719505779675734558952803280899116482807410649429123147159380663551286496261495502779229009920014833551770130227518499011310989586726281564147320079797896768159072359184788364537686035727342577130373535247390514323315256547891385984195428820446368319538074115512093522518132030158640500573758054644045642672617263622975787337379171226477290386135084453843617176743247804925008734252804428007727628701071922316253326407193825879418217949582764345927855712984218281175676243119562477613371639311675608258464825058002765585374584233146189611578467477933421649748976212049811284710661413894834875624747053541010097077605740898616463448051772840377985434097145426998185690608137233460784143199058046885653191296756993079290305768970434157766086994670977780442705143897920791245387917068739729525473379646969585191085606888854644058590405434164569999253683348590843684573276437903456869201110449702213376838665679635278077031134042629890658922162037279799099145961629907992557663442830797636738511424513418548969841783497261383395383585008832870025366125302023925936031920096525475054186784181691062033574283628963592538515177589062376994822485051173420675493844111830035187484254453891265997615168975325498785578624925046336597471726904397996916080748135023983591548259163842268463234585892277135262050968717777825284225692815268867181272012262749870222172716577103792343491846133010482320008978646482953408849488595536077746289527120131834286951219826085288212089186961983878439646961792325121182260559521432757584424362347229095247963364499067652711833890223591850058772354215550473049182589982353445722749228350615305466600324369841813999288670222696168494757041532518469412074823415201050293310691817948159832002077380873241626110378728270371710092770139154934007314959512284901113764372659615441123272611052136857068836432082402228294431703437609651799782076270469170292874251979323871157741318882912168728222582119599441134757749781849972441623327025806816535781098080639687095586403570597632814734326901441136353802478328271413476539957100022756457748571894763464163027018789203113171223823874839586528190015114154209326742562338481144012240428823920180116244038852623912881661479982774656569683210858307621785752144556471081552410764315286180886628061222363651246128014022285508056088845245862327879251402535030528753175494525401460235758662069874119319023361546544696831295006870489182446029385769674847203447829685926767172536469157209540209673933460380207307883843054634042060707228710003897021366179232258829301550552099581092373433824357711497703908645370307426962266467862038207479865150809593397791006322399721868792729352399210277187915522754381982994468415990389170267373481212922900344152940352606760662955687127186581633271389006004764909314865398853926844160281877831964007194982915533497266205832284852976364774886363858894636857382451904695792752765534795481338269764344217773737671323914748775211183514073467683788394542538027226985090945428739147398834694648525335419627977531942109590795287186165484084378549710659622790760955157110824108326497322464205183082599232278107973615951026477839361390228893571225181137361715923373422590800147635453961951215932461372758535679818226065853774611743501271592350583435229981668690853777696568151383491138341482672357877991407353012006891876509074554427186308242106689607150834413161172652026703059245022122241975461047186556939392055950790524329055632302923006383953735002488621703231784620250716858438742717427227063731765150900102591829042166758976893358017881088969773804925276374654655503781529324614196896976920593411354898563651188908939115413375978160716185264164845060142604503391210529644297003428313500793160047326422449091968886680946419797549082701360977471554216155526095770817439969494225292509194149120466433310913322952219693749488012516167646388785618833401655418061553912575462021375198880010729399801265097948267268107544394256331487838420000964201040726160151687724496236199005462989825432622586263637555264030006445139391997409553299234342519037741045044354126508196695967368652608799988818700929718597576837469498036434229496248038012911506017308357622426017242718749681001669680673789919037162991166822395674411965336413638168017058186329076916656329188209272091253921680926396702113867004827654526242539614241226621338344251490601598746708867368929643047822321766158475512350278188085263132557110719402963669129066318919397471646940083857596458271991592702242215418142210888708950662900331091669218487336173325560448339495737444369904687125399390038141126139284461204838692109205374903586677205823157645138056763441443298111701838947731804258477574661925637256017021742187277972844802641010964670382042574305314347680453554892254580674214906523185121040492379878808222948710174308413854579414215929025965559540857943571843828634263357311398588815028885002403206903194155784348085773372600289501717746446910005431478228388101789956621105439770283550759369129446224150844979595881157598582042707720803614222832953765433975948866764175603539448513109176559704288093450189165409788013347131207101942565251004599592719589895238698450228760068480166341807651791188327517747288265214263491373988115442238678576457973558279642171976856052488895768492742709865200718673392383923915737443381237152267008427344218256848204311274691439230925434718784881297665053669598951671277352714246159525586353421529178840881763758462362818289460204178563798277742346812430294702969515681976093316008383902040045349540536195125673627516974728595145922685386146323839120037140706736525757570517314519333055712104114345683827624125929721365874237303393865109442338080120461270628122885164657234305312309758539436236542992456116840450526120470132874063052707088426504609168229023807120445723930604535258460495162629693888347423860888643339539056001117502904380457619693510582237010589053563136532097122688586008456830935225714741767123663665398862865235948869728881915195939864792979363126154088228575588844463798603708691784784934071742657860881826922462964880570473147872276557453997372070776077469410767037015509901392853829927151040375914977234249917138116708762771424959894879839348926882609937413003486198708341701101871638153826787555710990026609360179716492663958103125123144506339416172711720218174549753629881675357958777414260865887288754682854196823469362908160413621994340246116142786025513166167408197528791070920723146128305262309400408910689817505314516553796920902105098909843640748267438469188518029405410907735904360759570653040922943053931532145843533919693672304550063404086914656633814755912040968925144903612531309526927011526005914669373644578389660205733012129795017162459044840564108285283662485801786263310318266268651852667951177885392533037037199407633802489309095394883447674923756819758457288913145728431728167229929148953864494883159460009782426461804104020655695855448093906059532321329462306967631266576521293740453386418468691343791575102542599499093046232771972774604026676144824281249006154609833848855826890212055895158050338573561130734961273633109353048577249470675316583217985203901261308686268809513011996095205368917650700156161916600830180622393236295559004955793929545270014413686825658331563696719233037386075050413317184567060992450102957956494910998691281246527411857229008928198626617634192739860024805919575349881213783878289213293101585248531566821568135919610967819308887892008838620442470583546908103759241550783698583802026401065731993970342618504742343424926917367026641223312876341267541214499162581159796805916216947832867433234902092164952258604586071242742235819291923454521113726720843256445187432157075143861440679103184776204917983455428080825201562348948873965277337275581607781892968782306197810265696652404585949605961263306457874260152339832705726901752649233844861069279018922223450494173049748125524059385985736446237699685315938571232127381460302446963637086409284519063838171848466608556688132476157259422224431269119905188952677959959820096951809976960190856632995053503721488047653454406603658020171432151204854814889554214538112261974073637062906911874099842344424837984987786420166039813741196770691912636782468019591788522010333662850580026508243146805225708695414206592516729840662773575945586535109712054007321856227310739216446396234630136047109801166618751234998445348446035851486686456568089286096378691247246380410671977794200314640800483857501993059400667195994923153472708177369820583318952504894074197789893122073968819173937028323405793336116015148991354683776645395256377839275542302637734401075402950082754285490810316095748068188205009530715703950089183791868300801061577243719572610428659001265361275469963177844715195077097987930335100395968193297793197840411402664656460782513898409866457220674378401941294642799334460275591179362021565787441228690348273432502785658516097253739398630054331088008512860328064941513431676623525095131847271836727784185824657094692645430358604434244391624459642478236942494112329135194535970043589985825818668645683894997989404102395013949847208137176686819660700276822154361278015683142643691686831519380865376444499578380102804765965793424358893391102794854943217032227454010902108178587039632135841088970733917917618503514618904999515039129185379883825714979939389867259366876681214343988720443734528351924518217182808466730588304122141081364378298015631264347445508913373210210935316978081861663128852486406165517143633571644543160680820404394648521476560850842538211995619546410558129138869236101612863443250736263177722289347534139435182279540054131313046653772153583671034130919890122466143354219530838383899921584377773699499484936303697999732957205702332164243237517945795307352379036839391805525870452634523298085718801135766467531726494545899892293409708247819128098995685657963328076146584442034176525939403348116305847728896927998900336955879022043127954539421777818813245401612230799844193430459413466671024839704812236320326440317177967433307940563490489941254625407206048410720653792743401873672383929653919482410680436124646244510095089376180519601721584782645677412134194786539492553404606262933491177055343305810795109107229646654467923653403055635071360620150038008453082390943756377071343139771120080956310498862485323957447467376538994662280143050510681877597429743260101897628954827149900453952920510409938316742898654034014645770907873205577791425641319480502958064264794264752812229300910085163195484448438749811284897561360455123688831130605480554317755359698661864106773332178344617639863887126130697340847758477720502879967774621000120990605479573514698761024362786780091472356394863395854997429442434301843261762446664104565978196236696297771299009175653512561845256786952808717254536655472761832972530674271043980632197711538481745290700589965164059145147421916569274737320280006802786415304377715118889564519362333505413184883520188527093453423442425037534250234137980438682608850585649118008535124258635854451469317363212664129548998894790164357323751282422403406741078522987399518475964507106288238295086953122755443631346492922567147609891899757403083425783013493978028121730712955818301979277738505975421470871044034270311461858625067152418158043636936880243864772828427431290905714873886631483186821699081102050340871443241387606243992843282927202400299401139804461937288043411291639452223685530961493584949795640839836756825069150020580069181975424934060059165561901703555775462304302534207955008611486162853828102220875976602602712505912939934947116540139915560506585136005906797868321695857556614012093781469591952228091004292248148093795267718569117897128851927214548832727813885904290068598268692236679136635078707902302725283750162041626870399729291063916950523939429431619634264960684504176574129720007516702065901625643101979583727932058497685589186712293715957374225434896972352566091438732546823024279428722228444221205664981751648562072496905064229015069475632813457785906590097788075327194655452721226749174683233167556881490882924317265303308426845290400932467542086142295312282323711918531417172095240354682179025132749595255961986315673907654983057018550049451301199278291769644596690903076823244836014932412818148797967789055899330683616882325259433830263587157004577326562818697146154510850374041126224397311367130669034637410361954601796480387491166217656088878172626122053266201677323181521201927103342682793968161215024892489998633029481990799008599381649755767138128280342223291365176139606088256917060866216992251848641407279669163603885270242511097439746507600000913802567686051886255285751075182207114906474732417697798456190859295391263484409985964490681285002440069203220035340904533441962533533572286806973418614790749120891442178210604353945302117411404721013041217457459825526827346604925767238854761650502836649779023396811868585975309047085045998537978759012961590065067262731356963545517543083036374944690467814349443791707835857513879548690934409850343598395325811390514313834826860349390999444361704877348708785039676955166945113823172933454796350621133210729959099363566140626342835761709355003367619356039492482919749491564515570827698841640838605349083595109102076659924486809160859086214172055696471043547640665625376317161547762740553145976892601184029271258686736802928517158405534977790065690728625172158731816179776285890879090913639179412963573388632984657743503658978185017852716810309649154271956606529216410316751277240191138830262669840155535162380276563122170618046729290437912484769039091410459482276432666000147585075512714995943950280221149237586350455321021277828227892277547906839074733085116238891901437482216392742919629969668437970388912474321439796379533623906609758756162920731946215386674244063067333215469511582224069922713494103406117509322367368564573660877968945005790747670061216357542900375819123943476019262407591745821007326791103832507293462682294942891544544836629906325864331756880277802068603930513838718492148594302150768056070693269812545596203607323032629437016867361881424553562419268241613124460072601417414830980955935060854989784863551966854908378849059171660810789722532657462368533962290014853276044983871272116375109100020497192652308092573079052772157967882283149565919637282528504802494512424545575924003185384206713574705621752685543117457912052144125825859946855197182767362353576445729623126584175827930690944494978521379119331004314304163976401006739840311137933941910671587673850927138653979888360881220008857948250958705378365733111254118938704431790864069731790753026746411414639173377739545140811364317104404848366361989825468538350878618641122866589090051273667606543117184713407661250757594799347290121964335013738687715206316459725006939426913262744875184140761297655627827191561417745092274381133527827771439252749246082636348022511975766944166924917565911652079394596781429924299796667179318345196863780691634923812949953973218292960642045015501096913018545808596727411874436984816838846700922439043012249401930336037137429100511597041100028328488814788581780095078288913529430579402894560602170127837050528356829693168172213181485677989913905710646003120804230516008012821598133055120346256315565811318569666448511863244493674206493219587891075334071805688902826632360589367107060041909632280348504857386175334764016922330677106110898662078825611289710763155067731726345297865777425285571205905475471091745468857299300132907112036848139740159695507521184374036594687059398670087294875053674066655747636712327731180809086913397121154963296564878033839780700564974971060878948409561928769713410585736751174567508777587196629770443637379976050456698616540946042847348575689575344808847711801880657457349841127110475190806824893631380013204409893053911675360183391810461001535799327515355109054502365840134583945467038256333162408711939278845800758599533839967573412326106518568189162069929217338802818072598334193010120862463104619904613291484315112637140184796517362723619392484225681034981067128606334390532885179978911140533616222402729690044177982195026131809689523370773455192573321759038658283315399526529615639320180743985147568172324132580636365380499836795842324516174220500072677124318708487922746722443956815444304804621787185287165107381951062133858738102450058397514402752142171621483885145108102723604264731783830690949272075020404874560987569490168797841500578984595167002844582157979875300466881113840336504799778338403431612692526398628819994612818872908731813766119622466965964422868116292272734506794498951496564502023147704268185252047640100148424372336134018192656838752606531535293880290009330280216613616183242706965797222397582942657367287382143175270981488777043766293025961358257875550608249636143164149829740966999166888456998126359678121221167885093817084535771149925584847770209326809541389778256508300988381322788572114303244837626055146113396365075336643154044110350350699257977160610618898951919735466199662251966081166445679424348749281485348194011568561836003969423265003358429672623074252534403364297379099828820956590971464025366876472482344393966267391424402087733106410809401206103529458147266435691811258187297032531336035604937972702753511252589988876476785911015036234707560443271095402178623700948157349536519731374367743393566295552418109894005158523072287004207653400004077707105879132365149768052961248380862187228303559717163681008735539031972123552246192135005074527248142511646859321505098482324232929101481189633375148631081081271093973466263081138980786853164216702587663422007899435686571234866274429101954888633651390128308448495039969292638461341101154111075291570912640055702393811403422961118222334262777318659311377523376183473876092015576125750361048577696980701072615646881845303988969289044315408655630965652344358161834817462540998627486748052309129618902223424722392002162459300936898167438095956321218473291887133695233807068098826436099912005026031954178098561623516276875234493746994078990244554968931670314500565185532499029110122629061350060645308283639510780917607990858530954166006499293814762452070498501822411615290040103707946312421012617380177721596456554750365517834825580818104940211843505998843699927418147643495349825455502331365853385651140776507415982750495987648653557181379943411755175677158570148552884877049060800272732595363615218151163841574835966143856765082832780696148930647353747415368524635723373578914700523799313286108599600193955728033431451953875596820893228019415587610112624671297540033062878752422137728182710026148546251341430843608092405226457278286207358844029229787889522342116259924004450659458356531166093066550579743004086324632080463507436284104765166993595757006055863915278397770367398812018898755734333391561286575415526368675940641524202870893391084660062516585171758146601196869075186142826128793010111788253038779587729954352059005716093330202197682306851077362584726388625277606811817530982710583126035863580459456553028239777404431352256669577363922316230226530324126791161540077076597180929210463009943354475540035578373506376418806052994080161406011642111735802262129341260073785450469238226204264589954590394105613694890441471006185327595418362675098241797141271108998881568611164364442718631991892465196184025030846118954902857258398668440312207705038700823922301836327274297327129627898143884329428170006846886545911871547761625011549587067138115973753950315417818499847584546341413637843233376394920932569547271135525168292707203419870534534932990389843664080761823540295446567768128168533337570940362891291988766179286092320305992934636213438671804207029054463434932054419840626521366096729189199981792362983119386362151186289962316145546408376676147358907831822847676910808845943275334421355649694602962771066395826797656434449651735058104159170531540530749660451176166283376028667831603638455261131627024780409053125349481581277585787824134748463966691725224044135669713525174920236605967913436431268084597229255974634414896503854591057974747259197908659071555633422988568378482197650810509549162754940115661837684841293500893426974458260651463075456865244701352145336147263928309071736679425888191150038723862031189517669216696060055239087218707250792175814389217920812341882726949205329378733259150669103576185842734280711759275160484276367155019315111192836217176824122458215557101287231782948081092875048240939289076484637177386994001330288331239467259138497796063430131857115410019765864946146864554770359319589563269659540784947681423988039611134618161474826437834687072391923578526725603620584451782031261411597416783742169008477004129820512488176549065436793746328718288520136820772194935355593448493713259640506813698297730969987059681227833882372418690332069472859926543199163613751629249143185573495757308591429961213367808752509989996128976042941258676857067287856408025808178703567447171410202744681276489189449417554680710814495136543970722022545516686447425661106362933548755146048906745005202854833636265168003606098937158298317827651317959090809106897938186131241846553861727808937183981240932357239659066657654804793309674658913441855054819534992629963028050205269682335617947942923731802168284782249397834557269536074232443992645968150407244398671447618321939172102203075019823745716664873774049086321143890151908581247080090033717286251582873887404413655085343013025568193196069572930246406210696134586491962092014532676233631160772199820609596599817897661221369707146750108385782330317963841926368735265180746797126114579956182039247559834144172618827977019727946018561443445063359136262393411317879394416259562070715892272906560620694505495589444091802471460780291028643754755215140113764478571537227350688599358333292697463040643229476344726324462576483010998088702019782012332458825936654030358165795084158587672804479482656666538653262260501694561524819823297195596998256305638287687410631302364567518413537157576530232614163102498334578314763676230495982401719166373388757286689297535571992347379576195743677583413369871382474165648300287897510591934893915868563341238491575823656846981283494648531351294749824985871293029122591653428348787639448473901470057502962854152979947417944241018771023464269163495378683467614989997171236744721526018018712297112677278197770665844190818165965633992409014785168051520836768567114132413878886927997508281732794899976940502522546011874080040040419820065190006678850741214760799250621191684825601236046923100400805968046310843779683804223952054886922159842149479893082666441614309524872224842910011466750305165062353368597811208752504691321845566182933752679418607450242001400386773237087315001108050055448427304966489713402887593242749078257091384527483497402164882558770343852259852393931575846395613720714256501921331015489504888781550866670150498562842739893492302174534537769051080608260798694709709586934914081937811140039518750884403974848349290955743585583732800872473456286373023881775940198073242442820305803599343260403343103937557801245881668453137938352321967073911030706123147282559461560701208589495986360492360048829968066429176875877078675104300841474782416727927925080324111990710862763705468683390071331634944264950334792607261515255592799403396843295000700226887093324781711602671783115234918530668847077770852185704232765314812311964393240455663198298277955210384769863387276211309444570861465006438983696691704243048831735234596931161285598330353256749920112921597069679985379932872190674656781634675340750013714128745680062150609016638636247792178272859031674885392331750889518071284065692483574879007250883600450589949411902241633962549277445223457237822498112215692118369334374236181257832195065152251508166116160669329010999112348568113477302254782370153481241903934653451403303099372281167723716825775753717498964779889390697791259985111779579389001381124218228142867022919283307734111762546932178149875459052192819389656077245671234845214788126013321982996822709471394673833747695456587205802598595620749108527918605152748231917857707596509120763552556410076827082624595799902433850694465279684285806907962914620244928845870861918543126196363416377385484765107315299002423607324433897165210267648054338046099139830821807024757693243024910239621398184691532409101636404755863617464055203506320032935263992825354563567834977209216296797926136726532557634729754505472774725453249692388736853419970603331941378132934884109374816195567572171688003611766728755715594124002610419674297357739759944224219379705199375035609633682976292111355544553424038714558283243434721374662006114724768873229860756551357414696314404271988923701943883511422822831060268011139816421481113491511958435129630498526705962646259078984193439731068861126006170477611661044004524012774681130011203879991652425548769292279614423284577093955092246724528985831179275773712504242767517946392587537179350656440872327232354648516086849639694778949030104465745632652858786998110364445442492697409885962618863924568411451941181020697392705687592429656033843608351413676059375652980947632347747698186113826868272499474510949168101172546937740149522596773337298113584070883337583350073560738053339727701225340895561201839990339327939216970146240927471566919804328342820765116396460850942219478813941152499073413847274271691150159752791908352619512247982954243852041112308213113099570868909020585490395207471307703234553049498027860440931935977393835676958871100074939442985091041840509061717867499038471884180728074710639656505839480789527506649712028014650116966295551959739605565503979331274127930944493265543862927827085619212429423784704327722435051246037379234162045198376147709093237254131497114692014556960744240581648320557553529532282812196239290750212287026849006852529993106017791255329787413645441498153039573210552251545330514541404549981029846008304417196762665501372000931234549083314476059524046369345002498580470544457320786086631338584394849854020550818478950052354704129161562294204075991970930936625509487733436059098214516734124983160965281758311492236619076183308123307394830025402082268489565729687967245623416499097670770776343187988857530641902433132362196912482483052010340585539999965794185085193922187994229953942460711972831595399818012403679354824480175196223816039428198689349449600183245248112253417754210382016122597608505687805274065441341538225628427355693756796565636976520385072920667301582024574285417037858112967582541822790076293333735076819229427938897567213721592126398351618536835899384667735458313467523904855021097209857417001062606211486668290832582927458408624207149655286052481587910123619529534938978124552730020764168753214493516214971251270289358684355127109898511749334626241916537101821245996811318430628499807255597837117975573996024913683821389490538151195292005527576448269000907970691929014619113755387820597078618130281025543967364874835612766304381544995778829791728486276392544800684310527702238749158092908056909142718633426676265498855624394393449448292379375325265308568203247615495031586582018037626829390568603839632733292521126386514651937376563425663469077174980955521907112037114287050269767110681048506862562878290165221714740348152260296464933891050456806755861766851530256927080187448875116537383668955805625268244528872758916537042434509728324195596776471953322967104173568840459601445133394562876274057729873910595712907593677153503208898630068198447514734967921186321019761138647445091091506168333005593644516548653567708700195618983443694088509849130956861053987959513353540931763320810253524476010429400684773140875896553065607824097048007552577148970283432067893779273908990278638158773525284527659631999459663500013609873638357599056130287043360178331128199581139953687489045234417109962264810516662989277347370960496590084620616986409402590270859333103719889018874350585887075983571280268477786505481744830235683281990372097349063999914336559745156902973706844073480059059020821215050967646914386406855213445580818500187475096093587493428519393749596236803546095540029506113099055614184034292998530652363183817697495664726438503078755839518857280346574763026815783737355282702033168995019392541995872676532910079867998271708791087920997473416564644835873664788452051707046580144980783976038205543107291278022958756476318308935391817740620408306308680100960882123060615982579679656895614539080622508054025541627697675396552110589114838643603656839285425004933321432703323498500653316158366282059239233556713942738370061260253471087051482217404928722445751468510516361154175415213992254609965400260185260272545829882711341048276471906411266149355632678906564829469207856598610307586640363315486459185163204628506518886237641939083020522538601840444591218591310531230178068784357804387219735336954126526061516123198958876638297698821309098912471185557474311106741193619823390913570513690415227444162138532003137872097105607983269668345736148919477051558165973413754291267548397063790458097674181436974948305183068117632374201813311042351560154280805307543557093370953771196410473624622386993005372241051136641753121274669572224733744793019805719476793755218406741677653968054487813075616179175652032140912495264895380066403735091561051479310012181784239266616987648145012519547634104763611283956422856763844969429223225718875654842967181731154144226032569419012131957551532634535819071837363920126024687384343762613887786751802064497521340808377999009269453982199192778561669220595328944090550176868222098611431544167286148333756437849281288557552647594727529162299788279133458942298512786193759394898839109871842200274550619190667123121203418329496085939193289731905879261362403915376624314317231515216646616509884155332340749229846027290522998473907083236295320274087144289422390935359092640408758253719639168251080317935650050877685222375153443286039017335645417525292019247979434374117712601301830347076048429508547223035786817535688524900952169639351561917046242191930510070404397832730168831320363918719895198769930761193021085120563351322769341391549234396182072052992508435874767457188170100695317959048282638102282171687071563016348773857734576688313883066082310576222910783257913792276696743640830141410249355034626179690561136792934625586521546498888559900539668309488395933566788786200575146494241689248789580457976390778190929178625782131977742442396631169444781621287823542178792291668050491044796784700912631532305812148850681660099095416666761138504643882671245927516270576511715103375387476585148824293393449260520699976031874346142697273958558894163353158674368738995044443801643728403904582023706943160961307997491904460782347883928758706994362727428145016153691425206857317927608759830741545084810369553755840263829337267009541592413110273573502124973580898458863674142699599921942838566490474234378576921663958627157033515766706584808536671336392353328852838031384987076066778280435984803353482576897551698054720759356906043009740953000299451027059113584537521365348272107098838666966242672790587446543283765533246061061803778915804443601567639371108982491065671759620444411733211278162464742683935710981531636390944377565552469367736885093068552941004683844654156457774738007026352561502544749965328753207936100627361104260618582840816401400251405474804150637423661009521114391504580586671346621571830406047165982587088760286655341247112048322352816749493640137900310219035940627719615632487978143824924647076885905026726401743769211041976502562989739349039033961731602170861948555165372285649988344475310275681766517522213200937092570557001506397213374129398723577728607015563197517567706473236206578929470781686938799330902448240114766976450201494209887370332416740254156462403214180095866603125869486914626849120094676881112240939122590771243905585976431970283562837050339074776981050168799774799064101468918431436536952280002624212995459303372289690826390958089852259065222344207110503293491943610503336265159979335548495860191499849848590845649398686874295279734109200355747849292820535066761566200402621512415482595406165246375609424096980319955083786313624073812839103486834914749362125740190169330814030390775873242788130649559594762564304960188883820606710964933013952372386684699482913009927958944611579794773851662955169268812946122205226939989174819455627830440856165004081193798100926994206404790122536183395820962429758622384276566323396345271244382327257496440429614075424214756533029317398948756916916092506256144311864362407295584499714666492986685914311918613235765719062135767187597194922457580777738097512673899816753170077224094246829302667900100208715014922002735735615503408000185349217292952407648354774153910629253015613887216153719452930850799241469091379030950102880348096215680143419691201948167051137328590860239661629772709785046933962805766560773319313066543831592768421432062298636909815452961476351666417860781436744782565922018838987324877467492897626904459018459605924001225478564515817458325602506926367258737470222101499582545503208304612089216294694357919955524110438210546628243238063530600552270465831000273165312183568256588566410513278755616250713950219934217178552918971598712302650761013902900195371540274818126616143080116923643475282396441984448054462828995304268265971086912784012735839745673054824068818823947142996942570820679570916021143783435364720380708515383020613965254306527311412637326850188418885427770317887593127751052675539205630753516925347640042062383043650683088924255622161493022585148928296923597781350784123737553171954035942222709530971241455193214770650322690410040272048074132464182476287807564018022219416033753150406378846288655640234413918173016596370668262157065428870003455912704946003046962603022535072009839683587827836846986132206385727774468277624132239468487116279492847447965348520087633436958938446477607367663285429938003726425273323981639638015005801326082370541369041168368941894680123606467215649383923790059478064452414267076267236979817898275428609235214101061147243678425499536956001853427484678002251318759544681891834804841332379657798114848399959615175092454817978111339367694481370049615440081771465670858635031862122898524288606311672963722662528116076579118525407792508447192455591696011696603198972392251125374435645849701664386433849634864267700173951366036266979581215742789565493749208179832610582203541476863228318359674460883615870599230669962943504215089741470640544641674677821347826512296465250890880596912152475082426690412865494040861918841947308380846496668967642150497406227218973969738737623290093378691165194823456635517817886277997170774783842613935321507895894155337627905518935272165884259163198887549192575292699218857958730574530378909112739157243561919335080271841224255383105575319079983650095007469467006215597466049716093389587513484305315223310029605209389448208480451118230917824789687442374918999221007591168759226407372005402582032519907914467850251515957623878351413589599315368474449190716238800696607134702589131299241051050095695844718609794734743168324729830567322450117083395913315948918769461299491045094119102598475409139679810649566603931456806629960862593902903342174260440222365737459841171644381510914611681823297788525924056710963514461515568407799231962530799251421379131476257266281757470029283977965585686865728998739275414429308065760348971642411088441010553473284022423042463755454924052886323986718354607261273047475291023327124963935069793257167492115503641479385638187875818354593041308288599541036884461226798292011331503879519600426706926011367237944572827037554777314378360337343855233366506236775471011930134646671948267131932218974536461511251192736218725120163287362151346676575887675767603619087334980635970760979850387119293637516494221534264587901575956204346525705800586547746627673313551484517768690787722108306773195781331272156522370029806179061791010707950948668671932644241598675745293033429750706672801171559192774264651545648116817882202899470689744559041253560829719310482749837201101023632783742260345440018052455385705058271495290527495300254828017399670266218736740886422937508668363323551169467337869571477749136651957725124015446051375257591186069341949973388158224299474545763710388821578305886695131435714167995587665300216625978345401037050870690792359820474782371140246905492167714026782171254846922789639994993415456215675115478560020349227680797782220159658150463816947830661580727414452382158348663725055346807466614382202134997284896232173995534370103444961617206956762164494368612520907992716895001946182282036311472234047759813854898593389527188775951772413900124745379961578972275067995908344530885051585619463350967173513169078636899493141958896486645255901650823604618713172910881088557626876946057827123883718834303009483177701807835631698295422208943454485029671275779566397677255418603316307591666699486308260747825776035936699120781379937139064160308183374574223452644464262396500654652438181697455398263781497478013160582429328872105922675930636914815442730092874398003977929938810683041050703635083104601023968553416826156226576178754381080176661547157145868543859929106193387898273029041632999311421319578101434327808784211946349039652863289327236754288801902771990188089487607729181768695806832857258856176870673783816967703278397238036049815207078533254384444358685479925390566547607389584772900952767831355980316283870369026404688976190921967320850742766268774499263364218462512959805974261397278271378189926730129076547698366464349344479259397519078788722343658602383947192546724885045901003063363515283704369157267971690571694742347170629681671468328207682241002174911166753908559089117703463262174179640441110310808980253642935482303164718527012444938197602130994309319662013488302727208378256855324275440317378837150712980188633530082213050519329372026347765189364175500777084674950543981468661535896316432932273290938651150246328779714150940517136335728270785475375313683044380380851038581981048030485987744356641031215815859866553181370878801553165732108318801907807285489209676341446114444028888275418385289055722420649074852956742518803173837785153874988768550758863188259524416744121581421751619826227522283558141765778755096573980514190286247624454000839179542109503710973654889767870801639487543108741401460268286196993993792898620027692965867970838343951077474184067045932692480622881176375240503354177561172595298326031954352346907579464931969772411359735160721556637819160809120503296850846821516144902233186992013525500684431971095394079121830862032439220646844978664483104026583245264174726152443812867086068416197882110424047774121166900459816378114439295901648771302774545922110171119892740450628794025184404414186749310685316791384572991762748750229935642694357611075111932503956417317695607891749559368280443124634328398419667067544575313622047023492162073068019009020269574676151929829008537874004749392069569721422062081247127538935149542963239885997256710942197228390742247802165270703777131838563490914443469109966386113415433070877530418943727013451492520994260010992004745655950143316319738239387726964515002249553534503935710076664236070936397481188946202223533358561491491232023297435782210528592866410187816818235798407679238501771532371028033280173221050179455231931409074221407825211689518132037901804426995791012578989537398477243228559131975296955847617903857700891014329893646724038567992852129583445684572447815079388093422308922387883226233820086293740208702232143008865205946979079024407634654332449543728792783888723710467793127147697461887342548878729493940179912558099232701900163880135853063426490278749474158031226136668172267872716085083257864235972688230911168680937865379878991311410524817982690885887686968474667568356006650451895464598147345372501342811657765453086088681855350690274822785827636207982049310217518146701233684187208876695850879907147804461819768056364985620085785188175675150144504297603139800967596790282561806700088975013786883238785533203869418008222761495798918901566916271171658081078872043014666953088691492795015837824110590741038187363298985823017456002846349705373570433261156404224716569292014152072233108632524274356039739135295273639179740414494502400030128641120311698241783457264189671915827009642706052956729252412785279596541596671516036604074186668349017457865501819597200808810310076078482277007839309669909689169225012751538177397287161995256648434977975953502225077569488758476344788892582720641638620147358617840197872733855142579804514328101613197582647302299634769575725111400159969979587202682096242406886022508176964314163667626884301544984189437499926730066237623110443252935402083392267496754343476687025803043029350701070728733788884324182734486195334793859194825327298439234866791062445416263244619992760645790907594741291908766464404906105215202965955434155095829601807343332205857963080956961311774393883433374194382751197234421067023596604915507606499182213089200811723147553767903992757511627428933535595097441549478851962475645829402123189957816129527408319567211010022501273516691544255448535501763368097828284479391426048239330308520987428895073109437841707079192313759356164231294929986945154467210945461552209567467426789555842163314914332359334364404701688909718654804912767053522968277312414123174229550059801838646089465847901292526319903298616802018071302664038107176667752067596800083970294991616032944240111971465647009945169427228529129662638165992965972223523240274103965438031415774875406595599929437309735621844774997389305024614500207184077760854388085189768554571494883704240373071145853173964659008062399660080221137561228928441665494196478550586857063307995393459814431052894780956823836774605735508823311808244802388752017261401913658005342804311971908934089620395455430412127005698686362183534336268222707592939331658931130281278903085956266718863285491223013941690738013659669514963950651908228452666368816001874971375078779068673976455531652128847573337833843622421608889267447294356111876517670151525628827588893012645588941052291915178612025517573175460896168339491137684989134205953006258317689449646521672584298386566926230958626459739885142489135525070932591001192773972744454537031034134240539498419618029370425524913188344684178457194154934496460764112278764954138082765280725390699716826392759120385841317689047734346632557514097522424706374486218433909658467780991355725306723997036509898001082119764510822374839896571327741596555760254355464203695353762027006266893039184245673435661003061573638683614277481513621624406849980409079253613823505359200225566061035648431219293404389874126577785773753064205225056334476066235181994108211643821716627839207600962031802542860951869666852287887526710318326256447473115909008380351792558236977989518295224334718033102159109905025612999591099938322699834979728966102073128990428163546087560289814910928092844759849778822529778616762961484186314250595931748494214379216596322096078880669540456777235518168930102281692798553026526844135492514177296829675594118710092387301253854557208458179344789815907392300912386887710567821027092826310927389100388359534970357899462466003139394864726525792473179634532509463290302366326005454023590757846110028142311730542112491528769936564133563988533074450987043657672877588150288610008246399178533924946551572092650463510017745553379397357023683327249561999858288789424475684547072986401468521250483211653791703010790740107244896273396054418491258602223518430664592307696666888389732494271243904889562482856620803483897559757324562154194514919171031391830461550238416903211517706950131359013356167939151315393481312488493030802478816369728187466948289152128711638351006280834742937768112648203860314837553572699116752467148165811486771048317857670505161524256549926875240567602400933777508368558427147014190453332859307808991957980036561234350632554672062532582111489870392986948919683049431386654934412017935938818558948093943479947089165833933532958297181322037375008220143823192719963180755611739217966723904307316212604378253595845551316815662283324485674037550017543793866280557609973521228525581305030686485728048002536170787631572232616494757607032572227665717057352382104184303778195826568973535938068597632619931010267804446974877992534476156359157727104070699409452319296330369913302748119068310239536536400984190321328361140501155288990339691247557364315504312124814042577953566689392963552959418889116201022047393678535842019365345930453073611721517885932583626529479945887264529695650421272867474212182736523177174088036990882292468112225174880444180707993184273174393385598299599426037080136018110784454819789868181687432703947893949134334535433355531191698524936717849340935832849874807445436746153320263014489926041605608047649462825783955183374133621278243695739272355353019641577928576385440773747544879164969440009810952530940580721649217350423658688300905666047502315253851657596730041801823142956240216202517216946173835624474392136090496575522352870140449020538327267590239965816662269653191468854704037172214028554019442137841054211337872826806126614152545810118800596041244487070379791629723220317459814503141825081537816445567967367911353299369318676297412962068065561980332507598061244940637628715819755399528575006995566169134155540130297473852618449505232653823877122992492388133586472294976533869336410079741336128687248220503429228536084160213975692172796818079836175972996332032797327862163715485773064004612347612795087545714550832018163625955682139864683798499638499230064437367247056059297914283388014955096633800160850712620572500462057840363037014574969953881546571779591185715130503058019091917506964755273321910474709949556661964060145986832381026325156399454982926321328010537160246884214517745699438776380382603125203401156328726775037442863082419063468237086485922916412117131073483535584329570793298675106059183678899991394332626767983615145631164127176400939727771168927744960264473139864707902106198787867653500773222541706620868433757225741270806072486184068192117435056242830972404982282932105292932678123013922122532550553925114418323841799843299121845548759315986017502794775534434206019294454813387354462752057503855552482164581718933275084209429660738142360561564848512016637211489094514671668093088868187159377672416509796583758351398238935811222123900510896625402328325006900180395409239217094851407080125870753706777539437988377589356296560856790374302969832661094377439583214145549941642786409311053274686726134686065829305906036700318526344962352561997578715314198732040673881129106495812647763976336027510303114853261404555505994584685414756471603868221873267842255060489640578020907426276095289414665441575037079006284110243715440803798747722821698625832254922658587506378309260397664568465268828016493099319250927346673514809577872279708391762849097876342002813738693241096153321178282453775108510428745286817247541059328628386938740283423793190420425985633286404040900104814082463516534544208024993404157574104111265886179686369901938701141913635238221768646881217259060928944456709171461211381670587886143160626378207910650674397031214291379904081157696746677377666632902334076889038427962114039493581972865872612148026295680070969413311106686484947941943343029050272555127920681023454967557378926266020992700036999058287587401563282660813707475381690493863933182655991418567252742416620707590177634572789143057699013774801756573986907624547171200250813936017883339624637759558314634127875448611314906738033236372168424507141882458967598969740846617684158168317317827873973922109879139866431996995076750803218289132756910847456190065011531306777329258356149261421323771637682320921393010024616794397463788629587145218653874041823558591551081819930584317584219300666212405501215434153357286407832692719955369687331721358849671222013785346679492467885005036722016756237461180877814941629722333651273653790405498255752981380845056176544959950104780872296555868986053184009185557315400601297210213847983681036571063085074437792570938876527876393624074486430757253553915463522220535646888536617598033771430280054844684514708894659150590076690956890373155819910264736622184068880200493830811377525400206643468297957437755214283570516305193689002283909749590407817763059258147910722670409432153774700202891839684702888481186297720239721089879146350578281650545816125194506593177235994139223768817605226686450654502641813206069137998013102184168593432714980020822488064062893636265272809211681614806608592777605673915112306629548318686564295083294196484354642196265458498509236459077448973509922487186317641264378373332789073011389521397930062008070035369233542491467838072566247830929580382899973392123148568900389030129858409139567141874894265335644471080268385499861332351121660014402747443331890618923298653389076745997429636269503798080842610054988533853157425721179948175596745590654507458524965346897115195922412484704730820289882859154079086257964073922357595823687952315994039081493193348288618928628580674476050145013275506809980076130801191877291241005591389702401877670832681575722079444240032423115746952130663987163385457001677776826853180218601656312220525430713202284690747050163809489931461430927198203566551855757001873679674299359161735937095437560038443217729816198634427320015602745001894938477038530048137881700037590478736411476503123028973799725174541864411212675361381734696547563562052048712922252236976604647640448087249626668819778911069166720586425992380559870602295080039223483186612442587091049360264534858135137313675320472408571583208399849783396296253985004877965013855646712792849513993434741677508749791293577245086734752426751122334091390356793080481511858406440688269547236847462483427788598245341146494225991776206995968211494602578337433548625639018141797569591196710250424146974800732098689796630838915281629097005582281488456009378831638728490393553532741861979679803845705526137487559898679541006170387328494960191799386034354958805283468170368576271690144437279385654989798725330427041321036915558256018494646837302685497639592021614998784893859355112823454189847884823842245501822807071824221539381536553302994395467610013901841577633153996376867846886523036416317190887785697565551033930565481724972040957843132182692513924187799460077989728700519518892811567404999113889756285372020333211448190228491992545120629078723582153590755135966867682735210298875696493664158103151356804265742537111417036352433612607795498316834862185780721010576129051445103070479965505544854634078274969561788434391598709658764593960420880075789929858436931423942832046482071882967621132367940110748133702195693677403027472536295022497520544550096712401003588325122569086504192759980258641433069251781735433039359965047044316938853068495118035430219652640680020930729364054308778503173278035380696326617665775901195611018862259564478970026046980243418804674630782641622932057454463649274781526241946629313619682480808671226288785930685194546796348865076670527123839297934484426176413366939077758602617691768469758091881877336459991461930526130458667086539792135517047662626497961033318949486329238893331851825247381483630949869477793217847765102001749230332970900351644480493383985783959418956342260379548303700890772707395018915928293575484081022556309123025861807372258258746524675239215360755600945733201690434147481632454272233475573656406489072311424460734577866819613319326104399993257323316118620236839971393667055820513140490688448249757860699445002829145709941438053020834041102095923171908362272538234821543252927160700324771729828949818008542721698662126493138570632431715778728340348481630159318062904325867564939657252541028552799280395137467628864821751104273173681329504392561051151052398050156298479761980828762543900774994007753660109689181649749769699364026605917394515063725485482111056511833556160425802561968834903216343614849524119137398879176949602626265947742476909024685514509703761552615855941476080505121438850111239913958100767655219370831177971848218842566360152712168261289099171277250489682870646523387961879018614564462354899542834889808112474048393616958629253098918366294068638574045763336582949256890817667366239403754388884470389379821861251704409768700076067129139444184290591225593504397479104339530999352492976828521339781925948127974257671942642478958915610702623458247706140795670765649386297119943926479459969371822897498964473653888565773945365184323961341935634802442792442350547929933231302917464426835206857195162213657962956727181386290057566253628356070627082195326751610868401347096723846970098523054691375111011025306785199055485739942794989764496692438779046710623692904390684543601328949463090058523425957152074321454110714703667426852649089835375486143478476108578757769410761396493684892442010871068528266375715605437903276450942577756828904358757287229079803906107388056793217691388014465098953009080822862990294958084195309693880725203312560895428757315815029115408850626074726155328831660468648954490270975350616293012381615750802913631817088439014142668246286915922215255911876820624195502425562105186629255833679599738939873372158512807462691303564031268428301555946197639311963004286679007563435085562739078690429148986000827657834711750685180220955995152762218614948119287050333444594770355731741137752621486864218395500353364353325069247179562261940446993799118134182500076911379984511377699838863792892050916613055615193698252975387583267063883564742831547119536995760393060022323866102120448510514858940718343172951078645430852654352139573541606074656379713723996949996620461522549902715377980433051919450491997655288062955708924819811390621288681199526112784048609747983374453074360946273220245694872461122026131788761048386742788455428337921059242768305027745085812524193463905653835148980566414464849997226696382836326320252620063956028961628728436217081661498902280863138657010984412160015221800417101308199213454607515245031786260061115569918076236607700130141853458599439815111478992874651245044194661039499541778545236364116354530853201048968529252303630341468351578665072523659666795029643262529251012533656807309605222049650583423724826340707472772921218775102854132294074151993902776084019725358080932415755634275224489372942533530883293454116135948273406088131506767294597041390115855079892461524797611354642226943265888965386247179787438787710890940274594190019214847804906661727416112393826011186054691117819661640106568522783011247120792424829869877323351971590333421343421739169245863050468855248216837937984359762408763411090451973047589840265958728274672562662755513242507656473475786063154178614023190117477430107433748240284773775314063782968969186565275795514299720152822820512838598453174990837652447556559384153418464723488217690200336141046501781364463482566804266219491614732363457570952374870420537052663399069834608819181778019854747033556595960989305430119923580631493378652862200137981764476942281888374711515623968271347126772832291250652542450798344778271339714424569658903541313631551661958613255176543470100342704259466541247705475595849437046508458060467299764911470176336696301363361614575898096314617457121528313874822474014214821544775598213458838008028831523907082994920565581711126457408644281116484352031705473397915510857447628828991984982653538095982872262709713580217378793875576022215294604881244550044230756733673973525505997571164837461508058651560938129329584263931342378336657693946124448147138832469838557107204657964862436951577814301104648052596279182049176694372585093513478029102536806195278416350967072215227492703236910099910300412764074274174622643167161101158931407428677672205552366562412417717006414480342507442311773644275019377234910432016410586527616489873008956589516168190287374286880640813011426607176563248816604849378083163234911956446640570394541859111381248295954205135120798607785712900025670125475718980762575378976155441295977731149184139417349681402034358739262868712248061458608117644277983736226533538376599233427062993297848261674151172098337442412257153092354977747857195734037588004553663099544223193648040348112708989409308834031515162453981255442816239190746273307366878359153903070193392032051123879976607069963269675154710435265024077543168410730731427798450388351607734176271007204724544180960575866978006192665122137112755074331032889537339246356306558683716604203659528376687231555721152164982573722825575225372437021414583840623705240690644599638048567381930929116552824519142832135735133817363825583092682855137542070367226609814460887791803083549139292328995665715816393615861966630767977508260409143554058587403234355955267005569691992533438567617509960397525073627477659679314468614117769022698880255256434499221141188284153825098592749276553768033225882446849598048522354723921027328197861501496532932192431689631077889081685232896111125221926031455923100133275383109613982478218613419760273788194741610618603301850897025292796811876307035019138382800626773597834596660922764429130533481987567708156044978071624345544600539464241038391439065386378385025707944173098488387422552255999906131731558765327454433570866107827338066049778203710145811895247723555049644329111647724359892779353790184788260016746161347092824872571988879099907552908959978603498421246374251874954535822930709292845560859958791586287720656087093922152853240565585554602279327252154547058664418290560612053752811845961167393287728711065666125840814745061983044421497269804829303993081759446984717034561119559627339047344581967348454985837858666081619923218787809088844878879878502449873967634134715758845708278501165246548620654453743614707609745294927815356963440436893121511483405639944815662566559117160683846949348538767956838402593971910918665786446374864449333081556927233448967320794707693065264320090767146321964745954524574667320320939170294776142585098697960394697160415242684333961346288795836266209444031808210036355602429548105239305385374598694791454341639595745996836389818790350605821228458326323408905084777281522058123184458258121532976579507333387277478881687929531218987440389769987416354357615192875338699390354911087780784567132493445117098674892446806347805005053950231751720554792803237403328377555378451154745699967675595019587740800254062292280030767123892737735129036083632377068568059459451881806747664933280579285888035385986051645972223242500910269970484310408970371972132251138275931464177298709530824746507784321993596081335853306819992594148947411640361996211584757721566647098041693587095464745927317198654694575223732069807339899931642241432898013881814860524669245112068779693202409972523889929588754990800234651489827260993667717011799336561387339717829107583765377228635058714734944618262996688096360486551191155343394545295276215612471806323138025178573774506631046302004721671014717537905657317561599937409049701294841194623803711435366053838743314677909082639250238666232240459817452890044865492134761092509795542136625261344895607040271781255028160304818184638801034620558612439035597190118363580671164732774531556974234798899202583243859401751917038037624299246142708068961252987133242015682991231723007103282591093271180521969788887857526892504337029753687941754701751889241326191208793880780801532342989381483216957898801312223338740424571291270467896017187243916381367710273428913834806280198382156318451133478574630323688958594553134323138844848246988867062206502742120892079612096518395023101202278588920244658905853493783297999039644901180587785829234228540969469831893475536340981384265600883577623257319917804629182104722557672252459185360385089914564135484952307287841876012157274690259296504311789460481861012604814867429560049697492211258315836149582473154988898184811021984403853205811743619808235684412218553275699213263724902481730783901843809902442890761789453270621786240839943965973504895142077644219656142390949975246275087872561464165863274714352327301711864332517117531594187970166703166111539538568631062386514624958359303939995672515395358909347490045144054240273524964713982671884719084367123911440573106287811996815620970577061977107650365821794631547331022468496406043223654823754226774398339805461739548401347300402166813887295198671427669993425719506132287734681528068292351323221527587278266391125427793372038728226399628237980111063412943112660935169313966771843587952212181771279788658949947918704972344674572463447225787920699481406731078926650064850114745865541962845301952281203755760647681741752991408113136531537165983456145615890883539673082638406703505797423046500607385543588900821201956060177459268079925954125104693192836321434160559615564812151118702545404295554398118680636709921729858209715837409153463644849685876681443751419606070441357475687080000040981260581489655129821300087778747570170764703429654455556668037547292212014058872404065958875488577024718183269229443076412219715713856581713257909230607293348624014753536895531120070364793007542160870621766690576954855351501055760972488254070400318558734765010479305445182828239286647794303560816965584369003718543947454406168138184283899541041772289170781667002071666831001937309222555753881615264902292879465856445474393304203702489389786065858485523765461898115513329204351790259671559599117092041140055950745058999064803200121880396580210688244922956714631243622833449369072729158348554798075397335590374140939059181783899831947965041895660229723713433335399450406707915478122549304540094219813806166050471889484273561885930542092713845996259809710251833396843029925809002472130421640266087680634472485276210711734879182920737343961698669721649702064644105182841107762037093921663282966343543819765236356315391780073961813727605744075203058779194600909853253134182234532266181862008114537330548244589734814295270230818272384720761105373979901099900229781110326622985863674928614163032643731319594565133872764134985152648200976087253485470612439004807184302147276345956925944693917157216097366561524395714578124351805967263899069339423575455237284923006764530767689923254055007537336399915371964869946689287389117083534772870519101373868598718336685617014622089699928055922200534992180815348815707736172248322958649491686074346411042078670158551486734186706352292005529431702902030674606543491566742779543358631478216857593441458890002778764502010659353266138890911105281069363864891663824137035519617800764384375192287746745079913786786202291547688633875899401963531116233209873801991289394194872075333144425215887714855349941519467050679752068361430709461128532864901645987158034778613815296974063284713367736524837781010700598552204608178588125643748108396043488600683865400265227586969314526753043409407252115406212687060183389520440850872870366414418994712684937884759102607034998722008966293342701586229509579635988025933252689874088011530504799132923713002801345061217675309695516903538775643694102330616874841048642758421588554248944503684129855051554445812317556688859995454569340984677115210918481034921861273634193865372330960618873425200158757215920395810916720199871133044883387712602040089579212141252819671909532602731102223974048041046826305030862454015250634168553650610955537091843424032523520786737413662477503389610216570653771714930895138148236281776539313355945642173499654303999866734830673145236716198904435441878201356689466437823986026935322398425002119633525767989333388176243284002908481814757460640170347130283470956568646707211369290949718582329515544546277670751228977650301199726556783493240001193353003614057088075398687284584730868971975973027578184747000320476703987598411209836077654451042517218775998171851802338747983139655403841868313271130035476428955395398616781017495282328517431176688769655296624002474538829532582962672517000077560168327146623562186138799440432830970235159088158108527334211912049745101679998045051784704373915753530035299728527050078401234459282246550460248512607694521552961527837218291518038404327007181597522290013927844388401906098488428301321202761143561708788390190031289172582556176958143593297670917155909929149103494893253005957525851413648570756083989139564726899117952255793816728783206856679667558958645508379473578114654789456728844708290363414334511398617785087621009007725417015509359127255809041202000373007173541852251075002144967960797169654769054797054899713720969786767261064778842569124795235218944575730573138595521157939641087916844693131037776980181524301087495572282491945222739640342428888579507640467276464989074560878286189113436036951620413730439922831559319969753782798829648821763864143255841624487221663776701976743605614178679021884244831665092159786617271690415915515183787815053916392246839709744668901471941746220077931342175329659190993860087238058320334943925222997344659565055654070675878786458963622679155905636935822641387825621821286466133067290302493471494959120755448276962023271494303268194823172986136280111616957122250097066146380912374593740942458817835847689304891144230766864742049478164196720366602740758520290903059038118548924825051135531011085410804254168044724399201811874201715715268025755667986081549162029142781314577246374629439159568460002671639802717187672036414156713018277788006809200712891211195771948293393936083921010330669392195515787900158454520685161558103757947754363964810614005755630137139148786334252097856712283877362132462284002251191330634941589662506048614987098770619972458362753392659639048174031495366082182200240979596500731023587975230928870817373035763567218339733864491184768210156390832179179819955097042485210216418038270186517141119767488235384103282418124939927141666511633438132949029659533994888948871602414653127863953155751413613372486685141553097131113459599773049443343719639073382126178323410781115731752020309307835135286825729094242787488346034150228980521117066901679339238414998195249577150965804106770050997019805288492817422625547357595780286427804380806747904630549718125921059318862974079272471033417297677650269210120345416717617684203441559703868788314483034984893362074980661874039200351543017326004537902147426092297768480092281973462049123169116568891601389191320821493973886791970590853195647899175487151414235188674517788260132993897249098310743586496651581194855435035586923457626599898323004595563097264689794261302229576289671279062510772093837174397454077427235693450065152264397594534477635827507588706338520111324878772175044063947893805900899656794474281901559060003556606644915067765841872988001206280608980815886670715250922644689030387438293434131830461620616966967919039140232369243059849891795068670728084417689393377184905045958786363597207461812584432589146404597153492719722571589932167368088836365611471812849160235538689652510125101233522877046883563694461062568922147066097473955940785730128402471736954126746360713478731695523512279971902666967165975381749155512255679165446450843200161976917438868629606791812641965736759318282293751086928319855900645223528246144442409706080163863956427471365493248711432710639370719348113794264636100061765536270722689080882723873554076070918558171296298018899423048211300233618855464504402914403415043042782172013297786129620247240428528646537034230235308280328156222543343102072994253205803613066427111344552320425208111923327970377995589807671458983063944162347017489589640266759606508585966145105605330863300057269679656327505357877627760383244228638995401621561805171377869586544651410303043084192271332979229446202155463582637184781866755921750875595104084757154976239151858089354452078855015154100211784570536794957031791656115614392759427637505969585537783047227612587555756151359083331862738554004097514951030908381378616312814872951951420973235654535798483705285219169872464231347121567468371967036876159649694247248022227057145056385092937491113644655965437654690692132794881261629042844267519138907086547473281342129622531062913987408333316901415485890756601674393264748097884846942382409791572472815933578672163984970737957586977768294492851325922493626464973974021330552627320900669094051475248395953010607398002092755562105897540213531410132838435583738095769062639237506714280296298726740770113808676166245009782192961053536527840375203499661749995161067661715482843106555861399738580154523613531358910676242095887044785732351057668930520816248026869241280359426733442468849111437471753527118042390568790688711899879285587310913688681915610383212930577906217665084821894245979245271724752354794714347125533300104896794015144953867664467212237010981807579937469296964480762429675509167595551837351394427117826837979616684295860282176137861016616320167568272364943839068505393891804774272126410713624982964725479290650775595812622757295452403169370402554524074073759922224284446545896857389162174175269003347484854198291822978482907800982206449459754347886105456102535135710507593863252609921619853817710548390886680489647075158882506131318626052304679124890219366089922971268858621791576659947756852822507255190110767931146594254094346687258122285786765852330054013156399747362794516177806050482074504542448280928637648291382141080271041691260323075240941459694021921625124685386261791950481091752579246898147624986088707414402975615566634782009291088567705969596401930720639656161339378182612925620311507825920337326895698153255349044586897621394694792521391669523393679937438392071785755832969198715762857789503882206623948185942934962045157149864106516486368335465404453585391502420446111602235054082953880724052176424412471602249829438508090179640450323588146797502751911707586836179995398964820945069307666083245141222985447478312797815538210596637876028153409760534379061545961215037273312256903343065231746374631418713971085435956589068235311516218254305284930766806078804836875983261798728641042787195986708858451168195875833900891225807685299606754892596852023318608740341102230177625016805354292177180827506785757664497222994924679393282824844625288359425487409591050959463227972675800883148477981270658385978064621615343798958488440822697956849375530505915653187284523880972993943016134930797945698909673390230904264139441286734194515519706629430054971806040024184685450405385409066148289369442502431239445603478031036658853610200477799615101667870426015909256236511442318076286878781679469403989805283263930755612063187868453997642625259472690117297599883944416750844090809823077305992776541089320287148622349682965918600290267623313354605742861470752592159162218851656944856986669314015995680212243798662280311968046402932906831193758169173282240207853506414793703805024858412213352802846364508181366064925869735392329231873920781992502823695805879034423420748387568262735995345149104563651023723419558615141143041489272745300665647415911104512878424893453136482608551370689251519723070046841363278153488434035758186330266415937762283279461558550551347147513087319536207163573503591904183581907944084515560753055533395468938034769460878694810870261653979906254271747820826287612085246263096433355073028162681445916768370009511125433741592835909208449279190589642651365317278641189722185768468220262852518025654808750466906776094879013120460252521125548177078173715606135585706807419210047207703102736310347642001100089926472084247015021091363001790977879031240320575910243075338731425352975421475302541320535631061534230936805593720590181461466920094633472279960196631102708019495285026828873949127115640141002643994436748937150020014829482631031085318692907507736060131895804026418364888367040972665755322441782181769899805098660602541500731976408507517526943705667505779158720537711238412187558428206751236441521394719894085030110688583738496131806123689037497490568019736463584553271857603299000675974861646766658850873471626551098729479440306338874962264954293168176231055071560778542705448946590941460699871503423763879920633173831166702423608727185671065132308088897087248995566543176994904186077312991621497955770586654525060041768210348006500139460467344985835850839023510034899242077505290097810122829272827466408452453604057781573386983395448795042900756318078782923113430739342617428273894692514506073084313514448724824352333032232703455355669282762719451489707253264783788983564406729208811599158042706393488618549164868325746375414182631556759653744467328960144813174716562939306240332823857785226848321703335947173025204195676070584566939688613689724706502303140406139355606627591820090490537176998869269922054940918310029849909055373527429355271062559704136326569294364550374779894851266901904505641546158410763522110693047714260135133668552346449796823367295016683649981372584734501930516442199210930909024085834963696732862061457135921611693520577218297742384582887063464071500909046810841162606278127802473093577353375239360111310285088158649062796204039759373527699898875502361210861699709620321103626056603275544475699728479709173771796747758611061190499337572662097118446125410687532323005139933987411840563922473836573146153896202192887958118555540117541389824045954702980397794895041405141049354431777572479592592170030207686137461560696341220520246792051888571400733454190430206354329713382146053750834467700263836450919587519067391171679113557420201320269875951801154231604668853970454946517477454454917091086257432790449114114583937195840255407926028281826939278184357329235356908600720313950440753233067617587063474488786831824384522866996030374426506360289414937009292855040619604570454678266890829251765109570001174026568996295957019310632441232042453357889503168760495020392895046239370271694206050694041355024964692283923957790938001619773577746131387160691013102419933940926312181824789095506065113931070138461341371710127950131748747987251956951954315436633392114231983187866135210762253037176065129108374096616777429157803487787240603714208079255171920572527777628232674789385170404304243409002716929145556807051355137998684224580245511358817378092030532243930953475353232905091781972425998300471953308024940507443711698870976362465458158390059822626368769562285719080848146885803500588218667661359260710372702564411681910386680213108339739519883044931197449823863531595032257545662292343550839411572262646464534653590163708081427898398941728691179820250052249511012238277699247221831864981171238375597680327350779744850032439365951802525358481300069860109629865747857053848593134785792321808184051495546550411603938485379074631605800486697572968292968738958358722433068427878675107787546908135613077112273363345485180744624975965516778339939605267228058056428387658893600211505707354974046556751907578184578590953944619348616980218198641290713144978409008698004219644447818769090842945853672835717542846918196708990989645785689481665984674581547173482267307903848681300920152978479545331035318482849973571253943680411559994043960895646768145358293995069706414451119555675602307948034381506686526727744319488736954180869495040483582946920431555508759620222286155753283249297571838733301145635875256073824329506879057503043351604256165264206191284220156961555536919271013699835033349862874177684530923528996882476447594272828353649661453762138864881133439536091425741342254794258472513589927260648900767543860910955500318550184393810027947850663342578809154511314490640907458541284334008472149998669326689043512213759289847426410364227478315563226236806689985365432574967053221357325365185670693799288669481897053646752265710512585375011663783114695985734266662349498965896449379203125143707390263954176495333796683497226362163534708882441838212779056007817702750574667793273305611497030922759657028171782119424969291845761800206335130604020181972786368691260733691176628079483324652890713673944428027633876175226418213930970008348761552433399459861343298344607471085446405618606414954429739022142822154941469114807695646308671046767915875232639270644672369754986776087558568423430907294426060776218242088800484596699492738243146967435143355655433502255564330575054772602497788688519145740220171453057346456873181196320979504579231710341529144152260322269498704740034533018620472923775727452130245345455824980913399161535916490197341205139134430826374114913566322213513387020602230525089712981341704062989337683102951981613838177888272691806906943894444706990779007185093526038031659490160259037486328739672657438695215154900642722022251154085193700137355358159979626906588120019231976121273884187657292841841590169881871754754497383580755249232366500023094739514638169197157739106734593862781485426079531576021066839873969228455288555600182877599166106028038664396419187417929916503449647192388477074192798936834429389001609404811493275335410793882417280850733949006811277852767418910713068525681458223876704627910049133770689141905448983684894414401394292174592256900676600491887442129483904684883276123460845975378307865178964985689873238378078405260933736516701438628555348209587652649857930567608979334277882195075796551937541740768952887027856328959890663389841913538101186439525129174084219448834921456454096718373988899018458460600849182614310799283515889516139455548826328239544195500437933174466336354576820245868754322522266119260870461951323854404264209569502843271806003482623710791263697920871093821850950456521297826972789625822252393695188216429941625728810860390326533981461369260074731919851038356083593595160447336594203757886715391045912737726943643340408360651892418711737109515468391028700663299489492061149439714780096138041808571692414093793166940818539720524185129557062548688066060679103002109938972343920301260415920572648375831851343358215258580921608277880228183169162413587310437793173720216958835260683198828613833171124843437232764461970507845251034870883581259992546400744792297296336106224549102995091217450922330990051787768308486020298626768700545870961584235569256369199772487131187341370387852233408589364770901122204633435601407523112356735344131498803294900307277219431206315271837142903296940731095039017770639200321779544715369289587333879641149700699940984658593203599715983698381932344170118165202537083991573440036149651832219214034421425170166554453934079589817815405437064452340364838489646890232156802292324316214864333455595631975804999392809963966317914740979709736844556608789110448270035440043415212854306654762803513422449413027886044019086653664996961941721094141094005233756402456462746993837054281764105502783015771060066739836673621896384367533319408801154230195026565551665235142222135780569862096819226372144191248746608624142690823687682526422432421791696440222317176044884663357349277595686201092130090711614726747196657461141029174804976697404843212228124628536131371221434156945314323435298445437344945230019377344620320995599551875243044719435624965244755229555735599085176454077025709045725304426145490393791755821481999266434643716718975376847210639833190978782361599328006605106619575154847179521346882305382848585124796031165015004741948949813714536076459143629351728910272490726993307898737606359695885768481708080096735808924733255127313878026051676538445080467252442606951878215165875635881972787985465556388477703245648684806581165238723663519944338721342441103172756097196459399468838121683653627020281905926250306353958822153004178292624797999840202300915113779167374671248218917523193438029430532969528359817023534299493017266401837261245270572379328545468869492271866602877232548458958048878566125020669335490771434867836395027297396615981471271886148832398342792213417722677607753850584824669983953156179475523580000949552849627566428343845629279297611158477658679198524200023170088056114823772846216354308700184922107357512063690264479669794247737015993398912145950415498152589977153573018996360059292250869452085061806703918374232116531318848786427010426040088586976880040973306410341110096935242828392256471060506130144505019023045770091360735603952389421088843649680072327892449714772242317981751043583704119311897067697771864450373096707732976685834452268562293371871590581381082912219084971216569000851234802293034226302586044034563468482511586715941077043070000357444961872411855039225086329087207331249319277560251650349238464556321318731510705480615330051568842389090296887793868848522684265924106187285144250347212427174488713224819606026537050770876301307038819310794129987267751198659464195109582049049998184502178968722344051773534702757330902987066002151287155308498624400861494509089857986883983543944202773353770948711434859545424381976678839683943343706572639706470097255799079937404304891060773894460078912723876690900655084740072662236279518943684280252958622670787248475688233749950161964578328512054637980708676862684293849209990600660565057875816968628385143812504761217090824440805178204685925125889304346601965225571272288231497768076212364903840699850366697636319841112554386979761569577795834980646960552381596138983466484820687592686036168732928506034730225627534730938386453006568961246704643911585372230820320405687221931313901235447250357151251065499997891915898813308990338265765453157817197507413077618931114680893128265836484442270210657677563248106443779582575225233945874288911943182686948909851120625036606986071588049378645429871591893128256057664753352322180170973814153517005712418734332999785253091948713104551758840809804188345593681593231516087356177956302240930525457101352867327382692595479304773429305849361961190215407962361908477820953210811916201915631243583951016763661080547047602162006165418788414862072169543699374181373605328115336097060350527835710406136676937368227102164342928258857760379805027049623458966479435590732704393930765577811663912681361571741876990239767654220145610506741798884712099186370445483214981314227072884760090211196799495064125570013470853175894753172624423454603015897797527991123381037294928671549021059797879384784960962000532474826627080583535283259915542329318072405506138299416204008565925048426940141817253670854438055443721091678228065240591866363534827787398248069152503145857648870811963178446841407298422602777175414460020242900621046067761955852382781811855247311720031466990552889370978072326802108873154706658941741737490642910181675671900738922076258491451595901851068648313458324994870453419147818674365618402404898078314726617957677926092272022978859744355138995366301859406419353711120485694020645363805574541483252464248220965779095528153841074783050279069853743607591661737746307365881992649889423360658608993855601775239748252150676590386308153048526784932000357815706559928143698732587203371534448697244284661483757763618337399473960016116470580703350585847072924304094764731219898673170320353410248200797141041354024990116628914046888833046489414236467787160045325363639640312101349818381828694710049482793450441128515432681846588515496540542080904265107326605232913493131992136235394783483563638249056799820067705989000058474901538442441657326272970122404850869867921035409065662044552391276055415075197321624304311181368919275652614582503600044051873613172965858565595828877582417471264953092800955099905780204527678724522744909759767088844065531982865128061208494964073001755092001699660706161470357392368463476212294630010116854020804325596167515463538151527436820042880913054201704689291342815060228801804807216212337178533342575401116430041040224474182225387005036695879455033188197254857565065595705620654265430363434968921840187592913154839221455548385114517027539573522442441875428907829252733926948164965548781734363009676853850538356105573833181309372434128640095865505226762294588232714344645554629874295695213028144983835036391346385860437072254600730482768212375793134295864256495933334960198275543474690259273639631828928197151734174136559685241498171512670255166449709971571173704287885059366028079484843897295360004343530954819994340446265350029333366746035997596806880381209708861885681024118813828549576787377429656895718816667377264186034720168723719560394746208955779879455338869774382066591447988887208789527411403053694587503503220191886534748863149530654799372762580638378419128257643561623747488266608083136053601218480076553483502956258561147772638603765695587476845093401156782439660137855230095597525508201771518598894792313088876396166566530591257886382146289047566309598930530350201454220038991210694601881338890313599611599112342895139352790490034636588432679562939081066658131023821062719859192211399609583918818687450555686340101954369169211102889810717992379864602606660259032827680856188217298249148799281607491334029444969068596453035177143760748237018828883963890091466302993288882526196077432755775926162985656950058388694561028814816612371803854255497688605071458731708178647677383704757883111684291828355495327163482628565042375946067098862214086908841448233409950015901624461235612130150382864171320986452627388684375673470966571394470440979793964720547774225285373170301648230584857201060157270969475046720535243283748591486984733486303168745734712438684535673263392037694751590860217234450828455126493141468324276092173378694650532128963148810054164003117201949353663161319835558158944319372682050757793981522314715726631846157570154323476071213977541680515451708733246444228620802354313460153256721059776462117465852337496395516019117145759028920531335259521983996611177707855182362116328341774759693540367789292745695600707328129118317140707061812752823494622401441672441439574128760166599750066175369012587361137975822968877016729264400732304023097516001519588124281541937345213427039039509050748762765124327005810602405313375580905499112757701395970625672664379046115464341103199325821935879456778767537375091299891107596525843832133349927162539554726153527417811389037053779866614255955337811133483831039019514616797037820362466101065495231900474683810797142154918514534705165712979180420757875525078800058319096890145952516188573596475545325332508263143818048442666149532736539878477325450872213600807617268088117649621223978107698294689486558204060464071380922703773358747162688639122435547910695447286471944276906551353427058240785627699853274590159203232393520698951598626491613731094781180177108414756474780198076709034075387058499009753933378324713178993635964001388934249393495130914661244684940402406918911275496278307904914732206293205697119715407109449894012129979546201039549492495905606493448746502696644371464989407589459221341016291402007218405155289272400442119284220412866913099496097656537001227993548427444631644485472527972356667192352983326134667750421849527869826145577245499406565945480797494060252156520873200138386848135749062677772067925273408014109217745626898772704083937334089061225265808703305344457423883041038534132335902029304509865923815624141679870684304333241156199680071975974023963834839414456682749650199978372507549488536739540063619991603145858427056116045546715685941451669074235387159199071800357698895035788217607382373950799336400765025360518552602953053437488985721701878100952746599711879208911959463680937196726629809713855289171785235545946670985672645060385520179702036798230109664770676425980143811629756714502077374190602825562185857623517232130223206828144616078554563078138502446159074374296341262872783348734301491463575691260403814531201692049152946449450986052224338607438969123209534230125026609593704354220776161757159684091225737672056880604693075254930745796540950314400432255925312969567432678827136355137300146076451054685351851184474835996881193555968569676323199633096760487064993118383127136348890647628669726780947193639592345750079591551419274892760169376863005772949933922602693003882493558381157055718975357582455846330340315913371109644389315936018030005542636019589533973037106432844312841283009302312256263411964531212575628141393077062445140868503301923647749863812997622406752769833364876988641657464312279921274101300419659708500913007578702229317848725429400812837876191446069941094292325807925990794256923667836733233303658679432227611637689546998012179272723219900839780005281394140286130660256973425039787304609280590098616793137864732299866259326817048063386913349387849372465428073527386390899249947313488218855308242673661251199504691513064781390304515345556615174599058039354280301799594007083784926514434205490024966320306840247054734075245504696788685714072269000457050756420843653414546374097392115839194054153123349038982114723563883199016821259492202801451410990829821335486227520732571944138094650219130179087098663518085536754938172390143801372898963981278653610199525859123519858592274258369035061825438769557742311230486456087636498275510738169285507889982155187129825829186287932026521776923773676130517746199985359389479629936797740740183546084191814438319852717823725638573839117484695257667991379051953214178319054370681302199492668291649751414071544309862685103045729886183569857011812844084923762836775275563035951219778454424288357274788347970918475357635312600958489171873187014795874264368899565612498155434094223894649371219954679771393889960934815167532960198476987943364383853955934755247133037597882561466970148014001910171048458620288756829603266040774164922262708305425842470043690329995571147817433323862198113968606098875103962958163049732080419898710305073890741012724325709176257094526480921280950067243704178948172769754834744878754378473372865293338245973010581499065688223644091774565409501831034545291196686388467602997329583806084330895199198372279931766866395670127991808282818630317442269189348349606073011191992262924625126053479101776044568082607824379878334997528749118094850825000247255877204811795121752391899453043650212064610053266743418787714646559441304017127974038287538473914819487899771969392288716870522894631092498319346954502600859791817219093299254380924898173631005961995899221533978407547638340344803094471311771314252480732622385145694201862564370342638233868070283213900898731063017137323228935750299279886288699066637298436675361242963782339229135219645695708399442746254421184557228341931921117585609793347868183819864939743427227964968818770055414747364928303645738985007771911263198086316683237118867971316296085709775660368053111723285848014105590007670810957324809397121759201205924155507693414719801213046113230096584620130979389588444108697355635579316712165465313816440254055271712288868153767066965147125238152132803856604930660794669464761931572409463492620938413935690603288637155009820327392711134741945157809940834075020848306540026637865059940093744979221315024019735345645638565068480555888303492014252421740675294267020662320367961491384122294699711326789572669039370859116567658714920191152342664818532025842757404113006592166491186982570517149285742423953614146249026413787422680812561295601198774442928587847686613437568412870458938968986839681901663653229168228127206637266352705403551617551482081870954681767769913604416952504100490847961282009826176429717607955915552750896451288927201479128130689626682041880401875712436279131088430997969818458244478553286775695368698528441757558943921085506798023464978746214535684183426279735844099972822222037583482415891054637626662391492680563253950670644122872880043054359876708874734470824812480969833079100396488882901531294879969747376685359769447028665776226935927523063701862922786076532419737551061279535999543802866880536899583854122422393171014134300428181768306057253077092720121170583327015252591752576190972808179838698286391421273278384049999207029262015700882887508893204675287993832491995460834476772936180542413474980766063864729705851267002468584529635631018655907104127208590438478331556116684561204717666959647444350197714041821808557137871075743260761134020519646258580985707537598379398019906067049536118344180305192648595733747253703581699015604316513986873686633422605235697872255866417662783415582687393096972341334190963191742366560045882941394705877466080432490409345371932331417610908660481195150374272314002345351043734984604689860958127942248450063089868078312745174907500008933681290937693159971218744521147477443658349233586736815380144752108888796246516639384413262489777209473396724136058215935196422650619445514542842317436378071841103157156074182109910726221550388060677599334029775159086945178472228779579095418128062930603826529615192552007521791894549048297103769249974959986225237901363044869328727028727421633090714859398754160768616911642875287794476888804846425653509327252050065377612198404128645563126005272638635793624781165655686352602052936743586902988252653716232458482274910964118961150420523473689274163558090839078772399528082322523640936603926215446820998340839382683359470759079025766361709755923604896604384977488210549962949376397797473281721334815756223359606871250870678697159582444978647683290815813201350921599147435537123897283729175015687902168632561690753888164137613399156035062258931142496231812287823631533444658925120781616975031800244794777907930023681483010568842095562028450374301905109855391027478400704782089504661453097429954929421984153965233649935694517267335034795861675343785045750485548612196499266597013715171863573171843760170866481566901821893430721951609060248229484870941605682070266077749532486870176446125527903015182479184712370197483113873975657617976806621665811033963851284227169267171866944244253447464109830367429783250199232332971051082081116641108551770539809449334703333601418891226021552237880172338900856908093065900337303415798590702870699140449790752720301282697909864791610243245866185956704383646993395665361226949405624403156405309635016774821642982639515429705635724412651114326360677517602871585187223229967417595547065377220718322781885773798135785807840899803047470644068282210672755891889955262899957233739840456176986600653388158304092191307359647992469588407129385177263251469325829577000900510293780867013243008616626272762539356290484707458566019274779114134924540050836588515279731986575273708154381614394457165950429500807069465531008265081760565196804040298697574326893308334390863201529885596453098266808179299865869521992826938418318013793606757425327791519252101701364829516744969801229887408119328195206755224985678901841473692861143153077641815142505669073893389564248404109528319936380429333192577405491799944976992299514995780643067787392681732465112920112692714567937684267554635625390007728203611066557834698613574128246280873505449883629760309620924977944085802892324222583636403504078316412681501641227591802283420932393769999381867556353808492599687088300420413663025490254638752238214812536219833839487454834447636768763503199644727305075325159907220378293834065598700229847957174521043337991876339788942105795451557978230648737061437359959359960693981281407480091821522660870247424305690962418191944053429263049222639702563444910242475499223940984553584138172206625505153128130846208498607369664410788199912170112731060797944403875722204638825537985483998482927201320082261061898838226826539637854263455309859406207980896360327278035509618562035393225765707374018502102935854177171546741810378701506593351347846636827082110378559193490172725100356227242604496324766033082403058453652350636431733156320533694375096450011826297791732182846499257165260176734834859137524933961333230875408779641341359867658610437220398812893068113499806691031531180268280512981388383694972393585527626525108290260799653677913474549756367097348364933167023279205515268238846827137321789566324677551551077368789637048571677837141127251944173656900230607464579876369550075995183911335203381155424444588648064217587431626199354581002608181446226817650751546229593503077615450175801234051892966175297984690849523419423437523732809632292862751071065735436966924520027427420132129649758556248391419361951850079073491839399080909542381634618256009972210470573799216981814187992736173572878158126172401896099058603520257056496460909252671548699596189775577303383364609453414686476250502144541342063008376350903567689295094696319839105709443086442143407720982079422125805447085270525153164294259224224992382016220389032625125998659155710277488639095887474676046918713393631073359561866719683764376634441847812390650293311135097166443298017456979195085178787802163703410050044657950791688527300296103750278830618021381495351399164185623680417526227490336504552709306126546685800109477337323975444686963260897970566988920103047124242219849708534570793800852923071740314529068004966653974925704951507319955726787142523990665561893066344381348137251812643097003203478086332865114937475586234742240999464725091111453628117014582728200033073625980594261189761041848933082714015412714682828456167940374939278325159976925108458286046479691038943869712274918575485834514510306164142648215772876579874719419075288737462286717850101187209815148041802607992263673654112852239954064497642662660584846607507759992692884106011624026626741675444643357191985531353174312170964136312400476448119712893989087776997996602883566322619308074778047026343639066237998331253726713485648629749561621615888533409358444603147297797545204177367418679733442389158416513318315777452824457484872666783283438875320039328795909753373450407172461604699497749298063600609161142897306416242185876175702451777993484101278728208377517540040986812789467137667407822657036071183898814755056316607596290736821551848351562292439410516298113248116187840719240148536590452367940108256339305710679598439304512046854110028278590354297370748558036799137198266474195111156110936338864068960304799827632215991708150544040122716178149299245458097820837583119230477474827032924808622922197429468632742711088885891278946391469780565285983102268115926967277176430393135454300348291488664150781420850905043731474364810920467605467716324026095943040551948666134261223646340488418851015283373579920517474379085409662248107763574561892613467232778797586293641111688992142519806336094598291663677034079475781979736994076563778003287544801603916690260596113307594472049312975355843126522478803909866359286990154221133295145131946287816772181874163355963468177054569897775870231029925291933343977726452553854543365374392452944162890773080720632007108002707434144386360717455888816627366245638474072534362676404275280934124723686738217106312343515966910544967453860459667590910948964087590685097711168386291097491137776993188151087477625358028575170895317670491670003449453418329974878775135255648723885109520710988106490109231870046908125324686098401607039134929698520319085688588943211636457647418009362140360505952055845752784354746371763541227192581589822511469779330986625822363411454059205991917489512349027563504801055517667800877865895223883717695845532557880453383933326156724702232214067559160569215808778532266357506232272185579448398936370930336488733510004781234950071842995536018144082196394086055020861023919471279579014412157803245568585547121254600365889603048258269597767829752637671287684440156969935126876403794780481865444387272850727028129185544265511433045785128787559412555354703727976221373820611636593564918931130362325930570362554035623304912372892036791883275379418217798423217314933624820280769709560875781821138654857153352075838758614145709984441400352448194519254363472613106829028516721133471155802744432474561702458852160022402627226551271849249618652592854050476442805762426699165111283736551733348906495483308363015847281367853871830346193210338522727140206458684578493365844935011631744729314998621200277688176843199751061100858533711693268264444202030783575136336923765006107347478691680834095305173665902307404840883645036430521649083855072535795523633358345869518704204054529501990103958081808241969675121569149053062726668637558275513237446650349992313885301848151381876229017704458463578838685794245192023062073957335803138227860755813691115876340659659217601144255202009673129269625861767385747756318182768350214429609667825945435198190837918179612773312297236388536137397165291072516942028319110427033793853574800659264693941191055320293475205691690143607433313222255083587581279586554951434828976884403288514536688796980335914014229515125187775672112225881053128440017143288046983869777468383050132322128407514723856238046793414204249086623990530018898522686445884552325267023036011983734808061680400802930054454663580409314465726647360997714910410886563956775025256393757530561105971414778735388803548864823872776324009364135717588330559351968904293343942913163053667417886515862741762095562407869945702454158051340890018770947616042913306399518748504934722450622339915125776635294744329125473513139937018869286554626672753313527013107644748749443916340725305861394201896774530659422087362124868761998511572383761918062018572831276625629736503403892597403950598597085508020032819633004612288758947904809500944361020298241623232838833426958292085083300644394199898382840192737476005255583364038785285242919270691693865049876419478988826669691598362168939989175579687702433808093329726332797503556677995667346740304412523160350673031671251118860815226782250371365470805739380185858955849789003922808925472325417598578542050900126090155981807020822282535367591282224603100421140058845754592771374592693116776150086256697132181744655610775539261663929545101173481790330622812731172739762121117228141595605631201752299395863494433590239350932992139202816184864396187104880846257698869492177303048635211044190034219817902356690804399810596365618512732930398720321838475867158157914201023712539176853090767648039698796264875566157857054366179090252447073101781686607680099631556350735188412706507121304981780996332206465510852268748653955228486252479409456052369197867619489274234108066088336835922925255513747052705658374969825294960702544114500043147666900914778172050835988118257280432224365384235884055444178719919779193523020078268578237832749216389832696086194422593720832875416722570977797158528896009655702470506499624516883104103791064654315299463578531112388923448494106476672219386688917929179584174669042060331894951131114761821917419545532553762754529439004205489585585046273323568775914742822707530495187358483363566263491314082061231657153327195346852323112047569719003035321195372528964538827343094266615103962160620898044770457319099803376643082144101575692932654649658516653830664597494558618987310116504096557028322433706487117137227614321133532201811389643275598810509998548535276517431397277919702519727906500551145172094176563272178928604872090107056586375778982942591382667827355821093148193592345194822469695635589250260750287419895080730744799676192432205669155175028774783615089389260615883159192200809832372444942295708724073827388590537988656857747279162767728558247257268031351198965034007312903068102870857342672368275010845756045111126442461879967912718294861002129969279140077699644218217349242298517904011183848064490879997232446831653049886211093029132737160429182166420544824380327393611185885830076951140436266156302009388100346155050241358668533629773465434498817700469757051875927295161822475700456734391057205556900966037007992820296604974205334772279514582820977243993762224032359315298184110264205509266446150207074443307661719049307540328570420575006162867159176312646462678414640297420171386212616475892278904394839948125109346425517555865098252842636313249753418771033739502834648564101403796931798910042423066162090441367439413039218318583974013209051975546418989418819160456322144226556198057332524468083909562514146677635869751410309482446638617511073634194951815862039181573300604936880397622886779484670519671285548705259699504454292849781748358657516715725099527789792308227169526758431475222776787137583939917121196940661739740663045793534412909818605928289781529149839781743965172768946312112310309272436465465162914845010841958181103912847935526105927221702431759572