527347453806055313899072580996409242216007756561767336850618600405882576699055642040589071093634238261361509870281404821479302028180267556298079098943086812748971163001307486349128735348740059820031127434898814547379179755289195655099515283584599452741335496099391712099527068253198600552193071486558824208286359235671008535640710554595612245303047614057526399410057043673477095744955846631375851849157863470108619185526134344369086688659370836807760952372220466095882801383581502169041525922031448951247588541883664844836330549335904840191209289067360341870213258715031672521883211300602524093208306845259472883161762547200355901640122300586440616897632439736361928349572198967122488909862630191244691093967853245067831904582188663091456864624107531856038727621601349113095922183856506566534422457559370761170369690284300521590640397975813808776257733361988851273477095202496131294055415722370037195599732416071908712889960744481012028322526001416070172046435988156867017215595007731821028624923678836951708702898661921368921999548278124336416633480516340572990703070958182204629548718808572072723270708247813095150467764700688858657236786973587197524757472221261338847348269112340130161199703626928843385776742775052815867729467420697981648692564266297133966243267512385119740673269876375519705070976586578124555226227767521269099215134827961777826207602789897327962247179776405573517675295193266476049710003929508872054085098216049381172813597132638558273170536161063001833098392168289345117957057945536535785789897759875190142052839684882179604929843936406280649624053272731925127409083458109096541422345202751196287797606060153753390882223956895591097156727310968205588393463669488909590116745056329786596913819385637531052064653242214327664100433496423470935266289798765953709959013124304549024947946640260125205929562190297091206836766526553289143089668166180648522229409730686073965346791338290416617589211941842281531028320762716100501505631284157192053489155117520700801443452204616970325489941041083468137295019086857984016818458555495429702288639081029726112453679318051248355459391358582184135933661534896003680255069420285956055034541332367149737758642564057522239847934615014041273847312349607298683626685602140727537523645155851323960809588785735810972711703244521577505116737124121464248101613164302734242108395521583047108763744980393597326346821362486845120836164985780405611888118911077902361486074798507132814342870575748667742714512795675916709901818446133587162733022873715755784915247378025822645167897893278167625756416992557857619280033043406620032437251247826978250867355817065249559313941905208689462131632107903494376873033594758985560510035114515725454597039432051528988185719432213300746559399642521709131468918731189198470740198916183715969289528061751340526296924796266519912883636326663528872995897584558314635750009084258528100566949517605786025089948170214808887316325124356501707371366075236515245475161386288997209530508131103694839714184706917514107375037150437810342854564611150082329665023871471791622561565186013697392763671029288710528959956206448515214309948563782590121630158552747922639193612194225923080876142122930385748994297901574073541149507355472485988765081608229256595813587452042760113575923546783723347746844980304836571560847231327864304612231269967253909093377513134872467811839721446449472263583222031250295591937793222047613338550379512142025175827057084260900483321816939850878649458489335604387261376266281511725139528174679413108125550719844128214206806938300181191271777057921490149657192522642211183213904594665663266042622650082494506451681363304828270369708116945343488055917906203924612384995258257757566423329310817130089754239496519999014186945734764804887047977853162072100594369795566712295823614962378166317854972630734021555082844980250578962605924920839156795217014142922164441782297667818525329651331104510523392839713738320531298710226105484374474304165984198996548735392258488864133272794847023030736259787709164948678173843268934633259472568477737407534715644176731666680382625555389688435222351090567412701389217988264191373916509036557967480247360807887960060412757703422577660301619081479162720279448224161699945931509763331153362190196446878887445530707133910538022548051924429635553586055263575539423704567225727263624697230251556832459456875627681692009440925934359199493376623336024619387699985693516514841261854889671489590717235126143670977865281677097695433681804634308664261001954783804680390924959070057974743403834619211921622192397457996474813206397049148804156699582845751617887939857089846732797786941946523768598024508069731824306639629939023082140386000932895419793643472117642604123397380566461500541888903228713874543311700887881088125528511080043113717403878005428176570801913403701380072971420776351441606139782592052055099874734256386514230018518089756471087453626696219335140039754025635215280643097860313840384608879078286951976955902638534643930427180947483394705788948706746652709799459233280573451832167398823404886161247922300635612677012929240307282272824054065555949699538577397544087933684408715616120692520793240095384141370671942477554606592397485669254117420638232282201344734216489665337130346733771987023921717012766425151180504219945662453793666272259209956091854700174778570988320730311788130329811633325575564877867249525926997373755421722699498670500098594786186640320668214717577296967600298767073196490130974381398100322215841008788949074830343940741994482622187838364100685721005720482006013835126076094282083850246023856281589719723868050182215421314398015478723891465673789972326467361087604933898426275796808734070943202529210584400132611032500310536760056777005806902302401488764192618045188946193312423784703159608847001393666343649464319488899342500375598052867734593008761363026211969141386257790307055645925795543152310008448454001988430891695623243236661639042186269646238391027361104462417387518588342786375057850991290866835619522976617160703132021942109804883178472374749439791377781830488557745437764260986124330746176011012346665573176191217325861927495831434487905611836456979063960269966560296052609528956803929715231814919928748697037352512061909044059836341662450953809494150170917467054012432006588256036880140759787901973760448978483274992816651940285749697868844419312897571609594796698452587761185719703714671332395922295304200203454749550044660299506662394568878295486455693954013389198041103201249368403873204631351507246418854002226204364139255164412139807029942504615121093987317631647669491754633962905859340970367486501644785340747679124814996977247493105796862381801010504111051015139472289296577367009474257273042875612936792800331612391057996230528101024950115344916144490330233606767386767586730368268557889891278398028894409882062918930055423629672449634012877660241025859919886084340348157692352844153312271978171934418489626345264172698144385252962532053009723294399867487405576437995538444104226079751351952880896959074523815901777372443375974354143705901185808973700755435642901751412085987636841054397388692400009243823586212893434542565242586104566432328887140795639064051511927493375476055651706935374375259986561430650640760764789737441940626867561064746541528991966896154471985424597416037144123944619086303766497918737509881469603193471123338304551715999606782830018085062463759402242747514655156256298087507873079187432971172449524705517514884506800121902603065014947083538157237573148164826397406015400167350383022345520897904869867595576812811789680797255313347367827398282218421532357076835606922960349621012707317415989085181506214529358139667312999190395181690622105721269548910559950786390630942042191280548900678020802509494430360891426860257762553112920389056323660199386128640391142947183565641306216992697338129259081940400401821290241206265695924736796914909969942441237426197794810911590453668862202359251317404193270782119138651870968802055380872823636509926785186329612401942902059729882869057340387745313483958538033735150289202147781141674848119386891150841853068706395813239039015285441078244466000947812387913836556279128749755035331705028709715482173857204347527937398667926573033029762628949574420226532803944416505511356474583903138679616915059537458418065619919630243046214169644345570493024988662307963631122814334723283027654814512453588775588979330488695710353569519122849776128631485411038035516475449615023948915137134260777965170060827764539561789290834297497359362688516291156020065431680667585347236426102371852789002262949481447634992455822091372777683705729786745750701242617080617323886146289438798592611566196924592586940940526654227574873894559852091825262175642902717950893636401435663479476092719453156282424763872467850528866142831449435685070763843563333170544733591501031908030415356356437023822111548255887481382340003722687605180552769428488328819797074149155745334428897820711438213618187137107674695578740942496383456032602712336749362559027086469083455522071892872781613983087807144688273178034080802472427675262385909729544616032607666800556332474081450402185957852297475186918683551636513663536447662980368837934317360140613062060531075344130480618229677059059679347068358611841259504051965673699560340539099157005636673876603810180653038363876835230393345500683500008843756107037224839289066104960454204419447634626399244588337471269238731560955007874524492299602082184633366232499943560978895989664739533045645691041197646109639909197657464834251028603688183209850455423924665509714925275701886934735261062333751038339093202078263679634555956323889343173668640683983243320813101355691358011686605268064652540413916946148211725889803528170923921814886235620173191113214293430156336399486463332868361070963744354963540569740973401812247500553420514621803323602338743246717631310826275821329542281246515668975318591570409905007830445426851407007134551946875546157206489727446104682644908504380161538452880244227398999478781799209294217845692012721139280280149987094455489573356063553134199797712701150249270569166169818979123713218436148151874510803459365361505514445182980031621012386625142520064460752910721384308077080200757307328325187357080891060370936263886442542769917132367068262651395759459869914792780947166822131528720897207652436864112191379928795815267450419713805421842954272260613721110886829579720453741767314093478236016554698946640848868391456800332985233787064144604666980233283549511701728362395495797295036045131176247166865305516718572533318826965205136442484433959142482885970066901269786863564779851680028354327411105684827560884538624967969818401635570750843960602845008777337298469675679972104178308487552543612318535115447268429150929002197751691786900505318260845222061521641042774724327080469929858977181456617317175370856830622438060485216234757171515352991827313082664033155262899085177105914599507213398679800750421671561428262833327020431476703143986166732639575419328452222162898614597655202466984315243250330389664118255078805337573864935348356752836245200731237245084893262859883633446248674026833354147735900004721946840379777629451411188789895542335414484321102272071807572839115291662772312586379035533037086903081023227173246304371012533753225251859194314503301486742311799827175517841895942152190296247927573997575610332045468134901551432712104596974738700810193750544447227646885751689002431904882477284109339527713242743886577806798449828202874055454433887318406354503918554964635691577887004816831305015292532677343082053006581639052153246624093087750172518647786574309548458321466444898461421916336819977459837350391800464394417778077056087862664815559678709941148254242615762209535379935494250797605897375864939251145644143110864136328247993858523083915064055122569925421082576138730894195107967347305160966171390634648125892203832590369675082409810902134204015911468393869142107040687779887017328359490329228971068474206159850468601997536268146275329409259799403792718585635771430170563905048490511482156728600132001909692942876712330548451756235950658895635311091294511449152383706803326687161537662052539096039634759765148610669749834511125361847261849024452340780562391788707132251744267742689038634217591840529968300662878150244147764683743942984291736437273325937866551289292089228423880390190551169211274899129252800493050644159350866468875700884668162105431523564245061338298122065587099427490241290649989030451382979787037404048896212579982428969760505620363166689722303305052551310062236744075821934373478320934987176912909599722861664093608182759693819145514771415997284908730815486114427808852165320025482398549102228194507522647804452729151524094482685742543265604898927865230268579645902105403322455155490008345133744147759001669653694720942054187296715271394577119548970925216196718474684014904850734360173165500866997081117404887763169253630315503793006895521628491861268133473544873485420102621228195072353722364370093515091304395136891642144192666027158098354832797566255878113593523359412084684609664017530544265512894977018755118605719716923821992649386653363933001605764716918873995873625009098951284429320257736504195543448088893493242969504759099559807852613274969857953614596500778115908981813064671850560078210566207270566760246998981527522125770209378016799217824446083946576538726083781661676304257890231140470266250183060421555648032006549796016485907766444505135686896415578481695150492781369312255849656026636229581443170110140967782022166136926759794808486966891126264383947459732844853336400857027705738144193753215310434278063222838381873640628052421487175792410918595846858791135192349310173957246553350099826528026125280499532772105735867690884595363265511533681165207121357240086251980657764031870907215683731868270944404206207754363845102204789023441792688689936459440509310212468411985485359628562824049856755365906038851647927532201041968600427162705693093877856701872109374417386448670193640317913420713680237236878470778166678118969518927722383943927778101673955447810712062737782617108711946647401507240440036469810326231605339498167830164134452863709503504457177453461374485224418494170471852264561184471135528276926298854283850646597340115102835970026397690523511117672251958805544187981931847904999840573836475394609969262921648852743834287421000649763588841890031911824788939174282807035756528193130082600491329812269293125417052397098847448339787658499502182217993361466469144651106304874746514748432627426334784028442006608422853389381751590131240535652194841252058999726140539212288207062421230634144995466732658437397299412684082771099727730681726064389187726848747323899456060611774282452771301693403876110983746174562068016297204736251801749739611661783631357227455823040307969115373404530264089257471094064872773882102801976072781888319170354242573640140404555596494675830466138412395944245717507374120753595063562434016316112764731358583908239285237818579318231042817293359670450348024703612805884244997671751680288732878465071298680500842359986728670451496715899223086904457151373831299537520893947838258194735745224332522333339869649199431588668130119025764368539936220554896001034279447879381908170775712698655216353635355207929747710324669960071650626666596831449225386425355751292969847217633071310858038191392760093550498034606497356025594349597576067488182369252011473380019367368679147838732737687985153814157563976866523537343711748875823012564452977349683555433687112633652336619891852939102089829835290511530610901658953736799854531214276857278866040982061770479661650452728830648548514440482137605947434990875521159149974408744751947050571716315090486521921316890426853900090927976254443349692967181115099382020987762973724554905745659115990566668338301021864362946123644902446367412525564917289086808652443654539473550165972418546362303325749721982173304927764604397026789855335636996473454170338878628703607471535878222245436571175103526032444692969558278447740694347457467231289615328387640911037032496822014955292941366230095457047392154332641476458461627155554833456400139053008587006395082347019394261137651859865980067347444720184780040669529770057136293880251373206317985128410237334248732533023775507955738250015751268884177737295844357235306789793509034141754810552199009377987300233801515464723868041032147892361945177365150293549130027042082249683541833215110719993663831293738199474110862905704570068968317431287062288999657799780530874432616535658709412586497690539102410373532751076164077307987026362111217113492985760059474142390401004887474139863654672287280333480139039610146983511251468214146751932230843322379025706919116761826788576598912724980385249182154025044625274937751849650044965406934346652884078898045458734565427775180507164239798067843346087177126222265583379512593935792470047754118126777283067104787188859882648896341611683006742309041103631403216597801019119024949901343908649173687880167582632668594040439889420240051281398685700142657413835887682097974837905127030121458869194551296809806012785648929870872737605543814744508193610225540210811110293532631245535462717812974841690347722647526170203392952021818451281806036165825061634429446406943190634427834910323838867434625610819717474013480069322288114533890525614916690937207982317824455202995195837862706745041990778976323810368162638073840120268749135976109802318989441765149859781126037348508571396894591912047030720499720338468872769266437371596835181688876772676554609635281596958245914654296988313786425738858737024715526487645981553361583072398890592699639663743444842457128937589473363298070207234457506789703684984307888605273764970281631198536826124348530151557866254186569447986199548823567486461541089958979189653464060298997503117596261748297400102864885829727864341762076368552554116196235188595315308317941886769045514228948892348100378206795700668852706799331639705236624924237878135534673020959911019551912636806151505184195717028812411120974446516794464379053547380557536711410143896978986132939976472797614851611610975714602094803093946249795679104395938356746847860778759228127858297626733530835225686304366660652714602679888193648417281728372041173926702283474626941308498511063185897151790364301944793720213139501109237985826412673373216511242619886039261343989561271421498908080268179932041643660736863885498856445681592634686920132148524666952246911508818522833227089823378529882232932139944515311651199303574968177915479787334786843863313721231916396818921754757753082260154262840204971647175466165135962146441145551041271127025213289570342995779168858056118655785082130492537077728377345202851069311183315467666639064568357115802169561077730695139664614676955990176455921012932939574808635871327872070995823353994431257658502153674918364719279614491548487865149864578253632148444680264419769403096658947646853101436757779656391083092031974257518418563620463216731212744965301323199722481823495147039986599374707641413490921442121104134413896791598744836470082447643918917510531133668294853869325059506000514278955027598148979518291910334694597972626607647074309396748929398756331848844711488348598689201698798729683574259737697266881472685656575724367421920523407254806640935928844674517787439258374186908314494304300276640404021849752023799567938004539191369341253260258081190407678260069427179453088788522269498247606895038297001606472477664006939573222582298148451699549865863880379208045514144003861107686955306670787444884795070378022112572830838139586762358627029166998036284316332405974142508542279352430888251017535701282696973332490434728277606226836973726006714011447707136458962597240203682538507064341474914857371192896453555028694709099269521406237793850446379557443611810328992336480330321522627215660529277836714186419853963963981878786867070526011101806527965429231541719099815894633412065993885387241655238895747217431924216138501061338752318834066136969045985279295416740942593573660293917509808994056842859767710078289860987304126945812240299177788833237258637609326806849481811850795528161687349589520792454257617729920977501284074089133536145164223891269069276900844740324939693334232434258685389085171542706400502085473312395346144790770768118174595941675640277103733192696708158990432586912704517874834080129682276427523098814963206178600292045857438536470017369397507855237193620011204919875583593401724970902217268296111982825361519531799522459445568759384559168924633431355261334834180408845529391642352171883393953535645774891885861739006760851079159392623903313217428768615907745431235995834734607086794649468643798853739338426444316060974613848913846259889637223111665236292033529469375386883135954429129971547937518822827882747536569041056973246610160657382357607734327292835177963589516294367563905838293385319049721047113989862945042549244569294264837678036152163758943420170522941283507093510971734507234898344547496499148432053432461368833960512736357750844151626718325193982330382292167926612817609824759170571558647005413359750869854825769306373463192962722001706389896247108492407640998970157825078888318865559045230850010049098085742945198721112613881220140515174390586575673269628922426160673132254714493637705922021781032941662181389398132658659774651915901931146221822829444894704047271618702372043734931666327948941982829397613356521160959064958806352962980839471533475052646363778408744761774574034031821510485105053614044749078905394038063684709355227681395077536463256085672027105754003052471130974220455302234486148283700389412321394873325075683296401725427647538224844553767258913697948726608431679201755797316044193642073269707813001539271809160281708878884634114337998213504030961687012902162364539262260100269557304384539248204064611267898271523698822380241962379383204391543114613161830198196068610964544873192321216827683645831676488959532079993691442845841004349007693056816142941637109811020162807668034945917950910825277057214253731723689031958038564655543086743618725057436940892572381768854713809748412485692242775412141933196673514892150830218392251734174911815189905391058450007206831488447423922215161958955396176253403735737743189611229886905114812042061819320577470190759243342859601355791489920536002568550626653625473964023147954722131806232253036361239610922768804315768893708173182023542155312668290408834156830274486959172675599954623217447662471234478338560824400229593429684383876691289601080325474360302873426513831757684676115340420899543308726639397168676441588097008573985571988047765998839746898234608650028581535566743305354486680101401817036653378611511901810778829498644345716802352697268126041421603750822661211185528757897365741464411600671718491583115913815848727241738555288150326491235823494521157555658788661965522673968748099373610510216912484225927638183015169542434924440118220823839656936485385936987828062726806588850722883186419637976666199701614241103419959109280645264803975093841325150536254433404591720020152505938493675502071506480395447157479935809620880309452819005104832127773679958000845601397045657622807779197428933966019467489132370842406290964941356912940733175596438486910016717686016725889247426996319920149264808429475915932068787656295357623660619477647346900743441460366151005091212127704437211596337436590172793537347161798864194370118682577517803190685925296237504298104223169316993966311228496301854170794174468979675009230045401514106145337918486364187359939539146502607680164802661028058072263070192898403157437115359570333580285158585611765918559092137029187605670523989207816042092471075941729010738714140216567857263077160592445261709524339279077144489017242979566725804752608743564917702373338605541475616835372541005735013275528395758191978110394311568318462097355234813656483724733966653793338609381043183862503213727035836827494930962285190128225159248537103526279635707895204975028875995019963051437663841018456126582449039047302043251698488276690790998505171532106251999026826936760777056811542757985462182926303926573462824146283636720155800377921017089839571924614266947700562138151643683905261233507688814581495738879797127377478877432962700446685737697434541260705691333688234035607904373462317294492638062964428288085983821053895825095609987081649389049856213548905498798215464937295933798808041161238279526765217296082543870618205809882083711876292206921858547373528618263483300927133464422474819646991935677829869951048548713861460832696066000338740798416274766745778671289437517468558851488312090086181493076575983474443405743240351487873646535229708874909439465698102523390202369196924454715010336990502013935142098300585065972557139767609390698750081146685322367493720463220211929053342990726393104901492125615640621806876317092966853752253151676033967534274776376142828355039606919849084763652606658416006420665361168276185356560154143936178365619441914508970436785230537487626890981492124064762109947969059835066602598111305482820559757069851464695394219097526237787811600219863515870683668006713464130984923187929254194699992875659160029132813639396679919265768875715564046176734631543688220886116273764624015052000844024939633639200722816238345588810819903259997731330114432427427295400031636768364723707867578270345202847296455855719601704497161783975314858633809111872864932334966078829706957770963719394693846564216556008618789709414253593531423777261802483969447042716893415742944780245342549845011658653034843990504505285379591245657530486794797172034873829400049965147723652697459782656520968206671054005124771484457221944317511817539043285409672311586151306575709942573052382820199352087408649169009338865412230829343254120650054384508103163451506620957049780643153474209476187582669097287106501784256155269188552609062192200750689528508189642441304412809321911817941058370666520736852268671412885427443194532380174132696121606270389382722862338973539489609016127163282414849806336747630969846743284045000162460572668356117850501265270853448173326168018546817604080077938037375081001201116707253845459688274229319700976583631168645614754903500520610716777883559531657009363653946466164142866817729879289557024082755786234001215898908632513868931252707721858696579632559167230854533752692221041863424782779368357329434355603226245498350116539759854828584432526977795967866290185947850659760787472558078470893744137670153522222751095535095781925131046975323226756003829088221342548144521214751203094101090757725056558464778234508335211082332412094483062610762711403708894031186931228095316464092765348172551601385997548911066542680802502673391004918372306568135292624311998488069750158715375770549044430585539249677102268753631121404497487964120463625230352909086279978767527034882542311865561419848353111489839746846734640723609011862109754083917685450190783138405193647171069958853162360234253023181374685425301678922196229947462228735052840036634105119644338161902161217758519829716341942410073175830491936391906943811072695998796500339793003410967453822717850232622762844312571499283890624268032789691025931086291886181614132980153245543780980404877811221679449768291046905879120694288648232598390542986408183553734300213785152543921579214634569666258829751618046919049410064369468725720478300348099277439803532181216355550928996198161506495695285897296936241962167295934407641998601683097239852997938280557838477078101715909449392656392091221119698334901977599936812584418719813861483779810164362869802041988709271882617062150120962134143532431912673263075517652752016262150621027194628755563153801564348998747862372162549462149434774421211094909324165578199830841058145208093217332758331537411346209259482354358181172539322887844625362848213056513137107390151714555511856179730470227005334161575845341934812153390389679110459860825582503558005371891789053776153367528673575559041889614553855510622051677327032743933633266590721265762479611645060840563841049402166379294748368117575534541856617271920005908571734373308066521540917489493576345535415219872562009094277217160522407053055882617596559954192948547181707969724051933809051244885981466493722522096502258294765041272882433208035848628996593475902609387244349082654158875797195293070485834373122743110558622744621127506962754253058775200559614497029838457477996956320960551080804289899407533291217340654588577446085694985298203682818800484098398569211383852489152789644009856781561116250530517311282283968140062247221881412651877550946216917815091989159854496823052446835023463655023408631631764174844393317981542883858331988021050068281187703792179263546092552729470504888586111788833534706672567616809152960675777861579796890019576367607669523865267986118729714748905608362765293861539006547891839185607459221200249506461302977685584863695747556448132365361901662334641233187750241411180301772623666231796939955281522293503459333362910597326980253252729631331111320210404632969785564037715404037367631690634933360509878165199823121323184365108614512666363720463869405378134586652205576681927092354120140408997326962401816810834701026871684328087474960707530385446894015687489698006673167627296270968079724915075940600995278342502070975867766286038628662707200314757854889543638318088908622814812588375441304036042308247769282233947967973108179393282778841251353972569876107816452872300973829161101101999977135001332642211126387159146115374283350247439400105583770333056615982060256608411278296695016682352389074489843116224676212731215887434078355131935365985334573285896301367488842811160681220953632141294056111444652850281759929077829816718230858344097172042166432091271154721145249283989316403916788068891894540674538259540825159363692460262105133963576564341780882144847023936770454201677408398137652257577213389857797760185824722796932758641507988521764447648960271863228069824331097469684899043130096514567195429340337271253418502542640632430258731624878194007618051026732716472868525080664511087535283520511700179525587341205406559432425068104115098143202355674720044472890319662648203474746051073849550344462757927607341359596365020856164047662848646455934669991313559834487201754030612982881699146281878974980712806525370670597995970598107850006958492144972999582524147071713642036584120618466077469801379722016518214127897745476538480802350045569440725873229311731372747875760150567390074800408839559970133394825236183650921338508565311959748504659386893976884949357614448339400659815294148115452151114997542823681315378625927539190752031378758843857640640586518770864728728814806219170521451894759552324657243124874245444226739055450114301446423635722945030390473991976651713745848852368379502697648788124589300186842758806151559463512008371047403507914590257268048670409262795792916985896598316375212649761166397074154612578687287349547021086650092942738215444219103162612443725070686546377626663442472851598227230108566862373381488806753156061163803552861201837418580228673845768558179119018884215079508816888658303521440263480113787356198559056931294528701699070995889815295954226973116943810640663685751800401298567712193879015572811328844346122113851153016925235935925453594000051988889073407923541042082621398166215885806634162120835284151661042243897061372209830003188067798991110862029615848616790006924061806582418911043267516109264413392783445837892023511341612530808526129767921072587244878192037480697819718799371437228324408839893604966421314928757689224540805298837533113871291649703921313490367206735055680235095344350303570525057884283672583192771735066783431240652615783122430265361272339329172379406744141355304522178609175020589943022576998978364945514680203400434852959016751274524679314264271842121604407375115320729900376912740001796821920964882825256797222036491018711883954651393594106423379069006447358922511426149361494850632221878030720934870122384307552976079822560887565144534750025678209234828071429651649938193769187763857054682930468941406857506265677605645927344885054924896262606332282924804792187661597419397759310492457199771943557269817710944855927556947770097937672980038938080111581848071762695241929701776466272790510908719039305544337774028695750032157901788047173911389850202072907134628711462332843414059784397266338000101162632956021515223315171852079106937042346870774407714495208363193998315315619172252597808616181756720172396934120840042527767128311407029010330921435845598540356448340032261529150611240221299118512563506111299451098741368591609679045478776991094082134692897339948269906353268992824460793240787188617862135000828405157853838094564011594039092825467662834886219042716331487647856068561819718987785679948272914850548164175725476855632983936225168791510766714871156794023177234118736802424348792095933420499079669619827893709348749455919937918294088241170043746514796201635839099724780547049238670394064037417540141967492164287818448928964879931084265719943358117836898692039811898982530340336429085018638961714265482407880241042291545813376338747250242953375110897190237914414484517717926951711378660988308380431242392076826962476784638381536097918125432482145860933341955004900976954149153579635005330015551429320316112531544501222106327898414638744731680999385664064316433271468377820352311760042290011931070720947206892932029805041130129283699686339426900322259805590456709608873335299658622400631837019060319833504792436091651750893805128065535185892228981564212729385978336630132512358749807235874816366057735267701454847013853650518949511147246836576478518362254091361942612066718917727874469919434772861467623745222785633527228661990910188599654785359870997199653234403566879745191529689253274181691858961198787237257231333011002665441383673490672658502499398530563928470550499939602727689296474522458843334459442714806438766493231078403621364910404485854886765667647861427928004636900911288433608738016404732329664042256093795962987932952983017596400914833908114863616789947529829683017630528093222901135959032661748525327044391619791351897000437128925651263986463053750653077138049761172696947956116849286713868832690011619868644228733449749511388598037984194561845257165448372421243963279307417069210946693825244803278953571978515764434826683307916725005752809246101040670954517227184263872177077186106080518715514834582350570902664887707061056086114023287406333938591787832074361890316766037093198472908903281692548227951078456169848634746773148361239747780035189328914650354978165980654390177259102633763694096273146045840573412116715207557222465905609138874416657227768382534961831677469996885024183900331168427515445056051939332722112937216629759106497083606086201297019113735414422063336018273840564500939356969417315926201080953489163715317402129761242238674377424351275766390526865189084857375547919982960046278150134007399634603705570234749144872978985023839084510112271689254836806238263705644820807707692401679034060886260556041238571426052051483955022246473048780712896966632100761208496339450708698265740822853137519232243563918093027539400834109791407936905846419910019428432317715399163181326931378546894887682428096131946918436033073535584620048341038990637073904656991006145750498787865112260790444046398906508803318378329969887325076632678866733531426377020763877022622530793468652448313246246225972376506872260657399462934782316834146291488516239360209753805891832929882567859361864221824217299715905327136823024785729202680666945141969903254256324914347224836803502446226000310538587979976219634967906376510454428837835634323217052588271563878983928656466694705527315893120573008010062663541273825589097306063442354288736724530860042612022667748456739757034293347931477231834830619745142056002444348403916109372366376978784281256014076664063611940202012817741704310426480076249959498792233159985352275085458217271783966275966601413797693428399972405034616357584126905425382535333559984043829470038285320172866850190320918908290286842523376406378596703220879626273520832397291741148423148402094883528684130350859143650475859410113531690204669574894854469496671546453053574100160187063725035988194017803333603634014244981845007607208725561306747867847968890819788111205131346008158896702742178529828047113356025435898040558956278533751671003103929858896110977253473249065757542962494492623717923170299997150911728066353098098028441528263368415877988706031670881008785482839351160710103949378922773157579168561876421591901661273092510593060993447475870855567198908424889102354871057271840552123272922611920124540001045584649423274943372788698007402343619861123026093459260986685936361388484827427492449522508329939852562968179659178989429166435799094876838842326235067870077016558078596117845670558509230651250948378251694973917453798906802049517841703923843889920169707985699454973933660324540428618760819385389622405746741946471862375100124332747289765539392548871545081015803821569881151498294690243134579944194872138414726542191878581657710683135246725686253819720964639034440897891814703659500248622735581811835772091051514278070434601862273413571464848225454760073254708368303707822464407206728054981110461587408151912780894147576789002489220143225743839279848036973600367459246704223730668671330294968008245573948380512243726234913436580157341129389048864934073209080013580224251035545631122327753202736370546223822716896743726797249213738976189057222064723157656985393572884014230649344605308260461258961571179602933155936223437598681320233650465114764762487633447532579192536706186251294925791104897067781574119099130862098050907781114211204527168887394926152115193042275321508112566723661631426800206615018658694704739463926362221030470777664267541326150777936303465402477633142776926860220838286382388593168919730413422340788621843574013313791014080701536305122005151111065473018781447922594625734308666233346940287848339286877200403168175513126927853381055975653363571440729893117935315483556921425948842056194123957601881994600703928592836110288974888253122383167992326148710230995938186278464988229279591263262313216727496231378319688235036752511519004485106713798809688180153471203903812922148445770310585561242016377475177589420088979676869277226677224639953973843196406372950555963061503500567538757090666797400074373459348037204025757685236563116469122081028339489691104964545223563584981755451637215471264079550091283371762735212211091380763412939677669807146519759497806632135968788992844080621666963703651449037150801989623690081946698803509599609693271220726130720428036840958334139351898308810946546023957718569370320042763996475641434942159571148253232728812390980437943383454044397092026301692250686420572356725153656823054523077050814681087344442825919656931336445385238126111755173395758880716289547219963151955783948038075930336313900102055098652614198818540559215002102461132038021272164563075091590918150263407025676627994340933312774747857496163412153103430850912903891600779471881209879773734922126129097848373532133169512420505408790592326128952214107597600073523755154540024237839161437520708202055628921871299090392122358789339341212217389552894355815451833979651506365012002517860190716455983056524278237334641884529308764589733120184619655257750683155845927422617716460965302504149455174373267953270010576485261399757028859896201808899116936218561342807949677295679201715807979050772431796760669483972594599216205620674738953520423336698119073781844080972500036390392073673249931486355952468730542408008790785197741990329960552165925039059097736434863254358612596884216641195829552183306873830891944743630466629466689551879108302005861608461806824325440951050780016273946793243499955767985164632792595957608214147046475380925440999716784584670097090179182022022222722546747511139040191763941397017896951339052686323810255551545120408850914247397061779348776640244991066395684937252006710481117588249968489322658443117106403490195281252684899844888284360619528814097340510977321163411044829215251799085588144219743477795283369558014413988761601263312658925150146965303120244117447739909061659718280535941175881987230472750576600448663491701135327477813169417579089124970686191658914502036501867283110455266746474175550599356087365776300046871744712036511667267637384341801640903654202365175594090028648269968321210229321855263917266047786929389341852092741833846873252426240949787258890295914700343807302832898305136540005750181422121526172233830983867403315513126575189841639711506409296317143572962709028354292595819028451120770406458841016272528238767047028322306988306096126047736451565444365559394912675220305735247168897736942902531011966181150838143502504036987701953673757065041526570984380287955285539866515443157298570132461200293993879949760577548836427406921795319079094488841567601400254593133539752162347200575207396765395340351787318408401046518000640252664881036902332794749657319015231165592688466954363041800788820021659805389968131312882439525424686048939733179956368905254109243130132465049438306019284377358294629155619859558178182437991437326815702512869986744370488469736176411437029551586644677157688244370052391940578776632945693780793736177180903972299948408802343060878847153150183308778284232206025893668943075912012675935309771328310452721961869819436581993993641957381022109512137209525036163194532366383741302596449174534483850597888038674509231555484920955762422403586201896721825533060779987599141451046691240618897213577249561808038937694498974023112932818183141845536433362722799621217332801429370634662193883275474057436675686257315093258561718356037017573316989639248315573266485671267823027208230535804314671425152059284918011410529316229305053485363637713221332322190022617196201676167122919630155590078360043912089222682429711514435788067761736177883371153643600556052493784603357477832012541660637171793309439617780757872177725156883641962447852847366813326212986420110907392369077708893217578121133047164623154058063235875165261529301228079710538005789911272313265435420736429145291609040351894629972564785503141020897518236130624185560470187889472832076135392362673150124363488596360791336424144972799893213279776879093555967228743952060506978330741044866339310179432270034610314228563182727702179302323976030413786566912465989254346496778600427157821073027775519760414297736798449079521901677741094466436552558028056896584049324636802177383601237789058447516192256434386689939130733232121046758056545566832776355547805015523333960669732781872338448073281935662974633401576382182023081058909218687987208105540584609540860976976255644042746288680956702173771509200857959142518928073979592831201842253526690139433717695899024319171520573213148915589315731250048347082694728109361190654915411331402383631555246970472163622873614686697650814072213577160702152570455315451747260382044000610915085292575430722759791887357703005700326069287955160454178408100067521927109120174427898869162997834045966016753232368534337904948167335064892318978032303591868688362003504585601803548913696512505082431500620937799414648726163175216385882923817553485356547277409631078583864094479367975265180101716275884288604650428733447659078826712852355156273833140397431748063467674847918100069362079353257396350721289437848299692053052572519216282714728985218830937052692186295124984239017129530015495115129749235383538374798072541258312426372256199311529880165843439391421093851845062866111789869731668568035351641226486784279419093206626423104101478782359701710673559917229653925884664586228549381885066717317886242505618418768386988427682744358507564911768875790548858312305202128618793354952832606504118613523235710556289692342242805636184860792973643661564391031329524752327123929483135787018282556333899216189893051041608156093521853673344982310353828173737974510204693151815681157691796619475404759165798672114239097598282298721010198956513532832612392417804527919711232302011297140575368300057236900078527459562670268146908141500386691599943478283766691008208362084941012827083770089178240507030251046984757984157691402340998257228361180618076032530535783604431165821015507469060669121168745718685793104192885992112375359886785526440475181407940161500043996112161882246043365149393717852295863998417910852107869751222546700668843533486918614726466370510245792137064848846256288972732670076611056227495858736120958480968126173190722153987058650115297297616210857540750796882411248693993040356264716103759983333658685099404522420871337012845067421642760553503725173775548247398116455992799841121243857822892691625274023861782894555463681844801956645593164986038317015342866603796093010541319061123604478199815664796020186978879238735117143874643520671361570635722353840685577131011562681963246687222134375373645720089342707895924049829865999487415762823342015290228502658838817331911210038807135740717083479263093231946272642686163387823131836085353688631810362947672795793144573134453352389589777046436636025990865295908163688880067881596014668082805562557578038996314648951790428407385445242370858716295637153974956964604244812742017478920214341990275410938034661803935452377508991697901656407145514187040972864467423243837844641184971319297322912943517586193703416080210414143926324744117814273737286106171340593292356120756124397420574460935202931483699131712133510860509050009486078798600337769688915994855128512103300607500716406970823543840987900176781139965209847827261044451283725208086732671843978922744331088929757989022433184679071822045031602165020662111722444272073844033362148201085208403933496801585345044336293120642524364988196954117971219372860152737594278871169389640447362750426318885458581986290970422328699200406497264281402416974111416166823418604070803107441768209582720148558516666950553618718077493195882782164833620532588804981210708892008405123373216208819792003606082899635104929934820876243850457866306292338193211660212108289424173908252354093854176345524459992396129797123667717795258137858998852772242722635651144781500550933437754938386765075011007446836540569287057762567403892051004554278512965737811380265965931765980971129639905365422195489312647118271165902764719843453254798443988384584621023854112492158203195402980590598560199800391177442483961193103078069799573208741758312256668911446450772513990682189364440109679674856342867762909020580911026865793942450533934548970867975575227402339478024676608139664785187234522863335556013295611285547001684227878073783737099139927016351243912127359856320570364044531711626715946038626231993981394684614189897542895997549210813271742786571199518154420045127364251822811825777680978224782695893883775054137165196178563459956812590877081429238212530282136349123721348014922712354082858308630921793245500744055913633134607019689574085020680736673820203964706777520409568549489336310496561753728756737153675517949999017028853149320669890831007998912729368001830768124017111351181326556774289657431896728405217970262020825027105856291887608184592143261060230418565483782275042945214381403775475377981791884083191770159749239711004074789936246821926675719997598282963169297761504207800318989805972942768010834117813800670555093857289831524846779332764371019366777467108643005444238919180483780966510744252849027237331491614982813210528349401375363359131916389375978153902884526739420685526005273289133819601624697695890194695466653728830676386498059576369652141950752854851590045241280695146484286262019648082131745745259977152201940117776545379385657019160570253055386380694185648554048924011338721477007312310900075863878577019196736592121014076283629474816023294866399992724120908212077680021165775306673347067320760107761401846517110395992742925116098282770143428416302370295409799736236797628261338461194390013970812210309844170590778108703612596158900182151088352538230435547476729910516389354680151717203374755449675928772599209917412314060449266507345425070761009115351398286554513115991886122549534159350619455802958114114438030796485802220550886115332636715743613812983056363406246069455161826724148539482676510852782789872771033844124784668935340790021570696774323301191157354502785853118968417818850733239702914624311524754092447985418865593829509743397357628348851955647938227028247089132072795667891098802963493012889160270118168837758003797998025168144267089303657534190511748899955567665392622944651872586461081983633615979850683320658807092998206597803231489282242755747789234605589874348430924453243710541478894313648367222550348607879724536600248955382987204480918339243742666666489081474444527842285066640864631478621018708651524094982904177409068429907187229690982625458063653812052382167194837370253463017933317106307061791005404259198057084577618856772680181011208224874893089618228363011476247396799617074555123905362213856136993409728587671057147861717409283536785756555787205300535736921717672377235345449290189053741711982554649029507970631284951928444346060681110130147617313253272597884701171886797109773764045555948776822846990554920597343005383305004993729360180432744738592671559356015119518434393588529174757734849816496100270961599256650827295831291659154727123164009743498836827567913679566306054721173675136628799580001829138797601322413961306864607349740713445628616776959944646197068386076779870064048801422090785730333472320387695025625732208839589411852142550586400548362551156540534845629445187584098081848586324948248791673676959430616289396423673487421538094759142624565994617137921999327127656174868035814078645821493729468774289257593286906192426772135081410542977162783768434711624601363283535538456029202097637387351678314946614561423807404187018755746025270943191711972015532015393973767760034614256324614392358567726776261553014138292733936726024297259961168361242745880729762748686885634853891319112027582626316058481216301067864420444087877767885539534271575719186008427345434804673957619793319855829981728767613469013985079084058143566121512859176852416041605107734987848373387346681017281833043164839576118213763398836885283408117799807739380939846074138789170159160045111393641871539028834882730891633347914072326984498352586623734571561487104477749114719989576498156335280243051810192617981157765219564820804707771707410828053912381516349280005342243506959699720162446990487977825777829345306362023162544309293949790438754349801732234373461107473056928722242704999573701167051383946819620472640879161586972694886665819518180050393764110861388025965162009974870165959630530162201522434146684544758834240720639886791198353800893472353547277249532957461160842175513644943399085138869076171285574721545958046670716203723355413439051496370754574111226572631417384146053697765451876460569761854213254620126132393092613415904901788121937538300815251754238280961061214500258896963922122804457899329401731586841917427616703547054396947934169986995553598316578616998778453986836544192197667452257789310059504563337848048024246604157005415062956961159915474497598096907033582450532501158390609365173817822156501563770998514945462907908640134918668929374806760668430355732911672038563945363127722916803648831542325221288372499572232340018029284380986335135112514790167152619982493950166255839922257210603142678902897503920240536004609723424822130247191466435514674750267166985184696686540070101578360231565947535003583095458800785695267228126486595214356001271057239926927758049379155425733683541503815019867400956530534350724369817750198576657576510350268026408334312591164284225094058237718470747662713125560185175617120559818243899931291209296615215738110164354448394235013529688943708782971812390804910730081241513371083827270968399864411703727274698247125944032595008194833096680971518358360374536356488954258032184589369220014981251100178072235067847758639151290954162595459980202372077535444508286733415352663033573843604857322693902005364640939061095205968121851405427715630960876071595613843133722898966728129226477000254076810674661036692864877822383351850861721766270903237530316449937763417725383405734984047542600300492094762026383595866472401925408641731235121349956902093407812280408725445345908670677665239781163814487765742778305383983398274434484051866909908429054127954117030383268056089415008816958941426576243109632441254551712951380398813968808577605053380142525318506476910709732252485876232706410164201403129554170872158118496296387003046973051890839848282918826033975092673916500437600570424125265974336479693785366399260998842047733215321473515596846236350389958551085625233870720386055139028540621827009779775094773426224212730058894456290980027787376009898062747239320323760843724848355868000994169697467794392767669831431894493257702409714049999574106158896289050870749065774094922895381072243295711776168485943667595337821651049444628663321522421736490784618993085760511338364975291009153768936699543655163480718625819258153195702692240250260643733187779113780233978266340238044304566749782229128118972680224936084560635643279269118798586139365878555774660146566564896322905443724300481289274747335148078724739085993952891859790220787405293100055206717338164827216291593290228497054311385811563481596640619359967569970158630009536368869532508491821318696035143627599247447179365707941545186892077157397651075290150404352674793142921877600357066848830963087954448937216184437341957059477690044031669455336307909258903874223253360736395343557088743273358093240657191778354104272395579688478170635843445197219306888559760776911644871112173855485523336854893928483879191519873053832017598769139455508089526085487221620348255353554482514506685445894549294557833943215473592136857059470606569089501197129438028626809584017159615446045268986690400107463878942011406671696548173232463283089119539024621449365420367122120981983555759106442497684525215975806051141807182687819000494370225401420698798152185995762104784205601349482275669722532279339725701426289071690011289680480143106247763005678917972530392448921741636733714575141509466410636926618819863941247669883993668131049879301208155023483206373333529963520505362570687528302993540959949004848596785642058624595919606615822711216377985745657402706956041410937022744318417574998878473588267558065337371043260040067702714434986613990376517149616876680003931763577394572356926236883612921141595451479664258632954357078492031211922258750360181751262740778853084928177581400313371052700883562800038216019475773723507399185773851671558946554295773454276878632313078990653097909593940330391466282350974960024788747196574712390611893288993283700824620931922026368396654780860795715990948726779308688815517150516811389528501103564685315177807077192681012813293892193844498099556590686459252151987949626561331873671154887521791580943460358672053901485350021159644508529304459411592246651504016373438063969126218538675229534453834497297787011921269225858613726626475107676847171909065900647938117391913657545289784531556329460211017680564609841004307995530841471871422322585193313065119800242537744634010367500296795966963349511068104523964972425225912020738915633168536771898084122268518170671632086080270926140473052342316228751021725775498622954347058832082188358149152516035757095302198573156946903375181445051949878672019987578188364160697377251467747093619124310642045652026932837203643019101638376967298228503105614007572101343271773390197719244150675327027839424041632829106344804501566111803663707274975993733380308412539402802575125779871891866278097228375771358106017428737911808575678450111516445155593366197329645996090236471887481517688846742838468549639088439219582874531413395219702975648543777864466023767596642662270321543323907358592062168599699130165446549174459056164702004073185810875596333175807659930776177573506062084940041546058775213645735335548580785571369382713725456273258693201420859429129415456819628946547555010629291403696717638829376126955785688924144585143023359285443510590492578785096974736480354726944734171211550899776459028229760975776577780710950142531587088668900861576806191690157701380636875911803614530977925298291018312738593665018876933426804386434864419274211153690612928161100200333536157486696229875020858637064003355580830812952199652658304854187697598261127316264142269547507502484708284910141354571817783707437630135994715480368283356980146149520565368065718269237758956609560937824214306365312239382452785729720808355029761907823868886323864770323543791458629089086648156065918633146413132030918271225614197989727917974212573136325269884037058804329089451165473548431148550176142527274990030685814635990008879519051823757546076076732584665790397742076158593694982124278914564449246197221072300313024910711815073478809720391137780363468415490573077562277902021359884426098412010343899447314736933012851756093138150184575899204279351619149939615076518845884759616830812849010650546546702276260334063959508321199011365932444148289638808530796298555967361879330211996572120118739933550204420455447198849369296648677133086889402977617498998111686036423633405741756236449740503955878000726390707100748673843200686386701812184550330082272644785349009902263445616307948538392586305557184649212623531769885245990214122792529172665455553936054788701546573608770833039114772085215631343719940820143889061723727044251939657229823726028583121450630263046031028264495783701807411719220527035007093870638049750839312719167181188073021431978241683075415974906368228663973328488649181079914547080400239916782474249378519498623003305034462512725878475943323853525253983249448354768182227491051821646950492586688636612229169591334236825178788957989581049034091101155584393339740137410982373344217832165802208505347376952290066671433875044800684011107416266991715255295141074988821039972782806087300269143769185456720340679663808337988654254734351866266141820606448395222563869934520675415195373656592343356314328465777518318605330848516597572540648530694065202150825096331182738756531447698192460558685983666123820875575530007874558022493246590403972542027588750368317068087165172573474248678460128460570039868038906733205954706625588731546445446100871716740944359896436664211609020525569996926161287111296726811675917472982246539293162765201853936249116229059325816191240627640428850470269921869636962226415339750561588039478018189774836633065365937407443587782043356502173399142546311110056938566703282648341284158196885576785522258714825227486046205798960248762619081282334330668905762205132943822609002414427430000047974905007684582771782797764302667511738722367931904153769233726773795725338304054199367304080383894876279002045850257359408446304784875387046979595849307125091348828133206894795373746087598079429957197303780977053056247243598432079805621258893670850793966718148888682081612000993392421729946141425983779681087607319188069549402952748648010952136922959125569330723323686685516177369721552596458674277040792765657822729298399895823279313840859163154362943824849821892807663189797527290458049444792648001603199578008023248460995426798075191819087593122847676422679311773983626957719195783134307855062700384956971565847230848383441397287245742718962491920623356445435727775838856665907305847915737048166759311239143439837067014680226755468328173278168155992649715882196680841486712214058018594643538713854956490648263933894889556499043048152732220762854383795548724610799403085493125778424159060447822136313693670811852467847885886078304766819371937922561769975674481531599591322237711353166306250401492731991407267390708847949950727031668231003276392753440802667478783717914545396827679754047652975792999263296638435185139445122442939846116741040581191955030918503154270623433665058025057193834608723821451761622962563541847865373416567229902766803639620529040911781775663684047725120499961470374523357243593111515964967832479771144955551987511990985847311763252131424854742590958779786745230960129082121136717238702511873478816809893290062443664716497940578006894324457102201324294868824647995479155797536763340808073207754507654481779877577962366402432091280803132508143343194061149611498917662579325224263369710176648794425911501489551315292549058705844557178946428697338822575820034450105647428936941501615554124273201952971182401050256660685469159569468106641033910773928110842696134498273307171700768735637644052297699057028832826992367456345227792074274485343107010363413659098959728155880405593229353023825991959588394652276157802510464757640880207092192308491745776299793559320206458820464521942497921044057265347074842214349764465180498235373567458412163849728642814280038796268270960696768523175245742455836047626252656544102095588208332755861793125369477097716666928373726580861425983356192273380538779498015072121729272486860719417310959694766195274602600712315200026532999056286451347197271027005725589644143992229160732607273400650535245745545899923160975907203944592740467132253330296844352214747903874725156047721455631764552417652253420602944504739667555505791924241611510128747394595279943075836317182541027837846821054260011371408831253227949509655830680047008692978737240944829068173893835698838463415018042959748735711585341381127379439721611485691569783197129369387277809489845909676901265714753018865712688233190805890083146671560819623458967331849891291827708085265619546082727970593582108997626775317344532832815121381469414682442643704924497354644051430826818007615429782980255461742768751422810188806526888720562506091737263338231822679023422573989752981383119174448315455431342904288330520499779973965684862877026460049974802281362537152786006292798232857284413023930272155515187411029091989181458424647798663988406258921661008434532356063546861843224855085897902038879339130697848576886084167121976086916919682128315327692697177894155845309349086966092868333024206504907412691225540432753951052547473720113930946100538639814759824770613108180896320980985721374890309424743346691291392891231139441538690280778561005436962777935166542987457547030849007881219318784242932933041682101798936382454773826747404245473540033470910263848201046100514887648747666875954487976941155700104132801961549435549986308144946872287294598090053416918980535475482689433300075272083617679315242585394796056432628389883480469437564701169582791642605249977896727167214506345909917130989012741021384826401102711778647199042630840902085993268610412966195805628187527187283174670850568648687438308974110935208252327271384712601282887644812267497487997965163331170967191270656731033645221609469961081043296779201143111000938780445112459070001226040141740792194683504788160015711953214108801107684261925534634439166664067301075462498421388050889644179270031410654329562784984673621115419017322394951846733976689359806388422880401173244015187293782244786230622392397482785248813819201610798178803310498528487769480682246235113134691537001059379356045498343312337092623457095420145149970280997704244850443774751735711931176821801556004312851394703537405301030382056915649970447013001720761236163158727886307742712583526571905663667367120306057013493637992596865721860779007527925277192306746585605537884752028599680864829284541547455610542083122049327334080403913493655993521663239224032637100915841663616181482962697988908526216498056320577410344508740613235773355440408382833338806108989198297128092004771049702220797174512125553604438387653550484097806932698105312546819295616342891696432342205560684080953270013537061849181708613757101803474869302381694287738860192283653464648071469325135346544024651898237934951266167623201218646951246111146132887506448406404779350854791396389656586517612131879505636346856997696581401865446783317267351360258365424666551233425943072878483798134774789698389077194419903526052043063592286045502797039815657445018315700373739538841878630096691983058498169645478704414328951544465248154045319184086671969154915238230472676493706988304341874990911787390382574756223967480760923940758550950374303153895290145875128497462724643924428716028109530644134238052742407401635944428334605772842131676945210556100152833273812310725867511422203950804630509071285035300885777674445576335084024475216970824864941053802936323434318718069217347563670198157990899771570423256332203344157711713862057964997319156173189109770045418677831256426416295964261450177712182213003634566751543192507477451073315744765348779570165568602136777338813312010010942687150716925968550960657082878519311384788492656229678202217486792979306462342020865132702886357492250943658605046028369793781827912507505787178367552935410976124341384329624912278335306554840635705795010019786229645075991206219224766566260546623874066686001063579806027148529575576958683146863579806384621335355013854815545062924981007884562429425967404589565510413871388641692502457380059256527727720716933153363113319973056303632230873170174024902261822945878222534924535442170118360215251460596091252419148082068653546288072375154982896771450188998811104537485989519892704722321774471737576925277903215023907133004710607304321348525540042234691113785152491188671438605561674857800609758920487423224151278067526083256453950808101711983830811819206745507001548991031177214083033924081204534031702908546540701406588301939556823776006340739000817861541713969771211946019490828423532939007829296654222214210298474709865612295651345930737846600469768927750688419842166450926702873364290571826227863432656322874858432227307670392498764417446964002649653197993316699115152150860151652383222243809195185533827859792183162598441188030010822582397180441185348492777938807056038945936973705364772250238200659595074147253062196424018270333157980578497653507621589927496055499630815028037774515802178288480485182334054981024761552374130265607952500358298512139427056022831038838340824024851366211624383573329529567241450849132064690661511537388495853251648927429668168529014063461974137802709146844994864442699468067574223309108446888461190347749243255450032619271120466163182782261714153227424543816634368810445620544125425780896816186769676855818835629619763419177893391156976874448198331599573888290213167808999011479490779173659580646266973700557599147092534603782624712885465316783879936878519772078596721168499042756633951657545362209358458098044241260235393766728523883154656027474992690255463690758224604523879285712866238191720070393139772227342885517670605060161781377940744598758103414399170466830781924056081900435622699076370896123122151733200362149905135216684028704803483544298250525415434096453626170511812196851181004709604645385713571538806413290494163486933972282802222554877638812948318776982755718868914877783773649973023917509666312647615589064151773089173547753288974723122091074551335921101025562020805604147163529940559638249256610000019538934281441979548479460096208464843259114809505503611270569533666745644421374736691250608660209543619327687873222573050451308015459809806703414661916392063377587036597493639250953349599091583761826411008522004169926904400887627198344096610005017966731655440191252447041496575971549555947943072014619663132054112686803438440627940945379017844009617606562239900527516167821559601439274946932146390850985381624670433214090945466063694155828170897093550124305652892635965747936697464818294352620508845611451724097607833509211714511301857641085737972951642337280823823140852025375446397064722761356712213216301880602733083009158628428704662697592843976805922296801308510702220446703681394079928012842234032013311403809933699502241034742471654135496974727332108475755365031371247520955979979385633398930264049478688123248766808700199847977441108637716867438001680988048675474746598459879741600526010728260874724770967964801164629650607201419519837262302279543216201873229845406823774554278366728979279967340927317531617213592630560114196716682129766874782954263828686838736654926889162233631607665520803326321499421397028961420152161233706663117657397651439141195612314491512333855924036841318088508416787006696213215312722831670596910523418383398681274876570939644014872573951954967166580770260018365824701937194780725704651383404894799161569436021570081295140125568959974883515479041257933413925832249451665516716603610281723259569537049052481826765993490318081887884713444226943938035929264484868929532975760557429277280770486962488528403273075197317917900003540075097586420988488997009647816396676644145308571343982634382916692500228541345823147097497665984988820585152819916668084833526558823604575270574232268080506960469047130621195618440209243724058265486434097027338786031246371085952329754636553398334361687477046958187924773534684956447766834487004138297088437737617879523284705453965439609434911113825779119361516956596737294004873917668358825236089554655906718471797685278655680316623780317604413526386308118970072124617683978709232859496135747357880687845010494465966296777236348840891192164049758549644994050151996976424857348567470212499100460167585491597305639880908883990030286426410160528171556557837730435175815014989129730293924974728167039664928701704238737865529307250169397322021489778431408856462045458317303566209034383433798605929346205870128573381983227437146877415639498408979159835301572489000102399908621108542730503219030236392108260488354711089669948770894329298172114372338822176772687825177735086992487403092937810122449468663405172676638601162154157100013165595713670797798812491364046949926746782313932345477722150037645580078884555001849386689905034947859447363343149630827802653684059187751446536798303822557834900101162419697515001613111187304876133220994515483778146634812334612833536502562590763149290302833500354745609532194552052035031213237114366964230202391302263819771400086645694445832297187468472996992401132559216716732656895270031586297023393138623708793290279804478681169662765683096066294568480397494673917665880185669037602292902632043654052604650569505160007921779107995236504959070631560281717711657728425998216815514598320544498017188637046662189497393926353911918591830934973825909361694952913917840500378286344165848015904665189040974414069984875771575813761756874735970942363090761986391498646858481498243021662963261147697831563855443632685568416138352734681973458969039392904037310698253429298595866784314813233132392933416608871812924344905356176799702387309000788138622396031596256514112587873325436522077663337242288010086606984339665882147892981302196358399280669989264288585377333457465700224210555495291223492738523124307856779033003479495328101729688012880549340245741939170624646513597277698926866587415932305283317496091097331634995624114364228387752425400562115398752338227059253845434687515102612264839780427940089028842885255353460275506941534396163610130301516203893788162242097404703138929106415814714982558052106818826796458122282946825064568386141702865681187210968118663522306134230131436152549288885022722930346269180426167377894707368831196436443974789744099423815522065374889834809063724752706355039948365417594750847454136506334247392557013070023773238242234469420962229359780227888423790575763213117162391781303753910025866118898724378054160198504511351056497905381679433935041954051994373679342124399200021806229369992682250618600355485588747718086745147984840568907650651051975080611096633932063846950177512409014631492474575316905746356388306048889918521866215701350965835975828055823287048801179323746518956524093199171149576680695667122103146737911438521712170160548074031897177632674645331301915947262238317104051452650737403108459662811004402618002234603452365722179024436935385918634011545632052142289372194208290768506990441812983170512912316471075097207535685033261798782479171585078126836285738721645814207183300951251427811224284345697714339179301168333025868431009827841483036629248832925432012722395863194051705672774345178696497010544745834146017993341106824451275133795805571185173554061214450569159212774721813192851403014200842992293567625547768751636289490579125509920473313344677810749840115549421354395916650820167100185994910850429425950265924006613661691205813486880465216268346652306681380226197009583376601011955930522811445600333775966042734189776455756226934867133439606045320985858132336266861238243911473079019381050489317960260088252372671870711266694234179354703739365844232559633224338505054124866335504648371139219936927703638231045107004805159203171383478085965707112363061475016965812808647420010925828285148250393745455030296482565404947682541495762287074730945469439697704867999989279179052555325162371555543477061377981381622672780743719811635915623982183163444081196849103000936461490429140000998188427426601626912308277424171952265217181967181921183536934688765409532681014301441777179868461083344476669883897198628603070487782260945474118920617000924078304217032066294455576313202386380964236658632399439064147019303295601545199263876986541026757555226922722956712752278315948964988370224566576472095527847947665387611233049690427138551584034018471657340307490633558154866155578196728242433625764710457230243326210180585500091882674966666698086777756192598194044251189447919756509227189255708278868870588403515153887494229600855644202605464447090234554131470453513693867270817503534309138059591620546056505725187530110734499575127975928781221646450985276018105833213426209224481718386763001628359349674872022012999977189532758816665851806058945706989268109145114826356752257661112047096096425999253482939882097349002007538655883029728335105082076407025297477947990140431583088646337134422259815987022477750976409614245608969536837052118958620784771658158341067476957183641548755038698987768509407868563847892925837596304034357723714423449308558933562341768293422759072050421549678670900931629426480616567843564569539726423341688410983499917263521973202477973840683468507088518070779446742414077921881641071058095210387062375444172556958047695767457480753745506204306351133608033544200007523299228221253457318087171963656240835249394999455086413802249786358652636496455233655117847343622451405345947266652519915205008999755308672918596167126572851119694765118647292250883256817279567902819640397817450289869426415841198067995530443779113248929024901490824893243245185635721809355068413364217494796936272543451844862238431096088921260061134399244771544509737446108167138284336994691763938309002243135185831944015988307472931291274826918107490993795766584548873493328653088674636615533947406961488175662314409246273006385934138301569851145373442278901375111795392709727160768323952385773605769226112823149915017372087260902447544456618752985743159801409641974593262849178328785582387127718113278043349741787816599982499582140359296233319107811416883614779340042411332933008923676217956100002864849167886863446273264447030705377790663435131028386196649195692587445638403790370959184507379168152264198880488043758049656179373692367412042747769666154732355466211145024643128947453815429574080825977022010515256326272355940429658800999586070804051178747252290101775849844820741483835753115867227003579569157124156314523090080800532725046900289395283696153059844798480949495076040307760816689130627744431706083745836748295936369503579139394621512448560796522789640186990994910929639699060434595131001024623397987774246242523584895126857215270093750558956282072429958714249779686994461645003958905359748394204818720884118399579368136645543013135290690840054850378898394215724516370266151856462608627351219531194905659161695931379598977353457101425760438821497717411547434933787309768636354370351083847979054542780727543103827527192834831496043658904139367760785205897752821186843671659500570222883760899520313282009656964182550191943703760779560633656247428225789734596540854611376878234635484172430318185125790536147967888466987938928377258857479292172344727400325596809261323834066429498348910208200697356591747000435339738643606153245647834946086519969008693186541310132097454579113939526826716220733502977983853421175078859708686334565294991656069052481309128235006841419192600456048715434599180162374183408188176742943572737906682447090918555198024771866713225276466445662472742993493275581881908687866354598980152423818902125756493041820858296743777344390320192118770862910918362044195781798507695794298713253276612266679901235191560217456770525028900668855489182557567817622217843602550838672079545963103422668947841989456598791071988563121635707812089731745019013122080334785442570639743536079537050574148016084016588972023212578701261445857791060573779700239054012895200866101917037932164220735372786151761225935994383629382837688903163484171974382907784431269324351601341350205103575387897357180052359067693753246429017130323725456080570096298725738508281810323606342917719066644858983325521407809666986726379713159537206883017760911646180261788989695069040961483900106729217515271318842996859093588690200893182452003612776509118398332529731045599647578388611522619635793502563742471644577456858880560403499117777669328477018517649386902415971458490660291524183623209555914022681931919537732177220382915490698356015608721538161968524121644183073728478831427513793844275579125507929650286478141903681754532713884677172992395713902750056593774288767355029722487007904863218626249577969361878603409596461762923562578827238250252305278200078375021740015409733397629230849649812313744909113212254257716660278786193070881020878388264828628230189046525035719618655734579197805286819279082426718866019067568247281470244797596632285662028360712855430556746573705585423604136120382887385942413041695246035022691982255665465150915944436468279196020313522774334926247689685017845969613545950581349439478888809565277676321993680795534562407639059938238184332482364386877019752569430888099627946004434925420758845579275999937394897692653642929702394440055062815942708202298654842997493787152992903791618616449176010444645808007947567280754805367342462322194233820488022971468638243751556067260676909962827327906897687220382668849203492548587205823747268787465808840538815809859770695307082277354948939025178771022982575675471828806752461363894196458347998118153011929537307498975955026212725226300459385906676498707286684354685841317974497588669503315193540949626703565785982304814060715768048041981547603309832502703427944378539722789349071224475463813346138395339058961400219467659870689472096927910366609038308698937380087182549325993265399505755640799633886613918656948666689357178985097804928885575144016530786317042403360496131492033292132807920351820042765697498732740280367867367415109102228138714028197545483659339726118282683793575635929740244839645002346072402333601373855065774353114035193810672757945519328533987883049612778897939704093455218683295668582747516692454163356520155841432726594942326745461111539834763606010540167439812434409856148735304174413862601539032206003289913998252132331925043559325245951002663448625775727327050641310351240396205219492747892644657372501580986917259719588296273832368859814211879257495087459606957020199121077341077232992360793128897800701600667108400828469842959846890096644063757866989310479305581825636173292633768267235623093241859227692800904835579180794423573334049830080488534382524417542398130642713939693338204947272527728129747981919415319120078698343382857148928295358270162758451811854814887152722542705575826149119956289551937232528596989825725502487790854803792530261144636349388015081364666788559548948796214767925119516335791497950017655880871472771646571287974291350865735835280623777823026643483868149429970748851364045341810948174507573171613796323428179893634578992733377103423033752685078134325258360821117376574689917518342923370607988431280455051826136082040370524959921641407045449318717298944441254950343812756042259241835467293209539249365922834866826791767611357820768709700531760345563686530422454192853901846451645180480252786568390526748741468834680820506453038034001515331881945407888233427474959849298712187316404950833502313265302156518596651705120085796685522979529036765608517478892018369285653438508095102261679209229750165376044358888472659628085592131898374143881272227801841214773633779148858556077819333600497076518372041660573377602408793092460939011830118308115315611497207892620241041905560737496808596590219474506638355005570780095586662750295822740467024087174358625136702448664204077233271387991644231534971591021804566127019387647753575342251254081703536840881150114482603671359395259173961919361095710006210123694498045367212051054371792773771029915187825332348586879429327204047196788568177591480979590338253843751343350937562879838061974619936548262568451473002650561319038938493026657613205482700903698074098627510242371347117198102900625300688151454108777657562597213386137056880506569681612596190672928363548156996537546086675316331523256058602122971678302934604538958611958995908901249571823791676285056098012545317323040599122601120644676760808432612490093114320359440142687604940374855497699707333582861117727014744834809291358315846194353942732026793740065876664117665588386967161350148373906511937537337358708451694335759087781145809157245365036241746005865173223523512051987267752887031530047698207392305614922974314746271244141721629816381184951960090730596221376314953020864796844013024928123831776732385047277652176455554601756697678436819216760343872820466122215410159810695731188534281691274446011488296439696534284763097348353235463439218313176075026863506006249142064690392840451137101421469827629097613561040051884148438641910016352227655356098343632408268429409906061539226977304932286678496362323792781840089299108363424093791311628637145434158171904629218154184987993099871335195729725931317871349031315037421550236444900012951412320823437892398980412222609828633224242399978613370977190872690985456237637405229083536166311928069552038672672386858321475749677806889531008434259548079594477241082366919272710681509351367449293224394877234797890230029312931076029404213387790921167869445473080810072007855095111067174676274558796054234395071224716302270424355067036125450165204145282949610307085952329856832203671634823532506080001601721559208466020825226654441030193231908888337009212166523224272542172479308542807265485705093044435448110098558436943999045748704648462057006502308739131051391884319311336924824332407955110987508087668542545364143658624052348775602133775596383758239089081089980429365012972794136559798236450344555549786618880677463288953419873568256534494544621778259682895056863121058508088526733456789157364455265447211991852267460764859181483362990622725119194152828255771637211308029286094821566677879307183457478591492349633523075693729827210579008501370727912093492443727399713224910603370762897192017526338357809811153070433808813156018774739575295900372899344714142850050437706343607123327476702536920069204277627288565962862330358125440856829648148376844528512754713288305024970914951112065287905775133364223286325428579636886495193388902187086853518249506407879629259065468038045156145592741693330355847769975140487473764864487394013936315394246528932222279284585060356851420307350344021384866395110595925544602195379765145243375388413928927870059593146107316860474602077831244173136118318060267710351859314674497797667548734430360037431832484044644730493733665225059080040771166215205135425654102795244546376072785044861140752994465812948884768405775347228408238966690723816785264685736087072389543891338629244330923000698077731660931109290324118176741790854297782316429638125793104235019568136181039031727394920073112446793001791169438593906484189487346028924193686520026227992129243338561929189176742019569301175114214482915142801286948474909316012980406091983958806227950257885710046075624690789267833016350340840552178472760388016474690994641209357435725744623636839311546487752721975384128740699140377727898955455947112318141484588427827582886158835937702688647308399347384930262187123441699128361438022807397338399101996989179198945243844059343883646198488077584622362350716218137975436895438961235901306182332055595918155385195629872011612710877279939275567416048432021330182387487374435965270492348751688372332483917220792515179018707797003244957378960360737556209161311302477060457028767622460847243923332181016488153582143848090523763872067286078296232404355069656819433977599055257993863389717084049554554828414473948216517512685111415057384559045826333553686147559334455411395927021341221511082042040620981847736201302860720522436375380569073978739841166681409437701792180439460603118438773085099570062282261310415618799591496805360446665102556985129917224251380690010872818322933900414092414900142574412384797935177021607604912574680485328279486657335784990207459169842882111589197498625909654823581399754338635236233480855913272308702680526550469069920199098088521528627552518935755055507868399271588872737153010447196530476366053631649217209933881576667486371619288716306489213090382452552347749853573009880213835550688341147929107697499001705056079052225995104409234920342990969710347091423689500195785819416251408342182582761267926377244802297585003562113882459178785420290006294986469224217975292494650299888526748891295880025684219769643642300113827847628531514015062298960893102773803967417947422738445714232957593930581517482359636137060945101096800965366790713995353275327190954673212167232209288593329609969351427387618302698232628822695834873755195843454489604018705901187854556508354507714831023479152199752265628176399567344810233867589119726928263764164680013933449764144878269548220580771716939877223354070169581242851193592246013571901732182682847479548496259955637282141966916762946999760018901244845170706030214793800679512148599102490053934474232325913348582740582231881576694080077901849032258994405673369195773838104424692256712204877238707177967262760668146950151555010157647847029667664812226143254448022491487215455733828469750109545618572582913256157461390082713933268860819556073962046161959710823357874897403441160320204643649717946896079958883243959496516288097633084527766685003042501844363340409605579640425208800503945065409865862167849794188443274354189404777585934128610674099981193608398921227739560547215861781925956473879147262058503785503193674196565467288620727529852232665172047367265004704490053543742596986123926254107032614668237899014254694302002240517878201676561893103824674004448927144354534908138650727544659953926852103998743296816557608219536617444045135685995668143701004352571829366049850235560525257625475828957746232349824981561803705663952710637256143030551625663566373274031637413664919574669460055059638456357709898867154485722675137126079902195825437073291932788064025009566373068464399820186926426468738359508507838519519634429626828228063543950106496557000094013310377199267432730672703848574739290540004467389006863524554481710889408941402925558915161866634795348428214663191564631001834522042959100670519153051532750930547191928502931652748957984085481439843612665037386688440253372455023575047239197684334465230553263483059338290746520024493790489832090429348136194724066853041314265247396277541308804609928377641220596957816588730359777597544563270623985663659358306494633010758062844834579183951639032198131262636998557507799194072686137517069521830969829546823130043154629739284795198868691664502413079832300088069429045375775827726564618504385425061481784536125095582909168807498398609022220763213486829913603855962276635749804360838813823665015110096100163901515870335345154852828868490641837602296501497633997441159562174209648027790015165442728199892714739685717252412846649971207176675336152370177687942324865063891783929587751716570969900598247195965358660259793841419471223918558485109328770564401486542418704213458926292026478553959950055311655478533357733696328238511369297879484380931792296304643004637769100922442263132658838871468261628974201013735096104745267318844267575353940117620236686992978488928853911931683185171115719386722928991765546305926968645180068573275346447419168100247512604697885347627031572267807035383629058498283924818051222249495602692335734715752988037767287234315156239578622715323156830655318385363968339619318392656968717208778405280806217343608050095674657926043049870976575263563864204042323102282827026547754706456237886791893842763347234847722042238399742043624065793884243836043323452409618087521749754751010381226029133365770153684499608215356957083773666288260627147173447822882650179028567273504960890637939694349707477915308622753085079245076018439030902391710791511594761140875607736839144296775548544255780302132834595825081379068878029816037037417332847744582097702966896343187119642870109041979984515190632291565257737593030167124520105984771078025065816350206680424752636529447289958711537680974053914625027425789805647921804559805196591409003474290553946439631450353333082702893559021558744062749822430495404231857006534053256352472921033003412256159797285493635555000244943210588306031911418717845836636584446405183314729379437830360882025601366078426390457559215127133477074411725320997136892217636529290702676760016175505822332669211087468620788004910326334626015315326044468414917413126016660828684236194406807823349492343197354445331674163735003345364697267605118949101820037273578297406987438262998608801079027880289308058122739780013075334561414925088192111900856269781521501132723539963384222578563170472515066935439555518344442611317281507655270612204221811283529850980205110226996842485481944289595813356999574978644461124532851521043334591867572050004522315844826033650791721067012313136992462474878457970504697625864687476938889564749371096758000173008796666284866595520331034122195837316433858835968283692907868441039706157600603859304969723234916313456591243726253535557836633770108805643306619892170383524437211661278221926586876408303564204722616431809347492512453199879892920851217499129742279856943339489935887783990828271832974035185268857906904684488245469598972814012847867415670688128226100466464739083332458672552635785968147990494017375280318591311424965948128436246068358342071052764801110609255996577398323133096135902238248966766869753069453390991695354861539924832124911009949615163517588316040638742471260426212708897559532700879098250473989524028191218920724342436461343106942103397644305859992541288683484398254641531127481059371884740370687514645809638118808589525125575414470890083209289384669730939614979514981535354774862119272140951908166107879566919672208596427429175326900151205232756511997538433278452977180035919829328895849269723849637380745807217383140677550723313312876187259809893398950630469273384025837526733714032571261072062700844071408080177913994096716826496514282443637229019494534944073225899729048032212372660523704243327639701852864556866253075603906734944139607455424637723100196309623679677491532068300899831038719102616324966050283500873159844418993032091609445804737194786793378545568184444380139164071870384374434709493006587454398313172567716095543046181199363313634022480431204201495008746137162212965201700474196447288462459940848575402276721449515121188168365459110239574247020352678231887103612101065545151830178321493485855034312366878994886276794169796475254475936562813846212619472223677760110728357072464312038127817152044422117309826200543649696731060294912149709831366413005424733050044261575815448492432095772356112987415288059211302631034769022400839888140885241262521286012670824710728524864070248398949753001651362263468623264718248849524941071535110338459490877610676166972593287185525219716008659290396784737167143972846721517847381520358572852543088767834390587844809326459832606330800459347764734567435549445378967837068462916420096148809366678151872950784942049770673486022955113007384598941883712825280984184607686581802120001218130242682357429751155409279674984010963233134557283170308210487129141998049657763875229845183529261356514111400366329521334147673150519529523694664726269852741421377800695346156250049551740360447796937165232568217972991435185732144435416519436003203420925817866580279774435926639359426416763884166418383676097807862886988803278418720361628758212262085420936266287155130997911826087801502628700213260192806914283325450031950502419727200616672385534790202420393708907907213080875044416963519374944014167705237787647450732548533911936049047110326990690344357587641422760048759971795977669176615344392490270840207128538919874434249554005897721937416743206810905526947440552019979795232937613060126795676907759962249026572137102141924771850804226625366871975801522981233169312406015815255356408233546512213424124072810866228473780988503972431655975737317577281453353768830005652480202320246348971413890737171582215784711822980144556870965222483205647422977455280654254882600409046208178457529676819833120444748122893117372357215475219225933240618648858686818585615362239128221206552006269269890303799709646828576151504328733926280443643190388003490754267867625059247640247132054428735120078566746663604370682924991148786739426185824771668717317423804806126080335639257339702178481368373678832288924600540859204816578634336133883626790862553248739437076323330249996543172380592165260235368300725509943439911657621371970102157928059083719192553804021306173784345444175751293923038756777419627546116485183383444600292820397833936793197874416818942004538526244233442757416226374855959580328254239573050623219627507212661527412768489732146738287103445213653875359999342548189606106894367856786426371364597880779880252316749035559748827862699567096655130516436441585217672726586990477788939813310832690025291116522973680792156261304587160874592327209261731355768957118901744988974793270516968931923851006318588048722168370240461900660513788006262410131933544813730407299323436150445172163541525375620869902915866525242294997248891044261573510322158567982143837968316519650832951717814582500909342194091002847640749591794622193922289321450805954512541215304024518838850040266913851924619212808171720722998676627051761742401296806915226601028145817827980417453337633013547092022440101617339440198655333007053450448893978112764816035160424934484810491462436720441362414313419476123942829317586546287675060050961576375224628463075072688834041051010866159843953807631257391726391522611711618883818064670968744379570940330155251298158730796875974409848729255379036318677285535329857235128492132115194661173252410437312038687832680935891934038811263900598189127319700118957067493697611436791278744485547739797532491665636357378486254886402419666647043742362244263939298648835711534042692956178123818439992687236225442541610831165885443544007898699609876036952204906794410475573821206940038695727398988644158471932725775936017053671310556088990507742190925260150348526427532497108132515728009311095968588007133849814226900920224831323504275112759048278839159898456562248699966383014907982381082882310895896711571599738514834662845899151914139284780479689243834299533451276863198091383315902814738949338446951912404527158385474157919139600108122233712386744949005047623428571533741675998172671362024782710044204755491854401690239250928719114005687972533948105938094747336371223139239370330760546986271963095825914023019265205425664211394727851280941961556295201043426149163061920625815697003206199524452145329829911268653400795110009346399508570966466653727492481834802633168024460278876551778501584533477328994145390659581105229707227705602336647544352509457602144496942801101712014146909342685913470924571262346813647698893456140780972274433895442449184987734330762991926945478497128257865337676705830081413288220704219323611435634068389631887010682102735095708122878375630308997870863829062556380459629890054074595697183292372369686477230247427668744672777385420325843268984702053902110153275992105615846327949435159530860640047309446678049600032773231359166285062941471188419856584633775893633812816791744745594689632831811166168707546184086132428425971053769891368492174767143669547184596896458692832365660400425744111849794677761662498898522273506285997589438074757292439800767881334502475791219013834536284002803643704926332259686472899229406748093887832507247166125891556635067175090397788142801929278055009156625219227473965033141714831513202441661744129982260578097132615681332699100496584579528164634699808476347777495039329479356032197660453641443311179236684305971928633816193511846649413119980437549256180664476254490726073207243790900180634648217608506842020017368363462929293049188820497089668945196816528589975157240892990906346415426774318362139548730921684482432809470378935763562238792541124345414609421269157506035400570612014033272513520084086239905490411432997687648297845132800433781136531685495470793998555503383985194913362320291233079521112471072991173429412921234453259406963445549861080286584172213994357751943313449363715229060597705486208297808186643808350655222157714116715415689127998975560537698770849281483205725975369087417021215503993366381145563093236355927712027154650286069939269612097693055187828007833487817065730488250660290495721754775906427346131662860899541827253755239368531330712390529450592929616102417413608994206737543172958124595659839136607973063997102900170019225881018912112629414837655849933950127918831029938416063688364804732482958792578871243181226950806804681076449345661188716971684928527993131351857839147174241651211901117481200759376428446593518215274294282395015759689831845994512538646513561071282934673302721677113128777201983984578682828713276591447088852751296110466899337069152788242780487289193607687900300702699695770313727548056882739382330603029055748631118840198466322989428048538365978372679493371626093063490309564607078004634889358209885938758615116717735899508811399172904399929837608349383815755968680500452088343516250384066850714576489560947605834241854897208007050767470726534740437127693819027923298155097474030750204456541204575539919348986081085225664929546899782509670008662504375288343850920893567444663707397080323845561047217247055358662662232026786892051382041483922136797918671603032225861628313391661671091798854560881803041793192283063464199403751657092812437937421497245803689969544208046932297688500732958599414807866813470374202089990796545710805432786999661906993749165096069065408558265273001733008275102313039163186878454483269790332996498642077873540628761552080097466609267534295090758376000978923886895979697135289667819788786812424881312631116489666313309025063433852534840616475475503778733640291904600013043818475566740034397216293267657788239227858600903930232395409610742221066101374472813811273683110011479690074071070192068505830794260162029876814453734640361332625374758151734185951931294052190624287841871010047111480044652099070341916075967263392461305403552122003128866315330600595249722534689487056195374581436924298879776308098821140913800636352265890180913001382728058035702271397949505882548768946609060944672764530025339681798769562650478665794129009772890642292620650123933153145358371724348656734952693809740503366289880451366215147123687888298325452048024566807898411802946017333248755079937717230501748653525189254570516619501470549635279805749267859456821748698741343138351511895786652682247560912358922778664549058749216963338354291110045436381161739583387664087353013050327979505822909127798708020610847096236459448689046952188929566840918689457599752117410639705849153066265054465407346425718215902584345019281433099548464216810998709907060453260954254863413454956594291847954995229691871583777172676672547753107435850693560697964502826740015498756907294624609024369935579746214354047016311033611033355170662518139221497763853905249205290776124692051865635226345986637342705309714397562450259722019076703261321313154087319584517078661827002888171739252793074026033854913858464451188422144612881577945279679797341360215129861729582944412540442273958863144938114380342065873324503919892885064164418232281461528231780871218975963334027863325800378664023599286869500989063021461583186102178458218431141020160893086671781369129520667338039375133725711366650036607301940022635877665406705030417905693278688120437221656359209336251164912656200253578742279987334711757262880561381543628487301578094204150048226371306137283084162973233143102574561386833268714968345412314619168003460591246425732450408661031459024089066055504303372549461744344552903004246557894006227895548159270150099627123140075563775945906172680494651656706421700996933879833957320498702832006985027999198398955316179800852041829546409346795686488134092888951701697238692124281096848800460127148131631760400015878105852556993079475529524538342074704941523403527709175347551297205443211423153714194768222766552723620658962864439834989667148667360363153473926464027810193064358974188752009430993417800068377272188409654603098031769627570129615701578650760521246485682324497430347101640124487637868920945484994769756401813030946782813118825379037750510447298289615143944576523397870393108430937018372575682036602903356436138814621923021099736059009552189192200368653809816827171094762683230624760795112263904640397803972904926830035887821126968937199943563817829737989656312746682322697996795273987909216707123608717796938954789602741633784627989585012515608517463556996202343627749384520020589319948209973623500861111302612315069165543004300683293902122082364861725139293232810199881009580501994622013186457909373972808878505728771549524859909650042380282378533915502908260896679270946490590743119981469069277819174601069508047155833309647391805198389128230976146807338148198079389139315563510194793722180897781847717373446000770652775512114061525732368136469134794042987093881856265068948798430802509836576926775746399267172322151787247257031521262872277099366796036745434579436723820915547807576988125217570662070058540480839666988747223413255314612254822485366973358129308455020946554796381248765081257586297701712626567487474496789575957382888252796264391351835567189668281584017938803267012733707084181245977158506473951568258615251960046818564279652580491365588863859051829353140934301720467694213838674009327497797056251907386411745351214122083235346560384807168825501209683468972986440752995306298471836449476789510060249885215792560347136713892348279794753454627854898687158981646059961960086780629232231421240915610392121399690810364632848940684246753470587465389656431595601443551844774952257556080671500323795932341690305405337949491805257189959738941963141512967362560599150226026350160159367584457588215610351354843240682299248746144325195485191255000385043903262616521126546941641399147744107448446359920060606859219608400097378182241934410197776324506523569760479060245216670744431181575888801214692224563948761239815706736393079037952184911721904518506774675739462731091952621678557546783282446143058465683339943396035185320032807680292467860868340019525404814546372532146207557234871003620180549230452333117270723728675501867763324776274604555492147671456076377254043679242557833433125187144357159900259135277609311015868623233871851740021635760320567286899026579290575663433454142796319952588107668172161073134586995717267920910440204251402959327796477897545525140237281331390134566719098558922994990408924730265155135462983917164331615978231850193973860711150436151939195273340726882246919718360399064142962668199567089805876445746106668698710048668270911893226457273748734985394005515397926460667210567007523486155332175946863412280896283221799471729323594829619494438186259156426188828674406583223635034734085785813497875548992891828673186709403555794297722821602274337139608187762731711499060200935305631930546674120721238202646653741379026662888422132133540971852411929793152629382145560518883865613346117808207307960405658189434272163007293946866951744606840346506801324237314322833466979006647515794491213963514743164181803668077337807479012759084504329767014074965064662495330643091704824518111065686115014513879028895012837684696563391352289613517173791955065991347328355299012412159886002096682072968355451035780965982036450258302263864649383340875834480161987424723806148183120935602264791947850565984896876061064718241272593528076462892435103717737920686746415976032018516787836268726786041896363350111995137082884911024407549807144232716390229448638952435122494642713660025166665775069335434027180201650113285533524260500357389566639016633868715268001087563223319846530427246582216112526620144067095224952629859705398649971786712775573653841429882273872201644763883926788304524070855587811701223571491684676236722414534915937099342530829255653877805266634502693132513202104275162207025414148108866442046287708557493746134679547635412462101505218327232607747237385704539515544830531183218505859159229829846934889416136673682726257775242159755929634605460314816397230136901928557162494852337181531457860183031933127869111891990060672241691001778452950270951526739420170175365725105703080325955226874490086191829786561491648216978689585510598867980939183390948723683074576121842013928381555087797677056722497000655055598787941870216235017430406997467492481616596602939503512684251517168990552209450938146719154810669826456888455293549177582463972398692801584030016819576235696764702400381909669799655526656666502452992528370159751698347608581156754105087497703443210935318497194171871305821514826261255769454091757954344589099954981665792365666255113085208558175525092052689367224663340293627271756423395592917379891013731770081173855906325158474422971006404446791024451371523396000214617143201167996465023760813583635634543485091479286438774196092262454503142381794523062131686216110208276620158989921272794157509153844109296238738129454396421884689137433893140416137555505972676862771286703062099724612313680227932002874681902563465174412679711604406831836812858185788931741129685487830254479789554298966902116457740509403490265468949544880966755593734156651604213707412958602552692460144592287724051046562122050782109131108974713559098523171484865918409106822511185360651445298615529356847822443968229862042420172050158869041183612030303011958061577956639881886477195031257921212820647534072218044769151556476030350153820525303789264370453906682478780093372805242534299225529330433647977148125970401462999807637670222998714792754652859864658843698082514783365558793228771619119177635255614575553925271684383392865584031983848958002736160324322723421488906793452082735185735153744691538554733441912742714755463434817350030888915305308632519246467180279989681999879284694613436480127814622752582623056279686530193383489433846375577900933852773666657429281235332909754464843283170517288692647146988427364350655088600765570726008095549896579461822455467289065866663643225082687324758242596175877808682944265807961369615088477828678584383181793172964285170189084085802141676963172549754498945508621545817343055402967617765711361679836862251097745808711912932193650273636515355007553452315349332491082323645223799509865256123293794016012265629328291815528962008493407217935605113464995959148629152231280900360526871168156702943007343102222938472610167351651688627437128326500937079014182677336217941381565393170877672529589016906749706886538593128610314826208315776395388585839224390768702812983613570193102606318162614815433930344749108035170088517682210701247011232252877612193860145961457374217059532547089849114833791591988698351897413682183880251399049294569528304218855518686203558980270984353570783000467947648597126072848638054907436108399942861638069690383499591426267567770906709362111051011020600949216027361571671050511604513970580239706633815947651492264851161215311069598230009500655129412061022949671564377905750819214972982039278223474360914286054712047622072455192342753067173350802722121128990613626880094654957151767553624287177160764494350532238623618606974815561486704526248535955286085380973320027083803766170031314717019613371491447967232021563630633813570008451888353367526250273222271220146809787174803611768412127472296178515463338085757235113436802077193878105388662090114577189645061881197983277918938503166234254132862108845638321266712068172094838249899457310012767643843242950040645624988401345443092384789938365391744694073638474864061483433424031247242610412923818488327262390044193095738789900361607618419433395170523687298635350893922739961029930300041105626465774700145269630826674565100693272340233239727977466334394087928986021477077751474995655051233121150739002414627530494813822802224011441211997523865569405784390251121399784321493687545294687480215523144853724467176579361217817075465542339225809774840953348962714401814344617928667480663004910475078975830627545011875338680707459631688404712568227074024333447502641386263312983966621072317560143749225431154824794422456472898207209539144879855065692817620552877477809887471128073156855644009090676265141359994734073408099466944021497475223657620800995168431399106537087490475804038918529727068144145311075095802502403438857800761204340197277594838520781718516215020771701177497859081116261471308493750246940745464266432998915112484837725246878355572224682450696767309377241826117889795635976802944171076137804209566028199619998784870108542496460170046638161548062953591359319474621978430636717452309442987855437958080882763570389814447379531800342277915286004872942762742445967198290765580213881216048136427168274883691497272757328540804541775035330836670046909837133630587044598756154726456801940601067909432565602446540944886421973828974096726884717907571037854089282486488650588309846191125277806199051437680079401798605709287139350658281122439805860415867721973858130246926042099555778496520766425568408664497894483831699680244088570482823214075098992254875245548918175391276223109961398462649587923423669825849020745234997797566675343645576649845456320352609731129331593739045022116959971164404575460187108064922410342958105704839675893710975371205114765024915477330610354995821840253239917434469424045562677233321561515048892406999888024800985049873653228056501293637487526572041161547158824756084791748455940224266998485066862839712976440923736294255256348773308241651270655115918410444974442165660063637592758644240495843384680536705607333032229858407903839801218529140868424975295499498510061327591025367824801167539329290575176798326310614233187004738018012368409266016540436991634020462412709085157389907091630941834715901156861200876610800145925952700257504302028734887403729862181189810845556070967617830465215462522397200088249973632677024891606753972518096659963944290459471430520069556507627357483858490806055396662195434772462607328585804860851761344241902635491536066807459924546175463310821527151936096080026497941800947994605436358887899169714792707865190161154932741061471644039138726926695267279845789686990328903387859796548360470057564103406551540355158986025859574647402064236059342801445064576886581349561438748404768203218746979239974509632683392764286453549927535239641293318803105845283027136160367540630371940760429600704010143593289000349698460388880604149427190108183017198661845411131301547242082574236676841050172492740222625655036390895893576035327819132972658261633221744274212352732931126869085215983431934518952990932315494902349209015669103751912439014253975002904133506152725726584466044738049840025129183984633180716878103079958187081517262276449652033041657371689485915106448415581322565628654069812369092598281018667025687820927255170103303773576849219928776446833726693193206232843558538772407405533221991044534728091545757750564774641721866616336553641826052183032722365483267957078029218659755819122227786085651239800488772141769629959791888334201130902175170290663974602023930615427164467281400741696086944806950274997471810924353153015176868358075551071703013470121907780599604685651397104423783581001607909732151189877193557412341746479684827474106721239586196222927847317612617707033479566763502099932381689499072151645531207243026946827908559958899182427636799936959945456516290943744507405751001826223793133166478754539802785723397287909380247023820504489661592765757921566614620603348993176112505504954922296208042016030540782344128802694765950105428743973491739380774339967447244098922093871097460912340018459373057677737220389223167149641627977060968768262736798695940244806285288066999068050463941824028439245529977580872592307718682365849975834627707620796880901471157581156198833891276921553457769778850926396896367045314187306367695809890712195352685027669667623413865905501242937416311261854637998835793815582066940278929838735170725697955574978978567290092704960700149955984926290313621719055916951534812579847584357391313023979388145883720689482930150896993710886794435038282954794303104471590266775237604640180804756937768432461795092835034404509729150044193541612508252994795698282008606804847498850043208611410088444826446309825143037166090215125601692044106119248901682016176187229790020456166708077572939840046245925085341898655151601168867956188542294252737137781468098836842765275790014579734705187556533545441194196111049463172865966460011780405933462523472814280186250043895745884614549303943872202364753660998444082281425459395701872084183507757938257302033364727198728261244829302247636233631290735671726381582882566420772820069322379503445140799254173680907193684672401426724044894350869278079816736191307594305873857161961189852519630045288892510264007600583930213576524110661847734618871847362221283455865458699429539741701400678071226630161882040616470778024400267599559447620342143816294032503843636319005866495780923830561600934741795983482008462569650519089596162617126265347863913246409858663161780977826289055935354944066101238563342973018762823413692832241058911134207031785898561190288613063602878314261508009563842630404552561806189818337759754929761287558648343000892199971812959821077936779411826985753471003984632461067489777921235099906653212048548836241744474360090963145359436364554131060039473577974618522245949389730384796114216706685112517254254750438248350912343217720084541533993827843890353055554138033260116626647359282113111901436642604005644852260721671808976630644923329016525813464438369456751597986248285395371734923354959229885136492248748000076419625711564168293401125367535360326666816363527757033855307172299453708608963906878172962038110075376865104293697094921769007610221355375905168353038642981464617643427425140669850929913415932840136132274240463879776973491780221371682627459985579522048422656162869602796109483780261737298382662777476616241286660062470771608150896960658332866190165027408282949001057438012228955700623411039122744416646513994806351457145732377944268102508597308393887697798774774945942395842172361861069979789381512244449927070282126722265673081229045686141318379987390590166944242137628861696544737371533486876961880210264427112407892582556131476571631884720538986783926175965067781079317208753694182796686580472211261873321712935604798948057191589995712834534866474307120076565146423062114197805231180794251684634199722489082011491040667994272411810842732924717619028012332916785811205697042550474480544143388343178167628102454482804905444670331654321959628879260892134583047055116625804077823293745822755967612812191033864688788490746404290399963632079693347238545472470992010212624729018020186611613376758531343901762538668959136891468584097031253194729345876603209889074471595671047431227127073703382233398336306369629845556556613821999552122762186971569165569234468346113389433310857826015079438777102266916166624430444540251233402466613565843644322770953964123266599928819262214784187798614351604363810622264150546027812585628612322507863372336856805114369951387902449651261188549986887370148106022249630785231984117763099248609714837995741846500133137381077832075945076267104854258416870379262018587699397381594164983913583119404347277520516158585471564529686486248535684991135116311162767202991067071854674394533286672181662257218360208797057889879449933424034610916544847563151149385329732274463957397081213077959522153966943097723518141780505396739820567021513388816395373760253356833443825462475904712094030933601111981449400175961000397410654431004954679245059252988359712527114460570882704665230993442298776914908070530872183721329001363075540428726572105490806450830005265485933447208053356197279270258328334791864612265248694842137457737405467849649777042964494533864368555539283579050241170951315270104536778312508212226766390744139231614761679255056467280895210690465114691845722027878302357505560976115462755193166268332718319941361476497783678318407487700193397203035876993935207532781790682628982516626388170270112246094959204217805429733118715883311675143111244374219954946298603632035654211685232635853912462112823522440897707957342633131456167134536722148018134008787307407466377796002680334320548640272402675086706296688205271638439626663442450560945451706007094459709201151864865424515334112953771126626861584039709715227599830212268145661757589124421948153009737495614108842465088384320231834986415847538833596301924467378141819603834748954336853448388231135558707548819588944451783254345549343866593704724058827437976466459091687320551851701157680223056627339879648642951614729857117290392829794885916929023780136933277093148546566303014420098320532695586384078525989109608515119914368798238103641421772385015162199688248131162104339952214565142696293526168095360595733822255519603085413430443112392200331461371980037618252294698214391884699598845486885835701197209714194484403812177857452470711625425798539863450713794853624034268577432351549385387103711807606441960474283450293762429599453698799763309811267167858956448713400059835172336195481383533086579243580714858387370120235665102557091326741804498512802326255733374607885156963326939986587195634249498723789572498775533351436547971445260380777197093422451546054459107791374853900786903097041089043353823882590511956063937330536994092603585918196261577071763060738837632916243872180137516053886670646482623967425896497014229774749920259003505243881816847193186881970719956999172134255962130416420231223936137090577497660516622355457475686647790481688377255747523588407198087071034050262789502884115230207968443508660687868676390586503345745989832152257136392502255086125743722719944549691074919653038871961496130624766019153991828297406568915362941184964147694018386345410403319499480418956532959456055196840525130008476814209728568892510721073256046209339683206430561519179064294924603414905931689930961993244399147575509853375817620742243218967586424694684754825273811047102189523250507507549061380355802897993033715178138864354117549496905700535134142151555385681775808653772854783229346358166397933189105766758073701738545898449247170835299750807298476324067220068674562652310204060112315992383720560356818748550718220895585277392023747675118499882614099448127196707786632322103085095409914895617587392401537997917939966018186798706283962128885613071686547487628928514613893239849370596594500598472605816147270284782345406293562176982573554210188498543799889247451039090125573269719828358978575963215680333100045357524883960245121417927747767075223045571473384333775251160371752932982351965053403075141512384639269949296832222234996994187267464837382320302866310226885692778157265096053797387927600665642934366309005660490250049558101697996726997513342161429952670124971887846035042238998196511080072790069247427657237300005127799959357626066307847508485412935537421941387907255390215493137164157229048787393431849352027263278964804176041642543497748902371201715885410624617799581300623994750297632909077282892325894437378558595809081281322550794169433524212130797251902534569033576299982623943341774312109550944235547126704519308465875155217893131213323727459245823328431132572589861528842774722387593317783782067204005231847358632781018676054590964374580595231382602354235160245277131554726266335881495312872981910593219820924142522248160313924149434559447063415477694498071785758774459687410107999099151108866497020183604705728417932803329699359170890236907383059701371024824852578456197958391230370908612735043099168034477099493735300996180728608590688844948348646511306540597099451781042878487751339290013613065375680166133994383936140506035006434529205219373539913682499770574969926443278936264402752746212351464685263778046350945060032662269294866734194575659030832222324174189030531244108579747220512694935509315362982000618088131291206409959608317995871830728715271262504004792726705126441642912535719464153100655349831610580812133541842061130321978296454212066299612671632245533687186267821095065604189101180214499003325545596163219152865908171816430593591798617119853447774937721086705599646398287518108925344367396583947788509288708147688361031038059870223840602223626527199425696587837950410049358928043684363894169225238479697724222769729042770943040412444414518793566707695691080708066954253310690051157413713963419650590568392658303221042345547049187173749435221019606241127848525819221713770121659402643687364122655615715922670512247336177125213734426728426795891224828282264870483078532284755215751544075484676411693325539908324285610756611305095753181242536567843523836710119388805864769617798130911925521177952444260670618584849239476621935544060734025165893487626354642612437460317805624632142241974171591650987719130564008502246961355349749862842529361247210554004918667228742089480597556846281788819323075084700276664124765616061983679385119148701533096462848848676854183963357015560129621982787938641707334550077092683453068857186435534812010445002557632834581330458613321380772128063648037566775317076606094048293662593558597910113165941689079108095301324209430840366105049270185539941653743979829453056372914967515926228602918492725785962190477108337711695838554955166676244165905748528784499327194891065823571281037904149810237094154519725955607516527312949105252762357667608570326913487908162335637099699408914037654716250154387920351687349556301016966620024040856596460490634785293545338765979242837870978654367567491837487905687273574220880883138094161799612866810620308228288635257312614331239078786399801723634782582690613236751594756186328009689065233132742958994159147631641081623726626402689171464370356177013970796508888954812123523089703226310028266578338184692641220187377513624297291359107729281216945477064667065572658229533332710653290607859667258845232852356243213226074445655386902431368973536508299560117853380038185490719618021490805274525990161294021479618808359933853277892610395812026401178853930792335225070187390931516089143315560775392209683183458445966274674134686211735575527946303924078060841919894047234212083747059061042495177125391277910309401182536194381858518295740137850721881659073845816386745092630004010197973351835108036226192605554287538886755075500966244526155591159834472862786390955416765288937654778683134952613284565483596124025075232521218659080027299664870722922444014318502030363167478539148090608950978022277484029371839105927526023263521110510390678064795003645721825402022395964256966464846347469334544643963313439116385735628524515178500438894490092756067856648256406152347838538477600033810986164839195703646326354312933611048531912184845365969088146921877492485521406850829893449094808642551154880288591456043394364402257993177094870334980842604739136009527069108716404095337083489462473454080372651562373342625802250515021890342023743672376197278466064292472053810089517978654205853396285636026184506651426597698923170565630539642509550934759890779488709632931431412912814456778671860565702909308920693253146274310347886367086449186089467693891652792923263757486605754211017896440383803277163295853972176965300146081033771004091984499976300345892837724391470557854448975448821786558783866470783807093189143718752172680127446647113689771287197305814265398373495326034480211920706395651855306486246203493092094996934255547475171184939377795256134757297973814227722421375774605851475763908059852182579379856372890471531048775581053500197765067533988169306470326733222608620639620559060111236933796298542649874943079367619546104889709776013747872815047895487787823701041136209784347173540848279809849594678834069958449939585737806030178121246797347506251583685147353293679374505270246590869919966441707981090352498907820401835847797743585617317742438246333282264953997695724209451716455025680560940305521213576854875586930303437307250850324537652053842698935074531299810465887768858072370712570625517109074079002226334160530904525179298957369925563248185763962986969900860460788892105984273213654059636913180276682183164260027853279097954072211318037103590710820172709042047809420446925953682801129615885744804623006265974703616034971207383753719155113699747231927853246360602065181898714685418777597117219154801245246667918811864959282006749127941314886245254766091933656770816050982859176630086770425364869538274538591183145789678857087755524907685625723370128099079977868927794658993746458606808601909885603823109917370788048337011613559624583991831828392288877264128246040022060784378797204559410594457400684738087194023181631062111870264833370024630773783293696914368832685648793317262425340080151705162963017437591727612740707237382480076299400917728336546348930992150045439022007478167211862729875839393628315229344316607101778292191856778674514877228562101835240336308154179766756474688946135083654383604149966007071976247510537520320095316633611920873058033875311695961720684306173969826922283033418748259457350453275299727696767072746864902916874059506534271755698040551413253869755441890086776045828929648203409232098417355048922500543168274421970540908906945712326461747901261229453193035686603351698388453182959473527830386420681651459577277420525580824796696171669488402429757546193902043665958919719733792512244905057473616865280059746486806117250634602062077871019415319526203337255232019498578442315102911448540322116030007940113125420935486077295368898248401040780907054245269158288103882770869580667908479997265023233372679303931150439398053430746320244423356646823929573666854218838664788796385846680258451315257220768712407544024124424474249596251599628242141044933290297683728661559415566200930350530642268207079217427184152599596138870429204847389048336749703860667323870924605367935423000945566025025447735901799133717016834807915259254404804811496739156673753658379516791296373246478775066528944024723542214473510074441928921677992917028898997307006769749962145533957770218048209725658691407945657377489646473119802019190930347496612077147905053505742345826427564736796885439780864837890341316603677152656512113689795006858439413901339352693240342476863804197012861097373759168768698879812706852463360923172594395164935563741821437311954983203882737695710688117350045958497848520940651745577333990311200757305071844833652643680514491048519067102458851543749254546305196726943918549076862317748398769736348274876672083529456678255925222899060848690494620696102767817336605117677648720553631676025092174223399952807425034061810830429564365099949639701813242524465539830860200564421577877108896289956468966471803776656938363596165015303081315052455234865761741412576171492372856383875144833925602865674097703515336141569948785019663980778851122037204950194909396613636002421131377762951398682346727017253790019046181934612514185835324282503729343498960651539915082372708826925262914516891570314002508386003768573124108549872761421861732306923554926171196535987000149718079965062433965243675006717148775139562890077173242768388703494124534735469078436822451599743574438367048459043898257843615755775290154404451944181905734673957174719372219164231979971525620945707724334064256208953447791906814895543477331696046127431356342703345490273949310001223644926341046002782912994521627228934366197668849963646629062502300122762885177486048623591102973786163149124864223966622986853785229753573388464707787469024582229939791502322654720430239158632146011448841248736935089737515029418448811790916438465903883999376536151015333409402319132391339651227671642824500961021054189732120797651755309609331020844827509643452513169290351067333892882441868597827147970581672726853681022285490998721214554907009622328910516000634712047270636106949979672997070854431966418340095532664537634630630768282950769226491070570520329001093083024010813739883897489411991313189685572584538864123988068173250165747814991863119599316624086350889008007629473757816347482612946652443028774569852567267558466768446504962293271142958490288665770311497331930600755824414912061841837652511142505564447609775025424752446527703838722007674032081146665941162600362158077427849179898823651203613619090294998902373453663500998584123359257561735328932005197615292956934241343951320562049370375412933549958947269793523210794342685799683756783168202606627001769311900762125686151665698936928166544430142469588295619002084882286181040342310285594416480900776807810537561021953438616606226158658898619721132670723564353768892614597971310826679452611408807903112547868269183920100156314874510204336693986863054514811156404965213986994049882200339712408363095184483116955337297618066169290773594690193473389272509130335202145101606273929528146938738512759654474742435767568207146797538328350448898305861784364406973675899575717616435480090977313466566352094057320213981394541686600883091197197908965267235968339130246680712113902769305337666935446755460485479796856966962766138984244295323032197869237678751110955758230195826550683644914834222640671461564746840905593872512809912197186294270528309951961413968736645965144331109765728454162208287542548220229723914311048270794965257497697042315230636339196512442071559227150162598388449704684968526805734628167081937506534683160093504775341289982840634798614778704910231074322986221338500465399910374380541072224809988101053886972744454388069683440666209321064432792771913371309308280129652999982493711224342270854161187614817307126769456063159564517327433793575768330654275320195252594694805146620350761625401329148041851732185989180084105554424708023914451320064557021865383220891077013134362566114521233587308528418425366606971644235561790057723205197710324002411543358475875525352359951317886142840977831438845408049671020926561831527654845570903868541822625548083985375289242081059547874455618887805094001209210735206527702950110376142977895397891840169917463878759823256852122269843847609512119446881285391056765674472131921876977400224198037632348959707800097377720113757427017330773147026081454077177648784351823982399877278236034578674287972717943054131807829664222353033230113037981023831790359605033211777668086965151503828053525449356864770183413636762311402520984685048324757991684124218614694251729032442499382578847954002611576304495239670515525077153702813569203931037989819992144384068420861826715525950785917681015944894324158108779021194743749418314828742286462602211713408620816317049855337695460230451182411592722654684631059955179280482502167085690586168699616605403460335847473468836870477159184593999065132925927538400542865603177533069956641808958258542597929655895463156183693838270770679300924287251231052369706956137098615354999788285734613904404831933800066508635804514494923099522896494671733897048078020136573142816771862835499069888756422878579411604463051041064592196147457563850934066103447859230822033472781521817016311571194388296977705088195134071885987631817413046717534239250147389781864038826313343084650588426282271426949916646842755955363952899867130736829449566597701485039713350034880571185479851092994810447464861510076478936295898710523096986290805756279482210970943173450243640717809711016217456888248842780841215032569620604563441182685404602413851604663629732469580117720262221518893357226997549536810661709989036883083452755087797221525353903176596609756416748856082021547753875239311148792606335383721560936969301933919466125024186368881680221749357016739170926859987384542998831273753820297574896018419695811748452049996284460477165954678075022037003332421813908762116468181019737507998031791761412910534232137949475848203570411303173629056776706304443281663392936490509359653950376235992237376529006038981062375531187901419472467327068719283472299946719435030808318910969739879298843095827120615650474005121291902115522424044013935592253890489795467160754711615864905448103304907309958939835204912696985527750812395067720143987204114779865936228999417015798742532843865966114834392806981024214132227228487213736914808921848880593390972065540919234815568459782789505096338129025784246265907368196556204056104562522827387259205897001924580591436119226170034359844832918158125768277891814165851549978977213069995576977939993554498644144747803053503673076037503294838538851468621522073382145973086643754957901775855427788449815437158081820630393643592673048106437635557525623635703391469915336757464895156223486751839541292842833530200423001453338228333499932791458547266481568362927137634421692336031737866841424804324462828431465841318503249955115245595870389266082705303182433966598142844206839194038763520293234618148775298502188978642888691218424860449657292259190693338538177385066199136267633723764807566764107906854890923216450541950946339700795518268056137945072166564503949350779255187006612676160791323611481436084146670763117936252322250092581161438395122397136942570535118479416145410289928917634686991922788348333358994013791336950762167789880157838144105446382949168678705483543586485756689409842876019285292405588252671628337698836809076259837385700245131859843413715049151094013538632876175823032694658153361086517459709198629208244115963208449971759778723734370532735489289299853065452476556507733787613635666427948838106914768230598900042944829684077931548772114215676344605372693020793622606879957890158709870290665322877943234953008520312815105805321428342947050350541158035526376421849938605902003233743979486676696013307775545573683069402341467937565087369934659120157503845884645360085596126053692293073108831015242801529699693029784262652222485294832240887597424419489303590385032026368609660709128882951452390168764025990063591342796700213857573867861621997443889329884079502474346002771412729971792129027391408196430925883012685998130899046197036174568005525244120231586258619211948679255170183998995994218034215208599020595358821661537878403193854540272030277829413039232613392451426917618482292465728289031347743587579218075838248546789024077872260726887083304754304600515040363801799020176851714826590222727374653554418675663916279654172197490703860034902444580442265684047434563637587556900417253002687839283644946955353734294574694877380527637625558452140454943713250466375301481345008047478726880237123661899788841138255837614009201669377669245206138857915366501231112709047092452569070098054240992958545996416242272600919241644015123010176153010127860155730519112982360189444280765798656379071531697400335542976864055055324636687599935935398734207479759463306721530422861637821980893527794066939431991007014958755979171275291349405481194595698787152537040881738256825613521939164902371570733396896835070437591917071148833740943431835365113413152394923571248612560105529045395406174359647575471927270277777685475774776540531285036459510475483152578660485078618745826760221184483171958485760740420080613166065478655617830789557284721313872143850348451698139917559975496565524364605187669307746850874170333867673300158498474215949644587676358007510828600160249180736902976338988293492274447910309427901601728173536412085899838158544996214088997968128173067005050694187847443576123842060192068499926043852247830480983746001647304821977910559661903459745635726473069631775209400723325256385408083372301645762489436262382190007488787799677372675600402480400592821134579812196304098647364948637107003015335372119292775722275450334916928235332318113325890166488880151929721748722797829133096476385412094678299591270805246935925060622195321417023645667838534544627286311276527369208295375938501059296368569499620552769255641160918096673986529451416865744943373278776899298817604168929827885764385088960535193649458396296061380486263728723187483036060129082188529873478131895983040790182097728221924238356116126667917137602580267223027527509153141068231737670359276317300964142678274953098749733957325906393013329056140560814316926775280222505640718855497671841001423118556849477746190720940513629438575296009143327660411077388938466970804662639295899656395661786568116492343185140894422591363004042712397598483165911476773441625117153458717016812128379677927152397593092174334513468796431977821385368096086584334590763182695067930793009353554949049302449395020290369160509949462696155785267564849743202355087388285405654638140476629649018787873564716302977162696570509091506965286369263225181884190795388224566934143802805444549336585771044308631860516126214959620917806146257914401929355647140038633505021634192474317094055500037001866271427815102831534702550874199706699015167657684519031147900112417119213680872229139240920228310717063238080964549652611940765034866168823489864769541506372135322342906114100164217300658067295589291534866962786905098481217260402777004376080492138704715316604849102376640826879330993058247799075856324521206070920272832610431652585939707546231401668191161389439624593912590731306095050054431256249636278545456144733362294137838775757524196264658225830155264010900814234039662792558419095324899842346485054635468773668384250846133696497771282278521067091704850845536579650112716748916105028615753406022166946886995690331315814192098640143164372427070302822709433543747606783692823640722015014052987977000784449851403436922680434029595421932491982511973898400839087703840183139024771640171570924212424575326885862217372564184582088735451367328275304087364960915807315005784520331667517507094635875514917827634192042795794372657700473918544280215189794802361788540359221623066100435578897699048521053741466400139034532541125555594828800395282849993732669144607519161275026788239523827741722524605370002490790396228467239284554862470716562931277569920536015272350355864142315070458201003439078364524765318281800055654394353368747247166537303339960595832170105838398031030262215605267543492730124990011282753039045415428641584854208617685528632525725931681982395861102235780211852829858157824938096093129007461342017682438186827973851010607480456379137406926821707846021728271147536069931124725695622661640557291601463738915019224808453503346953851372960500453267592576552802650322188648502187271638527014934535106719661298248461701695010021955388329002093163752331388085150002145820151653692873432888305626689730928814625511415824594626694737768560595727861419377908909808153931089857708475580175759048247242408349143464908834186718702520274439693976158224700353266972608728313088426005669756253974349105787593928799060508870783991120122419329340915499925029469962939353373731816039026308610156990170072617558932951710871965569804474662579839079374504633605385881981076460583142758726886188839639166326540435964061223263548277839439431291393228784454241374316970061150238206705791313964323960205432052583345132969848516837604473793369036260340435844562158037169515649862252046086992042384110597645297201567466865561906363984076750904964582661882299743977919102672521341030713907800285326701732835338460420830060160382859800327853554556666941600333655933358711440056477231331662960947061563831737458590894353286768380077095194877628531271447844341912460063180557438451658858088553138420025301203463821754278630855232243027086271504033010809613229725344218562149724412729311511406160971488415829082468636326315216834503941165780490930592851293308031041548705768927803173968565940478040814428337931401667036529787167777009793856037707216994583504635603947294947737067501541142438847628760260929565270195319037038792847618856692625908307784616183398207143631730721761508693536198869330984905510748745984220148951359818550629433568968467516456603210339763746208753201732919259721832668336442767317670743069706506348494786757217625358243684112174554639528040283756751552139913060786430123263113452885870716190153617016764500076444589763761300576214697369865055875918193648265699192539196549288820645059919489802261786213529166472138962269932993186331049447078528934433312418793231932710827828206839982223975608251675748046928844863460758022160890231428410571164089549074160056557761660094460411800873931988061090383665464920899478044002159068046141644305545248106237029428814303238298185224627605841336620394869527881098751650145963237451737700617590182556445091926964428812696267326844848328353275581294345474114932855239691659616151863018575007539739444198634403173265224582584573702128502243908272681949118107709763162263050937296565899586157202208358676557748931758723655791129376048567852572388732170698618868687396524809402992702238567995736062578234544878225525618745114795970089551205420642794389191582073587738784805188255294950422081294966563239545871446957883865315564428246368025219033235817558137075566173831602827555016771231262665749762721945016815860694927795924738384366496709280913730620750427594062015970479267654447745085267961811923981772023883157976119166085447384210384657221546171094036944929720335932694962390828049143112165689750601150138549197717223400009209421338326722975638176799994264266985723399350687556998856218194108853916249759955768996124148731350444902173926406175535868473968723959615937006400995149463903669414375827709412907100129442561230570024762079898636416290286775735030472143893961588778182941255329453582529886259715008104823872096605082017313894908821862053202310563780029352867257359123164287394012804035706686530953276203696121540068092905681336864727544838449766694051410366956799471650698006841777105547474550220493869979405971833261052442949515968557343329138680169406306182999834847572444850999890397578903200235460772179693108511477586479349473968757011448364827743235739757977206997430756492475972904947520064726842134774570880761939673939642080094078739193505869823637648824121409206926944953214732075017372213827708905483074373234820532424951240390279413629369984671860263618397299191003066559495280797388028524596558443911615378719569330621630988312464433843058355139447469538387907383908203117629214168195706331668152755606182570497467114687357975099864720065321941931189210756320016810356291881943532778250109696566019349547483454073712423808198630147124477087901298860867252424239570667577893227905075317965153587367911139237063116597132120127306729527572264755488048911034369400991364978399591223272352572698874996202340086078795255661815338214362581498572250431655335650480762542810577703387103721349365440182269548883461087316906717540702342865805636359197451531764684212766608963963350901127032656686058990699459979283176124055426278095691272340332426714069732376415918784728089482880216433479401166329427033254624572634793110205269018286322620690959813517972776551562882386840778356032291750876503654240418718880592779085670782597991483556531829919123511716928426652937788950522199061950321942909219556647506627735918002006293082297161007959939024128581239075396928241766754445897617893993128129247000527005518772729837592211436839266610966442485408990477485518343281103686922779709635034094293426759608328558265822299192339229226104938677865142196644906870087593865048041411219766484958433460517600223698574441265281346227604180255927523829789409848008689126339966975028447650132094337568721074266574931164972307693983869729613971777767956570200199591638686428916388503969383008829012453380171227697867528127480040910804281381723370652194151497510416595245100213807006510504638208630018046198959024550447675113537004381630952194414195227919725444084143892479138815661008312677203468497174299555982378775850017138342233097029956006927418258292856670503325788395989862229953511601980967442474715212947705597124194280423794856802538014507358931014650423980400868418584935553969433777968885251222565831674790046682072323438282027294810822850718328269127916138733134869061697766214298707990558003428278414391086477345608567881568033461868869574567448424598371792501870974410026572226883293601555994255963990856271923803160355593084917038988407742239051181864775185979907315903513567282096059485623947911213486842525765160150981509198704889833867717093722670087183216422220518845152209356129286909699570041824157839577513286271700997810177846816448523042935138542917923395279906261793513376527113496405458965222109696497109694450668658323337391671371557391690102551101681286262203650365057705279854898475275843002551220753358255266107942904409441527323234206876032182603403854550139746478336762344979949152934192309197980561398345300968452410596688424965821868530641212696186252959098075038531538680463379873157331606105951454314485112724327790317596774968087447102227257073489573783788444903927730625314724642798563384615728163334416599126225544160158036744738128377316238237897293881015621194333244482198871356125740168827672493517662948592518220242265395097228852365478400876895178575835701456918501456501196765495765965464799134522495183329146270550317837068630154506300464120982764420015602118928542263735398237090748043534319447484966423789620258425081785782778340737883661819882393516447648895808974282300664566564602538865018110850086298405364675722452797118970180563030907051462975572150203169991682436778274261001241574648798345774493803122032628586689907337012462599918915822367211556151308375949398739037290604830299333978675180975321023892298862267965735290195407876387336078380298497167094464345885114886902614575717279384657934315342561739424263395547396748469096190474803651348624264211299274548461315408622589718069587942276433838051995698425679782021957684229065031097861162742958126689079048231821436130683552047458953707372931686591387105373610615160696674122024481282174193670398708123271736429030490911875847933633000774103826572491947285430423735243108453023322816190264392034258645897752672171203347810813380535898935520837354099311003767838958323372730450950274997277872178402283729668769768124225629781476260457563232792639467393999575620760092331514504347951020858298457251280232319985847318199462276661532849488785474347737870598688009242763582772870500225085624167438333341936295619141998627903616339028524097387551148156846252749243202328029097119397757796572289059739604132010141029687161121961508102233766910868687453492142514088766921454909278312647891326709054627163421703948253964325855226006654554830895400189404061894057097137393514489673522838198744193377059252413219350241120925583183073152878265077683653032866193778720201095823761983496330323996917255754577030189171620162768384866535978275377179218326853683846933249468950636045680801565636166914644118944140930827532933081277740835868209230615844170600441001888625703654406161623590144479259953093523631199382509616809902744130300981072168529903242770536651341497540991071553627042294825952841441361296320307413008011957090921586020210127269587614602402952242251761081906977998048060048261302344786909598977682236448863872777345968134485368369765423267782681820778561573644186832043840673083470877063891000488476911810461224585685324359141616823350224274149975623884304739912499075015668929332587023831111386996981380092266118463604635646908189738700569534358951944657682858912609960481006819029443182689836124958076037664866093815546562686486084408600434173627830845678823781616145644100410719149778362735247402836282029235245723144028415012483513649874015620990758457045534004448054470111765974970324756457890171857787515540632358187410733654656620518519023452461618320582277278413232242140592659663190531112646828178791582140116727811023118899213791017963872028737090580400454817967174139645840064275325684130229623434835160832325043187189319497294885688502952422652990214055634461071744801722672501784255017837225358523175452458173987593227546474739728618650878599480604045655581402279584189392669430358276270756438578478722288417568825097068624056028451376889982840186192187191961276618303459778296367120929327554716148803903584081690495233797545380176177509816742329050916264352336167086349078104415128175591760453945380308626624896584937153543459789901941764078399703961217436756335578181683757924501056916574730671967746505412639973745978190182728567913804596008107905751713296701185152687863905837357763110512727565164094311761336656010007899986090368835396129720984411075562282394547841139593445244133555671392076155704903483359892104931798933929900431277472330333468605337472406955946251119486029232066232526125432084064216720156709062850270741703612703984030228482497262247617807311454188780276046368355318105952857800277270569320060258739263089453164509277749533249429361624198370268345433969184001022429566401233945296399517428458726765223383046073242636536409241008097400755815112618102183750990848966976270257905213929797545105671416545914992976958559450281747761266765119498378098986304971747854637117539518932811765623128738227648512789033131558742391045828692756403263180757377194409908728804660273686670089542186952703913000880861595952046750243200713620552410624977467270184899593220521948827505665302490324609628476564847220724379881618219984995620334354975210615968922187305407835316528200498133305987056291776659564808714861268302527056057010609514207391837392659356128265637459616469660968635492013388952045560757430648654267193910214588340890337863854318822435491744855487354079448957719904521681037853798777660655622690258619213524771320302544313123067651774161598197978075452225724000252736070299030818441148277967580307210851458759814346740260615181785893366219529652160771983473492252198067612546127891683126630975391250109636435958579700763476286257037004063865485994451562519590143157713189361821026473180317987262072269312283495480660507617043745407521310516487407730622304214927016389973491495235749821618369409047976777138897809103920357645357527253504120607359493474005965178256732352377775018907872488471143292845334210788110382999774989790801246176641659301783568415185347270135093080237614565926115450011119782238262358199495080989975519395387512302384568486518375606737570023673027660852006096057421792267898063254257649837468108267895588132186942695172437137104083053678289238341035034817777019009019308307953442931612961312328555493764461890594224170973670329276927751236746523592372031969177547620402799251554508566040752157416926327663571775800074744911358270252539477477362496146203127202043508577332783887645928392730420634460987711523953465270633342092016829956707116557215854961121337898319532734605778888855362362845917514414588850459792150126517723451372409796478035151066048929226464371875436528613345508269674069870482346986446619298112242280575959533200995914280481070178741869578406093167061901483813105667635566765152326892513783724564629398637428371367213891607431785393803760587393806716462613266109960633631337297408878629457047843674891994830055949488802677543052260873639795838724121625130325291744259928756528225853130720788904420133120447614197765552401556673272511900272484320772826454887159850531381686935592470509638578804329843878878651456733422913804824134040857022511157409789000627854347386086531889306496527513872752641500723340159557324339076393462802018863854918085263494184920906118391968249045055410909612830522379508252230849096098639716523667188473013034478100598268164632013118021974430547179848737226671823959974232217148184131528288943452710867379869618662586936540334130632535526230288835916801292725946893901222143943920890953369540051303768822824309140160465727360201179289505668911889891014836655201639806462890426721939491561200652723918248293392086967446836578324517547121507714059799263447566226383105186395166897927795660300142917926665233303155230544637272157769757990368772009099998624815574863955273486722956440415272341250528123652334645490207251465797510253470835693457065565016520080628427251423854677331119499127498281029952378444108511722593501115602621328031274901178598767909068770489432244822605448533473838675089924956158774729916028748490629916146817839733404115157429642679493765467069922381212926749000082971038554580409280207609375243700219372445930575180132215883402735313318830257907096892162559879803074081678118365190724091560491146878224649212991262451680466092917364554558204282567122501593204172938852832181365876994221938453764722513045881974844504876009188684331315165239238700634361329360269518383957852074976160165076753896476542634633178662344323826401586083835224320818544836525723383939960386194248642571887885377976814807946294113778882376856486425018510599230226155962542210239421504739625935684153365368688254916494926131713078826603786941069281588045556927951489595395289887431389638115198771684280681118534185854284024995257886914663281443953068140993194965396503211192789419336319198057030970467123400613822341424643428816365538927399654959259556848033589431751151092193854735091622630470889324982290796217865066793230372644790185749513311865219627425943300883901635722276853521605985232928595127326368855749608116391143123717961595561113486267795890261436705464036551601091042575821062494891671941747008950995559028729488605565936015964643546490357397594798447101663018400553425168924858692874636730499925263027019234951972790730336152865806726836150617492323409394169262929869969780459766022342075274728949720489298993437526548693562939810366257976271976217483109739034941667068984495703864888979269719634316961111642701952639625655780501842589883918165554134314207224716418304009572802581239797603995275551983598215797276058926336210988714160786130440179085014949893672619900195432189198117167111941934109052530644124759805030600380176450455187869473134576531844856837276185787990531363347716709071438402483970723510511668784514744919885086015605414224677282093573200599413745120737636846779353360000514400722266701183933187798424940201579275564739175613866137413708775112371723583797667331658068444472094228265420751787236086329895520712154876339731613844168515439602910265241703596505816379481174520779372161148503931977906704317380507434380845479599640159518373196771903834482480650457654545338154246888394916965884049182287967957361455241080013712726774537420540832758641805216988681515015879887689738831641369032536081787083047424446258205013552214213819339970715864213154955165726875500476883802430315593882220185053892097040415799040227212763031508365864088417684790518933716684847458201230950130914813331345346109675428671547746203532974412552700246516913633825815088148711454242349736294614013598287281807213175805244464027055014105710949909716388298231667625833687585217266448410878028357283313538393256059869020336000390640301347763235337613365570152783936044478487475933699956639700176849123840622461899234980946528922077540332019620615703236278733867727905278794403088445686633219593584735970418151435113703835887101158054976580490596843337889887863803764611695719774801429698062272251389371722626210022341856358263851152108244285996762451171233185639568340122360160033031885396321132730685896427339583067109051361798508541654483142785981986109989947818093289317735437744515692071568965268429423293316358370630454159161251424741957738868303547220406878729803153540118046236165591642890458519070726713670550113902057581148940460398199583334418275063247786516485920760193433466779023480400375036543947731971340770417967512660542297968265567061894116320115278843466716822712772486094608742711085237959322602469752341618758493494916524475243417583126928486881866649409021308888131635646423460040937774112458021212933388485442305576118180384471702142264270098745804003371924891239093584071628107439115038341829538025084182210431124952923788248861093626932468098031875488892423002089306840871713029610767028674037330591293469661930190022205101919554319163257163835726660539002182258937002979063111674554258402379089927152538244379378809703326028835209652292375405969075888933160005398900885455562679920031485394414833104033258434554046050887629346621304689333207899451963823372725280054834450812476271412737205071506032276514107869755097605645810950148147776569782554546970337435643598384441556862522868642424319910637057904684878198900087695481129009569114137445087563818577784916519342755367685669994017416494345767541861042884598109198933177331373961745583454039314785158550963926962258997306422709952466014148872361765602152183858801561611726507869773686783987055594511939451633497389624079359486060269285046295397916058481042972191043524169226288677252942728919896330796843190067415305772177725719231746559954692527049581916273574743727420267578634756953912312073669660387234996309239592581306725127448210897978393387325045477632061149951213850235813320394514045147210201150216184967320970525269166889319668466420351091962749601941087146582626827117380822883453149766041419399439534399850122959167268886472702234743682840849029566499939515693510052559541447115117905948003132361904408954013295119791521317924410719244122024763756451605834800082679452570825506057085569238894722636527437927447359669749179892515832947193572864711921586014149170691531765620250878867626544440570119688684456297928087703992392716594250192743870733161054848154949076712565019138333146657152903010643153616747705011485526472155859759383374020026818672185779479797616813053992000678596795467777450918807054582829240273687655442787446875283711190970254424979798542152602757948201729634718064725049519987469070195032608665671737344470864323612507176949627950904863188496845740256107020862956084067782866026429622179379486383495824129847413392403769765899765577187155335111332943023693400681191466650394592884077109177857235213656101690982180094672696452887190287315858591517896005358593284149820004974479612160030461630518224779223391369459055470626970113182990032731358700709427068368704877412096897184448838008966211326523543876171178959682354338052865549055495926185898770444932623301357771527175257751314814007020658650410335140432100289222150984812476022724397647741484964500314787438021928997524608592482720665445839725163361443683747513111456964450222760067425339656657358593871079962525630374454287604877393785044398432619738908928091288983148778411929400804926952073867491491314506080442212177846246672624341411983927008091699651550011209103318969236424058236323326007272609543832005501087959444625153009061058823817936608755454520689273365378200707306129671477569026708377860643581989548729471831454984714836904390274750259754226952983527689004060654844765136565978849342588193714612416194733741963251823009729309740207083676928878948708760882286544733428415141816213334066868881322222196244750207405817402147284063085462593729403332559053853264503401652681408730217162551929541491738430652464389546016648050371532712167383670184347093670806576784155003771173114516434813884737561134299755470622491620421112066931162542614383404432481092949118715869933775857492617666261155523782676393435350913083894805728628488415632390762342748785884552057535003350808728725376032687339208608619797056945711377432616525671887840275010836231584550918352801227937086605006423887239141011764790190745190821786579332561225522149288511682321627409723795235847224477378836134265938756110807422496533823827277366109791697364764017029414118898770902717499201961273690349906291193223370078403659010763458957948289644082325752544155547456397587070253164042119257887181544215249167743677443336009131952008924774689967324341690642842651236933664320194520511389522029782743897801623238621501706516045288560018617920435198873032803081103861726255108693876383135921770042301822904902192390608879812674946294247771713954114999579904796876426059392589355211446662391800460469539439200217465448665420491973833296352453462066410499199384426863821303774460345068760567255770271058035937451061993132095422253242495761835274171730103607804297034485352317125360207751909090294484596153779395953289176074721997781673482431491208869593936846589144209675629495930641025397334598247841729517153665229460529971120161032396411491791753123796886424916235383347013069555695667785250018416403616369179238972658244365350469160325793751657028460807378523740109275089024032138875603249595394616379451189684687825608170421197027606555555168583312106431842544779230689320261074184534564471426048336947671094174917773714627947776012639810877531816224798137031879870286302096857249164852411444894182051303463545130705279978802455828406676767758350662245939836606083903389460192607059177352519799994895130912601581708774842363659347360351607601907152733465475977611638304342474284821938193807877352699517932299552375151697678261049907874563068685716865761121154698385310222525586113804565756534951141144771444019755227733164000688900770089622246003620269552944249528813987708485492625225615495384797817023037695704918049628820585678428824683312516836647239592931533669403424007318854043337329872360595611274254911959033942043665139391592785158931752733775532127054506853653156436678148952578699929359963284245228858514882424967189226052660306608638835948576381913370043151106577742624848184004287353739133346268766536594211171763049029009715182952242723061133808487540553138718665225404289815827869417114812878044611288572091179188052135581539094600682302645383457606522840933104567370324746005626782081811406124710678384414368707410027210838253946271579707381359347674299221238309350228336202454305965153752685206047350834523717141462431443389240768362861228373725606433285198410696669634685095193502776915332262348357574927940556535826825922914590707305735861713177939294037533568919160118567026192384445359499633662475961849365134347081954428255626903395576396994377942354343753226716754299251549290322148322204788492202746693778866581975983055390059277266468863137694966393218817524575490491191401932069698259231477872837022371379482275075218896829907361792184137721644071470569664781175705070545524332977130861153515080259689167316689943293954706939428678477813403785147090534942640919050237416075185748909991695235699309625023765201118600361119540846353016381392641348629621618639011252871209493486159915507064811054292035913270015319212435655383308177938694131580731676668809500964778372670262350061234815732869240248976988166733833436351213779388809297444170330472593278339846518532295285528240434668068373483837858406544005997015966919106834773523717461657497151637953563720515428029151284056550641264332758880036209687838034704224602518678382808397465375467925586713126734590875110649161322027339265606994311756323925972351789134450793346737087404080211741886034207280697313756419706335433592863097697231985603313342036163078734652578088911773277564854563166963290828837054586320609641290365089115118179424818569811506579044315679102784803794473744611888179934286765511795252099153046134874581782106841124928284453096934163049787037272338881255880054238511548712232462994305880873654628366955826760476263642958617384411570400844184228782506707826894789225488712275943994285982382634377950422647340687670240097422859221714672997917794748124362651704177476892717186423589583945400906980100401921027381162159711426562410239284969798250125769768408555746117016062675494087818214365071466652958329741466250175890896267394713866395010403235058232347932918194763676357931846300861989753194114857156422463311543712308704678752730254963879666471594916009394061894543890160952652656401025203896151066557092430074743843798439163866905517094141924646032177820562932134446181729781841236718485758755150131618478041384836656385506910372020052378541463828083183554110966313132823517394717739350040732445538607365032492701338383441003562512179032441254957631171133088606861411225147422935171282382998819527450643469323891002706093801899247055443559163873799150213050914079358526285620324337919751991866520195776406532337815811579238544714055557355359403124585568301812830214398486133461929370909904133573089188759380451347670071587441727680155045325140731674718128160135001754863369740883476806747531995597452065939308908610304817063062739280418734843074885248965242477793349097378597893482492652375167220733409261157883142964451526734570687449888558189998009591262895306350679116382211513092392898945304560283124221061333761194081786377880084435277532063669727754800905295931530875515113750723699460935303040852956871802359556941549625998851853262561662530511821290820878746768446710134774176895278696184708123872616092899778531335354886498919186782014735406398509792626575194626947134911557054304963754953674910794463813946808589917750074446186583257958476814535725454402166331326924470183218002784989801930201358370745030242983958258154829651664594108595405528398758454485389764532158087528213872561987604556581517207041263231597126966608856915803150677297690365409993729844151865539448685153983173163303799568516146764382809183929263935521155985355992704203010793649130597205011889136976131937464722740887423583267059878772637428069647406029684452094225721995218952362257477074312117080669565269983962749167147401671631545006022419996474040901328677577039494936914060516121100377362517078370500659837474533612049423866617919839105178565777384267790955645843738418045006895187028019987270778782876080691786304227800927852067513625312880667956870638956117045052394394792812632997472345692388550581041755738366743556468499864093122235150243204744133503958129792039816733029197885556388283191437072952032585207986489712212180347888682313565326884717292821668819552562547469877479284662900834601774515685084521940570615028880881021508219089406944998200526290441028423233188637963517102859875646577731543509445749467839851407534913958312426117906495707773237214320925396250628054364279066088802509859328073595463415998839867925905507533455519811477323291032047355939793562911846546878120906095559429006448772566610238001800095267897920714588363239784262949054387193625145618296898420266297563242066441330359154239784252261668113168660424625116865082115312111323214277426763796932424480129394567612257558466401988083051790990407173760401010938340804972927390023092800885713271889042131205042731539148541953630004134638825433748913513358499473329790893226586254700891015944855285476660582637318992063228373845469732480845241459732452127226205268141273276594601057862580838685562382311358672092028038006518669432597347802868608728140036110791866316085161345339350297967192914074554050327512789424213345224970454361010431509373102432493281420967307259913837525895829192787657203599747420969402834400014243268778353523734139404933484573889908894846380048721088201156541738961806781375198677558124761834605385513678142589280797143381339768452356049630879931629277972070531091769391442139245895598329150592601451408075085096079157330747769697334773120835084664128257601809420667318039671717314883732694762779893019819535406515144756299727913329023952127292783286559897972335491057639795293883696210914003365556162155535317942388874317022909359785554524024401742072063474698537260734067092008000262283483958594259624960869119269218092805825308724661305770013419852233395266701351851567165146871189953780420415670896231454315956720076530311789059513573704691852809339570720367569529973027040297943258818215654921947145337710544354972658660363678627849176212029842046631624700064608780394967520784284114621684230206170951152519465320293110246119192763524136024224966647101350105351648997761519641579765916074411623925841303591197523946905660686424024549790876223465413145522032013549819894371453714842169142685534452493937566423237594336316685706979564676453823840696836207925942992653815761365899519216025490411371809805719604348126239637193303584761766449188646942756398464041457959726287836472256516660617349794913524162362035916295028459811498559626385949413602730580763422706856611491446035243487773866903641882412944873261713990525209222765532680484690243076990657718500646876368280222076784050115703617644426765327877810666160641159275936383003168832592859908878054509395264642472814991004856498780945715471728645683004748703642651234082917970472696770550466069795498014388865667200687306000851875418138219400466344360483605344596246160550604887324147235620469701204726207982211033580686586056953650367847215712500706892910275058831116204769669163875760577589765561809011978668243545918251836334835880588708630131613904409892924694424161956804507188575172374783842430980005319230612253021093394845522751608324351548664174841013124217683009277082556135022522580954496375060019291666115105024299614037607234664858254395633270883193701254343988090393499824364029328179406675408593224089100937237035543251810442295563656799719107999817956851606797414756472588914420845716875082686997483669550110428810199009418647948128255780594538295829215147782351646884334551228846119998898783750798068346538755140730214941055815720735647754468766208921472923985491327367833314617752688267454894524093251846189007261757103213656744021764687092462682998524577182765032346999045368278712963348741858274401347727657097072403612159518154763952228622986097707911475826269680843240552227850076038719182378018639914875293041904730304543339590340828754597139463479188056692475906508885671383666493342686084538618689367852562696706159932862931230331118782801412327089439473898686995650810863289561209923569875809958189551941892653424655085565776320008812733970530358418834725835783062729623199820829295740888994412746671378031322222704240233407226141165487975934132443925588791089874639745796692282271297304613336030969789142464162437731872961645914361159110520691745890138076367008458813744227465465845240799767589218579725008037417174971265659740295556272858064558366244760363824506992039387143457982394962983071553830180543124527949877249045126150270340048199909786661096836566761583359136459363710777576274795863573369965787654372435013763427234503360148367075274709542108175925093550376088183413429288931661053154791038073703545177114118360660280122678079802768530387261582284630816364463229054766747069740147448956643436369055740368212804024958697613682034990190685158666554008027901700941366802396742878875496038034554510305511991308159958462677839499723956622849355634039857426965080721780662979019911140165307910498720491963197839873254158365606085690978162135384958779397613887833827945766367447087709413308790405254016794072918737775786411781013358729929980907875821601011922030345862351710999635762181958568241777685138003425445844826107938257002652116963301519661696036819216918537534582683348463173676172263214734653444149913226787824161630496701795185735602461556804958746051617463195219958438126551543705113226919072326521652418431843231748399940363937769462278240677200202445855125942464829551662830378415310726907123113160256613236437960455416414599083235161462397936032304894898526904367618773624856918045102793317175657859151571996507661555521162773729400195162207074886209270076692310226545384297511433438180938028036071105930613165817723512788776127530374051811271710304241491846644223219582860752709979262166578098766205469096389741148350053923560391023329572701411680982253403612648181496259749296747028191357461728925136940343440773081132447602404140915129225126060257649281316581056979306554349867967396363580542616565575935379886204224190263538487630970521717840319061602433423692548031148959269933332137439023059712974657324963553299251637988360535689239990943468604567528893071228212440332546383276539315339412277570100248424210164115660357772656159934251626908662642535815801483333816463652389518123817654745166272950386929948669857418253278308536982495648742222155199928463821030387987962304342987533826858574704839151671630946998962822789379902058577784718774097268621252078187361979737903305911161252791081159164674627277486708381691658354954860845360501725051642588945505426396895541119502731982498131885658843492280992603235470561990370182729830840778748574258923423973356292551542583818103583679157013629680749103175785831368672776862088845058938810292675194108492235893718228874557281771145395208212542949643197722617141992526512783484306804402812039018514890521364999181371576751531911415468913326186350910174456100720679756965143555756330016841053359303749771798637524588722258436617781737907378251927242945493011030746421471819226233492338819828608990340757634910084563351023925747633758843547106059618702421230671216171640464573438367310060981790099831990988691835396723063812325307034818076691289313050549130399412143097171938211551740199090345973981884108651019922168466531324412774357191224484804970216801951645116433178628746724094800801284699858988654074930054599341345774074934292378945260990259582529423261881186520518644096378156956408930769856822810686683968063234824053495261981854207341634337815432611692662724019875175848613073758456376418288768621394760738493815466399842217045294502868756328403871816438669453987449603031655136003081263132502635203192698261182904837332170311300327561410770413921260896544359200008171635033286013813291444503369386018177503178692836070243638185247840571644720109201681284461077887009043140998252056395008099279940601551084289484052179758384529540275063968390538785414143306288095556102065625855204686600669906395971990902948301926957372512236595355344690366591671670189274196217806845631075526110212632709521205173264921839954989133683264864400068711987886725582231342511505788868121841988637095076365517051483477475461075613318978668843045435956740853227224171243178384917000760271703324727827202545654380437551271938630380675791485612509361859304526822071249157638269480061327523880470310351128869049943323174295792026436355768733773059530525983127955818395963090146578188723938470150834566612524989855108337081327645484343610599922931151109163701049950191570586116799547560461928290710896512352174427025550614150836849290532826552188203396943393363068928363337867409455792501948097904115957748360719109185139865379214257817186060203032027922553440178744658227558394136291979522687467624984621372309555912205364475093714411391411233852418180828126853690560725438147537949751292841400669479959810338408417699863853830602716181477522305470491025204825119810440822876009789309065358920263839702747582722813532513364312301034095820612971225967646981699956019782942068760077501606222357762682710923180805199179886388032411579543061104424532009200857804527239527832418490945499221188160011256337994013557688145607221549819638181760280395188861998665968958737514936349796716773442851015586011447613658121519081894503794318892049548246277170281318791742755368640976811186008212718380779706120990278303190266414361135553530668585607707328169971820850364134707466913159330093096145171453963821378075750871579789593430018920188527529681682405784506096099826844814124961295169422741190384118064384251060784161349491325405722789370201660446547997658892377646120104279377050489184427402395067088669305028953851574457330341041713101339907606021619442209904274569129352706287057958360773331252417190101414293541223836049913885037477435687832555275416358502054288528803940402722625975701331135283804546438169038736743227542874978707032888012158234759320011139606630689725822635885785392036059966702809214799143847885774952557162681417657913457943458059379023560010711311183510680735208880608777555288025475069084731867638580735610781888453489308264824821705484036869796984889655783754723575925429597085311295630833342051684911205741149948563721727358559069495075709183480871776233258382907123397440798070077958160633648642791059783005598097036694560401087933905716757884183502475158617705837553868797921605039135416678374751697414754966149770569500154439425052572433212366352802817236953781673004892051834897957206630048883435577075596743439663008536448032293426690271417770400829184872459106200657121149579289831320275913980774719884999411798648150157833348448318806436587235903898116401535544692695104012217391641995876754329905978696668251622897692102446524568053496984293743440412008953880320825745727013187989453870484350286350512166398660456534283457006783688191523697685908708328396930493681475958036744348335044368283614312026784986677112557375083471108880197177746259236204492442737923727656363065977540377126391807074034318883225753370165103443494021243240823006897814755308065439302732144257415277300634548340851361085395919524080564885842695906529071836850107457898308304039866770610328829982764964714077704597919229082790320079485203914484432423157538730895696369767780476205310087303765239368933890770888365582124734567893779492578248806498062930085996670614077913879896270323098694450802535436125824557378326186648573940936993118135108522819208319962729329852800933609751784707872717442934710286849481224567299990565067093951009040847473473443349595665637159650987472079870986006341302464055417562522865536700731652600558078604776206742011063354679472634007979167280443790301805959725574632003705099546372341717928577160045727183000698876723946675584887798801794671956308795558600600769769574378119959525923224436789772421504981122888260095991622062950893122778142318131930642834657425151361004497215504756510858792374251690202729976489137458743478577165197444512652051282261370486955296132913456788371988728844493807440891893068143601509515342011564268440025258265335439085331513162909621951649961198470033479732957169147245819120120371945029327570865700108646685171811725623895699987464144922186574465024584621727432966642603494119953464376342519839574614324870564524288157141507179851836966539947569540616126854457364934961286407675427220998564595642689723316743943808220652331732017743425371209242283471840292964929008167497867723081171695276438464002681116280115145748083804431327293152859246818559953075612117703395756282731520743811391071760172485597439308244336655812932505658555502044433162357755365704774424319645973893942794989331751599559509749229805910021616608666401058074828451639725303946609556876511669762209277268759839377281870013559973385739258413027527807000777560331019703839742169991964057241416819813817375078150175990111834780726027981789944858097232823719057136394475060343315069418487611108240296937201357525502565711193844453005968383133765554324275224755361966034500763990975319588593731350289482290012638344706982425294502519819965848978791505086234407124626200279385118174846295562242246116152598742453409239425764500214128133793375026162922846439074566612567697492179927848695725776814575752857149364652502809466404813277142558223135575228768139121708738192420635028970243936521988934937312100927848876333967527586003498971662262679616900979879790107523612039853124944630950249286626413472839967668566264992369649681655381379915929394098534975192464771978583395049859877609698240710745857277871606907194019037922017467666496846641239858108333558032166067111262702801795975700263419738865750715808680217612999293362639389752500024964467306710277307884304777489644571378257993656278605449070067830866053367999926969206479056519939172983560487384377965407733027033476831447057307734257397927359856351526111812063279744754264858250338062333286191672639290509197407443903627134804047316119829711560268197444782856893156415621381735836685004005152249316685603584061824285780618923538768029506226532046465026845163626393389273562407344964936692730330421273398826305945554900168084158909582872028013081550879876990510741756318585806814653843515143262398054171839364831951144946108035997206877621714168875584942593702044509035213443492103184981709474888905181822686165092131963838753724629688578603897757726128549167476798141352454665177055682251072344515356955584899989186281190262686129409563426374603515886227856745885423427883668258288631722559992999557645545488217884116051355350425968066777403761148729002803612787322901560788309506268817590276837068410801195320316403889734155529733276994309893586641367068622784137533051297532748362727006359564037338277056555342001792034540427463426433287691730952208685437798879327081923585227713517221256131929417586067082575059865981325905687554305905228827406888809605862341937991936221545590072857855342830069048285694604618971062522755251227478485413520338106240686609820231150496394584970468969052871941952241650338316382371556674970346002084548263589686451372183759416069891811689200690512825852450843509894556909807086345647404354238821999079036453980479804413944055449518387738012232644783978034860619757826602666435441323312074991474475246725706861728189587577734111885682853302856261734214156971294275680934729848329452176254822421463741824308110057984802993699528302138232164486788338073523222731177777507770916079046077721686247086394020275409269776937049787855329496183262517071276475488066823683693173637136061783590630265200722352936775762192977933034124928033110490207632943479875255369564858173990281634695051175050593999738074366270241657652532002254298088875317843290063603863219777878619079160580046861937333083683081139534256401004867491716759501473084038084849621351706559592322141223179756090722563397195797560128368975084334174292819444290219309019361961417148806645299513411739899053238957668911487699152865707530446820669492255596853811166901403963323835078739068529970292752014855012908732860799827686969377473578135458302096022583229293338360803043815311242386162084939172814418926833137748522711584838653695278714185346803069845901987271603994980151721369936877433755700430337743562973475793583237106182034413422082548329424865738180211723591282728041471790372012013705514435874003606395996166993870106594194906281585369978932688969829918103664605778609633416569793490176188267880511165228816831682755407222347720474302803828747776074797729701415851409709812166339841178787524102240487258323154617635699343185577590958141035094729405035386996191578251772966136175167212375815676333405125814170229150381561744364536259855357204417111790767946136806140078827000217148157307563838123040542879377256100537744795874417959977191083993438615613731418126219896356981781767665797949374982934248552080372068154106066056313727465077166151181058906329918080565192329641731278062993063612674529515735287223937283983456416818860262738258318241599966655953230815507255444826427262199205530139119272990856612639929345109606791233939465270369978559390278802860359093550299010840722975584039196338066980166888339328633679956727406593769103972356755311051771693232729306654435488515182679853793049205556748689352705561492693302892827912949797452149762058737334864430876880759329651179204656034156208845840628387474665080486902338606548168831031206375735441231745879161997983782913686981925341754017774099418050409070150308627171063776810150729745572917231205447370148831355927600328034953980951749626932545342971084533583910827335369701726384838685627417464162895368914877908533798343628608202789053266522410509239516309481111544828650674414187167084297089152690421877736953706503592059759287847691823684002793663991449685752180463592057386213834488944774503881889545432142837375919494975300343990572562116601882583417647389356009344565368106219789219645299172193284161935577342917117052634363062311367902448401021404389866028251903032472910176536736920172259722158397410128527475081795663436810220516185336811877091025930251409057800241953651387266800219938184572404420701470675100109908261212683045960731257705662209078998035257861547591447807416626651980329535578027573814654744804598027753870441584369735244721229891181888917039816336161143183448269887552338507501368377197734758253261550060767605072585709727055980832745477657346403023924158355754018759949819868632756299207814680628913144519227912385905405513978992599583913389110018628693721587909341692201019940458944235814086821040078109962128682820669041607003844931101378087858528996748711383882029025710232151014347513241427343795442224228316509444385720988798167335659387619581122806308531326421191029766298911924816631386091388121694197296025258785129566455534721597872780710079202036230427051200021006450702359051580342544272433144899804058230957679138284407594114070338791315711525629282910156795125221138591192990829698372207503500931673610081636974216719375339930919233060038248976824994229015099222700588174933304849050171525858961816262376319901531648978730777493396627464145627412556825691227900642705770687302526239262323024737646744656283703029230444579634751361617726825824114926730602574263665080228021418855415562522462554145824996828807914199957477256611044621889737844623089472227836797945308460865124050442060396377447755420058254087729409706195320820122180535749434604535086221014537737958345887121583097492498310001994982063920427331923451423779177376363850201776864021621042902268659503163104842079338346303885340601077768432572101680231397478196017104227201708407195969150797797772741351472658630672181669250992443413839902853289278458407676381239573432670720414501858208423093066986563098924489910555614319042307584767583856034115939797616158197928041594793098646371442471129403615095047325315505504924854126366341791870862046421930738274468311133697487469036573308568130303169552848009482253105436625079841831826502806144630304132614242626750889241894006719415476812929522646946961582229668067691549380311221629897756255834203372989972532337144393677391575982223993332962200091835707966624373502360358752411128107413211936615328729803231794038637212845953050592999957420767998158899169409236281803814565925587570699980586588237357437131586142795355230279334425471174768903383598920110121020311407077049680141081095650152006255608539282928140049899321407279931229610066245641723283107555957187198184538901678696698077554732623510570851946528142159744789871295076433383492755175193509243294017663283877660969534445787128290765982666261497807098207237612369901700350773345402708408551792294966618585383786494773244289062676284037335399891969236084723033042492801315958444169663699114625098886711079926115721177371777343785300592749292599609128735953942544170106958852511400481065530427129978744302283704718624918194817848023359174621762017784623915619165931579978172333086350340998030278118551443636062046423746805765129927059759924415248956820295848793574529639594866146378256298351695683520790179248621709953969769764198719846372317958671893376080660382771988813770190589603723529742993680955753559871990035725509047662762743582338129262369787564754769593996518690475505038805321830412002445437450786775141630798484098120775316924286227235585486378552965643494592162045215539639245085324990253598481675246520670490760091189592701580409798489172865828641090290067496307074012670631570952103309824437276568192212698589896245209788280598522171389511672840622383678260496352295182083591783316278528950474894601708672119451024277057218941573006059226357157359384442738038306805202913121134506597842102791523147771738688432548475063665365037519982842131120016324480878109838010982944715336659322778085886230802841259801116180974348735224270495535831803153257947644186290733999142627819764752423582337334216257351284388076001770580976767956452495794225709025691116020139230090111702385714281916803279892993996488746176020384585963397807822170397161347861043159024007067729899999487157177976045133293660657834967097288793458997596829917800992617448982052970792060072198438911386864655731460403891455815630970040428679056797030127654898184791625419707291919010764362407049889053851325036148186566716161159591952525798958476532394261962548817860550619851254780906275545180964792792309199942427176323306940676904663132798936725999579101009906567903247711281376337361847144516624818767939043891857608359980469424957595881962919406538274826437644106135990708928024323155865949002623875280017286434911800364365535051652661444044758650793169296199792964318601715843624102139343556085514834717847562920868818666888769482226741881785472901606322749059069459465586639661745541301652717496350932198038387839151454230889694332430610306546181042965603523610003730715113268722438092092089259962148946167419726320396310826293755375507775028888017028119167891929949381170592377087942606769338976908109652457407899978604626446704541527596141152544258447417804954729026352977594040385777452814498361328807522387944907645607299758599529354982198846543739949417384930099280366780351670296272244304477646800741309343738970537968953382252188080335043166669076571728244006751465074871422609705468521933789202188716795298095564772698798878747042130330690906732479865949279925323212341230231310747538494071146911200472822675032427163093081797055409076924881387552234244733326615526932591176873932578770077069839116873827194861140995657494654921607216628895010544684067762316192153074315867928455781219511410910002961238672485175010474087825178164507410294087149535876885868663053419093088531605994493488980076533985956557455470057499888066340798926983538637797388819623695637060676625581936802666326444964638058906984688306097848260518476178437765145370851450255180360033188501598778763101824412166128351197518071107107921905304851996479849779207448320870035170395101692427117514101226951151243974178740047741637342084257691524299176924428033001889941005220980761834278492411710452901367842412410777378916070184812081972492051669043994054615128417432751221448513877049304145278268207112541211140030535019112957850090057833391644961052790208960760829318210825543194871443396097343487591757270405487295317659100165733297660686860981756789588087554780741946467035103989007810817299265616479380734312588514129553088309729120971326365566808572452225859016224210753856177073685158165639325838842119706065121786702785035728635522494118080716517847118914362626093195923843805053281093036505157014221661879661482558889592297275264841309517146596346853289762155210711040470184700725069492889041620739144230022271784761188029279639485266592057200147642126692335195831260975877601812994224841439885979759451261105116464611041824884202103883582149984373854047649243408116274410812743708543169168785872365809516341558283997674660575783358225869101856972365427125220224534492113169043203117779012396200455525433746374030345812704173022417268797011924475090549694739370287710121704282720577792339004501160376112653750056002571648708743059304022183954010402735227123476351975009383961893491982842971724004253796091217870192989671354846716664330149030009485361100990205753672468214502265504918494361177953343593014797862070970760299741665762243907348208863208693400225480619879698717443776394015542366214179731770243915500742106688123828374129517470806054737308760097520971914253482576956370756870424318524918925269952542287957542300276919313642665591522631837134809937642089449245458261976446210035894843544967384873194576695936594501804093264889986183132882925127746104243544758312195726974760969176314029934987278599901684361440599148959623872728071669417949798481126110345893603733209123426411191201549434595462997680610191875311981303820711707008322199721858947145027289703442351438245303293172268210337625933029573402797479009969098968401636392981975198040752393070969744340053180551325554504941549360171279940985498362465122101966359710421721321254311026055479429941387402130178843851489251007412468408559912596071489720039896356611822268026710198390884483480694729756000626602122539107044641764328898380248227746654832784598536280188727570618810223754586684142643976273758371058999388405391313489058840220693204260682535500081683306830632483956677873464239034433783354986386757253281993541467587207206120189251722067835170509659237398999143762125097601104560376769843444898394608670986349059100007720691643238090060327603003711670232348804036264212557749674499759899234090843072111084017738143233948870244381300474944122625357998643264145121043405435937912837886184248617066685756910354661113350211088476529555989838575715579919301960935157553913086935077507466501615234114500257073971502552597737857361850547550401215358447584803936822277655702172360405611654392931837903357053882668346532632358904674480616586795897725860695692181096672116822915751122312511601607994429288612122668805271946039375270982964641326264351943171052670124887846667713191837192044734592681230288530572465637371745943273370916772527534937321405556700787082797277091556770508456193286405611828620896138390980856814978227555182855816548817333959498547601372425136196253478354813970917353093409153890231423058251615321604870835711236779637086185995397665264454241474083005330645511197599539931788655112871851446409467022816351509580771826723479525587000269603100132200544379469891333642925924209286136107682688823152925201538001550050790240164093117236745254549357283987556706717706294459565553304258949576806935023038127621526149011562807669883775620492877217602669477967761741691663142795341928441783151549606390894111552421189301236603823286918296563936250078032516597567344546115126371850002880723142278634843404689848941108578976575554311222593428276371753077944276944141968517674564985382757805559667106494039708888474227481128924251415289799412239687242702091002255249001053177885095212988585976743587038865764936493372950670259258979271968500522040716724500118064841503435276112806969616298033447898764917954611191427618387199305013525816402942775521265695150374265391186028269136135841083742346142053604895684323617571858437172694128593865240242376538134516374791797915712493834391042023550466057063224737799063357884079381199795684883516844579803152097691355743147901603176706413850848032602357948149696473381835354251856248040301172230429055948922164545183707464723840511500586975608990240182081620676137078390298103673726440534139237076630095322505525678055487530704438523678168282095159078089219236563743307334969753346085937095805667307202028765604732432665651744530959216147471814494954983039133272790307013860195232775304867409779332595330028148578696865823198581544916251154129061967202336722198454977568594718163986110803799181912930604632645837299277325279705784491536935614940408426316445251088677600795160260675502272427486229753864912844417409565599707522856570160345363913259651097711075798727119455483390307227338881186967589859589851651400616964405344651802900250857748894355144638083247369216340409715311259073129264603676366566823259269325858570613561129285898675587582237832403738041398806591155845036179205272696387876572910913025025395146119154299659454240119748051662722996857965363129458845221389063927955532445291984639624614116856397922616058093206505718110385100542308632334323082776470789342415229768813736033262582671349517567516507806758736185399357580539159254655371067571285086857690215864774718503321035517999022133953555945881195033587571392714414671973618651018935209548978536682402341321757575376444089973268049034585685960831281860718365961714993691013295377737894289468067770255424772921477770588509560938529234676396588468174120342173331824928515164948282433867288450277103938772187069079701830804219418833927152469928956928450600601141713191969007345017729175790540172724838312368847750202566968794909056403885061342998286161568483949069723712961918904358870531087900635206445680238587201813211334607390605216170784322467186882319346818934405120379022592863868813472667627227863614574028427876890087734039440839551191844062255550283001305497592762695456261621865821121673499964440037857864444670800168156278593371240576136815106518617396744950595008997623231043076918724093050956805338147761671465844611759745454763944678093605793862566853616143969983128768520337066880447113776241396108364252349992844162132361891267876687226713826087034703079997509080074476345344752730496543897522220345218177848878996493521078785397171435873624520732796224294465076809866281032278192158823970510021792116756314340068723615830821635830653946151814637789288653373983118299084034982999793552310202748014576316264140457694441136991320242963562730098170969405369219391610773877421126942290285972502445277502978729070776206271953656652692478681997850876847650619197490312066098302644430584245948185101806044561613331645769799187120495051136937199751330596592641412013052397878146605287199652000044275224749570002969191037565399786426321948564337935578249984779723387957374535569328671580071949533146502778265953713273718366014748119541976788485429722807616476194462676090035561632538241138546073835333723545431575446264671648853795417212169963039670851757888800561295354267395251899527099920098145316311350395209723087939096023860902913949725451819168510546727670938987310929436282308754067226696460040989411863839310227632323490611095873641211501705543592685082354772422763960506050964184362541575496585740805951339929872413798687194528476308239218927497450127745264997416109872111832638330330988781097586101847446184535738824602216314867487397489863549709771361879965217627235595542507140859761269717767464204610197448329849287943741764044872854215574997576506358033030253702655826814226354920506772243548091946386178667670515446090744286729402299885484160123824640949292872742620015327610384698245599836239671199021453158748384015024446428696359355031031329095657118955378370513158521041813024459961784415959832989563045278727155303012621879408457939353419731943024320508758524727547315449859640470821140777599061219241411987264782645879186552903636015370134668322351352262423905408960386078001659320995326083410979037914911235294152672969007614852203482146341518350966126611947287035524593305052250781803569873186821558572023484040654010907780785230032023494080479385664292381276366987188505967889684347008685083564668770675642717598461533983078501244016949534011795621114215829266772742408369106092796339361816313217577776291725786829334233166221580937373982721496416245522418908816744193381154138412825808593897758347508823455444517345569438290768893711676121851580792098306556153284702381222167022792598749623271143343191462707166241951969605240219950192148004679756406156444816099685152157000051609086376538573277534216403356042003786061134258263261575798878238318237831888661850530646487710456268740510809807486769187515049054738542254680385597314788111600030290373555207357153289149045313904909985532563792445774292076728608752331073440673182951675195175877294900567736776051667143434199230696389638407952575490015361632849514682993935965477608964563791203171788590005568196285974454305857652099315239077221206259716259996391342504430326569829187676060790158607901306621845141848163607061252934840758627859056810454238619312811484658858352418416644763108003476897354049306782446179763662563201295648886740157710760552176335090797473935899612880157851709200654396226953152366714743933205208493429034526716261762780660853426536358975863560972794422428351181061614137494888513610290957279469124468740546517741401190273475773664493687531526270874611617374177787152411805281019362159718019199134085839110534347250786737665289276051584703538444507862654734161470713886463234981449338410535013916760981835275128662532987328654471414443930579474258408138859200619749607261321261309192642865468666781709601400456988790026258326217202903862153459337551239808723310009376445079005906748205889868442775136767792131878568189502284777414884871696000558380789897441193064887460285114573495615633904559148632621611143659395561044215175865911708781855304785025708405022484445560835295085157292864209794199128473399482116466285548969377416689262617586360595974391682654355853263105284627848532158650472732511990746614055787206901320530205253503777812626920856667557487186279003672756758374026707493342823004919727524289376471603669181839396354811162526324693483585438871674290380142354525439524553510187861963658899360175452802017799085070293815124656035191510712319815802704836261383766999361126960148585271922521028559945407291646029193709879100704557166458406007080045111967282386020183928177717554049471589724242886081404646596506800190333782449954667069227273417532033859416710553980021638059954211644866479084799760632367276659622735804737555245349753950449209152572645788183902624026636653929745086177172486471519554605259008021901900726515736758938630760574062303223994125720916411411233590617267027655087654537115050010005922821107043681852604429144495955599438505542528810114662825856357672220710728516643490357097580264343153485033551561445227093645552393200175123805027471083365387233732348348832288198187981530551180944379398653946383521439480700416014460735441439625863000425345986367097041419569292280694603189269736532783333726292437619894067173083912699795509194839143786732980554177276971842201215637021125051329511534394070606565367426486991373530275633293872476724259711507926836359804223892069505567435389257580037037662547295213485550604728464468774054726861226658071079482826912868355621243915628809858066991577007550497212159713103713156944858591623665052432259638444222250279130957032172592751752315985472155863687035106394840823834812026214352697420152132032966570024939655380013443266059714485225723031466605830433048473072521814793135674831518050871537376995356614377977211102976935324128601738655422633536556103388209524064108689707352062041082109246608388552099417421852972782430412369725363366818720371046249456123653565080645004830107521993671318321912945328422632410454677237795694863123583079969096133616135129463712109003193125836422777256913242451260046668254347963724330056023552757657406772959109614542587858879942365708444458356232219716074716990304288923895234929198595888495200892387088521161102290763113749686536841060894564651541931093271079173057168481801225832335579950183949123713954882712060041925061447074150563504931247374304274654727735105368803444689430478246337651475205780130180980233358899061035380266519981069704432109161625554147337415084833231461217188901823175774512923995165238702002947308342263347763531535567659298716031790668059700571603294355730799841437908361516123971966306208275410055069828214655303188205525784850440716006080448883302633109748875984699265659048820988890207393605254840469941554689433846574315869078410496092425553804930385118644590557842945039675772470347982259582209867402198954358804776911157118184894908972186953711252222433482023150363594162387515344198345477428650853604185829502898855981661750681964955646949314362660071669581491339764038171477309791467029090091765756599454854747631390493298596824536028101435957774783874077124165368461519602036135267337115229807051800948608044134302149171606613425554211229834614002252850602257087543007956076408381018984936871531635245246658215658759002982086978293115510619771791401426962580733528888074403108152563075232530029147281175791124545112911418221400249629905981796990286210841858893334318160773843552112262736399521771657366624367229550478809839744210154169383185919005658778019584882636815926932957058942082501321656875612230960477818772609692623574637498296677974650377925584785787338733603966540290124146952360233522705508845429021753559469388946698401556585987264336633813040484874735144559252193699126778786558153736728894392480643109532191160343902737027294147394684631787305449618730224869778527438788999288040473997602728938345727369282161906958041008220425537182888839119752197367505928106789838115913811365700440168784389214054272517862415685880611056654416697656990329338921569336975089397130572309698871689512661064221028165040592982895935225041746010615514573413332081159733675055856192600212116590677751685109928917939132891874115625331467015557801603630073152634265029925261939134391033421243478424859873698024297734910420339491129774779727191629197198460665951813161044316050254809174542161749688367643300199607976257624125724758630367977125531038380460638431981669616637400693866831081391751352841899322390471373704614680067034453827515666468104887632705251285431785302096516187871738165711135578644847304522791732214394265539763753383869806875160304443708314069331446629645146668398927915259003608170336201329183539320863113794058980126470422519360319635607434279517684650988608565324970193908596567449575134120205506217973492233430580912058836560598848597281235503997740771189631562284768248840571574640928406416998375987103934745099157183987879823101641934346809108093763077774410657445809184401023082408340410320557886332575843082299861212628052277240475805303802387735173363786813752082565284746087182098231558651231900653503987346752072633373634543334399865376170085190344243837138602504059185606101317283939563823530626838754689338000539262299267957345949786724578669318449389536293318531968880988323324086852762890349116869181370685681728744657334150347356064865995660778123133662853059339675450112907683342300237996725587808571507597164350335914658039327623523661222042768865667666635826645625278013394611558250748115966525694978126479117659188446179631074330308181849895359822474044327835109156885719416372559600085924840822771057038678237572067970945142271383128387990651972103578293618237662309616815655836417761557961932130287884681815057168131814497003161471160514364434351015287405761210290375279748337707267195168153073957184172850494732691657493661407558920488137693885182389476522179647338315606412717468925825339801571424604882402740214696316625380304669438595149838083664660385049537772414977000777640838161681058929748534199583463244623979367721371415094329107912805756311953244816056410896005733928724171428535501832325892836616868229280669286699564321283442958408328388603754740462444703332084351081117018578572716977572929451674754817238890170776576267337185375897653478482701466696741913232523129350724931199151873877729847940818756784571559374871406888773885490334828302903133569033598195540602848850430797957095226009205149080998239459842024203005226021297234741959143253349786353926468986853916968498691784118687103022410570262621981384441245416471701087053754783820579250400171139144369985905885938398397420682733267405236405207161571611919524496232870292731248049018210422801726710037710746106871565553680981275390416751700976200180650953914779541762794946313148699991176740903170854642684548184185064413136879251100997956584011960012658432839254400229186890666209336893232640261942112646179639415853611851788451173958659471375674376774900334003353191408792062010088945747895823057029012348715104675079844658824498917443895736663354852152471009105652103108651520108317040039684607065094723011886270043077180888618568338307145000776541816920187808155126137244319835911266984641281740005709176500822115244986682801160404829287250809491326439701398447189755267113925070136218119752558930135527671038562113650383583032799528991512117196149834098682552650508133246821046974628481399350441092582899574400802467367830385572887499648980717896347841538062964173115190015642593318232188538549998077362430588384184633792341314962842521811565242260971390865563136572323012564713859090347541040956866731383355480869652090795317242312806545032290433730709236724894411312291454522048053896061628749800034213467347344499992833638366607379680160053896725888558782493945288290562929009791472255760568363298667118970001690083830445646528623678484442583182792434094150061103566119699659415313679353875765181857078918213965987376451662631046706788946667583951591991962704663472895677423739101844363678427122149554552751776385439640832453404929294924631108932162049537947762159766737753329261356517600607587865633644369811706451121557536460452843287610993715793470162305627454286970931355449713710905480346499666518034869153601672084197949495887498596934594591353711049778080868233857483955541482178253826927420859480698095420909822197793940777665206338389754776190512183290864530950482945940415960675497724493553941841745196386613060715225927553253580760787510415943669724362537203378524842529997928266243373708720490293193232558405170319458708442932767642868485728474013818311250797844299594986753113762814557543515111064529718872342841555198320380670650612899630880792012794356484633257849162199807625028829289091543497069001501919469380624379734579011900861751897451988272225802829036714534870337589503123225006014142273303257070913916230683244628113163613211941987061685804768252942166630261765754834628196971388188948679665462284239544173749066494944946158158859250481494995441898642651038449201975523243046484604558386790264565087782690917542106085560168054985610002215688620504663729282271279358505706343062321915482013915809035395235311912637876349469992190812332175679778258433365536061686651296105702335368870854180322153767502037275814457934567658614781852156244176583583238157082686706541023115729502753979858476462547812321104417719469256175432178391781057191511376349842940652402708052383404859014807175916096680819615018129049523270591603342847358807771033691381114451467384334359215517047427277987076448168122007286563429476455780037848079380961025037143544690706109985673503661979956892584035168911588001289541846393660675213216423921882207076851026749475600910358912293764698138746118861451590310521607377855178620908939201638217184809972049789278719675610402519288014761944494799371313406087229415965010206266106606228920342773209015061743589108074967856634826723778290372202274009949383039172257489409761997076714782739483347891490214873131182199416417685806025906331855177890741963135896771851851763510246363303892197572641543311304253545555386021817225367613964405784539035040707724379788119889616038209109196037108026011899948844063722295878035149979924659147229439758337778934545370511569040608472646458264924166330078480638532512211225030042705411126032087781486198132975656942334539036327829113796982202557990490228777387896777410349390880998765373430640992746757759671544784015029963128814973084415172269151571359952877754348594525874754782921839568681383579031413991702324841693978580286615706159704227229031403510491585354953504337047079025235691757701979963918099522577388036127146177243117277329908232388299740172334330378492471966727352328819295126066625086958470563988317467735901379834933567039666092009588205893995401497790458571588081822658962463708739517276261105856846334470076275664005177465159577998424492046247172824814461579352126303055567943922121389912038268801556815561060468581082128353307073115479461646192552607674781673694439878434160635777202961592029053320909527425508637365963240086485597909052116623358065880670462391793896052070852048282835328005636144708739654541658273399059605626072119611415121190496270218613883978598448411663090570351392171466797611112744980859166239856406886019395365097910110017514797719883155317265008708794380835603333706002227747984725191501803542988802250124850519588814458040807860547407959270321776424691494804853340365123329165259116332362129199640159012682749975821725489967839601930179488255619249030461914119957072845742897145761680157957183714207262160293556476842683278294849101877665824353863876214662902847610669595940460922211273235156423275086273768379274793788634075284923102640689892574633064402308527514984763881814290255334163621225622304162744645416000327859230496943481830590950253647631944043774562975188386267241539196571790114448329028592948279710284843980603857991520826441977864847088023472358802580455384681119229226411480074632271618745652757167619710504112189193758240516006765678895146236961735179541406702961338047711656947858210934608747915122340336071619611039161444056063947922762652436152465568733238979762867002250978638193065265181374104167043373407124346294134226439522330691091469004022732278995820809068368941874818759416922425633597315615302669947503747116085570405096491142522161389847037224611573827463329630490758730521010184785035954053073584529119438615984832505388945213453169717826715693126042005317385980687450935403488746095895400760685692154539453565188863116517192717119036525591493483841029423103138603449127096869229600899707691990341584056348732193116312445270197940482172918203274069714359465890452800326472791192898731061396619476081528336950830174012239603257203964791243751994876313970214367325689538093739580722309761570429782036358760966153883004557282820222509827101503259924312805713746208654870189442321290746069769848705504029454257774376729985127852929339286582249720048385528678630688910785600609272340929746546809503141215414854800174424730455887902658729609516787773164386443874915875717799343709814704712121551671238609182740674627520991863448689365093521785545020829420417453501314004266667694071091075229530084006649727394441391167150557674146493699908524298983671705439754778131662726956945563334478415521146302604661545404732411018815673473405289169835027925305714324319862600974781397738592108199227231813609665615194313392093828785834381857249185967198775469307186885559326400541513054508539588700946205930553533020891091054550492954758625191155803444305376969473861686688661970495299478530540173654888851931966828613711938766183919189642798508235379690280324238525692679869790038602318635034723121131016164010069221335628314136589189412441625548774663589895984344456146921542261773794487877186192836217153752365974276441215640438157229801046641069885697222852864239665391171066792761574648592821597841457905024081693807288008739345078160581429594749704905593241496321247382157148748890576539981004194708813827091502962180073318943039273094554813629892319575533021191942081806912374295885600749595266448866955319667472814741152191358089000846479126632243230252453479620874505616332173470672056511979983629738220841036882850407370333531183476160087282541162233683115046474273758888772302677527019578365060134565464526623358187786214007248857429962545221158948185066606071591216695437007789825000150154729559342566681037882341657758595265168371727729012877247957155819374181737232997844203280281798083579965130114029146782151096062578015160897080032163290184595312087693241825690960246022616445160780113460332313302110295835398902275470584173964283327384776767012122339801748681192200713523180698338667038940827409392448098288580094485832207991047420838336870015186936819472286501799636510851619899986402656913635797939291838676400226770055801815502066179900713823653092452450658093917391305105627393815599639032470445923808577298099683972167346708054229336563489388778080110643862239923560642546428750408974276734040469557087115206842166474653419553253879119470981948200836487725813092357392485231267266974495730733999822115933582795745889430262340917542508862645362399972541581837902221168210752048217874982723340244692618488243070512895625821935990661234227425165006180974082366887840766734685921217532196785914538752287193523126958862028365860396620661131491575856812622676229082498010462039639856673507980725125967200408634987928453504504192626680306961514396601446509495458828707797979566909357940090784518299292191562228583250917112968654246033538833266297985349771909229207923046571332064537830379521084481794313516178625031033192687297661204975276758030394981537330329477748017113636015414535110368794240962422181356455283108141736254270684239203387200402473613405072213824594685685610676703802770253397982965786177088392394407181144827263905971105543187779929558940336299678844781904543326565538997633506665401174620730797805011402796603675119929737191760103497055870356271830359997895150463251613122676549195543933418062694797177987634120874445186997735317506134234663954481535455593910380063812300649455836031578943920198206600858316246054944681371817584938798326767308745731283109274001420627532732105874227009783891804670375814479086905734640853673775239842463063079999352111631184680196760257195740330192192664114336439073802018297769778652981259407344089086693440236513115921055579830650478307268873141920386487698228497803844443615145842492043548858855421952031758120316365296461060038402492489431438897988022519957819465943810967222290177323530769337722877208776360582269315766782218750862605641503903184175451631009173154989564036079505084787380131946625133495976801088367788551865103911069150734381684492919121812939286518975141586276702486956341522204135761044765875722489390732702277407895539868489122219760383114612665008308901080272753213388315226174114831519541787264351845184595979763376469450947003321769440133724362107245222095489901023911718906298556394116401885096110477835677622510127153607319440092558753177758060186125324864222706553883220936310593171995833969066311601704832096043066433821806905374243199484861983420777572384439073050887104530385554081935086268964284741098001545161720237476847118557491335015266678794758444203931293795763595461199529239792678775876644569312716950659969768682206519832199698885808138621215070086444118830115024562030884299658093405282014746663992781587786537368904018917869606705494969724400557111110746060994569547399230609825920262158462124731303606355394768698479060976391381048478913319377809241103934053927444050368636161745005283978697437510998001713048072356917295384935129988038004807773189155992717706702608305233866006491802750589022807213456464082517304610676696712089105410729163039151122941969837219150712879987447134562529306268635690767653240313701445620585710952712734205993353629782085465620392867822914890665226699641314217040401118899720794557120599705311080773822006328476202540817159763152316522838464634842728724830181893967006991449263686860449251056059286561044751361090390477532230390697715590233865747708538453201046536122291200305170362617502719210533033953442763964586308613437625641827353736020294937798487222177542167305075848744418320007576900278252070150214111569859339473258782398369180770547991749986205653874814173051823392857485095672798857487784176598009211233632280397942681938147640476271773129787187423148713324656859588790891002914569663072955817799542924040805811755595694521546363653132992732847133468820140062230099315027699782809159288682969729566245343053155676689244573225744608474910108300255315174589520960180248955759218512173238114777736612293363054631335777883118333915152629785235751885990604031462374301010231059376190044273680416871189588425107366839597721032015135964245913364866981547249554797083878028410142169047832035171413831555386505530178588562353229950105241014927881507023541781787658645858355625787734025983658979146822199512251042413770878144256912022404710216910797132115622448993546494022634250586070402344958354286313001735709110800564957182333190660494262800290226400341475963935616051702523311334845068799013337948656680053041097908977348681967891768755203934348623000219383768904027988234644735724370353215956694277657630350603143197364718050298187715341493625295199354290203457258616458837657828656730442861761738699831905596729852356782555704509996372414411764859417639761938803072737698748048260117299352347035141639964034026886036538965361016222529078817876511456747755649145246144617624823356591987469315847867375950868223441845580183223543118682078816415060739063153851043921469749274958361875895966316479084219155455497963528565474223467984807694490384444950490919459640224514294838024203160811118119957931436363279884901704557676856594524814648009543551171768650910947197371793320761982009000668380627619174699791189121160129829771335083559910854605336578906537100800091523939395467691318480837488936451735875443238483677047404140211049459459701080062278863037364690798701168821755633825557399928539114738497319192244278764836186244569672604395374536704086337216457574523082591117956878518414968414492922118691941527111577249454035576260314513957935783358555722804773431870129380068170079601699975428542524914724594615603992023762831198071579976621850774742419833516899386877982358205206095029389758404017261154724960387809308804450291855873172721181675494822005252035933618084352424924934652021235079218784024651506476033535965500338395673609990038746213716235498099386801905475216725704101378517686467482652117503513049572638982056414193941543086322077854554616390088737372203912082724649165344885151841283839229091486496227059932834777841653085731896122615882067624784410135856511367907919471294645182958289492470952109405032468290522200470817991008901230048213229588099929090818880449383060886239908499911250229993289736003113741881063481902728028034221317360033129112023651810630276499705381874775056615631375046346777410361357664582005896219586887838894165489419515230962378188641592724935919349155537364857567979739233516291063811411893476107327127312870296671688779492896256139709411509196262830039322660938873531141039867226659701817542504647312709074122499578815521537402952455964505892426426465500540517105595007412938550797482475632974238897855865192988432634291666487627717800655831359270981606185420951399092692301903074762268411900099751014528046442669473258727047088713063820468157621398990709845179333277107603766241300083759667362430927724807501616476366375826806600163507590871462962375844533115402560619534091226089924554289652883682166063737225532503596731114329379370621176378898401180776047547768432795244467434365572245835665286764704169342500895533475022633765249828887785529272103410794204145916368289476367446934333624033682033816897242593988307178483513252480728906210269881509565584741018470879099691799218545038055800912675955467466815867323049450735164722011844950108341665709793628240159426444460177342986962350819459959507573215210865776357820014176003159759159682053252938657589635074487416852655363734192398617458761805896275065187228842466196465045169623016219381933603940116533824173519310052416576556029473195475335646631778568078711413502971044928690827146723540637245737517238563717450846279293593742615849447033805874058369039341092574639225188734272489795405034861051402059792109651487124403815832837569858354470010758438737626322710628165026102743248849159622424749712231217170700172274989701832397733111063325185775839420189047650157605011190697310541008100661147396276558974533076127510503150854108909513496964825900239568670402706108147356628501356736024614031013883054812818815659397488623326859504757686193190676918217356035295126069254041354490023483521993272543480011940111733166607690078250652040034804842515667471867898836627903051741222560167896349100726767693144723055660374951186373514459018582192508843823989303107489802491539663932887750713022996264022404201586186983375167786957605989694907292563772199136038520672986032471373052458388736813833484881710120775250082105084247437306865020978995870671790581721158441969720601566030749808789965681216584468750456574076284918347766758914184783969087576227365027997400951656595018297126485401666095530508742939806126724045729660940822586827064448536855752019160230532586952177688453750793161508115714318336748079387504074950004310940374225114874011936907360001486278597604221820584196259340697111746037427024621943846418738105114872746554512802675071500101650813289840726565540394121098675434473583903190423032012293124523167522500151213300128239887730292667458559840208702662985865437911668757021962294961646228067116946968322920040914656198150881903837935756920179294215909485311012963587036663026623990775622918951642652064404392603959424338118104906207146723952972120137498690819453562134893713848866209459622610570651718339526183199987713730505210964185207194269516586757333694147966032776530553412689277400428565958970489510462111322444277726253785672117800603919900482175665964567181824072914502882028503699692990270839954901433756838562992676459324734886984651235209540237550943415546586357098556377862632731811339825751052999116351213203488637480757083855812110160236239193263230175645429723327148581776697195783193934616214220746221585058746327806501293136378196969048735508272082664171143194670463331942739001835292973304722813111519874980258673759414463145184222956125146433829020691302982736629652349452608381398032842593779890005700059190206010664260259382412487130037249118666982809548371454344244984176541526175706774372315595588738669845025527881757480827361088860201607326121065695232974258770669537987098970956762209675224979011762272816952247570022654516027098244227401063838247036634817620279954637601965074903589694700243054601496998768783192980917264321015650811687211933641586478618774232364708012454853031051423435902063487453018244514532234491171286808313604395271650887696209951882326031742765358416072297541149798949481861441929095471902257123516745701209203146522741650101699855298564827005863296031796831129013354318763416007403887257449724559751959360196543385242820429096119005111498437494292802924295121636859756005359247025154541978762343177056693500396719768950368169342704087621729270989567659354210631079239217371868786485755219558628905826626779833566456241040221348019361616222300878588059098336687083395274193768908091355162690987942252392206011600430843858397416689626375363304780915914320205659497372775496166012793580303450770379190508399400985675273378589620955784528642399286319551199215765301850660778554010012889749081841870287875993765156090029199748578202091198336678138758744257753271647571417620588791940176392907802942997628253812005663621506717568824393027643046577234585648132762308775333802572262346399231375310783596530374404970508303260069875056717777851594768609816617203574974678702682253788385145303914513595628744233270361644824367167471856587029929629824771125536490357720040402352245593041611372784644704322910575934720854331763227613819607982239953568723896448325989637169109897178239076539901752633327284830196500553583170648346123839508860839580607252076283701658927415545855505494292505669782221775704723028666689187483178186725010673125758102820220393872870170794567682265248198483810656665379901434081727479247784082776603743901398070989471890708395038437903228238507518835234347094139146352214532769298194023983484911417984304118878343810066349246734771427055869128940795600475460534698335745004793595876013008987777010520972446086268207825378844862760039238617539446671155258781739039961978369764697496414503374559544907949342572826109741339776146440172107353796060880751741119374880765195396135269391315913766628278797608952548738591675964606315739575007915985677794735599327111524410603669638660847342989483733048916932887398261406649555038860502674091834422340604257474462705806807278266531930969797698315672103120469295301815826505266530721884413219421668268902129881367637755583593714037430953617804298020990160300787652942111221307574631540725607621050075457168196627080054252698838776166892114799304892343046538776835560668654608188754919830461330307181908042700758549308746467629662983786165602323684097048847604821407025800129900786748766898136163322325568651662118977429237957674695842756741328796923430039374717520671602354243714049909452006687975319013356223827329821910722904670390087478600603717687202982711127929779946640746930402797668478490643588151602137110024709917492102899939170527498080113668129461901515924995741378636606724274885005387950136291810278803644515153893595109110918332212494987873324769599833129343085129806710748319112229537725618316410851979366018748708556571175468697625054763518333887911436972342526715442715298651723881740760772589105034341138007044453897232837277265346555377351506990834016181037487447389651307075981475173254560326256407359583243719852244916123509540323766120737069684015555562736442487657993804971495243005958806487437997653641811530602061395781390810273534154907626513279278046225308444032706662111766132309675128123808580191487907284918271715147202969596942279619619265774299373971220331422353789417589458764350960159186566990781010479230380586966892141114241372128589910125372755208969960167618461722225905196469819636581790115464330405926214516324694071283497396821176397413495580638219278076217848701806361887032023933403957152754183369160795562131439499398848282500061602519339252724889853150992434313407045205376031190384350028521679965802431943498193902006797754803520543252540612826587415930842063384282886771921165559252429544653653563432158464166210941047105828509971081924347846103115378246492286073291242207376947308812750569165513255593969397576247893579924502709799558358232903320648180208385306503681051321793469218556847106181697577309778021178546389123825920430223803651785305541437650899388078738006695933729227052583614872551112333840222051085540800064757287635482615286908461486086951641678189294433630355176957183057780822772308192072069375589649972467760907625560086437589631592874148250643284054236506418392798091650679881226450607950202065992477031923042223091293975025488627348018843363440672156376032532744127015250660736440318208890663384758917863269828747137780489746510386121781026532501844827042196452351266114312219299048117902436459947879165371448106529843326484291023617266914681842123072849332210847822189793820899897677858570449025521329381614680888492518038617727266405269082460801560609481931100149718559835358708122655564316039815258542979973749476309188645657734840387590736303256585968605550126848753049949426486239045799681100004083067485099601256261585489061698610722470043715019463036400160697169635726649934823777551908832434590519202846885129422196093476699987369490932466756101838973196441445291380606339741751335912130807998545240745187701286925462253760251694842781052782283942950307978066443213931231709947797890395050487691775788383837856656263416442023357368143479061962935400276744613093418385388497464112714171885873692710023024978076598905456187034628692076081641478670419810504369353112819971527894279122876776289828279659868599122255585412857981401330632741454234392158427090327944170194377514267803013055469639107049219844099108130729286984159082291872277762895948000380568654652897788138520303339820531046970397023069601223334802061859568839059182129677424265745518733082001526572459367192590258461861755906406711053654089164061811059010486820752959784490517602034498136655532440404500278169757694078534754940777305881876232077098135186362573239911225543514673251758568532954310095540337793702029331963284521141837485496335828922864206736140742511993203338020491270529427059980731420194425712611241422453641414038296981172386209833950857453790883252542204223596717894568367038886537968028521266955042563289880635182965527422492317479537348809659330405124895931191220354575482545784538385689740370188848607232043792000460059714187447268625534733411969716893872466970470101418881181057283690056612514967303386111839688216017824932723124293298065928353949580790940044412312942651109712543039946889062900106587058785185165728403191432330894003017404861626359192357870811068676941613165892465304720703552033520666866679744168308609362490705808760648568013459968946549933405176038817478392668550731385554232148379729652918489704310390763841933771958166260500132766902842254475185918399020957451232551652556479203199877179119078214398405097574171175312881344359165229957093856267697225533227620387742091457648338890270404838736528218841318132967097786414699373949982139949828203955246288519255726120774044599837813106082152118633456474243571871437990182595976088702897284743778398094180237342407810792023865076145920953942742764285137967045053332233026755875708794758183674516807720734632154537304280649982549569055833663533515663916610962944653750402475018119134970653432525510112025633014111870222661803631237542244801694813636033740944293127992938044448008510498726742860669876657107506987993721570565978697704496233530290151245994261560536026389008639752401642389168907617972738336645224061572263339979630581540823574564534336988797022566630196820156994506581194767561465469039181908497443040404315945032252796101878435947377072141880570066141759805847192883936337315173089166587420048901284820934926749684182990601397416273732010330585745492397970964601551317117777464238839010125647540407382749035082774078532229967453774299036286592826288314280192063267130365305625467117546380392657845521351664137441553899017107735679126790885468002389624010503290398499034316088808720203544228552212894872856129230963048278783644655137212230517911114181875180120041135336570979560740085943028430827698981864690208793734520595613884311398685484239040116018175827299911553433571369338858599967114824416467826469116111820906428905810605773951148580760567155007231207393173784643708699591125476416094389095986743463392710776663315261488408884262837167567634867269316009634713496955557016964922279477352983896985514978722481119843443080347462555249750288514311878286064907012906770149363773801187813809444120655134455951202741600017771605251252158165601247501105130235527661470020637694358398706325778245944446161583348394512879878392329548516590428758754665071878637306935460228015718097743564075960116777574889944501307139647417165855555433562528358865773448661963885650790801146114223100974290694417370922594308070346785267935528094903152216554950660447514007201883105447644689490099879640337246042066698183425558889369476711262261820128003263610053904333945045196658640405078009291747716579770740688620131178326443239500343999357793933988979750544082456790343573935980593664586347755805449205703702322845432665111355257358744010192140851637489140076940729295191772783712229654774466278404420956699392906978768074786327193838401025972294610708233472073083699854612405526355043912368469175868073898131354052473259554667764554489015250005757643351918524174379734504203806830281113201701688113706721267140052370478671459393230092272578405550413656964456354292133096039524981270280743121423241763317799534642179488213157355274923133108822505859866490086349494229920198572331824063677294616394645213437799173464982350233521690738039295318574791724837819696162947487863458835671434416122651982482183875242167522805159396241201883046182598847979504576259274331009850909734822981267330530540671170251699406887580323272719572796063078289129204568951893533597080127749792347222565123106934973458930792377894486317317950812184432052963424235608302708284222262581685444931591382987810596036135582342177868522437252057304024485040908044916612239987975104701928126818141488293120026828207790532298059997854551078092986689645847115513108911578594243536356592606983279304733431330511554243522130289433669815805928398539656461120911012953346585448444424945203088543008697412080999490550819883761119486193084889400109627558129484604056681480781148198693004606312959404458086326664999892995595444723205542572944953229359314509209603706914832808671718209742443081218789701822231907875263807477359826552984498672886009597246547357030949237695785852532115647583324810014784216777460592721795534025585889125523164576852532405537006927279105097386144202027117255531422699154220423248125413126523335830241843574661151968025835350039521807671971935569495161074958390416321767776319796544853119714644258654324174788533195046987029306302658814237948502107367478172777481387057873464709485730281514763428211812011859796450345937743471182776668085861628080166173947426088523152576335528966235036828125224182428622134396780376719570278911037798456436826841317218629847160907797160716801116889842573828154420990320136709578861421113362765380617601701624381842156464846309789108661291473654984686463662626035146125090539594404608699414186433872417744790129895804715607196867909039692448772368859530510939427845618696573330918693767096089878847319429057599299906256680145756536103315228256028065502133630608713178901676720968141501413951598860500103077590606084745900819414491629298462195702560899321584182071976828850624862803699580894296523070621214174171290656650618749494120838446798152502676844385234294691653565652772709922571632971697410036631608660820242407891526587864281132947726327300028637737554063545735973985422446835796682439172540179299830730668339020158072653238621522719637204087959899356701023626456582758756145458047099369271593978141944534785106254262986070485669314829582657436905324594430966374360004139327747177609697538212988015845767807452485311857098746418043991405474171494916218744693803243840093009468683643344881696751518735476541104091660053953962310849914416109250709684328329642663394154104235874823571939067985389760701627559097775307039514968094270868193554715053378626844816040489123310364653562437624184970034704536723803033054034388249620717303636896663529089777885644415320891108118484511946120973839168603697338672104781995110605190877273784445886981538833477098460055646176369848750458395637444168560289897115098029293161522588821477408530665925837054401508270142512285102896322874821526252539146699522448747721589701113983095935483383623402646466591965063161473738076947740151620227992201617025405258910919609981741725130607971238624273331793276235783590065630718485604853545608868247463987747643233001650358190788724858563847914124002704411290454929227794298741784261588393470819274429283445114593101969697098133542769407131025163729263766487279043316981608246214633760122279935681486818361855010130451444206878255985949639719872405486384626752786419276385718468890571049981376492399069025772497338070762348612161746991185872602319842119750456229418752319753043038069028175647435034393398087052780241391840963360115268358467060498930163094375249275247901374070084120406759414948145670743894356036147707437805712273447321596662593040131444124809033027479200248074469273691046705089047973474311602587712739403615252808161490425906924723244779721710497517292419011822970960316028806425695417614819323552887279300838911194422906600555733437507378176892864321187871382410036267850800828037526305588428324560560653704544272307943702104008986674706523401478630690858242378071109823054128501544091566097947731514078664364744670047038780010646574005186541926808330229789363710884853561763756644266535403946531121642952177962075502322770603981047958006209541861109543329048411869558936189620436581974180558582482291099120016415532206607131748892568637266262597176842318270179263776561916347098675946816916348500736381227991185179524069750005341454232272839129463546993822921895766974137938418967308273436542899625766415233421338644839527218480394035923665788174248402201015840843546693874615325960629669835920507814544801933443218525518855303969580765177102098893869347032786962691014916774682727976298065589584633733324756563091454846021387187471702590715528800445281254692041427032093666684054804239115016045771103983891780635704467431712708576516663217915727376081443950630141707896303727394807953151583353982109368436112387794963494181713106141483451770376488390852590959429143872367872786702364027771535543372617379835572613783926753874730586187058500836461824172461868772819927597876984281026180482014640551271492317924551667781361314113837628829637866238979748364242225200745389335712265483527059241466963890733486681448443867323064104825171562579404141024632272728284917331774177622030861873286690313213349622554750094668529710158088512248454160932904915038804332010722503511003768118975456381596444382270715789732399652216107226515290767468108261419950850811838129879257528999661199978164911173265404455543475236693450406077002019711206251672461298939769157067016079389445741450817777065193784647078410131078945727849683850820789490130872092909275855273112426768676862450234252975530631387911841651762851563372461303768410796864799736977126754778858116882394080930779241904981607873602776054072968556311929345281441624578160738585183790705336751089413844883132156173127398545251405316019700534100990517870960617356384391952856589614725801147694834173369953516399431167917611937877087326165150637900575865063620327132644379631343224206374215173454884034892486560995760290079404646499480310608801048700762119408180433593475884613101632615907007647536433500507790357664131444184164729274464905437168098219007842656308315934818557081774934989952102502500797951273878939202077410208049524339172141607612061416766718585839301791495124649061579395935768346117657421063445752969401217079119350589673110001563777900872675342975829049216281501011964189652965506551824993318670009797707315369170173248792214700583132946612314794833123702754558372849537635532121790530468374570500420688276813870224764556981962207917314374718780629953481999249558103486575272008129090068524122644363959897303141401190573595664088665681345096925644541049844999176644178108224202375631268018761826879437941271631994400130360577805525513637604335368063911705170043329516447273434593541615146310438398258093676798527189040785713700580785864177089746341078086986511846342866900785110051525414040852795556103424585484577904094730973596612486037477750933107366449254447630095181536560173255781355801280298611783802379031645127650648474282719830249855859800827008028677245084653892970285337263938380168547885345482308627575931237394948146886237103628723358205518804486998710078713912678302908752358784046510817712842899215469880597859720508075117621685503927529976124098018392792874837814119390765093512663284578055950258796214805396050318867677850908950862829113110331347259035122096885757726474512765165875809220401080869808799853200963155184826778832113414993257562839533229546647184973111348411009853387553801123158548971884843736697711395955226182501486714862155524251991986106753130057771002431686495532268415793724140838341100448890868228607574814644920143433659962889990484535650378841559053379251579213671428804680518505286092491207463968458356025203448575481275619530477507100773483103498460697968302576163813852817862349258709378254629707252575193796541925622735220599011620346409868290470885973709127493284976190817362051074356123485358905797215553419867346267287241433094817337190663845552315181097748837169555594782846733061112752957789095311494892486920555844852920269797588475610336885839829900903738756367381484362666323650922522388232573443767114442907822523414134388892094795235400576984015418074938561260365063214769693258001920793540138534466273762984359177700396635344932237021606464556354100780813102456587217033350645218506801989334618931145744609442839515032570154680415484051906836530506217157834722572588183084735339186756094029266636169993590751502117187252024586212424966350208305745158997822360854974891530469546017612600967297955839352557470124228980175698733341679071869420340774257623357366224023007082252325531401347826560226497588267758225823694728772594401083447035238238735022026382636747964675159499423325720791376313694568060491422380867736276259294087885081555105019160900349913165822201966035588630890611234874462481470371815796598975607149984692211200829690005245021250581109726592344738467341287567901313739441405425946179969164464099335543067821174267448821463123137077509859627692029265410796005336796512032441336509920050103734479538828818767528391967899728503244335132883357264042741513776426598982742518070147180929048596673459126310265805597329494009524592132132275492562529473539142999064336113777228547062509749571227747050492762422905294436582480772505249848214353919091285809954862560741840739770061888256722806521145890274740383848583723389636505513626687206258301913141435599018366352424619360645758368430714245439775007164937732246378426040887460880749870380177067010460077659227095805258057103344876731744300538180727469657996719036735313165090037309176398215996059477810796677273888087654955896176014663853725006198542103180141429412271835810773259875581662590881807833421404679728029163862312272669965520380041017914322639966303183239099614901461585330769675812569174992862284364443643679778648732578657700389236258667698609784892140645930840857160658611449949622151369635625048994184283330943603027610389014035421086612502325769139337506268548422121254281110965639893094106929699528006208870263559143023136622937625904178371676427888207561817620005596079660598471678247242253890308796206651775649492518236523539883439703037344524047583912734415283484296481882736120836776301754567034571300876829644408066035342325789291279419939696524211237770931942142583450070032136563776892128441719498769202570726799614752446670394855475508095611993171296191865345885059769763363375694173376678060121503212800728085418193083928324343841322364407943091261783632588811744543916068996891599955793436321377370211146435556282381633582936341102940377980467022768862639865733375049129490207675269655532437468553216981978529583212680472886613739281170777456035075317640815017481188139427429305586629871445995336103476325806314330080136033677220954170049694846954288074638524579178997981556616593374115850759145649287509672260158090948939529399004417067263658746175132539207065975454955820831356328022084382895575029334862148048750073718243681163540345941000419028593184111617414003927156836777290303869203541821933954162848012127783458875412103409473757509080140027903895760392345668011198720688931193077991927176619918073512940575520036987601332679124298720645320780825186769898992574046574180619025247748438126082038201928578842750656058800207417044226811495736465394384547182238683545310752785616800768492805542694169216035998342948304150444686744513567808796824443216536547807402826848394724373341253627323459861638413910493342909149102970935079396027660669290265041124387483267944748996753116088824522361486885471404019053276297415221373134153413521834106097955440434446685398577150493404716714198702942539157085282873334201535715560752727779614947591657213889099279460099395211846271663846822453043483835340814227277209121602379785324197282353241247613877591488781818592929984372813355277697414140844545194040460813063694620120449982556587235272165722502359884776277716372555717586799253583191570931599040145098441956472917208839757550048372187844045419335756045978444697345541677523468306769155828110197770348425176422776992913007157998541451016420229962207955232382757222776194319844066476432001707184874816389298015797301893047841718503753445169880762061719377566627318825729047654291021852888975666647744717258188696590395458577884009539636366071974743256868925558910794779897336713406014416697860608901512812690213622794794736152376125542826705981897609895753497698148114757187978831310976432393185565641553622965726273236372250977918824581409824528992045223157732759428332405902895356652505634187209028662279108277438232689456735841384867056152193273552047392004541631989165274078784232442637247885095852357742411001110378323622042732501570516380959902536274965958496383469256920509216043285806996028819822986973435245571505153629893089567169904952698836546340900786440694150271135868319050808434612979985515412806011815734110881016729579629591014918976777360474134126521007300901856798683192853342388642147462441838337255279339347539624123286775201690639439674317546083091408165688148627352042040347898398538329054346151940461104089428647988468552653196923544915065710726746211346662647832938559610275331263450040910238250813889369048088986106094767544989633107156547408389069848266433183846340629883302876639798622930522362317137959785461244550745700880876649001899890044029208387497684417603546144543129205393929401027868451990484921544339184333967911347311574377321883558950144393822935285615874195245949731388670060266583223545948352231983438019009702029133101267127051455735043985479337839583709389735376510091595392908901776025853334541094150122944390106720004420615436120090832619978508139667954428576351390592627307688051809185717588947492304663081897853154886628901946877969922630098033585058794710916495311937677495837777222628929313359500123858885386128804112789001607464778602555914845021285045721581983188272663462413176081508242145835709605401147390131168458419322409013477111247341688096022795666286997754047659464482560220098592386853026231640415975968142884774801619246768723883042359661123094926306120149862415476427880310721042104670078487819950796389571060937391679596743628904524021287099650036404384370915117636590248590382403686023549961819837703402063231323841284031318274790543646038989457189180215214675566562762352586812638834019870918912539786920156010381904959287325431748053023963644506328703807589481387315322515633499806445918959371181857992034236637806728481562576363575032560131782439281206096784718326000975157294213010929231476415591816183620664388723620746692986997059558990638899070823581428006985355440115039108887615670263282039688962100671900871111356911198179930929857614919069225727909079884882352556503766869956471350644010153358815520171959290943578308932126778113169590979029858599964238502328830263477231200114035440434767483291227334962549704925727613237076121251257163565273477203008699927359805229549828936834140313538406381783489811204536776900344712343282294808622345704376130316650692762101634418789365190169673430104114855749044025093741712046083055341572831746986253236044802602072326109938727131084468613490448869126185711958253444731086790336171794458862357164975970226000296853648261274653074066499237400208770397207653175184343096996751811885426497454840655083426232281469916050635467339010508577245232392236851944653020702203816431093498421668024882066484232335623033044340464118632460655117739122646955085837856208490541600068429542608497267271654573437532198623806377190424501439311116849783030873080019203418911455867917176632059231512772430241831973319543783201448891517071856262284929784148382873178828123897543317241853992357642325693037521613001546252419198248191375488980309884369957588949759101230220768212417719471788591576110495588220251240064395711104311813998368989706090898556873824728548926517610679613410149135390515808868983620158856251154908096591785039706841810383910494044352024320811314191332892743866591848205278426995163596127274373236144914158865826728449387882657979563362732413458134927084185411361254001152961633644049927717425171423619326522639951649906784615410969119178301642588525457393923157232201455109028073346991345369260163842215100699742757017064791672160572963803080638667515354280536207566562970073836617619830679462248070458274527108072399455062205395505170451032248014909016861299562526392958068694245951934415981458931766989266496262143908490789068283338834637399922772672790831737105713922481711810459829996471355121399362247573973128646433319100565096510169772748274447524839435098524484477350224715933400388732804020774630019248470816718318230142021585316377202784193662587912348781195220999471973292980447978927594512785609337050042491833334364148073498981932885709225464438499973379307278969257303987580340520210820426065864448467554088200329271459528159887007131276556748655177478894894784557117351530893585685320410044955678840174759042628851807440190353964186255494047103483607531653090201133879684046524708592508370371988678452791179079599498870279834631462892737217095522134421045085915417806984879610331748265476745784907066389044253623039543411302592322511082972943326135253284161944491571509841517756552835664122651634977066573497945992834472702060161405055749529115073814280122966632955020517658231051337901077947267630284064581376685346719746358607965246953188767105476648993796249248456156564903456741650875498070635880544069366390860463856475719623964317038301507314236756207594421073148475919094053998987737770606068849148273951235801532819558292893886517765796688026874697216344882401160983843344487942837207827681717404361172319675315660823675638178297474933536940243951714788799349047794811202057751604716675258730769652453145583265239997730811643779952672437519509102837814749853369898001353929703996951601780688475933965452862337788233609781591669242051802743632950724761273335748908849658120264596192341935028655304936648156443722294107977807185994141921155716204863127121109516921003362787952599781090535898057258801821100696586274145894720059953362483313805597802650166770691303763092077235789453767677761481836076105395724245345421710772396785533774973727921413186862285998682687019248165536233268228783801871478698238091469300251575448650440336930479935659054478740256025999903722313085818257650586079298865782186067617898129894713723250982140375985502663619991784549616736597114336199570643114867419030126265588386196503567782233212107448818433436570081439322417714072411730786462186801202784406544693029861008066126902270953163341711794434076450129420324612875489692954041542878540353943480031202140263146872595819396158013308107364326683903645634799984983649306660373016654042746546949114057180735339617135806220288370522535508500913116974975003153775750791660007901972195346712768121962500931770237925571472459559386458376180355055853462198891253183166824416324670019621637184800409939381095806396723106048249327281093428997974756619113646461282073310413770452318869668504027612607203447391116876663619009675178988618295543672229636069763732820796414892425275815963734786821240329459866447044283101753129049486357453399042021010352158164736955453299213131139011581834789751370706099452129405859508678453724782941772821079738325740312318323107126191425647276908310013802712759024219402041665842488330238531368954113089956978404795703666000891030446486772102998863081405405346980281051792928581190615134438102802141155636898387587559139420271733935741386889257329964242496183793446285387345923150126518414802524911776370086902248817672931388032601362481599718360875908872098681955885009169585959382584292812844737009230953262153932630503119942333230250517151030926944335143403544056200191085265764892410581486343720470666869591608456139354026889663025898450313818813315708504239000463548724736418074953027445495458667256009374950317726590068497855418005032971803690483990960640809568871752138479855108718306246174960276558997986142034006006241214463049651032001867669924433419531661246316632904323994899468123546542916950785079147004470403466150872628911587254780514545763113909552487076337385951582070969360016682103492106829966937782309636448140573809840810696013465357826377598764064861119565520532366846632233746946739555148450021224933868108490962088633738223988838488139654348582799372251430149950890225329888853822105618616537151315296189179768967639756044181480851891631530715904931399523309346189145374062654569996404906101348202609415904686354579517298329199242712792171524905783967987662599847839996875676515199872072489788253890933283814718174096554974873373937773934088652347487792437001846573604841346883154056578833810352651932787793117781921911429954701948833395895878170128777741924167087812980891799804180525301967813841243300595663392755580005590904130144108704773005525999512865925951907112983942153969895550805120307999998511769959043944599346944318971293250152165474675515529737335769962608168832050642970419515523883693588929661145083260345303326398224883010713692929780965903816892714403595190816781354443161773381429688054531833062854456961265188330526661089561858306645685864187297439235376527082167815094785435141540238635201501320790877994249383054552798208061532321640643520526579963310696547585721722858701629297311048475637426422152287461226577186999114120798429026889530044636778397612078835550440214076502917309053927591531830535413552285261509885443090115683287175906616214015357692329365049051656116491615411929146663881438687842356305952347422796749962446459411695979625697686137947697361377107258901516871674987271137962033261102139148350621331346214513006824776437044287269272108256761158302361946163587376951384670567428077116979416738743454244010670174311357570580285538088775673921240876425861865171004575650515840755475904725871609009694147691479716204827476936252000932816662081635488281440133015177552865270860791719156518658495219366344487299844536412634328722389273677195569426371926407271507420157409119266077380790346210126554857979678049529013217523650440950889171289715668869220608560839378304919982570944934390944104272569624312806906750491317965714478389610230636380693006399534663900648407233603444727829866300906349363642483386824898802620048046172195121927142148049117030759159844928465176292414389581492803936442117179118224058581189047524190325791276632600043487462734992703078469208797224567026620634279395297877721262760320286295221287391164961632139762207221215257978889637967712101664341121928375404517239117211337932331665214892304554204728285875918190487666665534189305679846331081548270499594766750812920665792706355073198577895985713996012596807733656016989343837476155795691366975811979272425558329215378827185758891265952799953789972762134609542218975059546809141666879619682939636796065471843054448717830368870225444565428554904244625308774948840238275578352349315328194639198989575631287594639399770762797468571441274881192317149741804895229788388988263440651795663228785800752358379029749333061183592649156205735352066668429425570085849338728416738618730493336367108199767851683459709771388559153971962335070176365849126387016315838061032334053805025454614314528597069474549938781845008720458333906593956551303381951010673042320652055418289859360504969140221276120199774175110852859720089630765905084762425533428294840847541540775839620435624807608547636901595046447278843001127255350012987528740312236210733850639163557441892432347590957505505036510987082928473033801295355199711591254278925973360950817959040094495047460756203120204952381726734777552108485363861175026063871808114254838072769492426527445650868876205890977842821571888559515615762773520796370987944593306096977856569788862132020767012639590931751168423524886436546956508063477738903758176376984088389301444156422970705562834270180081776394787507264769244834298692690693475427193520615908762392242948251558833140747473815148929849747177009125699927624183959486006953210365349747355387263872066663040259183736612599618765681288069671958889040559700184604991013060854452217751594975507703040593006989265767822069559690782425740630633684064606375868661072433701126954004947081381951361282901370385911776571286595634335482430674039049917670761535133309772448271111377523024977055989988070227107319479676302610768719784353381131172871536861189712177450533592937909010700481912483008671303840522723848242125197373300868656064461309952489842014021827734216659969829367602557889595943679138941702387071564326028433218107150110774341798893924663744619711224117121478483315261790190625371651551253333153891079281315902383188398625727773917265051998170627913304039813695326030117472861612499007133809150569273423297192894885866919150777220554635000184871786657220705521465827662976997276988470814264957177310431833778503192668349548131923286731851539582352136476917750427754628569785471979070352069508363018649833584589166954616805260019381774551340135265039664593009926054119921760774567214430547074821623470343032253480087715124974185838449517602877768328188383117274989372009777873237519924213991003127389991654564453051890310216885492471008735030577902050066485770571723705873988166850483105973383769849716385687773346977627394996357126351996761259782525456643687307251791457374876262759627459533987091136586963756697280965903209468706393311914044110374585550040665868184595560578959711498004184315827208111794253756816368877945606136627311371562842945650741393851353715749878371126235622311740701430464481100171089920421146570517050998709157015371766554308098375216371472902733906001525281007190803960144298636108271395550734957028356377837663323623480344591804364964249907292144306392420732849357426792545477765979542429723050504496450983667293710890530617843961130374487563316110010034866470745922246032125234509995997524185741488308130878496599320992829844750771989048743964655267019243570281869767163501411505188523417311839901165090485582083591408699164504000037173674662435342177155360192973631163512078155905514367081700926805791406454413480123597199756801901195764676274100923796163009349688851044315275703090054311735316902876143462365806789561226251966603383177321945930823693762917388235219130032798002168903783977018788925478273997564743294943747323675770031029822472623140569187383622675406769620362252853862288384426975265795663819613626256129422420132156618595711159298797800154587990902246271689269321156402481106730920718140054907511593313548430976032944333255519042194526101303579541549538146520906256940688923194910943717112580799523321181284113482377078827005884116099247671736470661393883286440460582888352128008225595833380510507395668205360768383914722030626929355519109901450385026995878747243550757410800660802851193778684019141850086062005482024885337098687811815648378552866378925378351017709717544115617231265978108979408422124074488281815873090163950834998916719537647436828287684639081425648068631950267177121990806242150414928946781940922638207727820128852069842795886152829582170391508074610160345801828911226009689438071479672115817655186313689843481934296897256031943411894921054002064465462103297774365686975706310090471970526365353512185861174336440539503126710080811381702081054150148677313432721803521792723056922051313842759442334308281873820080611047794889680625647316195271420947618038419664169480210165534199177289382038666843520727115513031701124933827107744745385651669363348736785330104262496618395475380350087693180549178464926090322757560269566345971755834533990961741127855303788813660724903812278798784965622923460968917915374494527407016746363908194953654009866960988118268782761147458214028949692479456811444557688143076407621168553698533714798335306074983166225839267429339855717685731350760397372786193264740208455685239674107867267346722219546006909123298872449337824533705423193551122454758120860275913601623573459095103603085504186060808893658824638169464924573494848974205228015855442155400472425971060480648894534416495562871407180587951054953037891311719324066437636541465650427523810312079060461887972730283923054436089979503427377467438889799637267381706342767774177122999315112748355946181323388073442051647484070104149441407485551260534419312915822287369912591631191486239475890224343071703615405339667654393868619161217560112128988602518646655935161477606944288689802038912564882530257630120759192750973248140786019775817618761553073202654937244224817251398287602945366323675874440753355813198235449795801382585322945861674887056743126065863310640523929372323350968119675852654882089515073312736674409728375360652003916444588752737672749721535271774465687966351159659472737284605360995414156603767220530374846248399030157211683444775617046416066166484817884152078508244640734277084023605931663078792028661402632617701144083026270053717227394668038725051668980219107550172360744703188082021365648533761409583896619877231800975987039106160742413938563077340206068393225247260076851528740504622610621534094889652752087647604622656575400303013687589090375564140005907444811529925558867016982448762904285429723429920422360668342048100779752795907865261066388315068497660571088870758019287030599740491866123341782021659139356146306121777559301484007486918866478055228221254652941227982642253758650400532651456745448777651875618430129410722935680408835970422521006991197282722829847069882348084691518939800783470504464397045482350546675543567379595878387873382940574827430736877260959757044827406774959377348758809872060747690389831319348417664139284538938315776361570138269208985640996600429955345021462699769346450481757149998852432968317507620667314173662486958902977417881243589460345592703593039537996039379292484275031802278324981075437429991406899715705831661997468645377440141489150493447355699519626842915455149758457426407834001260302338568155289107316719420732661959759350495145131525449607645639540260174400546284639887011309196613773211326192291874011050899629109971378077951604170193951549661628968162637749831851081555428777851765539060949408434426865684913398834979241542528614806605520448656283651999164620913650366398390185644303921465546840311674243730748814678892494027419468712298362320474336061765840467773748882373387738422334423247065773359927169927788820502181045638646997883880547366704293673979316218036457958897380216897620471764754645918647890724022123158439128012206832564880959262618076801664194610768074224321068802723411900854667538803085679414026757565472460941174026236581884308475680922394813881608136833078989525278623723838781093267744751193892083472070199326797876963802873517357362008512814737658902592116144237918669826740507938921546733034255382351561853638826344420746828298515222456535381218660724052765716059624826541693890541689311448681677966779659985572260898301391819883067283767263529184105837892517462257410723892292670084810632495862188734516365966618545187737032348342381046289560120713385324376757099316335698416143714657649726524691259675743519091038704736951469994715635399166997892090131224731129559465109833959609652610749365594403769331093467698257842971942533277928298729589445293263451797852164919661119383961679048099959928346033891606828635730688448533629521308880096299323556198899117480822425722954692921808090969514726786409138061601001855725187366523465784405048895657518108529477824272498255118644877119459376558391681788791247451369501624533177599170057501958829890793271853021973352061138915532843291467526919054549966078921008911790057999552233201997064837073633845632157410782586455871993440952216584956705280591786162958031975936719804255342329639090463124224500397469042772806627609567139861787292250154747034703191066778934020792396962555124770884301395585397977749462102475881923821904239513678838592272000033902990760261422654501997895009419545251464968882498276831987745585340533581158400632381594795932565564721429264578939492788924004605778131548677819621226386584350196965433220480375697178784560140833050741351641403263569321589154627789582775460324421242890620101809944333103374496188527925732419539022319523574950795165849628159625703519775473963909445621259534623080420583883869481830187222641064943530573100409781607522710272663653614958315349966322178854365895804773237935037226010315083639657952194262872620805547434903446038823622706233160970467695034186433127130084289683229536802110986887934349949587535613310027062584782216199483618368120846773965353272164166999772399377327248849932111356181161786266455331397316395574918571998239921086728209076046873241807160800953566911951313907600122134051328057991777826231800535568019003830768760961616733348854869126585072279565842351428797409224969766932339625931248772388849158290362111492622209479089720949504710992075849673617799317819997423930353532242131991168238667223341590365783533456865721756868512118661932482275270340102577544164034032734791570926664683730159057933030775224964332993732916626904083621478923308382945302248794002496469533828312222097940578523619011389744564794682006644787160531381098970918342109696123250228439175643236062518882845410762079346350791950748138359191770392205793592577706777418343736760076431764360362642301031842264357689374799037409525436428384045033540961288665179030389157266522852859785708933390402719552518806144629694731598662436918212478016999128539133346197157079245664756293110272797887436457678646690038868566171562901424625347628732330919753606032915335400581939424353164287935923816544068182431450828484843457284341914327279627564527460762608250488444742082334204432228836673911838754177331717391941716384077739918900086597060289259531295226500424657012433069396729832654683201950008042117839042854302689170437037987936153547602646251944492252681158479148377358163286145662333815560422295236995664276178358679526885045021956679213496826819577611592368996379949130859741839841689880834743375432802675220229256940515314362271977396312510101750144370768232938212473251547492426440494042532326003738765358097683244884250511333174482735495602932027693951563148218956176155216551788641556637758002447763202489039941757832089078500725168801474695550785476668700168651729572782718430734359186736908933205057533527346074854567371032729609896763408068932847432143539017303299970175114800732369585207670115966522180342519111612919639904877638136364061891247571210463010659542614973569552647937584047739174595597745220190772277059344292055615025647458459509568170348431975107823103852434540661772361220550664578881532524077517081700051173517120498553434910893284689968895578303286514492042282928550641244796530182626476441604194831300985595928654115832296411632862934918549667545020347694666679030274700542406280753563425943652280480693135063288259387472877264806424779458826045984152073086781208651078383007958759768032628934046440144425732411382197424365527207288621274413339038758400629147044995378442724585343661272756245583419025455529697419824648104453250897453115751179350806014362905510589922782579038407130782948120590196705538009329365155812713917325131903593344766307832923571496539571174377819195263891958087077896871166939106763546851874848787666285674824670940051145276842362801172669139881628527938658384814469766972053401174836483267026803059748291721526765076110595306547435856499400422425192042035658591679645488300229406031371945858669532633634707734253313091225617422962087699741121385250456788357979395704521669974674304142178946302499604526024043066339922422528668528253402148042295673964515263512864799868141883397765029481233453959339918692423190482108837558828756955302029749669079384263189539904623830053164239786998252083233275813732601613921817187619206900333550462165697581793786901217948161668619988200990712871558484377566775047221905461921158997751267355122294819223166028772889775258454879221165753705384591075253554862359285384792653884831979490369547278642880851988703685506572104339981666044457489922366899447671069083344249522792678461411306136713892209547026992453628288980467085817532642444498926021648303638907517036502041266486494123257373234828135256519853878814457952708034917913729378592537117948533632341564140963032263245563362849474940072252535780588957766386616358837349748517255812234720635380469627855736458594373790943234270675282824018462466039051016400923744029992339342724599137690504986880300463565229295659767665536753649133423882127768093008935342636746697179857492460722182493155843594269326746384194205605972117998687485666939959666620970453011643048201739211496762176050532717272000069722931014689957007538511957900321710570783082181456500018577976621560615162675357958382155630141805631104098391977186101886908144410119977197067212482784588493895622434279385339462779607608451027851073625728793474223092687162728389454471370549964894188049412509835223211204559196532371568099380719729567154534463109957434702506964841217167581097912157587840854001932823068207968490599130073187487642596534439572698074990426043061853142061879865245962489439327152218868577414947578365545379315615442275100186526517820814415458309928111951925186131703704824097145766014386078530024096397861125604328558694920914996940819994395474261257928262689954600651500642883823180867091814314965057324641040726877005575856336471425520000226502516815384038723048983718086350965167157641004381503440036904790274574899727079178908065803600024202775208663551738399703079822823281908684253334793168380386401994469989992485628623361219283962978978561825792947307922317457386412484035702333459335712797913489697624006703436648855806850878705814690977993667516627983203982992617617989403693194187710188291639348128713450368106127023024234279484656829559082988128005834281356842969168062424667158793653817777937423162946327306236145937104471062288591754511508120322215147737534953961819706211388668210737491158843747291408633036351812219661929371545076733322986485252773967419020124352527238266193773267999633280978000780984252786546489673200629689228575035133800421437504846796082781005451190091261533053880469959808169035207504117505249109531915481610306284874387597226825733198419244775099020786588055247956961942384189900096789780852565811191617645825907441335011571131094288387596860952606884956497714987578170081945492160803377149403011493114971460872442397612357127514601117861071207390368368891961936282166899511880184223788708255012941122013470261783416797079937684614546415077590673035308129983355669278745042174259363926351847841562371111899527755651100081651630197784849555070156724719165241579330656081224882641975452164403795421662866694261376319125631896895134326368162636740717183570311119628717625001306126128263067014569469381920636131745941395581304224066815860571849795566674698078006297484544036468711412289557802320925721322150905726365853062365906569117627690767928501131492201565762088297991106109715725036287217743257240926046740006491225521551264385422673706829469639870635348426690878589357787580451969506680891383929607370438250023963008401852802434038934689406889420783705127044119335500279688930408292989991241879617340836363337390844341047488888895373346888492392048713749903232902283482158270547548927781420567525446256975540045414528114025042790722669022198320266818338386052824531358578415477986296290765669728731588179600397821140469010862021928871467131966390015483571227642308592908834932391079129554633407932005626883845331768256123803164832231817574592366870949795652678855731192446688662801080538622500977297950778591018872602759948955085528413244441735245237034257571799375524334052699558049871095439598482268376726772359103549834909690422612889715758777004941371106491110265908189653199875728612782996493400065749954646804542453354985334372310504994929955445539224231537942027593249196628517269569335045547812125849463392902437535088774214524234467178101297618396545544806023196373000994311656758729730238963685445761648776466853530920984290657609454122216173074769426381987144196611891594284215162814214140636547610988639564236328747051956307649051396257345412775887102995119325147562569166740618930975064162696353297891292619243364986407721116335174951614671793330386625396154308022233044334110780332501896836681396157287750043298650829292249041189288412771358007206657490291196036347073289833215086881735013491840073203003979416375725126539895170922303752928637657831764498245130967875369668384391083463216976457003989367560863527378983248368601245096029050860350263462815513718506711173457515837034940233687992669486683625529895273966148191710457546210052884527021742982825487944320901418925971984897485418794646878773407944498583691234823412716974218907232725680350734155846010991897872542675152073556231324063721565849768280073321646136573307985309033728244837722198194496821255083072393581867467759134277524078592530422746889752134868792263285784886417375896999989776056902969597861004624439184634671054382198062081024131352826021175262541662702345450250752430668946956835004109758878047010290485072847116441889830140653320374491872602911696394663936476472792290566967015775244680498560392505326027076763398762587836883056646418684246364857277619906817351535472788857106229214613133757936324950367798392001057237196920935276176335226240931369885040545713695095599833329776127695442316054295128859637381750565759942882565658977514007454699901722412541395087196894088771884574593475913320406184616863823996123836204327447244570670082089879572842897605495448296113339556992536823748366631066300567328785322477023596119178336763312521076854033447268588519665007079234609486342273578653408839978555262891957157356454300254109078199913503015827803319788429439597532153442905450852079020613567170149166900171419991020088364761693255886386400950334479688373055915914208698346141242889906676728192893236254054645186482139134413869338791244593263931890034615064229984042047422922390724423262672170661724571808443357350958866242440412538333554180065025617881799613824880507081501663679594599760755169411035790990195951468953498264915731892419357566546463944933017460418159976401716457518422070803791861964838003619938942487772222964004434591304533315731062371589877701366795427091666532596713526848681338719732725959063369501652651979397452778121194012255635394041504297232448165983992115926755872443019652213312436657572857686353123673218907807493758492608833237409031004068165743158055599534342596955204723717311907102884866716043162613041580235377640676887867869920255446017628314740527044443382015910724487886860781752791091752021959605769883256096808660911883137810883027851812403669501784353863736705489385452303934226987089838921820015100514152617572544154818449517796948117614705418496330276930121640197377738259408128330793285255324182245817309682068919932023249250807729959516290812109511366852146304236347508202095091296980595854041306328519297949605860148327842611116105537237627993299487402400648760411579468662803272834700853591728737316922838076296942006259281572109608694471063627363890919526567655096379447526911685686124940202786592020928316519443165656854680300933457051195465614075522230103377295707324467033829961632005478933193592630474052935908860898159150146029294743041674972440450036592550253620281912499948422115844570862963058064134173586972696194254754008345808630503549015311047995123055499134286920943697689009981152283376115096633126268492081106275656553003291469101775459035960925579997198454120144921601310392824455148108579269453980608217253542718734551013510989864993613395094621555269285131901277163326102475389300007534601593152113480036197845407219848125265282911245136280573765902215516505454394336039313102429637982346639782081917624459549480037051059558158101616568702466328342611134954356285892701066199780009375849394010733490202579999869747643072044127313798794575061813112636632299432066933189318951461015147248721087461433370345812289930806895425457185438750372451003767914277751009170181608334981322210655832122480774894448119605712797357211597246777313113368581976166345511484208658721172256221324922440527160550714204901211532638098484819491060081527983896110178451884605928642154801494512156129978831134734005708029387734902326730394929181215377959246250907002022336516252460623177562930248037841457823965424117176671973340002059693535094818955198211071000026699198541108766852161859023651231235932241682408891482714319696997223974190804556748382877276400086422980411849703161899146399334374252559846499213791640977887403959286095042273878136590969575809675939867224267805803539454978439326324937928639467226208779119233705751571501490666302338269752687449248851898538040899725267943923872592166689026846590060146549098590646554514294414086320321534184117794275729244620766053056562922193255047229583317229083227496118149418509207957471658834375972090799797382557215935831697657216701070172882133664619984081646257970986651876210523783594232173672903183009899529164829698817038235392195459895611581579586951152260756532840960739579976273849242689380210504081684889909304789182989118279239145291452903122991235017416581498772744199859485857431913996092093118285267631133419413344872199037260422797493049446875751217921463615885671715854678467944043436057124060297891631446728290810643284578365125519795947929500276043830090278213902627175529880762655079648020117267072230834210791811616918995235520804039057700652675466179386626207910609352395480786446230340049492385559991699417851161778529262416411934800901058958376988218915402504521251236004887439818309757795300597249195947488503536172068721684123700438073830387015182853932690735173863379607353388421235450727997739878149078129973417269255403099214230124273619988983012114490464071969646886899819914779315322511928034502534167916915706105003961498199858139905802155095493518838813220310760940501029111585529551477587899863750388085701197554097967123036771039777262360987119724610285199944152229411632740485406051220220860230290158903420037844232564303304363806564993142860670781262308845972240407219920267154601826748796007017007332853867246967513016196750626626528231796892250039551643893165268432932021135223736435186733978800312217000915956035620999396101522747850980799159392916595697727187778018359858372423643471604989997496643372920415443126825812994766588619595177610353203270054626386612579627466728578957167003537123442587177233734995337572060642843574619634303319555350061156912044385844784193863434982438561545665347807321508810636881902036604795972387969512374821130974704354627146903716286589420889730689814874648993943145209525207584342617092753521002357069276568473257853467079546513500035338973637868398557934621791384256989563410756008428477378548187993352407788311632418095661440668293466415781698868385595015387198979722673933721025945565781406036210717693227501856377231824109384563197509762282684013716822132153162557630358569630420953897441579949082031597653322088051353555385568217163925530700822601511388607871685410423319909340818276454877401353130887462444662405075945834518010836460347038642423694678995984126392433461331073972418264804883325608628312816183193381405052170205860568978628601824401479739632453526703610233879863546339395683394439820323677585227753084592107887028141839321760729213493413573881786275135755585901049202298861599039012813782026998237210869226104547565733604637145631106890252160829452254032910202522249108030306186151786464543393120043113093513186539367264977854302943107469346318993207432328168840987149986130262961416514525139745519941392139768192375172265364509110246458881498589007652735484547871697199999391024666473437083392544564824150373415349775650073371356172532161450141620794632856592591366967015667806751607377648963214301736188623558392736044522142332825105732267586792757719266619199945899694509207671046200930816180683486375131250849790235293276672248900127404295184932766947671481140027402357440256025457821261390690883469731697624950457848648622275324760919810262068584818445086245041505575733970127718685578645364575056126844765715965629435244596036899991182689070089538897008976487263441834207747441051744869086448947807962387859796838570584476085718275788939294988869929776388883404094358679278502062565393335116321969177680262182147942694441627444455047252564162997231901644635112699001027219988312497299938130656154878452390337513155525034138501499531881351125260994029261551763366937907048579331306275373823114916848104497090895959035229967257456019059334525558170616080305617416730612829669729909342566053789746463741037123428582255677024418312719873724402346025554831369079847039102766867286674130663135188371534768046410470938902084769062870313808558954913992690742518644075521083873856025781362029516267383627125616719783294841220276038666862539703517177147478458553322372278130115136782706378240627254739667619849169711464360291119491235734486318915898534005418942727681780699613966047985254118893563305712221220328084165676465089664230355058987864527955794431406811868497195327279209421348446864639952553253416149392911067959253879632637920638512752745588483108130407933060515491807007236002987831792152595395475756669331278270105144666732742055882906720622845392029652695743908221997447171270639124170473690424250199790817922137144369472771168504089203805700675340065779150753865631200703386910650028404178378694360980556916486347529999025232185789103822302208949976851120554435086380690703710308725696518938773179863212361946409413072268512488965479507163430986830751112589760460200540832911166885854879467825383214647727645493729192482740342519286945037708765647366378925888401909347143989674113958732192049603553980957919416804557942280744489570332186114994408900631550174392785709062298633987872020810637260810483292186271155987300361975599092314026556895186809545602980931734690070656494209267955212509601724202978470059537163496901929662506140200785825951647088756444096603779161851977723128387341428119633477982177572824700156897221988679861094422943974501540733594346567116895792354978781973267885220066878128616936081623318794110772992207425270523430587433492617868755472190562765400093449565637838950378343114223880890220271669874471196525764881755397051568333544019037303300521307198571727026923014165902804457917709436843969623368475242224817840160716979341202533371270425128354559933363286244846261680135268488714677336925390968192075736005084568830644920872669412892539316212988527518141343599348432829056632832189916478644822118340917321083892761674046845272441403884579747184042188656128367044764141933627080084264463569606271522171948076630836563814287108921936352236298477205545674521822523633242517288599647680679450529097148939073084270339094964528272897928124505951321510418107240361452872250261727280364896302015409702176383183837133786581118433490543727830429619629725419476928949457577761456463506799984919814274752603096266496345511660632018426283321198608321405989463582240974282202847311291237558280890189301124440569320385945659995703048898178660947769596176158133412725160769779726466590108521258081325669592678688031831654465477711705624441365084344284089393459698797827503204892685372506180112042899562525854157006384167010280076862007867683834335774400690495411271711651599051165565590699609881406248781503559579381943740134583916044574171864984987356003096073444481852153564180529020355045717440112192169295186635196875425512322870124699096442553826537032068388763175121102408014922510234369628860898687217948999658016465429246282629895084969031287724036846795790389480670011963993618131505555056201438703863081410534870995358372973925108703744094098955429276069838408070327776609095969531835194898707867856437374145276490761559878826349298598202920932754736282165969420688004635051572922652306477811640425187767453716042252662639347918077659086726816799886054231109272008920984178725295330859350891974043232295174991748270185346418478832819950245442084001972692391721858935691588522205206638376322227493124069081543875645509505535107663969369423049255480207183111175106767138000343772166643915756602605960560654067327384892828016411572303743903500309856659391046781714928475052341478880892859848440175024809935847837205371335963128848481588424695203841911731247134033668640164716730916883162611587663017148298658073667249973300033549816817541116361322936186086227690253586776429679074880904382120411099707715515347707893009458107300029726892766194876920018699148924624412836367800193639780346263331429938508847210410088771044998303392962333238726911191786039215240349156936360899922301004099203630468623926262276700580287062220820637165166439549063982533885224620316333624996739296233666805367717017672464462206201499075381985064124550720959307490458020751783571147022752314006538077499568058942293073627338705776652258770470665921448935482344145193017032089420556875565594146817546365679748546200710366187582086908832624728712181218277379503372613510899927620347275934931602970057735050929972785871477620321866768541254245115535013986386993937360976425076036905531325408948398167537315520100106728206892739341383556031510284432020272684382372168551807262118076494425627978420331096274799533742061569605016838787223456985176405314863585634413831311308368634267370390715384836220699724721253045146460545776072827933149630557012059847326683839070070692953962926231062726090674592083352449064790733583353225756898081298425679916054329323412334718378088623495145399629244601617837082902799933814039427140195514442316371236872270052852171650646307559013039282572882580629883515348231963480997723229469924668594714703741042508658869401023691933838465947394968873273597407810843077990626943806122156941959858615123991838414285973730039293387305569512494308607262579635847265974324292272643957515244243625436519599030431403974612624901438150342244796324549138699156104310272471813640585257907399971450130138305734343127035410796734014929227229905693571271322813354203964308287329234420869798722077745970655541881152651055839703953287166565507918388355925731346651660862202873347307078768808964076799076835572110100304646491895299848293233220880733686268840840932843361074724950374738016708908209868429809419302489679727113905033659321360783885355794067815697501140596743870682161771154997674053426131667232913146834522855654795658667473594453769428221863856615350998471420643138531301513287090484330853197216575561368598376862264714434475302102354499313031776031633040654649454590156571472987557645906055100343222251366211070691015486413647031665023842765099811759920461094183740722585570487758861088324027423105184558650440461777805499916123840000063759125331043598904195655843995296551750179990361080858415695669483399615455705040627359290599916968640287175203996901292296126974188037141200226510661690276191616445931356875982878073724537836222465293392799744830324797744132049929443031654364102395801871842431220695406564606996360116862239864259369149299397005311140056318956992961861401684665213874135341024744084058635166139850241827986130760217123517063333192631370046314716011814311500925631562506152195661640539082453112905499919851771174172135922440307527039640173782095466103381642288896399769776737404857541074714463724253920043299922512811997913120701467089081817444736428161645402518323958119405189397270686856591161333430108402878805321480554731126106901248747338582940414657735352470015938011139691240890454189955209574360306005198268858418757807439951958459664778997772554746935575505603167180014214815681511863181776945725272898550034043362250564994949466108477819624028897581479933423587444678036990026573129452755697227306972238726128135135277259553979227276974363982042525918488758482604222719040237363557074073980276026946166161560960390639484934767377626911633148694529350188383649349281342004902121210447501359706371564790469098556242798321412795874496446119484436085463753391790183911807510050194358499320635953031988804729134125855351259644380051262025798150291473992394045174055510814750030757768770186428213236082674792091304600706221031106730684012472515385483353348575115141626342012356292882655502836028947822071767067846693137195692640510973384495419591228805782852482263041980513355783060577227158347800641549070957704526000165304502634618324756078165110215857220680124502876732685548779275430136978718114932630010540268713369094692983844342904307935269598570408718416149177170877641449118610461703660546116617143695922159489168234676722574373134351592520806964522597052734520114970481271945721244856048239517235472105499338649469507741243685807160416112156828546160200947885752071949717157855387180153662209106854292942983383811897692419260046719562419038135866540099178270133226593063755141895908221428197063219492528290308675822300233662815301569712812121580870977270367272322516141229323782317375313566000746312799905292896760991620524814137802180003053981700840404631682470743062015389427126825739709307314346588224837336861613391614827924243501964422952738751594765557003371703219734680357014587960167092842023061147953059426212700906432224248004281131720633455890914152980586546197068690949020483009908079592012410908726427570207639522060888910737321074966508887220684262897503795698810875088330672808414876663493648864244069324474571046321956184410876518326357665910536855166869392722765256635572961282650407815638996111116029966734983722778815144516479607761645878332789502440790438349130407517385771043126584332376724577300954839603180357534071019258006911296967585276276333204823103554058838201316485895581989020105514947247080398461963665065265238663798702231519350488903213986813962509842958935730273322809985123824242455454683460549005391909151939377055720284821769290358171775664785638468688483293847990510906602126595314387871767207048863700810277918453249147957056794406722347109290195259915431417357207958341205632550833569758982730160597330150113433350935638855619006168665066634105857638562444500277899980290496835269624595816847189611499926855258985605729043605461533587341393744156078284864553914226091300602085865471465464094436007246762476680980165862036203743212070428675553762420772173587424392000935235066829833729764590262941165188556457921304460084676961893524537460770472339006611129348891543576682503270766196991615852888535270045285758462122076350940544739989208057126371367597826532837891141495520515739969518743602531148458719589647547891257883799157530700836945524077674157227796558271804116620373218551067163790105988998679528479974969597108435730913088039683499250568564552732457279652185063602444522288152710163826462338888585969679305370451334199991465879678848672476515905648802208281585129042101933240847203805128970450548140111939568225499824868699909659689441816387943071907690353872410417652815340868122575464413333642635680916895133161869710805163608808554873935295858804688641682311435319096883769230650632674734158244164546810568806089824544356722277741494580829776897216231073125289811308843018981398198233684344650234283692635214320935007594925349499736062333930331851276478049722431647478117632777618001675557606803178035479313746715063657865626747222540538978552367208795951738909582638976381153558504756361530645756561558216822344064183067933616605489010045565134194122075130992745675091594068260427557104786613596970378100064184871402891218824477565915719004395621985236616913369930557389512904228763431840110773368187272935421647879536726470216201892832296240843366858172405159746133569288017078235589498229812964028990201640561825412759886962687574826722026306314319431006957646321068900247613667389453220101762948334875305007513507342606802920397077777412429050923894221001425039297452709761896495637207076253613837544801345295443101746302710180060200051345453595593951000054493629118550665495447840013591609782304127705117718239594822834384072204507278426197610539435417720510261100601906585590629863100236013264518153748763960073337793086636824036711213687413422434818927657193636543321715718412383182650459007888689109453931879666808736515944253854919333584744879255475098933457473035607016713083717973708642495227997378512091235142120892180825845144955199883444670604905003574810047502521542829177131322139231113791104389830209076073584893645747864054611364059322037500553814894048602910289627138840094513076691674957619490973889093630312116539153920204636427821175256977804741127878950497567154677477337796582818604873875432745178052356402719394760037879361463054699877163830933902513730294272770650328095901893191462716923363933557598180908687032637655314835978637029751385138728445101967647274892133404991514954782593225844676635198322501216488574618901551590785278215479203338319276362149413150449739535640974564078721560198887965778363742273818048679657499817754185147015122100502326372769682510555791695851283255948922271359260816946330781291629670276159004357294149527289312432591968541949400061090789486035011459009858907539205006285499108118294530239113083891443980434069146313799140040731393649937253638707281786207831166752155593605882661476321820164010098825424781112005039388068605235407886007744527987578741961461842284719544036808479973978226167523648101413766583896939712092349850591680159292250083695579691669308677489248284233927692674101739068784576006699738875838304529460904451847054180187151305234832873332407935226211897750067514917928197580515320834181589201647473931435766622113001982319108211505017755225936361930198323706275287485865797945644487692842329646091834272211410722183631069488896547278226847631304125057179769731388298611597350690081307370556738713567039492060268759401301926546487691716544910547842501298244881615846850392733014372651505413647237698742411243670614435649584984430825274338262102557271307964071074828562427539890791235112246851313940247049693003584910902652379453682448039919065767256328135017246539678568613496335444091372186638859613652168320854234738386331290720760986081780395034752155707866596336378524463379190493936909493309098755132174155917087259005219240095178130818703971097745495016839827480871684480337215463254570442089371211549262631973113206323667680809165313261950210395647333649239017333104493454197423322372442303636628519598327755640962573274233172540760510850322477421130231773033070711905971892612408961723862827719262960259438648443187956801305094691570758223105274302107449988747221613487946634086505615216690101975001528122017954847933917567815228552648278158302463374742927319570306104473320727098765615571571154627982928001812212207350251515840078621913077682658684195501968465547418286460685987213905040377861311215233676396434262991207943984780950860230714742008203294141528549967947288530318405015460951003095748066943969514787510827226054539870903081838080779186940404142576416931633978680518302854660827391759352322283654554035138299990723913363313257510816563372271655669291881206761155750349260749155734605491838059102334007457864347099338426322676160681981970555134268098562466308839488700517636171748630296934263284736647071917038569903019928743286215584037816935253529841121767259004758781931617214113403496015784709348602493774967269298623837975641709296589472979531387425043227216002248345048782809556896403690265261514367106742636246218447220092380745157893274694583492671927472347698510453624162241973394004897776012159213051656415893958412348436452619825208780309988333185968592459110695208637083901106750311754737555561182061340178468962915502313228782880678921871693365731556119667556092811070779610198571144661822994008942523572777498243678079528366412169098220130709515256916842012813068323368098166056879670070418877850692212500144479452173825420359295840227167746445629588361691918267511120125917538425128570211388488889473100266213887385737077391654082886531953832956469630982932172526900395219124239750797854689150539507167917937778765441503843713049316365635092159504516923258618759262371190138931941158678392813132362309988969388622324574900006640596327088230787518192947076852913180911286297926621867445206669981859436155213279037247531722922519314521392768425176263150504937911030395150830768150393167616589005180233524644535349173313343835326031110658340320246548212127552725660257731047973395156930130785847195693978304776103362501946413454210064289280327695748354937635624056670533240039832745881666783886367667022976365552725758269757196975050433770179341686995591984282600580894726562879562716887160135305827778570634716562976991121624062426100666617273978305446891254489075940276551720200552528044841490249435817068666038010186599958305326671090469449628743652821582880958775708326821585477091112120829677721497739837406256112938323292302088613577420258093005212761496820224514612243228188700727111563093346278553426814295326423550294882500942590401783777129290528470836009142846318846851979816656728430643245152510035675162040656065300653795222451664144067826952288896367484480549173543995880853709888186436115539942286716224137995116468780302907674828453171790124011903026130881668665740553687041295343975028679011372490310787673337407138444546063869132820473684317681525880256581709309611270529611860143332095089150512454405039203780496468945140558320099405709121254511461686016531125035796297033067047113381153809287742234241656390145553079066338342636210748314829933785133470332572345819998511306578432083882512626792516418519717059729512827388644405866155396259840845808513333296760109308825954236027920002816843720529503651712459826788612699235994646287276916452376908289633384749520555971834291337293328701780470165697999852480436813580161492658073530979670622164249881798452004909067779149672641991420850540834404910209994760802228945945065049443925127999549838074433756815559308484167788163829307075583244336938831329584195877828233419737540575341276729829257234166716674584518463149196720130595256839396833667308429897899366771326539688198588428352078743372357507065981787206042854834208357937364343515521713792027413121871930096294113401547747664851290051489535295194442146821852902330825899609225294588044354525690211651393719072579450769175478909209942893743823570118780230746166308479194549521194711801476091013897121241611582078320418503891143357026255019599857817868288675178738574377842207510490292358763927382291869630300494711674669077070112231502303346865343363033105819083818500992266137997008193732496252945472359180895047927303652672196694745039089852761786290418480375250248190020093585194591600258588614083437761705852462801019699570415139059300864581257340430945740397004220685796099885796953098910044754682706637399313472003668087608976439811658551584278014697515058725570877619097701238470122395827921478683179538878517471277232667191648622305976937284518477027890613219988210839219955156521796306808663281342248362724647214610838287271418628882561340751255183909546925614611257335186146072721911162540765970903657286912142989478653037083883786941733153594087678795981127284921798603273028649899381887081351062613478733868584539178815697422775412054556813096100691703364457956224058180806471473026681380077857671532851328297389439901466495636387831909661474822625209190117484769591223711125629946111434169087977334097426444279596124330218095705350604837654234863079327645341227159725699416005321186324083274191717518471337237906471395764166373131516554323576712363861080981965527201005691044373043246454394038997556333141507520631228361022264419870425718915323016529911129088024858292236057882759454690801789321148128641414298484444166852676929577821227019309987240900887510571887292532632093908998805070361528521466631452379308817246535596609568976437540372129316197446317771104649778989496501019414895028551775352138646766024586683179086760663790613381556229903248422430927708745087780758898580674586113729539554443438579968253687062524279045878814334545682622943876471331757912530736159521451900771420309912214190829482356031507500353512247678977090083748697590463108622727897806863821868902798976616364468531750196854894459149280859442719244132079557273193137479277956403775154183027001916250825620960857363409746224854820297761496361984855716195805332567123428235961456310539850676586610547590460797790307352361084140525412219784310745586437405720453169571532934573632493618449937116437541658965196532163370601584738071957264433786207643732282746556407810281458915163294504974482670547956790246668129549267312535458183926824584848247132134717581613904537703811942213096726064600302402130469338963322727347124921267214244571275838689471118591198492179363693967265922158078815548674161648320842863425545041224653340444778927467059159210501155641105121463544009980145145792392024436892466875440131656938198499296824504915087064094223772457806389962010165097580032195276774808411774445752231334111500389107143569480620495277474361964335582748836272248136371836992127926603201089727032056701002123054043808240609116187199681289514348815463301273582622979116499646249675039812749583610549140968007819869476414778953036821113900221019133126169392706093430390871614535583675588517894258251068206122837091303137919071723416891393146515768814169291470289493004431547104586310784506809164338135006823326406274587164626566546091865230106428275780669358206764628514746373737585876911813436252736703029110464143167047947121590147503924726978564150121165915739691745153061092412661656759706300486212009338458512316052378664181520069960116857286273459905305451529889342382430456104130203476273033107346610745714816482270431612452051034334363199585947775591604395998115835636164142544252906639767142932456055960657845717142210821371443508855190549763102469143311897710570806458385294484282723082166176106756883013641963520170517252882279930772023220872426881906332522047743735749491735357023841772135555317024112650901711082005414408640501442734356196591950378755930786670721787714252012731467775914099088021166146645372100654900218829717823313445804251745953041547361936308687840294282964445884354396062503611236576460841722267343761993088361302519468556079059519093843937906453985748745293280471938360989791154632190492144140544864530399954551431965230471591408851606308036966628154926092930574086780834796826843220208379598886518731334714467452384011080895906135729846505507062608280681416103830702283471551337979074808222876874410690757132002264928966840541777541545722572188344930392688082993453183316832443300261895994825830465875227217627919831445556985608623286725235407864635165307109095890284973329584492931501406273903478473146287198030892798804528335978230348784636416577609354926248563076533206608370064424958873630286912229142677530058314522460174758684177012875944783415315624310425704631700844018330238471637739086968870911611024514754670140731709960847820888597413997696583971723715501096372520945651284187562691638294420351318932496618645142180473921935073704709269576846527578215395274592759219083794587667222384879686332021558221736020681849698484732254260579683647674742514659408089049029498886635319009940874751561584208929324801366608111951848892911802103915302424156004930865620853298568077308288747303890041180533205906507020727528239536413163774666517794305547710213159906780134176622059741005889680301292123592253731423666984828898753426042082795487809133766877961401588452068655052319393674444911265151652142095276809672039350374854511368788867097408839956257020533933065453605275806976809733340890904273269551311091534532026963290022296736511077829300009359532666857799583250955516617951239738198566617269867792239243274751578007204204161631140832332662295932940278476248155673007166686388759182763173321104415403484415716552553432314229031260650207653923724111115045191340497091107372363481649701942366598431460259906620584659648126091116476306548713079616925255837301383181440536105415660003813279414940733956371187115396287952265037960491361493429210803769560977400976451489958393095891931656418114626257217536828210321041935099895282354059842433744671000246956603687429982028101103364317942061047818677779473734643445370096035400644644496372380483159351491489441949288221264116998572421189713596217524341477068583759259280133871779523548219684423847711310550869020263842901565279773933257749610145343755892974926408453225189309828635801997718228857603554756800968498955984633363602008239473853313521739750589669862521969459009171444899620404751318983870616053376712375447415211717183094269425127753399125897065211255702636243785745441273161528515307327030230796279296110590154506916293888323218181663762833241121452655311971228394826013355777755002287554256216035192991485901044332537112461201164751218325554256465256042645953909906685235375799436023866749059727387626491091529125409601497139675372695952244113759341440353840152420302152583812195169809119416947974844035380659234920676623170664646389131764839755333361564451381425982946602765821417977020934939998020117912275627372111882800715694478892741317858231851482750048935888592460050736664885601601946215534812666014913293634963908071536940980990527206523204779458251104597261761445197399252489612786713256762836756067518119302209056478524616264801564166573624022399366253440862657939221902321806316828315495479247378503205767023715120311063361879801399429034569906218333050585305692327749207060850845925985653189379556972341712800848800843324171874797064011956835110196535293175755914327810191598094256221980987022857381479565221954534427531415048831042814353120981614419945932162661227966916889239167427594388487982459128803905321458998380861658547169351787601432507753020856970687405885623367831898594350670552842446397039115622295879762503050385948686500266982496716909653795460695819806872409320222973709832688639959834574887219537895746454276247542897588147816445765995882579803781175417451532825578250264074355102855203676522865726697678083942390772449985134470792577963561300111793268463601483319021721339960435536811087694836195822664716592205760428887069988931906192940546159420737227089577144620861093928163950068071968044816301607954067253861016517020942059581045090926079033658014069414401264686114067714036913153540696482528603961952195361987638236360172338443357962956524864832537261892249704258691828600313019355198960918761872356569534549907701840789410178323513118498359164939302659692252753704810615864116774493510044199783682366932266819323761523405049365871038645018143683082854818419003525325929766487530781344102028930759281652656289330219589076431871850214597421202954748782862314976487818946317597272127037194446619338309176350215648642005828760248549786753400407140124154947009302901493012464258802090444016724195537851640525519140029356442196943571512794294304055939759598549776342511858955533576861586079615108398943713787543752879365289519523094121704852954728099399901380671359236533238844068569190389226483383206845086838281524943593304049990080809683862571917073687211427716889688013626204997975004567546067907572842261680959633439146742777337934094946913839271184030311140676479487712797327167275943741017857680387595448906771423711058737610789271316912168870290911710111938414930454489910566015909028036226703723887049488211736693958229341685071303008323151608285085335809581311232282577017780905887525291805456902210329030837825945365277835056332420825737816066668130120315441503150180031794863303666538517054186325392767503929896504611327364905518652312060118396571171364229050140188429226295015298220806595803371816379086399311476053299001287906272806961854199196182435425892526929771662247243832857313928192056039976260662325107177518787513135972302959907657347997508514076302782847658244743116253659053174867879268394185152505241373333147046360850762824875570913858857369457499805015198701116489255377762378942552639998670660640197290853294739892102246604964774246720584820939326954014451245486664566012317387811200004225280645714324720171194784736851371764757885249695942507409561281546900769553186050900589419857831943017318870949760530969968817822168457864686901676362608120200872182368141351032526404146725761419215044885097702797049025022626508482695508115261146823557005960374785306338064416352257675164346635284981813295421124172419251737947154148355238132111181581392087833701410780121322609332062624948522866830841625236282042208274402213433684697559881536201395375933902482551532774103451878979796392851183654406488591391223885944894248976354618137634095240720590122665593789935565871564635034088220199093967647146468644281454296631972156740824939651225221783295705126290021147357781358050359985359231464333597485129971339600238693840015775979945712928659058463869019882959471898676882394589296148900009552414712351598541157222702997382063661464855720081308915439065203063202465726108141568784651415141175210539382659055874147136723991166201681759693331168773175546249532160749581210073574848897014173430833410931586410305159115165724293988135158919796104075212246032977445380994183384118104214406746952411865908428643721398041465345592037187466120345219540871919709027455414587566516250210393216992699472193306173805491025544507486281139496540958228699608402758727144702298493594783495851190406829211489499054165068874117787384751572507873613882531686355422870808839236092167843386224326461028577910001443600558451752511502251575449223023807095160207513506087256972333341714920102752581364837729388443596536926507915302297781491999749672034926110192122096172538192989771629027178568478325676475303948011970750607852730646284583254584221461178841502271077120066591492042015069656678654278049168943705070465416444614511417849637678866201688651300835030133357579896074521034828635055672175090027460187727934110143363608883787266233358149787544200941481145626601344616329909559247837126884193799161532377389263338109681313015271481882571084573932382732460425365931290705404333609734862351644300429676847711957043812311193934332346423033779756285412076288318201392733916712434621483428534504564360238541307243296134646297171978367257952403758498931461708613020636078927293170544344906629555890475994634460209749800679562559932066335541282924096245402031930814175078018109014003352930820638368893451802312556673593229132395230710877102861447919780101991978044490827941037661853188679854061439873236738348928805521484954734567018680394496537583171433199786662009099264338182192146882503610809582515627742348176523372698711810032072163142812131603053550116964641597467188200096449362394996309153830756349338724665883664026202884986765587938811489657444380931942931391091440549865774163266030095067204009835535465078559302419001947451564216912541897969160138253460069350168407119242768714415156656780359296549879648621822277079023520469130060787507064309065916069232720482655007648835496008573763578503517725566948057890262411245222797928244529654614945957749671325016485675008483682938489594546135946594183406733811445661639699743884788283139555153945428331347355230211650569912875535420085669110807013545742157489921114454440605173397482325681728302114476751572646987205966253037816153012175365621643815900840414191214057462698854860905030120021834396268263738286587615719738494070248200402121670679912742774444234119828528956782981262440198067557149101087632439674695301375497722849589991959244615163308769009724881646745409040155651138714817083464989307690130470090782220139390749246648880876588007576670126569516738162603310169754318521849686980834289032950580598447608755865833943274190486301383591621528683454931744301713102575886709696726627203358004943653879752525560999683867286868274164232731775420700548475108723112706232517703064933739965774507481146947019072700784950176198128333337820821627403825012177951687734567616468916763565510037940410679871918643706347287921153998661713673528219018573107632384140357843005500228190399142584102811552155235067864030595711433920795057098774923397405518064507705562105917247246220716383265078793826202899643620605901481817665911255484337842335808733749470676072257251791885181514721227271275004703317631002798285767758664724618711702931803786783711536832319917211802724158100367566941189439997882740334066738284507875620000322290971762548770123856679032306100910985602264549467850814882895224357647218337495004058971967243611210390408178342210431754193451658928341600105690073683689457331744211630133432473626726629072103042671472345212396838530115255268539031509634385029529055564609622465892373750171017466170841836460593387772105060252342835787625258527834172199061467795990550174460111334606392488931507890779823631157990707875569466656889390583969076425196601778046558104026174328359075270236710042534601454640185850431314831700654595582293776231554299153024175110742825562670055576316280162266279163999457628004360586665359644802596040978662067958198214810362360596130290898222963121741520816806359574630860713387782874959279192004524265559423441306158191393608474294203902408850380323638589667254622212397328932333086344482036960373928892563793575227117951367307636332285929091496333909758712430113825652054671640959748278673917836532935366527034380726214074355115674359834322581043117222407839242535074531719164319806050682002948013873363830264263393318549043619815029139247987533235482190695392231943827807117881123416004554774524977445629787259756234909573537092909674044588053858463125781318090998148239547342060870668698246679127663677645923578939828863878006397060083934670321917112168202031473014676089275928469900208088411667795079678858931857296485910573859828617798422581388964431815902623764917098077695083612201515973269479616659160109807333636764783860371709544589389026353229735609753428462694893969497376783260117404739632937557320915278556496205474441926316699601588569558071849527907746355616215131065800916305290559505408803022567865620372275133724565119825554778098480892367974557889359345510051000104988722331091268257663087682328938299921526821307080213550630479942515976365200822911894165800247373078403956190958671125715035857377571322982277704972196586859383006311592472968371974157321643170434894862766547709666971073878865460581550093643796449251538816414755813713807507617715562226951972832366317893646571504221154292285901601094048709486890382101745626110328761471022066551817215052960385116542306622994944803378587501776583786916348678350175634079392340153150645782785423874339257738477277019524631798707556919628921792928950570660465577999879860317197071838191005726760991062238789689253312976662953112401063233919216891669373539024278258836339554574747008361603056262703616236749594280987137155887819140264965742564909343985212524449259028380882163922505870659778431998686951133467527998232637435291964416751269509866345803355984750430662827503639636622201576611616462144742555315963981254384586543397139225103974899037424242466081321352675091946799954921618945335222597159566001235441879588030251924956956521149012364135322645949217499609742096597024606759727834133614579357170869775855216078593805688139255795138871149749055478582030123849082592067165027739350772271646855023407900974819569285786366357188643030625697218191159079179902281245263340671316562307578541573879163821606241506698954000758701539072373393442519209525689439666275575610091328146804632005363932529112314489741885613272888681942879217251378437682694962171726568809571854732056504469016725378518830530918731694223633633190136757842284067511351727221817405774167816413014832150640666275896732201052739217332446927520068034801845391078955557155697602904618449640444801975984205008181480634726609236734538325464878941168063073269479190034735386423275013607597911518214539391339059577287928300311853457374911954911932904732583114451186494383040123201673081795477196815605551003854940644892407459699519145812923779291766804054226949937370761951731175994804096341856365954498907251837165562840595242351643609883863620926714607700479350004506526910989633704054410373365414270643770404170027962096696993417613901035971667267050624830979797648395776588032344671012198540602000474745012645416551871160490816897808755944033170425479918096477865445469606538119308185574100104643840037815848705693957066711977762451614383983252484981060680137651434661002486665371804109321371368260197541106616083143243703176046172919754768291040896837667070306584905325679851723906261257473175079467638124792264385522472619831702873251211550693913025816506509301199449686844817409904271709099926535120799802862820867373433089361553306015308513734087333684938853233352444954465788734072205893293475857464874465473851656632506271154749584039551039648557605523497140167624239429421105023877982629580092326472984484391394502087201410255424121208940820791422778128303645524005003438457978699844876128461549556945956078399175893500409048980986095718048272701365082737135654653704710628512278703926698085340020068251541220702549058972002151671677673178254947879153133195948902060704846083903539652523273143574039361878407861869604042541986424745710499853682229405913915100517709692467633637064199253210920338078357856334752276132832710489795161677275515699480987333854010478393514693005741403867558924056666968555083772710534957807677861652224652812925522595560581606925616778397110578480690529937961674110741944746752988203509954924115608349837956679256932775502680702729988750964603623812105671913431246326548438984539570676249075244265420084265969276428860069112613204485195336614706284111418238755769929585613406320972127753389197011633078688257598361743311234372329209287484501746918349991902130250418851258927737407610473384876257171254021186483560402552836651265834181180237314339085136576869842357723073533355085553427638491580122872584669233252198394949505188098179688822658751775799350724847615498705615372256202421077460051769046123109670712905480508424291099708463857865169283984712449053215019610407425429691177325472334039084536449101820805471732332192758521877570817543045796255047114833485566649375565466093952139741298305064152999599354894756207513645563404810432767863489672571160510437557236881545387194646238845221078422504095092078004523729083983460947339362371541228581521221041875009467792124382764462114310375467885862362639497954804404078884855696923003522126291022485551046759356706807425657904796202580077692239302510013371379787794494672713052943246556522450416419541978901611856761450362582529275743568877075167570613402818788581326690618155459366686128649123701355800313638396055287472214575251397619302532517193229623133145415444401540382028852004679530572597241194757520727125681127302921824877958369842370718468290043056121554625939122742936834801236229167819666141053897276017054934501751239397276212925405568572703469099072313029513688839009381788604784290464756022479963362178679222312418989105080937803326775437660473588646708862293711192364439026848709266775690650143995215605098612397175140733057806450008958915918920544809229970952259863617063555370166510438943944638777153368131905663088850723819307924437207635780794123284902632943773040384861961548523081410540895544712797416198646598264314161007958302767115415896205499296505692978968757674282952499893451134819518105095586429971239561071012761009824340150785727043622750684797840690637580457291025551097506565001351743967479897860545335049074229472244480889172608874434725152592987736774407540918971492731152005515849656475478244202254908723332460393027952833846750525893321905538455471922895679993540825755101593523014618556046141672296957768307319985104498894744745224002456861567261029835047617306143956591957073728811250355595291701529957016215061794488938115471622576016061936224041976741007455352335570273062169174280522167058206633291759841958029998470876742062029534590908501714093976242872197723204948806632672996258572066111271721600145633475320339529770635102583302577222249102804032035115452499325176243339102994746118005274757441307018489821527367074971402268648785583238360652811056227376708955301547701689983519566825549364845448879529791457875456635262429093759593371903905462945407757474989517180161874875034189974646029134116858584146930365272271687431510381255515820352897519208282806661634539188764527840858778039714525396088176040252198189600387420427675190288627758833710223066607803759663586258878041316444928838614238087577185999058583037949411436839684513351812768916195934433983662104697295618422954553994367283128293598877647249407722987513630758639713662678027517702722577265712885871017565960697216726764674890112058301952688646277238661204072719029226934782891683751014017737133817335865221057328923748315666104700378351746929886522249243171831210409643038252663423684496797704336114289138204396283663253145809247834886807891140163324951695347762705356132385482179829116064083310052769458175824577927307383030490824604711250120146053385063806551189204988656938438289507139555003962437745046263903177039253337827858826804938772507338952054349783954735824111267426003800270305603412947226226267821251546321318923686079070979112364668610942333838058614643428435023010090088552538872079133226769206037001194419104185420249449240586620683841319936388795442625319508708914461554622812249090048699660440821208342680863429979447048192242493106762856645217155906196842747478038654047876516347874981120054697712158615341756823057554650862717012289086528182772500030167953901545855953388660156559802841129096926010829470517439748491807098579417264581954515579311966869166195078502086796701267837859646948805756728912826743330824032269246522488276727522442895614386086240145632453897698039358847151428396022191284567296105710479880208374427380095018219282238966303050995017840020390333508877852869969526866140713121436439585676993192384185340868478979442471906847589667816207181251213766075725487540039678500665343352080074139859970742891198011541863359833402443048463675190243017798360416261328248367443756793666235281499161562645402059877433725114637705405122524850334313597637082579703995089553745663569204786951476230337194935030823342833248179801609321748783925977911991707080582843289447014640835137065192363413211910544076342441044544528765297488480406510770085906790894273245309652524562708462546114155232563750836787682009379986231541388594848882425368380703482538759448899125148381218331672216088212310834039953606791325086870671161354407592431572963305879154609714406233143380594086006642237649737179218207694137931431401782728972580061115655961254968981024719248941644232569214922644413426116319313625069564812910024519627933030350007959689338020958794620630508782831187893979135443617846909546762434616234523011668762924575879124389107590199101083723130363987446285027463797088726601405605262947229646058205241598496943145071467909413517709216243684736592384139814295091648704473535239638292636306007554264485516689392982660156244624945390672603602789587335441308098110622468224261196081364912725604137583951805636557127716288952551770196739168392650226584109501251784906945700054149835285016295006030240398318092261471046899065241119688364679275089426489768971154643342345454007291992507322365281701538452146455360674838006340500914120174359998282332781690925349946627703888155164128857861289484568815659470268752255694354045601122686639766532028847509209633040729100963363607271340595049087354095524659511332830849771784526178107407318624470864890682996901526327822532556679165220832406586848879782953050459999754574225187140710115917214605475061805036914776229379701339069953872841518264984757660785121269134033371260182061664951103461946978582620539346320899487936495492833467390315808697947942851092377032075586474240412201356178789343214388621560596146401144003542332324171079617665495552746815341294938985315081580528462834716518574125073474488284620740970903230321143636996395875578219767691417664396572561506163719748382869063337683892397001261362742349784865472289458330209365012200336706468881765376001674882365692832913296187803041230276514444015615861488523558296119925799587470811933335644272306580926948468079563483241284289698653698799525783822196555410083698089007418134527193045821500758870892280750927791576781440741223686672401717980456574024757812641570607439035217982397053765976967146480425127944680309951715150122660211859110903576803134922981827685359713943360309149260853477518487757363526331389546000572512720255945304241780158874671819014355602181316565039434276530353246018872326125579560381886206414127421833988292880033058991657614998753053628770853557968003529726969573078741602151741163776647779996286285592444991767477643448389943727089403017256587078394470844234346741974718339104899831451429351567094604188391726407265677221005550639002884938285142966619377451141384112496799794226831632537149018022348060258248853755513387462889753863983993692446614051668257723941362961188218266903689680085217284669647903101817410370928637251997535063911767423429880782919985411147842298940042024025583411733297829798786792695031469222538953286060821038716039830412737163111837254471274005598383654400856274688603222996201391143468335403981628690904570684193585571446501185469354600944407405945616692178185020951093757101961545285930869335425128039303505927840372909226153407561066076823956888451808876000325368874173898773881489658800406921966905069325700827295339515069156354695802580114147080433471081127995456817119405713842625821682389198067196895951016734184776702727553184535672298110903118630203190850130100625680542282533303633835660140056474021290857251871173725120547647457934413132808488538451367041837007740759799616763618116837826998080605640264010102225643209267302264807679625845289518858997360566408185312014849030172898442042685934540926977850310725489170274399573767320904286067809838188530903118839072799847454592879812020219295386343603561595932828661080707982648596097737738753679226087463209658813127171267123649612382134712997001648661159969927355093777416133862803781405988820125038882423311027359648841442713308683882766317401039348988565473319720497164527946714097172243264106067741604336908521286986273121108496004879774288366110759350714084839995220252053839645533305106560596182580274531383871794627131130648216360268012651932584181525302834233844457201225510179352631197265965443589134605616329364567693350071227337275678877860150053584263290596385606358474533361287243255304994128924322503682839645387372154704879206061191798962644421566079580576352241186773364491666126810557228303110823515808164971941000370779751901220026581844821406959581345926471889487943867304731586284493614003739096823356977136218146269321633028749931493173645010660861857030829571722742936894106239096716015824259852792854350813163843046672369638701291257952516990700149123946425635286874962674034440449389521055959068690676967113016871814145281716706439814843626901141270386440059277127993467685441974896077977965100899414826119362762944795897015382643509726628847272461152288080857258838207044923641892543608438257630865324737535921310670953222647491550515245062242860351497797771242585258493795578128355837572120778485012630323491762169806921766295104769970805361207586328617366581986542270700134546914337362298817900607280961996289890470142074861543918211018627147948190789974582605064698230110614860270505266537427794175878497521649476457321856663935522454905315810616298677779800431483296700992028806194169719953363188045038672167743067494566042854881116063299388979528938103127105402079033945612900465806760708297175012920257240721928700616154778145795540902499061320076766723458243543422811836677417266956144482817390736957062047394070009036068453677285506263462378819369807142836557864995473725316576336962294671522270187544892078937529186164325805107870934247203761283938928134827075319500039413516240433827359198646902064535208205457348032133125069338358804729847889064074628649874917087831301549811437381040853591350068015122023084334544125658156188909516430204849926020051540225838745345017301794464947244984773027495705541855455742724902231058037218738513221319315719481606715019455675355359767636738889144714605183914565820764814191155473218703100424148526038314014612685485789043117471824600291324379832767658912135615604663080777334451332611835399298115079896317789562538804023190172152743131594297413659280235478469796150335723686496674291157980921000178511005670720695502255916981182512221828696165805366465868219597684288450679209833534731819177240064168592979114636664974609967288979480345790639153181802239730549853740301719364177768688175159464030507021366866799257336288679837713622992485511687115913108393013526506281992915724767156261374930646904156197700292639268008132484514677852523748299417750374650614727439386113256356053963996092900424491636705459629766186069973039062387947672335818199430136766629191067838709613558344099136400993308599431959455518548636100555978167239380499981316116598170727187827138942960661941881443191346130278652968379392013044688100790130251672364701083208108339264067848950648306177209625216622132560208808146896752991169136541009211257662378195655031198637974561073333864359494923874765305267217383276557024385702254359682552754162212328901925967368194062945706439858629707745252198938989956862099790146729705022559607835452477869901046141258810240138388406423362295718928654851558955222058867849856867876834799111379168473029548638429197189279200844790011452147376119295130319233872561002194689532216033620610897379251937270994508650545756057138333397778579366339815290442891616153077502441980567147767295587988255574261506137817803890227037975460017002199706697116094625105564689074467690762804887804217071356439758351922737439838928583409220977585990448668470449244129718381933861980881199951380531007086356977040948444004266458509368858412822404045072651099313343130316754309104467438184571403402493642010742787804281553850130747485279096940292146969097022264615246558451907221129231505148028222033344440061661304562936773774106757931989737224376523604824103146907246770991271344094477421201985667264859109029544139692068790001626233069937968707220345065711603851644778961580357209175964912762235790626599489986532197739847809221109987614372713759270898720275273528828844802493482228741021047039635763833212265919948451363438784930945413725367585334400738416136275960442065829479578877894011751329193912171767270117272382926351761160907801905464208142487442485954335969659559383362267192845943851518250919093763119558957290334830988527689847001845502409492013853196793144928966712427585825643906977002443173312375410005741037412533615356930193479595053394951028224652713075900493231352797937952222161969982991127910430470568469323951286366166652189520007285398158006245368520517274231678120622924985667075609338191802242765571635510932195538161766922582990058277222443790728968526423619251888155088850329126652872214393082201743605153614490060322287463281803129506176346819264214547932545848346737397048949002840108318999030714654762263080392266935869873985988200063441606278404557610091143610030750862650840886725737867118940052010753616809404636441406653784286643812366837581883167526219296413977922565208303653453725567728742215742904097967202738350103124666261997374570464733581798229242006478682327234020231705795385398027236826708410992905291422965703843985722446534116105449269738230157832869721841683768558296048862806838098235615476761325393300074814224474127939605856982670263471267874198655573299666293024898302262543433464609887135940551341555611189585420260739961770559202438279475094898053722744848724178375242834063517116389470371810801967837082725445115962965437607901541863959604639120659212881500532821628094782991081449931004122011442865688606959430151124823125508885945569064364724609862436196352486751614001521295317381553629036345526444872406432198329374513287937420975874652810145813678584356621932185825999246765074183699234621545652267493203529079423582341329118869030488811819155280778122784084986252146995506776719615763159552927024705573480016252564363871909070593289233544021110331896677619164031615813222360597796355287958651009016386280846639208766558509213926414937171649195087484270797681223861038216336415160279852554066355415448544824837488820096510223367756820832467433599651716285540821595100950901877791771360231584742950637981069865214213998962738719972329163958092558462426639289849454914788324324843847932835974277125860682023765454997251431109708578465491438800074156005255741970954097691324188493927321804080838440685305669230284483763040922596608599610554103600501952326462251566557391270166423367599402105524276876013522065643078976914133802766121419653782027248132861130798180814726997771999055828209828798619311998622735165495393985163392055539296968843556725854226467836205968315137743552718859080931132192971819666463368843598314675686734412910705919785913704466216119044313948878289059630149605630911442294206078413620535781184444315535585681837198271291937702961320972273820715249756312050029057040750374621941214407610596401232066958422332463061564566915637794601592791786152414363206700391800168045770644672654870852724630962865268002479975393609365492665144523932824989027308866003045461853351875010409502705739482928800808236931966399311125451261637194938088529271223027880754802883862753737332336025634863329529133368494130626547980633174816194061165774604275242538061493121587432986367891226908685494775706193763042311802589936229777078553694260980801678535553522714721391209299671784770180678002110650866883159580997553509648657969122527275896802784075758851009013528071100360251718208327802854290464579938932693440139778638826818211950527634336969960480291398468631674609415898616560550944022203306751600484597283336977755155719766086387503553302770400053032583188608743316479689127137663218145239792434382050190652902987323024865820292603878572704135108983091774231760058079845186625603411382935665822754287399172733672395650847336483432059538365280443587990800453980061378571099125669075006925096832452381999555986913214541681857146987061676104417080455357044591228019116053496742532250435955450385350439025352930776882017117656172601335587202558729928824137436528265637050410050539151156422038586218526536074110330047439586681979198175478303735109368816028342268573801518437708196571458552597801573403378960438984495314264650160337347616539079898130578867882303554807983073561073773140799381811384646234017451523171326627687508715263091168283562574668478605644652740876033855569703760790526950934550267007755617664478526211053264395885674957692063186960756680980050111677061260359010617346760679681251272468448436766879475432642988427186613477482094410144663699623866583192045516764853817536749360766270123850632638973955579890178418665422296588164261574997747255998484692783592510359943746221866322690494957574891524386457951863452331806199764591683506805802732300201062438791120196283733189749116642888210590830882333084028166632388722590751317713190106246186224358764683012510011963377121949767771162260206345625241890756178694803235827522045071891750097907938028545656524070760338408364011608232401975329381331568831521031076181512449139197149463521994662945770888023504918404986919818390505667801516876799316010227660950641124279927932932076526079968815411291128267163466166325697616304953474227410736558576509162522063967862125055147303717367210943928952855264507152858666568729028053157319089620241611580088649852187336746249935147581062467598687796988392493832031846616940168371340223588297738523070826461441187934255297032315850676876061918586838787248671169513665783628246597883677912061769248809451692285476597758138137602792748429683281324162745161832699307678089954030663192097352679289600229124663878908839843053777604441685075302370257080998808827570643093046125931587371723972776730604249768471132508556427734298341308236541025440307705498820893883167786608781224676365680803396475502121005057522570468925749492270204485588774871096004952774831193811196888393821282646060345784751998343829269713060853528124586052122854909758435607395118961272310210112454159015014596481483971927034124328635570304382916773475628167761660091120887368206339377872941890465447005830903110367859616327727642299910195985923126193055853824542708257412744510468918171544760389825941617437798748024723344801431245871777576667438404950349700269350588327013698092403010711962060908046593348351673906896871120534002849669952142574062609883167163706555015668000429102447177649088615287809250825432629812760647267331945235629955053230550317776559056761456118089674391236983785749470127939303640993944151050175752447167819540239066927638309544191796750929638684855651609939594041002824924657191147095551431891057747691447878660007063864018572990384685205026288178517063601074392761253577782264102580114754021158153502619003963142500218821105268187017528432325630198155162237710348093225789154142017737634919213283290336509355341515148728861088453745490888353337595801779576180119706258478338439341794995309181002125716536751896533179562754809448364628579948069528849597292415561130344966275701516269316309179210886050633050676187444335566301947282079274946698776300764329741228905664431061422821620841707159760308153246916802564775207589474062652104959474284794768519574043545390452438353429853517199305996628017139560677276283207552673614908914668485493782805749487165118971328214445643779787320557734298032780562572990463792210629335883040323292569162597632118512419299322582120889089352353142290981764750978785518430733229656160464198266610680205376338781292419327867127697485195931273984537269439156433727323718935674269776876778075752658596943248030815686632914494076719949581412772355876464178648646727536828883039396859446163042328867650057196390213848191522971334676379852627385217514787109838064256755844603617042886884981666496613309526075962888898049690618660442754359643742110859665597889051877301207551974484465309021087015804763301484792108349838288380902933841026714124049531622465127802972970237383312578761092846997254412195551600642953159698827761525760681798836739978293951475394064724808870538449114434624235273392068829487225007101783733526388764998813643141250266587874574083242054254691482285323430918804251178451759335192545676998692052499998780130565456429193137416105396523018362913996665759449232799782736227831937720210336209804339057658743015852353747300455551192252293480658783827752915366942898633213857487493779097154711505274425658572739590603686182034869230543688302150608119899888028603185567344612207107464562312798575238699533071375757637694274925632517782872155820232490675949309915470800428255095756929748374323727513874326152233173655922588295145616331143047705498697300071714166048784702290165177499977427875228990647324230495881222102468624593651564844878926199222025033739209428764637612355641442162445246829946536184891322384042654725247972436318086236816654342961525059412183748359210681548216040185446256589775571923485508275638641944373292307936078098161966333035833091855003396822865652193041622613847466102467684567407140155045703320669569622425913738662719986802076342295727951783822480501475164617927424619137816473005312226437586080767795502653676653696464169358427755594602403898108541931557876479271186820191638381727384778663649192931757988525093675912577459510629329707028746636028948720853260812402471926710375169995553607935927939479856023168387737782683557511989147533265126445842698776926627802876772784110119257947388022158222977713179115484609800227842314792538382043244582327129663861324728321515597338629659799298945037604250442607039525401663095977842388217381326925179252423741677026701645192285943513172480205758168783801370351506101961682722621242352790548281140353053697940278972397905934141580915529084626325093928626890229003867780155109731985698544488275646530859350695340679878501519173437154064086744607756699142459307138832195413596739004266358336552678742714664884096211748895744666555481508967272870148421042261790800181367251126129161363105156875456372954671561444748846441880386202294800375244150280825085194165753759246612165048072524188017803210031242969623588283252396117131940694391294766826862100549086054899341111043005726000607969820231070086558426398641480353892635906210140350159650997230322225196165706182531474464644187220874258278993193667959785306387071408288952789247432187153728898168394097285136264244858227877035920822360957661413266320774041816194198695181973051488681702085287463856721469742079548060216903845663134911687158489994149695828802535754032199868720173043029912213703041229556983665453269572327047806770619915788085339590551346177229341049651631203000005186495245482251057789333547619917538841354523066766934805422416402876422283921429002370648884976711442049345062893271701176279847118613795362582539843525731814936761532930655233249355320839294193716351043137198965106182152454512832995732330980163347162426824237110541059311585922641646303940333194966523571930499234268710693341516676531938292105861530210375065610545799741036635897703843350033517006653359460276228922789229988065673250706415543575504055713267189661254896582595147457666761990179626913197201117473590609766035791641402947789847815121167327642363683269487525343540154866177619587162764925924302999242800964035257205745584810831727937637977573806169805124462386577033132239181229779633408713363065712046269116700689517613977380855726375968369965493753109106662782685584132719096300744312486921295707298932248369310250494932524885428204653575012170615202196693978150394267917419180222713432489483231763246706571183953361020668736272090325597236050205734546622141904640182765610937836753095515193929079991732781414968263813426060456500880524422787413416550771784852877079863509606333189230035492679887922852446978307189180473950569023964854127481354429682120401889628217270045735032524234941545086023860331755654757903934187304817155585748591717476822651138162282659680639330028723162483098092947866791651077436152942720870325919821080994043948246307790120878464250476154119935012276861324817927844402249365025865694823138480642834518903670824266226092775577224064524623728912796814847014640993145470357302625475369948934949409455324100131128278002490914319417774819632509099506574621149442386746304434138469916896366211260292179651917648319287449756973876245842615183886725440016385722774176774708919406814805989237561243974413442045582956971116341369430745689216713231093988817840038175371641557008274356630480968652617647756205369979139062239356443868224869408849632688055435993141800937521810847523410936428514249376825972417930863738626022109295532901976750156603108865100492286823129237915111694135985252625774134861200113519669100220870823262825875543259039821877109916476071045479636850056940999357217146122476160643936680471791984512551381600090387931484066469839988904480477071807606207227076030533816931224263374985951143985922526073280328213674654647291899998205403522772276889858303436417130584974431842220130970676634940884627151396132197964601202900585648738255705903689296479356600022012500355967647205063475080106284378784025429446635806249117735127153049000895196536761642980272656815780151087327274163128250805688842273224182722898334353233430891791228917917699052207024190616799771883068862977002019355951140169083391921067305576246608213451204073729804496495347735036318171252793853031007952353032307110123425271435882921577967636810470844095536693051759485163347109883261226931336991314172777616529340151818453492329826761637300633186323622568097989416106018121215605324126304321987703236655434511006225126948317767304762355846364276194292275052842639468291843519444879629703466623761303667077029764427045121332414070982439348243375394358073405040447444607434485319881762817161261442309593264707756991522673712738247738590472998918427397612940728172333690936590824906306229157705393641947701826356388328510467001638475409069113996206486983184903986910406524781227748536285220307850454683741831690861752144628493081219887592343552224053378572135307440634064185579144447962684369639385767614826615757591685192992929601189750585692712580188972157771281252309152251584611206310985613801835776805916424273269450004745204869777539085648500786439796400630954993015023126060927403303746069523073497812414752452156829313748410665710939265394291244937300356437953022243152332516348951710821416694166771996146566313995335630250808168406482009656309266251179954290238964227276339429728264291395264208447081679401534936407847171089000441426923654726405727551276249305325136621421754870932472538107262160382351670835923466970623250178889715702741229417291861882347899882025215561974826092928605121701152547799672219504152461451601144832690310822491899467945985247000945818220674662945563759403615813555987014125232337154035735036974606814893490537698854083176460614725554298866987520002783778362163251363152842953935401856429936652744442899536161845709887125240286026036864448011825570112265461114533301622284318986095986117371891948137966841889228615586956068450256069738380761272590535797922697342523071897410556985708441959478421192019781109856475070121384323194060813467672436533123480108823677382739543959053559549015760149501845253294191968641871947689532741156596626299831993564408100009771448181854656990573016915168974091291739060233065785658699722643990626559010628589449820160431699060741034331752911304452305949325090966201932331531061390204164904983243790206093822064301385908925780759048195508751177085248556179127432916120200882977961682923758174930416324839588591800537094012449731838439052186100980748631631657843521983975577587963226746948550664057728086618709059087318710837324463510651376831100313976790311038430084316052525701809768015846428911319721077749634548975728907001150858509677085776747816990105668646078726066801194002591218831504467578976153765009809077464125414732965057546469695309832506010177132621675170519760955014533951395451857545640771928483552535894258491176151640202654198132311886797444798633075495810909350437744751598339163636720923462755947508521971844403034874829580912392004885425302382988092074219271389866082839613874531359043183420541098314204789701752213047540716922186621248327046970164746500614914707538256603672947660565999496185320395668670000221115147276337974505774958212876650933422472566535315486621668221406491301348195536093498467951916922203378108525196097114004042732824830351848655642628699836024122954485880151786783580880159044854353621127269018070924780227548233272325257947556576386922619177887927114326807891620846670328201099922615692489121317936769775945845847671522067496741235616885350175008710660208288022075375904156248334041928346894109620816418747723419955992952715865564900050786026669207116249365696256219866184814959311931446017335694141164587222789483502328511721028938518845820216026924346904062466424365153704298338592311527354340272046715566679583502791725502020693674972699151853810720289294568584167366911925141212678846469271639993884793308562386827037324362758390568624332976445297591651811928625934243857011702614125626186773779083114345370899246737460380392215847900812216728252361350652456055698409419175646094544269060154196793674592091381241874388946234710294903990782848258696421735310575736008264205917700327459113261506569493946311905308363868833982830629714396857311911609509050171313906418130306704097048700299634377307861915752173738200965557413637141634100943608890950474337955060183904119547851394081271876076926706911008496123564138399184014002448265839503785698068262762665626346217213703248110781557803511350759753329939797577429958766939328960208240746494636654075080521820464794047006892550888482301594801712194153483258886129486934407681419163451807727126134418034450557983156800752147020935830994905933657979444332087541955980792109047265805155383941653476611234103498336757379797080814387169053654384985400759411579922323926914984636054501710796001983112738292176189925834660277338320802345637560765996774329280696063444051693116536610073498693982988996490871162628736286754822178518335021299078401161063651076031893134845219960328767832400116492858143125963008241546089427215548932996442820833342481452837745035341742586281015064151848106092617757804417009103773655845120056032184121183536359523144628174886169103445364960941072012016807751285174682923982869347121408450308246203183140917518917833624734586055051894069355988846514230116641801080372001838155779557221817538321159551060458817349484268543688539592172101190842689502396440989862580324306588881144778642220776443931683574324702182017249932466835427240456608911734410883023916009624863163071779005626162757915069732578776325722281692942676398201931056592075812441343610345161403996826321603763610761611842582105600255813723624400896121049304648461030639461922117002205007849315071451242250656810501686481086637500761553352786373395917014009011021358554415645609021419003193216029362669507048587940414103505909540679183495708009442350221917468731854365592374446412319827531791529188846179645922883787988380899210739814373449534547718720985902247609942759348919307584915268394960370328214285447206866126252022757253327058060595317874083608114601431417582190699906850567742875518988809334186721639952076919019873612059388065544513514736512640254665054948365392553903418639971808099742348723750536506052985652835575060916383649856326830417993534754598616285369030048478343966908021337867882756074254780214563139865861255144804843700452882255313751098000710980165428890234895460226147066028032913973098107426622944315272083506936863491164331183246526134118032723723201681359812066510871436225934089774507568441553564218172287722064410859449566035438991219205253521284852638143010899162342187533447535215269193054298019652424440847116346000077851976890884412763706494066161178361361792871686229049277354658931252375447944282722277509158255821068443033720497781370775468358180962407989710847647097339524184387831394603523521846538338233504003900915674149479114761089464036751217420189214821551206657850261444993409698111010022066236036572131977291774078385710801901465817275536499122460184973488397979405372179372103166904291195106757217870755584390133143881786668416032088401544208689847796424989608309822222682113620363772659131090109482735341203196770589618021329537981746058130288677771214918087642063519376481030213160326124522255751015762427829524578252834058054678169247129247874636683500971483586157399485196818315538314465545348665235952987496514696904029925537683058691294208036364764287026151300272935054513540478664303411343909604308285701669860031200048211219268753745339415107403919378765293474514576944395202034071910218152275427225215583056223503279823307465574614039321934762188981235528202214184380150180958276215524736109515374188648157651041996723439774563808734024460418360823033046756845309204231129549459748690906785985001618953466622354375349149960312418010217413644387286829231156286212325755272533979200374659453776251777139651626701217515064517619790225210438340904811578603809134282033914184690720545782101909474467735695720158459867036896044869422570977270863348388706785601374079368518405760143122132481839010525673985646662716493501411459274555769093053309413951115669743546770878015342541849950238156538453167067158265490750058811553251237910544047713860918534402618596947029974414884996579030840684017650424320495886729224113643685932924822407023388543460965526645216811641927011316961985769708367405152087201317249481409120489681760507918619684161376186255437685462090845007899975810224603531891582080721612034790111999746128084414670495414837622163562556376939411276010159325609365709914181992824695195527802247217315333490909014364917903734237292123241485775628467857139056302667948047436934437678388336663570224799123063394896270512761450178107758400446069422366030141623752745729717721651843980522870699063190785604691647290119010117294946451430557611915180916221982803394770821592557804749440874586214030037797896483373685854692702672060704011507273328148233153379606781678891900993447583759882161180297971415931592103486810074251516266831163984897214011244852481645218020795789387650490507628328554023247497282458608900846219515231846728688368694621744602112657798704667788498044199268005189295038407285953207708430758175819981167391302815545828850843162856498642340604025220930902744312098437908910612479834469913370145633938578751871235409051366261008720717761210524988162152329583764847909230348430421180131530447700237742173488247601630428343186700214526487795082452431928599878965872384902422815264284224449370047408535734548134120276187061417368549899847553607911416155468559356626601818861572792781703118718268584790012684052309674632995355389151449599743315143926469766258677527472370296530422011684238627116427345576870946411141214954164249695489060686750957744934704507922200458785725176689130592174616610364680869557387731967255112462735575445361819861355647232917746116478086097459788382531127809936622732963655447209503237181553538062200707658673509087248210089716066347547003630239922946942505102691255353941360612485419357857555225269838020590408641609411864834980005402825080150001632254359342956852462735867610941768082247736800518009355988915600450612447138150393886647883203924709969779965426638358813505280030356119516048840218012256568107350107857831259770362639682129724438942534213872015975558535780898012748769012337842549045507442168524848975463586373412461130307194004080981599425769787617970842499567026604474944823035995369909695937187258233307253429202422800262153257753408227946938868174031347026519436929999135582588937233783676004496418652982489374118075237705676061969808537622063190099075782091359628370310746145069597148794127601169119530748710671584028767457831333179118873839498229691131325553443857490092313438614856544064217932175589371776388535679361678176641585459658104459709453156153787546074505921200471617155049579045816919104689140457470029892142218950141190116439980706049246529153771974280421325115806818339714521061844715952720754610692175748710139350673432296125661139703041209740229338157769092623847934472682974927924305648468846942368138566039009643955394046721700985224497099088674508345384970989015980302049427405075323785698781033525878551102902586988176896775858902087021461491548489854220302882791508904737738967561335731758641820987881775974153066074726148547343390583132066855441749389686855324531908415283213518457319104161751301852042880186444861463804499154689311649790981196297578214927114580731424340654596687067211281447610230874916332129921631081863955113691652593310222940971516096696876229721543238342599300486621698735863155387493948674270438708733351142775834240767301953380427441314419928035279983222259515536123456063936722077662433038490407237408712525468518052034744061502597119806664162344278202467242410063733966566513490445604439098661896396160749427910163403628081328067237813790893353059950792390090680233268720816996295128547933819214017166344168466264829529091034553194719041954722678145801047969897019499909519056422116067072277663922108436359357316302264994783261194097585707804938970949812145097412169031755948268313862299632563424690192990530538365541603778010007423475832195211487304249797666746364699304962142199067319279049489762872580309050390926070277462491831512496243044120690545926944319842274386753092013222856687226025674941151798784383852869285932161796413723376011724891405684722325888218721622267794786255939434707233831295765349536348786002617957696713143182551794218681746065026845308414171094049633339479518342102333661386215740776579664993524445486950091638383226465057362128073708772826796678775190373379201277565720210660312546523414546883836430060938807288557686661727069250348928663007713381449134420090210393751941132855783140923951343483285929302529478705070558965269585150320599592700184646378461248242646051151515021404047816082251801023498720107439981374772985069349548146878988355080508048149148728322881052192468632510208889788135933212042817136209355246213372475298131027352685048507469675768618913193827980106164783529337711570859691604885761316817049188167249840980957062892766370751516047166931517605175212507085240566232300642806062705745049146754426180748352805677732437395043647254470174347847407334977357794949014292849790606663246970126290328649220373439776090391405852227018137379553758044813122339758196336177223793704393996811033037011837186725636960972714603679228919453769993990588821818955080520918034420383965728902531476770272034247553325282262712314127468476253984525699774399896972753247618327575411197106416933461511454156969479166727529173840945162788672065176217367650788242686351836436679066445342937140541492581991833452812921218999874076780139405671352585771061606565901406928164451675941215751085916228192848815152832964299661379766510210550456477458943751468255955374873062601359918345436379354501269566119549993210965912474917057061966391793664756409764354022101100506050033544616091963485555232749842569223435250982013257432529430634268369957798724833945756174155196150481374677423022023449691176932345867752996544149882381920029421607437199532764794339429489302267533607927228653536956706414194848794267026997813383187317259741874841188539389387753271475720078086609668762875728232980194449774529607594841265773419442001774878347630860343789685984136111023544194687633952438419889040670900041149874383710164359440009185692564981454992953868629544151406402011133917824267369791444534943143414218352084279567026828791512388661320090260544431816043388295470105392417730852681337942435382192450212945073199115935819440990360290146943975225229748474107897005639152795456730251062100767030986218071350385234397653406291311359315428395652658210541835379639272449325007379034583246790237512397286373725543172688051579627266114611249688356387886758346722535397796946554208221758011568702319619159954207700317616608497704783245337385469084750817111514421827375975858887948972955778148814966693751191102397510269966805495581553807874863902417279148523897597728903800563807548429397000569264904664506382102608184689910311288832468306465578908784350569130324891439904093314176288012209632494502243782472458054539927516660806715598081054614167794202944478218378460401783523893870247001977436369631899281292039322406460745358465004226513575145155701496651708210721840831452643776861389972771248819650528962609022137954978345243889256474265214347690799476739555714879780109328238575722350211515581269692785429949535945404829483390612162011010747274906095731060882351493923840915673557542934564259958746109706196385392731795480356438693980493599309578827153411870636410640218786853694824706681696869039016619250674419736418662245395501978463513472134358580319962354950074096040669667605656557072068575442301916122647133427355329552591926664450354853248389441623608646723706308018388087934113605463986827975874988709052423798740712133028813099582329535182238588326124984924444542391151510649563900902154759137948561210314024724868363768478084025686199790249689415172647255251702859395431194369261975261583341137527665729992011672912519484052320483311202534677753551495841336766502603627878721426910470748174390821948404665489206783126875717475107683953739280550994160202114315400834165583395750567101297547773874366074080075606168224587898858993563126246371122552662049132652771585735057348372742130182646947938383487370492540138745673245731620644197908829106678778917256375677469654657485085071915663908672952071900860264064624435380715459585151410878579755515404949006529177041674854672242601835640289810091059678072387767668523674791337531494048488889184226027537484600081308477694939885068985659502570321146212921608395948896753474561937020318713782817916710600158139067417575265365707760878984540869031732300486591555844995749526335480700042641655667849442682401125803802207075223713284331408881186323239900107667088371272912589834533600858623969237370744313044649534837784916419654041709424388285578979295147436962891994482748384629199014967868318160563630007442094192265065706276845448081333379261157862522133215505484449029939218649194904881906735665658159498140133562790718611313258044800185912361578785740358183849478379030352209745063319364472411247260463651645522682403492962894031668093148635277260986442190457410028443357044404270464348308367529504012577873856399122933642176292790406166240622360306057960498823006280356201579127940930513895022979873882684399582637298043063791761740101356809500072053762653946175738691822242652808448059626516829512248362895153760421172503641715831769202666810753751488197189495521824877674737131104963373900477458654963305724897273181270726726745784490682018759467122640316419457032709595597753399337068955082029988879738592572233956948866540832599294535568611511937127698319983386479608823893634297186198643510597312221381563256357478025361959323820856334157880354174619121872817013368423143165416926673608450101229962516164492688305607508417488567838408463674870435087834123277430783379459325392481342772623941512402904347179470370300291239410151327327038871367197050730617783804067436477486907489664357512108392557018922873711653008453503926922936865552372317514804759037791748382037118312600585298043061502069809279236773796492148235886980262247754847927082687129930960446408802955880280498324813969800702780260555295137959099523318993214012379405779480350401005391646536266086375228096994697527972432006269758880054414235841431351394491414642902355798879564714572847262822532287520149359435678343174617693322361334892868865512111999976044420244986104342430359786119113988214260219242911155350937724666179161207208792661123288408344040870814448735039078360489775516785816960984523791412710133878987760969838216649550899252948917373819769220884006739193795320396535423998214111275503060677753591217676326388113585594784577304698059997949211750839132337204053164291363853186959062331187133387064805692669177529651957803995957843646756198357156587524486363902599747250109246656908120550237491717267103116283864527033915218336371740059624391515463877989493350517831822083838125809583180620279023154638752025776005310336481460709790365902298970049539659437599312749102739216780593698362391266499444821979164726084491855138277486357285065309336612290011950413301554278227079344433632327660144350757992982198821610468087792939431558460003191067749351474062930620653732833331213193001208891575507030961218502740072830129813269008783028414559315726623950442444895223601207119530282595027985709426104407536049001563298881831111609572768336462674779140050246736347295268986819831397209153763630832360702397855394962536038496959687158178545923863621548559260456554781185021319616856290948649346384042764461313802776722736880406394025002908348313506434852782740507738621859928845620114206204523935456916235663792289755696159677996824441819548078679738336302588674096753570741968534855448730396509365366075715877330753863306121511102290333786098243106336935943069277121305116293552511682585576350719002102673956979075977038903313249341583183243103932113057725023136019411193251928441040774138326788363510724421516846286461640420596801144271738673131867021645778622701486570020337490469217149145883429865806633942603649299558030588943303074964045151440338786787546746209383204699946371389386009486692687516938461580261616267900541848497983809344675220353989900452008824581993400043932930134348350793617877226404260898465863223314130398810922340408551503699542494449567689500063432945465078831742750871736534148902415497517108395339696068911483857662525635890639279616672078067626781293692033821473697207766070725974598724338253520775243290574213116913852869511025968932376001532670437607898522217589830305366017128695895731520608639479428919555409548446996510964102648345567893904513594605063038469718709319743712413041482159023641806495809092676590225189645487045150182283022237522265784131197460476002986479972662030530940300109891356487517094854007509211821262815336267283124570072282622317440201355685004118566228216888577234184425924018759752730919600475704775634591100681833105625513170062466597417795368442244054596685794357509765679725788073858811342600783346068270602516353387107541567391101269231162014517144733046584609580555030622355932912765671052746678232615951527997719849308309534833994809051446806459294360814125963474321232232746615103446123295736011324519978114212322092016670883610405539265001064785057132893822665229207158797977931122343121318475803671757861116902454115263657628178361763497001088515486990476532036983845122871636952691379970858578547934957256467264892291154414857120767324690366874221424609643709597052705729114432702206491425334043892834183356673584666037173056982995475693974300945861793033278842359422239685471625853785946723963182477211812988066525429315226303223087983811785976076375823368876701643321122515726086770040086305747734896246955268775668060783029586047325256065260608981199637366381153437360464915210827348169995679053460510719890301013646028962967736717759322740831533527719281451870641546287589762246790796774542500364120372640775770309576346466157648023692574383900672989507630102208572149698574925584988120962149251331289828596065463242457369487575144704001421452948920508892006552185581664724593286076051348172578002077462630661197460550054259707776227570744897854905317600858889556029553468835053755498746583244515877219217752607452927139984239262756062485485006113279116785535835912488616404713025693047966590382119880569181027346503011036553840606349568960052133346902780858582740277632768740506539801087463960139278644512581782152025369930340441675255528050505045629554338055888094170479540963956144890860268532963586876982310762034479733519016991893003724703760863098777112628217441644315597601951506210534597907789505828609936237519072579770561079385232228308119282786687260121400506957315343535242722327626985648143680739220514947994880751086704500941282249205710038203386822189501567157395982404877708317916842747353958031800470993745721821324509609290351178035557530683435382511495314753109312402407887588660924858802120952476098126807343521052048534956765791946799970645870923607225073878666961689652102156604751012488505462841261665842476469156896724674190122696828395510330948256639514810915126842456605268650873628991536140749236476726563416316818562234646541566703341121166361767942777905347831053182663277459729777354427641759560891053750883312787750435456756010377837294647103137553250000782777638621766135672258218119839739044340792114839636841915393224137737575800668165073195433576171192368851793905066945082297555310129660365702492102676436960206398140973313175850774314289388460273521515077443801588418872662417985514264523086990061446634032496334857245601874861324200557085254085127720471419930701718607433175458551734402674511539867109743464167938342038946254896502625597198467433066303260719028944369861186316127149362320977221924106047499151920314990022810714785331860984003817551138506660636697173059160806398554229133373794933454571929303507240489006589735567062117631550046139489269091277858909726724381611848810850038572687083850085949363245330539756780375808492813969016443577701503091566987839437982067986147881931311203780798286702419102994810048804823204084921759228146132381190624245988417766370080696048255388891442540500479544275429931049478700343198018027619456308357381500466340762914188278573657574718456359162362671508853578358425699546756430351405503846244506550365000989582604536975207584429408618250504767927572420937639430068946273274311666901839761362058467067348266872609875702223264328926041526011801744722722854483040507522602339187772590618746367908478300253620044394764388247670424731602925776845549793340902379127818266076412553738463397580444190841184700279035415148954511809299646387591766955981264125963882663136783815429922143802002928147203833266025804051592852529663665454407908169526776340563409081308020051318465820833211212462188209306896648475789661710708293525490803626166908109535305214586052529505455985334383219969734896303189924577949359343275364400768992433024531354430094323866773708118476018578461806442493865462414393637296441869374616707263014449636407788255989561725612892971448396721940794517908431328886483137338102171669549285262546982579416579758297276534267969527725631218338626014219444824062620622960757068698383001483275140611961042754227826480314657823108468789438877151096797225401569770843930466893750624305258149471892031135950094384367493243448850842547204475691737244034870390937596270003123661359211531869299202337027198033396043680117056878459519536085263565005548793979581026877614537242011397655798493786699054369106754707096171438829785944673624795090965490218508093944653728930723922303064674756190023300053678116457088684645295718334253498109209219282543882065067501044073778253058706985036674779959310448637806052572653509489128073660272264531640366629675134850858204173255000199867394118382732591228880211952902910253182028162588188447566447848754156949712624829049689823437956188346806561024669773636866120076157582298872570650514128091201171814367523695917891642331593734728935444661352155172627878121548578829069455696506119155447661812093526906657385847012671390006432749394305595711215200378024803534878137524819402101278107412098011648035162058206644434868592205130486692742840850400093752774037239498170672723745998082363608188997617698678758508951805862833458335586088056457646601148083824521974733610209462590159023546205559105674267726495581192491895139217332441062993304895158106160808027288992897589795262471758012530417338136056512859381798065851572325349261807690053836254170767337934453713602056112689815862788354298993176870360878310305742889354325210386883296879687627327513402627284392709078835440335368631716665839528186695109211917200309841804997042978268476784004028696562796349126208762337046881141023621287575526601567057548296344615617696205776059837495971716525622715416339698747494519074067462550682390655762217640644089348752431897787634698687850068556837562578900135506269804859803007620826434842852051997445944724165499108718924802867811364931833201443834149311632510031074791341202655641071341645919837916464904419932860942823256785507702620255103785501136069809610882758705599388390762820067547136492022140634389840933765200624874861296502765621666034608514618248191157822147043638806969881941754465061453044929675087644445226649259501113329483807941204645259923760729736253432279665778727592652961020622827222313845576099238080409327263155261070157837446606124738264187618896554335618247503082217881908312899296790388136988857633780700973833180421020921962890795235952204891221545887695867618536576646080503276793791656234589009805913053394157097222503727789853161816790494092133355538645164374956210969480448003541655094380295797797374850863842343307790413048983763999083480837492117083975896992716142172971640451441230972109162744721030707272863750478929248628338213018077831470649118181230965400805684688669719699069127357737972391882580957176197542066499608004770802860522072322459296104654539347204339067911657863228492498029781877357921130287092127748481080213653440756474677124177731831953269654739307142225110292141034893830628039492594534251528553098675294649015741664437843240436870269125303758328769266260324335211694555826059002484367007725205720131416464953051336787313581135615545422847898946120630579414242802336928398032207213362620038744270023047026039406027569573210295864043296521325453668728443997986326826151540013261355865913880901763118914439550200189550951355521817864566399275804651294450397090239546936979608292124119479706089888265414046428941273778895734545449394364569780624308867413651661318697714184086696237631687506881150943480338190103915482096999706771135458461126971734484412135891067436839680192471353244119289612112238436556649717915704371288528110025945665672776961157137591373362163517227908445430647530907420436164222272990395812234623915427278953167997233425830068154888657616097713832570858833455163243838191255141328328885403923528834985568248045361949862911018350156519183121087814177315896732659066250509279048210879729071046255694127320262387312297766464001711335216763895885739170399284529403675535568840644037517085636309460182761404293009524374964711347477836635638262041778845145225701021275451058682146403138472812191750664214436132436995902227628232465256560263171903701359226321872866604498217296444352902532695290298054607884252784681800907924442158923809593627326324458918973324158020810142827564790015654204818904660399468889519351063742094242312620746062945387182428881479498819749421716025383580316691903087231466436904695569909004466924138997950758222679302596105396552617814833622954474441016947260956449081453470621050450727168210835429061926828683348375635513628655401681958981524383376886794336905297529978975331203435530419596995614598678462775228493672415631882410754147215204399546842856507942031416715962150271774092532997415560796657861862517906049644553465595893477729115186133249499501424172430689816256053094700970026661531319765817368978315041440638530864144794544803372573758682998681964361107490973202092727054912939623116477796709126320289804485167728148762699013461112551954725373901861558866550625786036867502798785421515483040187332456839380475218823854341972833557142618733812149763802543111307339751359543828988318105736385057177029972640795279470139238352139833509948661156862721238428118711453384529745023323221356153191223074008087128808462730238301220501039479658324489831870635055708339224615958377500709348553258563916587803084046459210980071306825257130855190089049282066505583959229270402246801712405987498075420141668752875959930655422887578859476544495272407505788205685597038566301549828192198972550599198801896881101451558770545340658386205071485233185758009703162605159669249931897191456209903487154079451910910351266644767761973742487377308340984991706107571265629508966115318494378330322558899800237604247141778222774571300022043233220722410434433265976760474856682136026678283363228329415391546399765155945967775467569354014143757589372129535795956090825426883828898797407270658463217721429759216076296260741706300694850515012294831431476224419006849532274645209775481647941827963746760662618276558217139808327543959107485430323956230713975054915747402296061860722427036662404725987939543295828559336602558784551535920653923817663483233261164743634231620833618508290070700916825228108810328163965044943875003587549540795736511057605804887804657039175611726125268445578488783211433382973854006273176641893493721449203481435571297447579592051127909916915050547362056172355083321655361958435140903966041261169960697128545909303568953202861759466741729775968382847647459147051332887551046644314219882371454254708920952203414614319834028007388862488530627403371062514193026374650250204384525831367461269479841222907071981717834811538100503352684202451489806713114430843680107143857209740167151233420959291511222900308229201326209392866443031880530195673950548935181244134461020587919530488860535486707609207961948271337587132686312132155117788221759296126510871034558083805172574986270224791067796176295619551689756691578887560984708467345247551015555705979297289293940550783175125672910965261240290553947239827405461292117228386975966368655825731064410867197996902217087543045033080081049385651456519999877531731015940077040703740286707006728680016505652153555091062631692331852871866779998160610837454885463027420489168585445441878703985293249867289098035586643494013865580494259417230881754139947833070294925755294360297645194071318551185736269636240956190509831961635862417313543636611813078788598581523511823921834852932234660058265983450712197805098239252233579745294111219962986798046209663204311731589329921433327474372815618469772442635270902450653947094863727893642117807874407300789752455080360636175735102983016624781244724246207740273250764182427096369464906263082062770633882480672343211205597775084535760489831247679844521775807969486014893311137548593242797224200451542421587522203877697610140252768279978232470244963100495873074398448813291191515972625738811774187641704012277960784098591564789329674878297754877212852179752388210815618804397126857675770591558649123378331720029445232844014503503475809015993945756512171500085318529926097312855215086534758074763265284657100589389401690432202492137943387791188789252771955958328002796371200263299192712027460069642459691599196466741784655697611648647374883549555905656800768858509858474881954256632891888882694108679674638136809869041430678167578252156459055817420048017017144025368056517614393634277612334985156764023746073746508625497512254142981140925165529147447151429959495567841394405804061984927624796713634578093219176942137694482141281605248217661632622012961760461685766667146557255629171946458287898734713225948067997144489464933886181298232488762450806539653959830385744369219681385069406900387772999282856610319168330541631370705363942108839932877810669949664971457185068692786114535736805048586437272992464062032707739667567625107919219913964487360710177717610370071352356412848550408431162062144706233224591460117083000254448077036106986666262362834391285552295711835850858910199410254641330314542375133779481038793376143330533604315470370082767392068476861791671963266977074894417569274600875349889570069515168977358363460065598649589454324955507458303536971332443979336703899687126644278116115677116950658730703484529739157197071041443819918304749660073550350167670345807058279800660403160664119123393014798081471482586703546839875336652911652623635944611220620008099608713560014345756711716236237502853393001349863402644252833592813248871717539719659142345183345592728801070237840035597478204696345391679320426452525482712415653548651046492178486832635466366641372911211170147999214387637713822466862891671568764846708869791931454585220894588160193089712072539144039200029291549410208470433924019523452468817705098962396163674826771243883299750128603227919266820867524115962647911039009889276523738396216656957205963778053564591274829910141595767629558555892352259802580872787745099664570469737662231478876339820437447100217994779351864396587685380707452553151125343871541757544964475877482289850088916555535526450790417733720863435323680574549592704938793283050939391783033181716607295926494248738165853095503010197185225189962074347638357057373720679349251623016526856696858812385023382805269419832951840840832009258286457111692678336557217784623592084132147220933424302066939009846094071163134145465633598154770943248416737723933497489069322426809853918857834614237068252040242791322477705532429819904297818926042213081009620125741461370198534027019483320210756449789643303328733913243760425238976811092638557092751754606148006968602926252989621868010941896532079537695787735244331388755446306860646361416289432368017648094724743948424042178500281522112497423462975751944946627689935239449861450838476044569600776137598931705503212497979785625935988306539901634458791077149284628376934202608069520894277783781865874966404180808931845445442392033593005601541666931024520926005453174257009667674742843182755045657708896816582407111453968162815481614568156673832595525888622291344435390864435339221619845515523307236004205200798115479642275644099476341640851675801663669960706249215150876008530963345093261467931197219653163621088425232177504406586035374944956132692107371352307145945166485771266743131789608432498270723841142380684398323190519521630099148276845465455152693780987847112658982126555339735496983455765747710246707323651322839513635633847856943717343138169128539321036313190412634443533496118121904353319056932558263813231340204232045449308319113965610284225204959452854259574497613725764750304189466001489893616938714686553180964287083539973962140744375044619414710605674240584517276171492885850801833186244281135446882268832443659483534244826981424128028778453859014295520005538445695529398605527442452885779649708687579368203257475776578722241012909631834291642127590820347039880058834002797141017079481580394644739494305699740679063196688346965403953152498819320795859274137778979376824275996830760621448800070820100393123210802869336444958101742228621876952700228526389235551340339246509205938907784887678186694779298961612566635893470592251980855099016883389361617827616775303492692447580247565581264927508571395096990787666779247045482153308008465071420373582541662650524008593569084413673936315185443643814016474901396235973606397347028226180965906509309603316597042408601093490001398524622341120575970872295088648305129547510494551251599586841394432324053530018718422784745137221165914470003950070764135138421183311284086687388938575719582361608041757992562740709506790067583018652984175273909564869570953124827148783029049927293145109797101896429144708705361930905432640079533823581078277833232250953573346779084530506851052364398888379171251707811656710339840580447657776817925116238552008975443799275778297816569857469587058412040532488252196859838662883238587737182517741437656253465428806869290571405449698117210255637690197730586628298096187589583399644788352844211813116132504609194280456943163379436275447640994409618876077858509067537797514320566927138240150559744337425404927414995490822206003044125050682708157163538047497302506446490035909427120667979285846023832294589863269203933829617668223064413740498531669961410303526864931670513948856716831045742952122070982692340805302705168887894331533995674128503185995807372283392196220591747687344092309069590067205180775774741757759973475041140667664616596431583238895502337995773398702619735925542126385882567014022353469821164418323377849756572348767417812237552319066210590790537106473259774755705986009941101345541654119882725318715838471623657796904313779367447109442216296196655641857339308787209706534116390588749829933415313756539890887001785136403860391951858212106508169684980803228303441753786691775568190148714997930277137982442882026611945759434985502028434045393032278721234266239183596120408597013883901281384336285062812531534401450874156190342296840407289014180648230815304942489546296898405579807668642295480263877179392274571512474271783486361550443868130392042632450010794665554166173205694426706002953410465410707889286762751082160230460857997089712060155465559029795655073660751702423339157091258407802165350848557248302678319243783949276778616579450245983097688034798772621475495369313673297662330057418112886257244446433199811222365873983517525369171255811481653500878774785326646000864363238750415975444015535797285186107218927076542542778397708187643540806761626006138791812014394661455708156381471293292526449534324586522039844556659247339862088089444175232159848407624926010297174165341896113854003301584465584070798126375718924204801224091148759640378586517768272147132345073599965320845650301530955956853368010636472764935593615223052615115637614445359592537895616749082400079152914160573550695764992652208728459142184731618891960309698478720277524635313529660703552094537092919810259433725518719169462865385591043700430909704114498943398517130472767573467162443584281921339160159767302040191222284352141592348457965191085534147755820060029036103341737570304864075926478907739187883541374071132412081620422025581178919619545676244914931749811701021030045920791168356496311821823733439986208679672543327271770582099880230687168280696546423000217780332968848697978509719451651525428954270435152828142791832411248887185024850333914777822118026710322315963330856001168674840838719981137999202491842845505092194408979619107140919629864599074441511413059480802500059195794503069818722283388544172480983672464205587266935888824303782816218673372177658364444471821783772994992905276700254691194426396151054321877051128088338473205134392637054712479944620872224107755709259630456412284745156311771374289418227756543537450899109488374514211398064544935326046026418954212576655236104987362532722567571179888546654763287875114474644874108141593815089457896025959492973916430211445227251073893576313106433612486504397782824210106579045822371368001109376575253210467599168885354233295313438728011633479629992773804712188820610990231005804253830732932008622413475271928245777222101468122681248630764043440746328561251812005616765587416800495956322543040290396147604881032996888262708006924792384077014621610425231142117517437965169701315186074646307584001608591264483372260843274609062601357555029242559223636368078950482090846586388290727571770960390668681365956638341733505534091281327920948902094954118031100157656581636413441315398885803652129178082829300601970975033817555087775443944020707007303041399797091312792236967943300870213491555371107368669296576650274137526851231927380261154159306453341251173957170575910287628087505410195875274623048529336322188897619809815498402982138629868905427390602198043214647349854322367234482206665357173271964681999193760718721084222286964498825318125338424502344310832678560845671263020780680744763052418719691085938753892741379558596709823328318347533840697797744955381987121690757732356066971859398164025063541572861654689597863013255574249009145957741160651541298405301765125280412124669165348635476021286713766346113740046164569658984487885718271070169505607545952233305512387070413411490462354778886147585104788316602383297919319032879253020264220195826537932526973371354732158282066990996102433641777866898874574262585368533193583778462119881873284376289902049913750318457438053247312362628975838471876720979547756244009853075602725572268587056154743969582389900573529341304976247479426835474338908206095187974407257035566203540039265194367952687641642637639726798113225785846281043651143348327971916151829875638272271146950948590002426795273365583499376706678345340510028873646642069428103860252340691135437708879001071087424264261901013186146068459455089972870887795846217622638734995389432569804021162945899706397606396211459667354174347948930254387744154179723691365223708585638100483639201079914239200790069601813640967183656988336402433098086561191645712115053492296659374121276586007691571954616628124227095707568485748359436383727894177570121204959549184330802613334832499322494345160871877643054303693331362092628795028913777067832231792046851149330067238574704929829986162868858340503855892640650809463913036987101896988317749731351860129322222192011131697903677062683167512634944657486764932722739570986907503186000165835796661544183999379100251258628054548798347072685925590840256830614627982525556417312575371183193443710941926216878023685540566840633759858859515552066743045267288367000582419156594607937774243750487258663253536519339964505841133916122248436357945151637789874209583928825638288250425409346637860291594685269479624569809897055146050889992057526016588662298509557842259663967993373280738960851108032667901835536428056097875615900212003238804556797204257101541622661134473418653669113870586871850031016851381762473809466144124023450278226554877326977997999764568284240165057426508138875548372036939793360547628463991615781871156221424448766583320871996529990854895731142681406244728163579137045986690141376645197459482268158638923312386497904999364025197891072406421133360267078505831562931886316250381425936345734679368911062704845956756047025972503480881254944786845995485120156227560636242740659959183517961254998775027495110913946017222803740118151594144534741343024104167712959712671815284775350386299763085396682373393159984132504759423085644186262109957130222754533849378808811904413583088998165637108642303653075835615250464985892207112657829437399966607509192171385442838763710680653804644080246914754840747656652624259486443631171192893649659918231556656630091073021029046506858557766545948447388601169349003152450958900215830675688832941199896773566329722436093746246035472522757933827745072283161480657464127130426476651163406523350385216733028172162359408870102719117328680053176782924039969305777106667715098962769627568548451982191435251239224828303375328790333751707001178942288974179706966983074224269889061802223399743001452721777724723514447867072333693688357061981029152431902447370405535110404485075650635169178802847034440605548780325241456859103757587193385420427357698991932105611942123805009041610384320675341859777116113639416607101398691814133553695664429833460576273178717994521611754688156045210294744741985086424554426785594493240179972130987026295361997417463506803404476631099447770638079488882215696117461394245984352619603736521243371682226741200530481387638415340698560267091151982584834559138983187878415121932593089752768690573621761887830566980958058031183611810883756924239057735687082723742216617289473453453732302721610858449046792468927720221518821558315474449287593870131263473373140814268412917249498850994641378158665138131787864178676427898696310063552169148043145281739385145698306697120484190486474574363174269188285222974868998974716488022767180495043386225363417641977747232910758241107562158767634018798558898688253429830501712098162175067420321170400859668569717056183857989217962136733139719652974641781603654327392180690851423685768968073928200024802414582123817542002218526361871973506584000056452995713488642692027495178579736654727321205459898425826867496274910037855630314452925160136160348837938933814779890866913871229982828681955115229715957007949290217191669151564840011424984256334640716144143164000089548142602457437016745668171010365368877901008140525456913699886572543922042457539360977695736502551835411237248186022806236349409111475921579619151039408398240250334802094590473998578871688006326593970179915992873548271364979810870159912533948447040369669182565980829867008242418297594263024331233946103281184831824428334280115953261797181303125414025119059527602375297224825409426371910093392022013181291126917631134026273733051851171987995858533639806259591671007758582339273538968722229107200629627369432506413096800700409317046429536258610549316701243412326920016006633764030623384606476787519009935303439112537808332424572630500804136808676536807977098635942088217566921688132468370051910823214756771256861676537158442384677912506608431458217768401334874606271399856875165354545132700605525755601130353023950959251347299421195892066360325853986507504770586626692465345213927359804776495726586928989303212399233553139007860244544893130704445326663897470593375111723558182847076019586047884922393789209983306274382509549321669177876357284754122972312632305474351738921788825316344096684171481206253355260033952018275728725424401095349396542693168254439688400442691682939385907261815455184667987375746415537826656244860226647591637414857161691983335845555483816790252832351048675236975447837715595372582110993726691897051587279255491375330662378861103274974688213014479587335545148855488621168046939234978654308286719899755418957556789866670056662733078989380127029475167655630652634922071379611375558187876268801434867423861179869136064396508104391464808205871076202532696130060124603935125378816320840299852725080042310520118518075668751663103206660499727574562691653049333243651200519899132156973164341292047256454874364660048023192989162442271617732196914616333169274917444997172910794655913743007091245796394825471930395444492129134261805434983413316645057045020170036343222843840078288682180503290706478811559517242719755910354714596193012712419565668343649796567080414646740635785018768600810373557197479798591765101764321358133251407694707500736774443077195143731893343789063028052382774725433946323894148161964534936785677467527514972866221667698329079733856367830776338557911231789355664964082564059303958956877873414471305449091943877923351005793631466247110269750343759066012180245498939688620767895673432519946399848539747696356931109918723283280145602401557028141457178169086471504255986271841740480051798247891682161480238160704133343645869043394574266415460801150540604477394638711921528776213660281955786586846329835068451451736698141350106903410067365998097194344627441739300234303444867463897239994490778153001830394846158287958831849531193543487868530926583340628477648698019877843379457985532331806638195703316967910168922729699163651195133704534362157620899003510986595345077343243725936842000525517794147390555663410406551369696921696934220846155138457999647554846102499588914127955632601337746267880493625435888108781207677225394630915263292480616599947244759170575963760006042317522510346184317043611869770494823832371549017983148420861419576331248349439504160201752331684283056205906154658553261647164831811313406840136398590391722261849426031771096325223216724189703036857457221220603922961496416627742373559600704337239914719946084295562526963795731163072999747002094274331722534018143030506401747200137158868749423600721549769625341055726386401578278117242673260396440915589161823795983002656708728778746502135163600493793684721807027942640584861668290020316900648010284521532895116279914513107452434670170150276729751669433348640289995389244422078842297177205251139047697377823123817881634315922718298274112885973509479834329267231703839695305617305398067293798879618469550497623211548910356085055025404294655753782116599286766824512332751529913933946328254164420050064173388479651941664668529211706305723759873405980815213692303729283080033758489221366451962316901172742758867819991894625066767202452787062728509670861579509013961786286370440768715604719486367568020865271783654664675733316650270143209375612057076060167740543286175170247189172471664352473388658895739618169138818406698723238296502172868510565236166478588930505465602732239938224850858308867363217735906473050147556204456533362107443091747109268500496569878685072410529497675418169786898468454720164562455887940259569811700282175376961316217002981924287405212007558521283795608168932117572628323966054692976633838282361865954141486450664058549831712744587994994579119569596854832768572724952728253246567943399040638752003219526038770160642902245307913453490944701567079287602913491642825569597311479517950430609150662955855005382363386116727515321904506345392446884867630815923842724921077183253725733859901829828392606046655962494298933945616595283529399149848284490853087202993261706269633080424058785648166426298620306263077176720220251244324588894470981465136556122662122262487968624005207179396001191077103543344856430393918928726282890596809167014614651126416325572442097022274672828210000381377026182839880288399153113269908973716615551188056984994958065431247672942240707529012978467800022999134469606177160410783138113578172055786167854676274847803749900044012899627287267780573958502645509633301869996335460101753827702068059640449602703467436439406771084188400280588371798607551731293592039605888244014801825150993345495630762895531037613678962835927118436897295723804533999582955723454236627519655942478344387352813695424806958366950426010094931892890477819896605088840918390179978503067728351576043131964062231704976952505232401301317176248891131224874947263359175290022421515865703503768440801032100990316293467044305505549417080520233378984767146954961230781721813177915078376303032932071367935779241257735222250283358768597790554012482003558463599368224613355768526718491764551672519763115195862865847554268667247645757566306624539644770546942738973501330427390004196230302284374099453239018640260162975314862622280714380504193717401772411172953848789535325360474890494360967639784334618310179718136595382217911094930490163537458285246385362084276135355307151950499971534947669277630769882499461321434993963759199152312704966492055700292631824083686015902728611670127469477142204626547325485325858115612799770110346006037554999460330883794095352777034214290601245250348938461116554163261382879570807723590236217871624849635784333248232820668855859529762457371317714672714683946765164289328424918833172653505688678139666738762771503601218310887911810246430483897539992446347971541364879207776714856772005268756544084194472352634959029533936134419062130811247911352640554685033479982747898798225383897740437976032174386716567806845565582063761949530336401042141949633880424406469301774549707831898713148643568903903023037908128143212608127402229197952018022759440507402970517211365254054234643355493064256060136211566183642290640951489164335109957621490791619200429118461841120431658680696392520954101287557546549651364988390143915378537959334930058814023991288887276706517125359226102078775946181010904116061271557934663562872366432703014300706439823611410085083154113778692046688204882733014839327439310591211017360823022689239303763463763162824831425035567818968411650793115733686465056254950144433046946301325747306537364055902743105483506418539925684189180595671956541159900547692394962661611119072555427709944829185946693350353817720766049206775193864714155719982859920298466078264124275847230797944679005406102912225440019676033034426561746086119865954855620884660136334280206549806299644722353682139331327076669367635716241268545985254949101496647584166061031023538037554730645619137427037770656766158034148261823873831916269439230766167521374654731670384740414139933151936649063926088737590614760251036314052408848229796686119508645187050160602837045842441388807998135777874732143859387197198406965213044755095207559392716728926272176215386171591021312666454328571949139440071004596964992446638634910107379780569221740180703927363811670397204622708424214140248638191571733460475534527296192984528370981746946486270394332110255291979461379903181624295867035043114567302007004154687599938117212942551548573970973634399754233159248072470254434784524525214259766734855127248355578278365572760471084268759300139229811721831835646109856514955293285313526630299075507452640512407268402618084671400881350133473650632260066358057981163780887357529228963652137592923465779791833511601175668121712910643317386793256477861161974321130227461433399309404922946308232268775895140207255004917523782659756395660006405947864057158324918947280985333352491896759469104328824980747522290428183856672796300684001972983598199321728868010814100848898103551814804200232201068709226504518892412181133535191624778425817862897786149051535970594347134402808139112302131820730629665387253596205874864115465390260477588692905962771808278858244840267010004355081453638716410517433395386382262946080337964666355790846252488584702099523986800917777422921874515406652799348016428194272181571912847226458327496451473279639518270496847420387973602021627054298761286427363313746422374115393444172695994809482103772491669244870737803292828645624839061239956570511658415578158955868086585424153685793057032259588463077589508507182899943481119589792166460829844613875281591397428409271625730106869869274329993756153217893580740174085407335693125413082292582182437792803716663707925804405921301448651111092230566941751278494542618295526014395697981415508955978936158569024575606915502645359941877638912064001198592645400389492180749347453783837472083837025681594457043063064935618220704438801364882125392349617967316426792933927126791537693424330570534849511368686200159699951090509280114588776079437319417651224192974415143553376059833474195120559036441015397867140704398156997400373129664456586424177464909954512641567636289580185813576763628043882420061766950312760538327664185732104557783721935127044116869851748090022910621876134815120109184826904790607066263623982645567813029961010746019261370437626049855888932570328701158642973995682302827230396781888543437176261419182150624115076060115616971291211875250514502935604413155978603907597835696684967783095274485017388037012826352506873608669427233836062814969243135950301469144417938425333093747653105621360050227787235378850516491136912619417717387745354044163717071315121899771680178255838875732764022364835069733579016799473594160054230800273175659811372074301429906671070140122974779247212709971081451643051535199428431048655885547022377673062286696873695123230994140705888898599358242291993009963529713316229460933395732870602825342377940150354499838175795186693067727825742393487951631742998415981644500707990070711039301830738255126398307236463336433599479379901158512382089208478044307852351702990558109071866316286038859798794645149942144659359200436129275254995914020888850367359504864911059183492088214428197598772249457690930956263059202567810168255691901016035908291922416599151914019520870834023498583849704453002382410901452272698719083297417334800706264292405234683009217269328280987551811953891785444282154267121317058492245064849333801477698381562361835437672335911518175939967591992211638360164495084056038521724191111107003488679144725547704995262002360749719430937667189845561682402710653968953164477996245569366610453472103878339719929740914358683660056497856788299144209231467553403846261811056225732186532770782987583748122538198864153378303643965418298304415914212873048568303833872017836059410383500891451105322397557501917608855025461205820580021864750244716224615010111456081046295513994533415703340069387521888459066099829860729057146371898091732611018077629596195256525323374236496285150293232766962138323845303891647788813152673007572350692082050276588794346160467924899816581604746408130159573093015350573068024316480044640298902824034660535555545004081341434239950977661146577603664748238622429916369460632586760225937853641946509215476931489609277090482459553736886549708933611266928830435519206878824809078229312258214192027290394246833099787340038249428743420478626329981994974770686932892359841280854511569809207127765538268860366725899450530038600612921985729815814441137377623585356670684049166636766659006836325035933132931926505485791601450861460535458122791631041446105911096808306669263475792677618900043455293243242286664761136427730781916558633539814333182070234991767260982366151368575743952115591374074268984154440363831420384497510489006029862306927833837121310459485589283603993059942937305275924917304472926724484958373706496928617397216000926744136532742653468170462972066094780159744387575794032123492366888309351128354814435877767616765196524628680454561633576404554849682349825840117460393862162533388488328688634338831858625465110697434090576980835758592403685520596842567605990436487016879094308706411284530795736898886975139064291289641943144489033256414331992548217585781632407658860840553857794018563868824680840954451508295327022190109915112278005756851553291643460813128813307784848359699458105186373677418740345681219828936895264341043709311448278811065157429477316461930678598715854399684459494614022428349672188159668954380923893225867556842496455297346166508466191070463438351390943470749608319703290227870005958846024777132041145367383483003631210082261573632598593615143208308946435173547345115726450648579981909673182763914813609946391282147195674185759173551300068741658642689088390135720798280064787533991145521844768589638655787710777210977255362013168717555399592695240786478617658780305955174169021446008594976048375342428062676161188134240016534258119146487689325647349924212115873255897417922801314992347335123105345356192840139027186906426211720814572248632946230814317063139110428867706561440120348199991521913523091418534649174480041784098479633204589429296347140979621188176369084011168418947466904111700206094747027083226617948064444537552686070048820347307123847171388311742880002356489819392765904987631648683491076140461506451765939636489753091399773860921362183801920076429709802348252109518369422913030102875339639206779079374280897347183055164892019565011970487949382785337250280231482162481494704681340261082704999029183764076882696736465513788841348006934106653178619678923071139862301722233800129713368707029352845434105015329417764720358330007179464279168083982700389189418798441931608021980266085373118311827473713308507059967199256409264932723658364065167086385808565487620275457532580826091437923347568010101619591039457954524255865922412714612015331736758561969222937521880969356568291829024735832020570429138069245139870009585534718371264654419036327093575211916825012491822839695875950988391592470723554233369339484954235896008671798430297690343573272283155290013353957172831824861725662362545066654085532888187949207396153905198616514818295560816298141733628013914340120423966270812121390171985352897723011169191095551376608563644271301807588249727628210611512776483688841840793800792699791567133899347609152927536073949236732563138810191711436113181237724189002242984200068823561887856795113286711134431252261816213267002932120495101799673555605535453113387124740262385966671732524534352053453649938816935422627710710960516443010391198245219540622311178231595366852277449663993733032252928538387873201246387369575792029389714755609041366424570310268349446513370649230494213630696871831983282529112059565037217151824645190171197956993716422705685985228399824238849427786294968710035061958597953314085831179929689987930385827582106107336973315270106513727284269975159100634072680492988808226767023292212561029045065759339660500108488654062339629334819589596986223320638523208366335375136149299733354205641662225747769130193366281621919153562101935797833861209148672120952252124263094964065090724599487398472996947647647145472682973544560507877475865784778433725895972553763101599125155303236652508288068189703737765242333400055673326451271950609421781744969237775915951435441736699065933565959082110715648524136869804900374913400199531660174170723362671461468039975313782693262382522571403891595531353242313452198603316687698689830103612263560735277310715680048462600404118777645284149103450756518906364337783943640543698923875044563956034822320858411914235343843817156899802045551867540153329246322056935633544469812791835845181034410022316299993991151004762731124599848080383375836770017480223269061502838756138431965475740531219306096566840943330291399710764914495362161581700495388674223937842420700608645586382271992132033840350009794442067426072798053471140454163054767386590106370226883528562011402323269490772108697325175074729737079972112454851893900137765487279478621895257021733134928560316798978644419062445130540445882792661820880478277534605747463841849608111279125711559653828539851951275809609042579246702300159668764806006322784699516323677313471623357915683210863847230329587707176428242049755345343151875717590043538382649633169697973514018267268832767292667039289496663212216880622654390332384485370241869324569443627158951135621450276560228892728395481856566395434648507639366175037636394926700354437120013630935249814928606434201826134255637305550944553648724789434511939575558337098749980425110539044259515461292894065850218283130940782355439927557841887281389787145971970024857570698131171467225210380394908815623071608414026629885050987335179976375371005381588789982923034854389343037946886705128516710846328350921558588012532159275787307426614253394465193741937312307265842349756112086335771193917305748676564594819425352609729371780117767446863486179818403305568158099731359650810671155359497481115315417219465196372744342015797432582569758138365219535846544757771043411830318096247403560527657662775351049789135426354906118152414157158671469905065465623992097163299000042178570474169010233208826413619064043852370529313029737734448727567855959160994542322086826899173312022889135420617293423055103711011807428891937666840540919703674901433284805831727927689081182495633445293370254438985329330918490412447007933287214894877587576602772018360860828500052866713912895590629108053869178771915341977244601067605956500737479344835633942598201677043180561186976581980082712811314854893472660148043308088910619981470396834308272338895490917991553754320270724190996085327737186673242227457629096472462440352578484954539487480469628098937289763660794567600446521403704544147683289354651130339065609961477247325331058168681680454385388091044270353751228836926597905188367750750090164686565147760993794245166742215061227692502738229620064217297702640932524106526077342847483089604202977030558919299735869768911030864861613790076225332908163892740915924793695509078450815745599368819765162275182571458165590273994450965958514442215565510151507027664627841694808242203855058129431280509932653185464194484108224364810103416738322771164533215663007137451364076202900898556593743063333284057400297947212277987854844162017253056445835786054932548851435946682398824479771438236997506330231153698316427534578155937211833098167310015992183115904605071041267627326216642121456641665271406405879282702998559859743433775919924382372955828434259478959344139431705944876730610462122807044118265317967336739544642233257826489813800530160367753089868086486317999843336482081497239251810247400265923959909788666704994523620174966486883401004864676320426957651048328036490195693976575171358884204091770400067931152980383401596116184629994766073298353432362607414147771172260938827988643675847133516832768498525592124896023801278777172559499781905507836158666655976063165909011494297008866954023000392928925043864768206983719377252214151214822270455750192270589379063689068326809904407664230619129724791248524626294553308081401574113766664053122520395968316294015883357805809043211185990406638486036527632962379595324351788722807966719711333320673741371151423470277814823629102635100143992276085347630956249217539898916969043620477170087139057295099827415735428051145922001440813221911008863490758106728412858690749692569127421321735929459474829631718223338431758563820053200762209607764896841392444338464350440366111499586397332750569947587172051310162187752994097651270551840656894428763565024018462368338857650340964764906321012595651645440050641261516455778561925050562126076415477282532632161378545698975832707227205756803352313263652533963514114157472411892745096553616089286184062032479113632370283244943236321392007045439557216052522975852684202567038107856225613212574639704896715776635514434468397624098787068961131614777226144428011134234139501404665829865488569220492641580917172820975196372478682999369378220949524245481965945598798637120516487424984497766522920315264751630577399238215782586836417947013470478966460631051057579883231524716052280043561671267692108684412287608336945626993748098862629305129395664787652743525655510263888378604154761514722037705242092688082162674250836978882722016486316919284522544298963809989339153918449590876435455086892342549365143796889234572266793496714314367282387503547720749830856713681357169278418099953688183380826277478886722626011030002122856342847307571828892835911935318348454409752901112988631569524839136651880395365382983550401732070898333648633265414848857115558234878136510617102865359027929193782439235359865329072998925074082781544740653425238491138436420488335036709340893171102869616003711812899960559445211592603563142259196254044115830750725841780188342458645904161735772202112208963863662741131602155935735226556014276584121429130479469389102143597989963599873453700976566736354949674838246894109785070372027513658398472469496505622154714336691012495465508424041067911558559430709955848891218139419347830361138384016166550796034506949991490246678631860600770542344213996748481279820000117772861679218458496805435947425929416324829418544733375710154231152676029334623429651985594252283232026933021016913273875503939629562389841820724279025608698010486688609778695536433824400782439667606723400190698146861363001157618186438750417117640670330966947386672894274791156078857185304187413739164402257043728524616427849803727330467063360295579707590889492969784149604046325766082031492329755449331935507347288054819976715486766448482041021367403847118884137180988673833954039935642853364316642544042298442764716069833117829834472591177130550579555246896592757786767234597536591165111406889657385559685300126198475878895704827196083310825542836303942460930419801557970105329145747571561345122370419667723898110700974795023089487657573428552599985408681242001477163292226877375520555180311262552812631325812679635620940674739644973221833631668181086064823856312780114545811104947444191466303382606860436073549505604530709387891599889603194568208530236193012674315752314146644465106437650194951847006912832126572909884115976412647706474625634684325608338274905562039197227367435651517218504366985386534145081638229957415366410881654737237590212012510424948284070881245911236833991690516663284261665579093593971625418699027539492193379476091857364720109795069565909132278373726266250827868799418954507902666702208367543444219816235757569245847507617426511757677299986487658478644224914016837619029123116582839089769164869578837968774782627137857843172291866764735185121361676090576523655231220743738384791517788570446178303947333419536688487638643077881982477236375019128282216351896286614825752746394792070346727277509546949882588075245467512562506373963916586548254048421860504948184047192740039211265773373170875019816940835067209844479497553514414299815428586633159607665964452243238723269188212345174546497296921604640467016703730604736936950602581288250150085813043475884957115643475034566228683206576473766159563403791158802899419829955236241266547622174477185215440071300993363535849500619450908932445622739004122377991990618615158293947312581698559472626094888036317904240244706181081077291159859731338840441081694314784343135246238245352439976204531017949959417301692010715571872237130191504418820622447482422752181280123398902600415210587628290074502921362858394941698861260397360364791739362943056863169845095780889912657596269054512396777622656112044944877196184667837265348340714837415296158015261407215127962817310082124803835001425757758479726787248064719437228595385983450375531461116155527477531344456254384524110789779539860309134886642439358990060374352579604450394007163290177113324603966109227626630515280413504949665281350649315513555279793780810129910545840080719235196145702664557819880113367601452884661859898242988130053335864086021991263747574235307557454087538665666148688800954641068708722821020356206336703209649340109497596638655162144601680490300091726316483866415983388054646831591779200872722139663062542623928539314518474438223383406710702007898957530691394274491899314886816913484749271899530141462009709898809116527448458172625163308822638669352205963955193244499607281092251537139894279036827997270074468368132265639301747369011090982525813462850849843297975633187492584102492494107619758908180036207905201472104997921139902274965503699647189957380131483908568706557680418193820412731463055824375939380854610606214372686353907801647209805853422615450277670996915317266052670581098276645832521152041780242129772091894212398559126457374778154210878532429288760051122841319065834833740889760394563832756522409766982661261623945587566329841890465036414017337418141232441219829554063694188457784046848613458979338725390174140462063254865085536890158489168701533971922463469877637619179022868335137108811228502837037622974467640323825333543537472895888012716659006662547191267099148395016007881523731906702271191218986509374682769731089471622435658930979129850047275986321835658115203999862136474227940890050447348922282377891707486553574441216235030661265660282905962623742073372964989738406381781867144962600159119441849096050803469489215937033578405528389325055132397719401509670062389048120595695986059837086609301325514479627703916557805367004006430423277025870022716210391711299969201616664633752825986630673453731924774372236108043763999307480078413291370466022457589206385925994856916613763626248444847592876627360787388595893029865764830316481661295494501961490307696483746405766306796353929352242072312158913655240308233689706432007738221159379793130701712237215496083325724079659555032057589078849667920373733995745739931742911861499570645790670012999907281949753003598581723075831592924376804224128206526414390415540544691092962496115176382657287644107771546700643111136815538498608784484233742551532991333459274629539174264516306314043185551526705733676935252138128215229776725089388476345957260537951069840029252338309425297978631751030122915343108259462611925410246494086002284642066966726680035843257412631878446784379209193275144070407898032821523258675155821827138781919515651655092912500197071058995116680049527573096728304436423253005608266103391806240471233100678078423490249489736478595981071212093736711844385956910297314506866594921686084511941348773503296515049579479371487155946387077360335390361474911414789891746623596706158459398056801690949705869618135015830875002178416356318680170709678225045853035528811806640424342466800606975052903827551293734349108172944249120174498310070740060097094910772995643870564967776491525578877789142692088606951417116357451450289226568932748044935683694006272134816326640740411334019138497921061688944138490934692626970245115580328340643821792721545866695362590011313856947019394536926497174258726184307669440346685890108674212556126352943292169783443327075867070497169219357702849356967879027778615632359945475212292357020401499107541355651187098127960934395345557113473313688226573734725049727504775868876946156021023133630381297193609543615757909033873788170680705463700016119937719472864078945525666675251016071219776225266540180302178773113894189647959750236283404697633252836340209260826381230977737984945672920675944441104918214222856550660169665121815089610150954035813907055954934155439260205341294668487327033358871107623715079023384098859151785671644544123677294149559481690072857859773152113529252907634317867446170712676981415015614868601854081868890271723309575408467014126122204620280162833208951258799481097706422666835522344055287347542677721029777903421950950787667062859278343492951615407162206669985148749366427279862252516802370774789130483418390103895415957563158854379980877225883199750260814114206069341633768852494436030252043044074104232765295053981649894547070517750911651893511322298320546233338201434630865544709760597947156066515416726431862383251075270815165844942934581521392511604471032108671194962849235194781323781157478997523612623281803084744294226561649905903993367304070204910644935264541914860249444671040411232628207008412290163436359414532674625451620715086168203312339574889289169034582281769417918998817106151150278922680328488605299055483181957735886156690256209744286835371523065115194578366355259788695350194538316833086806986954685060383387724539722166512341618515221981111816513214237558181839813807069760818068841771128084836007598930342358191484950445373977203736889887958756026196724109821479653843619357629989582291404491704296037997244415786384717125811784408015690805535021634512676916487351218043110357562690861391212126846272412943068569782725875219917524133022821241730242213424642763876561713057172302149578928367656166053795496913355137809202308825001955691638382992802424905680482551676392691901683782914786748089603089820936057874327185865844807636187277536257955575668183505717697217374020266385554228425351471088765589085153945310433157269193731642632846663702097945100176639623608242458472346310904943608502364479650905208774348610453322341216982301620542257151947058608024309051682314705053324190014402647710339007069855231181613388957849159145558416180713686540388495701919227360844039719266211347340872415501640006789274854607839689058610777887254872716653446861998167060255564772979779188655389822862600270508278630165866238910726235211443979091418909175618297761838838616340764873931405299875425275972779898280636173449319216622965436085304901451631089343817570257424125456044443402039894929184660819329815382871381749216601085833287794839546358199157117973469077618788752184056359441929987969091072187532022185466625509596242730572477114755054775560357393541101192658096449677336957582177849414375324559474063798955355212140000733470771336095298161893911600045066204283684498147582749135983744654329258699941968501649857554173501162996637183473978273578945326269731428275132564644083665475579638446161159245144241332256930212061840616776366449904643454635651682900612342232064301010656555240741261377837994902955487470469371494068509581831641215885329986592339520866680048935789881986247620613888777881454813977234742630169527825239177542748308166435510013013610741340346022447660983598899882264378673634245585814917455621135349681201867125538134485647850375395836106813429607918023093395874174252737216958750233843165222572652764919575664956622649322659612103440253506312935980719654583198665699116257252944810242490951657017966201026970409528759097951429813483301159759424200354882246609962287917619890581682917537292278890919633044058673271510041543408809374646730366785101637420144780340511992931836882315009897340787858681360584839623909573520018790358123052240791022307750711799011911583290836738393764998360293700249071085878684817331990935068190835659736383359119282266939428752467201765510906453088653426225776305182430374750457260653629768743121273811630922046287321328842993056545836807620839383318923622320583696352900711262758387832708589027687153556196757667051764024396290108240686750968506997454217716019114334990193484582943706161662624355556000653659366472842993613191676650338687540726380070316444696970238860297312274822573687032874832722911496105848395802500913460565482278070166152579245406395141326030232704777894995847714344737476610486318028126170534608239131100692302510177586334902116703478776347941115750898881046296464568858051295235947195650499512528773774899835803085997072796211892897517558552469385289427779780149475796964854066559029126736893244433816745308931056303996845323041841347086531195891711960542140018677886378244582891365837529661544397092788732648351422535157327256560504496890669086855678168644173065941177826608718927426428218114159420807945936414543075130926744229166486892737275915705641236525433472079790482371448481665130678506764193645625277254878488216107676825945372945311889762243114364028381754724905240788965537613230623989678915870768772988445199151741377731124620429759213461139318956868413082292056615420220175644005913705093037258853395116019257454277811802803210653012827017310920798052787325028319831900803359691851312409565786731165580370842465402843609143353877289091716782181446525649900252484144513487898590107321044993628045105124424212678812749331157052880491274750239245653165088673237342707340524136292304211064361764963908258035887634485738728791138407753760239722783519893509223801985123908697421776365437025254392641223609662401660879168200853979766409386179810585079692361490286728654515547586998215972850435084074291954715318756871772109387207046287901260366925153684875473048450925052169911042188815348750782471967631556063925098463760733783008446840722603012935306740220444973084441650735000751973206107918305713746960206510256895882121500701677536966203516488195721736296573407849120130369063036385279061757181680663923643925958248075101115776713490294459010790452525718735593514965886834147307308847692958184364082243418840081995972071597478339790319847458286026649412241321864915499737394330214809748664338562192208890447252893456035975462534351282880009187587970893217418030307478262915377638397619319790864391109543980733698730570435633432361893845424032637033636664140158326351432381978722276126471252444195370238152184215695941895529319144233324144038558484534526054302509752218146824037338622694649352840464700206339078106999127969297441851511954228458906189200747096193845184186845010041620541312869992238988445349271381064474669047072300755716169047169737340434831148851199926827579710842086965044173359052091811413952294801379294329446043438264377840757730983511827793801064202420663110421684043399616968171736074867578686834575138186706323531623372911384417804587437281815756380881762705430113980496797483039051682380598815327637539830536907518759857483438323761034022844231391483372458597375025006046293420344735337661752987135591469631155650385554307190309448075149045358961553236353563671552176680664215400550262742469682586742504450829430394039884776562667688218399933230310678892501130166867996358415097916486679880312051958297415051638858109844905704991844443035738970877150126531018223013152465723424125581058925372669426213362965099417204377512225483265309584469239354005146915317413178135541741391048490864397384706096992931322913641112336954663690957733072071618649038732273045148410163782716235934048352284275161143559783517525637015817009009357492203410239066915278260054976400851090633915625594099988364340037877000004731353969441186822021720622126399353958967896256486975217865864871122083152707165361083567532101211284633564226692887236867687074845771825645794686733078658587904884448030228893508497829516844581764254281136941228198756477930196669065843755107531697423068128479906679577495529950878285610239914651598264347756811691141574840862982898017569826826613630258401608075717157654441591135023600731885946854294101479901291925518514930913893440631978725272067436802710788227166903191455744511146704724774754488668308240102361525936279310551301773376144614184455566007572051086056421089585412798265557098552029380499977516505382634833330810865254587250173091921786561589179419794522595499042139594204934457066595714977524275922215804208477382886535660761878602581986579694471483651501344866083239297183048526197301827717062288013105180814817871235942442891799038838410245978306765878962882887825688932713237135766313800159325421238030491032536251792534279781847438460298783341213580920271120535823626267319301931236630541016040875538159940849106563351460749172745641589710854176034000716940076665326245328955219986805580764053320413172004200226922225928577904260903207852467104903178209319411556708709780477477906081641969552496760286629071788048930636390592605791368427827025816832606832957770924361662665927891592293684265597388615285361777098797317496235399411398118724139708580999984968635318605508196237847455879807580507231451386178123455241872371285274959777720831534874653539292921095720754761398248338554771957780832769194768092375937080176224532904636051221833359959658383428980453958217381406823136195465942239982568922144002464838585856155564687257799876303040839972933866404983308309653047755513220202362425644235685404913898495689745083452589099192672295629022426810563513861851797423685422601268190209502029795931394626458903656683829536990496132923864981332645498247582630519943007831886331409490172475753354247552511058424779763249768301115323304609652860616693097574139992325902617214275126585587355908409507234035650493999820253707076662211408461203604744355302999963702574990945269849221822311220035075715491661851006654038728724628538284312691931508103507606029814801702988454838827663614857818667721661543133279321979482579950863040212345334530526085527049248326718285211896204194384164616751708814295556051630702884668727568938681023226458920110535591409468404304718863347251147193894914105209848418947145115689694921087773104807815185924544416674082042425752598241515955245902171176184616654088471842223022424408860428048732278673579346206443409236206790605912154791247704122274487738712714040657364507370518663847682180185582231179923443412692329945611132825313280005329536969015197243643827312414174414678124114768048495559664927535484819218254525061227547772902887027880639880301048636268055572594610888748621851561820650132615378802540832035780895979146636141483654027508410870239749850709822312571691602962905167136943868329086438422533959777636426699352608961765844433506466203499025429843663146399811972425374366468505175033725065897858731132965493183414557886376124319495199112928785284900697913621257385889426230620201062528639383687865967277718615857420174780323319955211324942206224314530710184528655208242334161383241242303655478661670033489641659555137357555689595826354329705925566405920437350860110294076567686877216340125249390295612957561262731092759933480626696358718118870905227152163348476543739188453070859661005664542273390368539055488766645829866423396978589408869447320502660920592271716004647472868525948641774324774266830306516105955498482960780781790770517102724039423620847653989737964419170369429570630327483574155074038904296065387298473143764004648289852719233943024310266907799642335129259012409126416204521429214630522269816642035602956825545431258264710267186577049541704636791254088629232994598966797803895700039109839802700273544286729129451769526157849005916411179137131471442533832744196042258249917755770387500037946064601591816006002246700779922841630830657091638510777291606591386021571160959062638719466231443510194696142080478321357079808468122840988710992470789736714518896109684978714488156083644566728778716953783380255563539672370587235771122778072641695025949442705501675498985696098968719815660945878553398593739523901193176107668973714792468047245258997232815278055695991024883365544431122443760485459381032604492589140544205506715021034077885708057453605699888178252110880797774437580516577771768866750250423441070288013369576664618973289631871756680312652703110816363218491214628222745999843467866980784551735452488939651460134875797982053486875912143022374085863522815699372778400346546160052594605624275799212344490841650541835713227912849453746254495292910191852738555662686607744318811790361718059950714581305512024090275203206229587227232977618716424619071238914800538206265628903833847700625624679158945761503403603694380530619544499000478787196076812085452821435002924250667062201645153907655353909582069836001403847356443101791388245072023238730298948898703821889255098744856229308336848986965121010511951139401529949074251959533271451798048212802302209389137871779184469480634989689555138114368044067228724321628238971485465770704452109524198498282900350978599116360540643859122730739217739252532877471311095531306153758492803161968573872124611275983997357880987158289979222876180437639787766204070617703970577618918746944009891235558677181584998444557788795140336665159814275346951038386191533005759585818143991801903431841327806462977293309330795449492574690258361548591306422175907245853119608967458019151824413910698643620532343740962037892260464550036250628665758833209486248663375834081756344055414439656675516185268564569809349618353908034728244140723354894198628049410208650203914018973811658697350356346574014251620847394922916916732748094511844333296189624667991598298887159352259944064522111610773454113626781063359022545339742083673235111243429614099069709026163939136181335519634684012574302519805774319016818450074711420546969655566812116564752337472041761621233630343639341486055723759131987665591081259669990737170460595748679845961278600582811801223075256825015759840088573071383883848438310253685413032743100241047759592806266824262518104294418145975915485666025552336555780166230654444629328757629459500853999817860707268186776935458435045082175568564367217218971375226279711904445539793661407715050868217348893722580948733580868509720167340239758541622958426255406499805799847961356241972789545309785091641127058659246466699929395341140460988489869844685232736073450994263639649771828260067515194869266798193971031858209999192641405861743268380480838481547712801385432664359072686952186446586954173263756767642078102233337950020956596392675277620724876766929479491111639063089692628841174045051518786152881541856167588676633340856358333701113923900442091417384057184226495699890042278017302241839520372816037328809040207893214480189843508285981232621556875277235262747189505262764196833320362156764037881523198435952419031232760218729825671060160925308647582924792637025877061516473726768409469165746187052548069443631329088916223223163115573607724385444316434930773021953855947308836706706366572149969520188658225317984440493678779205755005215215491266961457969595095794964367270660865347212996782451830227762151650610309267321309719236181854062686100208683023794863126572797753188084656857116380009117847804097018184746640451802686409078330600896862634088839458093602105841790798855325109071780103754570415697432958958400385516033515779995072792486614870954716960913357776169944219057749925706595814415715249775704866402588566896085350029158409206528873329120617292708494761026559712259687379336922609306709491158700743408008590855145383948056139069426092306605482400547665777273739352345023297289466172568203598607394709990496209917105022451092493236530360073071596621088936707265419677402806563773358570917721152316541575480663494744872006030618655051216449958310047884911089877783037922361406481990366294085974082081901983058742271462797044975467183603543161188195767714898238082110424972977611538095171226419324636906425412791398196422261739613642482690858930154372608040518910004842416099977096442946172375129217265251174864328910110831951062312982004030349490371010896280831109873859284225774903856651031370435572267213441849097550588428939646221678976120931999854698046443552099148531211794541868946817003813160557521277587341151405280924927490496268635276228715908400775614668736959377397218201856705377862271533194432319978527372081086188280659990621798265033788709062476223737048048457245515750941261496949744960175242995360019326664732846619971055241321668021548464875188418814949553304284164522588454549977817088407660554564921385345784270948818308848026848769989547363379550051526031616625597731365372314980991868621930216845341926549232572563889284689014529214629285615177225916083284618405223103148138390832484356198482400702351620535875738222454473082813441907949992349170547888972253425310975194289887121391485347620840266469071858631737895048132701692618558552505997529929644363076409550980145747318785090858197496208537037741351830079182205842188497333388500691322653234128714180487417128557606271350261652392410045714468346668019107980891795531946723133681066104686525546836515924223329142050228556798324123062152610667288507364778888177367657441053289787692319606758590585315301014874208079045285288915783238114731367647698397355149854288200182577982992654717176155065441502724557985715794386506423307109346753996392509194015550815576939907411844093103027206406504607185156010766432331981763006591769984533810716307338481791293634919602225005817843949661957585464312556139338538671427701030590216994343894431201085326857584590260072700838565021223990746342992397518185885943422752243833890088216019500652414645707408725185024232503882743375334645500945006360924449042572898440947563429500163927015480440794717260640493203860392564358485080074716452625974937507979699735559083054584106972225758383461417278240374068095474746299204244842869391066866355128857812989914585741120960850042224367041876438765542209981124425867391563645703066599270738634909570811901665935026455394757325002552356103641389297948685340582463713735387555967948701700301042649126299243790761505774185569587794195954348776405181708201821265294028399972573438289305609360852277900740880347258792799981916198820597894135465888293833516556463150050754042518025823796208644306777760508122971992536873911064078663821262083996376928050913623764158871822229521872292469180918986058533802003615779014755166086857918382230193614069769165658683134654557304707093834921437999279991777121786182141716894189920718330758352149933121344961842865844198990271240567725643116642977678750231782867406283576424884526628576407071486133178244561465482989839005252716637725421588917311493945292836550561412996877461065412567821554751760668098599725005071069777314095251076278097863292370636604978481478457913307917325546038207715667541900748199636507531116370683628479472491640797748634238829787008524089688497867934356134561654958070882206444778245752859828891607972145166569065345464589119341956424226151045152129794695995348815272821327233729429799714331909631450011170362614946357906791890891158636369410492671765973710325243902523579824988923471706123712843933280792134014716556423746071869593721087596877146590644093158001486719410003215158276248960408127329557470994227635904101745859210935894155743762427022032753761306017659074300523047338523526790387629181912020761649510783929438686729436196130053601568485129307499262718184132482196588059795715415348707275370065906747248533802690530160305789147274590275506550765062886252320096839868129517435318283054855067902375707861633549170735936246612305444089392495630140237749166521726512954893954974520534469734383908286118305343681972259429363676569568168285170488745425930923734217837251256229187136442411629813260853282412817483565415116126130048250600270912013333120951837001693518502586828462742591856307173330638218492965323501267461425010896748229750173346014668582818145895612385555355364402918774770239466757792138925697564032191262923790604597216329398832555334935928665750431536389078715770874654309527416002261745542349822537497989912033406679792166527214013355820132354586716662750003859295530861653244415941331291307851022317968537975584840018404535563535770117477851121413915474865888814555059810320658383807734864769730249644095796244249488435842458067032467493237061514601409867886192342227160088681482700614770566673383643249278871697885774793486718864943707050777692165632546590879332763448327790053404748093853975840227376595409179671196022841584406290879255712330710462885285706417700397692374350670934979957820610783220963932902888425309556049391178452523696096882920599974664819763811984305664424793768114723079091238819907966792352415931050368924433125755592568200791672351994210589919394029727192880916713939326475310977990034922983255186599459354637813948024972185946103844696823270035067001581202247018286567144361410356679841502341361142113914195070195128230435334852330230904381541073520419076571561130758165421862381070685248937920976798745552712774166232519068658758252358232914811885199214867925020532600840605945048841839225821736043726652162296433500801776226795737773759974090120352996356440917520901119556103010508515576502594601923657805062997702398089417634915340760749872223495667500710961787179808192252657507171658684498114921701848808609757361891195784821175734909441319646368491501299387707786547869029692408516931772278327246353878936891702282916304581800364464543224164184943358482357673749178043257045750918329577997237744604377761194828215253008806039965229131786257871332101945644900212828808436527808836151174409906270936821299034942470463265595319902035684928744016315428380178134776876215073590712917339174068692222827741391237625376436494037195981055979654166438816240903854282586218845836119380345347734495870871904632802968124348374343117478639145650594444919505491209456140230387332226868712873126493899652743524197423678246233899610853561693591045749794992158168415430713101601434443092466138185705487655420616869139001155247841885237347465415103900864280654379225263926104751819203993985448191861521840211213823216267007525907844749114652033265932211958925533817160438614927546182034300256222023390338977050334467336157636925309526095664277657907667890839959798114115418666464227897024976302170785915822006369524381043861040472962206873406950429163901901070341467549139075219965341235561082962220293854311867942694941453708115922854918517845853312535494005268536902030399785630444920344496986690052867416198395162419878841236031400137698819862045656702140833266543491382641247308242123994683242040061433454017230400811335325444507644282766737708152225118297602878844148030263576650080772606634762695726137365440718804583398076401029319928202926058973802148966741704319487421530827953922268686006081972095908822009913070997145228656234982703010070649472788952159064854302990751946777425263912925566057550835256946755031141316936465669575712058464496320643774039563696262635776667598757543578561844582490880351029044266022316686536652217732116550532507893750924889742552135210420139386199111693531568645233218685665722943158189813259552568936851496478267716872615097553392827408753685008894217604989463239432942759679587400813880763616917646907004545362193511475305248673885634111954210791748204603756276578958748067618981643157285274278376832648812928884662089708114956453010997826977340046552735666971981686838462828548545005168154005027944789956683269558556077195409143835083933534185530736632176976121140096471079055660006860678678352967930088155022351164995203199710553204445552851343735411767856975800392094178675648160938257279347295937131465106037847393863172242443249793594363767143255683480754142943868183202881593003517261152503433896640146210002968580025176040522194007610734102151988847782062489792946168745770982393586106176036547940564485133383650949908419835794718074553355029787705983812942799469967494402135279485651690140084411838728025924197036251629942514461509972507284876232250158305153328614879925329612009844133113972155843021894227570737666321843661665345219278911242833265398453897850008459933049674915465877246631147567623051644295619612394994123868217195099763412463713720894088769216567081472334454049255621217836786974599490343618396951775496427809651050435065828038544812249096780182683539264515417676047589146427121910189687040370777806123877301416959505453890140331396036662642534353008122830305639183088204001549361534734573719077406762237058298106923728501755421593639951772800958378450853620700769067294608437513952143403366593130523825962687207434630553705718955857580723120003958265303969945523884221228859042751372431496059044019006050780068272160139671416197308803838003019914163085409269370327825221149779146545957274937498511398014975385730205120177788751190239442399044719276192757889388255362987514334874812970132375957664943340606600042329259372795761658664452348691813796485372462722438879484424601869869684699065841846767606202237544230629572623461661851830557525750795382543637277032858624445667777730858463018096848235600214060839270715520025052057910548192482058189581731477224967150970799426637594354688346305621332827636698052256606983911752055617761219053328097093264450671926324888146882713129513809982402107243681798774408352308136596036890657131254188613688407955064638699517684617433839906552664521540617688945806094988566488965608191604983731103379917844700383561588072925546715619183135226641995253259377551455860945283027993479241550461015570721002217563777084406685613598750252426516297262577580582699485254870288305246269219315811171874569433720592446546541833649963860229194087679280844886447430864856808260358245048524753910051061770152231182640516514445606269796864346155717113812978638357372439854178336503398822092288996926879470841092945114005837511029845393109241302102880541273764791076659765287360597852342521539649922457075762267613179863126810293717136632357974061649357701223666209145003434529094722529417760367175044378750273758390933013249940329307409308248680368923637118265067265264470177524832006580153732464979789617798189265245366017089901029975036264535556922653682895734644569104806988279322800845514015927113009059025456519017980271316759666156692969521434230496520279882399479175462968544482622307236527641916174632688791529170999990239015585247985174068837052969337898577179797227722600296739668709385317510083906620880518542356697624682408063697504482072560624702821699357858520920997122731932007667384658554785644223425960625008786813250424152319124440848653528798445489304689698451163583830683561943789547948870515708170211016890266306045108369123625733072774231912119260506130767897553181253437257863013206258977965947935013911142742377048658899792801876269046639270060765061775767206355943087712739518272336012314134122316913676404412868059122833284300358316410594127145521396888893053126984318334733946200847617021093629408111556967833000010426376979533836955973598326198384696388915682621266095650449900518650464723885077808373821739253057285039052092195626023939703486517256530454888860862615686474115862640612930057315034652387251548975326174556592440415104810944154547044021292500564709358641179306015534866547547177545723910605953537851469799146679251576550805308956594286761979964541668838321313924012755709466117320425776429380329725767942705595447398053133269677828973733899137696737152309210940637702801818932744593833679680678001594672102788303833934727257696864518583113479615177251152866068597805768810418749250542200694510820247056480535793419737729905039335471353110574877301335633261118105960079966663416620487644457058401798522246216929965327461766582180240839595219369387645772972655944433408414816285296362640707436097780269100499753974794824144784518808875838339054148494611301088296613328296009820667355571814474554861686368122552491816565939395269737949338495479642556562693670140321584482131340182609649942837728592994252818514560300418336101399143582011382347433155259805208584217421301548088740327393625796762687095109921720104933787842533946986094379753066128328933469349611118423818809967078091486175806855082200192366463339432715356970412775262209810130492822011096037721211291150009236792625083536654357090622220275632418455139354648406386669615422847409048191144356718468813680293319611628779199982988827867245927201702229247831123838746707658104446988375932417336972494533891849074222923276761946030863071114657917787082227102797365730043985508335852678568304657886393225734566837570927411701796719775887248623951756323260934254669938972509740944553862742399158331288279021137563835260973351642085978047334384000695974356726108060100624203488701343869306848537202602761090159205481830084639953318809086534003529064610309374236382638135891702809538740894434108878838393845014591408469694317784656999699071869980721276052916010340389557681462991005435417549813128070899035624722544255583322133554364490018537852121332082218034953139695400788055712790172574904988843218948339015472569700735430770443876249471925114521419464304011231223928644997526429313009283891225631556211101498640813303847337811273278844181657350952961905839418854547258142990619557956616020627051487092313676617444221501398779322071521580140465153656110410267736233920763082373548593009713811906055746058382172328109079901250383583561400396580936186411919407246946435190901873755635950848014210417954428756661815878911047922044430409959490526354436984294774558570341512713564135393528530818058929533072163671784584368215799072896041854119245726706617763090385446428833339451297213876352238995794501943335626377366945826336822343224814288672523066031829204827932374689715865072279147666232718766163174544095296146580528660195891314767626615799233294056968897337241094461783956961950897825047277841387765360157495042292011170795151423059755796026826848151910275732382859041352319328101583702605248835156342541332932277275511968143449491109372449973246131344460701189609577384330734641286080242486989604487823653727230394559375178841334852446059568826201590590972438733888357612475482773249089513610434073215415038597389841683168594456654546177398819823175690618590917231960762060962815444926380250364621102025406138604947880266002654916246810045727178097193937955548808560440274470081292898618524664336463054639783005512844582244902192302650188595876596002183063041542824649773472138937152991762809591729486523585904425805085809926918385145546470076731407982207811155689608108486056036249039567700400925697220492834446828310009136921242780417967077380764798897924607815384709388493695901267428949688245692908006035296200849096249962385548948005172876840167063181088798857261494769955002851362225143050916480952712859624823756690261535030456749384932934625511478665798583743230461856223763700697799024773405521292829203684472982416314154027701437031897830683025914789912485328995550902278392461188777980184922412644298753311231233158610220561115652653821499177019430929946440067840706770145178596197547055570291446522963313674951306402936901965018971869008502687836768064844783002060541040222546943421082801269973423521062726720767482774084050651897920103164887418534907271103477855744365044357477887300387264573682320780571900076008841186407107873873902148029556958720566288108261223756629068697316627393038988048216003663817401953376320583371017496662778495233569010613260220509019127149343778721528272164815613308011397124457307681283930298326482688481831860414056315711260469518665943003014535498810409472715938496548469751099754083444216505391208774897975298149770643811767812410945888310645969617892611737943555468832644241351751257319020214468718991864976598761398891290258414278445774578969672810004449124760564132495934997537082859968899720873882749571877480227657318037652674757747525728411869705957741972456011638434957834728761893919657009818259014594475622939545956812078762458545575964570524254826260331511471378314709328271009984330250980925296157150410810152741825780289953347892494927588327266794251906432376196306526658060170086038523077027199075949126997183742312983058802625839613116404088589886019442978650945385327919543142136253252964645401039029294604937481541908056503203628209633173214774958111094315554200762891733872013886092344673222959047249201140843750018682525603293838953092304894658465816767027935426823018289025724824072581907103453845318537539879379145245824256064803608311136397477954575528076805114027509305987014713389771502416495458253498818405515885877072800765210193732298268671523323903184897818672767914652928062088558409810517102166235214414288542300355985697744278026886161072356614924801498717242255265543749417348191454914401485705413599965567904894102698802135376226826705567450675359383413107180757202281679162996974872123211956989477228064925959637281845773643628903148123453925247898302247437766485114782214091463535624887481371840834496539691669129866397978125120693477413772634798524734161670480790949487347955192090983816892788925807637524343615610770337244788277634856158134572342524731387226154447422029406876448205814780710331138216725393381510153696687781200651419297336215197163342714476411280178776149087485759193471470828255048463366896214007883478086706017695369604729168058316019193758601986662063089797766380291558933955567100511426060973978771263947912950064611651310064540622050930194396582472572262581792864159000250732627325791875707075756327210375615238065357181274087813873652119625214056684914138376596232663070408446015009199448990516445917939073415669686189976948779573711435531159329646282689361824062841059586933381663553772841467342443514787141000056280642896054308370101795136578902052033897463490099664923622521252907830200751180673176027880016896926509788712688916712424587626821466339765328096729521816038929467140978900319896301716980406649374892485051143558597482986635526024527659595582367909280151524638302537533128403838218885462110944275374457560949329937589463428876952338448012674982092959534830395770042395712756042358463105885446599359939333593580727894040097656767957772363795259250952229740739373480160404456735002207900302218360379624882179779629995824522190835210214816220858004503294673500598473106365554477676436076813962863549600706445948803553046933314498616424829340704120233230707391536530003231645790793577752921518352160262862712087678942912526776980398471264517671062025142785402900270189528227138032121186354808730238640594278024938898995800510190514386252907558220660368198594610284319365138471131928211247024161894322289738525607538024699250522039916098794262646446358336963373298961883489385394596565579916047916528366650534895945188042753875907816096687757308770724420438842820296137083533165013314352024401601588544857331966992835369720031514813943546974464624895499065111477044019732923122652457491500428309238705295336565400919425327664948471579816275288170837492918322644678274444708739429370956592165153891862849126420727926077789427221034048767148243402344480564153184632581506360781441618747979124010188872893703252824900988245931540121821123377152903868045754592183072311935678579488177329891646722271056317227271580654848843542972803183865604173013136561282904050205824252136578686944873444250643559376546975523203839459516800726502318155600468597703048093513701744865377917765731375091147021826496462925208377801047784498259124971123657269821172050632375449642214853867635928294336176476775864493077564715212936738873472851585849602938724816916728446557533573140740594678249123265015690529536939743371433892172425122397602769079995001682795959512339370092731118657672382627294825971201210433063367778659354603749336896000982927728875988636433327227540521218958781759245859837275225414367656417794921273938497202204538133149858796267692216843486055628242472454992868195320545669808171738415397658667995214222999612537421661118865528917639491803367364763412449251962487403355141189688226504369868555775832157340987146973636108019785385319337447001471387166167621456220378420668648037244537287791823452068032576103452130227470188884809897627737794369283358585344528366474270290207576019401450056578045575233905806612432648952601778174985195661451596216025933116663967391932262818317090184774499713274528001173876754718093153993997105501727040034659793915505368000980017111510602681597744728064971660761469104316801504118059404395668713730652505362147469300237974586155574795404277394795692727212046060457108523358604321733181961787939847140148838363523680199275187066460315767496094635362691270364840355062705417495607064238854757549302865475024094708750494010978673669234904379991012193630157494453552085917424863071576688938446855657754692815720837139287923935922714093516899108122325492633031751248765154451100153513862596013385380439473937639199548378917420823893610560573066293929784457463389052327992798305942254305665284293774764869476974726929106431078230509411526302540030719411716565238447559874241894634571095507382070752270680383900785409005752972615469069860643530428335549622397320985032878878259147613109842388540378911314620851950637778610636764104469387797853414419691515638099488092062446293384156154814836209273710390644747843817826140915164115541710355884365651660846265979229684085620667943894070201233523441152719711041676838913326756490271576110151094089601353432775229315328140292816946341440585122141023478191265708508486673759620767031433103089666730142629234857214051839991911239247017516667488834512813747263023144764786216708945535953968230598391854931502032895422362217932111658277150613557465839865284961008912248575269048299097450905838178516422254103621230894572509954499514267097354600151509554727707963995906382726452341941819339576179517090348330070556652819542755063762478807230763329871295767346810310618562924172710234723768656341994735575273734597263938334956138760859323145204884774873704115502927356616363420623180506794709523071256403038133656322895049693601809049866624635396487049439720456783561842178726484851655731641428877721132025011277551556746215403029132561336587777674165265127855331814610274082167352155757871405554429461056687272866200812988684794731086726930818716488576660430928347710350665360373060761425595773404647852057052582030495819147991505321257932788758412877886816482766031494201460284328736858047550759035941342455720041076080295241929212330874280235478646475740703303155514095233025504534692560700070203055742887845891628361472239340003653963088490356793869842472323407209957762862319813875616261210708367604874334003838977458180923666062149052623503845554609491727076838139163186739341876718100200101491246011290131718939178737941617342867465281446435920406122746845100760374339504673324429370784809661722700567167421943199066892178995674018525839929596577347823719829631884349968864956375118315092125800724219684654719485582999142678325146974505778517099170714094220456108164988591899237418120424002171272152812608732346647695315994218166807897066530755900290592788870926992688876767406193967585097011867407983059318662525273204137934239500975584905189193473091154650136544798138943561609618703830514659195011972096649111817631290653032884175486731147857594961404639797382561459770277832902614337187985889954864382904589803023011172657713623899283383037708446368823312523430636873745919706076055893932137621765222505998556373242316573321668990019887456029682011643290107430834839873879592229436358614376544641563707408719257385008499877277088920497026451694664450388300102323622483517713960767295538946299083095521449836349092545944405044482136163815627815872687691043828936809290303472199143247604291910548498805660983614361485130048008030512043489336286460737168089974439905577778495459720951112800577652379667326896638627642243925380268888037563994360974413990232065994433206758987883881247459723466754363259896900960650574759603616522538543403625208427039766970041024202896681570911170441270881674567680946155797698689326293724166350123592090945373561216415418368609575622889142706950582127776679053693857587126070265793940373663072707197477386418764326041806516704904259600148720695707461304468802931464611307019493125602807420705781813932265707490273223515221732086942352238129699017388882305608343634821246690713282742358704729859539506191609032898526628143083665299216368927076558256887968736808139826809772328646021472609945559817462953336375817176374669314733034074450430420506780499753370025841296300282151778364657212377290636867832257661164266299352416331692468636832364445222820662694791139433037581236492586028323933105100386356651197345318563681283311073544254172864741186892272913444254011802917761435237338701886131747157697054422478011690682571216811630126603038199075774238069411011592636526625373914029361103486040847468560991692750439740925926582605601673549241704581988036766830280289946947003164033744861055721531998287417965294903927791616664799210185527702371837520338950185098708606561316121125789559654097821778003235106070404817662517936501488552229441993082179778127219458406351109794924393951455162089580736661120891868410949018455741738863564412473886854731058910059778004158577268237325770842623077676417209320998047887256776741143230611792568394073027241421557602230113313175972467206454126769588185011453725648238671539752029235834392718364080393124231399961656349034664742861105827379646945375097390884355517213555503446348498286396952165075068837748125410225217998090790400483257748537378991538421791108848845396278095714306298706062876363697678084885796073009147132301832948801848745868219347992672149776903057754132519326341174902536840638606584590851711337410572746503310194490078035139558261400462103344069017044608772445207961198529889433760547957881398581453481933102538967762429582834021306590803756653080070394785779384535096440844743306552652065456997129254762587269274081955960026022592199518175594252889423419218333805929898137907015036966249256993105810378969668333487964783540644467810953436226227879937133452019538128699023979542299887219199072395203848772892093906448086012340436715907282366860624988195318252772182607882304186243554006519317584851331977259818877738831334363437299471517562364392816715671981312576515879544515144453828897658728070460936463772045308925103167307201014140960406974775895732296411594027822305542151320362836006508911641011851649689392315668464947036909688960871744964040251020785491482912443992892642430551932722356965907414671094361601335741198819053207142317108950246485003794571743046706392465959173094189582480339424359901079253667657527458060165530727453329402416253237048539350961102379433865941655885868235522020409233013203029942866600253801536019649435170382413451126600086622991674661762106356477405660908222074396101569959259577440661265186501924180945506396063751091126921554416528086336579779388636674785929577637669692732904557747909040241524848456437002771091736141710895091971749867897869517067389382343539334507210728831977794541282695294940331780651175139206746736553068652085963726209874328952331430561694342886115170553859303906541129456403873201930820445910354997520218676777443108674728782161529698354347279354052108223941759614826864963738515740802799146745856247812816320485535340439767262579202608283828462944594138187465803599216986226958007145127065804973074412988272506343544697728732154903679560635676264441448212824164823996429040802787425374051731774820152831991388555076478642364949189076652409404267522633721738545987707122362683781617569104447043605578211521096472036272357931736527885010622957025489160243676445702971616731695106435526055915303395691825543331297782172184004568649732849800951384032228988316612730540689253687598885866425357258061585115516395711346047375043896321034919053253993135443787213741950320512313469302653898603744688646823476093107768870573389287211090368933974874328548306296001507056609969444515261812965859734385378360050311867142660556732483349815447270380338236865769833208869582616461548550468098115912640947809665654773524511729750488931178354821610911166256131440473735831548918085200869326442083099767371195760048873336577266636128839429683434793576247955868403612910015219132903989226299069950464040205783252543438987251495493791034025571221115943521889835251833595495675695483785664017458922467664403631135594547002989956237401988967512774546815321161875674774525907916687858584707110626626261192843866540028476966444995116368307141703733240238602502279782954577885841829234027177775616302545581965701655865158189066240231804556657975231871875976933832050369860746465259351804688131474367141470525054948857354126979236249354405957060964941929730029471564110649548028309325015314050993055600986122099605853127571472840190971376519479743938905459417360199088345386497596981980370317045252029488215359899992594006080222616990629422706458501391433327825601736017882100562907716451069997099298725095759503828337670492282478908639429948550171583699471496391988892546551451864742172811967739317844018841768126241655383228479172791600690206572174581665859925313337921294259743754707690802193096398499017438762810421397652538395089245757479830522293344231381098907565400283754683429628889143974201139470077445772547620671599300088452507806302890676757427046108502311272732149663233241526910991429520342044862738735616466834860955625035292129704353023022492587916646613402171581872360246397651265895307845191227417028862622473737604518903700176851639480791320958749131733742653634385951363995253425116842456005255833878566998035623156864858630577093895025336939368339431560173948057331910185955966896560341330121499520410229954063214850201885718434502048397646456775670128829258665176694526825908706781512256197449165329711319955876280952685583668611420274890297611557821482893216521496282637703320417522129594319149929332274169221939877441493790792215826454973910222326022860314698557446604322771177612743252222644470250498651366025135402475659206336475848313415888052007302305886163950548396621279856920323201290518414510162383820185882892888457298680555367046120891339035656086845885968130576026896993954723298818353003365885128882119647576167907652328159767239156920721351988422979035832988224018904316690900342728410031403126596102533436065424768616452031620698475375961950171394785909370451343684320697888220383451317521142455306767458071716230879877737524858377611621462678501856461064058217643720257691536448440245551654983657880834142405778086701421290940154179003045973768174510118891271715003050162746012715226513141780447399602252647381848173366327631807596356578376938164888457475302662123016639415789512312719216016306715228946404961509956655242710583430903017176236659811911553140646621830178936421122974240111612349729517256494229581898497889639101849273637832943261574012309131466836874145392293462114476934785939947121475077904849105877225433523190624505967898520535257045933232427625756594133688440288944317661804531823159205750871571708785966913966108099731968330460989329473146278536371622227664954128286014548266382320727288058013071168855949536467687461111919325942613596337901866607497534347500907625223341813830743835955368765194738885944653636520157897534296075846325463733012585228865297570471741036171302888098852691291099781673313333856933426872681327802730132467543422892563213145409304565719104327417426649200602823615925518842750665394483285324993985857692862879833750357678076892346488380539616344680688568802103301041879034915846596318791208713177022271116344550164243796916788004037428836046652831007095856505102817787916535522837411420302261067367473944664930502874902154085210787951775115397732345603925905077876571649785668168229381433016113616940322174778068590003958615366202043687456080441751068311274030917016204553794621829867886669983091928034725990922868682078284289985210709513976388253095567430069012505145179344691726603110574288903102607222820777025005507614988933969619150128311551604997144616225930664884627304343935851088385651829668669147935443761044242706679207099258905199536786338700684847341863572973467868912611972736831017028329499536709663328094531864750220843741655903575079545593367346302390923561029997908161431146109236355674007692114364304761893665466697698336601737795351465620646435944648033925760252473354442949948746626206388321884935800516774941765868479392893082882860374611938376748753253144580351441382889274121214684945313730869152361576212030258618963654254171226551964472053286024164009838653534040749812513561044610815565897936412230633382830043655473632880333037308803211225339214969697483038479792275144609033201032709943899824570363692281154150410027833673434469600896077618402386444890936783657656354175883806781670883731690672374341774856151400862100060773795991666226964799936433742061080275757633137931547434375533633086479256567596119809119718010327878905578413377193309099129069617937637490361966864840194348232659872306137173962638568910247235442448817783240747515645352225215655336975625426921117291735012580012479032508887140305788167246085100508435568790441365803069264531697022478496277546955925848793139498837522695930756754684686633544192420412475657614656437037000293270727664650360974081964085357957575878469075939032199665471045528270294638047036517171320011856151353720638317578106020314636930595910813489487890479470995595447836062758968289973221257117340785859745453843749030911570493025797278006774609541885053190317606461539725018317641032305207501431043001557651297998267226105648508108131634224901185512803199848870873670451547160423655767425865985516288708387180225812405261347213401697298416947576887004034163774078244184439756323657852523608246372897700220022771499470037899016621711210057004978337561100983225918776798357916600955850370484932658505414683580142374272151269387660984702671525523409360577340297138356356553576769625017363385355572755816541290261217158301016372456914921614556457554499369796901597166086901962941433297000055650005908750795680097395868131662439134287146539554890946027226201717206154513996365821557809847350969197091374778027760613488893239337668315635602940515653858446171380324885772398693396066371031497849534878587927271856259173307901711823356032954758667874159322377892801771149876568669840235690949276885984200687526429897345874643766069894777423668004522275566282515410734657104037272644697644404666186157477049762323853555922786190657660195882939467186452144256369419403284286551303838465489961661235743701728016501914331045301041857357872556311330322890536806697935806190270892718264562652767835524018073360522453119344330616906816541990102630586737466656272304160255693794695721507621080161623406959762310961150818914058464964743991440071704769998052846768592008829758879584627696007559152540066275579146552762526052071179412214414394127037128194891918309079005886774509172420232691885220200879245229878203082508316634384132576526817511093094506186075442091587600084404911719189379999356151067967006509028541435211020653081782248927888540562669560057416559058299716630715255752979976431508042835617273433515612338808263276461356699178117580281452462026224965550388338721720079403797573253468310188298161757024447643483306746332648743398788719369007461496257463594070144121883556799149931517000539620277862828075156331631332769922901270770827966070457771200763197569192340506905066966402346780782871414044513935104421580983076009173446975024304554985657165737838592750374161829995266213085803645720679518532593562604889683123435222216237517313095998022406657689172480769405376905954006862084684116202581804397461668438376017902247682749188828192871523714215760562876173126911993846236536759809077213879714988456453221267939647728299494376115352544575168074689454820982050983693006084856279594311187599674945894265476020034886018963781529007503879881926852183116052252344636982591335235881784938870760600074020438161236142194684974851224436178013809787078278615140370980184880992296571196744965886133029560502292354069134404131548391607101906228348886458979920785851857811663163523027060916791315785038260388444326634812817671195322728263662116578405074533707397120876630585246474612849669948629638451742175586812275446072695163474888299930188018711319587866084437410523517294011105797819889651971426405882885352638942729624904650297679682545049024403907099156783390041379813885805231022893465751590211437702721528535538227120994041658498968118628129098358068155352796466639255502710068673070683685579216939465038904204771867422846211239327451894792635867879394611651641379674986309270816114842600436389462651980346998135292769501297582420737613998629300826283651258201460160371388604623461012422483066266367298976917877462297259111431905568008380090411463405223772797136213754568001140762429842102704444181504401351038451199205069878757764819179678167846149205596282041358001986873158459477319026120726719946051703849259671312450636003057033800918757347367998650309038525510761682492344411011470623081129693706110228970839062406410059302309989822449344881034555400252490130538950102690560631688638003618051346977407948341571834477100212128934850130192509025859042877882919606693301914881655039775794744769410526384957532705963558451364074841445960448955240040160420284964935379676501995491409423454121656426223440518826967877362787023349213298852367877868436896983052460084765074749943290026335624722699227148053557459343036393831799601941820928724125247080868862730102759049286712205810188970314634045137992716846022207031738660928240317404772038873017950210698635709728630471629788898972666583921082665163933971033433864139148108874972475828404736254646909051012269265121910414202866734071266839787194369374326876611095385885741528140760223420688912163118836473090730528864346009523350800278256443764883956209138662378286681896410962381376269718917596901419511343379615746725836729901561007271477975518668054318820704796572656558275295612653095344657717231460577505469532603144274035483586378229047787658461924090833510650396404580621377401953534350069921119471615458734711206625806025757375741885779662164834413057305890150002263462430715590814572795125500752188826207509998730912091437371462650400293474092433775071988617835183031307067593927020163475958265377529396257607426025920344770317030322728399601009301901707672310797119972620808579390695334534179039404694545330006171104593258204366991183116403326901677040318316379129786446283157912165813574531257191344629860738878474992784270964236313512506480905889842702577031769517221145383106876889994079412041075497152844351774306681015494522928625068764377512670290830944343257491751121350450425211678378104802193585932154727310185669777389981891760498997461864209022275544376074526060352084008958980763305549868322676341554704073250391569632041352568920725294602130672680909572679589009362926678101705830481934113614629954290494318950819646246236981027411572833985399997212791316281830196692182826514449982988374130798689841683202873840105474835664584109582182634327803141999334743132320101968927446956813710987441256945208747773816151942968571351739747549076626652049967602421089730848667457204613264611950316148997611543866290192302119323633713830906421065419211078852804294576156668614943060431473668027812919556866730908609255140770126806001589901642260356974066602354395142223068149495473529977756390534731379721039340018416728362723916852759105923215395406577920020723714147414527704221585329611170677698710054401473504901054646544636042399291771869492312126838111533280728153315102380913475128181496447987695340601510440007828009279438422518796133510852118595729095646719662638196362666635996143603580371178210985256364604848857907456657361578836604554782004794599220433089508864980767929435883492899540801199922576515219264575769266556015498553882812644036350728397276935056811170387843434905523499175235250027469235948871378219626212787315079202854530914271099472420087140481691790428576979978020270665656752821882076557874069121885969183112900829909364401301085620203391385606069984345405280524788418766081299682083977742403470946368564628596362600631619178729891650602728101069550774193656333807869064547496944750712077910902391760742477343355511682425578235535130812615998463549946996873886245773292234395209875886635396253813527849058414252816129319909205043311824434697539822525102198722616488673492343112333338211766547801748170825449849790904930834451317747565475479997845811153742578351684015738354521116473159083885215936968322691350271915877775619383587365084830152711284005409920634284582127977063030090701696999385358246097036724993488279368601373220935400862529666070155157366404386651916807412389431253638926744546153442354834808271840656187798094703524175149348105561085514018789734856340889016545575985348655281411436366298236962914183641050646551618841146724497742807368123021373488425533401600157447501606099962452819514466707247578841149226991641895648826084947958963429805868633203374014693620299140017459035145785457998737685960006799871893332837542711415394142023920996504947693480176940193139713838712200791198596645356547488986547710131496649362470080799850681335523026151196969408708943001970454522575884386636313093343224930610089105099412468022895054079640117203646334171580253206372947773919001867249081601718873339741645442935795312357425448632212530488017823020598450852362875172352851076813173618359129120084331536308589858824982346041183141835578595115146854228736869805736091939291956831589462505658697572038498440354580625371413168712206262768807079101355612924207356688634489498991949382138884967077832260661786446650700068602386952491505575566972902094528266936481926759564051345834528894600642414639129932241737582618463239710565370183627339390784684119991583975826308487497135775818464861095041835549454715781697320571781491206711678823445722041061324720028990857655576816808884906370732568891097118221762179013169960864954040950342605114546929758706066032093805997086221576101456819139168102382168921129567860927811307233839484703916968094018258084108709856903684983842110235086562617692379678569087238693254769195950214058745516063002905527112716900872030162000192958244377889775274457400719928780556343875455825073795461857254007301238954131442105172164566493621005771132767082296000223422151469071716210641520682082152779047534772833336052400136325353676459993121751736601497409979385885265479979945905685256823358897435070627849528336151488619708433803662724529651258918680070629273837134849208543059048503437595485539263088425215727443951017296372315060883710796202925633271514947001582452328902873048648597062545820202774692862391368580550026803457043542909469757309782885674426159263663042986209815811652928722273658629015465302325900442521350202823269337247134788272497542131749762657160856924794312404855133750969500775997002249700219307770664560394481108219342525031016100090966964934602124281503923526702519242543512306623101816789408656211807521512964567986144172049540855479332262709252285794619508177052620131315212643673743700948409346851515784883122202127299925324870414559510432134409240950846993483787772728587613301679572723756639434976215759707871518205771539900085983462775331977855937660975045262519501815973992545608634412720356466860406943424278067068245243485527425188215769136517769665561943772150462565084122615446152327811586316363644837480082878885221395000697425903479801011369995474254404180533432217033793553457199016137088412527601643644001471839534097949087550548003852010627552699357351925875185786465432629492735749236924919714192003553989581813769409073084543141379877078640500700861391568396987896830336373669746348696905959007193704447960887038901307871360490773810067665175247111716481241457033573024670993123589724631971921884191948214244163381509162102540062133932562710827505782524940283397276800473977783062204315347468580927181800326124330168551773654229942778130576545446061244521432313463807928757609730154046220513143264877262135491425238482685581064681407520536181892529745958784375464183023094799296939771941565942341559496077760899789117071495106699924682648148867022814366548312840242177260803570953166277593812445583789258137721789546758741034321477557711996545875842283846608794259760688050527103511477943088271448062969355645531025754217346385352903049632627137347459836707953969352691440264464123101879959346086230545497681214167979770866636720219610288151856765229083242658076189039054169260675449797804888433674866019268731992965576506923774489238858969211443135998647552709795255143091647966064781847775867055950066506819312820939550598792006420634836150930854315158367116973663414388905438806050239254639792930766083682861312707352305052665028239727891454879887878882803736590682017807631633470057092084806712453501029164018806110119630971745034559707358500462849038978946268583651826188872659634192908299509439302390001892794571759815050150330955702603406888352609207528536254728256045957801479435640708013311591259615486458078574887307993968959378226387177768179558410614177823400585694593957483466915381385449667518262855443865059126761892035354120328412839873103547792655829247565290453894293183705576910282585967627142827174346562091148162066532213423306745640218822588865624186692373873145230366158785672082978110915613598265354632340286596647846477961449105969276168973551331574059359295970436275732659753559730722085596685047775822303131339719845975293175172066843863412409923528343769373987088087861162718449542057469444153402048316154667555615504551658277518862331539317977950868619762024094161408134493965602064864577979312470140384356362505256583679927107024938765194097970904541727038580248630697607746494552987857803661836887760875781228988986681829821720992793535515175919604282900640996291144428600192230997407794395126745661497039304023618934157351426346077726684269678148676065099306233152098495671641655616591146076993116301814654025889691510307152405181754991616412849207080616049367207952435959500264633827763235514106881116683227123296671732650753554849521660874765430018724668573006151458137953211156010535627657298985492926983471862087966134763579364354135276019551030766511198807171940027248047590119517501519905664445497555142963115701048117378777866915872452629869278039616292905422853830137222206753767312043466001504163195784955128970855066586997288811147260851847329366323469250974616572391328133346370777939562785807150943331922743945673909410222706166948652666135768194144870939736944276562328966341433956743898167652324379119338046741945806412971951395104512781970694644733882526258671869405428287402321121859732696973891302126482642219823369560258026939196017927220283738572938503367270653158269992480663174719381400968837092920533521730800742103038961776738122299222394102081013321970683213027125639158222934168897395126663905252122260219717093189340237052580060979701053644353959199558866795577520134392342440262685396096994917935996223674093162821174946011487815845837058712030335746513694621442091073671487863845940432556036284983955405545584916728523153127327838236445446936538987292675959345402589302355063591166156628395558904605235177444661334376993717936321410705330078037506945355584238523905756744720336108938996454485526980609173120321998254791660102949172631255480141829536179813676447195765262517510614956699891796496453934191109377014779208949523754190430106615441103185630741868951540103195052890826090765451817213582836509437471107705916547566751500817840714286953090201826081111732563383411031362036169741253215778019239051334630226704433989151905142597634846375255879665170693267260596775925248129956542131428156893076369089470829941368016147391081465808618330920214084826064958062140419491548119233597075011115680586568385046590093368972226065569462306047786687490974159446425049619398832068270910698067981972902500564237697121113701622440821479252868954434108329730265753615134087465081896141305681561577879948590386797268471335443805432090892943754115374397061896052659164197318446937155509994037698378427625239246635527461802868988899189496683097790964963833583250618258107463046826143383103155331728376364537518490192309939980644461174621907818103528655461883588899547969600180632008721350137732971869948773926876302252745431548261861969727211694987017610117388002951833169875005818707447694039544426723941333973439557273490853526221203353393990409026708229446705356730612657864313057967273374261656881981777337404686719381614382755033002402297438569090039211356349589370781058921097264725224841883845524434951574887928906447376199244091275209655991581573139751686819849935453824436538850023376791236677550976161744107112407772335978936296229885282604647961607046955380974480651985243388317146043447181331074328073627957865265661998937519992841017029495349004783150855357109042251741391203841134195895418018118297504609186721567001274471400567059178014006959284575535378474636783836176721118599313949028075951156552486290147923987693386490044384844615689642263411047367657576771696467029003773184485663341495361853736607884988576415938711234082816840271799475289320148983114400813168413779759293721488059553559508009613108837257009614633571856072378558243392999789733481464627910085949287305005822492728750937360176256806834721569393163653517501314877625100957222458617301961471661236456569317221641695786881237549023372491274836751019463828480701253863093162570150178320368433116857377647673034886159839122062661238089203673028282192233912018021239331027125630236713311528041298696940391177014702097097072880011155990683856774763280177206113384494275659515570725641543133740955292986091979734062043873614276806190399852281731242649341630459116344984451484865495157227765617297484524733003675992407371591121466719742362795917604864487457655968282580965238206387432001772676796968775938051142611533316850404596513433289525507121032226528762406073902827938908731720977316043197858663602750995822633803853580708964495758996553007247202864046986730721508279029314355172290787711002857312008567492740044398692337120723103004185211909639185651766303005132973191432869002675341041554110396752302197263466732574631262228152746345002789887722079509531643547587356623592405705555147191024449766441293261786554878874080264005183720333095984835571683362535226656694689651490615845413320966327794049738959084811653032171319444340413505408834310758748044738960336070749725871335761146374335345559041867397194546028123807069302070978381390914310173743998794824354101651811505069401184052585403373481350104271854203890934716242866846522515523854198006110681117863563053193641580138222590601234881655502485783539771876916186195039552897235583709351563045705962095969361248047342814108576884191466693182215343862453748475889561473043389469953321533017938906138115449503849525995202523564487113859297736609809577621225069497768016649421515718318738930788825076058446503536364237144045445467834744070991536248021574576242611080763942418477677598770365803294993108369402843664856757412605547552449697947802804538908391199759989899371634908694578252624747285690815368447620273496322881319216141069224590209394244835634111784922263483658659676701263551890735770295955403690357878350802663513142460040415382704825623079334830763333960722543754855055667661199737217125407841650127112975150661404805180565403714171326681791481192851272148605479753656269162566439996032854475656520304259935225896186841316455259055054001436164020703415790361970274512284428550709969582570295434450328474563127725809902851219892850093630870188832516455090312748020294449547909838296378759852029979456466973057918021485924517053680676634219982122909746276561382135187953900501990184161998225296578156372756306977415599337349748009152848118946146180236869899251022668216987882701388810216511454085992986896443602330924343116823615360122142864770115234206085634011090401766352752424743360828721007541758643802944628536950616758202225318232435885407704191812134541243980870449690173704352683008399387939929668722596562604890140727602110094404237432040016122619378123016883696929571961306797871050014798905702366689868147089004162512299146432038805463356385957789206202618863483741297432056579017950055479107964088033650597426073508525250004319692641461035999292103191760736510764850798408253247782982841067480701857339186009217517082193218121565591548398809040352715253209341160418568916230025986713673265084030840991335631239738922061668671628244762297467252232797431062062099450113826557233032517197591848268287072452616488815968983836157867142017797125456559738015067627941865163032561075090033799276856628566551059457074363393802900039428229296997643009972995131698445986042448323289793289835970902561231471432368423512747290329905295482620275839571728151268060363237233417722374295222873721954764864180795577849420643477867321626826036810643603860660466169341690398707975994191146315540215540813110110907640998141139025676047601054085505619948346550553288094463325592764170503307190567859804415381216555731140937268952366814397092838934121805422293107859309320410501078054520758715858165043449165166745046430398455908088403374581603823555479482912628034884080074530729091644212520496822820173473738750062656769289168125033512727170103924796647990791701497271429405067773916770306235231336857161161499461318587728913413104097531870480805101180247688215133475669520628543066814234606658688587759772334160311385096910513879580868243673016469049552345407376812757734688924793386350252048751109219098369995843167763788254157846755849749484384975942267873932975221445399355700110229112627940460897954946948539471069527014533521796377025273821787120461599691052870390206941786921368368071963072213922988491574778686993807135526564219560438965288871581999726443698579380931787608272259542517952844270528079606731156718059281378449121286471534483767210964043479367786675662649402170532709544326865917876289745166310639136358962309133021920103222539889559250882023757385625842426071888011978129661881116784727315592876967624800615419230519665435025986364229248479278131583377190189320293200671722486710791033901253897002077914017344604001757416464242180980371280085671173779325315801033097224105080487785872112399435812861726121485487861577076783354594676011210233100440183829289959869156152928608494580257263551307188777075174657035359957357981687733386377930858846746399371042369280236239777494793164108605368792293461281490560451836778662763971803994445899289550098831486235343514112588002302511529163339213119285335758830718340580301102276694135552906476161914034779353594444325793059390724430073061091696073034456492846822523284975224754284069429335409367361652917420133647130754700423366420686555796462024203456803306533080818680157322255050595564101086498467496597771513517254973266314510068680955889709526881596647673803406375869077363164042409089449622316059084752516768461780688498890098668826296608025506279884480563615354314923692351109432853430965962030355306600395953939227973681327124579959030776993779511178722594494494102802155831111150639640460041040208582693904558620143331934668686472574613412514756290739611497713201189413748575414904654375907776494810324990135553064617080759946739214426386607411188116903900125377903797377683672547540166142079728634384655751649225992628082110370509256631315848532856730677908502467706858360809194058625803298881489374948982571646796370970547283456594892436825393608073620447098293687013136470546693279323284810464866901220904030512988378336840474805674778156244551993672548786544779800380414054730621163206763450317133398099356676750555803085468472689716021932078614071364573720054239275286905762577943425787940981869732285498720800057100688089884988619496171685313340849676236828745381027925614141618395065244329120116804785317526168473948452233741642390760559103098908271918163337391985710273330686002433571182154025003189591866737853817022816753201389429973457771858660255052555835107633870555231867974605969818417512634954892926708400920289213568781932755093252266316871679535363355143413338656820749267907286726500653258157436052838572067798791994802907520003872986989581900935289389738364548804284919157565381141109492475229363537090308776034282637222944825796500677218892670291438691898909992922983440040317602571808937644936169352299552761322836492498461191337066265880658131885132146547252445911418915930623576109874333832326599750291644545166129679497383677792978271426077650157029177229106815304958803920447092557819926111980218571661704882481858240886864388176739060004506127699329717785126919456673100541614189005511169768180084625834076001410984634835909456983960836182730557768760329199192300238700537551461608913569349408828190422124455513783778787972812494076725470357628313227949765242916997830708683753255958139056428215894054608350043280071575182481252894009704717288498884711472518404114129795401596524151798722312775680630826277777645975598495549924869481841635046071754690667998189764288128066651658756204028812505921675559929339918090505572699266824274691211703208202480677336964083041405534003051387384469423958084036245758929027176176717646952515718480344008942097495039440501041114134357412099357552897894445161373761356054283997788695695326724551031679701667616409870760400507252404936994548909363608547828971254905237576082297629019613040057924851037039423113189712731047835707760863039605299619707299330441200340718066322888450639119333288221566717516778674056108058209566547684380823743665371828462752000420494293871985431418887206272221129299849465697070132305950323983557955842254090767115540525571409838850481470874675103111152849717582867401107316814591377557736261127844202529910793897660704483350681393560101939849173557466786006719979866287336755932574691038949117336009236327853836991133902444699052429712171660283303819937641244406128068906216444069809597924732150709107805583238716778979310966023573491085770383585281459007527690190877379758586130909278666236676901200915325524285501120263760631096817975857077159900458911769978006440444422271754908677941799730814892889169627823601736271433821034297044657868743626830055342653885296530440887128586240421957793977715256182778026609916364056290069179359451846801679728970110243456438671655711069475844985971616316360372772131643777319276394004664399406135915054911804813487543970263637272537853718423995444824691785147335931635301372029116787416115034890128660388600799817319615250428392825039755767081906772834798796810774180282471649363687395534122314484049856110150742112069031225865815938068482870143970961649348298837490254047364408844284399630635560907063389389641876949930172620700902750869222628887455347835839477580803733920299267390537362810938911818167182846764098612935969805035674519236189021592585551013776500754135858659706109777489092918722670983247743028672966980418322060660842947396897539618117020743953713561129273160711237110945460822816793515244680642361379397154537291136802105487860450867635203984522801110395454290450255715577050002941814793633768536070748415962395411267328305433092023553231009992101642042268282864009095211554069023256394541509218717769683864663686892481293132563383912042578650906444560042882930247557067733198021647101796886932234505444756575648613778576674300003990437878741269852182764729142229141406075590188281751899933868851776447283209643985471775591558756963127613027947930690855762160901690776415479146852243916018250529991709881927396372434250746913416112084703196374486228673541759537062498789396900802419922665816084199100790072107549598252261739620437320386947634643998510640367067361048733441585641307396549660287756775471892828286270531519779857553204151571666338914140289977693033072650111403386739143023802431457848268225256332938836025111146745125382983264580145767713738341029254248173051071964866937240460520738087912633706608147857859521763701890459907448843546349755155643165772480305104525893633849983768641379771696402590014010556969615486913117203804996801621663029636087026561147802672645172802668182985421066033099458777682564571324807035160835856582714865071538708492260615939182871349395567121446217951590865927487231599860745984629437379461634202607581862296729371181013036759040753101688747040322849934136656708287013840758041436653502488480455795420202920595745856271858427407741066209461002336296591248309939847955875420708499195071708198734186009681864552622421365999676228768468069325713415534779104557928881248874264039633570571198484949796836077828843768187024492432041047159994688490251876294801023062250799764164108783856548421777792686786084098162846947343527005038319102505274949359463724200977830101162595561110474382915739550784662824207148984259661461631456914208864127387570522084904869990280011244416269746921430390980716960852865950735424817927117151384681872428415719789138418786526201881146641680586205158421495654584528589127465834478872231660099681251103611785589308151487471369047463295497391651269241748531673309866066621175916574740820807896856812097989732417490066419217364173293260561044956583502690847889518592024724377927585459250297721645894104396027278012446208617058297898550450149771037292156104737169117118491374419315441818837353814111720803974245059491973898611359343841221014503013860198861593648381928779980918501541570707214975310556688438331542657996430409834956006279905081393331864000845559668991911073935685258433514050644376508290047905699921400091848938411388431525627098825492150680704847942436453144022259001624453056118713952495584032560130002172433048255674935545079154284615207713360677471293983203002916211529294470815674940992680431667632648095161094583902959395602567949304234137512527722853990084176286123052714813995283755571545550038505732753921578515258893680054810154106827473545280879313818559273459587813084189787094549315146860695660295384669626255734927837721368178885536990019375077661847374804847109993705085780133105218244919471966676246016198493643986326749706147328277930891247269169429205043175273611790378696938510036673714517122502356806901816425338267670502090713299140043294954009992587303841050534150884284146587835756021295437883310722007560656745402862151852405458772528295014324787096720868445591639940077264329874910541614677571131210968243422936671939138720992801387412600786635559776362769455637820620534773512871258520442956503720965057619603867739941331327093003849366545529586492727988976221993672245659802944043723134864753523516256201312458368049068228582230181371184516328272670495008973790077992964363003397408477251679451757938112759198630778317297652444976528091838664966141121221218731605906981770237240940713775378378150211119128508873203030690009387471384117877033204980776581161711544384980054089861701874770157772035809104446460963197344063019228732168278296077666529126221764883564685188430983669762847732006871604337244127858192096561717670558655112173270323466113642114729157507896065591216407755445949304372260004498908044139935256514646750844176705522787310344601533597345671578309633317981943780368488596668104765904946115957217083605899250217800752673685808826333853771098338532038005116553313993320750972884204327501774648767160809540205680004250861035081450253038866547418882896587860711186701937734610534489943763726748401549941882151955614891084502527806525346984209383776916116819408762079515827943576849081846115902701979731117329124883985461703074021404758858628373839816518116197143420956516686245577127572447365959627908305591258762701319185526675517493396937745811606922447731476069167140084744248859081126733336911771233855570777500071811088795344160865844441718595292872413443179872772791601155380678350104675848797279604000968631677844767391726069835414028031346195154450240996808871662726560158496482397133257621502162077845958219845122961747350106386194822779336460976052587379929020008885594190776980668741817864255756055422049639045093200259418838499051488577602733879855243074625269553839315195265195515634475929390688422752518846596404098518904059253291113354383962712916946157344331674426265115053861799990105464987944514414605107475647653922435471499781661156642603823603460054159805859487931955504049067505139402047889789656397871831476519168576350833867987672666393752813904601611419855900872526944856265078970691282888043537318238621625985771901900011909500562390645562188676351958705451461995777379978770470643278837949301253893726824980160210228759004540848484537556527317776486597235203385470737477430229801643740727199932580690281519771752855477945917833238243516220542667420610282213972925524179589549816047052026853267699868071189775383858067006512591205624389900838703201199410353512833513294384018092644874862324428418390505087057843316015434221610882696685497207006817606885603975681560686456843323105419790546664405465969198322919194886526869352043102843147698562762020642865323866756987642537936440990328801896361123452550400649090223742244251120155844085509451929753873377064591734235829504952146302201702873260976802533767716725912200218978904383507457453267741192369840271538295967242710715720559974407710615142986058915324487861223594687075581522704437713030472504034733412308118706054448603657170944341248663375676357117640484460838825030760706013488444232306260594585542568679177349752500013098417444904150804345223139189076279749715720195786387921381331817367566619853880078946910788318956436468692147372630982351911000421465281029989380451063375646347586305870549018262733061210946242783079838101861514035938543548491148852804866343086867479143588295933758067496524076875623396086374960640518879461019359257140095357880861399053338385024082129296622093559063315280022723922893762905049964018369312369047327706512386770455081476715594277602014890319231180152311013682429173855433579304302448698355676098678234000765991983380001814114335961679841827508984036397194339505148417929782572151150070325114710597569795223106196532319140713028091371506060431224392155476377807277835843372741865293579810123644925384758123930245302684507638134566422815212257380458169455512862646907030886355021636139969660802729079372643928616185412254493548195743499688841527337813976862163740246938764272271313201550909640360963494261799800884016504707930941555468556940075550764323331716285606509577403737958306748229144996142167340820648019176986815566050315389138243000803698537970848742589288772282188268273836277963095132287981909461812785055902163449255242719759116970590140816366216750219671454369771010437804979026388715910529780389376990812474840614385090426118063348231219850718947419009858803000272869413861824430227149288252675588559763310922731579671526343400818247506450766701182382942993519429116680447991543925967044979068078079714395499790659179264635341342418271614403993607771690085201443869884808363324017429415966502427651634890714019589450159069145278219830433962185002461109073512879152529325214864411403720189934752542500578418405322560736603568325484861667923771436223783898667072669917929696485900459573813071745402412256776522719866763857751429185790231485273304166022010856816854441045593405059015514395420873390144099060776628980659828906394600428616596275143351067209598332540940503228387884386266431193430391270784836223091514415259449349708049781828517198251003262649316053265988315761856800895255713794298342981765430040428186216634708244864865594442418508141193113461751078649246469647675808011743395131930430918398350240095426614972532851310658995676903194054624468398627502612996903057556921664555087256802831560609453489840180599297061222571703367919193080850518169195753093624831926227056304695715159239883441721050050816516598236509106019800132435781116420257115956656949116242271487304677546774086483236129826868813487083099682774881934334355390607319620676420668528855483829769049278213402499704123752435237758417373849471951306926760579485440509780837100509115333946177754836385604409115068133548990347228485781190270148256392938092054878994315884495364350795006242622237460526594430787475055065914770011524835004889225341985314997382195000891149523457441495442695112181957463130116759443273938477522393420940248420283062989007098026304673666603633854169340618688747014960512470058558893751005524324870086593314994435477711692490914282543811438597377836231775853825468859636104569492851612265428277404995664876907178249682301760413812712480438315751460818811578662755435467254441090607872555183940178579307946808802201003288432661493033099268013087883509399778170816278132661125458429084658018142084623902553661402556188231615847054608904998326915192739949739252190662377463772735671534708110935756384844406751274226761964278027518250830971328087867058779885565993529241029334259676414613339715293901284576228210076394066329431106258865453927721622263383546505478229015975121311431157329046260909356357129684551800032187827573388767514666500804802967338863971761185744653001374690488610030278900515190877820642653218125386382566431364328077244410341345607834020238036153067604519239042455497344917272304079428153411624077316886779541526095550472119163617546231894999034262451191096874470656208526693011334632736235294076880412105749240817956561686536525241669314260480982361224530005627265546997120942328082949797004313614456309086859343146758098672298999597362368269139182582302593523730309641577444955571807339401067604950094593918072928445527027316951331121628511660829042754372218835642193840756815555595150705623118897243702803350987751573554567429611515349226934008380253641264402109996290787651114413384754019361847148689335779554474263947991842487308846405474936324388936660478586799407893490933623708999967316287386531547623703826018321691203272742055946472301868894143104898912364348587856058864265263388565029740389150591331394632306644624176458888716912598883333859905215388816727108869849565181688415592458661116429958381929230782190699227535966639684806553130662593779696090199340518049358347422147791556354922143922581297663465466413157624765970079755085696688790053325294336743796295063923080757147331436386442880177669527008975543067801213255799005513839225583395992656800856782573376407956807070037405801692185530873843954939964300636399943194047119336246289876249450686360033626922810025424797982254490162856594933794866467253108152321710588978447852074983401467124061673284044902934584133040556185494773942907162131810905956898649571905299457493757481149816905726562833050713781964658330809444069057130130364817186533396485307684391993075858508581280086555188644785291070199229619338809246095806772145860315114696379621115345833354407763993566976807775385864610140035722698394729532841582696775657630554560399208088678739655251080512698368495758719855912658867040667032010687046470422029731413092681875268147026572350444838481608853068702839743161931330435925664988498261483612669540474059119792720463435109122021607963662584683670047307337618475043915471676139456717778024540210949873013364115311258071784563300392085768438582415475312954603148735097854786821460810976513035893234645248930042531497875511444420580776846327589393082875798557844523848535967463045879245262628911209140319626115191227851200541713184539214841085314314266302171256851860142108219602719427449083895407360683383603725757995888598483145190243673666755620491406990178942460174219927665323831399410109263861757155613359084007203477152926681053871675972810207526283491612431553038702910068212458153782922759982941696414425564251976516576976804694768741496298696322232334107286836581806332481926038871365201913577575079522895886365928380847244841298065266415627115890834334082241709058059348959440650302096483827510450331745259541752138307858248717115478531466143939345246739646038064537112112521910102792046404661352059757945465870005429868430325478829653310365072080975860835074936944368630081845579402262485494660908217985555516735974130010452493016378778916624034393866575374724076245117626906145508798486821756219635908956682746959625937786992954220066719386558151902146825711945502202713541828208006275014549548560544974009705292489705804446184591332108970864538679508784859786455288176281880154459183624624739541669958939567755344345429418861473121705734989382245371260025991290673606530976624341832578316323175666569723539632006528777571431914196521781549817011484443878695358705078439861223929141853427575486650593837749206814161134138263101276432648279896256395806212284015558530467439320907237890856550070783063039089283387028567066307843558586386481970575605265908448553895808166770809902034776117892701681209841903664167845889026669225954982090855568711993961743943638124264402933269039788803155076023989331799338957428729134925265966515609809060305351675364410252262684535453702297746401230115674832327459611100271064381007817395487987620521244631095369816849357204627484385049083037952644346260042493651244997292737259920079149674261970026723392230678497098060522348147038593820900271367459799950666483560374016464779932809716191574765759007386322308585524675674332140610426221866971212989067252100559561995787037068395093815520665310214474813395746397724818291078520048210190745927537279311109225045352946353108667332263108936878875216056684180457625602777974206520093494976734347545362706239236007560873717688942435042752195541747893110066395779946659500886796754433835581368375202618432695210288368423112476215192092708458691426892192403396533210367888393734851471677237652670194505718156947198129763683651104948550716103480919059083182601919413959098042749959620185597540716231431481459994498393591163538496274919828578085235546706371471559602375903092327390566996474367421661098644018120810416560313359296139317089926196870568874971979447335953900298647814499000592502227786217905493051606367944368681252828162324135365736625027183331169819699989114024245012086818371959147496280937411222412648844163981697461256404591186102764856550892206917475721250256793864788467142937571027801488689629790522840029379623556491067936393222019807975864035127467358095103783256902862464862835763944617485812135074800604219604002210476618701012881871357684821606402611726540654668241512058213316313800098456533348661506862249097214635688894740975127494853169263277527187339830405985720983036550045361830801348771768838734352360526180773853071987584487743472759583626809248198864909903970007220215121915590609122770726865784181348576257818436653682820199863689360977604704678314996369455311503243617758554095866978916710513477640428423093415659808400822456734637839563013768661800148024880853097404727104716359463158925722117884702902234351746713068091210561364274212635117576307349439257892945977203846106476522542297775887808413505777376907098056851097754210381430602496620811441602747286269277578333687307257729849168859276535074608612882352565295164164970837267383355385540819668549864314414418071307059107543488787216727776388105111840438695853881453722999309562957280286081739577393039665272582122331140906262484403765996099487898193770323034921518560469934802723814247601340285989775366329936893410753281888500808363520002027188442970272409538011777865399892454790346026680748984005808574996173318894050801827817220454574933579860875337849604698794163985582890496837741511531707959335205906243767903719206790097158314653182515499493515233220569071535172486662287276887147162296507943732589130062330357175341975942206464657842984698068982822715579603369020048357697559263075518533245311844358339914437188121610588918886447132430219995519236024499476583962992155977535162317805328323222231158749357682766259699893683452099595535791112151339378330401575750218351607877153735638775842351520860958055222296698305429914156975299960753205998221448101405803248385774715111985935049230370346419554983623971281647695666439876650932587409608048113496543598452484707510054162126474479252686186030557371278000773836626739096806860355003877200005682134819355457243223000279491097188686990872429884240291802219507545217718429266908220341364519413814797600312077898881894173038525432397283001620957937382113054083856354492576525394820630382981639883161779898751716653131423373677727270180433060013329761625589639052845846115604025682938664435016300752636911719108628544134907108231137028528149176134303030716730460789160504438013318174006877159887254879885990686268857950664638780054853534243980869815726243277076812138295051650155701385084987135160371853107248701280611475304397134864752597501844344323996128120994425277176553734851342571002531391693054977859921636081253444658633943490993044097306434247922619675657827332439693434743961861620179918939177150740537965728787377116341067804971329579424533239563434155012822486863279359259914331098882270813402394844674093862681549339678560508857059350407231942786490516303982822382392048369201931564006846905479536269369794814957490986686336339799122506052934876011674094407935906587910244900720679221620387694863962781243486065634331163977881436452915946423778866377067455527987943821149316115381456710313852376783601206102179788665934079842205736425445387429597786338466430040064314334120586376025187416099415095305400560452311813760324796610424134204501758757263656343621256676598270209769655345132449161571941027999658917850849018897340396874667210571936334409162694074928568000206945424247464309481718406246706907687959374559053688845697400038763307659378754007332480328770159949248676359260479784541618547261364346129045121133683178592514259030392622599427984778358484753950033763915114159799985101963904063926204009106214384947011077633169192325493562664309279533435870184596015092454500651045032812324773823621642112092549016819289115544047492202165662507975671784710931427063676840619863284828140325897215549989591299392675959027164474437931762559350787667853736229986410443783150170427177063901488397957632267463090435095082834435977406444199930479032465596634724511028950934050116001205927602566276368180347037081275018409140109571989023823714028991701045666844118708653657432367218048565356781605946958819662190835331926133231375198137610682145250151295626326940633819361082600955866700356253822761293011577719092840354498235289296014097006860568868694430390537263406758136917817153252112064659547655978083429611386597838529268945478182683396186008482910987248439746190985347117765480242567988710843084105276864648719031371086421457281147265839825236677973108438072811205459266066166098324821143974377610147902077162201021751836089788534564038978068559795358571597269262864651677154487234031407631568965426938444760230890763160114695005849715994262364857376055518065964631757242137298368013750133700536509599235095469288544666772345790048162050006181246096385219884373779363805038321643605886543805928946292507142228444723274698797551354860152583701437917182482590542718434066542262143253254353713200501713547383740287485243191350148440018926134521046908013724078356581427059379809639894703497944266243337235684680105949986703320227458632686675326527010677368561105930582226442036242923852588111602828813838598028046127287244121032053272510668984669316093251534949490918229012633590092365208896862742238851981861902986664858796148924770361872275677315205975147068391358176969451891891414405443029388095837091852219458098165065734536846164440874086999166150908070599960475054828740041949357594342740025821800751399690567094663761594876845918421458956830699058858621524033728864927407929963506765561350083725962046619347213611597147343516619585008145975401099791338454038387037057191081230963915000392850404209598365255718601432940162783586094609563003259756080977982616765813947349027407899467636627428749278213125895847555623018177815100704901350772717683761403622719361719981871302484089650922972039118452991580202649254242010852984279319493874960774964980900438322404324113607037749589456949844384877773914713098826707107059594848137372097123447462264902954781180923892031619730214691351712803015188591985899091639347983886800850614844967054707092023428924444133695111285299998996078941503371074187058591812424472019087188723035371935289981824653896884203488834635961719163244435115399071490643075232297131008400568110239858090478705478898780891132071274080025310453749929387877054580957328917399694264984575806238732734613980348742953707112471795839818239842733739601969002650300883621998751793011903357474522531887433680624290066690551262810525684210667174690303800176600133622719786123039365023631592501166869004705153371514475005569846297658844429637684928813639311538802652130903000924707458172271100214889869943626142108493951829776772966136548671805206939982095778610178050865976628593768403586990344507989382591443087720698244056230624470718454229334641211577079946940641824896452268684434229068137561979920512978859816834165358698103422282286771078152376116568540439611326496849209838117709961132785629182689517749591771646906423751424392987609965707010905990456332847801590856647397466748607244037247286655910947358601832194152696436493421639172927385942726477248357901211100782425003729717902731696003662941098031670379023784223542247683053253379310644231400025027572320309838819885273324478284861705734128803780386955156686124960451665795749943320586045582669747735503820802798951256646426772478783932928806254602641583763594546251097707333146553639947492908478933493545361326381377631219122289130889286253454878419025670804924326523981448037551632939810077635831336044935359896201668427139884441932965200049725605498528517809651199812141722009831786517887579234285497769712259160193914573650454328242704783779188331091966908920751125235153795110950480313219666415542340747583440711772741615682126884345606480879544897975811785273784605186803525355037457999590563144563950066733577492977999018348341527323772009403489883097642265714848380068487853767799386067797361375681373943013507568358284339822189752589389800125459693517929561930588207536184494844006670433966975910023067328028298294152356457942234488581350687821469570778308774618788736231088606692212444438596724016565288831010910940174191745308709876203152638849366437057265978107719521458821580367858414083124752071307188570386316641515062246766385311427580008775099304556782689779261390098530429795284849299953320947653064356951044920189762062189008543889448810473902368751375162745979246231286576227047428577014528005138693636908606940033357392672728152968239704916115291513463495834424914178372295552664500914637526499348565982405657468649624771979112099501910442782987969023036214349951769336216089061777278318698010194994365891175895438009290284389691512059432559228439737233130629255355662172242712703376418049484795050549167582890708142463762409398601476967842282980313536385762302376614078561838501281751250735344220071588472934475877380996627700171622405896668335747641004833265734887936584946409265060011292718323321730926578329540357600718250574322246236512018841907947960778092571448772377259098389215654156327699118934630112410557104617595472567882296404379349554908963355946399982218337748779159495337576795787815640509640244381080498128964437778959878691769287695157374839111858274433949464495188915324265836125215862294864276395221833187328096406487236783445696564786999665795471135456122821392141553576445504498569929422609268464822596021432910540104879530785738403531598306119221832727175733184288552036391806149833695801050727972234605112814352059009529508841533282794009252163230344658329569913402809253387647739638571297975641821956861926508365879577654704800095499006388044130349113390620743487275307330383146512508548343253802487874150474730572233453737684668917240633827595179219593986082571432203798054336934240153175197965810753404615858299478025120183733619404329583459678963594161230539822504854831073231380817405519544117989294567959970873480779346334876888289410234176619405643666826412788654273910906323855036443957128725038560568683671499551944728711200913881994112296793412654667076675288527814493865943521638484416535026375378890040969807845951005736891954470974443227907002884228047324809395614973238363125236351477495268379078163823437092373353596415253118536606797858649316950598314488781641899050564463474171855243898051327249883036732935022687171697371576961742706672919958164159882093868419823467862783109969974300811212755841119832470788531327683674254748963602028503116923930115532893311489720450311964963610542150243737527627904963284643716769289121751384665828184688645154624685052262005635992612821379731680977705201163075581217968266259707039759061637892403370297960797727371989781878279799099287213958286381139506852759860033215487217583718797453523580925407164587301693666129189427266033386099700433995183094112295758046989728044052732012198164717157184476709483187562832942449038370165524800435966860551310227231453526070878250745409634943548665211902657500507877863868137623422144108690958686859550791130532283964664148329220194463866391455772330488417680092838726490092743542651949604444767082394607312166831151745313072035247620136237963167555895612436907779147752838222534751488160144490155629285938186210428134085831801964138700579053952010568419653223797218498947652962164836030596833978301549967412145482631963088768832238510520109206525879747246977542863161298382810970685433902949156541478170471648581540824980341036702675035989598696919676622754661478930532238811546526750521249712850959091204098137436007791366799273804706518670207738527908098348505141024111636285797027807512625609344741407435156064081805156851809718695614260898550557014679538907497960861018845943034370164232973441389381193964906161499352814927789909105999418792131166621195817127684383618594498025802772483489406048452180206413736079467843579376219840565695268220823267890648879045142454008884453130351668986565465073990939179687094260739556174393486014561752285612570446862285152639780300695351125987411559684338522369814794128226227444920914029991195994500466716934330774140756708033974568356327677851822017049576569035928861275621819167534356002372612662371209875869592766386671941897583423912460235834575929219658155522158534269388417781191244771421900650169272474799267332828558586490146961146659710430543701269998163771717443374378030430653055870453546571619671241811964712237386689242592597674362189926653033986219868016951020987197203978288551177528707087743729926037351299477043142289218692243395734171422605220617025086313833086887634820991114433645277527325060783587941458571595886263327382893786218191100368545588620548933144251993479652339206764360681431395026798786101026284235283127022946189419016601833350974136937580603178090469340449189552585064091866174384458989106093633838189271488796636458210514717773375094270329306138096659071944693023079737096548046990071793745712609917013430936229625916486427194314939295992883705588112932226427676937820138244365936989067941212084018908176014116181731105276344151752427434786111035583230676435407115636754368703461437047118222892043344298080683848197721143265328126879656916479699038687065783520276084828570971200973671164111260847929629194976340148704491263909103256688067179386236354810482613809079050422215080190823151812506699318530533509276963875004748855308962267045940349250562894597340198701522837650062124890899413297423571244186826864807980481544502471154396710586721673631223833898974676530983285809170278083295206706158625401525468509736756928978537309471940990449544364442506795955632495641385515767629826324427543226737287828737997236282319774245314414417659503829067922796289340824138752218913067122504749848732795230478424053298631177743645296610845020319663277383380356869740474820518948987257105813186601869283804514505555493018858316881169861896912626249578164403794718544260659049082039552915890781574998211799000122724083180886679424201614451433006205574975584338384457435671794248214633259710739921365450808376851893469492294923251199833013254312352755119812113824652800267496644571030591116940206445786916092126705056698984269747529141587074274231301306549854948382061165165093176716167237182808283894995123546259537206352930633070977222583767725916954706095600294373550643941511064145924771899351096174163647518555903107907335954064850396491863344418397551136173525312037519480293752768484268424418465100818130419130721025227815102184651053541207804964444254683628248820900574633660793923588328708503960908758507798689505590592640124512999170428618654624569409899623145055802704450754915850940237602124477477563770739788971303640532161033502635388536190648469519035591971872443818441571297908633134325934690575647337224607803905454907429118526444290223626196812750693536569786019599064951990364211457023786183824989722694676814231899271284764147070350326302719905376021823980207891188508506995104172624422544160297789186942466027729210787254033487812581457414687867366194151887009842712007624031942394364389723859048776546353825022950228164912769040645786224696802329305743298668963895739566453464916805407972141389553820722426611523196194877544294175592100339160983122912532494519796425872996192578145016782128621997265041744015831410938551610043814973804102451484309431661461186919955681363259254912433460453054570980225286009788537860730705798686409340390404230475266303943198902358594521859644019820263131615109505490552162882154889252718558555267679436822868743172165531157508599635477391192770724056875444096765274065263235564996425718378211697149285447339349345265715798472370240452808573068364307755242637317184609512355147865988476166034755618730148642806656763286545622077682589021335231802210205975569093881816478954600263355554524921043337706834009870750470595984311232936796693021768582490090801369654848643405362511298298008596748268489354892425428025097839284134582874004029011048314456790215367886407257833384985129639061535822258764332414483330951558607311815386807098632214043663863144547538230588884123150093329024108996734922468513946279895448848508846906368575720324491596088503134819175502978909241115144611581075791049622856189590987952525933937599710978704212887841326663854595694039656687396865535443881227097161414102093215093957852750241360648908920220640516962943298099729354246207959978842923611622454608668277804057883685990569134663041533824119592414951440744300022572414708984921809919622938931411049232213080946780113845056602036757932037394806556765794774562047706615497605812447736822241853383350821786353802646625363466166287896206072885487615736773656565970509521160510264661973045863350337660012420881497136535705507640672729891364535966017388801975046385018130755915005145006142380348565094645688472691056078723857196238160825777207862888160531604749205067995241078441967812700124873182586548149545370729225565033214328793210472127502214958019525234282665908601788509880220670278505369438166386482903066852169783603971362511190749174738909390985555968140067818676799429543544559891612823552976684769964850169003661329191239440822361347175262669713160602844645620090085325357434832445046181492866999693425112214240779818212017807276397540444590578274368806686525186467453828857139092032203052609756180054310965614981623192624189665660570840527618947496029643070570109989296653763076567793386763568397707795445913961880174805296306260642721457309930559641933847288576126005091834697107041021073445220204336748547509653168074969769269609146011247480539625463454713311084978219799472716171022345504165535855117492313333317796447933784632741530603102107841421562073025799088381868941786758403415481857529857798496149121928409552723473005852634319814325756974163073863221209502734695784307183315653803932602599566746380321361333534992263525592434173610788305645567674838673317277462434082143560902078893566933649348484632040054111993715981786923735578318433841267726586491777525885893105750936801839334173866466771958989185866698548769448656721904900689912607568820014744891661865739941454999223498510224794010853769261934466810943599853268821317769363242492119658553956334614714664001828160514618414268350590209392208285437418294411489552338292455837617982423171583798234819884785404382010389382776776706838053393251017904501967304943743504025169824626547597369026253433210429795798122739256299335848415184558580039887132977193252143588337914860780775180966271709777528526897272381747584643119805112104490048396438355832429030350827825198800140705838876597782292384983945610748901049664364150822259648233994732073540547275002618221863644700281322347371585774212851480070648372263046406331757811698879685116017295540857629102909416971004363807249678909037339884301619022524378752324994031891246650825485789402515941479909635118118871564497143414566664193807796052134885958778885392847894683675633132559975642209966074345232112883477502977778544988257564339998428003834621605400047038307246619315436514738853389566361064559761513965557988978226737455221267495827264676681995167414984325014733336716223459758603420024068026483126512829268107545397785151831562969205175869419763394350073850044625282680406027238056514151948735607302327742604583584577003453618055880790022674254213752088141392218192834733585684326412760603193378832911295337205906637412933162787604562669562735971125047543598283632626100286043291454648606786904747956884806006024075528505670843969840954947198654329587616839416884593865505047273715717215541079859819887971666825368840557796312328004780840007031152026592467426753413207602028402810009663364201901897440387841637880810656355775864175761935398448696041709380420726286023507409329384562118247480662741354481823777764012564320928677760370039963922786895661334308302639460510263374972291268954948695650392263274817657465403751872028574602334856692373215127275633518157545088194334544041657453932959032907203782612855966339114511174443603793151407445543252374605764499675847840032235225202579546262188458245190486177319070754268724331310143006503863051946397102416947944480801511196884005417153885071383586329194444460322824498145393399016491093380251132047250529192880328079330306422638039283794358555775392120881834618169132332057335361469992023508047588703324589984229210263130208320636959956284563312600836666468184311161785209930094249773956616544429094754083317956600138829518580669766388448025385621345478639211080439722980985151066410932065509613043210511921702564475591261485486918420050989312795575181375150124261904571498651311059320293060352146597356544201486622459141897859605556349118087146615300023276694602675961213300485294463949035840331453861692453537633131726923303474280008194349513547650401567779839446682581698472040653014354174863434311746195496190687558512967463460198803125853259020771623530228524203758147338270609041380826541252350807710593844035759684172672341928169385398444119499596324020923322199594602197863836364359370606871887967499173577541980082195904599427439385597629998502777411902607344261510300205298249309368636256397061322776420085684837264656759590823920901960836291571997123881513213171068633975137626696587952084965946552658078062187816081737853912236832435988894483029896028080656011272718329634063380573428972327229973662105746152658260404734550750326674835596171605109329330888786871714803827130525218687553611476131224929135355554773965476517417121701582746798493510545763953872822580912042603360265867268426170972859682042737550011082489752285441232090639229509763675239128716039836960079979014339067173767400508453254757592191801845021772449321640161061997480662743655074655888217444355692127034616732555358793767387490463002381793929354071560650082924592336650118030536443351553422671978174912574594361608102603651725826370612393648857957776434225540715910057354161881244160949458662086599949493921439724086158128514325187378381536340618920584221087601304628682127186593288865570611883535905771821119309572587008273201691096605946706150162969614215088681485370098905681386097881013724694760258452500818041246681830500585009961634951697380124417542737947207883856173793616249042195245426986625661708733443952531045399562511818894736374511222643680811387991163856956982554496927265123104199354150499185094472961192385112614482618031507683526660798197673573240707251727021922555033081454194393304973044662800846186146347765927362905188602297531699443043467175152514085989257756969424685653257652660285648736712455487094079890464124650698778079628130872304472369624872368878111935758708325783651188747891079242488439984921655883602885172282633742911257351836549623809951587779224747469815949593000492833382072335593868483446285029384976579273733275164089521224283506968878685766613983970495590642523761511303479033136015723448992159764783954921237629520886312617121363604476852341275223593427693095558260224845732268276444710975645083336688715002820624270506521188735591154384974966293628512104605951050159687072130007998444028936647003796333380038520248508768748228185616264796428571711070494276475536225385535810713356899395324365091204777687592605527463931376078887007257533201773046236605102460606343296986594222094156723459187466982342766120965938630872204601049208650431087681280182042476613581019185846728572165896347216572330710849843776614348854407738800303314988935540494461719817055181802705619231209451887091313424944538202734391569793347119106162672801907499124586767168063631057329811953301601125561128251594012650199112378584676375094287721563421742084262139231076799122937704279551247201949128246619833156221043377946801997213140341666634622963155485280802968248193424405280131589498598064606236995893861702422007033317472991103223674247087877732631649187544324042115789347502767812276244858964083435499215482791304736715878431382176173906833924740162557256811404122684195914185591012059604554602239511156036397495503338332049149822735516771762679028977553087331604828729675626276430935798976995868790933751758047534972946617358447067260114771910251614716803360188583198141338215456497527340314315438450035371850334730107936560148385368762089284678386220205657964228281370322889647062617317452629430212108228501434315956976602754642595387145509402514207248904825249092627175155292895200631050074811348639996287876870588010765623427100656868883607341167147314294865865836331871840820999112327223237274370299297652830983725314397548393572253427037866128779387408338095498107539599652406310005480410874578863964691303766640430218029291345797648378029520481601011364917416777460893710866789984155933504335768151958477779234883983341994594693826231514201104731574901713636761269373065379547299915239296425899483753737487440497967469168302611024311967074253517838458697695675855261956999775245230317992631526330509544462010720497206565446781403220637258388865673955294488872404422233759725598882202104515774867179600262954727957911797319610418528313604534479310174180305009679146259469895310949230313117199571441092999663821489465504160977847845694178335941717555465661120425248421901899487069803912460502568944277072595723005286972081087485198697281601476169437333759159468962529897421935951514388964472615890743402987599271392577384225294686837650977936701897241586212114129495396054917353282403195412292291441232080289519252585729652875291260066360278769054999023854345083200477129029217694877363328624810899881760385693263351343009717111625322995495391773800289162862975835195551660552488811204195435035334395631585193479634235376123790048848622052498410111449943705717654142341765621572393090267547980567117319939421098965247214161695080232482055799663061449463959934173696132939552678687255159043223307248055615751454608056444649414497172753672030185123226178259744942011615603666741921634308560965900284898793924347178389790435756820348460775599498781491787536333788248060053564524947964288883017677809736540513370878696731415452929254630857899658740930466830755642798819065811803137791918870424414838911950278820910884975643118834679922931919487086536652542955423056407315384966031995450719332929002411129878168711586898090818220513482119515680367847963013437313414850663106014625068536196893107048562321331308445986311708054376638858396546694734694874402604093077161687517355121954296594285445562654312896737444310594909080043275768262883316492863496089650232901490061703111805239690274201998070694630406420794425745479205107630655747600810554490968781350084275021712386370227009062400130173666417698401522903696960549741440950529855111563037232702612795918787913826286156956375324807142879173445725010795475800141781631173421836458979420021829698908546252886573620609622034126259039203152965735881282019050219424492455829565407399827019042053274425548548571887317398395442274429199604063452284055231119386687012495007273196406821953174149045506533985575481381873285382038002046544172876430284502444423023867526420878539516915680285301655360356853318076662509117214436252021711211232663806005728692890231047479886096865917889444483464412288153263733352479629938543399999905610197392471361627333582410965788514658686172097751401508483804358820077046341407558308297924364708924701426283173241954042831415585762271060424620143599460950261262169075038436995652258854893826816972252429987083762580303489091117386551488681725198650554242067092502373640955003142927080541986036594214658611369067704859007851222419866066068453797375287240025329113433807345040948265736246773127690500503053247634538726398822287652426505094511340534044104096225437291123894992952115598759649545381513384620926552383295220358248994270292544527687355365660709822967676972204573432680443588605713500417761068006586497324252368869267025320689605211543158983315701588317623324516832929825945970836123167003911172311916912028416968303264479951140308967676564848694670958027629104047002672742397418826854500049616541675054233025136380219235913569528989768790148046671990345190351980974508497549099542397422282025166438745890674468358158330434042771781179887725157900710461907849412087854463294071417097687857226072195943121771275201227324185681120429499003096039144565232954026341397721588549271874823914214694019727744254847180217512350445725532864344422734766484654625830438368335764949031577994002229959536813582445614148693671582774694541729823791643142226847617557360032052719059955123219702826679480353955611914639455013857509464202451788668561078442508412439227577934492615794630121920211249135216504194625661360609491842655894555924962097299580433555172864626265103948635575402516292077193563049458120080571512060820115119630059867359035644889862810665386208814959779689742037123850561253874429905603694591731732575707077494402543362584206101703102049265876111862709871940619645138601186064486602197855641432860629968637426293479649219231361504351858306178272842796553239123729943698502141272719175895396929717810975469990303687553812567208248678077261281461704067688592272236911180537564124139291279534437724891401447174778548658706514450301965447770639228183140007516576995448194387519143616547229817689840909220424435304846491873740876743567050700631469477995853193339874702663065481738374603310191651393222417021066040433459770040482597491082386495632405916207381093602646810111496150988589094576752677305678863101450658812153077622603844583535192442267601950484032284524720231896994816332741084027207914985836093717364754293793020146650617536534710551088688385469518251424170080476885445658338928403845199032608887808915396280794677361043529119372285940253373744605262801522273701254261896236839766794335886625914204570942141070490362087518124950716677800514314398894320259965519710956012642964850949451880525302795335464949018800290185394990454140928288091390641299130819771781402518615592915765033549111067139899699846176969772786269433029027606962820042642308956283169021020180271558965248934230449038785568275744480262152777945898324212415377203780396134885811522042996578665794438061816653801968850161094307715928185846409160956271887101512053578445958628603885896383090743133134053230609722390739466975227031220685144353167966306643604122449398915335645288491792656102355919839815090426647330333456985212299682661164935758714823597545780829307691632342389221505058452771177780798307441686805232072494533490919072569173614602981418722556511956430511702165231703737511278943983507372529109614252513922260482907782362037881360433703184313562173703457230768836625072817526908985395294514842847676131678388966197119929288427690445154882769552139347895065972099100263852269426935673648676178127852823697291435796864814965949089368578893529481160160715499549502528431589187718606628689158457739987363240917449427792489225624333473070435187142939257875166191486149681596564426333742023217686134951944557635148713512927255064170707089480561171195205285137866769691613993734025539236465778484770442085803769796314751726498749543554780963738344224606195180659880325545579083272365032117808447522778376158469185811110158905072754102765208092573758356442677008754454204588645818230356210688305485944176772157681782966778443817463056344507445846398318435212520027880350476767594049878208762472247065560227567882411260443406696948555854754109403523022736934754558638820782320541757072316713328922640391282834452872516894089260759386863325994882466598574582598397747954160720146147471200693608215503335411420655711248229879940911980117580023258840570146641659498325225983752075001151653668348251945491741472407373631702097012088089350544333834353957269703942221623871461636422696291581963789896146078587480659825149992553918291830514090506164940783765541307515969818669880915569954450683973118485607839382436004305194123539011651419526098479765334349784486513960937961825557226273682351005160908061851032683493449690266891117273349579243067708307717943302736997048891394769249330228126588449261388463444809990428528805080394444426410111128402737840087818125281912925641216998045439299327698192637517873306299616194381320994478726929346892805969562824688839281883330719036281824353178981788967872203065669163011070328641155901825065104861314027151334471555265527793753046139975303518302246920733950876704635983076654509236493965098030407684613423920677324622136296869884660784483706549112517830272681908933798824432247748678715051921733322360111071548336443561947396551875785007155601658703418736157142571750947355811170330381504363926036344989959699797542757953767268556709400000871515647141408308157862950091016888347051078228806591686825870361025273942981335183520656164179114372326209278825100810040365463800593412360095329891961127280816796573767065430586707368421429903185442670875704785044537857909482700138791651413613021772714795399348722332657938466873308525081944059269405834808265301780589827060445361336786255623504122986501846583402372333698340421236487833711994013640728768436578664959744703293947884921166528458630733556664432790930814565594096720842222252902251037575724160136042203151030815339412813602370590031766028144516199371585456417043354798229647003730781094373170999872439446130801757185276977904304459145518716266289277472262422898211685513044615179578774144260600517403386546235471214019522796328656356027228513841480381199256436219712637756237968837117170035351280737004931557002610214797545195395575526091093562211034479847381422844351589161940330880341741721463830928049390345325813471036000073956688546442740204694832549221780058976272673531706571374738682469983065887247082732018634162530375549043271487912883514442526906988012707330942463544295918083744096287623704533401269491478794685548942927246965816585438936133641909982493264690307185514543487980025913439615411980666045310736746936202809864875889194399296454499485533789431648649188913469085787092517633113155200978804582666382704837809972070955133591241629601698050634140333230046190528561746673355067493890665856731333811992059963403502488481295458446395270596305970037841135484903035617460072359363140456493727178741426323965423607472854416247018014693191896944195981880552676301176964785223265034002388707192236983323755752122893687146907536057687647322253155444666304165694719930415228225269851802154813132932701743987182797262803662098881953772876852161712724259876051729886473171119967003314749528363691709658333490008287732925516992003383181875955571535698845360983934815019564857435923515668363374805099481274734814988289581153554300642582982539116054176459093453019456737029349957536474319334051702558633564799477976164094226559387654393303534593655972890286437174317019567931582019436121267505908412658167271822613406459987414419117712451077715118974881006779955972033381701457236736979720736431651817603028808222158514716040810296180921063770268915318359631249416147688398581985010590969206821439043903551968192809909797152543603568976773413418660874862954360446523029049390197313018230359200274566408675260478696999804361177295797587662415735974741851033190269602097910385987187891674120436350873947643924449823043147511040206998839702332657624062606257243012446711144700186417626482737731002798526001136369350698029537023359334147322406342442676901613905255199121914507022295999768134299759512941953630931284278060212929841714594719102310695579954665550432792521584782169710515225715397224868875939261299453808885288273850878704559182637115110778845040328577792583250592249964491503003044545186973971833823065141983538820077645804588638350440085325579062473270480044290930242101339017949487451458785013368268961101204583019867905011433717277352998525593755603506468443362291517889122155613806919633004383970518693776987468734238863815305546308477028772327466436957425607510299248494766433139343115092362323527993074040551752342285555512430992831971703098916981552293562424245113293050528229638188318392114681118531701784316144490936252483634019722259844085426333954346113109686214312328737826652532920664860118494243309597072521893444471447514453009343566048091201665718934905771516294192496080133698868392342589189330594479368777979853703137543377613073302118650800073922409910547217802499688075850877667611878936706013014489896711794734639635425488536725406979628277507436737912190125839205604011309796685563352431760239812879265630865333638721594474307731194500101397659799757787218590402594074987493467058353371971831213535846979324807566259709530137306489484315792272417910968554725279048954795439774128177970870447646385323042876773080142018625187053228833989206980517267670576589330296539204512296170914967813053576462449878516777718628981631114094841344066043551194055315802374955587385671085090002734055980908163404242346418061713005553572299408270342945614863981672525611042856759122545434333885077821698448987080117684212304507677458119088735598509368322395505213187276626263509023601822657502757411076164993008971731283355162911742043860817653653867865135679833949777613278796621721748810713449611720036984453271750606742330367433425780805170733450238605170889418118524034060425639337342429186400615311415926423616997019723338397798111197031584640976903353660299257436158801784092463041589187800185508307290349029595750316748708495034270710821748558734364738521077526353317708594888829634823634892764971550915375472731145117017383021204577289569351624509441594578069780055526018019938431807561725358196638091787152556546927270919611645357815344844365616835395524569396855723817075678695496578064758650010714285822026690120331877454121414705937169629066389792289191122062552226566405224758783385434633199401818767424061388660949162146384632968353919017502572275029359686135153510637085502512925646775948579806884617003790989263539303661789438549844451728357571319951976575096542746251083064798047345535760667858451422178363567655843510457665914596697822350847824562486514629616609855861440668524412381630789449298112503750246792460229955061227371880520755490335439771775337831053498712877258720670372407778609053742678304606971428279607417464571600728323837589782492871566812306482312524809881638257688036162765247083798473266188344682811672250451180274200776250791231240033361957293480470320376266567176500961538976495086385707974206692807249721225270061563885623961497082706502047526931174803492504999673440069723107513442426119892440646418506604614378081203195148591516868012111769826554054764049059201509482533036433867374247318791158160417666707858060417789021231985490966818964788899782541825969266064675976884434939554691581889032322605071778763735811473586355357258783316396996108101466176467978580642336741226217117930895788563440779922768659861714526660175356234348253509226480772868840703932015481235468826035483610950535869004226822538662896077282843191175316640825030109308349913974148808534780859924732038559098110539155812784918396666380728988835219525060078891016316833083418921199791685441968141587008813101597583923725046543612186012710848534097451660641045500152384278091996347955872182996502789168805577525002613871662067571983668188060754108635412944175784424431304593809613696173547061031629491816435314516258052366433097508309300799079140642078431079474879679567387344464434940333490030706686354971276365918747081088331386850656035492879670024637572466089247600126063964614210950941534516963187875088616103279389151661207997270844516868720022315259127025967243098069155227897134553651207760260401955546987033183346906022594309080412567360334519883591909591855579833988636538337122437061113608802695501767322047003471346919590717160719750961802370665943889034469079571918823560555627787804103350594825847342346136756202624110529164977184295367836940234133104467200742031664288510350957558131413904236496519423124355517234783491143344832443128103728779686302328445273785756031293076685382207157725049499997252685119134730292675643242517765023856941736062656445046410419447892351649150036353572008890090792235468104994353124317731745045418420992478917303396473103151817515599720060283518144876441717121187062673846357259646096552178321879598952668796097758091553422304364431822330333513792628022640273988689368047611967526097943988542317139008996239729850928511240498300844772903755092744765891670490906503976267947239870506080371592501743996877978154408828485220977639778706447951916506991884763929950413090881600876018638136276275772516746917678298634173065668763164933686036813560615325784622263359989817106835298360259916314807509270625916269148022950812216773925723510072688988472986369998699604640962964189037171600116904701660868107441057955044294159153457896820721516504292355400015872923547702292392438995059344844434612461829164380691984724581811064132921867429996164977377335280208419409502844967051688124983039095255752965936764058272593167532994832944375016566540849122874781969329346469892893476024797516793791127531243209306407468551012860937631966209490776343543786211037331224653899977444894895535651458600176189219616126086939390692379006945618836929520212440091872477329180855666037802696603873486479719376821300984407834525658451788699635093084425275173238120234613058009742700599373616677083737421708631757940513885987999625592402713013959645378764179214334670323232631157447283429384955451234288587410210354662494409013494230634103502174018773200002558601615268775334956206089673052164993468285759539934941483497490294343912455570841358635597342236293890083672754536138497492781074220158131467815869132310824943188724018542029591258477487397935402553741313764965242804889407430079831679679062777320895566269475197674545997390260812694542759531128568190926797658520252989933956620224333354574906987243957666769749171608471406876256909585250852250213397054983357234530778882264435908111257404701852157349721323056128347383516253012315361056992814390146852319665175549405636800871535680366186053041559564696908784707674204046112101302640983260599831714770593939812201967621612004193312405141075514900078758074127817800765689919405572888677080547107209537743959862476712498241804120670281913473878616532252633094381439309935901046573259034963734173618221524020930731928257905545416034088345395458034479437923691143057726445847879809028900600100147222526426711781113511789970874818072000576932819619196438520305976796697432372238221839716417079240152431071709672218125402766407312764257699472930063139280187400206183677589998356021683638667874532303464110742102323634713110581217704341000507951216007843312162980838484878974721281927372104106212100654628271048957479432489455221360569996803853280001532020740675216617623217799305356408780962855119103151711262212699760251973252925937412194594396715978016153928117163713862945214939256522407743182740716890325844914870517802279142858472446896470359745270570427940783309684798902066688613632197025407619053576018156292035069198484067598996240835163498669626179481432602725890888977815741425731321067586277830405891860683602702665010470731195642709111016918146338180131843238594273435249425177958739036704376104324320826995782979312855360540818654474140014536256953555531957735877252507548174822339699981551726757180919462829317948364068478923598700241478549354534391985467231455069642904712990032453884922446774622674355134438968496969811147817456731768910420274766768846310792016141649611012434868623646974405616567558797779475115276604428909397216740262871746301781483512391549114515421270341236918067395456532040270299247809328155386201047514669494085644884668486740335555701327629437771391798839494279883214304832632834090242227744802648749894081914356335542166531104196276592051595189143557529665448679063720985046056298838916911918712210001444340827228077151636155357020712192282546588108052716870935723682595225567582513341282592772325385954555074114386610004559217124170725183020836445681502507054534019912027671282632375955987972627718721477497055830295152168836209398069153717798541017952597762678708170984448785512837634367820225976489649804452268740459311202793851538558272373185243575583489386861168289839485218083476453570309824785877712608069837541451133203427581774282039329291423140067292621774766953589660562195906623865500834319292598761085100759025121518792045320639743777352595223630765687798212163077602166955018891578035798188773241093407403846096029422799961941853843423058970554977934139660131809250464959958384259730849839723007692085889477886472754686490698135492179055411349457127393199123933063740112599676706181573295468878575970561914836414245171282623467700857107980954382277929277558181992439865686285621097747686809740907777323691932822454892759705869931800055965961987285254497278443690917627394996774932856534745903903524435113046931129707902410379770964744936474566086878348092409331779253959325837452341906633152021168246792973092436486143479257311268579679348935611937983628070239223637916197092197873684698159678344143205138558522120468878573446986031545807068784896222139581964796561986792193058095568602943620511748963731847692617648973309663496433210617729460522897550101559187784369363724848220567001258243588955662419429180903523284218866643423125377333782634744772394267357239828397017771101959079505540258197497272654692656580518489334989575549422169148462148540836892007610475001165981458079033857191005272663903186412991256653854613575360299214169639706787276827394276871241854589811962035423781182838109292119926485568478158874370896269167402655187238894812197398701275672541524423361005793181920197641623437657368688376855688538320238681360621450981024885344440938710568651091724083736622295175753036407756809866209389273194697906978279625776942300288435764916795009943326719517531095826861235674505734396728696436349396963607247888592788157545141822557948956193074187468206658123455380748455329901343165109138343148539426004706634763867209452538865802080091834068905107961609461354248298632570990529983582595038977532785096471972044287666322657150615271716036751649981195358373619778880179461074642124961517681224958793623940641810690230018793447866763465176304060556736172112505382728335359985313457665215804081557097680760236372818181678508259421978248677893685168480199367541413627134978620927499947819223388544539314841023617987237569301816694033136711849505186679973856671382446828070073772694470107441895692702371286435373386870725925728201074033864858066387684245218081075966623871131772317011365139620044134483271401386923283677753174137472834065848670456502229716112001091619547139815917385645126307111911243775867972505193415010348761609430154897026642809782562039923228441306310932276182190625197781451870316584496332040396852355457036893649792709166044036025381278042131807354864738292086376571704549234228915885537592766218043672269708004874856346972100889774651482228639637299197467037285804436471600575314199054976935674885116362693557686768921263647961598529174580309357250523269893842611883342645783979099180418501459868697029647520030326363670430163051420022555042919198390127733130676436396704081628814724164020043001965183576801637183869155789159477140394415863508368456740522631668089565048865263304007517287200671466146972793518020006295417700423988450930596585761509803153090006048151796260644038028589538302065859567944801597928177354867137723330704719082418748656396771017137750108769970846563645298084767492099006475519143035832970665033025184243217137533176703382809392904630693489384815074750845704583763849893846313437874699045543109183326560896574901178506318815820663934704128502012030698530143121045564520744104626792778381865470646029815046538565662607590971649050271844002009208165642707083687040839046099069735413058165785518373371551013816119533374387785467202972073505677583105983611028172461932915704358089612250256312703631116927658147673725422053857452766942529747515359970092264098370381759122784862642817404761480943309062799496813977582792954462961104529012646417548423310809100295205330475752023780451881363033941738591563472998276817314122760720678418105983780404382652551849199935795509657730531118645433419165566536083556324801704214892899484406178244651657414445965392650727271648254718698394726466425529597037278935961109886202682093263587471093729326239726954275373500616676487502485073662240901201831053617105211158901615551410731041791456353753454838905697311263396741980322910664485736998446061860272254577681330302608115805328213225308282933811689944917845315851124930721268872265307527119798239743534225981452540148379698684285752978095523707321085944646821676397089931588358622192694407603249104652173089380483657959161802723315615143584348726117545625443632196367835371362010988656712554919803007676129787678868814324342403223611540876596388299532807442487891801420805583682340733929252896862777514044493467592496748076023541176419231331227678289434328368820292245194624638664285229978871047215837991841888088758360105031104196371377404648246840278304899015513573576353870785838720184308252320457807477058846048498499766196087635925300522429726621978445444779582074598976863612301059241671131020772002065398631371015130889652667811345079122200802163179652927760274353127772674410437267283293316583632727889349239272557447155458580457283812810588677279861800342997811544969446064647226991910554035469661960463257399439440618902114909953388685643298370938072593570905410737706337672286971881064956175073942797234011646725174435562047709784769360852669376921648298618210110674310474774974182626231727268866749004520113356007364914014452735901667382437603430883497848847351396834897393741030339285151141736788973106347297557043057364705333182421072291046556024680204552156701589064807189710300707103821836215210972106214164571759778547317383734368799163784491612855414319776897198134569896933285136025454550561870980091232027680717828688848742240078817429118348219067681792673985185360667053442356782186740937509444481927138421399708482434145670743578902106540113967267418854996680371421305050640384366930763547039746840013296548338899323079435652241433606985069783681557378034806951189733049919627064583950499113621232426744981637392480575234767546958042444181165587138025151090323551531702969315462186015347779525656611341937858979369075348697680779924281496123880431521888240537794435040610546393512075301377612314740109575715706042096393808491255985632301503766626307057970947540386605809550281046822224307370782156805505245941090211646774171748754207135867670587039920932242859937238105517665261773477065584078702639375545078719700362883823119400302757995782168972383576025112351824869999590945649723178188671090960478202937194156894790591091059119487281303372959215473198630560107622021313743888727484801968628300981020594949873214416562447088819215672873579272930926114751619432457199036479602291738690158775677360524422270372740184629615199187152894894449794508637339268682021528945834328920595320428421522820800480758145110299224640876391514545475899510544504566254360555659519038087293238391293079975180281906277226101878828684295085877618488423758170164546394920147586858755650767691659266163456819753333186876339463421060695950660762311372923324100956374054077047202485538377390354343602981527626842784242094561263848385733808887014966355328583164345109779573592392097343535568886714124284073830808455512384842159337254013423145521771542641186964148397790249340089935078553147648350503488883154163379638527927625163790661168122194529755768585358032761457180026545196635537318921172267955959769707607241518135758313014918183597167501400749245297727044184902398973366176212498831902762686275940311019890343350226060564259051823045677166110839321401150617401047678671626825059582497946833345539751254613967535075204275376023314082993133981077449612540399493999912145501910655751090599267975944868949800334586279114531515663908869755337145839477485046805925064065565714930968674977177165687080174636397744238004388011830089376519222275574375350444881582297485908043949267046934654515432965404403019519660582780219356054784130006157451610629553043498140864773566161215943615353988163720217296176931693876441970097135486112671553574565567716646865916992012233888221183124374460999517766252326541053907679874632330190101179385784765658278852968228269931754898290339989895166877119616183982222792797542732784175135106692203742867551797023243095688941257386359197977354756275998943155393812729467832299371846515036494511532156707136650757046394983516898212072428226621170249207899485528823222603530495262200832007556973653284305792465764926335240469416872304595173018548545162371254935228839317761928144027835549571526129108137716903194677781232060041328837860177845897465709860727820036443145227343667643181390929370837785144880146775510648781277355219156892443167051383588882653299190022380038329904973796687748715810293045999789118235327968315758559276466944373014063985470183491081824564790295118520530988451382189972466549606352615413826984780911847456001771539521247330028122009548148136970966140437738339812055245344047665056621067117525228047662657680067006273333937547374989270332648120590503499707014336226795064073856211517911153832254814667707715630920142895826385054018860516521341870810559460598007426988950125382273702564857055209692107829962722391514545056363525015728724756170404078085607692713764091366466069664645786332234856422790337487505628888780850218459748355699431165294536916888813524441822143436929674549725725652860225097315641071293603700410234663227013462703618237377888917301437017476386056070062529448900515096901922283934559755187095401601222946091191441787257681296690061661278343800880094922316230865041451820605690514266323026262916721215003724177201982624402008166904308010146181176390183109753518746054083259415545846206317644926943948063472409841435314565632615424922524850008193786728905437069512907999709906868973925742293767894689580511337230445717687900304424531497405375592810089096093521722379928482329031484369600150200531115853864027577971935306298418416952614433854146809915167932709760641319108676060014486897997806491980169462471350139136581383384287993571384167353529289641011260839464958743308235759097956326375547808786316647489410397461060278453768801707317247710824129805887499520270151395738658686976239925842258251867905067327071643986040401722002231782251462109589681200495973569797659945632957201531157045991873046851562814303022697510694441002372099461852822261910419757202673419638366438118057953003234263300557280810561567871093941449597666553735814392461104577010438923796846196140034631546505030596715834899893896822683655647959100948022652661465861070438243866398313920155799474154400130491356138045821933532115550712638710768136923526781324727698734721732696048559984427878443799212049997510253707535779781282186716608659493139247747213209478306955702827478299503989906249913046521575126050561661266436506887551012823974804483886810500890802374686635711596238746874636674574170297430685072509158251135437104638646965831689848757625953578071298670435618591468351150000949229836093584169570668251636526883179853785373225608495773539272759258879523335185151906608319039429240170983905243519498655550486026287157227955898945592793422404323378933076395870528253903523532570759999701574538448679256049802677046999672355241669971406341537942475575596451035385268485039870672249962965028566648623253245563654924514543438263009591482330959934270084515685988386722059006870330810011682388177850025386283755337375636152438742717420407302973661011286039368358032248304829725701311779258818973615491829973437757825647513883416994023285978487432836208524798875299645367132737965826727659741577675447285931356889801538745363974922476406627101657271505626650626300054684900732484023112841990752767617845293128442187484965106551344807064460841377961375254199244966444055887368875942179917753391265636436003464177910315638427136345158038117157113435821723711533938442824657874403261523123058877944191100893659548311323234659475804339980621486481103861531313243565852891109765402922413729067396780692814348721935487725408729823394647486698349795177841092588275563577377746074738067613095947245300218846645949801158747376490015151722460853963493949520094647265269786689347122737748573931745489942468906533269210920817351818843718176437076592974630714795120845388919895305469472304826338970829173761907011701192525210061452740603971887417574094418162766634180117048204507194638721585197670630377079146896606097158707086191371779701731803174777441524251387217300538757026757525788424430607675262585273147812181349253860309978419782485742746971044729420293112444157724239871139089387109351112838902233706596680406225123084893954851826796330053572534590236360382294788612445339833209142676685868838672372136770786317339009083099566719704323511467258110702966188570861349466146246882280386265428816590029883603325629457170347064334941841456281297540326462190970925560670649576749254477910913519773412354230376472523604313511962560788910534043217261523109838249104951212726474921054711815796148982036886255745458270970956322222619095099325512794159335205128590833423213106568773106632125132929546379425874048222727386990175197937128498909674065663201878088916532926181493297453110589289506903498263952538654331605464136626300283494131482814307632954908863024828647687587472405735276011569927209442850023151476263547811677772878314130794976838049516040967932143020128350415948079928449898258200908572309114346770236638324447098218690368903552551615982502153861683660924526279168535345608564755219499690658691364851936119111723978603250593047739669766338807744943357247781545533050495552735719921178272016486559155624183265286692759537435302683537729030533050699330422003715435602826552030329965126482960540773545652199186482879032263383950241723057731467054500446916355089644966032422147000348904594190219196017404784677285203049804539939799396138314659142970500015826535397667068329490613940146193731943155664642236037575735420390616545423923043831552286481573998521309088828772981238421436995712889009732063711898714725148631464251105677949806874223092861933419735680119628257728352691849866877071363057600585128049598008943018132770283981213226519970459614552746014102249967110880335280732316228632258040275443882182955602454792553381764478383655498381306810678501297123445333400059244109574490657916874238464228356760462372214473179412207333807631290863795081222344190374707934707625786106756000311772750304218906603054059240132426024347034793602147387732484089962059572738519660365204895636351938501260514511978622174633721459882853302973107792336287595657849707275291016019592844897437420978310818046290046898101963575262372928381914662449908546509956930790658831366725891008348506030677938230899174355480007844291566335460051041616558270750412277201004500923515333865895967715758774839470204547330690403578707113902001788330555413347481744970358740690775973371112696405568069516839014026826660754653207181404927028939546319938323325424974834324285156103029778818888181997550655114956194203525385634790793761679200548963325715317279498647359281614592358121284005718094817210752216178130708191372283647743276355816179957747637354980327505501976592876674478213518115673834917405825533222674166943775457160103353006179008395148923815879848898407929577926971102623162900267692840251423328062201992278880233920259446767492415088144774455859385554590148297290656392709630815671968701625984421587362677071942789232274926973889270376645981702938716008681310995973977956538832902029056111555317823295426861088992751624139983770505298902443475528718403792168570134244710215521216423629758376074018674689997766579309684529575021811861254502454255893550852093924747790143593590928299073913759430101324289612033627317203450753132831991285456325090026264656656253021169957732544284700509594091638532082429603822856426446047101054459969649597705588658004643230781407867059470910789716438841490545697561020157292893369931521698182057126266097007021394693186889354732828780984629701426559303553898477602923341966009434185138768520881338158283805786339666859745388621676614160196500636552904403862090641769248160255142245055471865359670457074425265053909148593907643650033313370543538701207893594934574836721701377479563052765576830376234596079350296364746420938169254513791984761300021360965918109314200593971638056228417631836541583078570977446930593803391309970169223008170385466080426311324463544331556855077607000850242835955021511044089584437026925352382402646819320859889759846474283378270216156566835672398557380292965380932071446860038819340062134881877158356176435520854316849973618431531332885455734532821390056250705169121579203852056643692909002557076709661395521018591139015619927946848466810456749652562521753940396495176025938979301607027014912965423975961384141016753755892652633714486582788195994292760522428937961304731566703377514418281413305635556971385381764912276546479032418025098584936044179754822837836124643341762438159104302694365616435082194857728819771182560565127181855067639968410048558316406343023850234545095987611859044854256839751683295119882402929014790075251950740366480963801194908387411947770760325096064911115612128950390894670322043676420930653559100066638664142554267007186712599492537660981219968835524841129753918265040559479800012090998235035951786495105510563651052360128093251921617687881475193617660269112908221050499233229941476023927937404043779851222279914402879561107437580810947280395883707298108705482996622682336916797070730542658688568948656896799140342751896216673493906228306950685021099835859513496992889442839547532524644823862106797097901872779395924515146498155752750935784615036559136016730648550640816000649273310049581614998293309775223326992534651868078555915343062285523089960801148898851661097114940516138198911584209147510240808296462004040615618398236870874041474199609921505502895189393212835243101854145915965384925463993825732774861016452835180928467570015019205348757973909789219130402056303861955451326946776822965694180956053662430833362515470204640550773799662711890159200185560833836440217346174553791865257844603327485661086058697991668093191992622650936698828692062567096325095976855350233217926121246482010388015792885114107801207679437785404804787334045790012450593779592109675834257768086284094291824538211926859732832219526868894163573065156721557510011538413406253398720312557698988077362979927151052097979921670190834286851965190056245096945803006368181299633897347664506487735449320333797655546464704143872440167544644128554891994141882900782124769754362715751020166827546562691284744491653435824212343130965654280532698396260725078313075399325937080087788339309846142848209598437032799323971964074362474134942905440737061517072550387249891684771898941546473639848941958099341376299919904259141897888016906182822092181102446069324487284861086520462564306709308526124690249137667708449975524830893272758878692460846661212554215798977134497558299056231481927659573266340604922647891734147685688056508263695012666079999768211422420931460539240885089348173835982181601785808376660645166897574515188942893015714347382131444241791303904476725859743313701021610832647957438096154687594005110083902066119404582176112372880684667495482538772958515775127537660494215124410708531675272063021330626361109038345129502403138518195331390219805727007555743294732464133333789966208529406564201412601448230101706335225757131281353726418931455945453785245940252690729245045234701141646908132521574048914713552837853705660450942691646525038257062338054621191813606156051171974622225091118075832730011292788337401939325377676051311492273956068927725561976362952762819873145932165239276122460674846892838569709622508496264446688054194409361324955287629982546799351677049050501087641556247932533621099080811476419741446370186185662207749991722048903687529827602286538197843075080611581309962900837053863870981956360886040465944573560352706173660177168726549961299140787745734028031745559542740621211871273199073949770968735521055555254873776156797580211209873296193668524515193207882950021323524639823791739931618569109427043726067144729384640077858982778667873838606575786318163431292901012332805515930309838333678496426136923268756214740933967007512943723496598262156358973983865977018352793548369970401413121052182589493557984857418792693478521607046322638911955375687505675163430221321273000047133308517306861100091510019860181825870289419951642582632944594432612010886123830613963735396182920296457170287186583344329811491589262208293990436101139103614516404696045787967153469375706539084308662806787361078198370839445832814751210600304807754562480526426752417398405215577913090527226180679971650932232450884277598647459115846546929072274718194325900915443906465939097443978589677536274778747829517199185403857188034066808807631642403442903034129967051146961974150494094477788260617079861182759472879901399929587018248464331253780956234903920836482377022848909434638703350291423322836283265124543728275610891029853401294812597430364072267804532460626737981632461359933248335830207412248626010087900115350360486366935566518830812632939411537905403554710008759895344901197608644357839058369965282470901100739459773843954340257798379361490945061457325129326366496792760658692766115436242137742515616509960258799324023756414358094518512695067528099526760709240851630891955728486563037956166883775959646680131429564078334499399984396041693943236594505966558296808049919089914264290243786535150296195780851935615442635977325621198773610666743472570038525269084278304551637467321528516776450750443448868134267514249645274251444551688584528084300668975758478514130657747423188087615007812842968222642575908973605599861905658192720437965284929018636719575088281739011199400520203831925606859160310640311939415495090390396629970737290903540084591571492711462413834549703418905755670227737892837727654108081797458230249517275420451871092179779910517542499356457443398159555444628134788542882624875667723160488388055720881181620562196226659220493661224602306710863742221683953454512658188630517725681025392849032831950396626256959010083189082599856429520867057813347974248196074011007664756639322944613040425477896440340843180965951181226927712565108740512125674060137664009694594329970939443618211504435351392369177428576831057434059548247709019398100665617886466912547473315825398329954122263066707020777998906801751649583675412491392863217473906276953494878576236400906519087785989358814847134952852014865561461863153381474889252494266196565123736032866938446540833050790851410040420018790332811109813490053157993986406042032441463372562886432604425566555461825297108422213044842700510894545551877411179371009497192288590383586947809742643992324838227142265990831385560910711486804116150551013405445642938683550601014982349203846915052441370212547256822259396591096562702605167729603519671527817681367681835515577031472554733907841319848979905346804345903334876635265622096319575945313251064073394746356415507439654011694731656832587246393243346200469262317649230800610827127722520859214693446829510650591908362313348219058491483480897270487590936315108165692541054238090104917467056295782911270375701243146463511819763485030697040590225598118758001426987013920005185201609696306731609725016304558306318983730657082784291443074921945151092260962698088750974984765935414501820968911511533295810999026581969519731608263910230824444686740156493018129953604904817017650099295087461801159447875162838029306252838917325755263488669525270185849441752603031557649575954666629999043591099097918427147367950963552229130891486470336526350273954959472097777659068335691429343653717358735727147811739175240356728101677413400158619751773356409662783177622176489619558205826825680686142557303215359427479031489900945723006479387855386496922135708897377364354809814284124204018813179701534796747583772769052426019146899424366697699248352260352416656148467211242610859522656756867671027838878775627867771708502093136814352282057410926825919940104877502608538716642452007191668870205978115091277512637951938850719120947633003134878865371392309297993795209667171369730404553395460633030907325095240862569607305072572148146993559688963738343633469992574371722991674174158246092971338815131181044918878030802095961257685021738487501286775417367547041044225908304992734024850956094046663825169062735702827940086255842826082065938791297309853105461084883226721215253181975193094388667972099658724716703576008081695092021264445864304461348913882321189725194798382180725441250127569678122374974347179958895705492174963382521595408077284608691862512769666424354572972256427264730306518976046772938954323933836471022879850541387859229688858828744486468079144754545659161179954808611217020176558569601121047175882865269633865588729206059021988746051427733381061075127674094551613088107054233520011195739253385434382468306607406256065164203404645682225934952671307903886088554420571740212413939510299103425053936908815658865396631889060753653641290489777560429763909371161792873009310880132365316381333345021315775806830551289177162527212773671675211656251275465518719796122885923095413601040098514545971672529558788277145873205367816244207484170410779864405424901759075746471427640460473748213637058343560760013810500185497780496519055597386108798839801557457688975035327716960577911959804026844577766982762206674282987722661641541661886639308859764516576505323035655042340051700645397347520579501413061600189408617486730038793622329039521407865255741771624931164217906269657145405765621308367404000824075649023352398986027537968007745305658551572819742293761070363464420954917415940026104939034166213378153238264101912735901259719324567194025850108345718731362292370889840711200956250304528608853524055211387008208322882155481380919649009247730637691419484826260879405691249626390382111801420211240669806115220371342364769898974158464765721125906496001461439191668648614731161695075273699050329082376549959534766284742637316353305550113895056841498790542525318294697294231568048775384925837472304386413727510813490349523907952846141713177891233556742428479807450919560071697715764746605967861294762603053022424275993901500816502948723213094786322203357373229639181232122740893265127179591997896094617662307538293393890300065190454173279467744563270414635717216053849395819583584319731567413876928920130888652105006516130479780249420131251661304955473466886779896044204573695908587609407022653075796239235251115742418661693929946648547157568201717490198209821782825226607924313305350149449419561936894634705184690496379312935982852378375014668903889628772551573810090268329031962711630344558928370097580002958419066816335520058797276646865935815217498838752921596511211579606019952549291552812017861257119222283510011246018338077253227986958592135161475413261868294025668843752509568923001252793885984927014575821161929212361153699617275032099422327273025066894550567581020436416898262587286418324715444779054226252453379841121492942717638605256001030521202041041500235904974006646143641709770287326699354482388719058212683875379921963623520650523481498207678665803732143564255518330293260283307485782273212953858591254242007426337082477182892537737203367238314280335226917806990579580669764540560145227917092045964623441710447058323750088458708094638878314927846560571078738449213243825276804190841552165425182269184356081094747695397475473857277475826731009032192475060363616249184492709938042070548520652232044380049081317992658718817154382778860138511755484208516854185059777073038765099075767350250014809354301753585863804030200577025809317835841293626647385841487276702770906601892450045461994942513818799408929364259215906919825095480918294494898756146983730602226999838553804856576864346134287524649416832050129179725200499358970110051462398895386203798269301658609323549422653248654067532522505734860832803981042511999878963750467641019228510824630509361608160323632028682901463704698575864030037926070884015478465382116803075921376826394039006101429099125484330417509594095210978815724266770010258617005395617332549093807064178202165084593864281257811923570190409514519430093560575839042955814152053898330821580391394960663747622143088942299582840870036256176187786917299413149198082821207614316337012006833132113026991843228981758868137898539403638277151918007466038480184487221304757228912752489955062909481910681267750820185202154198559977209582645026084183737946187121021043917573089364003452052068184522954515762685130776721946116219100686888313781888101364474367656297711273944281048573899419659640773960842736344533314103843823070832747677713582319188065258770526602702718148204867024327655367998513113205895650259790020421803832610884057443318795088113383030591349719300870932739853281991674738061887902666500377171713267740061783344022685615041141123261348145198050025566060370514812439841960904095031066473117921717989431137955472308214729532688358727833148280341266494466888092096638420654115190175559169316929300859133698584272971417196204398920890754458069193540298066824646182151516031021340356781883229246615717313015778397526861456644931480479645643147576722593118623708178094314668754767288071014813552697162206175537842223489224444826401605241916831483963709371705512138512314546030675626962257317860938945664004848436329103332652032698938788614510038469749699101615860254436103079426672422804013008344974442542481533225688797919426478378934345953106632156156577226168252379942962923647450287495262227044194565342072931492541075490453890291323321280325837721063993241868773410641355957160975858202800689984698463255662159635313048015079302495966009124583073843788599532436693544553720695752631798529339360743392041057478071541403653680198844658373976029495643570714316983828347403189628711489933159132779655030733407349736966496990698207623523674499166737852587319786721798535692760726319600778582181603063374642458079937586387329349867648188649546703795747588094016001365464790204688884523997311095699626056899544931051388742025855034111743472819764224511958417049994397619276031970349974627632600396443263553501531972138224799218079363019148766323031045376050784648370714988056053954297867087916391894060132080713025296513072481972095735832479450141466519042250228344035183351788924242766493527206540999069087604498939290018975774989047978181882181874285634782692729349692544422076637132993712948760384260597304697889365623423490491952173106475362369799704977951076982107571728752357553096230768013125113160873521644541891891924463644192405229022409333855632483070790357427764194921979284776235026969645298625413768868018490880697219162201007291396342547404368935263164864072546543263186339492910712563657405916110991268062333649420385355319037113250164954400201930583620329304044136034298889637972400839416180885052239981182517311669602652982751275842889068831304986116521721676063185426026135750107215208447193319898261969704803722070612553100665033290419625536023918643568763779690870636446832515459445715367123256589955566209745984614914421510115214426129240082709151567052056793517069269996324538621448617858531100506378276244705622648436883371927802579701195899870127479357850466297117555398196831147704175956522795014183995307313128895761023186538500892439249866003467571197127791457786541234654976946093259458321018960297362756332881643913328790147568061900944161603279888483755344780680439740413668083581352415644053317547790908323794061325549903448687346483674375538201259452946450660952733844089376759766529721205220362321067360254437968993249384599280969192961626838779046298006120950918899593093353416600129322091367060164767011055513483270844924138401738962419115490616202580038721244032181908142207271030544543829783759596131335567534646498673971290273792482362340172101105082087100239219434339754579088258284067583046477942197041705892492848797842916335185150717524741566386024334161992606562497107129917255864706793228055158642274652293604859862290183973174320923754420098913999988554403599057450787086163641785954900335441230133629858778812476175124972220763218373181966012749636728412119482526257656157028886641015830998383328828314345599567338961367069958221980486909736578141215258685032522242972674976849802297801200491499168835961146187013323807471379595199307001596462774419672124301028091696227811670088414574791961041247485555252876307844394956752050857505792567699406762382389415620606599317184499122184080148958887850098056574077060906350819750411606750680460045251807003975374435265969328211416854991587083507001635902683846939064467062163930438323735993202576124105560630721929689366331472425434754439798882307847069858792665535534095100710077530434831840050590588106805590931395040941018740666915736353216526732983181898699447264624852584972895892634108541111874145096923178482938608944917271987888446701917167079742901003283993767688269428418457417506961547281644981900767703644267188525268177864913302525108576615600952542327707330509564106437580667046799449495961370235410741831110978017684118854704874602518176667256756108369482396704009342888137253895812560700644648009030184488180283814722992352897093320298054714618177601292268948112970499364557457937768532190383578685893597119128708069443083826373339134286199245538829357871229839617417557541798720730333125521428044439862087277778417216348206269454125359104407568321073976965456824097760661918808812457170088371924789945103855682140279522219081591226646104069248245572516232397040989843371795516272742824094227307979213053169114543845657357837655061812076152885862488193905575059432043247100214080198444297622706881707956029255756560504014209026520190256731107681413762708577065733425830399872836440368508288877526360283250052649311143065395768124534821861269020839038297570950794191361521565296609929170135620172548952073222404193438252219840092998242080348510386027790163315090138747823894384572510176009393534706256756174874251229849058775080203878092822733133241395144621095179045657688583815303526355064451856879439660041883829458247555889789368613687575282136223768239440537830181126342525403864669011933274809973472218621925155666690063838756839683981982564248003050015758533474931074207015668476497369340529145219075189669186384823641557953906560646164191281004123942511271689649095030284910593243453436216123536065937906556259123106046088473999660595244533141151605647779897698688346286200838074415968368487906576963623090348710443216363958796300070501025507212238180948589963155624105052522237356827383884361121247029863800700036286630607245366017520107626634259024215601877062611670721706591967237647661657008610651096177511076855043774366704233727025552735512798940251564064762713335729640823281675497301883889778435804621965738275122218405970405723371491076892108067580184192079939712413689982956555036533177097015732438490471136635781718701618557212267431581384029996034157122217972701654627683813374517054398533900860853523969080706865960859896695927881754403758989434668060479814583232956550624839483823188349187378678603192424509354727925168108122830926871632785642857090165760876370329468940393249788876034970096623627698748635295128172656911082487370667348629959013771573225813793509320667481561515109255348046127036126847800993031044116989908912361461818798591052026367704166858136125097475196619265055004163196578427122431141789823305524308569886603187096237700952529192702181255536101646953204542235200007280549409577756964582544351236365852315660637721289340131502743074969087467607304888254579744756105695069629836103012959247203442522515561935319730853538726847686101235274584597631425089866972557370865367351417888893865995830638191427083220901699320562228379822718759376306457169891229995703071558502485541640343904397896480137617817888353764057593422796345955808978306176427158357329289898019497911479848242487973806822585826323263065731773491779311104942511803163904773323250101195589186673317184986900858285018586981137241504047270394984900520137877732350547556582010058371114358366665683510486940290347352126808876755456897953701651944673915735881937572309501124356076972701457972715553714015994547412472351372235276109856588617945103312750901180989193132893885782802236037566287198141695725554029677694825747847286763970381632014309438442807765001026979876753420962225829870639105950898033468086051790989254122341383423856783672090672826123971788759262110771820929357424085562269498498640487003186363240444760967664115700503626294717849769721927184360208933923440569571722013533731030688239799790272781548103307821277863044166611899863572954117865922821012789548017525357108762991711205782172545883458725183798853158747119663678957672357199129925291630199929853090250363540163550953401883861015232168172305705933543406323762548935657632287081141378034659209928099727408612947050556661447496632398463382962744727425151534525158364338866341345434771746303764441575036067672183342614780045659109431671563559758470585753610500323677839533784680963186304981316457956977809195158812894419397798476063056730495299741304134362634019294946760485667540713101523164720360563343367871032823981583088527061890354169969592284995489562816741520912891760129112668842758513208086657333443927188331220337916561578172218217600267399218989731171045540260349189184090992074242274215099412694943715724360068139479640055612904866205274569784513337956408308291630178038281772020526263535067251227964284553039951240246860133320615781363881026775277066904398622825334683482001834533574814678090510289669212465505399132088597262986370964194598789232222737856480362522083812111076468563926367991549105298133988570543103356652652909940797189456132955387238170626743937874517168301152302087414970834782594009206725142146304237050377328287056918230672966255451574969229960203019504315434986485440489192890173109177516107101071404606213636800960830596096694560372698452574480394039012899967504562955272474822531676848508421120628750031528782466049969473200049143341422501391586684419626326169145614065868392979217485778171034026492913587031814192869347935066933377600377846884185138760544553191947859826225471730010829640222415731755956258894309765881979742335520402249546832864592387247030646366585421108896020441857769620264299879098601787364658046985414239109010152336429758776964169351517980836959857805305173549676846034930046210124996572699868626711273786488323869617136773712261414109482517304263555158229861893153006825200097054236267698331572410384267518194842671891785320723729756725871431207016333381449702601318629516326596217505227426805452180578547755270744722062975955634693432382471208608646233375896397634698627284356658055127919229649225817484126654036861971602385012471416901316178746356033777976546687929966894708644815389671030831212405808087632585628633125991606564950647433403441917361101862305631101884394428413059741698808340826728744337958612642642272078920905123247644861066418154114906813961577429469978408225494918757890707895751112746419967477334393021657774248578037094791178679946727659354317352815506657711982121367762741070297061584669916900772432062215146819911242459065518537416346219520019593984256991447622478091689778413845271902523249280725994572329280103560913052710776922825983395488768600745825923722224180109597423463912137226169681042979379987687545356756497384963522546891545620997119273025844821053241951507575697074289455189059817696602631470206298436185521765141483640977959108005336944990139301777676160054605516301532034631676472591463310600487684637815963023893593503695968117599178322324580843302356417860643339711014978448250450092097811224041289111087120239074915212489939369439494487142262423583914342472650534441854131494757695641642733682248719211675033097362675345334946484564523496251394122409896393213541258763367756776554684515376963214352010486153091436094011433971162780437798919020685150929815139197594744521336713161111696059724180827925474854430279149952727130788720158562078789398382611103451355519186487775888408925999322231317481389147491436823158755539966370066245979357074338050824732235278030244060356626593123392341057219699542951232508993901049171169614628180619276616130990242978163872894605248224382082747061378581659119080888130952239303205796291016513290357875535221724656594727401787375132628748293971522053262179831198594447967535943319303878114029636820965278235892729613819311249566335286298226145840551337390087090763614719085169060814052985286390408086008178792946485273548090085944700531419805556920697027356175167578158366983095383967174345121564006383395381224019064714518362384993368660826104118892419512128096906514280080124441727596135118648151622036256627792658488469179089434992049006429081104497079072366536725044400398032967131153609994660080569166151133743023734081678668977441523267165041832571702762896991518842841085856948892093167750117453928741917292935996924440287762309185941172107401873873325513482929841394629780635770028881986398013695484780299005715612256412016507306080365335412233652523781005791364393052002903726832345261365381620127358630083649335704471379091887770404297552786946890230169282400377460603405897238233425251110224460180360704550914956363328349260726304460808454282659106781097921110761334105134176564694129989381393070929087189859640359295819709713567456378236033138977098199500821413750707455226723231677006524566676252046762727681906460799528231340438918342384797487965192541008417115863723014279079383837145702804656891794630942609085114415153880375804651295451527351519781848522992699224289728935863916618284319236969129112325846430686994610249897961165022528366869556912067255343982290174186405224569379494398450998689551920396150158523181007955891578195555217739436232548130104852039372881381724041678749771240993177220828237353562428461784973403140563797227514877091479522571327174474824717698997988829102701658926134408780298721147608177544875861475010927701340511992394827663679714469122002527472388256700354978257333149585375013244799383923107639058723859042991027438095133758987504770766280797631741532733384385399034617963966874492331737936261574065471593316360345860373560507962364736337799635799154782575730930589505272374132153336857049651354866908397677081337476980407781419049443673002746691084685318006621915712304897611348315208462144459827814164313057912594688331888422704589627447096401889373005957550060062511269941937357172679385996909653497907655928897410907268536730859500310129870525082323014602402213804163701533456153391857263322853512184791127665449051917745746943787698106332039941987441217793798469274300116710334422593021157541928281420546802333460121592416618566382367486950426630907841340090681485454500131668624070115636166184520639662592992871652995706095994859143785820483611011297500234141330322801976368541315135312437123772349007828120697599475154827193406250452740116978661528672293671921452568628050252451574214203627207852435381240780018240369171623406144819285659955633263537524335072557614651493591190612075165114504078271349583053516652048397757206758534531430906754457885311190349185612253322426676828498125164388826340948905535172511270557737860660621020665394621204096981931542637350842047733516618862774148860377355369477955231190439955269944890757794968587202555709931798332169762061774782424806251594289948097304060697659121138696627305341841794151364211998853667237484804964778614678070167905495786632056109853713352892602602016879174312871727961751671976012657561968225883032550103325885037468171610010615378660889541953412451490587345720194454390485693326416872496772977704603190435256918010731383858733212850573691673521738924314436522088104513850373163056819725824425248565831670385158992065403662052061829426597049748227204874610675036955010311024357566798597232996811789581330455968295873708502578783628513899169309717622538427534055822876491978970415949792639881862383164902616878635415603328640226079855625031391642653252055737210526520608468785473568571857246398415115567132549346236281103972116608586314865745497874487889014858681717941698372600327696782360986196367344875859746230285472617209576359830254082560271907286939593527718969163322587122724873023282199216963241549746329576423621249320948399515053573317992233226484509114993136392297072425022437816713122618088832549329439578745839893460410427895289155850150265638729182423752419553849144557740212554851038120687870188778688508799530254065698406495363153069673610386908099450410322589023617431261823685709306674132780379235580876144812749967727518368417856802562692261807100390262951122446942073777017793429451064270460765625795306695662132327518849913394161394578229061368695555803174190531352188534193851132742173724539433383415421002847976506651763240515719765530646787788376900665619428159651091983001696121863168268365882558666926464008115318511390466795676938057979878041378194597079359387232149128855059730268335337705754747832729124785167723634271959912220800575629201692879753350798136521265497787437947765209361816994548136199371804111252714442643259494429906616877068304780263582546471703512044347530707512321962691459194063263159422676311009314619360632578179811458791545555340707973233279862722280527966128458554455577379792044988036901256956756132612187730023501439884223903218890042932643171983453702573618147390698913422863202052532840382717768973912196690036954341577612269484995561668694922111384108656034286943709379602213137049102185996168137646567178621090646091427863099705290072210064755352964185454586491878411275318602371067586102999109843772895397200888046643697948729740088026345417447402438133763643060491553981368516475816815402480522689043344703699504974123949046063336834042943710186803444394588628421769402668745458914743057343597197942514803729563040986258248888348323035165359227463366897208272273533174816946707718974042678303956672188383673099622313704800339520597342321113469898584400147390894252935154098867658454722512612810580114635222401134235956402475507465379901824571486347165941376408659710782805575340492949193409180308184691484867462054378310658947296116323673824155320128130091089606593135038056452444836265729233022268434028412129997999990101451597515357340928764801607610331870145668752964308592815133057858764663834745454076698772967837150996917597236381249520192374491141331142409795334908988866518868099102148584582771428969885207844723950348971453221651590131863616759160661939498921109922564806299007596093500253929175217562511344169356208272287040031560818783972102545596382012625325483986543761843501764209845098190353117441751997158444488835487994559167165337792563137355643983804719101629861958367292942949591980766024893242265173570067158487496921389687477827458622280341026944240802159169571761507147248051272313939020051224882920798392269997571410381068314845962190230652074016912175280677956486224691695888613423714901186324069372363204727305816891828966655600686280283402774765930782299701791393148689714357912538326855257689280250109298625974279253197913136772535017774089836114083530022072499633577685640222104807482576312275408927280746069597560680848163274133330156169037998942283586399390121456356943188306868344485227488022067102278163781015307889863417440839007432705853967738163760074161974616990733603383540753891364808836950098253514564642711192812756296169323799699297149965841671271403877220015009477184428311806772662931973972371024320247212191365880159844304889352467671566531280518232857715581832851093571534372961263202437027009519979770746711656775234580232887344897527205811068173431547041477761330951123784676034828983193159910430975594376721606953049580648007614648257462451180653857702658632438489960023295796542121777804701371894830647012186782808351544917295909454389878685479016182402099584160783143647024838237703976234006123318835330874294180135556867821763114829965209608831645052486813557102309134197503928145391569482493685856346258350850444474425889210082982477650878773366431289476753343501461641454880082661429372465821099584719087692173180905693274401532509348184425110159470719999830579805814306100522439684631285148753422059136549574938434216988001040843915297882944923583733193434763714681964395216033124177683039636982639600519512410746707747984994676622823245388878173160103456875508573344919811975221596124296897209520831512430472535945444955288963568854122726611221593479147134895524755748121546455334273737720731025491239203129413025529661647949038918127064797786694339405798899604991315679252919728212893287539011071572054209352640045185321471296100500718622161376016372509408936075848979184652989578220344992009326914508709542752185649834181485841551615127764360342640513518454326882236162381528901442228940805003289099083798625174593839669636965273208976403560496842977881257387870313835994163033747729258871729035634955059665090583293845321863753942026414933098674800710444864282608370229700721178223494396238213240560532465706136571730377448072155194732050233572043506364738908568120578598086141881448243462137428336015057320634435005827545459148125649290198530090381452437852977475365799436284611223085887136722891240286832840568036820008998459378476571707869051351713059738482942951940875372348223527635338601533518839500556492869096117961471830399133499668546520325295244016912824945000006654122638352138220765891315324312981476472226211110116505546371834587217763040641127910671738306504710263527026400968052184785583866262951771416179178526793136791328116814857328083584756068318071816114261575088019749851775609545487018900868112306456023347998313214125257860217367233900232457083244018191478745600155001820931224423723919316308621517524622504463819689708701571932822980085512014544687985788419441352633292295331765100435001031517842652952132578693599339417690529774380473229929678599675872709783466715974794454279341464932358725165822413191858709813139997737041766755451420678229362239157258826960521866525746603399306801290001715645297378712166394528025328828231763883911227417138511201234672261139226248367520425927475486866250163175394339600286145752454961500092974269941725617946892979113118268019137922031860861246258704978336429374392670089556488661519570828789585870237677424885776114084714322401860100979037835698992488282389114928645016651390693111798289965048409495162060199601178122854649262897178375763088495997756763337573520960556542371970038857803165297333667059479030511789003548356147037346184053483043160062125125562722928361474794016302427139927294110200295137680762044361868702805463047753011892585539491768545210304797274005346272983414390200037497156469252242422364940462138151061286715238752372656035738192034647452325624759011056718167748432498334032980760705651901639886282715191098000241991631572984419138839722386802234315563005249010990032546902908658652296907375679261231206632071223281971045864966637504371100564351031817787629262406263288276716394774811159083996225892724013022445865957653257273436178118138918474401242440678916011917633020714945693659105970886548081442900829543026439650163007327820480211591839770201440430788005793027208026183387428093214193009745523855570025538435901408264891876932422063043173264873853002402080594814627312824017729262864055323361798009743989979810417344627371882818609668057603865216400579169109355344870999594223060737228404066084310413182131629065582286675742336375459920883360224505147732819260276353028864143329144929247547915021384611142212434869108814084492558942459697932544136000079593518616225196019976515100468338831248084445720310796783690687533848052093957505428985902175400036877815649308874571433557448743902837469535398237883894296028355642170675145370075166113659533045629919564911387135579780780976491398056993877372725606681961649674482068144009785836552868836180190643157657352797271885719925145833897413775083707584965820528542963259414204176285232120830928422940703595083792034168344635047652226913303145243501363019159861781988556354344904411041393983034738274876827603589531716921064479425111967576274773035065871519917393858223856883668219181595159805938400313312661741280945614537713992679359628161893897424319522054751437648591670422906568867389637332900234415400757434375938696424217708991744515168927489340349582578874968379634356734056929216441432426672775961691159063307858080509024266033554396194756183408884049030995131455391985547328161619353534613552669320795722061927930663262935947250160136016864584855616759571362668595516251830389542274990701507456763736720902711374780342980692760601602952414397924780137092657210594902748021749271129847630464276554491888211328211404621078053127857613479759614553629051498641114330148300561391171063839232320668933861918748394274608910662104094828810529672811941796288741709617635109979679417929078812686980905186740342336838152372111422491230619700099265185578894771421040929442815074587847706839770239497126943133883127249659160814144761856514343538384321589542620318579825011085603525202703707916397270773123769586904205873412086946628799438992589935531898002640257635276993359120842916279133881523601386550565798887923016284192097415652012564500962530808615780261694207476246104532809511974609798670518079044626784214513321640161491051599329801913486943161754663489575498937958703363381713727077514603967114945655099880844344616844601962184447025042550930444684314615628546455080427166125437232194240183523119781469531882892919191778255099112274840602058034280405377028601278149074419736574356077651174409095058268379989799634949475072415286846683076991840081658777122374372211816286734804523220360494582712515100867266587222322786676859723003794535591438189457905214660222875800263195069538111837015333007300979967807252141910686152910953590282148342596010228566849853383692169778914743867715059205719733550814931235693502553456208514176237162946525955075394099539264094573241536358307606829679199764654599044941333080505990433074838576656296731111600108211808169546029071616914849051282223443687774840607216383242417836196763225560184554382256926786881921220800996426244171354255925433432811201298509027437069740518113664586406792839531344771162379023579935150716284312882914529710435335120859733194581621622522067062482420677555893109502434010472448451687710213988275374723605638537163786095172461878732578671806774500026620642021558330453163221982270677977850733949357577823264552745880500294720777398783103052912237420877866359432260034158898979884236075193849341751303165794822550567696094222193504993892967902749406054569469751483786559753209252021512405893517506839612787397815709859870807383942795574132825423795505488869571787965656509125315103752011750653993549068795172687601144757110797923057923933040977605346707073560517973461032255165606652398784924306435115971037374774624467540101953000868868026917860496980179114370493243343516644793278444049129948636240757182773073543879555529560449158971229292603784016826211066146728115000398905381485742480980951315855568909103156288258691359469620182921566859006067070824822907999101500829084010358292222007692640628751447432540409641783652164793799144019371104639559282670599930926056551268866918322700631355303270455121947326320915276223301727713733367312342987351783441739874298591453753727972757141797981821350358572136312373996157420969144808572189285521217236487309624370960065035038642217647150547982138500086411324026826839892525263965627883179058077089593575685161759374839768228190167296622245557396125879854659173215912364698750506698309393766435753195260473534308144517163981962147511206935659600990608260302293703147771026420099598766583974166606315077904796602997413555506943161287681396548503998772492915508348638690369093226023301109482935717914042056141508025371766117610039907715441020087676810150485541692532623386224480647900733883506181510436566330435805641933498421588892928486896411173375549405092585929694964486665447807321004072099203894733343022331050906692314428416438936548819300432981215223390272942275086792452169518579887316475752156828829309462466484939169772111558537474595914343073101468159211522509734474321347950039231863258852932815633505415784833671973994989305527526607350883337019500365043280608119948560045184442441662603914514305554416436566638692310603321611994757142347078256507799100410871270195188873671024369148514259979161175948916083579925244122627737272197775690662151713656818258500702997146182072823893593011066068012952442060505559228559520627060404096901274988331639875211728540051205482302407387523120377121708659564837074120226671065405808515774483359588210645596310774962281068745965310088280471552596313539827127425643161416113929715590125803537862655849489664609820664242766492981723362250875984343705051245210760717611561130682474608413697974891980117545799127090231294004827608484569791459501134671304085545734049969814226315930955197743871374196646209569624412212526045189143916883061249670052061171310660607477164505429043880374041211102383714560248294414486996762199079755919614781480955793005797298785957465369591447969142708024645119330231287921034927648973077510628972068240252745409025079521464245006595839898892183618843902445382162398077193105882400470672766389774772392786748268062892020623560656026198898097348179253709010678105229146888670429899739514824335165833185613811251095545542930745307405581395781012461874981953493752979598093446572586331402008890281735185431703171570926553002188529319801979924469192406873552237293082354395864629763109730310875825661765999354384695741339955149057229411583667634980876724277918365041309670417945350626886960949186467403099277818654107797896535095311975005811471769289812260267907489392795977717207887448361183341120188689866937999955919589414508631746554020705646724348888506200053019214788225008238282556674793066104826864269269396633489073686010695373632261204139331510798235596166095867048581381108008041459920547738109497227801989544007012809775494756459156983513757545998822158944026466578135973329785398483768876021692196923138844391793458889060938391662303661276630694354009648437874165294891081995430642442774849748376432453588857578868142046926786097459780540827732725591380307843452895640031096995406350788289194553914802142524609872300514278105435084268490319101100069773085997604475896996080450716929197551265192427219203671737953720338525995091208254301729495231428150588499071088185059555266754651589408482653996040564648154807841753261618152619442592267192932262718702559423977241015416282943467572844293422335655244623509544046547841551652793792446850952102663022528014311178544069638080005439757793556371335567248897953202537025084318141357898581213806777984411581911633277708470375853402917878573486253559376767943923638164682416280642210104407576707546546828385451584682076134677977491682056879953684165986119662048741021520991480488444573127291226385194241473431287218419042901709314370322253177827522932837222095130602131475284156881665385958218707829472625842978348589163477570667220154187769867892609034417779692600432491604924308389381184472265772499872702059919210095660144801850752306660784914786483316451439628140803394003043398086177432096930627911034220012781907714713243308549575203785515675726290172184579641242248391460229223441783409566344530832119376361428097690841141696285012330284548846332892461596726202398885513073044607481859036219206731839663511407482880748425212933478051254491072038094443882820339599059651708800880152196051059630765716083763550002088140589392466612045740288983488722532488356175611832170817490048936789794476757007422721507602046549854374894041658372852149365276648269283273503239219428256679389844569051895625044393747802302363444868304204431446153215241926359983348920580821265320875483682803039152589402833639128012161469346900109441964829800469105085990986913279567721508547207042622149227250856628430170791370654158546712215555276910907813357325016891654116874162029348444443266704987373081854272084364484920562601362011898161082562688960053538072044971957519069179812705901338474940680740358640705427992202586314167185319692413879211549749804753108270772129464114106759903099457872399661112447052709730976809327406466429628803672433414924270974559171833265547969120009710749627135097283382240728789784641361185720577170454759242917118921870459733054996498435644018189363463404792562805791455145631501830675252031344324104771465395492068737273103540704033396507662855829687458329019361328343655467325800694029281503372789293142920630995932459668483960367167522624465366264841616378948833346976857955457349768207493085844555661481663456045100460866851768460881325178552559310843162467575687318317079084494175318912994026966863701644860442571966170525010885531726866551671650032114589406688308508733100516408335183775349798486444714315399472964904770740371265330782972739594232847723990140773435633263971308455782835861355408254181739790290158988779859264573028737054973764795028170008072437362651421884193426345704639977153845025113078131409188590951936621868083858038342492063575322963145343003514423970483468818477948862909258438655368902911229144754363180509910573914326022766381823522115458840398646556339899253827219054295345046516532828882325639282226843765468477706416660044809831740702070627315598571167666549363693344981205910854482677150972983021971138873088373637337128428079381047630710267115496775357900705142579114986855370133039133316539540041877054289342321926543673744882549731819620264012424084532333447406453821538220209146013352965033316345749994135163730481769168795949088458470176055952564296885014396909359643839494024196277410074733916075724584913928318119393512308049069059363267530991572015881853604893809329193444928550561030740526695237530425507502159418685485232922874042495731974937033672619318408465798529335746160565664869405846621243403720195673533415251463205098022071837820264951692750274049719879032926830914709855631537324194551120818583683688746939359579789179245635741915100157708573624587967425675577195481500406930168944017912365793341548188022396904807834703476604559754507630514036929320797953611099889400031225002688561997839115339897775432886137436028269074842962040553092015776262087496022095639575739162061908387679681604690292431286345740941294964179337253787462161567813002973359617616094975842519694085661946559405118592921645102963662371872107949680374716100908588749752894538215323106803785579510691700724670578424762779836728098040796072659867352088748114362750602498316819226422173023890218872508503439765986553844132561784594469428458318584813678927842897793137095624533528263705753151748844962776362997646539211617987679161988419015555475815030469456945297888644058964572933367974562152249552959065217370298534478065599834352761215243449828200031596863513208458529314462111894862109667321809929160292132834445829450771816416773494473328547916088611227144863316352693666203778365888637289334934888487322592934816086877020517218147297961724683349495619888153440825146286025979570683603938277323012191164829605925456026222840571069365740801569506693694286718233231223715062226028036914295403792993606871876936499930566710991215143409740560536414650468447565441565488897048969465894853650216552430093004364708889690091751016432085245355110796681306599202858302055283524063449226452510376797299665088736515904942903993580799300346557306049151773065208461503400119040951413878348566664888955847471081631118119279557234030121467852368252120366929296247956956269702713888086099552833423458312908473918286896289571283657389578050495906018188650671790098806863629150112799482346355534857979839722447208498362098319581673612529624082881609042283589905607589378968176874183578830011084748591971482711413860895950721216399641992998246772290932343545142787006116526474194648664999752844123336355256466856685450878227107531658723053702563892598058282028135457169342604842225843060020235739545311022109152642022154437945857036743829720081711704298580079276751661532885892563137001321102907505860263999571536560974108455013797137596761906950122720603623980284401127695186809223377705485106922915298460118327001541222982182258206007682785314800372093647611960609242809597189401752545051704421883717009967573038664175915912688238170046465713585036501162668399203089500145590019800174037467038384043562215683203213897476784367808595079599893624654635540222030743401789012769329843915493169790206946709892299717767417020939140463298502847598716660580908429125548704733035252517986935176530566283549655653591058531318220844032964866608171905452269216436924764920502324367438572009101752509168772546079205108593513476879716402170165252197676315681013222464979435563220706929249725247727684839119553665149342900196262371671848629151298595482654487082822132661262583432511836601849111016766899683671826459913698003394481448632507182950868111630610860479419707762755969785668097978684812999239665865693278099159795130454985229415730867299897987539328975435624172575846855910112988742550559347188148682692905017658750855609572608933290077760945854478365641951668224135604409204113263052222006856950419052467370530049493188863921923361484977967761738180648698516974875308110039496542467000055648147875947674357609976340352966078919426141296096938982095544437017145943061836060125047398669398681202834506472684571402253164399978969892564704650233420411197118422778829475796850222715320898716425630838170620407588895535254290452045819533668385153123614607547604873148080998395801735224000569698204203075537818320924943559186702620520743880362268580063119155445973927717900772722087138118877729818643091259475560011299586563589963808253124796288517287007732416592497066488079320280325751422723507041211222450845950778196934195597241044589370093048230839032942710767893955332931656616642794923168004364974491662019162095349121749354825341813088582112314481635499937641713225731871312442397272893357702787977830900612818909610955289432044832763724831490465535617928456576231133649168299310485653337806923997758646304699728106436999703880277412943453184784623642652131912255081419394112289189926536570673454248126129243527099883491408654672790343784282092698941912521467433189313919835630144440136090905417761303229837861908025598182108379938994458727049337941528127686179299715953972492946857059780859855890761444722398773008022658846614107532953246500251577120090223704942034482012707059070807522308793278967502967847485071367259410426538827877603287429712421699609962994803631849191771214019821417432203595025835901579070558866041180506262950357811005704226222377097032109462319417777286679481841996635001248026417739020399570050590519231290152736655843845359039629687962980368487525870257457083084653532380983189032087402933840091618822338876426122526906784754515369691460613277516622548996096447752876520341969347283214100961891682999181027775369910415564137739745721353266476802626767536516909321807236273173931048317228276540459148070911598455152081133899997881897347965812482254783342201744071794443756435317776562218076337314671516863949842626095587095843905875029856640140851461385544221463905788454397252661594685063909680853745213427585298809578502963558728813025073894771306317666535397183475023114301740646661634509681974549634148561099756050658271162374270069121942579282276569210563999463595786709103663081073753685122179519037743550459023346649444191186319326644136394770461871023813603782666054719971561920196898549685340285987813350277281088079544101625977551432965828935823335882853253562225230079250845003366643356347988739161154786890188103607283262943128412271221556195989182495830310693653060886971380829859998439830904643310175838074167862004292032033721525539614774376632519423697969285264536226408460877523242389127605958065059299719836573889794111106334677588801174722636662792688652622106706524378962565141334220398509738771034395949069248090330865532003747043670394435125828915717282630132545449188116093681840681581827178584373758007673484385253295192072119323046926801850942096557195728690643650435216398176582547719055433286676942620792464492640540923442181028623480165073191027834691372537868580372610573712857685355904435530125084158790192608493439863407923604923753831591797108222097299792582605764388148905828224024279435323235146781503145498971320882436604173222951156560392689919632867795195255372314481469274530638099669402407120580472525317758184005359850436201781265486021597157332481986299998929816657446719346808415127275489648530399573294340028164535034218438044389690122242671278564964631892617464272507028480018166407196747937435614232756988063702390589647566247749315878730783134553225996366811727058312324326179457188225807461338735795225225954057301838770214460167714419950589009531492152755610125588985092006166919826430561693080575074803425335899408538296383179191804351391303384168967108914230689797486599448557457507951760868664845938495204547514718465970233879531189674039666018364630212232974086961261108556553580730288694144178941471055332436431279859114016766654199842831380513945369441034710980066668418554519676440469173123672507454268281574146508765291789191551387962633584208410833749496167461026498494888075717178832823497024208242828454152029922620252906568384254687914759416476968299275265387375540897305265776195656532494786330863923519365362422277945239391862762478508459805773879807728104526042153870159954144241744832422228880871837777095745378583738544798891507877147608946142149921047148281982996447017378588117321747166723446463093757230622747747552796316838529036785858147297750835537397330893537739552794693562435648362315015919276409180393579632423939178580006562322796937372428955891668431583091581603696446210110490779267371417303308096318944254883098355770973108843653999017183059587041929363228881742530701226746847579672609625552201091689105750121592733578906037621026534180352332991223683957762356181525712084952473854389604525924146791637683219390287955134932307643509835000257767161286192243486552735130564140603442447951256923762061273571992588049112701393145044527187101053718489901432560436368339289692434147551281463827603292567463361136392303033714811151211779450400945246665165871105206473361450580689859826995746852303541878086155676658987797343951637679864706003641002759369075328428907735412370572218017120807986694251932150709707489093232019171890027904315525145199728172552974889462424202191400339740553347588477357211174370707970562052922438347586197571765319467540326137458510363573515064380978134399584234926324296392348075706104223773381962394738876978286048131954696059391151537655046539369873012866746254242432218796554308264985886991015480448996437457800909453441706681526939878361451393615991395646718044276678630445334515145881399852537343271385234666560449970266200233731105469430904952383294281843460712140990186559324614172353105801260180467301177923433932955893432387974834053419578101551394558838763536503626475926485976963508241216779044909294283328286524890607090101510885203458188494273464729127532370270302557386476381631264779523823503341379719689905078497649842390321596248608290921722956454066943558189845791680849879265132095969482562342981627895967491339385913866598232524406977608521694191769063214925574823003645003954406737547088772347683770033497665750934405602559144453179582471674111074600637016921807346256603959199314286703921057590425494388130563081240817264923031707219784248238972952926799612997038646644701039345006372524285453266004087240001823532545498623436310758557192430437699681281141852146024712878575928457161676844626312299521896708511414315694895619919179419857020860052294328309530026292088667347602020701451280543653314297543781507645133969122975978881231926171753634680623346950895721495463672750392950606662868944578732083443741805039843558376388527208264289969168945897097884963179384651062041794539603584417921730944228271016714117110258051229198716842638653349508848053298067175092677168623574268361419525716456242623661970593561203623725612054700839918116286611509745330243222408230878306120071762880558172233253358957856308682565201026883791895850716841340109541468090820529527219794253408802277630883474661029044087713713905653093306504882656205515550113137808304489036824640187719313395719730342295338418183783086803992870209549121933384760133530988699791083930077451914362862120412222938969236957721835758564046859917587264444162417650393927643500962764874158679076895399620839881611954298999613095693574628091163258842521319302398086184588179914458578013862881480629573344405081403709242498617512354393271137235524775403192016239173903023802264826812645194976297357008439644749653271282261676360235562260121783970517911956916748966439146734534611646150463625081714378987368218821743522800732146139613139576238164378401201243819792496532626079592415459518013458887044510354148412000850563002456559858093944514780197151158196101027838235553886316240648209802940827134143864594949336604778966259881788006635190958506342275371075787481842878570403352390113701262898608158463900615074570969353718513462292065625234223976818558624416566703897017078664250413252557552045670673836970526232419116823852755604829802404231049786471651839548994630280414101332741228004145224876126619111740230154628524137511145824462417032618895634066133866310908298775469993342431023041893429644008611617810271931045269776074490577139448281932453539141351276066374248316757207830916204054490469172478440857303555714132712964364761476337298051025492913022174787105870935287609964256487921158508348640113655809738873552870608876593566167325040783659778264811024600501480121792069794447226151727943288561160014045130933207824761568981417858203783399569850251689918742182934655357325865615124940975436955423057816788872497733856223842354226889967963968091845345152826587544824545113981072547097035783108521810470593072205646859206316147890345459071072308002910167636749946366465143693014578178696754089748077151770037081328932877908885433675393151590111458991909817406006796129670367253131827921126639008759832215680025362690643382490947978615842076257114777970898521771683791623646164294890653055900179487386299740123905802345179869134434563895088768208480025053853535304376788630251346215313312437738298501128940092891137214961732194270355422997252780704219140258669389986547305247631385295327526479901495024281811121115622841067555667876846357466240018991757885010184815839476011410701487721559307744156906497730802408810949226514163484878192598425615098022293043259752866292935165587511653666841206328229503645485323993531228637853665894180231926692022841174430356254232043264333570279142517920169082887372672207452009192515719970266841903571814241237321251536199317700815503307793014075313443414367200341579679330191410633636064138706165344914611709607408814564395893069399476234810667528663679133873729556046174034117647209258028932573761281171314832018171164925683847986862757343328511281835671416490053404670854670518988370638068625567094096747671234333404224404654143723740720992359537261878449640277824173058997919456481396400852452730249651496684878723110206043571337123526924074078313089117826004769971538612955383620362824253576069125941743265918237657816941511149808233532177904940650242089958957855131419633485195051946768388834217593301623074680638234986004045029842331180568148151477906141904850083377289180512762542696990356913535402915435170639208138772357090939205262552949329663818393890923253909075707996527591126022688412004120660305252057441905743027338166810160632530358576872190459166585407087959146518173376718112539600137306490248537421129807738159524065841780793548888975374618647349159761263282887828656602674666697052085102759166464601237694423800338316810561625097823082590520074383067189014318387049321031349907164927812827858221343408154752672756323297960980061348933222260486834383488117044335038015426408244625049966121348682110442275491989612326643264211513556799230914776595617177735852960957397173013835839047319086235181405589792723979758823596097731234963151997143830602859542530930699413557327341339745556007304183928279409008694455468327902886629554183689105251169513896351425822794390521127408397257567573817682685345591793703566490246967719240125487556894374307909967745527488202060150230137163161074920747694901578261741012940294128680121749395173464684274640602745661663037750101011001095813043901509170865743658889153637551339569796182649704087142599443328990112483626036177787600124031678691446977972730488784490330371551564517482791750060398912398196023194618578926042620798249380198683595212507894167352480920454979057128948163327761232906171970294170912347708261143768400145260009136559151099479767340155234613525977605416418971256759009341223838556288834786260472881522040044192231015962564150219510830996217355263190098709815029678914605339757230689616804445864950654956694064172053244797510988077186463244018402594948377572943086778061518609605754752713143926015319695751595291151349268415635245877644474656011941982855941688606968789304463737035712624582392076113923858660971054245933714579255098626984793784327450941025009087125689861324966290840940592099534374803544232210988785434855596622829348558135987358869383651165615600304745527958362938748344642433685354906455711980583179154270062053518212415905663838009922553140797966048829768818512305566280024579181770291667006803632689493994044352800556066630917809324590794072442556212333596200531618685249332586360705583869431504055132258139112804680240679347953303101130344400133833232957442956977042836622612097958004401823791048180778991188167812152711238370865063022403172588651812880581668500360579771992114443627090923240810964498917743004723850353649044992760532930910955239382031583998489983391978697204608542757764138621466189426161225031261391535751079257836527965240251904098730051586617037242310959823432930713053349849784842490749895749322560940748727223711985141964340770690683179339771032590208576333696678421885545118229075220731958805832608815131938727615638606490346210539090995772208893221391117801046027240544808718531188512453088228882535410331663866019915879656915325850905932633701668554996950300023521425279283159416811382492068069513979789332987366041650137412381839107954676600860583931492889541019818002271694511555630552145207289751772769434788719804013216608427711662087673851217687381580162337233226006526945681771665056846993496860140831574945909001734095314119229417960759749057374492448471357202492972221016444143437076078530605860040803289284451471738699295666390503156965553585193671726041883541214021452017437740513016108283682816048730362443732427395701070966847899472170591899467663867562224875380160758922424047511134550328403629795679903765984570952604306465609320649512261666830228601388053861551411636787503738783122658896087213925441509944662239079166819481729807194847021652229208762997929375222231476354468507973226014702187064316359790895039702299603664426611118754583713868828726849345298155137703273493039771418827011167375347596449679083431584836622263343871910720384325890432622708532146168244082594481980421256149692968259661350055054693352765467588618010717317752158322700356619519901833636115866961598933381420357129569754323738151744171122313040580071947150939096148709496317119159893697077363370977109789073391239747890400181372398967442764062164635533925880150216397505786256004813195729977700029509171747092161822839430652448469719909575770353126115952519165795346329259229540855901537111899574110492140840107838412388664282328752925984691425592184171602194087963278631292257383376633146395358544461673734006657200315775207077621765327523709589350407959643631675450643252664806113910696525051971663379030208874358675132519850051388770962769951025077179983184978359526641624170388867156591365657800209568781810379901320289182485085720834928838717531821548358515829060359451314144180580674898098174868430049164504352845347514233476218564645565144833013805766861064013907938518512164911998256962978714351834330713629397356012430445698461339728667322982280178778676380661948074424200641754514677848532008899490929396965472645539668651060556193164644443054412067898618517061438971399042902842467332515202977244460864283675313874127218826687157465903635603711175050314023650139745417074129647194673008465045383375948695071388151008333704633622520585145330469932694635443390537881376046811409992825056111877176161556212223054381713826670793675501799981270825167051654335328979654327726885172126708861990663238980943976402245767696653252605808957303845069931253256091051432723335950955052226606723619913061381390268818068113423433061797735381377387952070245571710374036064450376391818510044452563567501233705828287430614790561175028110295632022475964044123224836753927976576954036436056618050716960989680411590486082526308230124765955372834410218051289677295573029275722714229143052189766415304252170581445142619032613094251035610757152594845478442565313895972833941376164878125232418084714760540517670024353596621576973561490711664384121848094553914618038622001770518625613901871379175928076474001854636456598064704580270071564664598581218255710600703445931269042791181324466189195083391124943213126733591563061771611471597822969861837094298963856299268878592058742582089364861587683697725261747686744391496030820877801210576300994311264863327748882173275682800128320362561718745425870421717295093693690931505762810234892867334294263039637146650894513050474305630422014311307705658348065524597035848146040177629085872920642699070667036144566647789472310995290679326873795112660455892053836720223708974553762720896755788667144558587227431538776860568264156214224928955190623343867663320000764330741513760442791860214425093392123410244877220709702375445401179004527427431237877301780827553881150738804069676684197757025552817246721057615309600870594984503903828949678581221729547838979102958798866823961079972794276782605407763532121801321555958477677323201460724696115376177805687533823397630083972249353254517711268707805381094190043463103987746743783967877722728739784407160172343916004035290275079838630998452265681597753218863666921812324772984878650867547177569862839403091729564433405013357598848386552863873222191967351764718925164640811239471760540363068174551527716795931415573387321392456415751626753619474419533229124263429737962025180535235422774277808933097663170187142050263318927874067865167330967321926097475733621883683863894465785598561321615508536551086538951053947838039598067838191185110940123440027470094883941138929256829781266238016292142898268687013942702736547596486347354206534374399981406297546968565007686666899064625735963213931319315167569389577915086029355915078291891846882556258385927243173795591068572359325185469033182291290860482731036548565736639260024523679037719931418849564080293256139016680090360007765247436122293121292638210482807686167030261945501602688968725548609182840326064109199012988619201182059937469688730728140102915751099998991848646373394418250073298216230289337190233338132687533236124876067955816947234898380942228912701377915281061532346104418662922848409724024505437526235894172085956025286864132105969325784556298485651105177063345351348956902678909702897760782159324235793021383927430333791135990758823399490011760744282295920934361354829135324912205064855958240364307423032981318467983574450971780409598803421229002790048193252617225533456859306935454701603362301424751435588229096969990642288138527416216300127480604542714446031026046906816965937482177407467683892876666133672420438050860909484320303228626691193914125288904116558698252892305251172096460285670205512112146185764256804308850075511515267706180426692297829052431517586654284780669136586546141502274895694370825666781903534216800762164844124551728992356560013675080932508104623984418367889171912850115041150732405538951002391748343946586980972216461865314884340224404785386537823173633130257755753233513416195376420899623529452308243820116638818541036198455178474314106264030389076203482060918909660381842128416206110949881157299984048704372074253549601519337854364444086350727642555994984559834887814772222224292604052775746348966228598654255569930720413347240368021853829782381699402425890426335976773621004062530941534519956160749003304506729922367295303038173702020291663101144403812212824508447820775855536111257366715222083585309569609707316598806313750647946473248807176776698023551423356714287631814419016131952297171387121207514157292275673755620834564338662221258007290015755914418222254694616261493608829695900164393021312598294738955059452216897912204205430012476250161443543284477894272724921579173765126178442658818268260654537041555533883053274684283762222742522408003080886023882227464549214426674685559344918336408818745842360456235286092900713128577698647820526900959421700540502211424411313591653444327743741758092129524150826647158209818079252901873461410872408650392897252058893557218394387683874022449849021865536710149272363787218345432979726875230538869244513125762299860022883284884499915849992464213867159893970409934796170133801889017650568421803167475767061528142714453615483414614216033977458247312251862239921167585899919449273641575931320118465669329765983533280140377951675757473531565608177462947196366622814946663502457647344824882548989442990752082964680560759761186064179086457590039933622871920152620103584101293686103709901202210929331913124933096602464675906805886842104708402641332170613697697457981853123244617986741218158551122814365144941711131696147740674067440894543929687680289890428806349401623332747513715132318709904157916484029244350470999970793739358806720267309018369118048147843099750285794007520638458004847450194188307162179080020437507177895510983023187154410149910926576010854098772872375748908992274100101268584785145068762195552455726950143543847604678578486311682061990069842000685996469896370280018554191655762689443148306129378328375701451335916127411567081299560725565520702711920093295359839544277422267795627398266351811731877226250313467224968675503168117361942542915430318188219247393861063487324759188902745971095088391432754881175860247694721841794997327959831051802669493274087555707457041507306456577830932031528826507485368693311212414357271996642236869599914782771912605364061047142191899378033880350694772231196876029077105771199555428476475045374974191355820362842958272969465349179421598711075242076751095992510276979365938368350497018282866895806837821072939398651378129177135709723889608253500735961335151981518718289362155456515465947014169143065267688428684994618420936088006097596844606115213697906220087674752873821740154985843584738494854153125535273590833863096332036795007994659290760080083053644380748621880576407642129983039070109810303456255404173459792667119196051900620837579719468232627184108279765677799295468065324169506248725733539281006884059730333489304926827754164644832800220368314606893961575041335845511285920081391654661666724186296850463132055987782923220346146343171304797179106350145771649446521170585870770891781162705650579993621079732246395064287983627856290156661271048532970509934783008877988207960301342170744756911967131388885339160368108590806874765367678516569560432128114433301324021119855084745663338185246593315035934301943326982755294888432254207864847440433942911785152831134428423249496699810430612036081868475611294990602838628153552800329747973267942139153834304132155981699364920156331611350993164646543516804708710104518355567955489173200293851389015817215051091528029679886251125478504082510708114532648266160815196556328116224601607515015466844817047816022839594239770495628571999892166904237851967673022622271682174355778736341519270768764758701165441732661964001096327369056755008370018997517373157859416340526858756267929147157702484222225991826997256393676323950769709152261605704917185634548438922769038140140898047704167942998749117824038613975431195288181518191967552914455932963353059637905712924588129240762909530152357409602825914858427948310006484987716730737015741916643594854948407723607746477755480905688061336301516933215343436243378345128923020012962873648139918144781872213922819773376213538678527255009114261389409369319542816720710502037532979430843324677414511412844575993713414885105238842052143957508065343513715066103892729478771726630318442906017611716410247658140051903036815367086127283847447177978474647458507867857959979525510379555958037590825831534244646437249972993268970449727673624785306870165283653968132430192805729205834585823001089400288330571205256806144569889093304351045791160766215128031026641622530488476089322587443828466016470311907954090582864995949603481060623235773030033413114714183911167308955236641333193545927674413036635557988370122636981937097846519784840242424235018884959372923949801685187970075740956065804540005464975208278984097414205010615208494833287823840653762296930384665237292450159783131370595997409042980832755646651584685192264168658557703436484867586425908347892123080679396142496430834361899705710185772021348526033759314943792664754250901245888817608829597176338246441079880369865689411322184297645094653638597866725165897555334198870482013925896739233650323354447208100488846789521390915144725815752970116570627489194181461914179842539287012517969404984831096932373926557690389693315847441412785469518166987814176910812060127360161710744679645956018858265727017352643121863875097889834816850592718692108898372906823042248164017275620883073796445431242638698621648603178366700298408716540604427859125811939031446282995582416048096259984608800805466773282258185779543675150698113349901011814928149968825930739548021461986031132038735112017291225284398549439044247145248104925374926207307248256094215962786851298322874745209373404701738541282388756278241498090848910290496327456746813012952489174492067594879716838440846339462938799308021720907026036334992546838596938579371171546605147586048578393520310379222654950766054921161745365344982566062756539879446717643014384761492496116193482347897939594994818752895962577894119784310536901464731971479343736786290618372229382897824500025535704180502382735568931917601442283869351082992366441673215886441033227043911274252800810696095340103896048253440058268720333210096474031851710570086640118230834803983992188639085786901126403620544989191587910151241865951729484375920159216568868542676372079288794292081511256899486798228540293906935622471018369502235399202166751836622494736669653066664699112145576096805895562945156603044659179027330676663850654970923981517722542375341288653135619938905143038511880117319984068111040786830288739510531701420257586132725570475713699534730551265340786460714842334617586134719978545512464665239534548874616013843361639426655184087649247839044278735089373961032862325663157916990031086430177062352207804934097229711851736486869166784841163488520128648580098567412178592111399939379205914098721917715203943844726278445779475582399213287921680854831657906132921154399266422447943597589724101140733400513325790080032846337055951462237920463105276411808828604160659156546747545536234458097726087729087867558654335851667266855443899125760746962741600416519139024257604970614632201733080723280736069750927990585653210003972986337809452039459703709512273708082396994338577160406139941170297595679034456557744792986711726882238495258033345176714447489390457974679170535906996939922592173106996946276164844823790350243810901431686342838298904387458872185921449704578534592787236905195264264279882034494263016890080891703084247062276265877305045340588911323103445310113627923053039440570951123701289492593271898514166810380536690660117824475305355952857471065601875184751527119435683225792438930627049793075192593892629311840049368042759157784509750658908651487853562484825505298826267861175266712617765196373743599343287077099482722546762106238751237158104764785198301797296165354151059470582311932050653874490804595525442554490431506589600227244715117421005774484882181063441670401304204389745860801139419445393586448086954262160121188981830910774842329221178386794216160693357356806333934086799616745591713668940464347056796021444396408151343830968985006780717531626319329168501680437865559801100600811114927078497462567393453246677080636942057325023924984815648902689512052509388140983657414270952367150884940921640416827323153557063552257115696462175301041320902385238761987424610481379297412048763446738569479113487947049132354718089964686458345860262607574207612178729147900100959343863520511843484035353133766046648291965550710906303333381584108727677301385171849077284911455585882263739610590074680435494830822646403279047526150292744541813456863294987821802487596639326280837005321195413062782759654174157039295251892721792433441658758360533253955083449189542077691018468713829844219993396459553759815667989666228417745289846952339182074440003518952139587731567398720721069658239187395101574582842035337320591944275856035454364439556343732557384790746148251150436241976427436547445122192100796044059670482541399016356131643106990106696558360988094571538701561183641632576591390298554534535209065832159112205237470779695099933023762624975255775025179081084656700363887339938966914106666681150207559361328426824323197518865815931911295437324815422233581141276660293312216357544904739255304047713083619925277017906608685516484121624525149151126065316619481186567565311011405972159882314650706031281496858574149518109628481450164465484025150872789361651838354483687995712175427440403077910815545743892589587674439613544431961974623679053613538669057247747234558510268319268285162428231672792117584606776753709572121144369331280499333752942571279364366823843827062053635937443413834264296903208775728608622651342801379373793837801963569410647993813955293489271453373900581263679641183332311864247513947584686391333577857722370600333374774245230027635288567267835809535730568988320480420828946403057723360868582621009570242577896504475039589991355435678121663996146465759256858766094817207432350529800105724722410062277230104250888423760193205329204347831587645165587346942412320192687087331905300570365173963290984129911720088787859514788923497754697853692538024335108721053049366703921727852194426939959691750757510478823982669609487198141336818263738025251911969303451161780324933432339062010200955012592032567630875679209267984922978876712323001316129332117876937719662943454691711034299351026898577943872335525245427660252102479439531908271807806750240849998611457710284069480122513267887746106348154213950954334394098972473886327392669250406912391107739302167526930082562019845328434880867911584484755580620500968990694949265012032200867300552802563857281425960031384647697907040498475597877722843572297727270944799793519325795841782801094593906819559889756618443944099067055408427109716631689191284877976486920049890928383684164172590776732780632476753315339094111547294203279391891473160885939706795427884761017076035936649962043232616294913992985507983569072591296074358621334542018737888059579299986727979767690725001890593208955412639788531815415235845215214880888925373904042125299553482414608941994607515153064074467395905507840890565284022348531247509794664359891394521803309016182444277392798905065486855085794259291171088213108856391656481631665135103420700197695317107829159465213489938447685139432607447047250120022704382264193308968376013853752317290479317948864238350883989838568023156426090932725698955965363903679864227546223918093536161592473594420058377119198131779167656437301724370256606553750806575304968349891050109026009497380971867337919037669675589045717860265637112702948825640838183486890814915088473932760764544692018323225820056906898315954214304895036460401828639921346320423461783898768975067613048118603572341416710276910208255374118501738676455170000687708064556039014653429975080823780622044979151367026238240160214647842227289266058744481138778555925762198068677984270496636626336362576099771497944749345105197008242336555979614396608664644311375599945840819417786284970875231625782403159910442337350685879004666001662801472436067698018544796076773282947962677367561489281665326963201790894968374456717351255112566000946183326443106141492397073893187844348496620978157135062058389310777489408424219546344291360800198541035423016602533885303750780596021693701458140546144632334463500581507858474703703048445105823714314832447621227041798858393126406463511575969311567273021565297719392342391691207917596148713484445704664402782408614816539900998787805134922858883099122154067562019426957223646808987183221191303068644744044094144343328996041019244927123216305094448212678611408003896970737351496086213838920154600273249616367760370714335727745415864519145372764276504152099814802930080414477574571256886053743308157023728483805518348003029781922486723437910164641986608896804416726065501396295830969620982329363679304216354284163929827180855566841660479172150688305865335190104353089207995660564950165981141937175807424706121565309909845673041606759128174397349454242461928090239988663226826964095366267389258375798242863198646874822330505071710886707849985070752405105908044454787834719425603596223231798125509088688171081761095942665308269443121285560048151352391602021471080213271463967503286263753286444042629475978246494506137129566312328395930580526267679934085407718417650326595779630882561266567718630739958453183034189703170746065975902356599672102217321227490181393971941643562340380006756149482213722791815119910316672820322465428215273780347565104897351410948584352266885318431095810806310519957671217203616478149538983408110754460576052731988757117603293403200314004742283061094200962662097932356261921992545843853171619990150737630873007542513574057262136411463825548095019555358822134543249246047221997911280316452582437436399585022349831469394333039232261074029664761094346294383470782743415605272065351824612693070681259009522477313189919397450016738642339701370250830767349394497773648316922534238569670518312907288416850412807298171347064640292922332383817300640274475950465327572026401152013594808649234600320605186600423186537412446850657181703630918098661090294498324343168311008903299231093335701271341774490527377776221011863798660338130782126196693961062173239084394813890259622710988813012272702782790098825684598090741975796853282457187476639683987416619084732283757676267718536042225928492873438089645500620764753416887548954631051556684277574303117900583799223125583077876774373424630329372839588893180396802280710630630193537558299378497041484443044085871103600788741702776822482406238521217053883305122954809677576799993192224405206264749226658784903590054821893472208665714872623750297805175103523165106664473428187698879743524063561433698191623279507320076103265238909971664841141701337981111548458034912399969949629157842208816455515206007449389498723527133658262848903369192205989089277478116799827648308100474604480821974649087234639382927379421211332332212170682442338626941679784188292134555240498967556843552419653853195397463242201457128282555590846414442372270428583782216795889907391663662032746989516193499845178752740637468193348705749792801420131614944123102446401472827819650934817613549967371874764972785416849731210851378593072480304554529905787259086921895904161664257601351857676209134892918043168035023491367166932927638751470253877305796362708975919302676403373189455568761407115836176598708585834630043521745455792677054696110768314029973583218156460280412055480636506972917840356249410748918957335334036854182135310023804821112092516957983443295015545043476543970447313766040373001373213808455537611937660698360353012205487624241812367968422423041327606832908616481644444869162234688395189692469226261058303346654911205059599381861720201731807884494175890868881512508133211047120403534721544531758851654077500226191448225990670601310040559292157534239457901765473940062836364453686732520639708670840627143506246741525384378303895505894971155927582165436497501940381964332213994569439720328955052430933295000764419374764841465960568425089656297709020585733828021019177394982507878661418383079137749656196116333988918272296180733336428510440765223132962181434307068959905499437411915265073835580279217420201886730031123546643294337924042143013105256147515860680409914999520508311890334863051986766071565647209035166973626680828842800991272226864922759040557527885515434621813939216624693329793189059792900018966883350014081862327051899399281160450212735187935988188043771952653941181913554786341926678105290282012750884603241185395467776212291542688634185173697754003669412888858981459599163239488970592142199432460122905267052028204519931866531620824693289233621963974109350433446693350657348224018633891468767931411323225317060637609943615593457050131294524451964323284942540094502645772212353321028167773696354089761457902535157557977607796594365784686781814549847099694797076422765255860205675789191284131101152549008344428654894193901005683402045294863419068479731044556719128269672307630413958893611970464610198508975265848663699932585430278751467842539726899207731722597070842389136538194699768519010568835907189417804539153099999093958939789208058100066586763633561052782145235831327499901023601941929337339964211145130641427534678887390016555075862648155393427004497400264767187527903123490588082441105196483360220478600978530793202476867526244058524973062874451890884453773154762736892358382499951005883058012306969374086864792134681909571918392807560853869478586594774045128560978783163386055287499637508776601015956400573878183807257489908651924952477930224892893518027218594990515039556831935216117983720780569386653709887169444161877408812025950698023791279799881100517007770045412772253452311427101156947795446944536324816908997873709366537438094442159972272997377058683730041206764450117759073136736783797376491295336296992545309778820760276233876192389247291389663788876387531670010157963056593800533253403743159020916451897007027010114022766082981232081711833494499989599722114172395746967803106217664386582490717781228845028595159543471954195567900486312965535384560097548482381011239840799372925202265876126193633452119637368161680447770855815052703889559196094415818710912311064397074355039428579391673515169079244692261958755565312692022236373184576461179821516820204357900857450178109487223440627474502161814982966902855339302091513616199961791858449825504938216958969767411471196790702535415173244295057472602650700843017914172027938724223927307164587201776713831273348938777229004128685993307355135303885914666343056056933092866493859715691456517373201416210941141993057813929011052583376284660411292796157508522747207357320421029786315958580261990884480346285266882026672783758672802060766576089310521948388020376933626058066327032160929239517374152694824392322251763901816255549702700954308629932305736311712576254992423999339975529618455077950549138965365753494213144745082485953504740125510559480328340414705530795164148924430977928639372023591549559660312315199117929321558993250907471334779185542408948129600749841728123248731530786896492618226380609963510730527010331254838961089891072331703076556725473142912485927245394280509250458500146277411925376945834209272965741687438694016540567730272761534976054322630822589092514787761902037030639545917168957751842178047469690154575739709787186372850614111604129007292894325163309229554095545902271943477490920648465453797970806416328936822151617287882689052601197449797119266302674903127990587117627516323726395578374889470048159406179180478613972742863287939456499244256584428207353788300031015625536708999644599875887761913275968547868078058320526559188804281669272578758165986816493195013173889284264273136357982345711323644893887198998239722600588933901621034921449757302554893492730536357523138317643518953434890609280440319117790243143271866396201941497316471327473867550351056641199012315128669455756740755299424203117409853210799749385336522304973389153651807528197012580047190802478486855171225130420296588754251489373563063301223119603823142098511458596811206416554012282752496103396718774904799497521218502825178640911853751961157129674637821297817031178120478015935649943183452639748455490892855917078699896666660334084066018956586766163902710133784770239894571268835113511818625568903895625909147635222326945013331946169393795814409171837492858833018939673933652849084188118021455881810330304623796597962277472515064017673560470086521129831147735163497594063814019122676297867329042230789777546227229079833465277421177523802358641637683412981722637462763178519040594284760708861751715833182425214036885267343759566555373898972579237377497179251437842618305852171293812531087258509470639725458206107523603492049224708072142034391494159746836910577877629550998216264177899029419774560119785621494445354678838475192610263475893579331720375443323214483479370598496847684495194378652242512462992765625707291923234207385009056928459440558153950076123269120825506669788843219946950177523438870311909248996357744474974495822794959163288976991826259123891148693394208639533854970836584962152272815596024122877587743110960270078908675534916389225454057949357343300501756741463667066915929556862788364252407105084922062890736746875744719633866996385121652122950007065190579536626612637985172311643733632891947309968387819048067907480829940796379660148280914255736790873221517886149572768932187559560255931911573941820104018897035722374494137652467898845602228333866289166024151998102038720219837834626383379371556150155675037383699017134297427608787720506658213279129499601068451146613120897078685051279806481572390903356912611038875949128490280806510641524278918013750283549154549826110581685308955726514911244789066383206527884447394316172732431739812375686720977548910439073240631271489199470908211222363697145129937416157963663995537301904845713725139004879867310558930928372132385662722884792449570547973596057839119252310460124517213302704823447655043655102964514997550021735846628961602139625713315071953965031888168383721656486818812894621676894937793453671829533468033514043641876508667008195474149654516417312518911857502081620632739176289724371746722260772655153966729746530931846267264220979136328615003248064142315853219246951295496584473224405503152682457959940415921854444251175877723022612206559609445098260991718888777182487525474051516993833343478737434859769714009347323091845073014074252019385480821714293556869094229670271221963866547936526676396047235255919374769115833723066221936984815886622809501539678134342398012580488416930016600397011307900480169823603882035213964586284825720411863466717802188924103624582285984965439329801029636470611796180646821671892156992304084492421281532151945613396520344012780478100314835914394467063383858305536006037981359318399528409983463267476320186747366191804277708085458623204169129212326110527988356098564682201462196307569909694193321820788352646204272691891978195803266800426851830073996907804854979244768934582895402993440861417698857696885860120779020084285557517617194268135410197169326519678743383935533405529007383386970770060645901361946835422588537411936178820038832342241698244482155758454409487414350049808733513559450819679001541315316233869391136791357806788742402877648047600930734633195088424619016577957548811558737955157289149370163215085142625510130199180713808895356216627227143232969271599250724798764661542771966925637284487650375771854707766335174003073160480583270120142062533599843060116742110159297509766674519488825837025510780410641527852185801164683107545226135124579902583866323930568178073705201737913186502486851626929142623478781247107198907126595874984534175271847007594727132984232126253687344499717433840266423666759265048362774106557273717005259793974794511028530277643839539948540956552542896933768128991337906329841482075742548638361053932686582862993631170684030157751442439388497472067348079373093833366050096034126181163398780337941079477960576275071734488952780307681348017973460554024620431741971336624972051325130703585778333124585749236046889982492851516575327038437899680016126361770117539133344216461428075186066833400600157751212738425980266916482898009568511986817451540935340942898359648972988151835626952905210923589302587069488820081974410398659485525451564593400156280189835275486566567905254001067384564564272291960116117922025517239982095847282651895088760183265315428743154694770435246774135960962988104496318637231943326420042605334693278682739011629575478992888170497398202986980770728790174813334955784087163747659104350812406514033444667814723190438884641811096587625811085404310181570099271001543613221987125982152111390425778610024164025243756663293514989283233046592281040163201770289453891705499771211630566230911405928157035412816758019799227471193376019843397482575937778770149279395889431956248890613543747724391102600652727861409671832852529764767710646014588921480204682252563582127120177367358051463724869256894794939019113457412821595958941551648481115685520945156748888671481826377094970632693268785687044956834957597957820568348688846538000320482436528019153413840388488877360874271324445833145343154956441233132056987492407794764363019661731410808221131638993703103496022718483313338662965704542603734228000752678016966201360631522974353697806632684442113304525534646848135063738322245578505673039349552433195058935449241014781974343604419201799723585619583897584436789093632520889903301112401266150817794002182380487485548013344150767059342155753993217224716192901602389807396111981942349980116816819820304016481625747939440897299606006880197307300832503778563201857189015063343179819125837582401093948544120171302575434927281588112756483725961079586556074941165789767398900143623138684737238569773986038510242281980092470567721864527463673347750541038181130634954013552967621716023849881033975926893383072665308785512385955022770870150577872518691760954031569008761652344684230931185129203229647989804601099374362437267162999401653113982858047696934801420898653316751704367399138200047748171118701871144368578801144932432122574968917459619176272208831406274719952574445476027385018463527421232033776605046095209123887165127850331152415541462415162781165745101089016221876684576189706638334204152289670471252292726568421250739028454677995197815362899075992672972743565476312280400717084011511549031969274866474648267207503750509665051182995761104999491752962467520598123548757881647065459479808231915424648464373849997252222900559404000620025092653863446211940311950338742447404123769929748565537251068459515865061335496791486818565893266020199594108726698649445264137379290740228271967897357084205519551973649376644521037672423276681492444773097379748834691657006049678210107973311289928075546807587892600801604425387358799067389329602741254981703715061705511441353241741306436680256726146909752033062546621031261611162712612925429088637730452948215948760358425184210588457842552159953378118645249132891066317645126933531873527798722596563928966216758889993024116538893707943178633795464628542110031539001057819228139622853060367819328304068001663444907084336915548569707188583444806150591236900334389477523009806232480021979363467671908225709499194793290553042382099455664225389452354111900355066251250041236901544675367621970740217956217352651707024705494348605237077252362917394703038828242627847602463481800562166471529380693779560363767742569795950390043293833175237318969900092297514192190616158231058963034115975823281769471578286806367081764262037879077166154368047735523858696268578941826696680355442822537858359543424248333549785262970738286065469518615093604052170886775452466604743459948006518420736691479918964111223022363836162081523022937988692933949033054501234237070665617787627074031590984504620839449587985306638973418839900425024583630094907083914115780176719316273266512443968001526248378173458507070103335419743769716964880705214149756068120696196865474210906999361600740769960961023745995538276728872499197154840228869995024852438399019131243842194285107496574121411359672087228922635521086497492261414514768606663229263741765927442995712106375124059733741497443088569930106565440899078847430616241128711753075850258270445271258033987295188205923387377620967101107267978314399453957921137065998208393270276296556472745746581644555862318102389578048637091251223483606588646913519872424234524345803855681642957153384711746563215089725825141906413689567372968152279682556092624810187316503927918844941733071570186535972511079086711413711972357768382594628501441233328893778488784961608143512525909457940372417896287915686056465236146878795455629050050726501895562696563234601869199840111068036380636593605850134743095864981213627703441208906981940082027846687575419077304685648723791950866699963892131756274150611210355975531603878628214658605708913575938654888378314069752877200991261949432908664290336893619582777569253994575613507042040558263118341414049519668629021490063295520588337711745045481850775121483854236629227772793836274220118202211257587186547520745805890297543742973120835042306754684521972410925230188031656862197519649177959789595605683449622229621770575702002658104680537827909691771670555770926675783678841976830260359107729470332696405567061045313310907744704033397938645327787411688940665482735509475320959949362522568591215583820667968598388127133029440240395038595214716841154006086440045988988000625828108696061633034111099037832263152898880498851060497790619770717216664692648779501137395620607683326186167479208868746727035135357391113763261789313230858791965228190901986821811871494872214234951146399897569481372640580216742451025385492645827450082835678104035407540239237002581309215676737199306496082409469703172904523876624276769685871890099828383134065164788692322204342676506145428014286442264057825159047494243258124267015643352409698373780635474516200432923180924840083451971441406681380099467466244649407375005601815199076502724605452973187289053829989138015338475659967141328954612262545989940185293793357720344021040299538320913970311269984678089580919481845935215747949736843350079629269303964586907580240658814302629225923578273337932407008493620263076565569145229955138605857251729523455626624224810500781512518973510212344102381992211776168481413427263977265585904099101469522590552276725429270887337594507259118447967364052152778362484279592792332903189570029525497434184138629362696371535996494260939704427310460559501362422929298076588931917593759763422556242749867763468381582416175077954763001920628716646493482852417788195771479974130225998518889422287762941522498348158861842665626140269063522933698311622797728235645735308160872822304273023045731015141867422540377744616826731319536662200284703184815229496687335856610729129185992901150436193258593983130651760505018504913907668782049494495882166147541340635532052840112737478556079683842946276373820060108880008114385320883260470002938998856500948856281107466895447925130041496528835844090335644278233675351910581496639751571194481360155523474555471490195857226508174391841935878611368104735724954683170636541527167712700025065302346743851012687953378365984590482417835917494768834359332290166606176083419901147618155976442836497690760115401908559827147505620520978851864838459203439490487285591744171930253850407942007018301581594910099183295200113571518113270481039164994035874283334169334059312993373644975317298321690291246943290003801229973411759532132721334047659935711385542070635641128842846217612135664934632561724899530309949609071895242469958349608121950812577953252192171963427196433764129546189562853626052437398267996376605742015819769745187250175689227510173377508976519389109089238859350137798501916776706567777945070021551253051295092693222134302536106045033794808696977826688303317748419179876130454441803453536672308878451734425386388056901644336584951399791181639413503727587149268998180788199608164682352238166750831028676876117558761237381540543390696414514339037777168280342373307140046345439268544370879402321941135068659706807329246043953528665501637401118610449951745423479692476355274954892510319954980535773346141710552337835454078185525572691716705083556947945818337458932765687475916802555664477392143695615835052446880340227671380690185649330247491171427443938582254043173035865451725006232957091671222061395387132827482639374593596424121379313843145010171874810990455575158920526212108563935762279285908692408743757848685225725662618398247561993013002490337495436256005165686224321512237421142689694073944957207780425822441962364774374369858426378991894341359835696998941154558178102021348728497281840586216533016245454384006471153799799992489453843186520139977388835274147156768841531266511019487198984395101062323646837360133434054595610557617687755683380123866971009893233596105140418652866785644219861542576830752308227605129360803462213184985452025640736518025890870220738615657718956863545348574093328289601468140694117684181658378364535370027410802476750969569734617909124758178238220364473373678086299517129912735306534701645684648113231439184919481428887175718384309953511797528338244526685062192983738962015316616308963650322702148186596453764692567293641814284041247385135017158336432778075250854091365194690117867788151071987523252335093358771765333337644857071427488645740395399652182479365783021486655584990150290444922752125605504753896690552957933946600920777065025081514727507847906822268447375609831482436608911385525678307745527910660760247029924445337117247358049869354070681271042548883793328533287688791128870039075229332605476690428313780306822113757323912501639121565852372162926785885913013206193041096865672946050142524715326807307704415357716091849939833343784434603409922974838769523268483164471449881516791093348894829933276356729296162228780800781021111824443231577766159406041388478028062233493668943006791483038757849888961806447440632146031150201971634466733607120116523809371489946659998704895878359479857123582282150532199497917590719318536412830712377306548150021885786614263168717328407882486666189138702979696863254662021662173837646521937484046932453081701318217763484632964128436045507071755387390284954912762268810535075011526656243279642393712970800980611410379353382289856592718879324937915907532235633392105179880848629512043694997662602702750074187844031484268135058422541204168958127803992619110128046572249714391223464586434831914126578809164828019194165607862595225736165536128566469593094995808486076365931602785542026395946617041362942835028550561641977993855607233173370564264216902256132650718223592102069015467272031176802622632478082935286843749682137214727188028885820666632054808905575002924108744702202102489218860028161006795084564322288024634647706982014223311488856520427222865293659558033705644074976013278168617054958464884555910376417263746312573874263819857080901168904485485186983842207693506398385864918199297411341332466017806605946335109953421640675354494386057416562207497631407578189591789553765486332120255261645318810297602957170409833265079908012997340763094996863897524936191985580294977462920439020112023107173614871500895365244779073450427405312650298563334695228964551897659951367215022870937243156390038619451874322894643509507532179659492530938080815557029694618650965953746909526008689941420512877561373197201500904875143136523279866919589956822693692546936906140414884142398542229468366371683071013140147802372695945468603700127427358371721154836324404250541868063618156629862727418387281995978117128852607436422911295569711603827426860082359000234515230009206920004379219853516870445067445122945316552601584180781353346687552045389384434543140900498722834294264784564918265432488792063771142624628230618526146851558228256951811316919576567302723366521475663730595224812429539426049557223555844472566685468138763350428086682389128466058466198517358594114441830315577333738649660828765231941375843015195378376418511249147567882951936090717908476468861085960853035350815942224415935822898675989044522412603641242154119847241013774697216984137508245292474233833339979152536692950583838595036644305457371391474990539954769375245561320582818667377652744078821358859518672576379198759151658668641383464632308571507288950039648191431827414200756642327141649616174139767865350345551354714652616938744195811147310109110829520429917368211419603456642924584538572753170497241739952339167956052635371101104723597224537169801486101307097786707799934477910699375939042894027199969923071874696136647461513212717065814792849532573799559599595266487366653153817771467625232087233896058722549423962991761943582301324626820493807128388373526134949342609232627186760649309243041401102408739237451692607606337340374388047145610943101065249125088100616164567590134309756395207799047867679110764275908501577013651715564101224009756366867202582049863785583730364172749052782690494120844692835000006475400109836475915717584786175579503423060929368134701458578307764218044125120825988539014014503595014564428563664704705361715802998384943349834799818930758125630968510296443196750076530377066546708221148518970737594190958799960931266996645348380140013646322100989483824404090384194460411851059700562079171125018577535339675615834950902723064890161368281024287010084120752790367702117587748974192560724536890492484132672950151953092620639706799917461017601413680436951114394329605332568065628023156544859951191837499512580511965904069318144105664737272619326542201229820668411167324277238769685269565793569750344261095943238272781427695288360412333444508150488053606003346952619861131524902176196906554588138640983460952616893672057503276242788439070139535969572151007487727335231831092969076202764185043353533814520532329970566489749582959204562364161920856243077608325035384883512151704243227233161327074044437683298875872967729298686443218848972184140512960060266886081876980149596332036176108414662253106409864251477791637068774899732940462052684560375213132879651632938993641024757561908159715768210422301236173449368607967101583835136750290068086501424912145194035943925865580699961557186546028258403856187552762947522191890844921264771195643185664152849656571734311472792559693990934188885658322165012367706296317029796575492903654253526298599364048904384545581225803294160562554982838545236325113852063891450737929874329063323367170855153746080251018890357316291509587149082364546218871415857396088820953659540101892248992214656632128769406237023955162417592595473215143043679728446464457861457135492722031478568061460304143060356140469077596550659882777418747602021070819074833462118823422213905628998629848658131953255762836853028498248259540722417768432881545669260917030936538199178792458684868824863130270973294722508086244774162678081111325018940866491574920401222598345643055346245562311934234297971508680931069753693559184690003689713991809877027651849921644835130605287060673178610622056064977538453821476273620183063041658670186553008450239879809723906117723521690052564059553340745456675505008055510046959868739327075539858678564837271189771901379441454260803613871546308699394091960358207710454766305720549685038632934051029128690227663421600092464755404367198781688019916853854031651105619690244121736323570614969654107103056098081517466448224233231811365713988837157171500459377279902659590080781462281116585365091610714341401505918973065120346815394416879989177128186799680340188655130091425222973258930052885344517773288100266798182101851878010211824221222213788298616989476522363953390867507887278376156479362272443444302775451603111707807329330344898443391533070219171401088754157573574058060735490957159180631417591175181969305546376216384575019661636760879552008963435517178697717176644234770947927040712478670438102711209765693593424657382337611550786200753805904006279444845635962853651520766597979940307905382401787236838474831324055161061898366765805984629591124100713299613734739022294769242222431821902145389667330168216151488427260946584060696212509685226608285266621212580282518060967086974882397746878748422206694651914426856279762374514028808426810347244751933824289670188115777976025971583181398954302724861836960641070745930434911750027521365842414838502338690261486640623893215654143782853357847248272901279643449072198085918631539026434880407937747188031368119573310804611025994391858644057059384253625080335020948315245411477392670697331704737221509862943668847174815417126215018757625734432635231318809063090229102440358552712239553557934945612304793138435056530731615184933844090043687942251749965740933820353769162126211671248117758785697938245835142939066696367576727847351180798938842808254304176066026117293466431921576186718097595564368448757229338627114633399329791767035306942661296112344618540833610340086756716339186774293311984549878217011835948127193383132622990113645115044256588388842707442557708300238010615321184815203493428959176515909469496158250777278777427156334485802843823150007089115881973993581185319616739622298243403226076171563268259597583061784373090248737510799090722050945591506404673631238492468475035352404086597772358689498594704695968458023047916147702178350261059270092835978649451196012908890549676075025136459660529716904303850852293508673275866163691150874375258727371119957052941957125531815718093009088716535660594329413732042421993218346762136012729950683948205839725807904735950084726193514853136019516344634480488650842959503747413564867269139380804047362338396494064354125924292710639566956570176565511364486891268073923455073944445920751094831901646390355773527223361481187192212607741300017635079527059244629248382262651917695022984279323566599177774028234483683340798798441690442432692937666388224325473921755767949613958399553055135699907820111013340683683099662183493311621957085294732869738417957255743068368621223852408416960149473545862647118582492329899113664531760897673887817010962395620650352277521833055636185010349405547091505406588377532707855954192534865618888963465837155428891123538835445248028515801248012209553280980553410291859436114383179575807229561325511567907638955880843221253220259782476840104158789731446972160982331706608461853193605059208378242290757671264431170505129191386992577058945910512096981463403977656692025273729274264574521475979970345327762212055914684333171704645572350318185292851447623053759248088317025807269037866677096285123130036306524337329907628419399257698409647862557781040825315392620976200126664235329500779626089369469660040193526530686365868727007111046904130637260816254812649966417124397170591180472003374287949258154806985750651598059283199314910565631478169491809808118293573044078942586632326453323111490637650302321353974465799413871218481083730747010683199577599395774419950814222574303605820693369106226707578954592528499351334592241742526536663698574862817859537977545081400515669445618195463994186677454396617173559824319361412727742064655158372152317171487169167742711130521586875215102152576753089267911449715081410968875137623096769823968620084052556070639178485789393958287039451925384238463612594171330338368861137398452010293441457602352141113951965881252371171149461142342535073962551924960006857511436540567412527365898024167045924593913264850319966336427683772049179381932163665423558160877462456617119899236033244497539680702357570026634780991054169890571144651016674850952330898495795635118731253426074235433266936056263140089270867082193049509919021813200409460562964881466459732059049464869284043300319700603144231648373468581076319267867522638416176662251750375741425474515048616034616197756627097024721808179841567578791645713863031282597470268999445940811358066470259542090146259555780264974802972371989296391739752752170602940983373750798010075853939309074679323580742193540828379970883499684126064172980144343881465551469744465536577533625722735128504595022748795397487594138153680226606777518255239253448849165941335972607030687396775830895395242220212836308267902337832838073755776887132157447652259122782731822028397074371804706987469484708089598505480452895540160751531730103239008212131385033277062971685997295772930919349787154927092564649011275639996867140316858030003107478471910618813575002614691545603373097135397611892517655520517371949112795816427143703817111502536215463127976203140204895410087467617764473818381197200389311616658303564556193019905496988749842513136310491298958269538105582931143498702285576173489373229088745568138360437276930273102623857752153245284844285934558056745806723484681385085164292820751434946649561539112060660257710146624557712789231752812455768510464072311101092279413375999491301079269590743932606046774902684362542736663838273256069675063011395099672418509862710149058760306769324076877468963910173361910629212288729550720606974429218621283126487910897582669509928543486151777752049136009317666155466581465789585060427455835408386734298830076230622388769702777464826953284865694982887520609590433643969460141264405994606369700191333525021775070125609086944998261756206658003727671645826037286459717877244311243831649956495346852515068100780197046964862241898648395310229202848433625585693370415421454932384875646474695881703966195979617295762065083610865279915789675456320573271622092029647608868579831495429882513577357210382085915832202938085655545682338705756670247346410537146517079923845738072567580569848939266101643131662484359351663570885724917115540105799983174039656268460496054310847023055870029905976218670100864039894756325283472078239593257854886718679974894708522560938709550442192001633098975334447470679098000956238381783151409636675978326733758971583106724629532862953685463607898350244866183598715621392764888339251625341264194768794191837765545499319337838620203192279247596854666183260996104191897493723024373656836209441354348857649287446748701407864750691647243951939644255591781988812035986603563895381566097530703510319184823772450127857540372927813773943783699124149146953197928910828942482328957057132806085392454212705148718235661565633825073250959778248946968719785688852812024805028322135508697773684375634952745534295179679502461994380077091622666140017024893458936124040294847930896619721360649090759778904798223585642506885918098553818614024427566079670756076105703828179850157980524388482608924410201887570745919276832754712690819173397675664491968404392500186533882329436942737782321190281167025549807644877213816550080949472252032476908688545372783251282443183711690025240403737565837651012411511020772052115797673754981825611819253253191234327676074864369913037156456772186986705480267208192058958408431810217630998491689157760505475565638938439944997015703798246837641504566315973021146302753490299067262700545011684563977639508354990591056614067063587121839526994940158143424913067336708207089972308175847546711619443963786242964844061690957698777021335798990822431157293634067521959078722363072826060326132786035081722781663227130309771860529645917993904593631555483532601263200747398851501018240203678576278003600189928355631844168435455875020849442777599286788742149112122426267382695381620020206200914304948412197568738446774504077317231753621701329784080838778712009444873391601894970102135089015048488450828916115198040926350496522777457441763597620712303956499870111294714412800731894554680885863297191864723277023676199161972459445329683603809728144414024375088356413691327700451443394136539760249837299271783294535307305513427827021014820588057557395811857202224465132666664067023141197029282026645141557347470085021269170360047788346650713950174611966314429217091703205128875177357478842514315274937124298754104599658303862392594414238507753003524629290395214680178293663395039631177983146843115006680205434182287370480860844570013281691663648907380302129728353298214561995463453305088685307864419967424370440276283221555780899567976848768680886243499325059632811929755643582374507820286056370040223313867890059280862429894363649416567029972045956685817499168573625877000620299901443273547921743724181761724100145540375445535033026473807909916086966368361201122511222697333006681188560878939550345501273249269237243384796060358575836228762690161787647651522305713955040741672108542809489092924949314316051579200041952373986859666304874841587803907988002480934666039161502079222426773833559494086036863926108068553134494711761178723928501990901361658083711424124175674359543595178417998564499176601964008831279956010567333958751915581758145178700782624244158986627789934911009047225483223291255561924924701165256905583869682376629321633541176636577622000531519934887830890103619140337079140110918002022162706087039998600468973633219855573630847741385407222029550894954853434333885474567835153845867349370048218994293768116160909569252695296394746844258622223845639521364249337180919205598366160657027898896754384119218165833404050635932879052099652306614736003334093802264148515369994312428232314561743822624721048595797642387378754086733858040155233570090462930399701643766748350798672793689087700919098657660313906686513591333419978694948579207164648657679011741865053992292510539380966208829342769850428147093719953026753670903776746296925050609454629880593847663620333558076959581678479456425257080669151615833354633538457216623584503231792793469408962463869670224064997525865360380451207555232081820969490005020237880805353574470961776004269708216340981670106498014252757776194500534197119784409091871089345998285820856411741513192747983024128420271551578738078194116884092423266148911542698161162890305274452032898292777855440645588981302208309204435378965441179668922166377497784531115675122833895692599135210586725398859903068191796738190627457164721218005345962045325196304145731327238682839146663653125858614726418071797628866676138556958478915700197042302380225170194757091537629713998818534819033626011515555856466118190190355301405805509280152203953755455168178643069772755027449965505799344723332130844994438344300089534584148365148940334235307504267499727183329820633283102245859901713367496990259381473906640733403623027030152324543824385786297399550611561131858344362019626951924783176225234699804582303816980550435916112258348529807401643801319824059567883291732191857615541419464237428751292989908094286198013660672359086706477723602896991215572844044968364678109104772906284041698375968347436500177084283528942114393550004357134712249106591728355571656975311167987840351180413630767716879654918800858423410010209281200791164209242893847887627997152978779337297842494924914288869204388646318049730905727846066397575034222661718245670447657901918133855116812590374950736575987630831105465019133282501187635430556663525059138207292180079031540553564603129676227566980096311153134044867989572374172248093612437515356659240007140963331373368816541119303428598345167594138417311730614965143721127196896773726166260961951437107022713806364997145659220773577072633459818971074588780340999733355624751189119617623764711360395359850737983701660511070241079376359623832070455747705000289624672709860751252348217052169043187938536342728644307085600759879926559878608796775532092491412200241467798960662906548440837268477842711839818206227674199264401818761383244465733102856186771436250055360099501084227733160613352267674562915996873725921380023938394262637779038159792471649569961839365800225020703638944267645230530787816537679856888459503714679877541361802451574978203711891656455019631690775715043956877192342415653535206630081001508618760060788943504854915984570219833640536978778856079689091574586361527188556125784084876973025436349014059354057367079504696305199398367653645975314878670039760490424812944912035167356815953382395747882429382264910157078757123627352852851435550982381326124979919625923233814916903605481269517887743294404383880941472334398718921339757679122244269083896242583375695399416387617444137827411312078557229141661459649939987532136693784555671287463519111482846050448892382362765283571487111183646168933820933461625256443127413640637294841573403879038247231974674330540312210676220975356792956160959628954034893537498708195973227995746021225422777275268883844866295357633273710732122563856615135660428696853226598718849554850892133979250855542451184788647615574581260061741026811128667098541018743594275221195195620527971910103924734704155439074783733434615823521278122553023629994303523787559556393153821705522326651506867665489806970963843712772634660422342087355475822065680691548156160287845905046117345200821610436701810758605814649667268918336044522621229645103392929952594022448178488701876558366172916759584086773165348385414911841003335834176739264670727389010472292826887316242156648874687791905771200556253723157019242585683355074409648347416139018739648341888690654883825145878748225692908813568776223187297948240057772154206736521800660366665944373066863526604773939118862845261998662380996882008302525662219932274523533613650086656052186145358706602247855568599736765136790126855634655869645847261739108627054853265853193187273000580523906340530578211489447578623962740281958072808703073322706723754254675063407154076241952758188626643643171026713095236506269306986702589199313186218955852816768216157092220828656587485680805168141008078959565257408698838405404427351396545305637632608030010514740367356533034570642720598812082559680775584629079503214601086155871704906043660610695983530949633405592418032423093371655451292202071725138559727677101349622577712401076986780980338320716712554353036986155406298673254130691894271188428197452315457725381267661549572131688699932735968062463953043533016398576536704616826578652441924323386074123319361375831651586550052751363244186416068681190472172376477740452144273072055074309125148891964575762566593999556885681910899450548351957825584486481117782021252708491920655863910714856717628230566189276756163410392337106991896064722082098763395160584193808868689581677118990442072183798508282558120544012899971703848860662374876378168183790305405923766840545066375251739413112940748298797489896546672519566048512393124096736946137299556581898149073001536940569876798672373124456606933191399235501009155276409332470523435443607626261191665857876485219809100100959165795996734342737387857572452460334251874948742303891017905064187445903258093880084145463022988725657281610961742068905473107106256961598400730778764471090373367869919714273553507535822862613617550849316097862086706249526390973867596172278119044238317188790340322012637977063865989770850883978403964863477228198014687841273890804213400717821675791139674348247935991578058688330191257797092775647025357335488267402838642902156090510117616407562663447445141969418244759684787252311854806185707107841531093301795608062808803273677414831676166746018561951552206527025522621442445445888633434305031040895673331690716173220959802173969269312153699871381566068658500533246479458216801743098706978540480988896308848942720929298353408773987533095002994335872553519030545177188464270920864121361379849097038039452241696718404007736242113505166450122533283208050241986424211280553247875292572098426308526793091405267892159685547505662662984119960669792755222135050752529717282089774906964864718832430045224859836766056865534385211798359282537550894493937128330002088955042876267000225110479856231976893243444305489514863324659334846161211159367840846548269909935746660679146866199324256711056165922381799532717984910395534963488462029602850699314074778220244465461407653382902008622765260284132483997937143847454260322293906071408141575693928413133847026068722424692847066016976938601879497521144227403261607867367944006328404310187137513647336018330439329140769832374467833721229179890487081755665452136600759311263834122696075106560485813632780537080254473256044523378954715100634265791244387342491290225680266288145343395529085426239910675038890465718600994640842587837645782314962692836213393030393317025419502951987232196327535099868852471079417162184209364727477747902557683833536614670264830344572729344751603229594168381042303661626382742677844788084060759246986919538976762656166992097686179780369741379919056820832378282060067553943689130302448425446377210994276236122382527253149757303347682004726911626981789873256255653646342006336526552601833926218346724519555982152251237851100445428928451941505224788038998197264274725582313487745054757599778137157044276966995352259461901822306826045785888874612147543452015609972143569416075104794335306516468171594985323879722268629617789056708869139735055449173702678762237325175246693578390515896997169292738741923100727094232156452219276815801718477862184641585159282662773587510137182953776342610790580870800637661882016733027473134525362663087110631155638262082524837632977285727278532655923547718770168602075749016367636448805504407654884631736958810832619775542783654848801376731421243871387818784443773134776422049009356893481170476437284870772873974067859876394661793341361678354174531756146018691625561052410343841610650098001679599391835456619064820728605581053900830601128386537402665601502467501546697620886090006109272101856172512520394361248186405351335748398299503192617420625635541438563800807628373311602229072428810642092601580852019420759224192692032138442015357725913216417449136210239249309510067939245119054491124419387368637370493647558285650439404365379061596961659146507767511421753411456104667742731162056897450074423698872559646166523620698880623451627164754760458123791333144917209916050730885997185053544342110719749458050441437905485274651539353451412514154411719194039334102862291768388857938453810711499001950185709638569161526218934941142577409077332994846973390506173420082833569533634494109224481875247649928355250889037154325803132327479258405458991716875193785798063743264387446455536359846694818512165025235662096077120884674756042223542336648482525197680730532608339257655448527141434837251520706203131569921827434177871329959213784410011157363905136391451385442387544766784189530826663160866398668459858956579754005394394495433132113410851429633365177697468738545365130501578016569395998083662807074868002995363287833424798250929894237458039962067045713186653781953881477542018374735954918436227647455953274283686090140551135569678806384951618918216191684058970734455338646844247242165589208081034311025643199925735492023943739871056342698032245610952744563995896821063410196618951086345361441055501960110790920415939245594631785712080999526320414557557998246809080479795706513956260137294969112258503020475835726092779006785779240821412302479176558595573090377803998924828112202363313146616866868747907828161027726836583840724353165245690490349272031883956987295756007875054377634935266628827623555465833185409820826560579889784176222096385274440575902898672350579073804181684527541277636410767087940450381310086459194593205683903686427899042825746714111585214894876958112396311013213430004121564852208075223596531076879430575875849255650478339556392328122618061565513966221569209509064331906890729066862921904025993397484177112231374605066807039209974028252884592913171656781926851012662021034908252646702827279717080323967568580387792069611466350426775100697845920919908163473373370282807677790214065996574897684996500310462205034877646561635415080214932427540676646545537497636988116796264808101864186936815402458242540753098448490668268963336975323626766067431686716827922771975665324804710641537910996029739335764320812343846427691065525726698993867329675325633587921890234594253061981646414304464421946692577413342579883639393606545590422152307850674715501393599050087112845347852666634805645167799570422655354322057163136242355585896247520155587829731712767320414520938378758877127502924613814323999142287369801690465603293830656421161448522613109193008248364926686597191327642370484247256748460471718476148491692627508471298811638802148837911005897008465943285293608668081047490637314060773957259179421067865146689304663058929828746702048868283405424049228414596535420076189687891430061355166985366674037122187655126022335611508194668659956309907916936448970187237296295984386054900322862373084099477255841083294005439236195839824865287649568398250361836411766086647074078833658570239396718296676307048421085138385416289863498549968599619353546942972484298179934930211528000960119147082480651998637548402634677191442426735036308047263563758938723788463694677828857139462378403293244693597186499167588516912509047843289429079963647279811566016793161585201008937016977653104505257565317322457539676144885407668148576192873385363189737650744993504201574817813437127048466488442588719253158298496736384038763934510180814880743675579780219941446309316107204675833249318847913386374852997112686752234936439016598736449482890286159738121171315647124319428485100886784987685465267954483097027187836261301507109823158531153324884031209352945806230242688844777175628462255219235122539545574283368819220886969501615976975110358189047951821463516043909167746636803066726183076011928245230243868421856808165070329274938739169383518192244499830105489969883064641167691917621069654394914763381779025203767575862910230541862423911808880592102203060143384909563020276197391077825100809418189931594513613107862322287992185734974424228801034430503475225265783470097090952876901011023713743002868892942464420160809229844285208258340637940474364651665019786686570602886747166850983616018888972667021860693057709300937099650080780214184766859684287626198813766334197906940485056726988911777615909924070877946408204894291532367797759927047943803809225250669386033262242293258066198391713909563073149259430705545789198035271118194575958596976127617112561608535380499555199848349018993664136198001151073049643965078255326872862759016734442172831187599549866743513583865489104025700809288115251220135982752195798452809820967686775564359663536320822860337721021450664761172672456861786328366187843718336165967934849597707141540294520419481103050197217162567160123408667656068741061010244231883587283082676244220165315209814046275690150609036197762233015344995169503943423869036522691780352338033369427109982005488248961798824996007353502293469049103515817420784266915891064325046246156640456112460258109126379322446307966022848125058438258508120967343175438643990733463629758391697570043621215636681051935216122087244114188482817047992597811548157342483419627874732547639569091926794498548093219777667687721107536361591307191271066250938983057153708577189439018096996521607579754627277149253363428555312356676181975379020379957067325516076844363576677438542436140993468661998700945455288098791315730438465510129856860885487105295604744516286780862337734623646177131546685583278289563134752040411827878393103061661548078730218628855081289745011864945098111061777766385830805386956441905218782656571935964575176745254843647204183103024810342485935559407604428412583678790028077051105253266412861848275528488461566574074156549964038657910669115025989173610914197415305613025792035881200319302075819582117435095370496526299014025760592458301444650803787417868956658687309605191834916546700796129412132471705536441558115400753522032669772218945916969859821529143859727732515834073388999684483188277116633249124391854568658731927341067009666986997793613886246022573703857821840730421449179538883797192124975053569224120268855204965846040492094797705855309097331304542693062053139497658768938284561452000892703342200594033131470750133872541294178126264131578437541764774941845184090376598066539738039702021707957625273504502807343140714749559011016893330749165941816450908249698495273848701418076769596080357956472654643925890762518719802722405908163684405415623123929413630889312480691385418548432802640901736069941466746186423795520960651320663627605003787363097173394321866551592965119361941737989758587003299818997208867812843014937869313665577571664333823375881456058662686912901815307346080381081020526847019286249361831073773717084419600313402721163179512054521458311387271569842895034971657954051385403882236613642854819391335145578360167571049763086391089694855078500455037685885706570196907464275451256394073884218529797993917242706626230536056435460674540372966008331469533438879774170468947606554212314498846792100686181764874897926371915831610618430997735116440420430212402971575086551674746093343689179959735832037312552562584612503604073958928672927265693407392091463660471102961162489626544050368126637299263256348711459373971080291976378520258803437694371520016115371877410120036986592303868230436512578997943503440782672395484827957797930340089559964996498671415095750128411557878116397264331497259245354875774411108812554849728413367749521224827131564545853972657033819667185136951929748173863089257559186746669347280923744551055869750898646454634973065617161654794523210104341474809220534213751461426669249081246917230942379525989553085487576228029695430989372437398108741176343624283552352761076806368914296608478703070561030290132526741805412815746694641741706067644934997801487331624967533555234116087130916360318826472478353764668440141588165531856607883277986747613315033591415644407059559044625413455191058052041043686886028154122464882703200510267310035255952880322717771432897431283640942317320800557305289586918449527587884113882127487883698038016802104458321996417817839847313413360929158485261719696706372643253016254804362713872590015811505191051661253175792441100934277366849124569030967662525421743295575925177406318426953457966686935241008041664866455959609415219042964537989408297482579294999690331630704761912067474484410628298606211442377315522866728501290786722728611199334156046910506084039791177954842084038699743037914020764926226788355561828666610694686115395942471879251138996412515010730301047803702079853068806508243230396918050689578514339573690842738659977515240372406482091572661949522834847287365897340898586531187772900575688948903759697854212810563938074882630213105351998746119737533382564391374287774487515048307464002256695250952640315785359735329408554313575293522957695225418345569936867452411521762222951353506712280401321141846153222214607056075337055091290081184432117276844246753603896195312010957194021725432917722038457048347843659183235186475192347418225419088583563463028548270496352265942679644499197938342595606880743623833375843579174359104621803318726866666698084876383459661358190008964953156894833802996573900140815310974752680119606868259555762958872719761034770441852982416555262344513036173464061841090176528687552474049394981021542479537801564640208608110840341585878479528938192699706744593337722894632784961749796213514099475187860968154520718906449526871821241232488366927606900788020182360626277052412007327477772385807770198108222283469579626791183555373065356886060495192885762795013031602881292838729020843535412680904264404852092141138067056555806821740059263229095497994833301927160407918706406647198352970907290958531180400446470613875174833730165717511179479247135540975908346503592731168740339738687471534690889299000718298748920505228653804970175719636969941247088613649768245655231554908774252461515410818534355594785540928460857193312394086035743216891990520646581725676130777957707511363901511365511125728614225146413264782749209933233916404141605991077691996511983058019321957373692416410365891940627197890242168117376405499104550484838551019783726944874423036584028782358653734632081119744533432830475931883168802376101897659772184291807875092571174511801323519258679928640134619805712716999908799635892239560265988555125848041069453243301537516321887940395171079566548247130221253575250367336910399463766789134766114705745102297878090878291603309339995871267456079854746717593592516110735792499851460476193888037324333022360061727206014405697642040361354166219232103800266170067201287731696032462949931814309639086469179781362951699352187992172573533625995705272582527638280618010302464838897373585986612183803938993296619776196167301430537131758829873689742538251994189440994368813794632618062872928983446957781894652504158756749267414667615143283104490598837542284069397933873071464152931474218536552032096395821150578102098280731224569052991311835921046282504637051118398784252609014771525750163011032768220255030684452543682982066506600172411561177909180803347491372368674644987087152891982102459436544258388945798276887125046707847986916546150466683105994456188306563763297338305333130052398676471974547446004707130701234282495217740063691005199915877469993919746346864940426581013134537075270106057901732049459403221495684331564120674410109006854978841321889139195671927107232090725937178336218493234706907878520272188288426892702762344327742746576914244867722837844795019547351453073099225601091312245939540504929525144028711132456003633813503225183305833500510722565780085374198334500465025602376817366457934982862845149879393725153698360330658849289463251395163211657826186467744591124860108176993193097249235923006372669634954597774835844511650252689471371943738124945812325364902154411526221555859719323205610164137830090454730090530020168441329801310080359532064242017613786456545869271699543368434861327540346517322409064063903033961625990998093883647935821459723020348989312012781076561074308870038241452283705340454320187072574750042923615213444715400073995187245592467730275608412794372424049315406278665853730889140381505143690859017836434265345241651293911581215321712944073006862927922625152851349700005594294490687256543129066845554595221793472925515591737111979048925317098891316377843417757667978712258032782556834577839004369732441224823341352573054314320613611885100642081900203743390436000123767677989328304208477880175404732978022748023959637440184080041646498614380631231309183913954543035370430392984147521213688608184637682939113895853250727637376681814784149676347718946488569838033961366034936214870578026540855761534032670436000324379611335600031487339731381995226073150672683726194136666719522204012400284713502932574192285636197702154840778135535777650606990805921418019758147922117230355619724049445911992592270570528803093322599244812195626114175603343720001710209872026211447856331946625725890230553153557913759359162657692708227306612789980788337480035261316018407567197578189926524287218398527851616857965271234169345181284628105275985159226395193447483386614667041943720281969110606495161523310416688792147099047098310273103293885823806457517722872218270739341791803391791957656913974721604503898262908286984729859792293798080767672130999868138735003812145586852400526235350095254819328573865661158791108508322294669534440696341536255009555121516720245231407641302749908133351913534257939715618816862955078675478663514028481951382606455245187061013156118890317585842771317947019041475292758639004795691160837507767834652781194587275998287571396389080261992631377052427364504814239896983201764270089382015645309214630730325431819641185963079000065370451872473708472561173065098686539661600799708925392802089276306411100647030744031586487804135129917434251617474645174251923914675742760159121544583158786621764945218602106049595179902415530735611973354825506381539233074722318419639650646574041889844479429361989340776951255948703319443438165497696469197926216872291638341333470068276615163494074227025666615037660829943888378990311950162913939546213089505478733990362357118921299687857837769368790330431467666009566589434736306783847164542096245284233736937053130578365818131808562061368970875180195407507968809239860488425604945854907246958722419866904369415438066663992916556597418808702626133577365537210611735834449698186933609084246489316905096498546112520612076126861090581095385343663967003714294215770688155091562466066689891465281255607730085164844368483335262959773700141467390271344669176121839903152413090813793708369834119647096198701737380811207857850332423719677294887043111194138639714848370394568021010343654295077364983281405344007603518733048328818408921092924327253185982630744306038392925430032415583434114156916012481391661153769468332274007965313286023188250288791075669611640965480914092140489672930280435455199204600409075429593569768239489794503844535338942754146593570679226454719618912622593319039572678962044597651194790210554149943476035038671179497027825415289812371049115170481252781165916683675663439041502891305669273483895552949563117179376742282422472050555829790499057366997785572245048506718753466962141296607243778077267673862740323282707252641039245642224662132300665538870164347822565530148782239699056339598938768539808114373810237421294227149135739183153674150436199998504790369913514151657897869586667091262929312025578386468637307586225042435648965923800699697298441244685098993097611197186534790341015879013445889070452287760834931872707975654798293618216626246500753143012841738652754058687069145368715312769567693426525712759336789079651083640553273719805295286811806868060236771165590848655914075890585633038085855004517009096114327523225028039645545504754998066726442614096194424585737682019972516969837694586101520096596359969290168832183315554955929127697829125004511140081477147580779978322255991145749843623175134268360904747582765687344128516639418844167317725333362270662408407801142546721121886124188961407903493821278690759734034592727941540851593794167556857211520189852208664193766565125801559217506265716330172435657656936909416428523163380264547335425843774625494684331523549636077331882930206733674016418174769737754997432745048786165622966777840748487877836931723895507236639628997739193582833938248813342112903203138603958275551821763356458492139624200195818850120467936626609756196796310456894321273810507480719723260458152772978867627040561526090771708164811755402488922740541807838143218477181486908104629722072352128346501458475541664248980543044928843383435803400154425783846611006647709586039059951939220364594490951312107035240409552650232462996254469583712268115954364540547371568510324981290010088112662672889843468189665041761308582142539577790967130704343523073658099026128624366583499590135723324814362059239649852667996374868102645226292287642867477479473084442646355033390979111763015759540879089066083217041780745808653256118980083660110759843284846199105248573246326353779416068375792467031572635105820055561379858148738165780227452837994584518612179838651067725149618727807903253409780745904790471504793470074334800854037503492259236934614134601448490779031347968402678030792064276295025730374981817534764923882679272010677568533136733471467223580052033528649987602102791547565845938296154809115674151671022091579975367705970608864110763818434541101308780584423293701735175860957038684760573129737809120936121287165161697056191339426164420236294367496959380303293833438017289420695065641528837497512552319656178741992862178339812978276979576028849011014691687257044967676583216397733997924191242195587877696019863978718895513682526376439018329405259922784242254370506107898876559268467477066511630486149971599594101676074101311422289184082188352959930713743899695791482073167433637125561546204417398759329697115052583258628608877000060558491184601275792228135782338959718509167421731702792017915803080931362082275752204099408918033569975417835536810898514586801103755722162284609132966816333309143048803653707124789225525020681949254491828680194656004925587683828494258411320078095591787499750968475737600816292460806886398113222693077805626465833613287786304928455529930680771698834385557183352658800754952696447137491981353608098962256994326069055769351673566484239001520335561599558943253999115948091712994286572164355906905079775501595493186434386791177871510647166855143185316495514381235743768454517040710668188248038700694530712558370366980839298241813484992240009734418439341274744940859985331903390935451452537623597830612080518884419455953090737363219069954210755906931218851410635112048348336887497566480266656590347644090445220153702146658903421352886790424585687509390073137628889475896890676475030894247840746310603964005020593742441913118915597817898990722758684382840088561582490732331267139734220037465531313612705222720241475009022353027046555548486948247525363052775807136875849429544482960077077393452014525478032671813577035994545261711837666367704249606280519470093050164401004747814607097572495462397512276963308886545022608390975433351420873249227690485186826541886602966887957778040057652000126920548956781856645073520728790271747156229773680921891063197840055735807426102509301926743455668154599957356644435963013442197434347255353525543275724332173332496263758670679012641383671303211288100389233836273324808755702383115125395428435023447166116519865687390668140565923872688118853258319399628247915811572863324741416564014300449599408331162556105078820105007900500637995206750151441446539859729309836118654638882105234971253951268485504670419159224035685243435196294698261560401222556227436205295110204741427704397822877906745544069108535232909893880763155659926566484470326712207495040828871902338705996612559261354154342011838031148594599141098847197238629124530020804559195497746778973052524361185069613009960169419813743192803456997044395745027807105518525667601886986956664765240601377426175776586649281431589050496205582218440495030445731462553182676983051145518339777902006509248647844232588727907167226797028593927833286075715541732425568549988116756905600641577763833202261168181843808386108031160191929533519787120548320759633794734143889900584348211443394381685229677779126223055188810188074590697623716546471132059098814368383376566486111611850821204699750124690140878784656936814380858097019219049068960133435997986879087543937729014155010489730886986182601131726607056012313707258585870975000524895131287601935066818290787607884797820439924238359382548083322417193929152599946039078225301528100681439212611681949914148508579292327802658252488081942428095667323134877123573317310470822479942660872375010565320135889965191669970766028600379484636335601277271777229084926214525733899663286914280710309950131919484231593029193657284960277064345712465703234533351373593093899283082198945563376282944850493844388710286017581836055696529749912593176040776033494734832030152959019929829703410460985407381310583849746117576032958787512021110230188972690002472019624730403390328082863655069194311100645632675228988333400815423120778045413579902803806751359105091807782869947502672421433759778726206298411033303933798984143748948792971962459980651200250707693514057117734700477524965318634262203090341226601769823697805545368481700129151144843106084457144330535134896973736187483400564802074713870439772471288595143739603231484175568157935516354403935877195985750944888028406399414423911471783676665844803506898924132268060231823091971068097330033781175567115996189402228122926380542725181106447465497099043133155323867943788623157329617500954743207281550979466466643910106554677104991083727872243981145274056295582666430950944281078591006243592723100250479050424854974533916107574291478212368773535500105943380370249005982532680854184349930111031370004824367315151339730674571690477475634162439418869102424492650786809422930517136340259209721683693522755303357740823570826007380442628015410071334470516415908864780430935551668598240337302514468680312153077856775189078798764364617534574736621117360306248836589019314129177217822022438343142755800876050859730379329606433589505540078189754897734463691782231950490193191889529457137201484785248122025649905152639502267126112408118902215083856069972617204838533335862253003703330959159029215094814957553558973020684407139438867501287616033253172674374759995737138256531061466806070432927090195312724582160099014804841909274305326291028336837889353556507033416635535881505917562070356850303508707078313395944904775358136313160508535502188532036701167517699809797961106313159995819758729912115185364160065009989576493383847666623496667173711577082228233489221213607979504234476185549835350883017587099753864000592431908459390656841752741742493537420963140012232147627123267816527508178074836257729928628583805669676117413861352009389348476792934030228999369367099919399823616764161904334334425791419571178303452642545761724598459881872418300358884148515063201846467549029841860276022087913183164253526947989330777727461322846931847771449432598157024765232522429038210102013892374394657344844557296316638856227042721355483160866483460008335542212150074712303003554342125934261519243995954788171662326648431303043155667110295368248942188987730795544334125039238378483418163795126469594991745804100948973040986372285902544743101522082673031074767806813157133502395878187245275182389833646647926371470208839889755075108188911342673023956987528593986605527834426800478134634473424132023508880352248399348179833168019664276024497411332344352284768475192488335307126756375277094939569139939474133417911097034742635344213755354815752451771319379360509041981451028583779220501573379958950421506110537420092086315238703741209976839547754648424565337656092688040364671918002050401515084023308599112046157127045304315943547097666560339331955517284338541339042834058829281638668853261304590466655801420161225077190132296262527238000023868621957828932841523806538377679488833686100276146974379377014381622497685064341306990112780372893922463482696765509054759959259839690723683697420268650883802000631632229605218697502683960520724694136830498313910870356062898322232563101478292072618910651849741977484470113958405984722372526220064987384316010152140271983166922929322507313424601252539876246194481112323869394757996398582650882239851835565693851872759988068864225330169321448447055541616675811174049961191937717986712244214991846251625630571610795268420655994781376552966920152125091182235795927065548514668711068751320797900391406468506129602471372513485203692603753061266692358649835417446501918422925843254091528513048064554217781965888978050291206160581229816330364454951244370796858059383230112486712254479646711149313834154464852629268525156578430848440884695111805554238185428252338094682850408838585196841253248265902039223704679921859792337842467576887221984910723611024708301199346934124919653677532889899590730676739218873778682410560103990282883031210085038535041664786609927657528470498106354043980200934802585732766616883604912060142854475316644263852511897847321039664799374458651390461467607950898573006419737738804557275758304651019698261541349362484036892096890833735762745151380825836909884069635505299025955058900055343704899465684762934883778188882352072483862292970376166634312170632133440573822816507364129161437315286887094528720480436751353919821466662830850807067271771413090745561916502095020443772199258870147127933810108399870190124677606057694569249402945572337615523722615900464932419087197561613370328311532603879032767856351967587541776022003216242037943960192840660510583822503073519406443542965899956972514221643134994659290276711798655811157802786879363383066077892832481654235172718883891516838388277072739759907457376763359988713993156086963760422349394160506960998305083098442094550797764640625087616124826793475461982920546439409250693354204174729977935773394125203373156267345721562486392042874026694772989715045061860550791057084223835672277883653910560518552523952801515909040047080884156268008445939353426969100895568204030016880911485070102068643246081881321215487915637604631685420402053294164615093778842243484048700416019464249872457925692212226381375043697040303474108824988658589127644007486860384564301458362930861040845355508380554363596728329077576968371364713116558131643983514567659969109255944649056240259832021755054285015154762283061093969591058072598585305979289848141043137505597415940632919784114358784187448543008232075102141549547816621208913537586404208159507742861361742414009373169246713878700352329092660228194571254946285383415250265006997750317329305539944727876512720061437908047125793971296416942805259707364951808809839698709603357432946960046218758503600493707554380556895628401792154471238663225206932041164663456630175050525043559805759523193060938526934410687643135785620314201714001839210338240053483932002202462041756773584847154932687317537587577440713217248670731775280905629418312927982650394756128639933450818555954037672353427614050575969188876729622099320152834065000153991933523368052285210475550210851240978813097456027710225779503225390686950530588688808496038410028397579669474764106434026956888677526060885794733371406035446169037559313236521389479356199274070645913610983875143285746742147268781308925034140579474656316599434501478843807275269139406234937499944677723247308466042183394366841086753489513393971250002869046471981726927233016640108524880434413866521765508209227512474786962426848320473222616653059413922511346885816395484372527344245287195134070911038685985973444634471850954023111644730734945198098111777911711456240260533906540761485072327549564887025862195031508989521676840204294115014209496543439286206892827580296837905214338474395191915128627736521521898927615721516395395526674789425295850515920523270676975105383640671018007995291976188424600476408829240026629453021140814832196303041199760162367241719303538129258620672668680190184419649840964309343141464338685151982877141838208919711867028487144223345573265756882641239725997577436513728157144560625723733091705745764363906388979804310349818545664636261760026412849460893253484719152320676869895548173155173988719598203484879279573569430965467795800937161463309275672342751419690933610418697431442305999314408290009023772249911651114062551046180668267467411173291399677082442159015846412849888628154206084637211459251880029130990278030799403215013980065584398115339262974145875195516503671838299970677851752281437582595273972805741774134194114636492276641596647178862880015664319148575553206858524918865098223021609124940831115476604109854915399745663550731327796735210064490110991082974303206921417529619069907752866706222624376155230945046818799832650765149000031981716608016719714731811559170999309699871853035244958373945878686095372761921491328699869365276313947072091793188868245362903936207726889544523584389792589582222694866569628076540095601957253672918597197831292250891435675835852130636019767061095506652764011797503573694587518633357784390026448987674542299094574707224117042510826703166803328370315684986117361599588687678091618831265874019436321043546245196168677908470977957093793034465500313444703133339414932555525884341245159191175123591982042178523601150769375323518022574434716288755213557071805999146658537172761643122671842672959263029703369690670268399383712715517392158679541344103495089953547637730061980217254698881537118372840754290020509402422941097937242917449724688139944708150256054007482911166728501229439550759592142436769344862624459693612170389388051866159961916980919383917819200011444487021653253797369532976657018233819715986012859576571750477302790280258742488244210069972623996323843682450035028949648212426512370538282842435264719676691351003915235846983012693876318018692607551383252569972648824217802465668144408605330415436226020178630294547142905106889318739388223853202924718895961648568399693569570624876407895583642546332481478359455363173700958024758454397264395434769089175533810259373807553284476296020439219173981604824781687773011532774180980845748231209024602686450325231066080482678631937295546623320088688633477345882463736166965782248202237449630449597725874884041956733800174877341340133790877232801442769229068217024857019520102078258341241947337631292499455922386416990801203986973982507927766782240008721934099354724259380833879443248576305222157043869101459674657615760668343161324250037847957613690100798397416684836024683392837436709974628602636327106469399276348024207770540059900645199931986147857688736633096044059047094091355205062867548571374100208339726883484481013805326488461645204400082143807206382071755426122496830639550137185379653977376480109819779079862714879390198488031976939716582343642770215975528060746287415860510381521817375912389080766804532858971401733303437706693551490087937189601600327524753146945569908620553924095596388336294185381513126979004300187704161871284324324689408366799368798490207223014988135512638106803850022652145270970480847885344169634724216467599776507880837432614284945441661372704298722287756116702861425427501909034406106482351419773090191541935582696449433744677731802783377781807253376970831209631348264864565230296640331600082114438813147925818356542793868274784235776759542297979124876638908168610420051203317608034461486579830467532038367175584788397667171708987168733138119368510777142794299429483478874534714941371524940911286304219219470544437107924763694019999173269000290017194972934378937555290726956855392106485166174912084088009848801211539232652875940334310108460426876743867273925844494894049443542617249529203159558533721047630746284294066629229648376891463281087611981157773879393515978319600856887853098215831247670233292577094555177090880000117246805736845909290542184218969033030359614906742064985658427942132463568188674895403248990099846908602400206449829398774379695454224639057441676803299139502325681229055732949068365714629985295439279775522396801762003607401344298954715731486824176618395247034225902790331618980642296084867254272022817457297778877333507411137853185566164898326303669809559851817162813424646514146156794618130995054553765490770764284814650218174497393146630955270379861824541298475537013811082047596662575560889812276242590226804422093168868068746075258956045777435723992535079392419274351135612544653588803304828247688709155049047358465170453012940756554228099269207080527984305530919166149496778581923135209977678187255486170178124741162116958931998671270197722548020958582848584954958354723174721923728033639796681115639520459081290420577572751516890038417957113536644330632973843010726848011155449662712462138861625095361347574352426528060839315924624584754764508741534834178448572412222869765717377160287455637045145681621077672742119298679372253857693509090331932056232191069751035769796971026994919263563723314564314762230855480063207627346961126477605902240949287974907942175260807779084427091268427742925075828625308880143764281939905428704999440799616179008406702699943176594906197981670482682604647937104811102973067455187382055202723955489215532153689669694776151824600284395421080963746508415147947067350523852912300358164938635773532667171979433923406386161358065123299290046077664338216345988456620810670540008499527639629963152604232692329995843761613994330152503758351616190148045951539365784280236894333542169571090803584949202866419426706912111260408378212654753273942951565913836750903595833272831848151603855038176852165744961583684035129801873503334489505191772934099016980480530534060093593563046752150660070495007354948920678549784669028636839732983746839456087312976948339476693164197240950279026772208041617857009848263792776369021635846752679425762666352659787296034148377025734939290126446265913410916438895545241305957544788267853272611205650505315666395740311219981403396283924104477973981652570829801308753918331012273568760887571141371862091632708775130093151866728681497308702025486586631942733704318028996768929100167078641750649293166573970918336911728516907476369852693209439827931714452203663456055087130663731449322094185529906875796092864296494572641731100152797648824813602904766961729053232473205345019223792626587428157939555069558165802566254353717974254308791242180243228198382033368369550283725899159470150993476337865862302116201982246251395707778265078957251340930811838492747861627899861119205177404882666885718564774399922550756320596963076868164795154040783472427424421454336462514756908644674141504861230807593951080164949357668807730357084149246159016140279200256688216517433772777226706321216296807142947333965872558871556070467493812998104683349545766187156272502087005213295048578526046804893925098145530435153827837961163793550612715848291730620958278292859273369971917856503755303993825217698090654916877353082283755815023261520229922491601823620024406301821685094774025362165195140252035342992637066837340652433460951223485389126807809182172116343737962901588823161184301386104562456045808103866469122164188206541316404853622991349535587874387488761107965367874670612958628895899794129901933703606358641472548458694849381858610422722969799916717970341995069301578591622526373943177294680653830533541776974410037747000882363632713545522884428013650238306718734389907365080402719814498129758313772381026066828764118235001718117451420092689541505253141822007958381293989055563529183868503305053121716131193792585010330856699549890032515034471811180285635162529163382828213855520708486562074144055245707674664232448959048078909951337600983557689818308899702238419332894822746016062652636581622200727174484983325061099027427570641618269100403182350771686998359984394478246083397355041145795578950694117732291813821377708886105219544648131682999892139717869698967103709217530609598478265816483739398483661678681183385106112686029185031662763938415343522265302936840816537190829767533151878577487064047632102530877366757293713824152249630350376919379492128826526074916923777900176696026800861209005592528243978985660716951275167937578529490497366976002996421445449001780003008869004358494607562291094316993844681652788511354760791204423618151193439238230398894975925507809860248300431263835561370021240556971596508468215536272236434548508259606895369888831986431299064124061329259456693575247490705658102593115757805716328819881418503273949463669385328944793613806885846550807963886086974612733970645829899382151296207456909677876968868696887589700812341673956245081741126081075860132048091277528355388017720190034353590152681853467124615767138400352760785300711894967619857605818633096551257996163301017444744754684464273142769563538958248933531458051172065234410932246104852711624754226585565387289224704414301554001818722085294563352025048139136376558641728026145434464816645262673365338274231134387344587788491996971987582946307705949112265575251186836792513456144617359515440113263022194477368868790217872120302501609646136606492149252627368471210482059052651719427336179676735109759032275003683514389265073425795094410561254791722162530267042110340696700262766638236865541119217510800242207016796288249037363441046260393980093890786149378294333371862257246127658439115801616653024461899145384170118968366445384852108009879330756118916307545510019764898609060173045303308550990899551100774809103881859138027318370399038918858005495001315821147287642463645131102645513412990967747552486596689601924544770339792550150893967621391736068901560866638616428111877236864810328288139064911667197720614913683223362333654049663054409934303501005499437824884558505369118158302815879876182509394730316460779513331019806795484772116679773712435839065046056071226354448515467898667535339509958625559458595893286554028237529410377129426336352801339819721284470424675473896787073185717987118024206229976505064940497038640185780301949215808503018143082301235032626903964123223401139423154896301719788696478904437223989998104318837108370162705519235078642939005779411137997605790796451776308432490028660412412781993922477383580384067731129000638095552479822018851904589438870498328843521509341892946222863811691627499156125793877789615287979591124278026040672003342479603534197668353517502270388820948882564207394177624845331046955923240774301025924786430222064721817691566374181677913155312064068029646153350469043777467502731070684785004307604183995838212697392475835378898621027019827617744492256662096648606274282264093406862906840932274977513876492151318409594193311689510967870970266611648623423587012390691900307803052698535052774882059400404934847201526805922049647686024405657568434639179182680236338460090690279971836270979757976191504380968351985296343326420687009333829039697743092678414737362638592731404130982826991010382462677612516744546433176748071943943235840390216482370342931671724680270231048080267063285468129902899301698175124411429232901477173573235846497301505116243737991782383604330202518618610764705135504269099077072304904453035932626667024148327105169029780580405967837815678883326640575663097092971829897336311832172151291204629620204255951970748201233699423815386526624438636310262057257016266870068886487536497252613651908967879070362492503065230337809361417416134462535145120316318768319648696162557525948763391255408863821142119368088299786778605798537637988395006312815662122505392007378617002636324324544232150911510510681002850235433790430536803070046362316302291165375427285343795350293071247950049244300258927880278678072691743311578580969247328792586372430794919009351584136544768026560323246112062403318699390708709847528350027202666770539319943321549356297149922164698619586214651832795755548500180180624402634073891894207791536298853608594268325557641919832341549633422834893010420754419145350109424010304662385819597210248714046525955381228578980457400771439015864648707931813649579633151738254370440012286639672366770285903272846106005485215457042427758513972596221595738132587784290166563001173291625589048277993822293387385418850400129591093026575984280579407936737084236551461416413803600414465363973442914107927763377741789522845611887246290527988083948641451659451316962921036617841126819485943277794407238893993917867524662099398571244728097700191377378487187597939023866935545960173635795983430052848224624586006580799355863515784990941091280490432883550462402983766395674750395684248162805654534514736740361086413660558999637763621732420514169161066995980868764454914697861455305462811836208175412574506497292114444853730259601319143123811277545545105516244593620275325380368116717401101538045843752073218366908922613697348738337450582060791716981384117032804608181605416262400701414531067474619676565721993132504239750241513762437259753669794949634824678413415180775813048741647085766858817798782003699030942226808305142547928062427362687580794814461722033821363373341648841056666893594674570990472520452045041205833235145209287973865094791624894378899768355972977474253486466950419542208873507594356170105823143401415087816839386596446490482683453741981226498107270538167497404523636341469285431428503829679599187498277354799778218460023670604217546303612914154944113889906800896432700519662649486133839912529994348950207572350357890441696729412362006824524271596515009822498223116403654361798913502859277631143342032735269198248232567559166833721399891044578545332726351017563629596378230936822994342510603394514022465278038160098061127657607098655358781307700347187708611969589466458669028350556834734510432446604989242004047961550205868141927129657232593042534396892305800923436734618639617699172750950995243879866545005512728723939527985005400584319603623511661669143158113937354923185993529284783433920816286339339791246147489687798280373484312460619548730224980957748587205024726147646618073143302341974862173437362063139947046928969309148165278891572677366258942779493950148297374076854647188229751723211519754853487126463125253743728586524137324380731550304922834699731562594267270888956586403168509780421406620806372255612788631125569213987680393968484092918727696205285760933104862288929211265546125721313440068691918746824728531222761879152453375625017942100621145890491088297261148941931067586550996236501136203281246173682049251063068045793275869807454632603856289300211290544324524577501582671438222961770852507694775641590104588319123117147153674759733742769236938102092304795625165521823937148264026543343100069391466372456517777020748030083049619992224566970580740918816181209620836687774944708107832347187294395291146289499043215102300768433216242149864885493890635130110194157735670166073157610247798747487074627488333593928100380702852934295195728951512178607722508416895317464831984943879621247181787472412902571895114410044841369085553578130329685350693311809058741350105622256542477713641567634402298342982848905203191832211273958898223211132510695259036540114906118511278350013744980958017711719680424061652399345512356003631950976869033969778735024873841310544138065890386798558847630211355932729344970570620822595498972051613912303691814416652984528885098998082114837366817368313880114129172986780644271031673890931377652439316226721051478232845427098714899989940323190628985213599666743882792542318850187995904426910714870352852136368075180351499538297028750606697395682568362201474628817707412964023720535854859231499514586239596232027783456003949243662817223543762472305319168581390580122839701292607533093535551589866824133002815427292559440026241271789907806547858955672661018871704458603444176900046987075525785102744015904683195519475879052526153365417558063645266159665580250462780824454428433187116396386988219459423902103456102761352644609281621099589756211018128434092420219991149831028458277329895159358505744331679506702510154881220997881488597572521053316383863790865062575036727761249825542410109279067281009379650523335838165814673877061104263940454900427768062635638004418655548788050124865895511814179464477457208849686246183149653953842500812833993060053270580881988227423969064600191368942059485883098245002392225955792513926046204779626223837878912688654873229402273133523789734873342031689404995346776435336321710136738483693329236190472320165978982681150161872273961922059771610064349575081355116188529600322741041665823584652308101304404595001619276102222456036108111953959461041194461500576169312421255353897828868754990856589460075316032241304988655119784241127946466168434456227012366655707501446928981897099381327838441566911818479998451910193576855748877417236238668742153680198321537248265481836820947997049905923297727309132912118547562195403115210084026464926399128901351328356578067274925202880495075407988307175079240772593342992528933064416749709301230449049042545692705451758731200831167285637629123069284696235621877914567337697650159112437847832482397870438196454082181318012462180401577796682518858189446644836827305122466869767898384929738681620671801522525543090151550156431011496282675589763396372075632374798420263435646839425140405863574340894869649748381137980711972753406559778428365246021980366115813538794500921819584856074194467666323964387464470373065728507508877425626532354207759427414798786050971956774088834823016030183210373144460274402798890568180220130713962825622160038290114456580356391433885846254144207775410733303297268652924112864694635107531056582339774692057416761662387791296821377200835131391576810045431509786775402995703900016969116523283451312404215225498032518255305928647937826544302644002302503430628397890121247093440337960050759042938388444589589669355872800021057183319904137836721389523669139166011261480368441519605673300461741748397881662101354640537364901176665797893855807286230260769112663941474137478026134053673238257827393423985025302163692163616047224238014393371733810193972119833253371653085838328193899963190284535484987424981377574032473142101810887226204229521708550074829932430163311079886151415420623459221054885070484139700350878821602096535188210037350840826848383821943976994821555211736321441449449484447185938004634945248150876930141518347570079259487366200450378591272747454106146888746454502400937076812658900046642685535321620752407627238510449864462706398845332569393818419240076591210143859556878563277043871227853228988121994307472887649822330536746240115982748206772489412146885384654323068528247590648647083199596876708017649259828265994354118650041582356498638819288546077577479552928294075926496570741510356564278674432732502373972820383237458424528129154131410381620704014254202142961360621602769327395535316968950413511625592131498574697568930212402933931436425754435404473774250998504208840979050544864566670052444101249746821197963697724154022295697885312720983451917446603032222581765977892074071790264665599292507823034204132188716985445362181358596257176616345318776737219098596589067890628517383406410454223081018271976987416084870166698568264517450802595776573304143707202407741001994053921220102337239447818559690926842960960860679360241389923733996065654034354098617705532781826032856079643374804263607471992901228779994873566031898132772720939016823045109795715688075307486549217908174380444902598612295597986633086392084208927224937220673354817876517735058755135975272268528271103179612235264100420324495480654754266586410191560934618877458011925432602221508597170607597051775630305623304757785383073706914044228238687620567875318079493765999112008325045074172396092702803224014604886687062905899653865946115018166791912917024644377370915899379348243361243191756570512424126547112918902941504772566261355051928063963069369554976251624637844694512792644759587580356692312712918355510411615224802738198290145006225168644260563840108598038032319281085122661475894127346043998407298427886759722438208304622967698738863528228524940829665139090113853577452865181997800221948169527021121488848282832734386841173572732399832544973315925833469539121611382177968028778264876278851329678427695620756545862631540898655523211768216596259727913444798728802861392412405427035461003702924641290251443762620902228244188683983471673459416044230929209541307470900709061748434282596775564267778896020262196071147255841594994058905601009874423184617040266518703727499286688975523900999610477641821607155860329628148275216990183417588762541405371252000997233876098900701583940481780274926867985989604668145867271104507424130998545010037420908258240461150599856131441729562888562781906728128541687549762222774375731925772918657993463865006761884835205202110003396169859299921941761264646587724726900327588711654247384591265523977512137245052730162134418507819969223375829334780327355514254911786648584279388078884583513435850421184649487037865376729743325943456813411744038358736020669075416651481281253104026361355043504424775536212016016001184596323116199698951786775064653648336642044987122656930829496626070143996049452963230588521285391304333894199385075357616598771031379626103116299725636548456263014171595928587032667126205912982900382123991022089158683003956218932105834257847972821075322596921331539573693470548203303348674704283569196008202358953856097278714736078608141002728496614950242876916282344692723083760625552454949657070773569818102666385441698256084269392282334296204490949246645974038227052919251473652939366521601994885511314538693285231223797790332317044062642114129669457376854518384224752807152018161416198453126818264946417938266836180713687035697031066758835896150272136593090532511612936227509147318802306743813038380546452662398539575622412808258981736306292590374023681620236494761185815408785174197449292451409856426770353180114997724508398039037520241952184864287567314228035442210304943945130041056286789861062029511180681368167223038364946184141602916094851840659007405439974579263830052475149224256629374263106318796157587674501395883411913359830778622345499388657616966915113095417935832910862996813725360250771694371824432398575434293901437242492726998079221093559560344849984587124120604592357358800250715914983601421886114244843979867607245080408105529025543970638717264297821985335875399459458179949138278664793467753879080904735572108830468911038673153176510903544769249389820731518630599750087652265513835639406654985431439038670398330554972737751860471329537341797655339061416190486330401369613840478777618943428731082256086921618300376945482321875945566196164541366712039360607792166831245219572908281572792655629206215821424658586762300685667048262915673790597199347220275096716680024099741508813921204479551036510641933021503010164304011002619746216244561417809583757111580273360729327806146422918973617632963416810404563413967586412146694911458990142292463187805312162656467631590399969528703301539690997624331865259702053939989824500493995887065694077245122461587161915345273163265337195332229322491816232368870974615511215619413628838044884392183717311205110824315869875294853625639662352351409567048019146305957070168992393346055551474463751753261168635251340388310115713520264044583707810299508313415967455475867465606957760052731515762295772694659644669190973280828038130887612898099852143941930867862368251601197538325771346041030255021299556600902608586441469769514936559677783042003061189027339670440254291471414572163889549218285978005638413123793066560214858732665485451292182886640312010040023031525840597854080943892246681492015456545646684642993444887558618380555595631459099563098704951528614090597806552969149757312064527109624129334047128242793603554101388668214937982078737945221200073190674408425788140057362187577270917153495591384395276032513464700541286568423450773000508230588521298063323026851642034926808643656806139012688094351644073160718607390802417727327201296348972923586768557412780936454972168797303834344754183160787399374213410279541160706032548245025921349239308525392095043277689379450791585974691878966251845424863950160739271789765774799107764805923963385943243203349317893597734578531881637179982328597086113744130494789524656464725247348099340104329826467502982719802734541117388590199712161559427383368224002082573301461130364748882172092864001658931975024161859090967796931282866144772235338584455881717572615308989065390169549807390140754865228825402264030700112090111956683017512431215323369281273022326541806186160675541040733401764000449638397752010649660286766070691231296358369123174247807457804942430622597076671281571570894105414253545008626742875201167726417588429447314571734255269924666070350655453685880348846561135593315944984936274989741747158310894421595030301367165556199622125528527031172115665452767722342940416149955603254594065042677688438678258017874993719494765870447807123489708370399062527415853219201554492747328186325233917335889115373239425910122652748218053624018276812548871331252716232679249035385610048035828511258816903941490601115341273524909908105053734488745472546606767470407420336963339766783689895643305862406186663006288595970063579668931441394455156349069427818934817629793893992908111541152160535984564674161662494917342003020754238476046550258818159205850990463195036822778300186342220342971346776579513824830727741241000972275313140806734835555739151277849658048736404023424973243384924980868000079289099750850771046631226050811735370774441442149643905224472934312624310008417703563555248810463450569774706279867753067875796121603098452039907049046963248020920680694198371739754535944581613981528977899671490502552322577070574816280722721553856609437893291829534608040639906822734467257704044290696334824301054793257164093603974322746119103743656253045393694508938688455870841718768312351562214821948699753452049919184510327613827493300059624470842583987051435465464479607801241070974130834104788079181110272151116996758703875202062302499856674806855122385439099884777515185558712797162799102509390286995867754573901714964418170589088757222494313605008971463004569047653316850758192933597219208199824064831117488590148601176884780099501412399800795034876713350930321560256684656213979081923533806096257236924056835281867299261790667273379548070361603219223101860335496351005902640109339925261948103324279327544152812430648925159703279095795654085634766392888920160415513826995378040635835269388369543098068711828559487318296680552274196836077112743060748082714522644001298654131825803802694548641625421010591886005695992108065375685554910872286202775729758092293324494085407771818159059670746056417454862714204348735702885396465338766262633623651063477284234365620219421372226890934135575208296879440273251398716886871577291154419322035987750521515843077628965627048387519142311669423331195062826370862563481257468143829126213398221153375393479761195137633932457372084353426854897804278174644900996618787444953080622605973034752669116176426924651946517853554181676132179389465367482369018621387200205624169556746701012088226110137237231685003807065229100522188199641613521378520979115652913687387131349151463564301911149064646851418836821478454506742303798485497393394636634606431976799248874042650782267978996877210767086601084787817969807161289439722339899266080339760730120083477521442562242326414565591321361565715802944563496207913805512768699036199426176617986276500210530797533089630006573461690659908710830861550323333363881655984650241492456598656012121276695483202837022202945510715604158515864142663761647138954000523563921636648890189584282153244724604628048282290357033685934188076869166842484828532371943940533118778952456891861707807638533315293154993628953098066537422963332406809327296601657580162524027497723800248782606374519454508497018662495794549860455449058366197182516376493908108312533140383832933294328339385055171331173822290981577020958761532613587313372147244778614195505342625382413029462462348323682301045680649283590211012191665215759304144596993515469998150083501062966970631214889615475699235077664019842708898740454582670260062779630148750869273113550986245306012647441756570302321561105077580874843674412682423043715546445877655399711110272842821163195219151232016879642560650313782618843798632704966661590777186480951522598922877982420846892874919316621985201699279254591829022399213500583734475487740187556633126171772035450221985219497578567145393260589319873244100102861040096241366957818778401464623533207459784583090475529804050514793254157130061102682876321946046911783505959204930770704337607357298893926285280811709887284046787296427872092154916491695052959334535025012906130097975374683156365705701073762679210523509838216261251720492881939567857541926293514223158972573283777395923725959160476588416316099173437890700275101259693763189835486442737997668859374300407381734323035899108136074877706302901469670384085455933501478894408772458166148328188656435272140321477721034428652443355833514168265993865054797721765220082855825689935330480049250523953973334984360585798285752409835942287860935178855289799823300366333995610142217072781711138861494951628458859174011440257374205709871706382313855788870833154876558775876453142077975440276428676236311342856811737683741469659246612557421082730821089663139356554530093000905340753809179076941732851684868796534270132037768157559807399041943540744867100181933563447181219847700078611988493460218701491316670727547869427791018319198236050833063876066759560315767878676623604961009460364731921423516105037944232865422743104884315448847992187458110324591046599590827481271908070889046260416517567662448496072366274647996220684761308039150322301779998946864105905130145174128337213954090772485139004428947139385580690153997072694291349566335056161822340483636151097926622576139246004598542541581898223686503639827250635515626216046175605351915403024920275167879452543662748599983079712364319581516058881179617003683546796494746530941644191656025298551436733602170398617729957926380824531366522424147628969975417860788658875348580607423886967881949660519145528707901243397662445718230949792038405638780118218805561009676736369642822772016918620104034516506508939320200887013530146935876477090388300785630257403194038415097287304746838450707012395613984703288253320098153998558468205443016265433057818924111123153185142798895925248449544772814922499280594167047371591826431929077251785330417834810372574946580367176810175195859231476502680504324585202026034621764092914096444856347473461107305417941816549789593665214210687629230318940488428191364875870827735725974371416330156423858858104336819866757980665188198662842278217309184142664414654468776113435069730033844014602534500070438820125243338861255660349702107569136053762658972012646245888440852329083983008073499554733419271805270882887711421352445106833443012156403843451774394616370225883524586848585067340144967119472937592792747882893194803379858540000453384656774924848267720588552996866736416832442889820488333105055798690101849565266289285389586458195855936184018665024127591853120451153740370361655453984918380072791683025292571645125408457061650816596728191367005413858048956130358465604542389618672285778479458828346039102333254046583062120855416656775946805022352844693372350395285196193807909623354096106246944973841217447280389446219970805190989966156330064680659861153977715580713412288514482287087521756323172358360624397719354884220868790497962777110624211930336124655502606453234821623271582122539868887353282118531413642365822960236557140465713111289871391652487417165082835682834593056668954244739585849994411375242383943670615927634922374647676604896677144850152713060513178058479065744600787330984949538718260238638433911103518283346698619868720284032041461449830475457433186428335104795933786857887465538103484274703755759519728528727623855244434032848105742938762365158291959937101773628007572754709266703327030599402503439190924836599171658971851725630201478339210769601939732614400647513137627011480140960228629519450814324108520163113274249014579185492282931222439087138773985335664082076441564704995592167874717835890473237296915011935668744375120392772851279529131292484432906040350795191061962757033172989105487120472735476093984060821206233386102680963364637579998697311725335447453886548438082093655874469258135372271838245249599274447374425149872600891789475730083873803958493223776235816629344551287900351612167809158906795372506569274324652993109230255601120517996188461157508225308248922470312975326163095916171537836309800765950521184201173216960669362057662286668867733416340351900996831959408257903609037949799852246882254520347350659077207581477615810045118085787972144438891197534041175098298204227776066666285374627549630878799027650588590421946565046583391752868077295433660363601369477597650892158660411295499361753843589412105938217404671923664037687932949116699653263495145463842304047308274896712459775299395448103058307534165499696693102932634653998799370634994928309124704474594788511515458294319281271156219997940421837597291415570624162188697518292690344136259890510174575749032583987108962736975151837388665331809166246156043080173107315375372781186039868369439743691930957069795166553580282518673371381497860105068949740186573749945403821259559891810750649407416500706702780182313221722913320265780184984418338569815399217814836676417227317033991773754412749299488526507741009988788690747628886284309027708734155482791201666507321263711939445525767986430963097188627704734791963473737328880133132054612533404968076593456199016872685174095591154911778926893168377334648234319088199371516411332703211178542845998638691825198552227191700359091617036606143059209378411012447188160147602561261002279656418817621414766725469220952621987217089594630193788855519398030939536177935822540497485988157701234506974664157432051532947750376280080969386919513754949461499119797193053057784757101028474204745302565230434750965977437331974663061888244919292774217039436858330431549673998970732488552872832248922947025813887775922411166416187605505450590297772318853162824723015355927729878871370848139943160168477192817841723963244098757465893306259723129326244224457655376854225168321371001241523327976003932606721703288820177959783043134024720276837865865743746524903856084398078978282062099141455893557101522574786800387657579003125698536678951063677904669137656940384260715897088550003176829221664803845540631960952817439444324542098785968296212138767965682690353528685347392130629430345485055817372117339597958037843793444421296167339551520133108810383321729707070293130130054442752189319946312171474780108563262911288067018189231030228312185194453862496890226007358824932416598001246470355372997149161562126410784686540780653814683833849311151760939010988384239377786016842465273583267302326338445038429484763653173562979087120184581628554418179746715209509273918445093595669992022944070655287988723075842081211096040203228496016392446294745381471541251949170360406915021092995038204102534583719687280839977393525721814957714192451077940442040552679602200554582195422734341208261734801579310503864605304052815961841447135188279930702589075752179251589146202096705313107946844658322543024952786476903458657168166814895945443869350228055223634166600724502787566944950679531159582093420661107033028442366677295966442403765324629447435601907481260370433867153412922073631191362214908710023390405004991650587089533428306349301417549270051779437156116645492428676619334114553502798226183790705203520287226075135251270911188794988540324552176371714050998435218848822223776766068031751097350495329573805783567199646401197727077452922059594937082400564623867769047964234115415480548234295588270094223854701074213982704266696450558811305938930148772949560986237317233018772931114811804287131010703241836306099517906793138341811701940670354732537801669255638335698909362199990398462759528226873775008698802743805032916303573956317834166031992333407039868758570791014882097922013207912794495673095942754344145716309602231948207588451696614850900668031534730463113128831731969586031306704162487448203627920250032380289357032306748027958997902555534094687442803661425345841892333319762382378304258600589639198988417283469202880188827145465294662056241108195765149555292572253218483781405538433410160567903813964203927356890322906714939003805816735789126636950076614754936452352086801503791377848403197327524233820226781721824025818336057430317516091808508651600793418533666399440179378353557798094113350139907717525810596064540013882209612233289169460827756243923662139893796560352111294071361051111541256865969350104274266603116879811158035215138937185408726033680934451830748857311795589726208706565909476099722779134757847246440195117636491862854837272958867973898826313413069825142247831844266100245820027917777854440804600328859277000887061217912736290271789037976480208591775929588500907845887469417363286447469158108198733611479112192954541318661910944287591711146202703094129751846752180987673724974800968147440031116816584439371895697707884315985216027472707363943799376409767542146359590929459712268776225538688887845057618346830855427111907199834711033154685119401802491946765914681365956547476811899146039853342568811532583229077712308173446150890689111288153160069052558706757987436939786974712518510176419556800361108505878723086095505159419753071033288123933393237985872028579360466210653807417114651834135243187908277470053129767751291766376842418082002847720291021214801838593177088396836014588415180304223500995531526424698990369768502326337193794955980023991777150677047899816165188026308391773637579465088975678233820531862665624760716158888965609186610059069265892715250487215783857255573847527966177731087089344490252834817861051494100867598419413016301632852244939330746446604654024653632399553418485378625790429644000327949173193284833885434891032527640594716529693487101968919699526657789243060516419042260554375493840973585704187186279839921107151072760214479791248023759203323037349911864864229654977745149297795057315737125687452707400449878781676485994797570359531622068586233388273830203258586642020893715838966967617909729242420716199696158465880143093220846115978106897742037714019255400994188997759121922934753530731052225267092247755339675377883769760925448028443744097052693680021791825809385520154422918864905398640277387800724759500795168655846094365360742372205829291721471241574646902590639850173628200999997246185555583448456462132713676299072743762140337556685509302576817682889366922219387347169059011816424049946480844180066111913650230592525827617332996023231332165686395323884072805251358596192870376473047602191608502021341813303748267813439721966977560808349845958760870813670944365809103438324158533758030775169859664914968620297115825685118557792016338442565996226589106042059728075325754466386536162326987734392260426213309619814734212049184412658840441543971507515823864529105874935860975739198368577731963457315199737028588542968747623645851781970494020861604007920446049072705364978480496442673666972854127130992276223975125253365420203538602529378212147773336585216082050475491053522051157196761107717035891980269171843906378499190218346656988281000215214624789439311659360160941080942294632364786609657780342974270040776484979146440070468153673237986226359419709512667103628170201829362335758916214014783726646357506618544476915879614487531132219734704597364069851042537150108497276120799360583850512168802993060156820729059536037947372318489767740226543575392028529471339058060694946311570578464842925025816695661580213115460894880678964433725877898952358818268614051183729107064262091443545689499336900309377392045563370123235156634993186554345948696071824171718376582100665723222367759909070305549879337847608577343264444514025650047265947269735935080868372492240590516934388354553824587737966061254103026477573524032044660380127085438750113122943751335619074389051405985443007797760777518541815201742205398859851779811305340106061116428602746968584928274817294282164321552764532907658957653744745325228933430526801800709987189546903617711318818290694827658477136111179869636216087818532849353831374864582974448100515056073808990908909419396840938093156629121419697515225781287255803224626618936631991825511483621933532247424076144683690239721773886355422489564606899587148620763484779219970574903209197537154318242787697242079899298934876655998392456969133514028135878600661052279842611276897156253465510193513384475824142789747386567879702747844847640223113539828173692549913968029152199750558846036458072407788653942818546733136913440846670511005690106368165755797865557002282805486208342904053949236862789575403403890671747164153906112608094917672056003618423883626742384779977282161349404977939407291369156616373681055059676572337834646288103357138803283045194710832607151888858789756842853462403025726811117071210470465294625364354700049834019952920817685962205055731819828881999740444238848850220318361646104747976501163753053486329542797313503201264975337245178616021594097396740954769682518312899737519006114243932137522822036697359413527091666985967306442740692846319411544640303007053433029911152957306075883576455239639752688234380725237881739883256313815983489075647667453052113238245770715152456362710568496488949203818968901826531311147638501938093019026168901751805436289420542926267088873624210713814357929089843239457920619972969285472841822108021089041176200418974317753629577220093160613274292698052021885135757996390563706908955493720728987547905146612878733396210447372049073837847787100866552401150626746539974555223293964524568107983787863225489715860621918759720389812620372624019375863400519736293323830770224440888794922707916216940561567941251257369964145199012203998734137497329225757716849525285599200211678205168215907753859013312932467201090376442735250388741405484414613079677402514968641153683689438394630006647561038993973393581665538811100490945970899862761217209610605941002887510582673411868925476795558774363566809447635664371467263145812856066892488282303810378505994506045867299757130475437677572459464750108888324824779523722546503177871791927482558771616558500359338660897637344298568493486359782075976790081438704096426557769051188118288948521512020681414733745860253455871493730849011273287862749929064270689448166909837553561131010688290551273690980312699970733737448521616361611892810322209298902479405969588973444585511542387709498019146410548929374590463711592397267385597746593191959442206833942665805964785301183518963105511669243018307141724955122250897347304057545883984234306188022791602725723450403546028064325507531499798235390488823250548032728635700517052245528371612635595554476805762947653493588819342685857235518677193000575128491505619588275094856656827208406164458853351714439731437029382720909654626786971704905494273884229295276297395034584204460301759974249057293501781722452651461229195399936021395975224154753403085889913723536280768209455636566291881442683789854101676497337937139668440622653952170995790845528347706515042365447988595585877795134137479988912453937556180030536420314298457932690021123811657638898041847068496041943597063760120612145028402292984722622255124692276644204386898760661151524887063736053000826840219989966947628722279764815376120069901463070238774152548114881632941932246220614342937008223609466956637044871265906190423339044908951738802651104385501467791469146553417150896013609685225140300389367373926483192506474795006258730193432569871091081378715171687103652792421653845493229562935911394734780586898350269585183395178825682126985711061215851571674473015153906075331745084443264352075853636214387169053178063956340563323378900240277787288051456693813574611350933332154227853896854315100576763215736825437956423273566942578202524628707524949916019264447479900622875841316174022960175588986846283509187307639889144808620934638215660104876385516968210300463023398309039769789133725884939127693966669551534869214763140292212669578841470111369451369419864413069741704503496090687381756993421439532559111210627302368176745996707083219426227344799099750233944176512487166375039987113042194631111758123684734309078535418039642987037504855916416985033549299594396579034681722042473056296097686104543287907311517403781779737011986453303916307943450091557091106059517430090975656500253897027073262867068624418860154427736573041716480572016552293382956151610516392136229611841794455440455505259952144320490307632549861129302187371520659626482477160738720872391439160802016124406392352456200916572115552831616304235917323559775710554063305817849486666893440191726718767792018550986232060848071439381763433520899786830364348620708432843097888374304320065975625734010409809816542812149563607013753661706636787326621841820349335118479509421728939976231731457941432682725193004277901618699894896508502338034934990852506112421156298765720174215637038016700018103869848332053026086630917729493628954774923109051727107750055623979654475242846667290786912388124461635953676563011730633798168299824349433943276021815222168822163281315719568013063704359345891482988738687391808061458157809832581162846115761826605581983210622023701948981032851625720468287085276631478097708475919436605684904990997997050359610033040176171660533998305710532099386165921107595911978886960989021026970098167397584010960750903101125554669193226764015421733994092230913494234519349899344461733786895842393915176467799966543851682594503410855892335789766253503754912262892717422716646778569727254135651799540390363234967814797375125519722934757212466394270169445125269735057282811105938057423434521097649581801751456232609704446086414548784941734053843189163077615711442450599648642688591671481829900304302342598023920820886000421269459735987848779551614419642615714993067628124091967801833470877280633611752979951895101547056625949460843520351506328299158227529556725725529820804517629916811456738517688873344757210364980918623666163308913008688684885150731207365164587989972042496839924276751324211816875191807408306232192407742078235391833372815303267658148646130539123640456416669194612898414757024582707971455341162041428733319955042185389172250284259727808611998417995026833893664900197941767148300362653286525126602361221216582359304711772926612497153045642667261330546901349285698250157554520838427474877653634067659495585213075711171577320694251784215598189894021981135836491889585323224449479334406398299417314941527418483865466759475595187106323475038534306181713089192389546564435981918418397343774594700160765050449470141096658347332019019391355760883960919267201507848849824848546385158880745633443275023379044937377035855279620463636761854224274277725332439543453470025157245402234040542376283920873239529165868358632849044574395494574064939522706715484981563003119236345034671239090387642903384735231956489146865435210382004863395720123865949333880831309905509517758741809543619091930453656034840850629784272356410198625254713763912507884693955858671323508814805150719405940793600287650448923764027321194176942985629747324160332027357697049323000001830904120499339797672193003156122278793015816367633509787033273881647549362058291522112258607339786843062987889123607814208518158116934858783831053431078456493980916179996219750591008929056069188350651638126398289600050064936213449023538666744706943264639352182823033585645854669833856092091789372125972263970224169853580910800399627663265265926869933546619933911104821895086491709684303530055333928900746023679405478332366643662905843555835241198087461340000274800032907984333845220559252807216215261668641575127214312676188134674881326637252910604272814072659092449908680958051582460042285519189796976739457438824002222910568490827764206453415682066975862414160071960135213652996071686649958591825312058175927742934630376951152294544852584347557453741391602405946949475768775746038729125321229768776439467090027629272911492374596915503112219944444515253220533793830331643493317005226895892853188936330667539135068936973047166318322112466923319629915763230722114655855111843824345420116535058657040974757538696498805367505647083301911312531666201277106770585316891899451490352827650722379575675295247099407749742219993995577458815195859880228399397339841688196025197014302011394742603090114289387757620446280636982927580702909313636750634377374413576574442713664836399191604707548545070216272618517526692462272331834452230282835459401368211241334982018031453289761749546045398292203173362759701265163951924590561578984659145037813546355101927274574207517260923541703706178929923583791276858888746260747368440763856698319811678825534997175359359818623047311852181942841952778368904991532945272979838982693682434015381718501780275771677904177340841899526026589990544879591664555101921470536157010486966243307515245362748588962624293921601347188992467202145345272376267248408232341462765826242121042013278146374395704909910317088694106814010751209783804209681365545386243998905662058430327263051768524434375624095223294680590230551051746751512622224061463350940384200832803221707473194052193403037688982951488933952654567660712672942770864616734949560788573413056639486143088017976266899928591804880721253997677360842741628474902381809651984458204571246641876981109790960152799731788788499821585464062673251363699241886942910835265511233639486443210348866134175772818383079888749959622233358917639595423630272607623604240804238869822087888277217838843567121914900237639935795906619847268208427030495352989108958766652230661338507360776294533841071243685146805533852240955674430496890095875102752135814816941407785994421825709311063627259182613221370695090654644215711263214742680088239376039009766168006277438518354670606038662091901659798573692281905378241672133889092201686856407056045616422126332336168224921571722479446978926290518991996960313441208422845674686229188647043356848656954110837737853044587205545536504878579980879072385509442202641266150719750948913153319387401346261511067440713756044407160711646127834563715452088027243969677541011895288594580723897918718546535154204554587977415236014864634891289850163211182142574446143825281907568146914216681156416295517974108601874702042603478000254875517834522643848734415527537723242334759106851729708777756870852512088247256724883658042464678923272027338995163667678708965088400542734373931854516477652592480476321913912577154053752074283800284239505975553965999563006431210559755060816404832777957004757812894321847814732649707254174314619727960257979477690237889017548897598855501549631662110490947755524481490205892209425575634303035107203733520574280926861373124345471445424320438906309151265153180502722418364884217885955288729056997994329067922969637941906520062483804231730424938865086877723763913441181679887530081344685812928177601263147622558002628095034279575546806339610235318749847693249214555044547317955990630315046994439893857430860922374336957922739766871253618830786183915756325187110013717348856154193474371131766226797997676158409508097358607171280676308830996414857401140436437139060718546077497578636545958503920776680126800517209663879706727030405663305229184238899529098996595568673790100620133262544554153122524204575247536884557228692797622733612316351246750472972578110447422438334195480945123141916862421522070324465978306895448834359139802412313339064211133603859029850842195766919473917691927640013614091196251238681156443142419180376617813859871423230025439324925786143531454873279034559149318989512957922028345073942967024928184476049957459549180283466836803683839711309616181042611271484526018585273587844112468430384418233147640504638818713828508922158977990989622990566057774709320712299087665672996049576561178394245013048976020753749020912974715805385114728849355755010314182168729487140521450071689991485087446218045907549342549232672745021658449755913510433524933835607657434709090833271257659659696318611960909336500506929810875615766324708546674154947512542416250764666910036504255087855446425597528117118267922278052997415613109247973451506816729277104985427382373084645396275157375130095539594359732525611298740923842021335249074705686311960505340482427433037044054670124791580098528647583726794453216876088398584272418617070571830401738367521862329668360311217476846595086766193954230404560125495126483674663649225864891285446622418258984264494311039595975237615507463995610507418076098575925441904935580780086603306334023354191199645399823559685524624997742176428440180936527914703076980093341157563046372059008345686263967344694627179579696185306195515925829579624497091499179829162871057289128151266592531725645621690810164321412827067847133618078490534386996872165841403965572749053313034362589226077247764962411208034352998642884459776992727832122308392236310211019618808466932112455880549282183525854941462831651725892290428019907993196612888589402109168362572373779806935439711686242605141192762465703231493767927149177944784819212000752308810999002962818149480361130164368093013008639153400411813638040469334238048508240129624697734187237798740157013349529524797731354521368816818349322591299996496746656249316445426172425533325689706618427909042322838723268191406280206426148343544835020987283077171381078232060520760197657547470605081713425258262082408273761455484046961972665783805446335415622814001567333238860458674550353377494675568199389747171432168083645308281364723936667604671088959118881306085055245038261177081905882234819625185160484806696302488097739518565718792671479625049513910350217107092648018073448367054364929556848505775537118034174464067261859112717937700927316909851107573375756628342876987502924348863300184803664634341759913984077881582096198868006764865184894394829633760516134841272156845067630619014280259467733697298275281087650848658217786195580875272446395917137990516145532573761909255757724489415318365334426663518955745128421960183347004460831003607311438873231333597705202087404243638414682551521085617490545865529195868758462197079348649835545821639819688613937733774323929957830187029431479209075313993897883783593641222594330271616528598385673821383008941679964238594539799623707188297712603813898658103718746187174817762424685258173980179575654923387777558916040082537798576169921291332609174726871227643493849288776844416650154422799970103150342669029766319475677230319687645831532283454607927440247782964806435776849827862883962330698114191363765744020487132756082510156118242450660070415213333828643990037984677199685850427692789017459401982894234351282050687826535053709879176115169265159058608641241990234433179685258010044384611529628788858343209223242172740202819540430360485119265137217767320069301812246245620249553172438343745111880269206269611398091140692204437903795750322268722144730061235642140871654057210039180763788559953252613420193995431362749784249951988011039399027184885589614845039725277954486773257718933737717026014733024516541367627459106676515256795147129768228938155224254657530295803110510664589289801245820444659437543719555872894372938306529786107203152611934761892373626051891198874861998939014129683937347133601461008883708594680585108362262394676644213440763336344600628730178940010254359904869992684055630962927368911739729226397461389761458745846994788749949624818946016340402582471045067656354015415885893826134252399410794012211380932992674250406394295376257594018256670278883215055964074700473768243378666228820347206453199213100709950899773166988613907193068843914573179462302065847518402340402775659664481054805313120426373767259912007299306991154105902629602318504408532383208337486627741773112920594696111448826093876383402551955704444319221442715191441387101264137296898594861887145400476808639438071835062656082627712840772282271936656604231784923903638828132691956735251561282470317629954694020106689848735321583332373663712684484546431495623219679562516925747718316245577263594398819215095057092670616243192023323335089586079147561872932662494446936218716849908439794308628016227363830607326368565441107085709981223269983576379681888846971417254493641435859577188314291380362779662795203899208728350397998939471434655839771628871623069778396613469855600486234868520939417364018431948456227988722367188544232492277574700416541424899708033780269822632868856716123078928061793922957543044407003922282856754396282914579009521693750870778301812482664970020514196868330464278934549235768024753549031932598325460002153861243038048094437332733615661226250738427154705432605017553464225518128173061699211650926387295297620962883220879239318269226312112158807670645885133666199506896133006778999755579685679137274003800431985264236732216054770130678552443386688297253686003469587038496772059484991529693060419301776685305046039229643687956316371785033992814305712003715640118090394492094144154929598071446392522394112393549476733864789827365071205164574479814971354567240641330125532813024207069828411313666579735613129764486602367747488247739612817425497093542431261806843435518453029745422746822608318363434649184644222547320732517645562655549013723338837666988797577046483461590296383269818763344019205313348480820871858070526597651550453492459489708745515479043816800699794386821816349604646391318226456536556028364467582783718936689518298672589323576932468148662279968721745873410752606777548331086097627086356491908800531141719061345910884473477147202994797314722694667635104100622428340474098070107655867871861972488990874926860008046215481618730088811111727846093887678536471211330964473910343385733314899726858294693887296545088057743032971176055898287173012829010193205876904935551825364410861317610546820447330421388462315434604065676444685016093431835352505416880455576578750592120067517221740688595966011523160892849950575142358150444057601513596274736689781178931647544061426010998643258160160798537141071886281608068367005145041289685889138375794707090391610529821542800080069966693536788401736162811830113992427477734312373179266053522287647055302070219746163192239280240350510356259630285757746603451118560731541893985976770729701463065099585143833070703279596598811515567148658393554187179782862502510715619664190221160610049306420057040137952150370128954976165301154123880040600323232137961869479809272195713095065547079367795179956820602795541967927592816901554253245170878435262312041010519972421489800892974457021356421125597476936202126300352134640667641593589952604825456088630374471221269415556471770126579698445403723410765705626850884521325699306626568967502341919083047226694369056884187630650407856038656763110157907100609343607320856317914781263174364369544731861785951973990798132275376675588730805925324321485863857177051082512721005350507844745265485400019654425978737953058232820657777858076701666856402962603740388278667427754926588929252463224650679523594985437806508445782799381609909995089645428077876574283659421047644766504460850120866692403673112539130235754251301475359598271362083919560892065151903941372421641829239911262752976592192350752102466356659400226295850975013577808924186398976819261703300825658348578783629953246829008923520990208871432803847241024056908485343755390726504503859606859904682051545092872535534610061603683095418083389726984426020232021233411363681392702804953687780213618325851087554240780046667995442291879654155744594658991908340733125609212909203511923702833232289502870427124518081276337070721423801185912141906946288762912233234493215268710226768357954993449586638068292159309778882876759855417252429563677837449316499164822799998906545202896912251012408580403732565578043334603564711973064371378747315521605499870902180522278632197183360074423641877287355787648724622827454696563055664036521665231667466519426793778361648570987190177891634718053397329082342544441175808658224186119055898725019178841310714366247671347842822979331942869971469684110013783831019515235533235040955980782549977465446462208257956563109772662663647162054410667806827371459139600266238441214885024001987297694106435047341053797707130775257965805266158037119136015280506311006466377547239345447680776997705330793316912368499365718207861866367027239457046629460731823782506613229059227568049343235223889194616599960633415783484755464130122590348799693266942988112200012967992601731229249636347366295929038570034479840923909339627236882883302124400355437628244033656288423857412317543345934679451193392263490194406539789352418032752826031866046787322717449120961619030358601046938282140382978515719738184973720280016653884247665377231403995098256471039051454411785541204069821548822805370408499485979019269411888521753283371056108526576529648044385145320268899947941357305760715475058373269790561174307705040699968856423796252266518845285120809139113072098444873710736996733249915226158404229899839476494122104814687196477336661108724094387497914167913301534650355538097587356286023969280936665015787351729511948703377814554226562896103518401094455108625156781641610093601587482401932173840960989961634986853781170264550515977674005047849675602043524404492623418313610798229052947776304832793319873181007177250072933670825338287832150501437437204811956066022384378814169426590684006200184133229576088766473170479819393983156105758224577578882329307804156771353957170713189083863461523198409410617534270252558625862523633210548258140329553429502976859755840123800893318449717995578230635687064604670540010421227247844020819160513315973750243603655394989782539932528051773252620582879432786368951452648819986324547256438302177566165862819546734575856660093752183517749914132830665182647239538882480568033214136347081875042485751530980310108828873926892885344081376265423867875335934829663780668586118991334425113330376092267262642558346431128786268771304941217211201285556810337828729060603410475133420651558478382532859437416523779459127037451617248619767585563044956707856445761233930256479211078910189722599298451098713819172394472691881733875894313885552881431978574486183297576428395322819387632244071202147311956011326028380771486831552757966207487423939337677374597368065771830146367316674732014344416265975250504737571825905549571792895320372673184999612890422931014911132553320423446502624733138428648288231467779047870158470829732865611811980894735175504528059967647579497905771468309060812904597832899456255360773248980358647885224813095999426568486750923108531039513504102464701595769246414826836802889631985045193046594798684091332923334600179226578713290670768522998787386290847544266069233061431661332654744043202364659781717888356304421237408031367570555461723515559738371233392183660246432123774031861446982028926358555609512415990481522818242095214571357434186515358752635439576666231242630404664821063610273348009271464510920831005215120313803823106680753036462681368432676950381307228495783105810521596108761004958249293851366385601736674324896307849701087724725988687775177742652554413291736123499503152145564161297322470327417713821535377461156344368198591512662753145894480607631319498708346428057572639141319646738775446427795825750921433669714297487544797411110217386463327714927691707456845940052090488310539167177064981694594620024706211624791697092895022050692470869889554785964300473619100994024735420954567740963090389358712576315267040086020554566560895821411355091910787562958439025333469065457652644189255189714922536628338236356909466726254039539494386292740519670520486115193283728397199611756308459580303700786686343427160690707154623580528453884868407314332886577536448326895040485732585677200590330150746964724484720046466013370373480669366416656868884508626121018167277957759802213867133615046810882651335690548717718756933409920378325641378160314268504138925433853281603937909911721041833200391203160387374802499925114189346379809969389885624434529095797823848659667444143757164105653327331328542253211580162682361762923985395295307232681605495148569356648211185060809320021278449881708988711027356260338924896997994900218170092852852457675518762536608146806093302781238700852468421432888423393221908471767061707956799063759276407334193600078624131434309255615564210113935856390325694626080916719728010689921303180835123363191947082130055140009797394525586965952918089912498842094094416887363714721350956731769450886894475792573642711739291184362029384416647202708496738312704415131520377817178134482489577591450114109892697059325072850209248036585191791070392114546324164093993243185575538337800010544500535410834954082109769985234431739184575720355252238247372702812475863780753592780013402029837102542207299758036914216905107680900196339498411429245972696859571957826468690304157305862469656689320906659880893975345141269426740058771367347418873135208504039103034300851541807248143171882551111786477564317358854651454288099652861209215409307206711529676169559171933436383939348633768502110258072131686575494549797130108171544221767860971517381462907736446479615879885332015278819189613481942583022524418304243146301884812214850617006315122620566772628612397682893808336722873542348585668649141753120490958930219841867478577838067104327105463742041636368333704277661257291010571992650931907427970190039794011836607096106418002764687842686699788672928429466995314535210776987089158229120613378183400486956123371567603017937132936353069934812473748470235822973110253745165757336418042932757169479117506584090354445145824818730719864158816758447001352701365972198202155762410970123238060956489927168710853111608846571225938336689359052323477164669810842511361230110623795334927844108839313204662582510679900265600558075942002543954373529193860041142214461572692675532373055045063904980309315238532450623822724638700153417930106415345556691687412758179469197118635825078576015370546186316886512429976794475324331333433381936850636639831693208717515181478366642078544198057633863053148173801136531672069111056655978320780824090507492805645247872501647652326022785128896231533210317108575943405618119924041877379672714568930882233554753164506302785585087897328862138876140013586723910630528831748914272144516601227484669222868153408247496310450062355781694571551132272041730177918992778034464491012305919275956556534781195017290798213090718838794481099201286865825406865574552920458733084940817668031195126606517614813362136398011597853272609817284224312176195932067231388842517636815521496218474923877315424403037003169469462906381715834215050230583952140685711851926645967411143934063455891011570572340456774653037814503574276444801420755235365170079339744526358471190546053808133599510120807964007102137865219506903995125327612711775123453257420981613948542501534702584645297863112171647031161919020073476842764479335074400425028131858044140969016380799315985222386755379189787392235617736247848918849360098642376744317553527645202208247029132252588455098412209374715473430650613126002878021678394366029416734959901748174251201331306075174654575399165597623155084659121912196341871831354794384914931251093508879251895212092087575505721095226339347775601537284923511841867094025405394192772219736241972440862043756578979545522204448068171382636329813746911747908166907786549243554690618731650673558424395370802986208565749320125316756471457960946925459458292378201413993079981733676741749349865766065436520379788810115562934897591229197803655458678301168258935388455332062102071031192628593032271679946995326796291497265893041980186131899122028921779939005555007654847948229858580800862344937380252257673880431424665215993758422343505835191198121291824985663783316904107357960667581544848934009327840106670796254627824013010850292264952123325616087220257154900485310354334695243800703685883624002189464562516749462664286468742851886137048648632020524561746983465700360882340658110575770553755242621229874349585738286119122328008546148142317508565313567972432161195252157464536761225485233885885649771707831459757987380273495085557953322084259277957396822950997828381222554188596918172311408879877473906393402117708829442513628724156706445631645329038421150195613938580199653481239598080130747872155570029751237322943450312300983849675564619829001268655789134336105809174690898257342222140347381873933965653955880844905932953448083699817442887166868011132594722025949514770708070836919925735698544501835037472942009198852866302284591482066069466016014684049787353853670823915096627910964237723379739429984414413245080579605820103926020944593584502548778307858885532180776644491896704049544597719588160536452693759138976534842252005045576689848270922955508722665687464346041487257724862881861192484213811066879274248385411420070322663701176790626894813273418366040810769183609515528017015884758547731406431818398163145627043037584248731725783237756935911795049795814076438976985697441113768565514721525675211631056383463576935069980708820337495417320650501529865287083221427336662748590197608832304661901534494706591453445986270257101514803381841938438531046217788185986460001553317360147747044148471449611822701770344578478131377932366661083115622303573868745835304393589352838762821341473872053983373203119456189621638644800092889335686126167300277550772721827266662091696725752983549360441733592144999597329712703489355583328483249863322949843589710326892086335667777921332611473044789552378037401478336863259214480660838533023212369884000166247514179713805746938593802643387655680165426590902857566024256628102276577384480292113250291355444209365068906162457017651060984377717335647779202419041451641026222801725038239456455161358076668776263972472833458000900524516475572309326065130964259736901947246809599974195858472192533182749852001867903665406484026912646686573690936568562388125963920030231337686743100133762413329055176213262695764833651783395275543607635796663091723931709679428001108786300420386973915001625710458482267751853505088495480137687914410743739718246557131592978659511937765421904282948052485831265376158148835509400474886350288726406440827853386648403513996087827826754073180416176301564027660045382381070575147410989692685822001064960196776474616561450237640601330810769691559794129213810396700824086607282475101015994841498103604987309114754576779791807311749701706231248387155019377334856895614954038873274615447777436598579217545406173672085735542967301538477231378356864487755416720941573044119805043433123256705709598207731435852275154835302430593468339818617710335888850765780262029905872706085792937717248511468393095428193376099396941706457553258361218933961930930407618008236961010426090446028702052203298906388800423891694446041326073440402419291021222432954673615687614415488428104732075965682098497802500434199050891598552977780967177258171941241670619001116805891456215918423278193973950521187741742746898298322884664135870385314280123829721892636800448508648262954798428463950749521094354086359877123478092856474349382024289151361694827119063043962337440442760604829512912968976052095414023157350356287976504097997766946356331792894768719512073490863358752949519782530137431604908390650040152743858437909840134611969286032545676833270723743209011300449815048558572955841856060720937157441690994150683579690610232716530675258080102050310259568156181138666243743575879229722964265681254213245391947053495550950903572080872001966215731982814499758409247006718973474519221431380622711805831250303209551641214555676291474143315205636487820743084498019406120757528724079390818457546687641971769347893791318687366820928071629921020390111035811173635737008520008514019032708529139615978784097416696798011671779866896846387469768436789449592757848546842341962044448460175424988618819771988749563351541129721058453213396696689633828555614230043986969248461378075997770260885238060629688355623654092878833080721151004773068024264035498417299309858139950712685511070701804258843608792314058760589585005007048641822535067539549264177081751509507444611000269593312344745152569354404432445499315774345121131785972614465508834138450320904943994058236486832687357280169741124780347965141329720654984786815655050116200899933521863225976806555533214766960725017009685600085649997673254229131847789404783818796614344538071899352821193670111906583537351505719962369251215219555957675311800570761266997369220260390034903785045513765499444274432197228899617082839457594736286901347079146409251305367219015297028379581584692063650807595324334321503396177297670722649212564451044878509157215249584352086159449027053382361191469449497799084423015597181951478543197493335536296526895454123839802281051950296184409924441694700571422771705051071626123700224098808938014538923437028258619460697751397515038282400921881199698915378492653558464758772086469037680942017423887162058560603288775777729438027512126777460156333286168033779052125407732370489194387193420526390607107527806222119491855160353234983250948698046210307097199455466973144513347849472599301011685846118531068684807262229397320373178576451023028938968218185501997555615930060670660435750154465771247364500506457728112901493546430688032155149461708331646977676783592585450192026871507574815514785858733217540486837164367937024250845888354992804524575274613843498513371019636777413459674872679343277936205138846388415143217277563935484856693013243424121741992891219450943376047803188081508101503100857729418078273398987353403894922076800387725591631066333510462876321808060548572223964183917171882593464446356694633756431957943614039444292029548455504107843450065616631032576524321967400395334829844064511434847795451616193213736543095982197238282065815639088498875608251918658564646659971990249485684995328333688008875903723301595599370368826484395897702591536540658919792208859112564210117776256497948391414048105569573286106888913666664269632461910841450034507722732611828331360649813845644921472375382807613763341921304591387466380025041217965046910137740861666708110807488243597026484944141956520192260204441134356380262842218390728960639428103303487820371938626558377869810813336716994723017537247379777364662247078160329298297108961784342659380615684582083735597633054085523936666990473992692890296187705635971978086823996556548269781623932491926594206047633223235412924550909640383174223716960269431388802985233621863186320190599904868901814017876441025490220609315919812657958299856381869262377026830286765186499767993329563780726680217035686388923129284403527555808005277302918247801871873295391754273089212025961234507482603427882207323022726938811255766885916292681940699980006649320176036256127819453248920197569646222734757627775494212499041228876474379052751744176534781341182736637907329429739009628748041775280206059699009659687217284454051520249849233090128475013124080134725483697578365064443651929481478445328171977711555203970566817061371171239056002290665711241259403757789293753234500746677068652942821056142116571714339110833411395800102374680582610952654421711566752540224913254482369473844861543153757582154616813629931633563200804186890340483208952533710875870118470810943752663963938170194436519334228458255782404256983779071965686399787894920253503037599229841842766453989131714284728923726344169112531979999945927781894621141879664566541684406159967861437365202760025774619226420579357556269113537487447381895293953032946046313457263204718370673338811637062841018589654354776577175857601550531197738211231973856109666116497983503386221455370411877254032584282495787479524331307992769055327439628201316897408167025589439017427862753241911938767773774795853299027685242149208068261068370235804979950621182701171231672531409293269191044075594269353863723577475440313648941362748583502628505182132052797273032416987826859507780662863900778593844476740499103552453523350637963975077379081210562287033244104290555510010078990516895253957998056865681459514243845036191015588065195022083589951828642586164904981869421746061302542097204393621467490984594474915307496162808122558021610043463576884935510436504753187439463617204009413241078783688356377640229060649883701943348512306589577229245673759267385305324692948978108479993511730128354798329160636452184682876815498202771989985576826636355789256668290320852094019656916770758961794034021803925701559007736315265846452481414025417910131292498775647206710841126775179217651611589675744480397006938563778846531460818043999560499021730493029135418607440152925147624387016924111108292008825640297572649763514180019593902897255191617051936049961212222971848696655567419751209449820032012556701631672152648431011532686139992548165277917215002141125257126736997072043605771733921609127499093509544402581633496034319264365838265144341059097959478659672010287532729447402701352606250327529241279841323134023994098314858897058928415543419524053539100630008413014352100718605069322277857459860135703980770742843443531182265687861816820442243197196689056005421423375864396292612940396917925646196656148123678888113572767855753674831045200904829702841926677417419529042101238105196543940233821526394394809616604335731098311847161941661735505110819634191087941422316595437897309092051748529404862240082464084528175073673422756832395761062670587329177105890181041416989502155367726211407460630823150765062361094886203871121558752496434413027484846532975217918108970465633967966876847604474333033449836047916700912725703463113558061115298274984792877858422926035161072337348910242866789087257058242883463856449161528325657522602050421284916008657675138022766008257361288882443324204042556661185838189047624100989393953220380015125828647946519957498585251453488262342053004295123945641337668970088638377323519563271102849716902037059474286371419367371816492733611800261233252032020225842321974981907431749743338905781936655630759290383869178532284720101664590655875142165574127494812638199671318199328687558921844801644741816470715927140946249048094731618385834873947943566163118426741151019821862893940311290378723238113151927129194477721088898836146030691718724778913918281372195950721971501413024227663834148651258390920422939261760520363270859416571399378225325659760075978851602416882831772292778912866443305488547776922888772230909174450780232943407032042667745527868857084658918844335942789720597528909019701993570999079291324401470200085617966105895252193506823704207439675161393252739651650197031930846248395868863658806677886116985727350952384296882814399910668465735098462316620706768007162652229053653797752311019208703336149363442119128751773779208721306001447098701428863162020039423163124604462784984560043661770631616525515211527147300111744922963441382234775791879269233238023499746820720499786826509489192140492323183565490072614913246766917517867665155256168699755658050980176107849502838731734034844736681670555004462300211585260349923747415788504249495554188415261803074748291995548633832317484758771547388568523821744290270907281419335208544934176183175843296277620367716554100347712462955787195105660129356573430433759851975989768728890183548304685409913871957750717598580266473458014000101563900326311708873463018218935976554201298387775939037178283869535246598278512905731160095885400245586922047871329400372390954950677193204049900836331783109390453542079001114889434780981323706212226481136090275836542696228162174625554890499040258334213211798375958999836883804910469374929403126950414043103750831755401881043421278180312685629009922606311695244321813468325381275186826588490343970460550657785882791845408487393653259795046230081444075502205621625933434048765485255937837831950131066168941195828192616028567410544215456264509924494602547461746626594177611497313125434270676661173845117245533955696310880170943641540505164590554843354824191285985103310247124994105585578948924906525138979373395309392823553286171076343225131029826168916510445304108106751803361622068091619990391617938644468513937926909399514717924775666694306254210100563234456139268598684555855210713044344582938830439900065121975723933944381400395834243634043359740662011901042075820355771867046592301615369153434736774603755095008552840307253509384607125187556454623236181226655960039592502718736423487657793652846952972063078946114057978043609837724797470169559539483243977464302330215830360823411216998228627037320470939114007587072857543140873582383933720228668241228308915080664556581796737593308218017332453688200436631766475599390609035067510263534139141263588010916010638591781374101277214014760313726045846564552399180198318050840400409145507697958738735843965760020266133993672222744357689429800219330167408810187123568815943886268668836652396868573548068290193235431348269513469492109232475301234992480995803336282023367389035156618163510342840349275923167611589889992612589409086685913804968431655226055786267502318406468261568928773251140281092473267790601096937491805892828748707039192267077901086018139151300132142074397938242073769771275698817982122322180420891942314339019840257489631128679094741961016473996123645461299828258257840200156018813651952695853079366057973405609202186554731782014399113735488258316956706847392410132131592978211704607569063383036854231496045496638032140149186551431211328087960749232451242805246490225200908338093879954286646294488730056017935485385626709023312471914994153227755423358404415637137601391167636294057447212078564136083465717871506959251679588558923985221233890302417363507800085370380857784213276086054730574810363143880661272180812419477336511109964335731567342155443574376077146182228286115764407682846283465745419404978801659002731922912593227293043363541293862917906100049524868507923306509130794838147209342461451282446702695138184311303122330451822907874598014712524725447345744339266849552530075256869653633714862467733827713719117213225377198756472095209907265647618973321634657126492662910036660095247637352123030378789088910146476193412347856326503546802913100370371369306098079247508960048423490442238188047014216462262673248633415743628403426980578793092090953559848832162657165026257545869437688956664991264887628323445106265937928800426478403197358128854717787508415263167866829612666890754765568053389850179411447204295860575895462220422382048221385155103631862666806545157583254095097813243766062490537841820098745047646023494878195931864447312889765917536386296921941160143257715442030241750925998511511985003634457438639773413777879788108324274083572141034350628163771059666099006346725540622163613935288845498250351006781925180258476304772101238274761262907608651019172803742721185057690353710661065957060980990332128341525305649681204123964935652416125020843155061821165165015064749383131905908559985666248490787387260674715620991806889687535606311897876334807558467626017049537408303991566399766170401300695206060316491211523909585186884770663385649097189902635952267857355083675328052835623129573562885196908517219986462629948282620898404333081490697033363146846369009374008620918619759852527022138730286337572609112195165109680094972269170407848923005145623093359234426181104500298953347085502991048636731154460288513102796085860937468641251172602628066714335808528569033332147230232465429393956127908482636356706542150412904957295735482191940508038716242386141982667030861356654881021518622429726692484728237347430526373783397378601547772986058731659587267429201022287276213032268413900216352826719884436952808300706119191432143788225163403159546204319514433053267831650407614670257029711936127074371205770599720294882529128338922812672010711022433047107633979513029263262473635751130918270196619075319451153697647046788663987667779729164923686330927903634476087569431740525871079547103255593197456622129130316962868910070514656540811590293025146823594505070047116972777080735626107289908163926257311185483797845772237786993620692699582860572969972669301003615398569684323154348394654837202914537213141969820029476735460194318173659338962914803370024083568153743312064900064001683885589501527384504444764710026569498414338005703517398184424067282286742636165496194264646555457077387398499092108034585038156234672987863110689546196043994678355811723115702023308970591633717866384819970535679686237278687086986062480662717429851941701100369345534151180174392646815669444925085197576518532672579098733202428612604032710810791548534893812486402988654843297220111019757447000652204912652991924721925334388423391706578270516879860382341265664044784699348260611260577217889026274637303595021445238190993163866472396106501988921989121903433915745520481324899333578297450860845808962774170016354940994881967824759121626295042217986595233822614551676956065563683880923425106618820033589307474189728057591531980431146989803151142327970987312931611846314762783563590334351347288509436607468438156419270189221109990366360399968447768100000917547528135424593093449189507098496276233671315507560688306750464063005216483170608731713050651055254660915249634770423284134922506447620256329087850125863458201923902920658902291628746582175554921453892693018043038670485830060401424314749521650032423741404811596171224894575195996438193160878902815076983826992194082504659978141154179607083615143918070223983365441128962738238180453731391999845965630222266054966290930788588666563086804897718897928795933161135021763623785171199857876503069590474552392545250360355053173230608511559704828014615866642304089032498795194463347108177402966290075697264720480181818129874936695854991215704053137432016223897483578468624318612061031540666988035018299822991936245369553812151875228360238340424547799743072870225292355546964728061666628188274117062660141059575859895881600365204082558395645104726118212671759595557970266070244375325845457374213787432100947761372270347270807353061545096465905790102420109520795457154916665044923116540397732945988517918552527992223361776538178073167693327566232513058515921499993129833787239121121111256115235068438465412515841612736249043165285105286198716374607767583541190429751704961284655021178828649333814002757336367981497593940341566007932306123601846768427827026937067569017644898499914017837293832376787091708525399352226957297105826025528212825820264247353506354304359619833760146084700452979215268229415349897303902510317090519736902430072981719084789541947409601781475665277440722317864606838954731485602638076691694177716974439692161793457139986266318754510547583786311402245800408845341839471555743567340783842804758309158421018396880586482490927287199211106078039789120157897606237554606770971842354920627701335383908358736515897306540133405584070804822333002975245234275755753670028321462657872845957080582823628747912553469291947450411087064427228297987064848105795508782800258911732995974964424877570924766366082050669321322688688731601879216029440613807281290882240055044530899882168872771197778274308245418639129123753200614983913313924817880192073464434132791114486905517360612684741974331514502822221549249077863320685530885433485993619235983779319799817886047207963815747769414002758830840144757529829580099519230899712584688677103489302813188878154764674513053040631927206217836549546622940955119896088793829677116477078325946606647770305094719497110937996240574033121611123291827117212789933880313849414487997800974533709611618337906396393652875372148597695312544616703970755862729145848390075621008948897413387519905341047365867896326631225714504685337428982516449223300237871141876019682762161813799955802165716387273754650417343898826011196950040857595876487572654658029567868709600752100360949207925461509295185902836855558269360721852687803671880060574109954677066123748127065510619099703820022114700473479260994719188266962099550341763847225950122540084899988859942791926114514971486571131124645650920447295227926323854019342517450294131837788191821685782523241790865685812827127251311385020821784190861412748240108217017933136703594657031869385625152954832527876078675577058500246279995430432110798938642621758961815785994410781873175329447279908279030041948055234660713119359172865594174345268703357552380936161875450226298689168660992556038716967925037860328325765210798685729291161428178402886490599237231559301021039895366082605652387325667513276781509807436447210978806716937940575262351664349073312945539838836332156022227871378063705347902178330091695917930148570658656306594029754658798514153971782429006911014650388350269339832889406858309570718072581644061756182870982966527427904103596408946091807359354164991669138063121592699030220638141755129975455896819254639295616951822423926799096727131631881570736620969538793085922416573870504067751461036925273297679043813806979706686999421957980503039644832528500664106142113514215004805770218519846098558410192970680540122196537386091282227572048800182338584803499839980457331396659145573446778578663395094936537711623454153270907799852918513705917851123304029129056949205818520650877273610507697213050557652626714826266842838317025426590133355669569882655251603862862832125488718673691990781685685203358987140902135932822384045941407747807615017295854319825357448717570333010024385336313392709313451291558187432701264524568053331968089730953469101069748634666999472030736243083212322067241462722846303745543018953261588827956051431544623992234165730072311403856979904613835149089346304908888527643069141421899607446083930529139613438780052222306482712411124321866580502229910271498244287250627727099050820395220531369917623724106742562931590291083791579089173344208494566012349764684053569977584763295189126393901255804059849152621054666169573657710385062497198169488331863720158261111934068353830665556442302569388200163600812014244122186618963838878342927054447664349536900012271693621825845318077190333867802378101047026818472773544015985434448681745403297636648673143276935454488809470414498248539163131195044443827702332328698171992320702816592972242775883310835949116691051740334346493348790832393590871961076137755470128369707663028965176727502784034416087654587041921388558755471327055753458311569905466859121713193958108849532924981977760519180193992711219231819026925944414977838636844273513904468745461973418071962436886235767845203775614709463279121066403300870075182027905726715270658104647478248016407135765322597218385045824669599218896257898138507417908889259218792448351066931407660059814574551602342682465408806277509083705635039624928699807127052697285053311088636067152791350227288578333658422841389217502946822582907767534844750890473342201112613648270778466966702272286129368253015730873603647324564372542369444678251537822138599169637173131261473826854042306720580505232935296674715519237547696520927606655001106513065433822619664518298802619506688842011976385994989007105150588556720171662017121593163603768757903678904741347371505105711626918615727568254989225262180267227850775666032758972396357715319175546346522669446601915609133345688021252263034315212690500502672817434537140152449640932476110507721355726452289268813414923316200106295575993237718718526340630306507519023434044376841678836249683910562270243557355811775644221882509175757740871802664261201331087752963613442065061511317831288471973120731841042062700212618120869340441941161065948396429447031655263996551692296519008902850443005508026698058091178927610612686154340889863713158813593458462646799540859028086503294774320294748567914971338694477839189616352188366657814279002575887642291732448177329178812338615061012929299871451160433621017451160352857611203022180952487046470501165720459671725511285716242814018779446889222657526261774876855265715670842558665017463048826945422185958553741197437331881560205435908639543793434016141126597147644567449122858638484014969998058018181711944291259464902051896843212020484186121699401899629109362791717187912597301986424558887231652100081774133075082279665264731904898658106910453919668242755250961405577808436118985631793725102666128721359142002659438798788506734083188352806850622832172480223379467036923969939760148563688631647909981619637806076824423992463547002650371189719694976129176344924767444105783467260546816872876243775025629853645672291477200905380158919200116983432601079956760637982593996769309219230085852841284261219521654142868802662539998452481374176455816321317089226724931202508085588419249130750648088676524225278511739649276563861631203882692835078265325716754607201831659864594154872822422345790467541054843065382451736344592530963625812592298402609787247187638267839921770306502345589477056629434045358050939450846984217427211697962653198851958487992368837465034733207738079399046248743714153651978512201192343320694390852059002363077249410991829815352059238586175006339028841547948707943361401455060118313080188709924007722809002349501254075815192715307983008340714698851871848729646146996529168359072593355704304978457806246670206354562622967092769947371415666562950869354335893588652357892271161955123877246742314143108124958098272689840961034838371359463594962466743093627713954159763137104866655341873066070561083926193293341395619136744832244127511777005678925851013092441812302130832989585606188754352175982199684611343887800063524571349006306527209220984810822374126798060115355491229877609216731700091682148422943217593700976111184093276594354047565143696021918993390082828681924089176094638347532563030158257654459232177072349706325095109098006422946515968771391205982766774768284963928156371364979148823672811256411993728972411714950367140091721678956141434115617837584778644042866652847302888445781320964880209925768353852692324789253237793989580234748990658959846937375734182350524834463130984699248326708488082206756035028003889113238450077019701614392787802471135183966107695447996901764468697079786661156596171161140158594249345630172038613743086319849923505537858421936532738521048407167757823788647394084329347563974395977478758183415766637669652066436012691615588794193718090006611122633527167114508433428436658715782100832738142625786382743348443383449590748879123302114557652651584631515258009830368674885529271358508713906299101788071091169554400650291674978116797338343062660112551651651185327997906724079730007538809454718501651997536241253870056956971905005079432643792351565071242782174097572754265855249837340141301377601425448385314679895770098922679468137172609357200403881274753309118125201932711228504126708434078712996611415767770729899400612198661480579768046439470985821110361898877618791394268747566375998852771907962093336834253142878870428152118214191786286125709396987614466749939180371514442979539404514654973734567998091616730767889451582410202194817548817330050123355170385063159630053665058597853334713909346107681783733584799576033198079929578742280761263426816103183495911148084743888452572336396589515817123147094182765803248544286284588663026857092669833494448897828225998983633463082522960954838882890429152615077576230087717024434131086393231928792008777733730669248322958012940085111286306021610623282074538284275917748830479740103938906386257534764396288864139428268433164732310239232987578802746239708263758676200391935022558627703342098379656698792103259338425502977330902523853350543264844652625763182664469745080435250219967797153590966242510153823703761345802715087366369280854861689209025159950546376751051639600381080569156724911118679700827966957803891156090722338047123303915142730277157298020842654904709820469177043454238455147719227080377286266107818058692073402316073221200073168052112623935668679320814906676180193070410529705987324811062072659099634438222494187459140925199215258751115708674398535706867227814615445031076129066586062037095237536395528098616924918680477216804564004834650554105714046701552811872393707720049899753309916003559961939628731858231238502469521703682528954998645020198538883470611197293254677474676152781454001421091211920541740894893878943953230729231099217675756182332400892583971019810944609277376156448470242512612665595007508170754436578741470389039537704447895829191706612159124954287440319063950586500193693832245729591211474347435377335251330053576317437263958342354076788228087225757707973322133432806565881410518143615051648867573041838863375691685866738246016812513255579026074923204938961476850632202609117874309177286697435133942245864197630851582240587061989267142016764840235539953725219899397903940730446604426164778352343328958868660184762866919999574083340004431265781702097747671362672756710480141908751541993727281683183679312985777728315637102821921034010244180564038174449357393070126446608128732195351455718276013278600460190036002434760409774942633255454542928252847128844441547441853297922374130627543252671528213773027724817842086697345057288419004431372994939135104013859129585472278251299148247837050231846623427442101627905937523387109791078531729359336303695374419149959671710003097619572881838058903156146548950106363707300028884177277777034111387412778236754124466223881179875581039477254748169326563915710286308074720632103618331617838066638286964480448834615988097170995759522174136861525825116226441137656758497059274316420154995823595900901977647371828851887452795947743616080261543977569930737233824295477429140889546410650994980466985722594364143913470016288891494816499913706478189269831171097941962156732493723254024886791184053332598632749491635674226890277480575267628972352099128601828423684360170921567910631423161677213744139798242289722640771683325928079611445521373362979522637625086912558220978010717740406670789290909169904411069026712160515167749208951736058687489307084217658945711702303527181051759924924087598390998336094509466429004340887274744233330588543039331842829185841640603231550937228868594681927203943053542443789323795098226337244157229971271471502918535537744665629093379802349902213023960664940348479748636110444859855095182448858029926117751396852056154762061353280163501308425565482152930975144326451607813215737937273176699262819197155663229399729086342931612475020759892340598808179141086754957992304688933417466735665825598374020121223617757688796148953281791723497681751685456630063201508542549884293906144518150432451825569864194924536870551566488464745896809028908914650814100470400895499945081420657516082367080831876086593181992576395061866758940965676351541779180273448953301431556950025790680837211065222208762871629624269443122498430990278448581534360941203289518810616160712863064910446497389831869352367772831234477146561705472056433003770275683185314942691388118537148906703611355202345398660291066108255428948124621179693520035013998286514843674169093559755071218634554325662542406022071793721907687682111814377329963693354618263841054844082305593186952235925609116431868799447832178805675781428579565119612605383131936611762809907558604365550680441490349087241666917647624356659229114969663153210801077132552540365452824206334915621538001984532534114813518937998696913032732911034152785713616934836893077509166348702740937437031064194792555815342856638814981757754647345817166257892092628424898574427998116825899914731218368971855682776588930947095462140765543368774279211152058514849567112614217583164030331908468385400354818695536878502841097112059532196922919783317855403628520108037580912083253427909787582864727880248329346369581288692027017099699329879063138158373817978945553149569410382152959813042331704141548402429044260939378716944954271712959424672279588657364274787844160387616132059126164620416002853204032067069359773001189314975750664837251614868741138187658805313111440706570205311730089791559651966677763095358094146521360263514149111167464653071605067355640168484884104326534184462265822060402697554111844629023443628622891942485541116181629234884901568902548430438766513778316201278661749667947491361612272853876631774572215175724602393321653049379390878061138382527006302101645100914683046718691913309624083249713460551727786349337461899026428012653926496452201873858508197473087676679949740925964397065155679997522820806165470442363873479569904622545006844486524712066045590561723322217137861916088864115457954435630370050410598153857741833361294911894445688994747009957646970158700719275654965835062987109994285972009890315331209472232016146470027286405563750322854202431572672973636373729346217018925105571424128325613396638456937991527010941183229600882826604695702991888950210153088093257227484881217695198988173766550229149849496857064009167692875561630584535552962664931266477513500567260379145718287761777239521141958594222145599980258860707927140494801039397654582094936702287213733950199434294783201264316149708162893762183590369161809468996972884753957538661960036713214318248156561247189352766977024278964553024967575494909904995237989515361825501918445985238534774449150941911034718096884982437057800002783261058841598483711181792061125708924469201241001330930017432443952035916641413673067385871978632965142874885334234176939293690367756107076610921999172725301861562788083199452254931567710846387887086385477699199646020606249779772169349411959084589212287375640321076099915838241257673877727947590867416520949283279142963190269722372474273821538334482758274200336767903815577555455267282882823961892151111526916948244838393026511910609591340133002158112139251994501167860696647984418554589550293464632425460075194651803523379960216227630779830316102704754912758594882627539127811079857285356242756973589523170325339258235115741012090000508594031527328027409033437460383526069295051332038109874820149285352512579117833555279134540106850006211500531459594231496189086140034977343191631019782687043701378573896317657661155339369036777171755504193557106321596464547244660459487840254584763176956350955633881355261339722444908123141972602690054115520818218888670621583916194890787694527172583174591714205172961610870666134026341778509627497381106413002301550871880026257407603116315788663137084560228892572303697296911682862440456460561028362719758966246058215543951523902416911768271123174612597236208243960095677309372356084177210299043176318103906097093124976339738452742838651315231259955432044883106203411693581194269926274762889188313843753961773252640649211079141878760858788834141205257133483421337467063621260463537939708985139046384422632128430220335484550971228495321010149682500614913283967771448571821078942810790882743363494240815164992484409228634696268167499233225333999700734940625965925776129151865784082357464386324458759612141794928642905281657267547792193176695297432146553803532307592384926207317427329343427307905240067831464612738809952489785951622744566409172167818067333101814276123227575246479683631985720620501759567321312197218312485726380636063280993041938853470129906891582539022395063901687017276074491102422381138942068234678704941252540775475987986840618681274233575790932052260141892628673494627256980174952233194776808794044703344156841830971851594143296954118302025516928072006529924600898544464316095460650288318042286952120573758081458369895973654836679559804475713388178210172353286855940170723679785497855860652949105722283438794772661210787467745604946787143309013248933618748803617331189068471694060772168127272259760702505631400796507818908781792011922257559646754431473159108430231313301927115197219461151059154884239792010922349761756190835380274959825283156360276541615538933387646159776162494879292018257193647881777774989594579401943351426954798228542129423593760575800915906666907355174145481925365389374226945386800764454021490688644866215913759507393351825443603522561999804890216801882117866867601425541676748189973454418924350530615056459854208895793558753632049835961585473819231435977687955937269168165104687072318986934797449015154915489598634409470780664433286607732382657660768126379100506715872614804906288372193955786464234374532151262784754613618909378358648290476924798575820369021979567473134184872189498030986067713019271135869138801627699560424209697870101289498836552451210007119373458780534657273392679318982302385294312423532899601366336060037167482864387450306711954126494086113574926842941743565111707205341222233382325749520087073011289922879486321556509856949618731737036981504679887004394798649162740557284229800122703989153990208773589064501575493158625351940340764898310663176608923934695256270273664254380432214577411085208808092316045415301232687640244265394310511871330062454478925153173574693944800988397530424165756682195499248200934156460972313063475407049500093793451545540240375472690769947502752677455791002565429706412720181445311923410454496500996163978630158893458040187527713720728267000524645870659104198268276933677130650426146718898866997110919281475166097530648301442516967797816132672794364855108452758888026103542977625475342611315370056545023445518237752915597278780132511936667900222060304810494656171674125905280482951145420105015782098251652450264098680539673990301320474921135126860101492885389330998313665157563891217945744831443929134923356903320836881796730616284245472344859281339379198282223208886318783892734655564768742193836078434669137981885100353090663480989747538479713699686851628983743119289196638606689870185205152136427014738652031686174657504779409576413676968245253388357660607115559044367806332727435825497483006643962578526030324493429548461833235619391115259146712891793313809056845146501042219883679186451855373672257837638558714562339781811714300554392652842303419039870757293976823508325816025793314858429846517327517844965952703653197618887909260052483002378169705767701608358810411026399753263343113429604545474832854565828953031415105300800345003461250433546086997066265667089393229826600333194442041540391746178828763908215488985097623610294078394747497977066383250042129984548567788278964256907096188912769730281825458272421735056397164840332111390676779577271598521887589297336037563979647131870465065974181135106107159947164062221762614033452251301421705999300545108033029323705572706862711823966753984425429580821923824302568254148106767083840094753563063223408288445743407587348138172554354596673922660216877667406322133947868789944623294199112401577143756732117181358940206116176119287797225685633920003336862114786272140913149359002172348545991909893506776278480998614048952444865539108999044273722790674825880614417853998853380381649989076664468310608591391763414606936698643752279525702171900026917080584784334507112515031822341756731820428307611005500489125997247433720087163702976705299966826898388085422391540693546522041965855733124448698462603749692625642143746857878504382821759540627936698001205394008072284425855154031526372515604069389386556390835917692826770660589086853080870723999909985809795925359624300912389203717585639200662850690477747900479931388529380433089721639845137040973655770874394058037867203599659002923432700152041366050808642540007524729363212288838187473275612830224625456576961668206916434522977182560662872349371353625932493322848978087747789224428773501303690254827798138416643461727409852869647279792122785555472265796386817840863196234891311389437768452559490634302385130205389094775315970456967154758948934206672880775062308164389781863782620052953466040201540188162309973834036092696696857399477886511492696100643413836030508561078264642646310887594035100565800549212166242815728343814442540727444819565198483142704869621681918244092637503284466851985056019713961913965346461296112512920606377450205531772685041272265307455494863338289103973488479853017374015593467885772044300962642081968965184020492643445731249824700652758173774886823782374862829889561663044397278496670269367827934434734472204490828645085813259337490608825980676264532896868729244036752423582367774626844090794446574053429068984619282507634178505373877836874429771167466567714393034407153063319285524861242382724720514929525587302407757906261275232427272177443510126615328832561093461782457282586801707617607084197282878059036187122338899558011061888788408420868538816028962812443439143390037908784971591860640329527726401822455924383591137317681545831918787709356914820813596500253730263781154733588822399343082521874533594353632092492050117149087802899994273780881744450690678337008825254738384726751828353651571435102708976037581047200996231292220435244488773331675978291119180671949688414043716369117017417780671538137839904714437035814257507199171822054801547436723252073235260704194270753501010068829346453257831772903770561969022668337570334751290449893109171235849312449661803942885560116204423259456431359910073408221080128608730776526095033399938319507305392205808135959836892385541727243392288217125771259008144153641992003092649883298839470715752322622861672952247265750484961135414108170046430327412019389686706004142053331512898979911553976720396117683396403195952877128580415503018991023392775764468336940322136542648546341529191241766768470315455888627540631920172382857665685411648194210370624546902916558403920714689160095601535978013475937127485218463453960138124160070860390791158689582008956669733554361610699373894656959779873590282136077899130922139840593519090472462868184587026863371065498338229204192215035405230478839686547205041837692427319185808426083969813684727871910018510751718702637566840627716801756765567889033728845823849464877515562282708123789845469327621956603483463388578008113033141356100030102849214962793985167153984704601068372059453431596129782149501992712473450678056923982020963594296352125606618582975750909454422323928652938052259093883778547588370931029030375700153074592927320855137380372996082695906624672049749491350865434756779113256041533624398386686385337068051804392592308618024388999931866102601474851696964951593707755546951922143054188385289736567274339923228379208301314835846960677125812356379006766775747185471964619862643755934907527316582744121250892314459669447456202654543769092727688945386058050631676455098942484987712836611176609990451706327454867086810680745673243343769873668202608101151499078077676170222952364003786269213168974275707038868667040661486970723094759286859381614860404701327645468635537073198390182134447255143954003240480664578528938187056115816256033744813742567990394864240561422442205840082409028629703756365607882367563479624579156259892673515046292013660525687505771717924556074525094552688381385278937832164908658548450112042567889633223729046933131598827698465986578035680565974605225024516177046888758695920619906412450836146635409180153798886112054611206520011315340582843263725210206640629994291282131096743770831568302467196500616781037043555975364512980702547521988862053283561068607880301460292333560512287700421030006503470652097118499597428092646059944191842346731523749146296410710374526697176977777492078278391864404709540056944046224626209862649824915866794833422324341011085322913048228985270895331985027973034488308976451037561397407569060356054663192048505227774674544803096861486195047450581926665428484274435942136260370191692979908142338130992200798262633447838487321299106689620280740858343179157862426192292129532496047993623708570913421670053138600370120632847935181038498454195578279647922697371501900104136362680352075689613142986725334409111671469630761175524217639629142638217075919297801377633585134981725618953855540504192867680965180955811644189213021447640252955682728991475403549284630398369838148155967793198408256346468007775885030235475089252474257995397436815745627362170395691020542792870870572128152213488521288653123315228062636725714906929978143929485256429649532907123473963623027435497233611424452501169973766892793336531797810699812846909501917530285193128420197824033372935806617393073702949374574591882832521614403688242521826634198060834768509954685401262846374189714384499199619468606668168697216537128597309843860719010538787507242742487240692669572950955580232040734603054778764558072503345204515344806197894568134022247364269750188466448250833782158017743785185055011530354121282127494708121933697513628620405531066215216097862176664035615088380004004773934201931266604370193680622170087160372946555111871086909487463276387428262473508076232776793687604203621808486184157684450740716839617654173469576671084369864476769085170105086361960540605673776737241822106095711686060491547352918732260656008513817969433739139945843734167109600621745933415079965015627543750652153381613785349888207142022630118052930649710492051665662679722100801316496760257804470158766143716303809892053578126770982257143435112842027756869769489593120446183942618091046934981832977100625207016062677316184884203977644358814387046188517490328087480288341776238301335956032654599019873955449840974744540157075166035699744116079630334488570607737817637106787550071197787400530192629050100091123083869064950629917929702780369165592685273667387717583175021328276955606903292009924967351695704645783227793204044929186964451857889824868529214011382316823850269548949237131042463083503595040476436562814758823571803233470930392913118129284244797915264982249130094318869670643499721983634479981654359023817285479488804227954614318735534501101573768374698294191182310243125741103678136526157088376320703087432004932433930439288532062695493075002754209271157390163946463088945129080931524792621453647114695855464576224308830307903225384559406404505662157651625863241833724316031232773195920508996373746422261792819612979475808321091730288871819348687686835724234710117702251174260220390498709284596965525606261882071458677177486375140844834412143406725291747206066431229583705552354986900192676587286103615787556377566326370909142806056386922172280005282786108308904436136010850778904799953681201306019862980277460867610938620610255761589898695095005296099279679569973103687173595819345008850411801605827394036154104609948514177285772212706399176232944232802184921592870107810698270574549560829435971383072591077770542407229671050892142234641725260373918171525181444646100889990621277606149250658053564390712065365655160440884619673751604777437413824360515987897381599818633308791393978445276526860263573094191832087220608569118134610603505260405800335019803808066409682921931054310514070722677038899992077267505474417040225366432012757121491402439676700129236255017367750154058658564235691152364820279876349181471490912032075982126748155492299853603068933778866420714155969677953737580969268702284825558736847494902819426072017829145239435048021379156787583498851798624918592091861461471870867765885868878604034394581498686784233941689868026695732000081512413431648469150984190428599901005205711733090014347914044562312263794810868170198082500063276583700725703866316561785820827941839140219247909526374557585838232756079363709286639279029159275363933499579560179819252184976462703730136225597664994156030822796924590366442447169421483467184344528027703794299476968933585925241492413058291315545452695730143036588282904179320184953698736768457829676518298410902326525746004852452383046664677674491473279286824953718762255361493486662669130669778400372367835214517656373969794971038487020942654843882698816405942051026741260127178235410047773464251858938627113885451622195252171915937074225433683092045462648277546835458345786487651930121230782812886262414847972808661873904214387737216984887266889720292837709737372628659320583158261913727299442618933900378758286886622094920243324174019005827311367954246160050181036488281582727032134342673051865722398132380513726210886608575837095907057820779113149311012126649224702662949380332877548808638431535429206170274416991769188491447716512248457736695228779630671295967969233136891031823762026485539183986196644862831891955807718553929080870139103276945692407942932477196635704368706889268861953287329905473509526676889534581670911167797152091157170029237079340844255682077762914812167390773703554123141170050759382300633767219862706598814995353203200984044121503193239327396607994476570212910604911833586743089388158650708517851657052922117763925923470852127873671472477304758937967004244129260634442655200009266351787508277228509463173525413889516892434100368080545732847423824224524663331403231977639716385446837330319150937522072202499030424500409589792892710771836442978275975643895217295376810370505551506233864472507923423846380517477562479517347583797454482049659064170371833033868785202910652925173098563307574447737741102448258154726829988298184613516396452011484532062356839340582742009271211713511684430148239981627658918380114894978868738080248316254543237594173802719475007053917614393206571864590890543277920370019184692244494984639380544218541156268742196012645823083873328396363141293110260814344019333506537217008500124564936472384725643258742843586148254687215726602007809456076102581627590790848321826818096546238280950637719923187949699357612330968777685324766683116803507095090232650458727832136238832459911548459147448824292479911221821742371147042545271118419241139947482286754967453324461985079963486997809109249533042076784461911438690948654631559908400976384763999499998147471480977004651853762386772017718126501429660762112051951044753593748459672369179078084973873431672809758561610151761194230453045349015096019270491602210867607385075047060097561073848127695410667963801058747395855104391405993356706521925289957207320132714971371778138199230424375275086092072948674868490930629683824620829054953717802989713695665824805472906392376068751507206418969454574400919521851392266482183045109231382963110898459127704432142189686142844749547928323710137626869872293518493187837458022525070515483096446483547335092263901203133260869683408324366994764234604236205092179093988770064088855231100845657333861486723281435182988990905072033836846351094228974748431980957912665590740666789871219497734854519294531986098440461285384153903476685225050270880880071926726029343577193402617353168849585371805054117406787026001014268831841394856533104203756682608175438421003652271812963343178513955600047578319126442849884787704616891998213475338552548609489443170980130397994570605777987121941255107499384507167261143623745910866538685077187010046584327394151332987879192005829484178897994933636474018655766356865224788855475859078372807959545438266755438096632026610635451087199921719007799873309330397608500856412275085207269127780072580332799762977320774460308305186236585148768867064785306717156998979215751855881909610200932446722492745996806293314307227477587942257014483649928633088386658712487836214727188746217784772143163760006782430200663419034167810961971574296762070943268848047290170753366421864192813901216261004459950904866579855665014081312186725095874045179081338082258901578857755328585782660622730407061456586980766671747748549108479852584392984564776472749506084152402941615383446941733916500620485805743815247674905284026274438185805940468226782630410756395778927473522054511356825781350756298351257817497478947406312760037105232739218657584305541727870560570941665433755583912723607841800600132970467501485131887136435029320161374605032681728760239565789414129168186703909112554078419889821380019038111635695740749302463839193551951040659511345318175590043829423429964366762433102204662901638641023394213470511005082145479854000515436318663851813814031377456960647952903027565880414346293193066801932237046083514182140379584578380476596692170265114533959173059995389232975425433045566304093748561863405799435731974541857620099611841607912448673044763870092076102658795148946078773170890217924522126821280454909006452287564461400524526366937602854697698664581730784371454622592105472863328845267385059304136028753496803966847271061144790080645566941344979644867343366396662301650782478045874529489749327018707096707531403312094121793400907876869213203854630636835714768401344084146515697551537030116509647430202326889602630433216839392963621856187739021878182225675655225288240400677646493446624483069111010085904826671985976380476464333671627045637496751139330479620000095730459336232842319556461691298302074744674553281380457455508223166486439565943004582766738993702635275806607196609797287925751322146457064016146624527058357807192901970492221359744006364645202993294806903561302543713583138036910007081513034050999387468415008250703735456695617506433126146425309594641575191101389042027606877393377122653983906220140571402973147051376375370223094854956560340268436982259455082928661462055446023392435636057214246723046285241928222296754768661680410420724852123453236408783868040175579460741199848542386323727850202261328226831678435029489651201434979038105615888791679622315125049144750529824051407072965714786879490576052018473013632787772283851254712277275520314348198206537960979803923139558783028107668991712161821640139822491650195150941730006238585663164768051237453799655791161446471769275205511248866269151805997551870042055855032578790132030599126257498326482815929305236541618347701346773620078508365825061661742502613442153945579604261337635738148146644363586614103414543309950124708092956824604848329204632101148145655439013883089441842674307884686250228545712930129832324453867870842855410307994407778381725953500424192957496919017523000382398947802085407881631744497688232979750989856413731911794957958347786498846864631486388177111635056914275703613225475404512282566276488191286691230082175617708143658211205268453115507501063597235621071341114662504206150152554809812627889600244292213923721784839271533707246353170704464497217397297243012595871078000000744535250693052508320089947107892773579871467049221372771069497348510270617730313304319023882762548214686789119816078634815165828337887841861685437858129847101456253904149177967533526925465257079147876681963017653919244614810362626211259955900380742678672896616201607509006333191450652337058471520000186068714875729570536489123936755110979879918155282025481917171165695785539664275278408018913050087929570957594827025419807214853013485204872271541336530804000862111450604536926587430431022664241094305220673382520530415692746292409859311085963000029190983711898106742239992918556569148718047380597851296523613856487338513275770947261653091655847122695763617643174195303374685196790011406376491070663462492587299042057479601001652521904271771761086295611738135915562708600523707657925430606191066046409978219640453194101173917846332056673076119376595183309911203459546181669183849680126189667019481527574774475101501935772271385487133885603187642609170997909132207594419745696128886950956235037148490404249135217760738173792752450559786085755716101799905067223708087570188424299921009087020298760541234123438488359457541412657028866634652604030251845466992006345234461334890542469180480801821967669823212607557558123278182877295100651399478717035577160342916647198329361042180985511130123400586719617899912150637489484468556196030582605609396424004406093863609376419314856111055755815886168562888757875535135526452991655539922419773996225895250875540188565676280605948594829500488983066771704259139415537640486455188014170491550043320010230754568217908428493246492179260215555049296754825326126205488991543138195568105732779874493054304529178710052984379512574040798120351454810259791496481211618208646618474522671131858056679790408636522720703010056511608123753888987755839907964169153974050085182878615670986138584711593277360985422270411539355056246923052005178268303337242863400697363211420460162350648159243847907241260225874574015172915462478562663283491839808801323254706786994709048098683414161909077027182235050906930013412992714994802927250553078529201366655301129646260257363708711655387387444606633908457743037303908271532557495870760843379072151608067200948794826983342084286866592094534410685789710723352607173561091760356300285061112007418978183521930322466444555950657709062483736976143085256196015519948373126969349098185438536001211072028232090759587631377177246956758597465736223307817917555331089297483862172755270392477083175279778562328778235748342891058816820776139158697627727046900527601694082154611173169126092624512513340294224815797932364673555558149362888322651639618094018870515852870750618942442387881054997569551118453183607882000062761899986218159823720091021147360654878837904201740060275670009887415413397015971129953423976532922081957585530280873871594176815155534339651131327101651560756600897856256111809974832723821090392421282589371134295637570697475330033370015455946982937088437433432395720811175056802661651245438280727147691695156688778060369575953870101596036532839632004823831296819315622656847253657308844768877640582085592378239632093364711101884383257300812162659190465519367837366259760195970708132084829076303515250128025925374646206501766037388062034955185890823909783915669411787029863789303514246441908972511537375371222800792934679442384785550225906411091915431805693261091959300234054324818090408000812388641376393761347976715906513610521364127838278037801843117116943761307387979806176855890179721356182561208270487198593279231096482665563352612918498526348281677813330216480792460101688016672087314146755373284638250387142393946485262267021048171698205073822717928528296856334840494414796334299911871572895300484523394987994686564912412522134928338410859408695790579854747452499067778612422905648892839239737206533403348486547959462613456532505401016626393715313822993144471276022989786815933378188707965792641679459558196667522832214693830655248269894866753976468336202522507398370561869283369781368764946947854461531600002638973872072112270353535428233444589613364548548137073394713874165219911253501174258223541685380055917956381488619865293877368508733385262853857524307428509708864040169086763939552053604930224902166705068430198589521672589146647136084390287672054499347183048452477280420737136965386046740485372450870269427396180351658844445381389328493821285198920040603208891342037531738805661595413352162760616410563320562617398548236552924367869767200939386397583274729819291649614626361066636696906252440959101728519233643965656627296411788456464909478230020195898626056320229508334467701533449988007667846462001519834961989977232334094080973582417140139254896698298755676901450860774825619093850023775059601240316293187081434392833956752351903585161761545077200857571168345359290282130796372746119662806482580262949989070647743659726112472258282635477635779127940591719426196192078276012474444063593247573826812415367339980985046272790280481250447670168197120763535009642125218764248354785013876666966828579674573253155461239536377049103566189124621774579291303564445486043624327521299862912771607751126252446636581451088988284394211327479518615123377071027255651603263586521038646619973912705234273244622290974461098355266060808575415399461120097289182689016803135670133974629379752122395378562304848800123864585713992730471765435707977630859543660790344217380812393953991886086679002256736125070952087053647427050639103437636099691500459911824810971185463876457815744013308836277025592858772239618184476182780037331986200769915570452409480881507490259573784512475699310364043524382991205902417398137548798231112500984630618394257363202503137932516508195711938203825761819098906071138124492679372300007729569461332752583352695713344143972191980268765149321848985439061163658074582170643236071124943390819121724408825607671269355776041776238854254734291767239607686852131734918996201644105865841370469787621209064078336729791693557191975212823978073012060458285592031488924579955521740767879856102167899231894153976856488583019365230029444748812427837130111276828964743091410765218003833122500328500009041887480387787635498886147753818944567136940365996697321728531607377117874635600772191493594156684586170669585574170471733577971362957639967232729829943257414094482715122696068924411760738528513956127044041813230408872064709139691131269754899796915517462447887210386581735087368690810136036853371035045067941650869460873709426024829320386600390726380682218841809394425662948786295464286026887240952830446004072840544747390071561085958602329973513147622022590951907426840009537247315056124620860546670361384957811354835616199736251966274027822734716762903089483240609220035829588520624455468960942817381820991483969313376074188869182959575229374296846286508913270154642919326975043936360599677503468482874279823999298435768406692311671541197399471151748363898663252481202694831351201907749483258548252143977656429514254093502499019667329150997100422373239091224321401749629772967747583583468116529014998441320671583229433239628693083681896901239136642421932197394005727562715356380359137615461444437031285442121275784765982643323094096035888198414712519721783944391378009159623476956958564108918971916148254187330136197339519159667447321086794821969688546397342216131427737254752418773116020774606992074351088270625832676240032287567774036819778393236047417757245904709799236692919026406494364986827967191431979485470218247700165135865670115115351437281749338051612194865688632272209970485783698925870242210314519382786163146433126750011321612402123465683391797343714998995058784155314879991304670912631383255989008216854016371844528742851959144198477969641809791427153594551700504021735826818232136835882214510090221670790879249291648358836607597639967428639138339622378265026646052056982407161580981990664949740149488855385794303916415498823872472216659795104963408956785538830893037544128928127953155464188812547702984306018879114486031433326938178898596596816200138395336799117430578153184693800123615801923579661085730552933097565012684220946082523043453450790027252990784135026282193123542697633606228549458218173867327402165097621123174305066775197604974825633493642556515781544562908710342231796885004691599290512160517611857291809861104485658301817764231035435200533347009753787726122279973296703252944924770962788233584006271383361395118414476478640302995596413727373957252251469641660777742191086198365167790525279465841623771435231456637566784528608580463528339796871118523647556891810207321104829904481663319350500430966277148509966294543216334373964688112960971468823936135544416117801094709549030694501809964217364070393079610050840234133960718476227906103194758110633756817441487654567251134344384639597771015063339265490927278470427208863750344110337763518562021644084006627080254526630839386258487482344419908462077457089504105062718211815628694458880187130899791815763414695288915987045092540798512033957911960526661851990832754468302211917663025503127271033969652199041739790403150391081803887940081245957747223726739371395786183876846837710903906264968889932715365463094914468987575209230837652080633071326503406035674282488577851053379982370287096351245047607028300960046303599380664104049209420448290360565098157771919328597991603495821616785553011916157491884494715419374814064813174680473484967380227999360003140644499384462569295834261012622760023108978832995265080454831337787541138792179819366836825733091033253963320939672783880842513992762771767748262544746042166139448159283472301636723894671410057258314250739954462451856770862211334385308059971504836270491767460105708034453206993664423788065076310622068239855618800102794392596248020839841553127889220692737068521909145178594097976659633614137243848010645165911935297865117627559230595672557565184245966792143040982957371472103757446011301832167113243779368641524763038686203267888949092586605138130634769830157335386415011988161923662444517621152754021796428451726823652869707192455431820883707626082609016246746259981704655115409788726153563654939192756220666274355832750474720227819631152187140989284781204793152808150962357876929630429668219779492627566749700950134407455146795716960654332677101903728417689664756705838520307117858100831356510491588050194369265044396041212150753862191248830826278994439714916045829471793372689141770698425024383264850975549663376526656619791790311102116571824047200994880759020632302952923274523957174674366564773237141145219235546904606211635376060425353235156010693435038874008214951328781232757545117577684032563219117189105083799907377220383696216143803622007390747520448208738511126596311830806616388604293415298430898498030039315140248208720081910395509118518073950488961237117604788527502121420301813855070605826600462912919254893639006375405743496974598145228451679257351159803394619544627544957206887801061783103883763260604891930568018706034035385462034772364534432126788768995246995963508276379496213955623561896612993955394150977487926859857537244953170111503301690154918381583114399184261277309147502458974455540371542066903025245433040728139936590662837052877982220918748094807434549428263841253973405204431734107167723356098035738562083227617998977659066763246306951529533223805955097679340194713152552876304726363513933741943937594585862804090789738036274257903590493694789061778823217347391909696866273011981133729857123976240506851973397066107098847427359219028616416428934862351113772828335875416058779479682284507093138108074683302174085663534227164115875740712829978954980830243062072024133769132023846652677862833187222794784763868289246702048582875403698690166450638255250890463580500850427773758792426804023891438829679768639796100248552467072650299473788710507418597878727541153501020555585653915728817902470381329572654429083829245900825974076122824328924187119638689145628375061333556617357156533370926385123902720582995526694768783549329689097288086187654300986062315643420642803557336991147431527635918375789883711516095736478510383653265211890047079315638407185853916027543026429020307428521911359398195109160579766716127010918187659601920195784421286034954625774951188453751533742266231535246328741321727660504594868947512252504919746253663956928756720934184416719700905451697665208171043893786097512951062309942979062655466167618361269695684846827388360423226268533601891395391765184843458736651947559439466495962476436934629857132704603028402705668482624189983422016307634042039689644769288828565500649412280599370069218217991187630006040941312304391444186720322552991806649434331078132771910970094871710785109103579345774529344242170651805355979968213423787593706112289901809391276195962130793613101134356454248069586085051246093453039548561152554497208302086042394645690538149877042539530667131731692310900913646846678809687556619681623836460578911299243448832563110730576279080747358064117066459724268985581940157411238006005081048592926521963963267515002482901202672991681414732112904930701454267624802108740426112073940488716645676437066284341976281345721554304940746672221358519365566021802116903016509046128461469375628288041786011637160054503162507494600629366563260099501310555823275791676022093523212738499851130512071757156787116066634441426317913336405017956105594341665619029572332949682243893325801073402828047942088940436302508526001282430735923690857116131927654779398205168574059311466360003191719413384128912669189393139947004123334579842221257391878222909542120138720808727299694631709154992257883314638593621812118008576107739809888949808801983578821022165574319649809338217620010757718566918291923158413546968033630317725557707067111701120850864985180565032203154400358732181972990177570733254075745443868111727281272402428079773562948237084082327990412367493203318980520131477199031138386728915179766898128879666891385357181267407811263305098492266933174609905959350106592640355065081569670714169468940708183977604841617058626041410253668892902188772123645253135664305372121395572620220292901044267790706855762491860917149578799215661280499692594513789428672621405926755081903806111972551482703311144181189333619450751322725948744767062993985581979571210866049970669382832076470463397880792289675945480244749075945392028093908087295669193395498564539009163421431895233892463216367035989245475885321358819765261428393110559200039814526144142977578165566265224752096613668719177947331475264892606217335536838781420425749885644163711997664447461777986999197168301433985103651221581254769014162388864522344615619359765743251800479341053120237719166287179641333456580602451581089475593672657192926012082290377781507869894589464682107919741978418000001485459952902224050752204314770098993008167008616730635320466462598411633505134300252127901983555128656896416433955423164159488159806861747103009865616451330815498984823296593474350450945349680814474151912173900407495884375238304301952256937502487446306986464189549649699903727914174161069465505652932958238519139030655876531850359651917417133999103856886651454634149772990899692410079167633007750550484638892197450294402256975290595215977204856028034162531915151127737636787292747694805301100641206189118763440911652903485065454278139870713404735622860391136144071097124268574866980008399628192552132643493986318453830813444618271142931207631964711149151879232056342227473945558008960731163524661741969461100282738030927840159826526959861859407358634957061618700493909725684102097091945228028767336713645936245584449633292596541476042742830437176953594214737416963612256839480921754948070936681390598869532884201321408928581367345163560433516851415957372341039919798374594202583011606047433187186860287498105850135974427738320470430313447862921559580820766580537408053084759674161301285941015717572998744226934509779007930746190007303009921812657586067105257182976531689046832192354592406089831616070911391828922164786768530216557793657762502315667673250950886235237219275458329506286249049759584466905275407060816399587999006377811710859013611303700886946616915855886679422283294963573667694473914591645158067692734361267653170016199530407915469471565094635252118523457406414482492152840108805345400262316953332794114152822344533060123798162601328860619991259360803892195342395370406066887508987115112172459915448407898852872136971733853292898686664478111400140021867185881697461443735526732299219945087261083998659989125622374786723873866472362550237085734552725352515694989758347691590213575698337004412739707044132591659948668940960685553988347133246388961233317875778774922480675711975059635864052560037765544359733281558711263208295058108766730699626904303648912314023145200848432769784949788852488417293603274813034342392010778729166033390862375583181955093850025174130243184345114958488538617797726179956471519702592595846527270392904435967340599516768694118644854465808715453797899387103527766348915473301825500082971772399894689277273241770170423210743227308943446594804608385730817964423326528085029234483057706552726578409505676102772532430690431695966048067407411300788237099262723932298153431870375527002212450894406496473886110018523847749514829840280530981644048379193477882708335325802088640909516465887548567847201962368043589315891533697140958170022730310642639203294690756904069755784258795565384234449354412366184319267795447429980682553187504118958626870044692339829630644498637000423596231025653820382701657283073667898721831602781735855909005873154479112154535767404168703900543583421749960077550870008077960886478758102505271278485996820699542274231644014752878961052481969910708640494399112883890481917940838175245037237034375776794098870011422526207491862739250130156679916922821585145789114234261930350058972366082279837932289915940212543874414774294297957013898103589954770286586639480615398751111570954575067457086986884372995722154673094818632822946334923711021418313470684570131610173204358704944825854458481854803875631778518286072512366075759015553092856477327565741666594874237251958270429199448631794328586268050784158910784952496867360595847981390965736990174065462262550232672384753041526111626581258907514169215103898383866224893274003150208059179992921231650556773309483388032803842871343325023050408737670089944372092243993698274783907569973508816374164926701940389773501459474249044563629833642832073798297904023729685591781041448869672525183961544160994705811269684047519431120956269945764658311883445091606865842874009251715917162803926859550606447848987538198131433327034268438294386092688460062713804927714558272028319538465676578913686750893658832120829634154139349997318431754564617113008446256658082126405832766523563229022910037975635185219574734380724958092984643057087155741005295668397627194080279708892793413112726106164409622767204150692958969603107585044290830604781308729022439986254845260028237481473818788057538440827631079533632496806156111574762787962173323591163668444932184694937264346566310651263458148749872515015367791118320979380713720810314756839975156804657429860192317345813781438375645196218986744294408509262825808997634627045509984055323676088380920668931297278701040069905486128253275824666529245631914385156743371161469377547333690493735402264890043050829255226345685760961268930980922123993859389198300618292759903907213067389524420048365366215963142909053572157398065052366661101851375698118365840286917698706573511830732708769534647977594478393172152839272372072202740719997042152684147976778521165493513367651358900556140597560563887278600306514013951804026424405235430095548498749195185752393476768264759343266511359160019177373611586148510262074725852748180783152083216872232509114946757397196394723230256949317333827044219562695003056618976811024970049447806066244093909276329346119846513464823109186410718889697572034700966793316315741015529777978758137720451955421123613099778172073169659826762623597399783737705074890403424889279887992878436492540110899625669263846035201768171849939468049803366642236976993783216760789760336652790613764853099616437054195514511200120616721639502694292022952075517005232450825630992723177432662954090325413963432553379649516571622370710628815102083521448806858400261639017270786631980437729303366665493947888080099835498307883474721506267362500338617029855360083500351267559133259690709280654930542343690282605384705267648715926927488370192881676557177043102349077145096593341016526374588041687872389140151275024047564483428218116554241607894994494830922094601243027603701142145409515846415131585939689623577104523615641903773135526792165587866861747973632812977636284845790171054751178805614666964795202699707076806200727793952240076464637156631600405229450024797961813592716903050781674352725787132822756184557800046767154135232922864814721012557933443062601972771261840899243132769935945572761702810430595999443310915911767415122392914824376439476122586837003261635175301744560743745282246827116556337256815986281932975305453961198940474254686359199200705912633889935190420537068020943190508923824716853774332927978591266939892478183867563491744959095513953008991605947129918535241253363310684317042974581668818549176556131901296216254618931357264549287911280511407408719968903911276107018972849815974788164327471294012735063819503119505666806343219175159186977266414958786147653883465809716134044647039913818050950631175067234104774609487799167233275643162621555421642436727510000751812839673048863410479372543194694929734679291106750473805157142197362251928270388330544164625017229524711542345669847587379300655322315548061670215521308845394207242660920483928161765257390714109510991318096824514038317994182088596515098989754277259966987749450052905401922594166133922934149346261446507333886359422400485094595243534332195385475741099720291087247473290961521636665540905284506811313184039126698144768411776630209783021911028472350570805427637834453444315058198884985909184419931633376795640780827331954363884329132205768962447519882180740085579925008464721716446504570103466962894036529557281849716600818722714931989955557330559501435601150965596553341422692004306062559644845173470718914194397064978999957992677303701236775666278335996326687134598084260880603063080423718260545185772942986798012524369917067298009377339289775110969998398529438842428600698773504517985391460665698464524344947781483652165123531866243934637534631025445965419828895685365764126374269455582470300550726266681008283286469767970310934962150605259879816609304848549869082436140541257684276650975158259485925996221926435793848617990291375914729249351594877994773848441597779848838205422365468789002111213937095362670759383355745553538799002059741140859576582728700050225101903081351420321842803465653567211266034770650111777392100619934060864600915917189272940628417013170314591470993841808970276410772674092581975273478173729292676029335820181091988501462875787119570341126620037363566182676910554980912065275205161863013319066061729830186769128041405298260670624302927356656077168325471314965625556854712554974778714144327072148132483806670074895776076896914570727501580504634178655891038914237258241801422323674294675588564732909923871030879894913940367388029001332736487789572851580639834972540129031646956548879359164114656634382143718195688075401537542121870393003799599243495647308674748016934790825359201054641587468783328045025165708306890401660541008826142588460230624962955350874144399832761880845453957832841294107974422674485568662987876047407368522622747460405987875278994787497200158137187703116121774593909847106101764756416058102722202542045192264209238235856661259566935702413868945043269894559839451231698366043490487377675960780224436062122021880132822750630367849047126678075424220538271443882452663428256251423805016356708065344462691434574393834876809933587005017690572289667215177389874835311178908401656977911213290090088214069820062504243098239096921657713790176991784822279790580266975028067997602436801746987975138797029686350011159313736142239022751271088165172467689099435632609484047564734818685377920119298694592600580969262701892202521066070390919208236221840879498412500675968934553812680448877134664128484408801890627897453897865163520749650619738211711740065071688555441540998021862067827043825562962366567405902562105135562626576578399546112277867655949564857513539687594568732841405186062308833758590040768942857271798599238475210795429309657290425583277852924479553869225457483250646866998881066507132148373400362546031390611384495533747055686681177826434905974560885231877423804527759303905443346568115200330901103893675524685741436498287144098778250314496819395827147162672567283636015742032784272231552307245715046913374715091261539096295888832477769241737420629276319409496505537021656009955457063066272748235355327123959941665683286646136700395397534186716806934275910215391393074315404180164172138438145808346384680058727699057774785644770746576480233117379799122313494174437756368423564271820820903040701632767838897516868179664515305511650699956071730618247153694714125834978870461345577073265222468165097900179402645644557816677605522601257707098968170635765836706482138381192069126245249365046815017899095021974328257816301372358986665530980562693511630647832013321047295002636110026557916734792746719534168907736048018859287404314334183813929779212689744788739583945631509326545081670740363505007814364045067975056693593172935381576734995123560344624319076874471917016600386411739624347623623330402811117983440619812076973651168556837599389919329512733862782299534964588701669050596540700747795359891488049578947864476900373343173126313529249328731629809745668990634439084889927336077203448184596815663137977813909341578029345855730699351423819255292739348063840031184571818914074646247585599533846760724303230044131115895446975970007696787211931416968956564859394374278140075148574596953232538839095042040899089662714947122220863167927157525467485844430630330484254911106973557371447452011703762595824911415494964310462421324390308046023600391961663788772297972124689974355139625788845393961546148426417248119822234486784716283144048845930222804839480201808442897546383375384453025781421592352379872507373688636153940481650214923216832778020875273358143368416054349055749761760412963851114298695163128867771812854730215420783805989163740818363584123302841292362896242945540900629880453777288139359580826927459461985712943934396333477282603668575084897080177790830696209946158009889811756468663309942041605803842315568827341696668836075211987179079242654604648173085723494212240922874659539389136538995391431839387666063703376908115381890813128511569829995150718137255165569561646389254618116379802278700563640194517435409345319147288844494564465987460524424367472497243774862799326647208696111181087929591773222226008780878093060400857700640940001571342119843010813539221948153576907674502709040752487420961499858158905063608398473667687319872064677944960576517150670117852656737981967558745825328781505292913321488643091578228118590333720288326752460039158669319000744740365451382400323740225992204576990606114790234244125556703374817871839336655255991181847014896913111146734604457372701371816470005340865539423485314085028534713427724259054908596037412553279707218818261934138853225350527417262458819415732746142231835288338075419803343002154822839761575485352914713344164370529147290723221819259549966127870941638176088344019307623095390215627500276344650760524436337084685812651805485118915604525933929839103787586244255199905264945760107446743074274523290656505075677016619557159253848404000505136564052803103255281533656453877164900291211146453122095946555270332962780493982804785423109342846160120891413357216256012582700047270942384320983652884530038227628997532265385994780808066882356300224711282765634138582936283573872015463071825800825089634442461388096668458014622763531543794794094212166526137849241513851182520545346936270743963110909283630033509107030964395016944673859388271299014895861603255954654474925230541453887328419647765855068887650896462787240323185809608871278738213540067282972128034881076501772376612041769656288948002227483543176506951409277870795468220560025089781718287533478340887998926276964158724048156895526916330768888503402068765499497765047923082086496779478623532158686783403504539760286611068336586823318605259935922835924849445230072034027606847420322947835706433719222767221359512091795941518002945872587609291120397948376757041981964483056000945619407801605019620600422765202480113701754923263579721341037326639319593067960920340504395671699898045930020626328233577014954352775830216919690937970517345591641584450059606652410630656501242339330944256071338287876487327097112202434080004966813847460280692229831045174381641845251845614132932507066148070916807614366941523949651784147993508805923634487788740510241039293651572101353747427676306688467754779514127651349862506842327864787641627281595569569152691226982287221302531022613436192292167820322515655209336174331912084737830795089582738369609345991895496120451956787187024447456069891580892558329829838022773480050393947035956739179009905219272683797611633487856651639036472242759435519452865846129805634477767709449258325706191970406266581299216848910502378960874866230820931930017161338103673136058417541497327790989622975278450990759462445115435720927817404539779884896242378349919996927426814390044688773736988672698746175343102027425835044175617681025052358547239353977195628673229924207751643710882436821499853305819090117923467721803821395172281623835910719833507623794238710870991012700219214332115410434578612912227859197398052809468495696658605759429736929149978511548133691868075017943952509406735750361320455208642932487835445466859740706624364154617735883575172972020417138728408806930844358944475748543241898035285808183923033716415013040630970798198766369393245754580563825910263807562930036390307304642408677299211655507051986048564053987861957732121039341364399852201066346242239360717572246563109377186864923765188518993609041295492549019120621210540310544155447228095297563564785080008756581941129622459270495726874370182487001083930558671219070918883891398826280801615955877262988322252421840554682858305863089574945524708360186372914539860612586985822014451442086340772971798944130287025609549957973775440486081258581192376504767056734329110619175850518035029294364465586868797417597250836462742675595788238633972620763887699359307633627484420995095959644700482332215345601303481323120783920022790905903029315441880369915522353597451405566867553717919175527320534864694658214069490137611682397052912282206150989752700969064378216848548909190430584974949214593333852216114070124163936620688350213679743965595393864378950982054832366654620420039039700430891382129191813638031551041040456801263927335699186950832259366500854100492797128254340545403618383179731060646106111909624848911050760782167960302864641829820950228669949282281076902078716430205124392605504790971118904132784410290934920853982178902838791813010096021500598936206596734344882141609726524184527393848406831536017756347589236887921324994334171527225642838885266200823542263574062513792087090113267162257065808144724705728184450459186411410036277280223541056721102367883522912704646423991508713942232772594365742032712300938552733260742280656034508902650231330340372471001735793917160206282994328683920478612032589166551704832812639819006033059080482420725435703164940740797963442351431850377152849975898361070505712240910883498639278726635057970020909855994265938376799381485317441560662703573037376091710125974613208402798946514015953640828538140729310921036429513662928056725669736298696435937676063811543192758281918176588127135304351533400312786617729644003891403589422974605128623479385964860780507982597334452715972630143574734164677107496470243796906696865673499813028942033272769321529623059316615802299534030284619315385945703145964064494902670489521548772173987478408104721299270543045559066177106516101336659640300724061028498135185841536465549961328771064677201562592620359360530143071599043129976292893601920097170765426286873770555656121492100601093533485443073373053777361131236755103670232285751495632631114293819240621304512900546274855126082862579044508991883947058501403043318639092225179749155748263812017048130593767441881252587642990853094572745944975953288450335664991869634491280108209262299956568790838489895292269937129825875965798795380811850194574209505343267949189273846981670704467192121484744498609728219020437656970941799272172820048407691221374367235205165685952021926055434327291880673763996726596565022351080395977125621537656013040407813312628469655410719605782473929878652967125947219555819524789443265921585886099921002584214916403886895881167479995039038885333469612488398608716667449473863685793239343994742449019600154443245349370971363978920669518380125494760164259909800143289305228688815312398659181421369983367699563317695613975889360448841039936380415867184610241080284607520681825428715461854483029580809483653552279515833190246770907290248484133451383244373632755230350390276461310575209022607495218335460601799799101666585358474901453307076650873785240273292878286572465733104193854592836721872936579751819356731179590339324416444774566107366482129842543849654928945670436152568858632759178281592534691895609243159462618504814717927559814225435577935623823330119458948693666139348259353824601433557145193921087079215336457382670585836712350990903760520779313570666928379925882310190250143209643534652030161484003553646987792399990315147424607974150074433809935936331872632982138001081758345511418488232863732803811406321735893908305891457886099398256848725095030897349655004445840262645773892988678488416855785792824570434794173295091701137102675231351440637932852452250444616539331331206994803965356591852281736180409357491799687828814176667190772373066692648290117134130190067220556823883755228737630247778619875143073327182461090464715389155128814841756202638102555263475976336163839336565300870325485221494539277147654739900968577387138514456894848487450780062104292540211099014778261745204113527096066231853170002589779319022691940228474886498624959819313832234222695572912235238857851010147494214446270729411205817890457988391671436843771409357164660140733928740219314948145018303848699289624512388788393381948169167427451369964764750932734964407894945358519001074924313568953647985224428992614752919038623813245461123283930856101755199145542898265920393685262745956712344866966992192771746577833080330785036964740428471735675407115667051974644011666897512257696010244725533455741696033083180924976197003129945002506019231950390304020508906054635331915804352526183829175279581570126624008096253574160344965467878765075115300941814300929921849712118145788045266976509685118722429288349591436492775006601161853501148531880908416588813582059909121226618779185843764233438327529510279671370582089917037773602318331418652745081370776052565750032407221959412679296242213213216848548697985411862832218039716894506980577112829256905289237817890338216347129722657310382143748853754901957198474683153767042175134367361128283534860453459694642370775842184175130480669362468952740454763630917319955915836959570311910795514312657687033381702165213339521062824604224831764366571509610274515887385006050542854913632756118032676732171229213763758100543174198574319108689082437214112274213405506470647367850157815078144479633890452600535610175875890717653889778880629240312892555343023486994528357947082611563803614519046096179884149824299493885185165120877498178751470575190549043109716397067317999417882199235637484444871592882509534282738777633247799442608996195491593004457250467247684146990515693503930861344325013362040126001870453719518747785295528423895941071473038018436208008704048089217327247305571378098577357272160975796500942342500102621013539306541615723819366867539806650252302575992039704896152237169572865965919958276048118229992746386237054638504025210918779644709239454263164563054102609018421542483134157676849840215925958324040686667633404961395053801325777599978563542852011106696851756319602470555891200705867271202833244549900656925000210844629828455940170761497093034724573864558363077824520425986217304910196182760985578780580298914235240550359491823370059319121388445037608723661175022585375760089849255916382703962735813296053943487265135747952486863460649875634906370825552282352246242948049257873660012722132270518879186256880715099021704972681417470805803088393333918146299823817974565773638669354572322735802161463365593316243376073600947112698092771051677275828809568098261560677675150127088795440755635822508003909362030179209427260165672651915219798396879291218959604824788862175659606746356595772908436598458040186774015457692999204878276510028692596235667398958255348653763949410670932474952711772414861828880050495103598992020826379621278138866821153423969852557942671143455144486849468320246838857980730290674412797118839132368555902968658879946936211005787986605413937296422093968172405284864854817896914053959124362581828480182926135077426791304060319631574095721449841408219921927573334331642660975333847801030238335676112650529326229244519236857517607046754525918702599239269785291346226817316476939931824358644662389172638336757219398195950118224561204478831615763193973054418618681693650782249863771685051400042962522708499149898848271598996628581959936778080779515784428768618321600018795477113942858186960256579064996996845409211102314872106011052631235628666491893871346613254891579025716589316507429824308352533677829843723164737462927484350307076661195497274502756541610834326032275506299972245927384327404435135435121016819571188756863686592147977069219741827108802823601325496847726311079354791120840772042695790409686214465223448131361203267590219007494987318359134434015149155205190887046649656957976046632609611224699597314284705712420459284290475471595770691052885607648997256196721197913838145892090890110444537561948378705470852719154175231984350800259302404950842251215224393614395803148133316704594905742012513959226776332913501206971720110928743040055297451210940553399928907270326651964569314370971231615763281798993066991817763908773041226311295479100614536089722156181071244714477676449372152382862703413664572352504363072161147258490483155904056868380391388709474267205954116406935759079727726351768124907126525914278777619069390956365060580692029093776129916546236774482879887805131954673769122026849607433243020515932535052011754886226467697954494583689831833830684987765684986705454758661915802690796160233867270663133599800275261441899604706148407920727226750129632831012957209989377527280385704718769213906129809872646821949676131799328486243883984137388982492651772908597399714428286619683568045963526445785601105240355837805382713369338718919018830532771008607225419833161535790321523300054065899952842738325628145050166164900064665701717372089831271098033319973442659199586425861577372571255722442829589042671429087762607521402865954442595896584499550037227254044658950981310823477565498958991641684519899938939461942621898484526595447538786540074961934665289694017852655406922010339574813399835934379752800740025876487801782834641770084962450925810253169251163725658635226140208954634987444810191964837924230986315134053223459787185462840080403854322544236257406096784891097739330616090477740386329780315529847009962461849717767378782834984092812056043533130984060075496542458730619147889420019495772414264900226213478329407000852266234687820884592648307400322686290848705258783094159717097117958300089967404396640657430169966086834805445477151884206799652772424678417915354890205067560660414930512870462098208229952101837726743379151784901410106734407758943748986296765434637072736100595360890869986729216622931929395858083174994575362238499980558091220663260014008048293392536055321402889639782300023830117237426507645258258499398921196955614173510498850118685852247888478682883992654306576698373124422832607659028496963411303543736432122600011493387284136158713950314475092171959794157000922518813448577506062035029764057145360627213074456427308618632189167965799603248022744748127236560689671665165849436937531765820013016666326295624660211620035923647379057959599312550867534770396138840315441616061102198704361520662093082855809038798025243283433361729361437922251305889225612701999073688719773413101796218680957146833364183320998900238663386627524026920820607341603121529837604447902413046168098185488390348275596051254960997266221288929488124481397029263513203841059079741393853203352076045213544173832818185287532775322543788528950344680052185875237689639140071971146048781170081569400512415027081270638055121165208307436186200516401274367840455210155817147054197189520356605510025603409037401311593067065252376953456783054372939308952316163914720207904583245157922458459827961752487204520185586318842340298180141783445403069412010279716452400871338237656233181420983034107776521574465712371778992929479682679993427532439769296994058698591256802017194735501136802166647815206463941631487526020818236092231561601186845149426063820178890061831407316140345953262204654662987764416178121506936662257383772884060896686530820688264005480703098845666875703644632326091078939645645088988118553235019335617168535662743829459201928628450239419186248418914928184643784028024081539375273115786889218325815746959320148474365888729838417903616590753754414671134413254843882161170140396466510846847745518490885361686611181005731190752266200684216128778501756840564310347592463214977441927703152538674193706695118333045077857492746461558742020584219536852521302689233997698221969177275724131181235210828531039361585739737467666576639653261763654987728850225216979126088600338206275406538596758775586923255657985784808281522843551850310942245585998200675353654642473761428551864470477411664455901479855291409626770949100232035808213616540357858747818275066535178441494048788443710088460949822221726885942076762085295143006067790191685393045676170544872119835012183838019407522450684604224670534459068262055712117505171884294361463055886015795230888315663280572660608220934895224985393911248788680083471823956909816972543904421230921648576410221985789349050374716475388190710331283534449926983658642476613479968015785643819754071633263993378866870598918987003909578665037472635702553077807248919617234656799676181926998369411058541015423145579623885508373229850916858629967365678691443822360474905243415479308781141734258347732739587660052086940399089538753957524884457286382174194199244018813571705243530004812850485245588701368131253102917984320303366014031288381238026769831407052928572682933002691132888871831829024102405149296399249880179256956777595134908857569607577657356139903514831292110062265362962221280076915043773459804290068226114409315055698616411898730782584001801024678630756224454136566174405126233860380158079829639660708816388083135841211800623934442702470067633586743976994321778215569071979752637549184518229900334074385288599907988982066445086539813829810905396974640289592589942568161169399092359745212113656344993349074689548283782532095995561077470517742256766563356262117649028744811301445063862924422019810391605407135360590548242973313558013767937432714962760944291885134093982770840357570513550429791276900105896086152653799775408159274575164129958654407111738036582084495944300648670773844257974478433084750241173537910050775340798539595508832562405728982582112234716531833423194343536655513343558760393623006009932978505299507676476217286446890198809719327882780736172540508423204951120505104784017079642321123280666031662079054294179361469075077889023048183804642166048272403993080685155153002982214869442219413022038655954992322366201924585654134481096690673183190117436253869929868636977904428983580668961885684802464330631107473079248335681998932301625642666342393849352439498715202001266530962648868950548512842060163408609450884443264321200723107587734711819227456312387509426960176171566612522472783422539351477754217384964657814484930355752484105819820508092162891763951416364033840740687045631680608100248147716461037323520270625074105934421350327792738478704287713285678471424425319049352120660762685037418804609371836512484692013951364668241307696621966344750147427680437736312796517411953715412486428867549979924855646632243939205488247213357966966272900064828263146332820919363729851625397236238878517900445370649616758416750555188448874934278429099349075502100680610553701676743827967889499943857291503529684471202852102822977748713714414592623999107530909984570839268800769508907330774875933891716343390376351832504886696918562611128602776730330531432598504534686104923240701142937070630809072955987883946654035077397742305142217333447695762538819047091120618654698399035543770610441033861247147476063699882516607827890498627461695328140158084054561742255860821281576421885975594012367252488520982162325618240280379759048186641500490171795479207667871606358107966911173815885382210892207004516872078836460879435672013191668414121878974328049912926475544747481083464663269199575609142730609810019869101632445986522085054770240797132049736394475310347775199365959195468580077986343129354010846265696844325326290739395429837717018941965698435706332271199954896353905008354890279297557007913881928211889724104509402494690979605461062047250427545756833164186379438600207455895625637044337813210579933523781532817181934066257604741955320163102089743188965191744027610459850744801175862822952735505648666361369722017202879740652337963419709629775427941142530990423124061677316792195467414775491398049098303888233958996426320578873923596319175482625480055232078863053746258614979731083737795208548569901053852152604162206546709170791953947513477696940257650347896779458407635842467469523273486290438779854619418063185890439873010864763443894274710997203760973563464126802989742844461608142054839937699934566362215813262261683966912467250748206399947471607318703938326346550555726702165634111800082874791768478348106753217896929152146192020850699237489660194478560734837538169492608034520074399126468066886096053370840548975368870356068669207447467268664136728207782807360381657300714082079408001603508602443885267665752215221969762700285030097311506872463319225409624753689826343656613128359856283542923959759978995363566936334111974276821964127348238258776020234860412543707315326186724396169982783773126943132727937469925443484131160227835934219057538549462949444359222371063386375413979308871257567499384849488626908758914031672466374166193726802126963674540009587624924516814342862992345949586632819111007869493493450088843975960871659916023347994839318706830297273362114293253557020073918117711517264634792600482526545286017826660566219053279743898353680362487450683323801626190593385434379879138304788480032910328133549901204941419638529641213206554941121597071699668340482525602830687894242973135944288868474667114798400864574602152037429790207568949745883649828754289374088208390688010299025584206201426795426574862444569310973374627544813422997231017223783484087968064065564949179010403173179171979498042608614146075572873139509178933859861746609261280606619517581141017650678522925416539172602755176461702702266136129743898904265306852945949669884484222394372535541543991080506960394097593219955648653492442770397157243069847138683427503505186339414286935588695868432409161571718571292579530081113283233023201789784399266934437404190085628954649295146964260187921183181663923928681888301740188015715804764767049170195408232006740228043798542410405471770177304105379641244496871489293940205585902768535250351577166370846517576048097607809143830077829979205091319643729296752574403014887792324421816320527656883602717838548051274513691147127217082368385947746445713894468391110243217526942747313328491572918393846985790277975181807093981696179155048827990178953323893429030956111734036756716912913130221861919239587569126679925362719827973357978441028380229136037019666548008979468287713928507077727552259761696348096359438111465514689801903230079960481305005711484185225316898707496444393137766247855960193038565232294339188496505784850787956930175934194213322775576625302586741910835650056201480000571599775679794935772925050785652897758466862106445717078050022102229250431195784615812494736185333669719297381462665129502474781510347190572699098046391082381290477563211211691152106205691133812455602618906121529063958409807429021582783527263249088794865783309728687487428064148835648425271980931048991740749634325216555658193870681898456188326656943774616539092063460972027038745303365989841924959573521236994884568650285087382882110174192572604391395847627441730541108485129368081109848094166387128324753594850649888573293105991995778827269021081064053627333019860793937441599600019500252254753972866075542030588139009641355264513064184790937188639994568414242433351429156535516530662272146955850059640828273213168013016738868099578501788171939497324770887949688627403999413903553829153386546615844167550001164025498982556587589366545239769611308225354685442098397182367338197456137984646606470057106543705774962645657749984174257362557478517382014202774560591609331761482539488431204491155123794352706912955392665787689743489369898587737551429997369303237408112201184605199669352636863702633062529801920234101893818902948965995472879408415928069540712647140523856185821146086332967515372853915906913816712530277807268310511746670185873302734497489698955802073968706110807617657569432848656183966508882923726112852143488960702354534645408051168112425310581366810658869257068872542781672977458716960369435505978133085690080726132442442246264757705208927492287510361229321353585922975200114822754433012909557979277939938778128155823755175324394592286277378907002987050125003221561977686058294668492367185798752369369719117360821864615208526213606029498944882872990428558789452132343417087487585775980507952101956997120519977665345804472889896730496196939795851680304656087533277783695280172930965494639475419668802674640909203214170804627666410775654473873462204367011952577510618328667027965256691649449830053123141003418550488935962443026244852637629865766696014130592558430045231292286319801752170080394766489182727119700296890423559664928608418353714396510903719253094388989073922491869258158372687810439894470521153206723116571778620649885423943736284338390096933466747095101739022005095872867431352974402986170928396065205601205644197690503669036581333420228701702443996074013920360713287300655390215537919122582102773590561393992759230215704138651190156197466971388429424245488239960036498251256431873173120417775236420962437116651101716664381587318365367445809542290980346076394667602402919682021582575314732180647962096221880379760273145746932660565204395770074775984290397395517434970650991966369573701983178865305944539575796107939270087242565590125620122670718994873406611245495030508656620515050303853427987803801672425487095702534348494992094735265206376236736748697025764970352085704931823875019874951702328152170970834345951015655928554661190979370119955676470665875731177117649905839219061445008923024418206008710837176980656347780565380525466152996135204849012101783836590250742513275523003379289298303770668044584252606552060918430948835249430649081935853637718750515959438300727667277646099307238974596301891156821057162558801463070195484113902614058621405565113300208010073747834538976646472828248171513373379297069982609026484447773793054588930374955722277322044735494685398036241306741005747674459600428619735311763145771078857740416809271750877535692867261590335165838164067767551989671302617486050574746361652369457561674443888993944731008852628999693414705335171120479816174490523207601648860601526631717952562867275155105225864849420899817613310917705506277076289583940437507795696616652917647029583996464146892581338842247871808571947131646762171349705450931398495541969173362731712321607333337307092079416179952917112022999739846324948771788161865227158574455774165247318821296204501174422114614987819203839350453183311010521048737415317796989136299956993824560595661916043575248869804655368896372389050748450553255853805929831711315445641638103614583058054625124709260671910681635489825790637110329323205869872631959338310582740739941547508266076918795698359730661254202734956227903502320238097978779349154474675254274027111873178290571284728295756500710886139361862969079803254522903028182708763927986556742792614824104353187604421755909778786955939162679200624601749928900698243135644713213945982955426092648415073297542981688410487698336524938989255519521833659108161306938705970875207453052429620941849658920903685541083179151884679928729493906736251740546216672148605352205699687226658114615234463418315330883771175794275361044549131275739338387424659119331900720984217569073041601508384595194302741206486288441075145901536097032072539055463618430687893986014284950046222955620493462810657813252575976757727903209007840536392601413846866875758465302764924827046240252223537793634336197576911580999254817690237609204818428132718811848662034834962987339486099365450655442742821096308690665311787471130180719408874992678488345017254995685794969080080021585102590833832562761875955170691184526569676831252134037565095708502121409864091655316559940364034827440601594006081275410591333993212246509560834527484796760552141102712944725772944725849496424629442210830620250359428888297535279982410183056686995804108763464834521832363264477888853533222178905868002479491981356769365004457946689267550204365419502773157033681765057887755387137137347073043672150959232843081179141745524981757291344595270832025549961729623078896929568595416957444868497133299527640169956203459617938786257925030238278481052830440528041769784634898607867812943105648409346301623751036363792328497009556953041548077877532574866227436570011514091353749709865052511854114370698266589257561441812156986957431143383791658115182695270009547788655671367909976383734424203942415888775812060425642318131091487159262722582488297730697479409625327882918664118444000202039569455110829207441132112675067310024708843164149656574879400154692802151854588121896186667245757944980411186704973084176812002398891934930094164187660501683951306350057789159968671233035667003141955783779629644498964684269660262732623958784471910445999212060684787390389955923568141056983596287277110014723422846518682347002801233756028709530525985159900980524701610405672959328777866732638214775366596848488618513093798168253603187231882458714833704326704432494275828733663008976270411817377002499213717048926345486147689490038471256586629241148793284533900908786372828666376079449591205708064042645825949863409332274233397021528777601322354720978865815127498014586012450993111971722250422830146647605456525213675292242366906173368916403595554822672803107688709306823123989578166413690968803011414833687754124155024206243651576595433371021043441558439029859761444392795597614543743540721365673634993939939939814146828992360285930486718534480851050769200285409095859165536586381102722171273915135490619326659747787320983190969524007948032870578336371822186347275314027114228554543404466678016229368692821884959713541992711709297176909134663679678214036801006440699021187074800915041091687896069015000835666030732237732390153631271700774583676539879923641509320929232162676296978664602284703433878710386385258683238855467431446882226807067492024884972880828836489780965011950106443188548739119932390286559841367092745567453107041450870925001696882851357694442254931107348461179511118058033657321482801350925859831075773312531327638440097113067262762824813809405083745239841528497237242124872216772838450325350625786564156718548455759197692372702883477043692195345650930082917651649330104912033104685771406160382271067881485865168385145916808466308585756141030214635654795765699554872829796644129391664030170449869763292317586376296844276519806231612669914774502053581336671055054451868073603546143810714423611456236130109976005080000548234002502632032320449089316179680392574011731138820990686708552250991218813741793473289347111746908986120136393259732882907467422403374859338262844356543078418295297881423949606164660124049847231150077335339440136531722910012961741636195825833206269103143848947777558045480166261993123767282285076407546429371408985827251901637339433465000440142402664813451291332254887681239244785332050433219037273596837580208916894450296251882015215083435518409967487865728251775790035900912362142457806867510029518524491836751188757002385628847180348530995838370401834117378199013954126769066881709492351289909830057823051129654667927758496806452847722979232238049655863691053418700109826822558314023862564220841245093662334785178436809205623364934364331355652051149174038834881799656315415486233418719974632910770318036213834123012402648314386288160686409478032213497500782896188366408072893749228733258288436874223142509814001605438839735648714275833989840245606325543648498387627803683289899889623053834987687367879702691150456349159998960831855353471788880189941349584664318666899006487394183834528197944967713502737117560275501868438146217086072558248464504600213280999910704487622335124881729117106803213537190376753887783244530274868361174139357891325111476220178331499068773053307838005581358409399142935016809078782587069408576021863134937984850401502719254052570525895565594233271911542371744807454541929667739842251334498049750331703157891690839851588123769215292575759921187137960898167002937631585863840083888944487209141843662318357491365848297825691207229178905586133569513822202762378668117708149651371262223627648352125173813304006665783806569373645270064916989309928943238445714508052175200010346115211463626933700200186739241895389152072290196111823242676342695262455979599236736482613377173722495574327957510505629338582227364759959148463725467022232523036147508641199045151129554106867908825772041103757335127802527826990904011161726559039360738770086294849063494403504360844174796259531781233346393474934641746941713979839985244404615424707091207908996866073344856799023389165676285026936737346062119787069985891729245286459744202578989249345597673300438564483209792837039870396780956320426962033440013127498877868770843011087476403849183898550358945434772129131687755466258633170146142459552321002459702764644521002356736338886495494762178873792914222925319647151120693597956783236142741421283658800705311894366929505132697803688153862799541905577645827695571722560834583339395800706145678930474847650491967022403148380069469990168519330093762715277358730368107958001881060841903565104100326710416745342126456127401000023555415902015768338186829404575894435343374056497556348851369052771725634151630541939381358412678452916607338323202166390592591443711977392162234533808229670578069569365975139444120710672034154176317103494679255952508963344385862076378247327406837921962543551305727384941339601617419124660160134667055984474922951128793407616113166434783611323767040680059128663053687271021079378757344474805241226710546343669232921654836350344105934894599251227915459420115374112981334792075014974266685415813722922086330045513357485502718686252970954053450939717956849832816704398397199940702464015939013274124839551676671155747517232792200830684644114685479941765722228936717504892800523554360758359215618371102957301213815771017062711820714309574475555837391355661407048656105397679542337570889786345657380055753585516592161820910529065307067010284604985742628278304750267679183784986411326699221690447404127046831206972702558754437671331569677672387868421696636393666714334275089702510475637164238601528131914778483388030638079213233380811749742828304739745668755302431794315903813611971463020571691842090633817452906929221527668653917817520045468613908415233461151412788485825112479433767426913774285528789681103678749359040686156284006394920360421043803865476311068554026848876871129478786753068183955595910210524136667616448620060967665817524293227593535310390796089214873412038672130529115891529443337877764379480969045899507399376685449723803454685525969268438907273873583353336342840751975656217596571163674713319373005808105135224737147943856140798765175614032622338476168870876627434996928096427831948272839782912293858442880686487690899784390567275485675005324318180868294406539477636479994278016514866002826875162533969076610265836913963049545979400797292740916621321639264668034088252369811535844323427618399610770693055876112930348473467070002590200045621809672848548224126234735596198086407113504001348111685795700125872999819603109982549125559805156383909548350377435380442633888825831086975667201498388654911412044311374559802035069372014029711864442996225553900948364367419423933851089439681744875713173393896122349032865162161448692327678096785002232896041921688983516556991793648884535003675584577718124183617663228390088126695111795842280441276303286486369320135870514838798596504791245060722369893913523887478190243336474117583794116249262968797178322299729