3327629940439669981035357131764197859853897753751865391114290709595470860546911107647868287268217865841905597608473159078704636312807097647417255560468348702443633442207949774231288013993138401845166961838251479280579993743928534120214039286215263262646939793206337741669380917243508201180511144928095034126950201021240391416908818311734329450562797827979579451282466808744700089862550417452581827407382862870856112264900268341191930116303499110436827853688707991013653093915058631326685465265466732131533038892934603150786322095219462765645848309624602234534155091368832417347210670903457972482619502744578399367367703491749010960245693522459295976315490391497512071333679698196838477417657408616749107077997570317169924675436111122839638395337153046503157778981165038868492217511272688365153260773669409620482610878604119536513979920892941202299069580534196484477466750881100016074128637285632478054142353455062574338167630978883307632978584732276082855842731061825022971455773381567052325432614127414569137465622327560113374896548005018755327550316438776265929720331117749405447181958574177150183394079019664372478335853568586916323324381729976700395642400192734066595667564245274849099108381798447914671105723118017038967146981773240360933254056869755469058236550687670005511198163710726549104263031032693803629091063617637154467671830220592502608970743559905662756789838188359247221576476043219997880609534469182230987581913803581652606052070304392041232623972137307903210240679984008370668872612413734759827815226153120008279411784260242924556162584685402453531958083375721447606064504740103299107434007152912529970455565895705548059864065317215361818398878433238115521153984511792532320263687508161376675126295459791727186846753881558061681236216388107781457745890707876900621250160849085769349329107797769894901095993460405337357027793783283382872219259893528230010488706034322553489368711544556594464178611867215252124278734393740257129315047563776204077407881817639561175922209820237088767959622689796399520513536245122818870038018748600651015649252443321335236101971047148613648983216459983694792996701672946835267803791150539828409567851544160940220335499471221288963028534629651685225163395523310723587049905173706223563115557620988682683101572294551872427290298057326746803123689776919748767673416081771084442420021096972740081799867076411753765974562836845914900707359435701208755038622114614685411354834964830344206527999457099125519015499533964516315261061084645546096940336798429056163271635299899493437107940946562890063582562512865686370475021310317775032384570138776813326557689367860198556679557139561116985811507617573130185899855977666157218079836149268858733320187702534332225940966752535868987657900434666260357032285772670336137181647274310013332919276210924642707535976987211412430161264628999643140838560612956973199651551415739823679740946533852718863015599571948913007661047228115417066923018919310076271903724375072674076977909916634725108535143310828515306207970452963726331672665426057688375410717099723891157609305063801443414124197486692353383890181226578090519267927253581971080113770570631557350175434621720741119277230495231249782244427401613530264203827041920154697347509862988319702506699614174818669555844786666817576547065456312377952420096788436180997432074301107449459127061689779412720161281926971993690758726678941057186388986175444520402079863979787425223930475937977274261568537279701104242746443261687743697315396416930205859275344118588210840491094115691618153665513344429479578089659711636993445789222269127925981862025615060538560887809592181277579141657601568646327376695713561575631401658412155893552133480537101252418260575165410624072136857072324150107713265338835058733441774199100982218841625230114569636145056054385160333857968314288992508113641168291676473315833633984705160386105273910241725188577957473401112630021056238847695491138588709063076272805780550199213172952959366994184753718728650068263469395084402978250123098195922268107716256554379391601510103339140821547192530570630891801145150242496116479526580560650874390425664385922974633680756734273315882310913211774043118782219551130461563884051565876655877832056093249637032288876431029802017726041004717036913667879750061833548659020834436893570556562746190066979052506186434599146420030136734639989507151510525177271395068432321282007268211838566695192035268497607423355439395055674888415355025867293846775371939328279704217893512906574112306348165046567247609809567979210845761366923758519409455253174269735962565830682632588003321847810307653147216479628438870954736776532856578115188922709805378956600895553365983876056947475371932021686923412800406100858386589782850542994174115725810759307376561516815223644127718783613441097259830453728130911789151495604320313358721545636814820969439962993338201365839410992999832839038362293329903854944143037310224061380622623919403818121852975381410583755156096488290385673111253302687193803441361309967278404735093713194448575605602330270654153534944388245806376619637692017471965303137618256917870540852609796237640412347938626781877037016749414556780584357025203916627392343798477526961774394686248077201681539281888055484943577485116375528456644440988473730478099736289024788232221079342490299262991893272196319526450700730757956046473782324276922092075041747451008476719147739939146741825561771529290105879873787462554001189331260371869846124861016527745679895923019994607193205857531008988471882782243952373868512722610468647925150556784060921193365412277060585630219625618838274825053850908572593555127901729201816101192049209655267067140161243963073377308264781587301328543839246584315231610769490632587870795453984408570646596569818595575110509950807871521187168918475997048943934611874093709691549149843648931303490990270140305319294668452683933023140165205737766232188347740053368485005689366089207142816921358106707266292991821636827519645565235962691881063237819661536193617213472661767191872839093702073704152318494203391684684955152533948280030551990069527913439782187005018164253360212914368246555256767574009436458659186900655171858516916959595360388979045663749500291897847384322210214880155015144324009737279401433911037549053586986860688639782183387131046494093780749612591709138841056606105484568420779859873668864434145793140092060955943209195538953522937936233238822143062616511863167851575808680905311583234421847523681161930020661829143596670323791817911914980162177526193136506787578670068084391044663086736314061828825734164279645943527258665857740314721158112617079895761246011142524640451713421301977002704818071545590761104244432142423805712876336312523957401616968249711098722363526922662834420344225325207434897489655848381326848371801645125874730324253395979817907162784361745778194523021002792519897323498075885238640740020282261993343140739263037012114142468568992207280207500311523947284130939250988009769891043347176580683609797598574553658993700469428798668428275721087986267303256035901843670243452141777408833446036111588602947262339180963317011732880751056872006014111552354438716892097684895496918063398841613303503261750200801708048922194525875202378398388559364157476938416946174903841797733159997590432026743144539719482808898557690803578993347328267557337292952042400299634366183948682402708903253272245782391795653904174975290628842410750829385776193691120182077228393476404982601961183191408120960307948446707903011331471394491421126070641331732976123262702854077674748882956253866292573758265933407386582217603223480856682285526364923145905338676652320549101748230654145788546112344409310594328394809377131842087437479428861700181029842927226979616569456626645858732925758345217974919582246731504807473207838536027976191774934424261582265128721529138216619151678726053576449501425356027042200082688045680540693139831635955953222036595559628041935098684280603816476931994898091591369897858149797380589969868018155034810734703442400496383285190604086069530874024064702130640700119725779767169676056369424405516499067943660527132879812262714453450145511663387674555772053409744869320487816583048616821161046522564612304062367229811027231894041512753259595218109202926106511662947363212843753684986697248314619345677951227695093752587329880725382087200070589965214046934017645854684782730736368763366877532117585054228301037804240837680802660265697437631421846839508698855881351104968001286970830699575064299419906716945532515685543159589520410192886349601260724030098941992002280925885012094408507392492793921014503114313764614444693973275377838149580966328863232620947585369174132238971767080353357106632650074398285352060196431241815181288617436072278398031166348966085847691208535375278494129915613108878999742389807756268250812132019819794033023709325250232446657649629022325795638253276520196950922825167647111936264816935621623906422287908001737229822485557948580808509410593316298447002796555646507448407838458302003272938493153898748431387217527845149099304693468311550271033718333232163522978810965083186568491724930293581362468967386933883955358477726962109005734438716101646594377963274284868201083794869518045741179597073994103473969821626100317277084474984231528500672282324151850307796220483233200539861386572503382005053377707861858086633993222532037475145932017816580889212465779516031625836628277265286433010962665827311073800536155709100106373966797805186149864435345466104490070850469083979413958595205655762748784693080032327277797363839103982441750853096713493229513424822167342328727399748161122474867173818150022762747553666913409117508313316693967622099680020042892634065735031794004062175270459622039603116396806202519047083045359210631261841472724738446841386218371498683830003586430015253984812051820203314662306317942330711917109230561037268899694827909101812845891004820610670062862772954149638839311483451568744021317731604588510658004250035437669343513971822898709124227771448472724021204593363286709576721578851254485934371709370238901058943079427911448518556679479575470877729520675527382940997955592570353216373936664869959654204552688919557940506093089954474920199980945639680399797682030523542441535099068097966735038081346680733343349148845528022921165734707042476381276738630833940523994709946575793376140123528570960331335983563891505528970838825969092691957336497959847821713210110479574208958643627410582913935973930451356121494235384576979576869815941663702136664122729776353344949105476789355878040917652997491301959527563140945947603903752892087940796000195699460851126316614309388089099668514690803545106647675484483340201670761015535209067515954389400578644856319949945706302731782739604090621626520190830014182366327736899051614624707818326663296079658554716288669351183840279877732698070798555590618093120008771041858827783232303213525636404618793575353777017339781355096457236594030307008842721956456101825574077017818792974070626236429976483185976846034541603337089987525944441125839293454898596495248742297300983812258638487136661435754595583975290163912626392546122671120527046153444717356601223480603655360075320792537198311669729085622720362332685405237303376385947220256590758399923653091639223945971520505444436802202375297682189342302857300980200438957716934979109385025123244387183855459946856895308810244673382768313208983673203085010577815082813243032409720129730787578086268692006246229242125103851769496255555180803738950560956032972597143762753136931988074787074234059426601915608707615083881215610552212314975755516025414635106161483725212798240953594967478095243616147416241246596092739649173445159801525659219818091056073327933913066532564445255461068400204595902666812266882339536386407867467624215432120463417045796472218981312966178224665460949687908707948144862685151798893851542423117032518787392572351637892134456250402380010368603777566770225841992131233379130417164842864459649862085313327368185579855200165051259881223950779336212832958564699678700196173106737021217163532590370480097418081883015722085334371410429161979168560033341875302544587503601627573587811008539884333093454516364723505615568457981290645007734216567138685430229359313923607028785498267700823868799182552265134673509280273659439458603939443810261289316672626661431825869141277396327995267923076259735740867596238928554246653379252727713463196089835369025453388551232689998607691127120666994850983142142912771884697663353749737151466667934022582258684958832558795451145557816131099594388643413959173739410034134084522496738134052425367470993402865004788691197349876523523963149750138998108842720372734021445411434324145939101149423936070612766299603206117332374667274336602231192522133977105671309832503726946198312700421988128012362645339048980151103292115026253427061965854879999329631133859201908105680068067009963086472393593304872989786586482791448677926357744032901560208488632490192828502005296352373222185435454736597897327053390613932475920494144833565371600672066213715854269742009637898966173794175761297162473436116003620900318994113930177521242943216306448247759142160822047231663303047972658663889872176809076306600498763520808895003683690220891940827179160049550828288211200305487195111115070062981803933973512331843955462578866057340747199323507893349506493198823807616649990680914975624034916297968622512580572079631144536155842714965123281499352567010636221492898411739988824170882945578618807749823721603020119303951813603478351633794107118158543625996333179332612122843758503966565198505449701923118483344641297716667211182275687436860234354135792523742969538272868982427831411763047344297025201100342136287454768492921624255475410733362107573323615788214751203286613823681014376854786151382600372665023125663259727332560731869035648961527842824558815988175189743549791486668124915514331949814278148396053876378829263457449877781521226514241024050396141028897059172733258450866995600812692498405688004859946545106197467706547015916391396940561170816687241942543183312017073181273931666750015423765067874192319613879455556099375882569089210272559504059659596184441449360498644594000965925543087221158207162512012119611275574396512342158410722934905122770110861005311162234538928540718839815025657773007550353107188061953565121808208063099309127934130586009199010816226267179973486435045964966958680207924911250994408994381987745876578069195285625515054152837425072878897316988430936341635477985173952794482235339964137675364981287557996229862759172930477965093749539161147323330634682379978252106122237070403467935172069885106718041859899246030557753742353935740935924859552507383757083387962965457943898158996262061309196382927721001817606333639779799327510382583775545279543510599422284212561849393911865217266218536958215499338629716338065696449135967406339202283817613282826840437187821842060452124442634329473181974059365301613068231763610929117523459090152558371448819902914676022922047293121376167167459827529822026856269306913739485478220113316002628558250624573120942064405006368224049102660982987283633244870793107128385383681300673007485554874686525053422552620920779225612170822338771926299382369392863070163496373476105034271100386784700140778115825438955075114882262387464276769302108706327706023361007525202132452333965745348785895648268481727060356921566344933498314163335031177760927561954304136652996409617494486132237768171737926576547387735348672458265449131899453282055590468603420074998177023351657107253014467464853761563808063884509910356193588965012493299678038030175885134030541880100178082885992471994498452530651778676864454791890330185349404581348034579949139262270814765213358261718703716643870952428040486212483364736390687783035930089610959386759499568246649143241212308247913862819644209223548779000834526812193167587410875642642635197789998314173925902477642815425203103034541933434772436727369899109403958042495962116789515495415466851666815302623291143793244890475632223853015345460830164543690254486762063698144228234699058173511198394754679092816385291109551770519085453452644283712922888955016015561906161689961164452258859551117208825084081107542867652508719539321820338458102499254414386239261454487232143493418869398921948084522355670019351147186988173981334670238239275399008706613911145613736550588017028898460861086657920686634446258038984970178843636694368712438242030438556440804474901782026851054108953697778125616794097772888298193553321143605374873541839659478824256360731368746101384340297089404141224351235955084519548356207711944479503098607058003848568340534982833142002717618902869694748236429843044326188978255224799513265240654186795593429951421383610135200619389948291186329468829842463434473367286305038084866750097340887124843583096994381966076701899601096345754344873079776457536496605340816350848155023768512162832467558194279084697073825132325662317236753662032839121735968424666480065422735918930104700543010769765317591082985096476521823999866307056165454054791343536826703333148864419815384429872565135479794671022014642195083339843490469827039240615924522865740099135028822757828311764050525534448051933218990822909304367910364270363684583666967898334026163680617985444810407296020433059318479178712193244963666619925966704721593813237624991562554051731104363644968731120286542048121331768132629492615643397692414548725538701751012586816685927471244808678853955203995563155893928408276151457078367824230719112953780496541349186978391363375670959999653888796383223469797255350359214593462101524870850576111146167627973284437814999957569673290053750178512303793798444302731837212229181312792061915356620813535767785927296402593138891883137613492094714354514938818096319081420629191537088582363163804802955028037181890748984301681062257859662471551526324854012228454230196433699742384870271594349862872525885869008585503762196082360513101688698446997273583291528680991060929763352189448868020989978184176043388607651438230328225134641246684545200453387310242866221355914468998934372104139415147273874220020924451671085036541368656079181184629787995498153289144752770888250229919558474792706282459548373405406362209688859588724778516866407043363232128176958336288875516210557970292000606439168045506128283981000301461115031936486009928226337477514636149332971582575398931779431994518441748907154684487655508698050905079969685043592257808778573563171068036541990125906883630097305511315079168181772350623723464915156764670598676802875247593995510287644694561242539053812211762881545015472607860766057379555834998500047218994071686414369843243193298029829236494145572567891110430333216149789193751007797808951095317921900820206306175866762861403105396489409039757334900297438758387926876880765599999019853638467260847526502151051062948211158884869622372588794890185916122911308260407756635024033634257549689416466232995497901265790555423374920644834384185302882937489727229383867206724265454648486468190038415245818344989354102849669762614138720654043089499784750626997311293259764062902980355328017849968393269666967155281823624409306135561528115830459532904345286909466618430924069023213758386977913574428520937839261546475162854212754506599283200364011527713234400850510538869896207459131554094080131185071061691337350406916414427646244341510753489530221862215070795230391366715679692878100718798211340487158625695872783754523355599637353216785262531906469705364228053475053589842933570551087419225563168427301695043198207949971437744686426695190400330125013167931300943602222272306428020347031271366637859087328960872906610847984647333341184980977268930915713187921265474862969796580682154472264490938424611680249208424871098538631474946104129159992389498342116364768379891806796024973818120766133070969140820423920302214390914312319323316359651791913442544975217140581127093262463718062460081796844066775192339600516752851931526022609218542413564149425529672274545476331673920344397949817045590047780848131276605490482196646651429514338555126766704913688253396347880646258834404906375190530175953017643426977378005625679796292594368700398135045508176045765025461231371285799340167772359952408531769898367302328195431326566419696575312153395105759981548280259907548853182703388277332251286186831726035316744562305521640268951124737379943400630292357384289492876604508949912932277006434473750311771665556840177877511968334475553629284879886574326422356704359612540037916673015668893574909961125228910588989446336793184070293815617775564519242811220638757038600377933395219591714887653357217255958397929979050438204539261087582421213111017161081445471570328661883294405112311555192259392158337657097619850006515841871096920696495167053153715390577677270339979595301616997526574342079003091951581643242095743187384395694789848002436635200628367897366835829730973546167129065854690284877840938292809622538024583612109884977706997859003915473735045934322192891686697988425809404907349569759917676365218809740241975932907808566293824605580604701394585265122852134605264224695824373809422617921381817339799371709090043314107236327150130068248258263694104838461186290297012947774033544927874982601631433627304708163656443932193366509862602183999265809203512859509596756964364281872702054349290249824521957486563834049473302327319761866615271554958906237570201288475137654719215105739487518646584197863234255866349398040814573983669082418095739669573555012300676675926726299266113579071211288946438110740766478825733855073978511333417584232015698083581878630873214973496697166964323411384372794191530190916503046487525062232651705824816566970519272888112477558140621288876928956144065203969873836054941534430044440071377254548243648702245240695792929654119934398178392917986465757723134137576383122414112768244016330743591139452794116482216728461445895908953222644382514286123277756257042465730168420859562889665380094341814920762858704993959498498922013405582877648147433382132925127578137314188993737175498780203961774406924823197814353232253659727177770252562343789102437893776493270396552787165086220009387936363493058327033641374375313017753003418241955319557984526828693903344279374906961660112805664065499927854355941117129409975472911904699125610831544484482929120321790702374357402851390592515657736817144679429615855815166622305096700168001073658130747319550159730847758865220044129850815831804999664451974089591587668151342732698144242650500759415330464747917822356521682757699123270654446238464026284450129132569524079693540042661117129143309352869839193198465586209214554489666650569989725384904936381720797362419317290828329712441524693330582513242235167139484536906230298440874107614438376829510243373228205725587920768350302327754087808480938731808633773906682180871619603586767521898299967276263424495843419172362191088805431774224808150178404613821602255433855235150278118579862033358802297721346463275033029232668559778540684321759253565598855700678532591034219244501150045516684437797800232266716832836398056400170860984100872455649388284924931027126537524860335273191584988080892456108685629246555614102901981236946805378293949510920211310533137817354274578420412444585539842623368886233076117362720373268420867746360777389126308336752505681465092070819822462306972232701947447755836819065396094217597781536311895486493933632064713592745386566015754157411717199549724362018620205610462534353218181527829692612274321574010331250312095064235453995053554688814845155662085631920535881250131516132708916570773826405530543605319599481048115498038582637907549498437541452091805754928628472422276920076376556022424296134476704306413041606209451981505943623054795100260991836025285780042457837447473462556269797265370516309044782139494011091727355407137041510734673174383456291742455269311484842159698034653738973599531789264480459253628001809259213381308856891817179079269285116455686461151242060968994913424170738475681715922928818209652179142080549720313515496227192300324523688550692944484106826167199652011877936130589990682209028994295373067680739629697828821620049686093751824797657449221393307376075341434903778512445584914751358883936337614566700368750125250149533176948494075001977980516530584801495245742242439238280943992472522156721955109122051145544781044369032127747760076191646124329765779982666433541250324947479356923812088722186302345849596532124516724607925656880365224977290641224784486942620767299796515570702171629323586652481350002660630958021963321987126361462639693789681787120318031677814187056335394473285216120297979497193836366813132763376405202142951235972563877043481031652966161295883039327132481694859046652881470873716520878937423427093382529506987640627410253595204643895756454218280022148497928492772357903324252355560300102952229465255598914259806847868163386332857306208634615399186992220854149880501474836475384973206292706694755803297934562960280819180759225805134827374570699781790775708289702195823280340319488466036855835144636055199221170026639325808413886592002035142155828850341282660329530834359664246022166294551583546630075932357060286916362411875539536139375072101892438680768311275988926524744924168036102944171760662214698181607410031326744811887008567486546388491624298680878588345193758486236498828696774522467086462200934573466235802364511329965196290757094617208434996028024534263239048410130984473085897351878191096937951959397796385020207017226920616811850520259761891693326018180771956019034011190360703304223290496097091502612658728069591811960579379429781957839636685777973030968910989185868831490078775178275077166074551334584582460987805412228836382426984443789788568010243126865017715259538506353254289591278789550176139980526842370230468236192100813702854439677691737551270490572842138672639308572238455404551746969727990931888012957498953128724707406599677588774524319721603084824483341109077439961843004402885233568688686339326400810251530154511389258981824565546671825931392431456245437983547114307991030283429054608307751563903793896924367273734574249496797176456158585313787134569518298905551266125656034848205266185976531657369835438913843370088685238403140123777668953380389147771512936058326083978317446350138280583188021639927868502148251180139458351414417103064378103312425471316468810620936464284626868416548184075048041788106668255197851670178772586755675242167787462639746514872558016640857635482655620381779024835599585359897163735774951854248798757282172989253830325501925704680308625824859132275725928409967998850343728741079551143983979778554698970745952807921320618685431800797872367658350582553412966156226003230095830899044485782307929629953952536625630079648888570533438733087659212220294072930084338101510275107339359867150259783504765783303146182078784819888149515084324638346553422803782696557156599962807552995275654824579395045941231997286704260752100149644139353552271951488454775889853277203559887972020966443921907334055411399087299396930232423256662103233242961800494527870195851072406820027217366719596515190308558141243965701472332994403534390214339736206344677976317770219231774748378013480278910687618631719293020932280307199167938792974803206399527558368384077957245735056685647403349278685480205888384953527368602620498046077655584989232069829091131935642418066454478684567576780884448790596131689547903751429518952821881404573528218694847898684977055196653015837706191970739226931551127428002773492589563585189345457209000378618977923282891825371002013140912810502820110293821931133447549830881173285314696890913368023016104222640182542232233660472774384816071189444667990257304671010401108227161637327453183641753893014836552716558203521886061351652146791073629440703981598723898002782989251296276575734607986897075364280410047705278638337017814450879920935705222096920731513958046038131602124433036000262568363977880040252795108719835082828125804908933103714695679288470382973374168578950329887706643682970307723571477409497277832290498428100568605356305032825145284036847903873319949542735249767260855645922363268212596010997714709364967294520442691203393074455482878697059104363594834141686125313173979999326776169583742365996214512401434001628576941187677309850001245656818676371599257098974084209775357124862911947746544953474441987609185477571245990495733178276946965502259384973913586804632326022572898726224525874565938160872020309182804266854301804621708010051079259785461901092455636437543640675554101291490646109753518872830495816045185259870856117095289339920524043668556631353052681515417560974330196869095300668820361118215648768354353883840732869980802367244089414893188261447346426763488886738217536352497231974540998787450281034670929653840295395273919037231708790665959089619236527431254324294261866874835759312165280722242678865442936402443650188251576744620175468019253629637552600385748866303204130492356001362490075851481702215364699200447696794289438609831367827858893562232660603464357494277952841107331607768015540399726422707817650710587398853983865517887578334316465104099388674125803660594935572093503532309722312779828221889199459703944926157424307230318338283253658050666318849663605438366692068863930571466422783237063723929816100168304946214538244617010091712738669063684148073444246245426609566462730255152496910545188758704351634669184424026180799574355880954410338881284802972829264853948380424303522912209482419994398237379819162363583532773763192025753734741977236689866133553755330713287375108776653376621907441512840688199076641979631832577729913071891898462650523706064737639936126205141417460841548011875768480001626867613697752553730207156256329906667027802058431562277803535536102915795001845091228019472026646837407018193692725627565877532226967768587856139701568045809021628395153848562532688593173076238078583978834088257116433840464271020417291700525237880164211648850892622793845379158175696760545635998177452099005912472159203866466273928238248730088203123510256874277101925799808638951302438125643353555135115978873014357179634070325838440947825236662479442949981565400404297710486624579763761918459590929700849501969846212403258218201281366217413307939170505436257486513135976207000918078611237085736059556277087089886747971789253969914642340148137711519687602008990364598613527209450328099399289325785647099820765798697536555588166730430422499078848601357816722395439482722639414384419201873103757695978131183511963993071382657327914738846298385774171210586229010493287907845313720952901633545684912712496038301406707861115784176358608311142382053749961539947683544375499738934318205458452220675002552525428850780236172394462962228470012908986019627867303599811669761061860562435121951211192368235342528685828440535767876013937571724692185920084650338049342090273732950553651026050954889198116480685741007209814900489308210858827401611332324815853784505581473213484618840321816285645104251673021583378401582201776386712980392540887728876197275803585874803057146918706416243733181769150466270872752303938301720807822868496583759099482213386376168345195853139138087308647385991836445930354267166896761490090173718311446872689279946096195113485316461148407425310020630151500032788902842585126138192117368371550440625984496119029240077815070114277775115826828753851542059170698365887369942817293358664671731578156892897179908244101668832999815495784492392216637703687987968408077427656977541321680488274025922675330938792825093032959362855112656749518800319723919956242753929503555345477359740745369535938889235779317152026101747691294183016594435140443164238908127546847506949564518924348248051815499249944991353255780514310401941975979469604929498559981031236334931977847240190045944148271904398486270094013018612037954045585324941041552964726039725230798231736830996282765369342965945868941525624253529166000297881468262325987313765772382411100347163305994735012680818169289214920361951334835004085992820851254380476509093603002692884870005444581242252512922282471959960504962187402664856175422518514565961279019276762370812174926383979007919947613840831149541189577478279173835110103318273481438285003010494916936367294543687506016428568969552199918463832582194846693489435654545492776925244728497736679145699248526128653125064838406420980904856479344657163647498130129110696243277633359714463376499301461095312186521493840277817857994004646955507756041069851536336847301997457223827034919073706490121221966789171985376384665314436569665334252440988616083524967613589113649883872634332694190962310232696574962125569839348434676709969626123335992985819653121791797650362606296484976931353423592368495755374023510114249692952298037503040552904915440300505724527388683748938439073004164646109937706070974718725136543007628511292909997469231844408709571333552753742599423608048929886019375650925285127487292185073785612288281809312060780008506974546864693773604800989999850448992579048315676167256255230285075333247188756362198723247375883417741569334071381153588215804246910167000517746861219141621145737854555616491077209213386490064759105667316414134166494044141616637104935587901417066560085246800620114672362414210877985400191154266633979221643720428079188203720394691613787050192009918848221250620781169874884195097972794920082060177164643152661468637130138335453269624940117353226049053896441768731125146872195899805194739916789891415193313903883392876777355335486096438838116556834411157781339949683466388033716168383052195189058405033847218835763179398917923763277561282175742050090981673050387033262489054269279367435831879583900158154581519445289863950919210235140699750604223219515606537660174234110180503934985456019775883307828837897180679214825802481712494387067886943965358938287358608046843531136523168952880526386280965229442104410316594646285903090522577787138269829283911502802964212990603530512441842993283470902191262616677811996295514962962282408760327019219839481877174392532409442243274168116204011441694945980114542958879499990045105609298210764960847886886980401962991723799195279968646235375472762944213132650656511234772329596780202516882957609723100432391079190342030226087969280223552669678713916049648344362394750027084865257951826761198438913015714100725511704470590343134546017437410062233780730775199643245998740746070349422599019973398897761746443578410760661669998787454638272639471557624881771659495868686849897942714292370435475951729304393087369888015169607292375306745044880768670286157876103644218823201288145173888575196560092874195324139746025982501258357544064696019083696284444660495250666026637536905624078544594119186888452216817370787632081503411009945266847585563326525785037147032658343002658990543011614329132308233633809798742154326858772002925299579449323549071667534835028657604659582946843010863347850625386852801095680091078403199251790475656765324333531471890716995043509285728151515663843914504118479498960886948504898289740151009048845923527378767695560685886780575067420258135894450428017696754250002038842322778821722481166582583896770013291173246594601359618997675777106213648298768803864654421099700322786606473253639105657866736779958618366692966977542328902680675447373933139727481713613981949494221515938811569740001499684633055217701693849723834074043406812333114283568540924331836187768002414842209163256699873481168068310704025941376936923261488285016196598193220914516832081800312921581490823815276959267358389582741990983364891487404149088046211301409746225464205620528332053294345229941588908571524367563983427049034282083940003539296694946741655074383777887231161720225990065672010488176990117290312812828485696735552252263092024315507345915698244479706005308730291026627196011468438138669533562665238047758804747550427471737904538342017907382048181929002803357181493284022236155248158448774493632951353686292826632476353703067363409867597779443681226697903730081977737405450728941510211685784881654405041023927079100279758136301841346559841649560698563387927102347092977132198157014343145856180890197801121947748182597082791880809690802996661489739447727805986945925225981130004959721401009694197729228431432937809940041010520292124967111305085080195206259379691098809049558156166686311349208418209203169074781350992027958890620541967864343478568770475355317371467244678925872759706332863591647462830732220595465108385734809656839802134184731251189663144109793774987406979004123199513924903271670410008918421740791184584901069100111013856030009228776177384295316517802406517439317034763192634395085335987631672375852172445875373906505278336573059366510097535926677104038695000937588687441943601321725684184187945704549644004136319878387805699279634698199512244231070750310238201671580442777190207273304438258425574518895505625453793247062904452914793353816462732166862053509790270506998534818024601916277157274325024878259062523615242067795128630118944940102564088294063586349451255640660916315244651009743789814479446537279794269460335704695132186730568547063000044615085508717491557311118419523085694144026775921652864716679078647051463030623899185557115023887583739142215595403068770283671330603517839488939335213241608731702153947886789613244568728502782908393181850822156503476236515715654973159131346907245869511092567054460373417108932518470570836631178116467278071223171238221985093904540378176309727840762851460860315453361901983667734020177163295840177278466723507000118934354848955773529292652362484277703197093560822852018255593020891100909265358643944779239531610731722759385149434911945809060044226491420945898380474065962076498148381385874703851257853050790614443671269749024150835230300361715173200174176591685118249276457065485403911570739240164192737533172722014172255180297606880634942115416834059678697458146109604915467151656624493139944664635026673388544106545968863229782295952281145556111617593826805134629958062628239301161443133647019915712984808849955009313778489471053351832717603113155423271229334679853024895106411954372405338806782194673184835930468618142022601821388797271774811772697800171263391270098175657834194874991027367585695413078762271769168361107966525076384261488665571418529225977475113649798654112363116049636384806260140005427763175880754382772499413414066732140739704233511861702154560244459532412936288464545751107221676530881074703649093678789412579232210328898153162429398249497420751783673598805147177001051793868947305764644169877687782952239133974440805321209977656941275198586020111643864861637231359978826439541606092579732455590488270914968038648995869004664613530532029832797597183084551912376329622515885535243652107209436079032283861425940315525256199807701939316569054195648273893873643746788434340769224151440737092467146989414580513928173156965102926524576925086379287502298719001664111713211959888538867638639805217389710806894658434208162142764403374464144509452982709914281631979325839290246434705706125298486328812832966510081561274703652284175469655306315472699070436755172718774315046694853860814480007288166597191761246523614063164892708368178354478131402919325704085812720555993817057359281862360852125170770061867692521707933028331848926922109978121391095498321416308901112109021161370810753894524324546757759866903094060359702244699274040037637936443478459673133061565579232926660017852720133440597154077370047048823105119563623338846683687382274695106163525868653311679418646105726432785262137468636578442062535178446073297044907565400606960487332030469163553319950920527675308602648665921352348430493250791562827693295321566400550876955011394053372915172713869857442953183589927228735016393288023229637996998611485987627055857289153853542403542041703418094722737122476616071285366717617089263076214986583711257928799498424822443932590862097890769719551043298682831928138918084055911125454213506609512414222628220432087519869429481633055328240294592243129172110383699231056185535769071099201349619632848456010586594794615749710683868704415473123592064549410488875745187634046306603057909058945410029792197827598894694509304955958838157840699489948308349744330223038823882731626566401375719742146028317690763319059197779743968560392061137468474483160035422288328534648495232781097100753972814767232071505773983604789187368745568766927404893254632640377251717684376027516832205579507333414283610323075769999446407230582000371413721398287132872506654855883024407537356179357617383878367760211975601228264036765152088865886073544676593997673188397273752360714181831231998307147964330576548066259372561392116913356304069876491438785824146837163804211208857991869351876459266547068189974764840876063618644208005914801288662750456727682102012503083102078254399071830041242402700121329254683680874878992133313436568493952221308785675999230673230089475707837716274774697755178187134605499260898265635410928836540011550476565492966408500384049050216264920569865505356495800715837554956903889449975515105186670425811511890734732394904412189131723974064148622861252704923846028416822337109395521891383677289121703036756795257337565933761673854168734403038872539122598666042558432883286074337250409375080235088266595293726451502439037161660596246875148893944187191807074033758345959838232651361552359762138973468442266531777823058034348145491336663226493276581485910734384527194416165483041280881855384736555007614263677706884070519993648258020457714594273770731730095821723868549909426793876049159731814291045046988568955650675549720240354969557314110775843307370305330827773515036014698938666706240322000462976577047831707477002135446482779337131925095833543857391940228162985177677151415701531726748664862370138954096676729992577344820167181976476034617606854698081197915012750354825596272641540669450952237273656205823097242218253349572209675295787086711032867292249569526045524222994008284013237184137732384716016526355756089898311195334816527170805471089079900119653034786503593131240157048150115429908558807211345350164980092545535390281903047583699198197352816346464565879538898808627453744379916472959912702692454200574012914551857748029288534954002414605061247922834753606001502753214821945748921307768468529804226609704378270300186923886866289959820268085126134837215892521426419535343966589062794284537689230284729115773780059487931690623642124036514982987836629899852227430944595083282075738727703925779763123622050367841713484787354231543916122159843014353831577090155447159474369760296579737536542197813750297263283841814568222532223609728444773057248605427781013373346181668964689559002880982329653362428315884739730018116348203640883725213696660661572217037401590863394663330307554876589339588665904471714844500087645678537494084532613098548547311879732571980333594904768513255442415663861994354845211073408942294861147347873358879087437332651147261096883119907905659482648752489698276698598299864803077943282151079749599429315896103907226541649623673516457037748048871525790662029381036830505319106259829895197136239912973515435160143032552365999881188530083509614918263409098977196049048408469860787037036934743348252092939825894607311015480815740959243125715176918119667758222227241664235753454265131906729051885042466031387713227418191006184698934538767448861513422523132601494958725569356407749002316576626111093540575226901901243890562184384748706329929029243523570898337701682214106118043495853843676457515747268970784123609093461106967441267054033445816726062183879513749445958293884556163381668620994939434363642108814153320182282676629056420630412937360388607875437433085149291484210258128816359003401026945083505531443324960970311413018526977521775108695692724965377139836699766276136605988375902626609268235862586157745582173345006032856432791416180649956290891594789433603744452517413042122382750793164448894145987391504842017197514959848262861590651035247066818314298125401561526730264960652583913836376523676359376873848197499872419161439164102780074984733610961988132049559837844333806278274462375580445429213756037655582939276734779321243529232008657841868441929861096459372682447232319263356343552297135493648471612538964609954274987537892639800063960420326843242095885059939045442585617292526825404919812817461619171991154746387779760942788840868057263647386054020024303287373179995259088793106119649978705113003538537307727438303390170782082345299030702556496726843912120454084987968224863545130521744889388786573305882137750712997375304172830270859063738810119846487805198215290207581463474369007788307129758879527764001438348117047769634522574250751905739551256032906458616131217307971836052655955601572286407148936029735001596167314532283098892495468978028644376830158468347597034921724698136729835781516366079562645015829401484952114851458415670272764615864260571056102043611739905477963389347553263578939012903551357686621486813161054966266622857626399437118535640147764436622385914968670524088102879213975114615102079022421331528550948469831452659651904037290155140096980125391266457861681606111110818931560696342028186257968080062965012172706909727452159057164360961278459140022778093009716252259376221136239517327727609324540588110334058009742514284117672720542675081882866028546068735908052220828017204917761368141731537769852754585076743870794868012798774049408905679967937423225405372887727528185172875618940591039317180942760378565127922071284115924919185122079681383681719220713204123745043901140508689502684915437701306607811872731792051452995775916687369546720999195241531018610278004959631621641165219320281218119614587740904021653585613845657618076841842244309768229603179930747422616831372348271141569452527379540234362607424648704759902730695718255415168622502978978242311892617158774537897184981716057136307123091555244953442523228932572385785830464850104467780674931270749233379865885321100167561688752686913909487029230246093161937206808298246948971996695911115935525345169864761951521022233837389924431418894080132345579952690692146388177576599824371277547606920559466223882764202339183844436592438150438715236479488763217977111926070842476013052939250047759852550645992593909192128133909994150214703963364384696400800790215236617014340888247898878958979593264066401589303192980885682631058564105254194514813801469633849695105731151603084374511585869738259822037298506044596644221105030912225945805409969523046167660761984589169610606669064680357323511070986857928685682050095738190397386971774632191497406089808837666263430904224363014713603596362989332423845281693165435895421720664906291820099306850439982165121522252444443473169102100416939192328572017365781602812954658668800757059796264324516812277133923009805774490833385076294917300710791278617701149647377778509680659777648419533508235902753711786764438270234584417907283555634301844671794153504394123579042483567035115631981321833281195443700503025688787819003322431076446407809468246928938260414622267817508445269962755572623185302183943798224110386833005413054262556936758279307991301943358775031724300137068867908193438305908081512625332219919729062902493201463626269581482464371561801231478740476325563719246402693726964748886428975256270821180462059533412064852387015097206252558501852158634873574184914540796547732057811398656065456900080645319514205334209916452052151115757609039563093084620836152374849609502469868167530614239466851721772028904811574636060906692774942145045437695058655756315692187302807450219725690166708267586227407153274247706822492228076708449265582017788370510842659329274291750061849676738713089022049569644641735702476358656568763719674149222792030775531297073355312737659938142119773893501936477751427310225546513893253357994770812554587131783173498824513091072328886590778196446328770179287529418067045954608230118126145907848755460066426249361183798298073958594500143878804922292121029324274724848126916408628840043976303776151074665305278062166554184561177284750281709615821586995351569298663791962823416564264709956885652031128411752419935315301990565768981733819150144776206406453029828091382208312780411161716019001811040370102381423539610322323514728756867006249593564606849191563448025835450309656116800710977221124717252392258969550631729441664035761090225112177141213268334738314414446058365189200537360844685127572277014622543607333428896409167395106668912382026369248999916645165732623852154890725614605270887460623018234624606268629246334071133435268720190817680514148655768102638501620702461422947702288109372223395365602755049829058968905128457093664849354237242049939442398098464949984417141355348393523433289774663004728963598427780123542420987288660556906749427540995147135854620776467042984649638143966451923991637332531005978892189834926316579313566666164953271154656398946877223980607092320435801530324912644033193893135179769823855357521024444824147755721713009634497509043536940626299360770734274934948392987059779616793877395788172001200916983855425712441020838149369360059334977458603805899613549586581424912668429800399250605553112364856112965846885810971437849085561273469054642134121364059957514631088984448752164391706701553926124923477342559989060640895198801304641475721620627691771290181221685833306578630309577607715847916599930587341481439299971556258907901950695743997817804069784585375460420904393085776172041509036582625725255664131759064114028676948411047603017293199511013881476327431192503323643504606084122765508728979302676926497095408784235107905936193896435234785654187698398981591971524048526192500360109097256444596001864583833870990890525269619320506964248636625605667293165197158844379242805376843662088608413208736650930578162429728588329750533109292350176429491250083068021441361697614266106321430746648882019278940476097620873847412301603531435472181854831216068298369612755303511707180312919749675546722352714994603745046920888432115351632121582957461153242096308844007319577773520645060369900794195827874552905979585612602681000693371826027525483944205464574633060143756518056350871428875249546651936587393029117259036661625281374033872275197813726493655174312825103431040832114863128736178350971214328302513099411385992737725947379210462771713941431714597081719730787964135439683855304013285158227923437080058334964366784200123825279978073906303839408838941224841748645936666950891784679791286351215819576271260439996876094730862453301928154208197775385859835070410613529049858636174759643140291352615519595368985451315730759995256717767204102647789352338227853435212042452626405330663496272515146340586858599032098448165327931666724400259152462316123665369535117658673598845176799056693546157912770130025532211127886141867668846950053506837059738453539395189885880141824639603458812741360348837951034507568814795970106131925610814374121913482089090704806467459986499690939138147218608245991889539498581405229041901836325414477316164315947851942125768210667499016558042738922135612434400240152717512895687991552706257272287568210499067857913294919636865611442592599375076495886740436998042391641578085625203988922611516755910068966439069458350511763348849956743496393348173225302736521516191441181525342765395578220382092146264316850137767224157285585700326868553667334066471100759229262958703160904310068278254287203408389706896227223151087405125576314294873596329634842583006654395724201661293257641900300976405987408664793019883083014111752350190957436748727125437949125360470476219993766479022717730276213350981870247894897079752779400736824012146836216014999176116199872374588271802404994801423132129457816733923273663144296510732778569133435853229534964516599876622646099674996950446808468345018272981849249944089679525369961899187362296190699566418054041130149875005724883749491396700913928815426908396770710849429511914706358949788465536521573425616197722517495332886448695938409119881143892425614258127611461482371586875018589915827599645893120289966468326227800560534013426554541198920653434490443954307962417536329494838288333629159955297950693642126954887150076061681387456710023628116922939545704843589260363636447130434398969454712639765139883507641170076912393657534147025485250367365066205661424839532181706733579086716282425808862170251825183191762390632123009216342424943252439768831054455377001253748073326293077282627264965090465273615335642470643369866465502120482016581838993330226972423735884096655748637961093680933206895295950434298094293562655986665294780834363173592959224723389819397471807215574870792274603594434281472194752140129356817177510949186405871195118053734541203308327967555765277182466911041482215911767333960679825517622770092594770414701868751302065342342601079120600786661702018542787947155177137206972143354108486181806313137858445760095416354963043785198874629295205856481978282651170068431451071556204392111477694790643798896052672102423571231711775045934639906227460828052123290805308872862484231313119321751831372259535784217449850793878951199314368946378112008078355250469301838622360181481299035550697638712585811839078207100666736499360529000294292012823880453102039181092111530841024302358669972881080202455439641082318285182461579609845489354562894722240587645505599138174530810282416565320880440363270633625644995652285273218354672736108673162637956473805630198472082959266439234871251725834672880086003656689067283465949407686794495761429435154400095945704384723290342385801341451955526055437857891120610855090186748343886662442655627712211320994738127883028394957638850092182566478157560409995758643653961228875691348498398864629094381513390969004944873660032932470531961957968462840206210503751804990196993739024045776727192283772892481855857262749422132460748027265451937754938971294431515317144789872648041949068511772204028596584849654858755507774905317167815200266651426087755246787404196716833498541259025540228069488160844294049274277731753550509325400829334251679352528983034976516609532958126051303191595992554215168464286882922332482082337768375212740328620954103401635411349871045087949035455795969400535423537035839832387867453394458090354067651535873650305745180090126532398451938394335909427527639283512368552482915405358110874803155491256595786237873684771251577027152802371004881150637753901613439629967077456671634410700972215287273970726384558099079067399817635022105734299098996902731622385888109683002001901502775838176755675544854055255306583177984660227772157652188718477794583949061848063739057829776445804199106281188561466249216861441961971500618564611336357044198395583633704551022166792597017846495768139695797014793952753448197664577446016828298594860214024890248092794376296155532564067456571370640087717323977233630375023160125234916748146869223361864180203827328992817503526853040458588860602492783434886472777713661458518768036479858505882554811967818795598246122082561826308405186055515339052250517609330270799495956590595711873633676694763603208967917599686940307077444815145032833582451055196994638020545148332781037142752341704617761285129397401215580725896367034163775615465586035107687214027433711372818376079699468290692346727954146083681650597416475610392088402100569724884536174645675984734044001074553016624099667155638033543741207508270770746461024938282657878538365433517154366859687953731595431075326142578254113918381530073271714438796611033325263417514842014568437099202645161402154648950407250050980244751801027592387438153268257271757937140899038881697913839566741435249239243021290982375232907150675609533936065064292815105810888449302796492008437619230811800744684863503703656428342423613698067553904274640383228461723092998653943371836964287024106415705661965302586182601314734475056612709249598116476518981439034695966891851662209960769802716275772452547603924821997988169887364610864534927419519307124112849310397851253095057998701122406337477153388688294983754876017751508224553411240639015492004870920852318650874947849498798185288373604460448842637576446264883710170527662446619476011747236507515677333588150197709873607257019577311769684693474362722448240107939015973333780126398543468488172173670004382495124088325163081299666667105445967466398815223352318975795330826663292184606042273171650283376033363681052757984392467495832536973231446622310850096746339683370603847519751747756431164033361321706557533717492035252655991034204860614085734038663929428632053549600009682096962255207170375730690701760979665991411138266830809970057044011600752975892476466454559264765836911209788936682237693629096689280401480284942166836298108767795746984902306613207926737613382966565056386947377070744415844041797202931536364171156507182586766496789942679087292952660819595145724718985993612807174166115629201673471970332623431857469932852020468665798951394470216219405707844610289184213761792313363944629090018026458825994136562957320239341244989761251774321617359483317531920907033100643704440488720584787877570891855236771729502651039716464543739262830902962228331202859213687504897898184417240471666587955716196885703145979017173832637209828417087302909901629902265986878710518358558549601501828316003985937763628572433593775517218606190976338286530899267728540401020018741670224203129802766707819921796963085405728719985665347249319915224764347118017673208922964955488954499100012779099892188583131927466377479656566556765523936138875512250115871527293755159762649291426547135387017382908884058078121776589028829568858636041949861038697500382349135098703807894997757517556880703203174564244633419271026615785116434980415889231158350022590102856244396874898913749842001122308033462159639421895880081193434237583799752704884462460680023447105585451721109645992060062407127785231304525489079385381632445223856997449997995823462635970402888587221120910503950113711752040899512734825986371382753939134213275459831430067196471865888210638183067211227047684871360182255063470202334038807385511539765361719730973487267095547601687113385369366604330040695366434246685112048619142256226862415930599100315286191416149725076669728649770208818959674547054721794668536656547333300755461943113570333099643487717893439534945292235645500948629318652606090620954518079064827868734995504677763115022939311008971371831399065387889182014225012140223453469908797615917449941265298544981881751422014868863989419373761859924177389765641930981818185370373780529406960164153334253790728106158198795801227651186456538348064973742333556222330085649473380777152485731354697695269117545523338677251497856616132153808460803671496546221882506712102959930307446190723912162844055340344375029749812103320614129653797225727701783994337308711686065788261041119519053783665734430019836930152014010399755238772873867460576888389328294727605883269915063651580412332815585163490381988253302453687969427934373311519335775910388075927621059490541585053554683491083855061900065213729084543992091486982173189601083991446845045183881199417477586975129704218837116336277025883471993964395278099622350153631078278564094522321394629735008116033890390752084123696560060982686076005081289702161728735823092799300909037018225497260753162331361462366167999548275340667990137374500127927871798333490190203931381404296983153986326345365768807048467066372670213947484960840545392198725092123418257653748793332551334934146598424299664444777922166659074733585904960315782485701467374748196686073114683932412659496860779348056367835139370646585172140184980627310923961926684192416434933996627720116219878397539282775074637310321053040979633651829336890631674789093181154410603546126290358836736154360812872236849578504397071686123205492616301358209648345504127547087359999024955819754204727471280916815828313895861291774412640731423015846236813942110562836810053354848471053447769725909580696921316263378713489452942901060653894410857728076012216407604679059400596268166777099740401878874825874500317094894768719807795177655115157956336813684674344961737248863558292873242619154540713448224580400698923294209664736070903351492462364683104161535143233578728975201779180597741266589837719616137214222382056183831825506577281912444782988506880063523271000102346814103964553660912340441461695387898184640906908232377423583121800729284285885709037789138450640713631159648218112990804759713894168273248069981271261737719098514342766673672790927101872782633177354012370659642352449728981299035536774730794030374356145375289732410894874377405940655182710684935914301749580074139658829988381873214489337345759715697696524612043582425250835716276045798269563822164790773255973687166082039422639108185500008467183882186128392203111671782628336724933546386606918085263426360932425870418088770689115558295288421909050868746705726372191629562663569645510190672300510682638805251126778797765095047115379269785997564333110619124835473309387876522056377439352835383723651348091397934787712906545817273307217447131519380681235716543884515359073125064122246728382760121756753076672085309972710987909175841258815123654642923922622639114239020632008462755157329682604038940004204151327932675643904307191201632047289973241705195536255476539743561569883053563127742399943827284330319624081393178307302785413956088940359598905836676945496881480374410379279853510104754332581629161109036911263384759293551613620730743335561890375295540712175159223666112302339958412593701216149405116446689575427676047179893743255900668525167935539357236500936426483346962755219244977528622374923358945210832757254016979106608044838360443629444855543454125929312259293665600185640086498990932257187453014123697796345144238453272917328730100870414029553309726917640423534621662175021451333925780732195557724031644789822215894877087643325829994463345677256634333198430013012458793361086750184503357359761907887224322008026477802648514715404126569869672319100364226798338751408394362604514651173852685561611451988248609175282568737383455690899613484492910277140889234794774646094533735862576655678158536090609063437913171846414220073673743749093885203398039551569837101576585874494733537492649532353401169646186569913662937981226567684648357913915382585374496153911385211013414943201738188803105233865066308802133307125906226740126633364155478709411012744328341004331757204184036248412945889980424690320748242866717002580589521991924098922109770470739787740849041441333544522570644513397372386420654018560828892354693421659201277679536619408734193446601522759426489051991874384638298441616569217212312599038491320265437083015846188338331180322449982691002587295038862980923267156426526874604107084273375691417069621319779280988315643213355161033264241260258099664985321837930256781907923732708207739812606732310500293577847777440432603376517567697054739516361405675902663420289995378320966007575166322774893883320253249959716223966143632010343468793689660383770394767079113450220698554593861801378175096431454413379828215305543351950503759201538421343983447872078029404424688530665964309096393206257600068911988584015925664095710480487389487336848341807317988937075814762596170014105836635528236827203452070072592176749292116798418754062070339547121140352931873749255462495440162377403606793168083539888423449777417778357773572935823776010087739507343110468761244621233332115066800112269035260632755199300907597509825728255218494003943034883644527000925547397897192505084459902612604169998678498649258703793954215731621598438393228098367663185659821981824654976876712579897463346544626092490078759907996732067721183882032149915816605279586268476755069273264756416944903639476142759687004489121726216579527241517485186635647720442100052777939777395959413295330550556834537414244840792121655710766350714565080464444656812483469105186632231288722197889028364385803567881909782001789692529067557903682783661962030009262168924614083362628824028039065381273644153489642424926730646174302766171529484636029703877495925192819961910373986967344093686206488485676604002709433843202932571419987548948229262556877070338570568222127049966121819626769516573495607402408011203176742794451791262913153065285602287556091171397598814211749309627383983100330199070492576506569208606926950969967017274924671501361064659756652354071574032183320526991977532878286433836155498451041238082379197731125831380225330454263490419283306980029141775720157496547566907505607522790272387037781438128888359101481408647340019263076965700711969000864508610537945531001183279279266626587641335898999107434352378940509363407096896806540075303108268295545345934514269277808128954873338963466927444372062875670168492398645237072409715993561677427656510144842093064664910177829595246351845044351817218226018977502138222827362454176009601408259473305588324660087788658709624572802461293750768537392172145592783029258523699442182490604264443756771523882837155395466883337613280333622905721261807586829681909943215406088115295044736694895780111762360281711316789359839318339505732861942173842788762604447497061358452660045323100470814563360495230507501134554591573039466406030180841064419979126430476127821840825031483470393046093706489573566069207555594899598968517474731337368013672152002899750597071104831742009325526816791740558669152227538570133715384469524380306539392140253634163519471810941604533858884147654916953045049100653039927342108609395699204224290694586320641411341811832254773733291834999030264455539764232516835029518422459994448425849100794396258191336226671513007918097427142951195718385437848649448190905101210881620274068822777696786396428507770797194077354024602232985836503583303701537939399623921414165423863134287081921984286327834387763186515314516605023766540089756074735377728498091478032131107714188715488337137374187491601382891672221054777414932772843071251328641757124976369637821229354487351426149637374238020242177626351504228281928342155279497250885046468296489323649167106931910514161990639571935942652245337399805004168125228812078393936776656267774586118900217156440117782409177536247038160875510522200540558211836649456433095058279333489210493057003657056662599423862793843248059324030706955908385564948263169001405485170661509056550477794794845383991967127023779816596065559098488585397100587469128725281291039988428239287923936809337556669668400334252054448029952718375331282215641956490202108479316850078390965050690721941899721406513453449055125198392571454604256601946951463073802160305776202862067652708106497603734201921218414279450361010771145675778990742260115242353331446904581481465781703228553886931631090238384853023355101590193257456479318894106532153202211646392939870750170824030350672737366560557623630722226261329603330996041704078150373900143103436535130311728634662962087397641295819940022985352559857587341470961856969258883148034892627774761957653578357772585964227904481576332699425192351957480180528686310579522142488573212330382251983931993108446294615859897112211605704124968587959534413225556617198500997846541494946368824586305256255040695745149876759117857473009603763238852839505427102940350310796120906180130783494798734766735447448066080158508978841228891446281097705721671568343465255499128328098670738984819166791341263196905862946734226133712947173582182679964548060784055359066415724091987342248216622157163815387787985720944866538754560941480268956528523000753538095089238354159812774084050313213721755581006988156664060001433715990449559247163729236246490771260315270105912295218843492569696627255275867096618493842098058620446973560269821770055364170933088786132158141229325851278372681559162387292424357932060998266322238577307549985678985084811543777624354119117685573082573628095758294705616474922331588840650225145515187824317540708583658671296748256949470225305254610488607371107801758871411037499447218946156947012999131234084939760554170864575765779803302705671737155231698275853833174444912185900434694521006480707242644953453596966418529168248963137523978328924676528545360256670333721654457924586430077093750794177233689371839483580280556636143877145183266205563681647310925313037645961692158417681322425056369024521790916768427669901407143146509678769345188854745996600024674632408342951737211701462474941405646580885059780960007254759899463122100716694781891526091981838240551633302870950013722911104938084158488766852864136438648032931456204071756943367000874788972027748256321026362063140518415628492217850053699805210272013685424756541547816807428446658016569034689843535115858702478279926820398273626148734514851678661254383101473198961322808076932068596817064474270413794591185492242933630178605647016476684234458651025042903477179826484908354229421935225572290172721221157579411615137784914031214346552200252313827605197590722166811042068209692352962622794910692896103933892138325697876367436616327611001314157626304041784445188940050182698360091405583928546431446455714550550601159551316950194840312867823994019965197892812396428604497896207203823502893033775545095774304134416867156550837382981469990303854531347093076815003150149180476939164864172853354770785703751444361857264440885252221791176311858933760214292718040229436077253046412444963245059071015722558862404748134459064962164736082868119594308854750256473857555842754603144930316331089374130624990361775179100844043980494466966902170797617792197485535072679279587556218087206955518116483310369024746545365961512333972303440342826481918514666999296537871806189737938780156845775428215396005989772640666240827370191731431030907162129854836663683866900114104911234119502268637913604715136527741152013339293994355827340902777893104438458857383866500500888567987331186962791088748809887644432176294991161279153933822687021248978377484612527921213572275309297034883244507390422779907448468172550885335164217484484139075882148136679286717456894318215804018932509528299934623164986476988871021084803707269685174721410297400508988368085053561033275205946006895732531146502606033654258858548012376490140301914370795681536447675224338379460908988546609343111643176903950041839694264299500764072772168272356226752271131208716983200028353086651878092123004693023136961370945033933145545915217631227455450053456771326917449212344180735741086663796488132054298707771355454120409148951267696567244379925337388392288304073720454992984427266005224055562935970460659001827437059465922215713850916826919762568505107328900395386069660647993754265007998927466162039193983268795295085877624330543563852288057577175653425859813260655873788546263829262857749176132719198043679951888064838745469640650454812718906812295170617571646682174345135816046653725473647316533068582064778334716354728450113510379686053897278804377222234596633591297586303293631353677136700069289947578998361406774588258264292186844744570711398846662589909228813387744815954839505854844767558986661042648121082667042529285073730844109922130396191443371888251245756758962901611756193271107331917582479679841927536964084717909667915983968060714301719281081958759247634440412952033062160366131165929363405600804210527563276392884811152612703234287043361090388860976148318731260964390509537413401115957830057043483533486237687799395078183898146499738461129909938446355634548197071917020020914868593066411230047138941044145532482889520654768581476581995559897085938094470328566114214879759567050960317349195707239627602559254341472116126706530492252417333878016237940521274223549890534921823457242204432854119199152555737183808039572758279288104469933751131945802088816834755191195460574679269467358932407916025672620098914960796589729511124781054153955351420079051003226605800226611257309416422623945616197129891027767619351514818480090713692895561332267419801749758720199379936069295037927002977850869807890497326920622332530226302293072022755458411754008130761990398500886321272358868672649748778638617259487713599456621695573336208934972744094930602762319653273177564838238631692978100065492809566940874647817004814921471751718312390764545346737220477543714555895871326951534357305159421976565142285971024550290706758856512127455942045490520501177062613936671265479929071131248955227510287313851853760874009994416178197838214300776864264154505213033716648088056633150575925557950332997895790364780737330995691725024704274311789763597686256328820391818340429405754422147870662702894728771611197649863641708989178541419680700564450825095894811765817776856803358441940539920097679457032723059993088032024033800745459721036026324238431835125290846819922624367780633717339859943624517780216995958339063059953215767446477167663597504809705036603458095812678928688069030543203648558030298191969775778732063437383286216026112099576440757090838157879471083393240985961760743658446393592921256345941017192558492031481674809444038130959205045348497554045999393217212232747372111877371970810142863197371108310407145232324448635044881991723864588111444898761265643843025302760671816295061298863247550080366334515135742871758173928936063706157761236523609516808602308679394161385938308250930700031808837244483977717643637618711801785519957245927781155916797888056507502337930608823325995783598149990233026087969301891470729643643666978677364394584622604669933390097954691121679142313779773012011707266489547562793071049340651832559297152808077484698533698871037957772962760519978832201199393099866052339481388262593702632941828533877715853780039309673877959713190872457736739670637924610692011008244017691669623425997966268368292694463529582835324020747574403663109561520703345758822580920396617664716897121707690858851881553319791470193373133118903192347689558705725162475887688097222090956726299705052630308108921130225997627508004268309229012135167757519369279696536458450773280065716653670640293848784751180196768333691655685060949324533552229063423599167764758690144499722738070330256923398258262612694867665799824517856782509770940426192772655106892561811799894836456723099519208564646816805288834517827778708554029701381800794246938616486342854725863054023448141903551286471954430745248593407608953172729814368332957816167927713030203295721565861542268951623936056486958115691746062867039333948687282193652827424611414457742600339548914207040412564009773034077022924344149290456957824228735548730175690510665350033566339984758875444596552087091347980979355142786236882180980024812900845359638352040259248350741032026652625560764780715540514728930506769225391779840394356829712862449362891078952982427119080367611548738936731030373094093030891056829723306519647946446759738843526409839590454259994579543438891531425374420945835392357691570634776214756750344873108878926089456188564139273651061858750359295914860283200676773868734879709390777705036194862258122500480310487158761480877092904255203245283009975023101910100636157581010310218820240332342405121879971903934816830964108449051238236327620002796883203148053277090723495596775454784099904322032104543103771317795205295728931151606016494526205825444916710925085796435898428900445946527510129608342931773574619103866528631501436629896153515426803566320480634397277992343996676923666615788218935635860259817510986548026957741314801836818570568223025621496538018101883641697429822394544197909810098363422275158497951361161043043989232550076826611847954168573872706952060652213308194510468845125721928983115545365726873658270842944843164719245717404860697672976450776247172744494971040718905541628252079244794182386368158713886701018043412931260906712594972543744649990194311301073332720084459914813933364405602936219227763755146539876326896180702634401877391045022655344953024297738816555660163439063468861290064846501068084338334680467587683078628835643186910478525383042340112006560889581628471909303648660960517606654726664765606060937923084744300872439916487183287979287762102280434426074783101809827693813142295737345723044235117977359773992565290772187600122920756633032288818895113984996298264838131460342131652041441160987471295431565779945159294311410257386830986564559075004446697612351034033790155153663118777438773877381750775381658069846580467755583668746374440246231880936601150526490028572507221310303063189231871983831081814945985282601624812901384593684089688106476549020321469919287795653574122876789822968860889558124471994181860742049936914860783121321739915090394387988475453866908182074684714142931879424800501329627095566981274362205696747889841551007795823350681150724412407553763443025461420635617169409165532986289835087041503329360386830128757641149953114446383311094006982756861866277711459781891302090275862948576348583552641771981908585789646371129485649717915016965543418155268216771753554156753208650475001933600786131547223544309447958141402470194249971236666611406210451609728243140363930501741373429580462286500637931981166304646505551770431594297396503243607368823001144204724564225549819646428739844374847394716261142116859732617054548277659276390611207170442147502320185113753825045762706011861004123634010392897473653354531642054427829968258995360696140314520962754651576375811971596538080087263738886514005293452106914013739112990542052582827148739231515426725880086334517331115139280733405093092735187921132755684767008608017280809501725991450926737598300128219270342931086078741501341354285202246439548245029270404540978599723476420255757785725180288038910357990025591379842461599393194120920922582619604941090020340862954957205477437931131134278264550956776323077760984008526442808903571204601488476986749384664464821042402651509197872810277623015210461726976895682863881553964486532614202991459746124279665114768020450749895879482919986598975878823998987475423615603353150748521811710557009461931367683757600792973929729776860006765140901981278571543511297297974488578777894752806258378108996335293160850325515231169089878512031358333476937450677575562414628853697034627373340198654996358144503207679407741851716215851776127548215255039124396017602779491146967493996909348949700987926130737576876567491295266264056770843501288844583713349976372049124484513307866238562559197492315854315656432156912268288928169754186751305510211538366159976841360035165627749993839555452147274277893466241130523479924238066494273620244368410867769193000649077439564991743820596516916981898641697187261653613365966555644518777596213488849176763429993445213062794132916934601943842287718014294707999692153248632850531443972342132092207632496681745989286510823123354118357926190689617269342765090502348140750729780417442618127288512336401584453404249411233062814057697856391641166008121537719114984779308462688389102265036958356824754591869798618934448134079652037587673553314218752676174140353002879234576098973131849253299590887700267967754177262188517476455235351058724242968287048796442965491606489903100929623503147334984144893794104107160410834578077482962341751161978920914472379028224558633850048831832389527430262718672057051945139468410264280561328524330434047093835951380336578420854907311111504000139172829772768258990102252752876794977944120045945955171447625304792497910914509104611856529059539788570571032942314509252167021909856804008302544994910137930030925606117947201701293216000013015676397082812082202533234245646214843652943142472625059473048769254620814229466639234182487263298650642164011774607116465191511386450677178256716538185694846985531608415240912566484044438127680850692216308665213718161984652637796918649406037309216314779042722424388239833673695226704609982124553486470837206729490960959172638986533517337010960966062970143932696957781583580587283471595999158754523771030198816164214813729504957235448558349056588969332292798422066922756761319216249478747699896588754320462493018065939709798347212755802041453269753723793537359535115320576892877159528881617671183726783372550365227106277034153526194431686713245056683486901253863316485157471086655093784810297628376882530748403913381772802564492080234218159540888965246492942140274605420375453259874424718933050421963000546971958300782586882934131432596194280110289447136320833086246955384395424379182825809107832528056586038566484767247168941103019668361228876343067884689809200176903136913557854643102092912030721144736091877241652861153366439543916625803538703989195432175030432194775028809207217860088681634944411914804735556233231190363857299391872355800524858067004480209148336561041193579485296644665680413179273393751699218872349808950267184524899068989877001091887803522085475471260157867066255935398506054591718733520226941435065925631090262145598520125379976479032132168473022875997534422160063377593440743031621384836143159587247581666079132270663378693642466225491099912240216643413787034657297407308623654219651939743218938779419372637159024118192413317284136163337042945466376617049768281897220935239785413084889866684774506690113191633941430416075553003772794104277672715866474939230607987397724581863349086589413573361001783241328752661310362620057157336650892678945177213475571297020696776943847365096444092111814984652356631468977611010232424922388513286423220092193226578960199951279922345354574997654540550556683686910556913403168512678634202661262317918359665427785558988245371513314240107749418973871696123385626140160935887784062221844273745359376469958726233456530068332878805452447220943389042149972269040695840672676005909223111437342402986943110821312244655899634874163768189161203527993572536923330607415432662914714061315907341311053607863065536033164755490521737107984290853456873249898851925745434964959305082307286171274849393889284214812143872599727201140529457978469774152312384014238381236924870857363505734245678506629322800895621081665080557307070012393383955163220828873514321322662090395901333315103565997039306505545135278600220576066779719360924538065926949006613281262209201754551153848759410749975196016282748853238113055029927536147866030816130051356859851515239915529610234239475061047108621523186057170603641157351062835098316911639709164289915111305904745437501571598916908410650141625268929177236027728670635750822349141159882495268025098664646980895010099248864677177043418006196707707631417974792497848759479049819582734532011261045821768672564523897241442678873465532400666129408233388546424760324665631343294117455310052429562028581726145557203844849092048241100272896442272557931940145070180118407041379524227412437944963084924629866718241992236930336734126599575157972171395098032705118878825441249456696195098278890778561115239284943562162099979957803914448466850217533733721726416808253100796817561944227390032713648959938519376460983722726008363159052904831487576849122822758074089370763902660354277450726633042970946347603649166811894458852150155799550924831413602157043359364844790892275327688904608034961455835914142774443333703506093149722214738006450784154415115539401733106017652731147699201764604877198899655829043712633709170657377266122715619081254625532697335151873055516525750112776936770286463879331993468589757450038157703081014113469217293938041857538946048550896828648932847933786580294149129811675469743446725384313727730611788335200645317856287669343404683516046001633328057713757008466818422133297630435107573383230912754077396059002623481729142134309806546142053325664836751074415496140765071303979353938046587036741717314455742778071985544347021193835370855123930039693128820030323961947569853866825148020034067464559215290686369983786889396043598420959927653642910609638342692535521423288653844915888722981245808950279134429911499261560794274169197001543445584511778747274681600311466810378820907871599068128269316997925808808585745641454370202901694175966814388853908436467757826334830512951836137070626302184828211363669742456164127867176559380526983857193719232928736381220372061347057438351653426165387324621856561205040205658264893635107283839050565685141078467821331169543559505064689787634416550676621986837434802881645086632700373571154908398677831339003274311668784174013971665799799127559616584902414701968447327339185057616116357738925769592235244850511132878641443929989113737212274487764529674967965976250072299748415967935331137625350457787761513009893436549312957993772548609910900344908830035835202457327328329453843737740333954290932765607553838112896829225645638914575330614435624317339893367169616240211765227768591481818634506221252428951637587735916770230852078221017280948711203971904090398110321040044925156544644143172994927122137629244899253668076375768571794557571960986353151898474222301857515701700435751830787100440526287858939082668852820640685738466252056954210005388352420904841466771467899909538463606706181337014251941941894741101772490533234760954058148612723900140194517093089495309170443733847866318017416465996913958322607393025836688334924515910843004843156649318141633195797871182567973547478392466875344122340596384638486216562149784197321481020594433055611825803313155204416465808104675868358780096626067613203024492078803682682245842613933345894091872240519733228480883217896296484718869733166014003324104834482853740714031632133475986379817003487559962035349697296833815625974729625828463433153747028681289652514107043496802186898757975831092502217656337555234119906490699850181947581346860381372021080076084278937061758786814016124221830258151968034903695097619142235361177373187578937447109023246882990627036793687332143045370068357329133713172915120424962968794537551922240531144186683970850303059252476530654063731129105135541566714368323839212425345869413679240786529813834176610106048406430519261152545953614734449380934085902027371977238702256185278676277470207494128999114833360228945683614454967766788162408521415084345891387053622548899641893391836415544340613877756621800140323075620055026314199862942066109406079075578210629606891007718769466363921742714774354465246113059696089163445812358704229930246115814730174666891762294188102823415888806362051128347865776069400989879415711834779455033639579678555407078261638584087451318376121772489206460228737472613441163231489419156189052700971326432855904955871589485766853085629804405891388547496062757156719690140720868612461078244069630500514687673545882089914311274335396855522987565773765296323857386072625823670147524043675051880497750242600615467871239744923972647772932903540228442326719106371148341541996028862095776687215330265420620222019318885554376919046589641664975807695251698380295953818084472052722358427356485970362170527723005330183828566063190307469242552186294587333040359499136160315534254613446740786726649365397950376847182766845518183119758454581276984161855407226538503458817034633149234875607261012358239942405720744131791527629964798682933515680093173325198084453322626977545545962305814612168490753351005569156386877349555405571817917474499028616450315955403694386133572485347992923519169428967570927275800509802253170113919766768585166126116332759761062039605454061684395939204180386599550106513771201704724242371920986096657935156236609023350453551151826510125748419312657703058264346008021596447379544314619536071771583643287925879311783737344512660034452154742773851235979420687790136452936204690713310352421191214950153774233215546681824033164650766043577898353911104518924390467071429108043445666017800349395092244155060404070672363498337837161687194235632709045385118902718977796110683853857496917717989887657279237623009859440221020918773400424197507583427440652644521971014424184932275020195360712919010563971375603116125762744935946902390438998300922498763166651351681634533464456706673989645780949012565912357027684983848426511422789370506209068556841793345497765693743374370126811980225774550110494832269272954043176643108110150643869887183598905570980801927981277256064324214762761741933722959685382824246723099173376649944813341534059631931959287951846327661825320294498583511206481024780973406525965723075295944046515502952504191673080500004419160621816067477634932093093545451523604301158812216515825279725977247788894776007659241779651249973742631109709575490677543767654039292403384341991958712088754258288429867201490586458656532067986738615435674633378144808014802475347881348812150064455366746094628317452333648645190626201911374215060204568433942015746838075407904024480323628939503196994544335748186219582375226646246700244718637259217554187741476046070552315041963718136901058753360416757351457739642343458324760712487113269042007341786518085066304026342347558282350012911428059561206531286015240352643786691548768312540142776701975344903167944886030155323004201835226543337826439545187498818991524178512305958903421260142931183501463793289080332568673866075336582951370289222479346623221865523718956074907244178841263350802284089686187811329213330776767086494353071762995927351439005814453989286452752344170213124705150459387023308543950081394874380435373186517461766864004481920974511939681337404191692141333431882085044177928447517821964308496695209627319164925608794124963633253115947864356816686108505978294615200096422003772382143730660031651650392503971200524808965968023199229489886007050430326813726035068917895595201355387079442056652443123783313448986784738933599743156434765009907676040943393277593136612122113970675679909227086300961273585872830497497320128868864082441928212252092834857634520029363455386502812095571244706709735071610360551850308532003783657255426453518793834688988257612348980526877646029498286112874118006069747412125074993515702114014620605347659166656017598719211684744389045961537238988869880958423962867363526349248024902007849236422169511245269072462672367381933240101226843840097254590329422857867999674059068893343375328503280989957452369148583811453303722720626361607522470762817248611893956593753415753829011836698787172832107459924207218302962740567841051896799120941781078253219093198378057969054232440266597596816753558355261685929956515365957522978804430509192097748285770532830711164215234443118036614678951923049571094538850764425993788881195142242795581667019509987775895409724994552719410471360147736276159549004276228375512526290817433497398726449286837080709891544884613595230168842650631510774263624983507623508773836998065581844342703466817694077767573031116551821277869638035802550953175730822040836799603293549545852426418712806475446865210174659902544415696343897574095012588488743185755380679427937549897745619928493021099041844598578242803806655058158163247706554388669959614110036942276047702141008903865386380085202917687991001891287725464462983284953643853943171843480826125453958223609994201495834826439985370102563462993033627009753742289390657993283696959669634009237267222022441700406372236746779496229421766847987514838413080039752605872456244905489220639642618888465611235736274207361226597375212783817480017537374496156883405784175823835698425875581170521199507080473932885463021139181300350069007401789235537741660800835941952693761694258033109180273767962221508768294097308326353630426659819786505014745588213686629395376255916417992550472840402442989614105757556701749933084328527488908573229809074977275608551209000958381261169656484045890911921917745862088944582087576678760961645132330224783082749407273260434047281203682081255295923359393797516646005213339968451786725005857421131653996892738817589099685327431607996685969750509419477909753813503262859834885836874575540932392619905889377861448995450543772044944522450246380280725779147341746208444578117135108785600435510130084532343166687456026160621645644108433759418263875581543718383703547822863690977535790162900270535217503963961714283300590618771203953349646718246587646608486506902237201882607365029790538198888002733912282929421400454273062973256648867059002142288606012219634299085881792906235005707938992422330819088289902412083787677819152143142970961103402881648320245559974161257478729017171004038684671098114952834745553653166025582691503909293777322698914617165334585986906273916275066538244887346934525253544171788431266744588172625140505922101045171846294101474989940432752857374558188608845234238272548733560926845605589113536464718591948041625196645656010666047997191096158678332808500576280070799998514481215595356314032040110009961309420070516247651965977088974114067164225850616712319018815327833540072667729301532443325967640005002368131171224578901498162262763900824931063511401641467783050351343736942394444509746414810856990364968298732292167718290386085012418347111330557238168296895306558482193227382015921751341871537375594927656967550725869047101939499981657254009072668563383477326215481216616524881647976324066798236468020782260325023765161831665201103182308431944210836010186607728136366200304836810512620381063876502223264747338489642681787074625948364749583321386544713410982577314888836178316971442884882130861350234842773470514803281505591727840234402859801381700950419691376399840035025254325321362322469099084097699115658190326669805715623033892814379298221987968430002315704985423342264462259003003345915313955290527963289199500835427968364993946632061980930024567263000599893467763861965067414140551500490846513800006502344869914075114108850141141701046522414821433843728842957038232885037429562947229103309102925214817560526711443454794604907539910777729401555890279630131984886954637687732322449413436524012708172830613955190032385948459629436620791086696609848342187150094766735944603264158092210025135502186770141567983882013125738389608276390456255533745167641570530368997933668111596002876034087124923717083805055666853567966788170552261651256723409765552120048193410585611393634510066388393102544592164293566917024652591802066426732152418000813279428609805457121436687598579897739699580026838982541390257247921881839941525413778818944668350548632526788220608599483840685740603856524457428277215600669243203698351796548476198668625649970240175354919856465232104669657681609235736611268891002478434193363387850512749528729976810239576905791843117079942949620644601292771956267965869053016170531761048233850646133148440157111288482206691656379684438444265494232553113389916975328173509148571827149577468156688506866771628701525572229134703654230807970851903551783797277532055046843838929384452832559212418013798081984812368641897828169070340259448839176031220902729627761886721515532235358359621693369548220382836059695530493562808853675713997503572125265522802697055526926687034257874336517886591054746314018543321765427106765970445087599453886963505216892499534042792747126712172693383522586080360534356928135305743196354963090044589171095536000420056552861866214232431994695747843409685872504028261461831405180520499086236749575712805945464427576475009773730301581186623075732479080968231361420638301608181339337423256383435408348409228461305148464192446997821672605442682197043453798488161338698133301621325760040989796839699513853015157724838826896480459301686098613486879761441189125165224933794133820706941159162678100694973497770850544660676834654713100559327312376832890573938400721876819540787461751708102043025103794649727574649720630835247857237792674422887869822916430126949619976428606383275566200322927999887429289928245701422555857546524267195087812482535891377131784201911529310559813402540353522952144207238394375725989015367563888318031870218880488489926782160901705893925703852601693271588678849438730301696966026454512470365208082012282878581227688926952573381592810108957079748630336584822082273383279987961735868427909117434773100099796969545397188009743221531631610216161701519420305727880054116147864935097039079552331346858463249743342056063928252396071828153137462767363666581720428611426749586752599956504686729680733417466042391396957426198067030382128732962092797539149055759897000983280580769522437442028908718717135184261113467101413304186067771290716838174895036367885481259489461144951440044680478917143182038242638783888246394295900329522356610598876701440869460402355690251211008679713890737787022581607839939706778067131819511770930713717697365171984166118395399361732401238755853369071800449476650901025990486822820901045993659749852341490072354445540149414389364509748755080535180194145684511961846611220383892802317875326423517189302330729909231929552104556375306530612513537730686806361098539193154415769542500181727826770699915456933987137256329111899858759295998297001836579480569555321351951870571764312351318363906042237324382458999225366292593197311153581837736759295915274584226331790883556232151653170629041685755744109823039204521583488647223897218290594425977026475340062342173993053405992705443977083218536925221571071351895193891223176769392459657782872391770803210997827172038707084224301492713803695402615596295718158307589969238779040699218790505435283180004981885945867746706359878287387785974568055720300935922850589358845391107779700803405790849774569199319096067058398968042020487497429328035830770576471673722571214256060643610678316484867014246672378333604772504252639340775432670404774251412937291125203757014065542978129313033246866142844351805102914956369683260974169694784294596091627586912900426386854283732342504363954254297935511949223557717243549964484188630724756012893618062969408916789751237938127589486782632424092078201995818676515184357699009306227316908765417936361030041981604336036812454157794907002190260694297988124549228618418628654724144842754118030801753625481953378752028449343434609961510616053839032976810154514501663724329712625813495510971422698971404385647228678129126369629526667095569382149962984621583536102802369397512418707179237681391582829758500751622330263031261320602587437412675918945258475607677826579210588070964590437998665448095027185982089539573272039683482985693192401454302629933891230438098418668703244517511890014068977819685556981342193283285782589361339985584718937356784253511558681670138500493138807233694840618875999759899213193827186671642420029904983804114506315972136379481381870161672032764261474112051299376382550764041567615127432552589228574550064121982405258513762685533999995417506857372223599868311610510151912507345567927804646807968984176436160726519309773454141049466000627709450380267603018222169860832503558686713473885607913900994255500368030387676236938328418843493430334373140763466399240034374727860207511598944674598602149512308328180340244602162022246198328261080124148619925128452162005931040052577349231844699806017500704710067801734919489360071821802383380071255747785621639811991139568676791276944507770651851964921888558685289730518573758955357436392150689563614471856742287031760976945901263611896560799402678666360860087458538184264105463239966053051897641469986406943277263978284463238374373913618035762159987333756684022413775588155361369003478137640881169627543179215215563477231210437400164472403925581839653784838679685033273576025218174453946803762376794151764386104549944524891138708223309838548902897249739853733556886879623414703438412307770025714302275616097441292522200302974315632194803548677920140181479910573783163528395187102120378279326695011464203712533755883610542212713960481763016392980241206537818214353420731461659784915578250171606059032289355323724372207225386091995113158681063501722444083682872393718677774124396541940308596726197065732155685239434465224907517323806012680104158695127618370102482194362473898757270031878989238448974212601487204208496295218062860382543691411842782411943749935064219588620815093235429704707304726684447529039462905975446176659218762515529465765263808516181103989231884730207833123975593704092026204687708491703101660031431743364722502442522932108102255429756139499734996180490311546188163787626599988607747889933652469837609259258128893672576931177061821857773685474842099682800516709984661920577961261130311373053942319511569366482696738865170565706657803830488748311108725872342917697081129094836057829406631932602410523522015711403343917100371612674937249810960395797407545606974478192084180210789530285755453990810129537668647690729295840149121243197863737497479399874988901025335121494234081921818207197290834346596020428610702632342171165599159851803665745909234442668218233118299665140730664019285007820232061928532616672184102612405529735938792053620938349511851314288881651866228211146108284425843721897973696428642353172524008471660468828470234570988130541389555592385122256713702526670719664224462085201983353516173255211744190498029117443805423848360534953093995817662042594879715769264664954446202416666153034611637193599033654905562288591052126835294198464954411730599704016600229749685181633706766736148808931805774382545826502176890681474565132571725308958275955013260727230588661201097925420922348411144203070190300192644747972813938458866886816836190674472654057802789367958631251228765921327017385222917881006129095698721532261893095873983606506175957000337416726214602072633240745555689321003625096393556881966411