4321114116413220541570577637245222444021661592171263865885224732273825869312483167708567817674108840154724814020488319597433518153794891419711843176705367457679452376442217873733926272917445955965888693468662976755233261564921212689858670822660921045521689325943861594792490217120327169792723237499587216904596599872121716859263956010994733457813596119487219392335736372245437169845898643189872245098246593768525719380823858692982841997272433155826154557589241449370746452694744461120803257817535871172861258399540791614671067669690485675575933779748639948612937974158443365681381337526776774557741709676398828286316936658527222644790712081652079243716718611714699591264889640908296877633397167645451824070692546271790612617368492387914819957451645126977652136993264543623984384273362998737586428844228427296633769815863805665473967815551981495259377432875783190113477509081634710887810853437713320802968906322258914297070369853573125859475605183363166665329463965516862161297928888617275265155104615907291186595883452383619243819833884714240719940259088646582164654782873155710965164503170548756254577791371262615158875962165429840846220173176672970878450984584757470954558851240499851819135176896339517949559592010834183236225915786392844753971771793218825354086948632255319742470157416924228693257901121299548413048685467541823787196394337517443937526888558491143659311349383956767396432628441416997634281956812854725174313273077916694598269211890567042477033257983257160403158507232419567166311591163292917407821414886113847306035342651999622606188754969403283241121901850207333124593501645469311878494651918804390694545382750561942479545387589151426228333806175831818618494733754688552211119951431572377692121656717159962743198155099237435107282505324506857964249375143308986135817237797135928386281215430721911948241474760431551459886778627335289222234881513785592697542215865548616194646447290367944374636461661493544386976889897712197475479439284583466543522118184824277279544578397564821711844992157299072334544344347393518638415773194913160896241788887377413377910983999937821871575474330796944125124876935907831408948197599769748848468774946693089334245425064251832141337715019849016633180483280473463373469937330402148711175395642486870187930578986661661949150469828729648275129308716375696783413712450946119371155924062393761249225972820323293384444425054794157242189298697518415872861359697737982562718141021917969125832586393135398622427718665355173468650992010379831649180938096823577641054289969506454168791105968599514496071384326353674647229327396894513563423623911413867293312219062414042644222883627246350422260746018339683356399199818442796773048636727648879712035861312999284254812337320868944982526426180896240994851136933868646545715693417557173996121562641842781856213787259527966922844811928228251547046163980684936233822204467873781809924138487141164222260364059366166934060789376123195576129499292509370965413491936736789428734228663605638966713362492208042333420734550628573965989212192423214196569296363527715854172857343352695102138309955132462967357823645689395129654103733491624536981708445212611445279314796423830412478444388406353248455802158481642919297188637397343942282327629574139202993427430448412546532703421297366159234324841957243915910452836224850677662527196569625593775634174766638612913666885258045577938861855311390752252783046428076922838226068623447986491125231645180541554778110436281493541901854839657993766703187708195435110913941368565534722398784628620526343405445368526137747556153507651854394702491513777992653327519186340975477847496488878752093428930771399803170458833725450926978652731839282911250373122871990577319189354515713604175863759179737991051514750527246614825992546437560382241327435449375219756271021485811632048364251373298727230612711876021119171548289774899737731501046109853298634274828683092782124317750895240508756337089107999759468191617527615944451672234885574425316718748434078221077819646502057489592913199296210883535911544982034487321212629114867383868686878985084131330576553356120833533954492809892223317939489667862535718593632663831604567127434314014229368954478686646103728896042953192651519276579803263559577913090598270654298681358951431222459563845954510162235864077732831174541723027325025116013983768653224598842348749981797674191761893263795132525327325192588375818981539382887576766224756281349278566602233546774288911763371413377431912394844955714932557807661545335615687315285992586648443886643165128951292864455345594656679355779244057993229857938482481947798249591724927613062657712604098122250782760151834129858837123411864705792974869574354889538867756922422726798931221558775769727881758826071478185599055376169264799383751155589729514451253358863358215893058403355182966171435544826595034886765837084142520341327194075203730745285209075829874921957462131201390378043993158623797173576734240156155452544599381177278588448847356477959337225543952343954698893738347292822194269995946849594638850225650173992575664115935141112725073803782429176945128394580838114482299997252782724186074418943845233743442398247196559241594506196627165144248133934611766663681613712316415467431955546533285892666424331669792322352673286789814893956552174882147128298833640248151621180367829809933463829712429885344754340374326164350266629732441149538333452867687539344879826214447997574683065894656585496617544624296772388351486914042866418825791272674972519789594162261956127145736671823569353836365674096941379827192439529108480115954339179141142855874417477178312435372387176761798559152951755417227292686132689174530518858328127284839408274825323577746985765795789213810465380694797446886587977573429852612247361299350906842239959882180674969894087597655754114102155749039971871291553356863967671873197765582984918919140282938406213709790619237114679132588209483221452326183733518462987818873437573175192237316863817464681484468901275849737846137277615793565215879612967456532377419849883842487144473315889739285138695723581105761583560448549974360315857923122873531754047846347318420878318112893255868443756939555745886405465834939983220798590651849177077605353864889174968742748442944306875319335117782901685672750385822689782227432291691759237513521754297753835254468722115723127928367431953993686856869349894323668489587143796451493508341886492408361363577505983379786692749683120429736376746466957245272921375692920149078588995673571288259578375948056789251477253158817748168454499871495181671278891968654608712766574653052992533637433534073889245394276631746942681841015643292592182943131942632384437554330306923515181465221505956806372638157855025666490354658753549794057976165112426103638225294735483541928218915443586328290759924556353147812609911965457924899921096899371307391302224886331937785799084918169416117501692883543402022994171224536195467264626998878744958286666442582289288102172359520318919117074228585511048171417636714148667252013863440485321953084226966521353352637806769315018247940273880208965901540187171226792716899578461947134948058957452428519142838519031109118174137639541446329453866774269224556394759603636963794585527971410576779151499902590752475765674506816776549764514922799169675753231508956748715412547611344949042972655169344364167289447858964479935166949527985135361445836673388302779233339437687584668573625291019966630413198934236923532377453507517171567617394808651198084218372246247159114269062174915709064194639282458669270463892394923748920667531455531844293637910719565391811379353168289672797936212994835838881158770603414118415153821829127705948414952103876785693821864517024873114439268399033609954588026101172375931983178258079311434278424326983718065776537483521564083779911382417409856813428435580583455462035491638854284135549941838939999925882858855956643847937482250613099327149234859527318731459513080381831518246379783314915158823921230746526501724905619808116909470109262498841256310336157368064183440203822319726158528203554443569671628645691513617383471509487668794278375677536295475298334144623981796399878979118924040111889958327103765326067841183441034424425899687962114245625932660637243202616379410815470583780776115563751162228628222417532799514515178688739693249586023492911474323644958412130867620254184887935503258979771677620333724833965649756313514273147587539171484709740836633202969793864288213608287704058787046753515204412974853314734609451506375761093197758969925776878488166271121642488974529166441684838433160517024162646926010653669949791916485103446258284963420911022176467238245289775268559948222212130333761575020156314289284659297204647487434297510216159422547824314653545254523803812531915142657583842241193442286141431396838912698668150208469286733137732127382472251809267259741244726715963317535887853294822315836221384121214336192199812604921652971333722189314647238406346716571629931599324772149122996604761973677681280762114212891867213146635765812239828187043208923556476639992523011958539223687268385136594375311422162868239394733366595699545814392877352457599391352787027801530568459535084455343789244947759902924979560413913426760437871405956551431437674694641415516294196497813893967211595696131667842617197642921407365877211856556254135312662757440442187807065295455366384856386758917394484508182319143598092402319809119367546667571624996519067541757805981615682897141757046153884993477338399184313644572934044293387841515687296617046799232226122475270642588596454336736484114964761426629768194755114296567266437996134797076902323601612658797708767691367472051768728636962377494602045146933279853636185988288419338803059606119822121573154308265266058742928928633679957416393953291964437155627877498373655949865879692336168519098625755643124606212773043191057683488153014532644376635169846642687215886909622501091321277744273707555964665653297316958866416686718594525108249308760273863174651846660601017498218905218191327924653122889653987748335881793598873222016351729471564851783193060587471749248735755734858858119644343838996737924778526147013321652812061614587515235723289414296137673809012664277601969105358777669677577327872999217561759421626109654295042875249222745149771163617543543688975359247208116611014768117832711869436205546556168133082197814168175328927484928339626205077659830782257906315414995756828666929779432365314953979283787693288935784483450887370235155583679376823629814855155706270865091449074597341593219569429697271281878617541829736893614135677383848323599686750374973321045879796113980469647154844735028751934769129291063841439824632795126156669776780368076573820566426377490748642101694313924351780656869536466855999817090719960562986867029874152538143298257617022486283931319679945816567798752856926807591637179809990791713557535122758837159874890218888717077374295694942291858973216585858673254665785378588276478215162783916701218849754863525762699212885416528623929242475675695469934273970895988577525403489632820768216623138994417301821729135821098457467373796248579672354192736529248745042894224904098885144109074233198573666204098543729715697777812804331124170435726665770264320539220167776631693379727472524627913466669736835289363636385477356437328648227559321675076399329723212152473686722294391655671507816268154831796379793384316155189903591338484715477841646207942788766753966914484852028348858944368435491839921267988405761204270855868464955891911288337157457181327888386628921447824649448678382342358382967708910207344285614711363883032583151921955798960457354751216597789864597293263726749824318517870432590689094941214161577201415909490256328652669562652619865296282929693653427413873189788311645177196504986854920549587273497525381924414323838645054988895388714824368609517575070979756145681296531214630676266306598414571812943193264453758709324797518567631676645427463212627923639505018243571142376865896313115784920593465218688537650843595763760759794436161335496565974725333349190181588345527121074292541751768894959473515656719943375323558352147103033668467691947177042993850557674293166685212647533105722197476371536171245334462575299556061148013608517743615558516382543173123864121167529258881407757954219704379233527337646533285984918612122205741225897332563354998944967617732229336906879765573849429365575452688924386173741884396973612405780503787307463978280806946437412402596946985941935707128266099928197163125767164545567263146357942171930656299248445375354935716946053581174673148487925888881261432561184599752517166975073678984616450272333132763979919971962984080879093439578125884662155948717808716338257454087327463741569423864247443955566132439989682948716964367849418821429157541634270626465994996511480491285478371469925499010667193942120101370672385249435966940769996572420961552746191278366693080901698779358624998151824306686192084378493551014518066272421529355953859136391422477579863774829184025967557594040575741319674402785296927795462831584623972471832884040339274829627158451712790395732311375868844548018992247931685722255987340686918972223942989855391399232336361187522728766613995309641656445537997334221704678916089283315979318528613262172143539379458734790637992384534549819763113415718987260235494106483783561287642581089459089181386578224405957268813464461814747265088424971475315281987392146256285251832957624209559163754748532155114667461355777561427432128679091734014692225198815814935752821187669627855433788304533603535859540525849282530499699827742419325221127534322709285899640516432825741305175903968574997348630471241398221823365612087563199237210972592712536357153443436428975743771631222934410772849299928735160368375129497124662267230427247416614282897595137787981673393214613933029245415193144559485416721361435332463304247769532746526629924571769797862108254534337755428419124534767643330581026736463958840176642936592228574957337293890305193898270682983257562463011804246111949791316161391541280315557862349256890222236485369278472707110282999444613298125543223296757173543693923689688236648434544729365721447438286728357967981293482981094729329359267461187505929161441446750604518633592812751888589197325935059319267973651812327211274575527488847884251643216553762919213423361994658112578461035845795398886238918737198691539863073213763722154735764662485262818147847995340662076864030744773351333374080536885242013213289628680624140895023652794781777495350414673712743824913122717585183406019627017737334484765879984357513348570213153675917869073101626319629942044543586655715408574591284946882374067416087117018898020353843578772444551403125215675109121419878265376755289923246393376981513403017944568433527501924888366829612382486798355468756116150607893998512762475165110989639665338874061912124124145139078184938679816619817634913429486321248798744826795194468154794994475209969615011984024423318482917573594439664825572437338665636419635935079818414548414592781415025394782523448945943608979271729584555484625221973535534312367734920997313994782209560272827978696977441216839314812542948879582628157119837692387434314699877305973321619154259452436657743604939384814446077134483379426745193973745134696826946935695449958504989269487657443188642972551457210864717438558191447581123597763495581619756687166373890754276523716707924492932372886597130681955488887201032231187341123552213845612959122285852607974187029327929792238208226278649265282341660192887237668671555448027611932135389447532856549182369446037952174171825663681149428378897849564118358612033535917716317499131797757541383105250194978203846838566976940141921554542747985879171781697116251744692321157905169184556349199843357814188673013985537535349326441114077326231258825234022659357133871548575786240437552753048695141253147218156254837669568351873644230227965765873131481622118595179281895622954496652936839479614161836527799434533205124271422116835358971276229653395109352873191494342237342461846167526829977812826604830188392455833928515102269871161193618284055148790214019991759389295404253364181271523795871913949398388434154292584337110442320437060266045589057984934659074784969468697442917875733159363377424489494734053878645998464939861551767197816208170645630786167424254951751311272423559185467583975389634892740681373796582866410288087614168892159723658975316709947442681124331842495602168505595545073714284531348156290633562548351693649258134181957266823947668917069813466652882978119934929269910171716838663964133265654238875654893801163738778769269938760806863517885301464165935795277882876696222452864583388975339574494709053544463299463889722493637509874531259161841519950899343594862258845642724245195539659226471672110927493595244389198306993688779781186116197221356448755642797446782767846373794568559528920899751179047719420367152761788115071115864177121755938642375745358883830333977876818522620137969509244171685428828608180597383325328579742981955509288737536125562397675377466547460585158209130829523376729638379244357769994736280547918894710809188553526228798675121943695954067898355309649523623521875619479419316363939529525796520757986434941205191146228866838108965458135547710831352804822271930481895557050168871361841177078137113422318294861941795519024145863907088921097522263771980972285341455862850433432601973693518839938412481252759368224833891701532523572722135671827298859657194827340209651646475798361745425287131617672387268503258649566574590613825554027155395718458651217795626496771931822466736223334967986855454737871433525121891134674221396658515434790511733296689784961383946152622835659316877601986606920659537435256396691492636379999451196556471566964958186383339468655995554515983856728673321982454368138343054338471738388527245727299878936294687822957826297624892794252983594252129773629365642155026969784122740788219898447387475742356683189961246169693499897444083687665464042189884162690655142969224899952165144599541639893793081258847167030726666398198102652827031195654829283367968109398422944411534273441546653627691273347965997119968196592553348255930497246129567435525582748726828771458206228921947967028187288313865377675342693888942702138617755339335355064771932138945266498123285628751316622845867722386619781929242781814951876581929483985964696863751554779188997157889441679654186465135244950943355351087144885679820541962836957805352236763761320879317431248609575643590688728117634946611691622241834828862521986135958194322996329343823938329589974416224597064556131163512101169435099473543852385772977247491582648406218239651786918169246822634379680416567335899186456606636773297566839364270799947419138657876949733817831747453589595464510125235552030289231445983809357436071721715628927395734154731442379984169925923921993747591987682832565811499577174376932199366894181969653481193304631753493479681825176325062219360584017968524762814862882302186903639389631435119836968707561529552813911395582511113645753964436982974184567996956491557424193671412896959339812569630979181787076177650146233442311174964754188295551784873679151304650225191907546514940683716157389344854311010168676134726856468852036954132272598409183843034219074918324865479141755546332575733492957845360507412509241761313806311944365159338752080718756706476427137167763559324925866326911533249245773106584364653871781114823415949702318474418738265688053978583876326258151586824275191385991347649439025898765596395507266135612264314874021189798567064733389296874133438816029512010711177384987283424948768653051799643299745381332867060459860572342458821628140289297711230852310341158388687585820324322501271814864926571947059767568433988689255364928651289422622392267275154404595472193275012321858675228765385611695647228125522464689905226789517144581467059212194833613889441565251682987108972285566824932765849894449146351245595393529776839424852485537494698127153701072623482794638807974927663982192809086315494991329946557154575512634504776406971742957666498799156187975257783197571956826811830117974624782289085907327396295284564395625275867717552842987395575245482432528429444767941114410138943483186229460348039436