PREME/G/MU595081
04245673365715979518223446264014461428483023374600433612981018820370554914687064465160269004987970245966992452283521759610746773218240080023026279865439608215881313848130440637380724407924261774032291742419150875096586189329120230183174754867912442610844142078364867129443230176520608508927287261901363029359219121618805949047731092905224050700680293377226329331215065464002728127942277281958323815068574218875119361964448979273632464572927572404913166992749162440234710659888267369000719796353759317246805689454034817051810178087344050729600518532769802659950316298580457465387212210219430647023760984457782797636200638928983575138671570503786047092468221935795298967676398790237825944589205760949923744721531270489832054373207224777128315020041847671012756255811895047224830893676547150514847515366715409510501296935819892605352037894603596552923705202085935665060236655894121113595217885967315898024617224855512443837585865614825085079692355748829912463379229318628090815812329812785506178456736165545242410044339410079031464487755569482203455555705980803598878523275252421812766453594250401886141346078247503140071939597385117136469679739967803970947052103991738293976738543959887626949829414222683104994668570641000783896051488637882290542934423944378925969644800941493530005635353910618283703602779553293341619182566931691653185734696433465972527597603328275263959778383814624346080762567962200878204392360554250215173529332269035076400865263864170286095739423905125706067439854937819498976865487151815427901976574351381736787291187426400359046361493323845081494378539612967151487744640562778465026919662564151482059078295699739603834230036820992113715658458601326877772534452122656501009269992845647546318337630900728090964102837633115944301462178333517517027029176892840313808680406909602818293600597814255824679983973264099337373312287535365712134252193974387903258254799894507161664177946236340237017360314639911365132984365956146832649630552810462925537085102978248104493642754521318659783557339832050965161116503216026706458063670483300533049822621902553790819582471355693606921200840628338471557332199164820242033833939707422897631907111743896471601313934477718441886973250010227108612248262481651640007615325981914842290334263741321334144914290782278932528572920892219930159612832069593794737883403527244880414599968450413815226292526497767568130215787046116756827410155926554500777898505661508750642286308277087094200282806242596349403048410973355593983136128877461569375469840800845073563026317776758480619331339518641908142827616484893328581476355595375642665434223853811030375851521635143305644958217672608135011619497080971977917957080543739140176717941425513478587472964199261472522366315919253260395216799497842428997857121302051741608437812404631363915053827354239077320737986181511030998316078746049299298197917949812870724766334936352763385351672809069001827418209496428901249126144891383948998802842678832414908288480231497272520387445211251498313828737616114711179979528151354455038100624170580314480057402134843275463624106422973006896134517407507784342903688494325424193089574068832684306623013679492655446801174723739898993314910892196497911558252710068874008383127199014361069475469472884029287093774170636209145283877043114976817211046570071507186968043729400447775241106768720662126120415092845361969209526253769328503606325761442773230625468659873566297390967416489020103055928548818743715158572648074981267419212534683385449871472180341507495439881909770406744368556587420044897296908350859994977925379433633120008122813542604795036705425433884401472447878022925973534420845886064034620122713564311779032791850569865339844752137568804065013535990630907334979044104185178498150800871765093392414399989268743329924376795756423615874811507948736305894476549683346898893178049495203614687714460141060966963900135515774692544563749042776973483115800994620149536348272029282030846139949956310604725772998302964674650414122689355864962213709206469589345990806548591544859647028220197766384643855335882791528186136093576736913074858602890132826759277522347595493487013436669328621836420542872434712373728832182031377251028066784309614175495402997261873584832914535613461245040724618303228152409161226371306009819779903097162606990748971686531985197732742533820817583252625338791801078074271578244724407603551750492096084333155601587342980748695283558558150532799873920670321774321556528843495885248541674952590552999261147985378158418490091445601279138699087473924994727629223038646135375785769424722015213262524110300497354662439481517061157845780150099838315749248313917741711830152857594906455176649584121948621393730253894702069126404632111167141772279874703384432570293398304360650145689605839217090785972398149639338646662109287117529059409417044704844053848819364505910675767083625073030205870582920755585368230621413915162546803658504729538667808788016851998467869719259594336310160536047969644603585725375415345299205279003286453199749976938630196999557663685388500301189349626705923928757736574803106408988992464554904777545474760023536354224433706768226747080552780572573013865515358614546171647448095964289382043900071329628779303859644872496097059536166013315212385892460094314152490013950425303449156238183233838821980418917429845388760397803214099497988992937523592982221328602879812340289998656879147854727831410466278035635556409251418924689967966240022066011347884118995235518689012066651485898708466945247015066443849381852141378494258043741631839118448478241396860948393327236167294630325277894041173675533809120521457555719519610792258959951014456196089583742834203922986227311957074703238920816270469684670237011926291444327443732121583333954640600788540702330575954228964534596116647192884778891643868394457732307288341325480270319374914718315842135142138438789234772178225947843790751416523932102463006258515325745780532717689389216158257558145751374328466982436268931853401208299519863972855240341927102512546832940675293585194950023033040911193650044351527579358730974389797024556072112956904891956619434690164737353826319179955096769107897596148527634848386762916277910768431178456810154836344828451748946120828603200770163700486872003566168803491202637161714097955559671379030508847687529459806067643630991503626756662545037755233352130972363163078256896328148161031074825564987191108619705951519361026258404736464589965586493970907639299342655844523988964798236845747983120310197621268290425670042176588424167917958011168094929515483542139913023969000239438800435952836746989481696485609173675959393765153206221209040521570874989363756601484655014775593765506313880495236332583802961040527795257788238492587009705175159389441000724884840459800866414450890184454684373600076778694798567833065911548243728886127386500568770846630319011543740206475427692431113423825447590306988523046318980128226154515272271632618885247854309086883262828619042635302093744981466513637584320615793104092659407251183818152932312237196139802052766846565547615860467928046496226942045230384314237966422415595353914461909347685783437963110872824432138138775584765649024845106044438597981281487474813228508601419495771174602156918959782941669893278490999334283117909956496687996365081583382508390398917197881644648901182800219418989200157743606462825929753773415311704901698037937440680687333531476783021387170161238539559476674675550045879739498077768185612055344205059482318336718449090710196445874472380153856757730258296674610791846704527031523834863632710496243286427124826439512967304694285596942644465957773921962128229015961142311385212139486666044954704893312434354626477531387446732717847848006603636112208946154897950745716986719110618182284415656484213854141597333838270315594662446437923991709850672787259087675055738424929445613853419008738907876740584771890334664547770170058378308054241620320512160727972315165029022244030059000759595538733628153753290259814102718420383752052617207885196449200615024299931753379493268646809171674019859081373134773413230507222108962330384652049087235033131859020447019216221481533478295800276510960933421344865497125441457869687831967163349163710932483899612398313625834061632834146393593622316225072397466098354570071467546135264794700498048170133391747403740982946460602667341467013398992305625157282454503158194138626783069241056817903138852528585471179298671207196666417780175333197735409659193365432019738452099968473703722593250372276182561475140735976130857045763201638231501714535414842107475977318894806671752910054918232491343640294192048167875670183062656599003590940828829038483449725602119443292380536877277757046106292857140115434217428571497255679053924584090888002826248604606410229702905992205347737049878392671266281846175048773601784919010523840929817944658392979690404306183856651511343215163430873761584376783465273940166999441970116538473601236504134008655653740898779625086506458902406738762177493741592350636962421891761034001778190011952004974908271022333506332182117736218730614469732836868416054523374880579535720550933336788007177795706112249993408739763837304744775088207259838341891203701447438644685312871060470022082284849420316880670850045414666837397705400003121997517886518800442210542446713590589187668044667447466367567701612661591653118729172119921447874478958900436082459993069252383256107170471383593524352662569265880823644448869055885863759500669343428582093339005669555511018781835590023740886976647395024424417006602546187632032050863013129559419020915688897681679614508365020206683450052114028513585963201392914625529869666934042257707920893128546708406725031993082091773637555620932381316707838554629202971566788756946595931822460161286739385710812524639842100281015910340953329646277034222905139021795205030854920554242462798065715476254860849289313467094756724483071161381758810308488815531903982020860801301311291700848839867134864467586864839143757019117727134826243736043710331120119844678622280308538018546598462212587618971034335221573013730814133027686814532871356503882083487843070627125045184715560477464517657728550935456491083335952739531198896642196501959462644204378624191834164141833089426471516551433028835646626042008121691480442532554723973167107288159545234789352001466938642281165650162068238608823510492212314812812582202254749367424535090974736011598756024198588055602481939052426521042067298367730164871260999928460423325886003071641507032064579376300102146781679159590509453317263060274593956170780498966251152848431591773271641311070694612014989455656486930297360691826846722519521427867116461237084367015802818820724209944283040615213051768378327128910115591948539451455824053400005729756234277238416114356505404956438800652374520988374424188950798551970320357173592850913993556713006498584547553033725021758489536840520642189657240250068083801917592281281812098250416181226878406800941434635619887089660737310088278118508724152321117298175832068075783492204787827473960673680102862142533312900617915354508047990475629261862030139272295056713079458137946158384029714260761185514415739023509658588308728140013304103840900552726972032343658777186052761204943710474583291437395123506706219786914194561103603458669176440676253320481352954058479240568752063016338238472630695152943831722172554556160614872635106755582971977284610770670809915165783629713839293694981836967964221542630752615429310931320787022147527389244407783819642659172117036969625333708962502050302954454711300941635609046884144035614918959730041138590224927668550143375669301495016718971357420281545452650552162116629502915818911089700819313189453199981403780901997063253953166031160167711050522379152141977927082648874341379057308611616640233128394606761509591827563475467676002015510041751325109841230343859862338573934855473797095592680699110073515233389726007670608956003886869707163209229328882530614371840929208935624797408118562473298406508319502490357738059588202006515037072275713521776770752465098051906590346640606338351496650373967253429752640762509378125996174335931489062583984500298651994430122212625331007976996126220468633687457931281637169522254682902401900733006362710271270284704096238679821969945962189547587219608407084827847729051679635081482524207209608982446010348990890277627502672830286811918945245337078526239735300890391555785432147431035190248958196911035898288623865800898213097695236789850938704008615429024804973108106869485372096787022825043642164929209251562435161193486120364491754020731608439204390455824709510246867822330556679168394277069967378191534150536390511059144036008376767001689217585229108013642809883195304839669272768063953308642138524017920901609414443815682116218962516452698901519714190841583242992244869482276255337882053909904799687741606229276544861384395623008336600029924065524263396964534316354951848895203479090755154410203659518390834720878565660659697824927332282516099434903452821693000204765727555611713331730905213158522474738956457712422984840159885368586634075662073509231923350117943200717119331996022842569235695404422403164409699595625666522261742212267927285552924180847050483085263199905647675546011226183773034140943351615782109018611694014840685802667230037606206108130441955979211316172109714610285340751530564097620408344487761468782766333113376672704501016345901892005997137211074496305038173872976708252748522378718531995695503483802399306850956511489801104435410079322616696057989690514223007596047428010386469916092805911392412313896019765729784315009546526487008917887032728876566700323915399711159915352775956533720459489582373103648327401275928839155410513501364537280322632288989031163319644160548355629185912359031209004939990548272574992936032202405548746952047225581830275652666819487485693322540783233240732654281025746659647005297206780337204347099972621581433116944694378065359587677737213177474103742157617704365359587782042793999841768812831043184854607326577544104207604981183153321470815412365862151698832424506962026064782649844652056316450786568695123389311616840054061948369617359977246305049241531448911961459752212222960329703349508398341421512712604021438912983336889366206951796663856054616524035894582816925272409275746136066778426954839532933710967567797685617806595001790788863805599225875777493090357709913427225898617395306024845611730876765221348938588849841812613692396466716014461840544206903133158376972306888508609602237707189908174352257108565570494364472349479672296562779061367354174932048988629811444368449109994701273458705799688440659741314907723271422374072958317315563214420863829856549220458929842508579610743004398696501990827918739155857034571359808790561839314777162326170442376089641540759751170652552723492094497726091700283868468808843691740303403772818479601354470208794101383273053031530010598641257197080937449842461008360740177248519517278902207175411748047264063852613698016191620124037712056602347813275018016397215407795203094191144517785504633581132205969566902034677379663420648943649029369173031050716645098356073590312859698691932274801272931754715834785121789869984630032250901955053900827525118543177370565438244939325642943492464241675710238374386123118676848706292291159516979841128935496690744911501183159126972290304631242449881924962500273191305113431125563323065066824226688346164863021055739841032411823146350419329761184423614629435360239518160914322988244090859456088360145297477476931733915250867009411906638437417808213472593219517373616697659288558469084622616204545235666936210628110499211455016347526243131273572311899188979862765584761610027643721332984316116044927838725886156472533145988812148601358405726980914161088368026393717771843359658708709251009291430686226324148172232044585896772104395688403447030030367196431925520154019962972873571334170491808650032884006484415994415911280469687448804348507218021717567539724078054238640847447775227662954009310766870027226258411319185991145129454192804342339135821226894635075500022076122516784931607421610883107589666948640064702318790836209296551783588862323037306053580495652060541694068903262541619291209382205760186037848760506149106787385304402210015031172775245636748657206851790653961030944434501766788427365563728163830393437925814754680528628285012430061134866503004231144807720136768793881485322973785150499187421029165123599748921790476910912475345334367171795877787512240151758427616805295956398634109715698921735284631038375226446800446830403751285873620886726319834269343142517397079753202493410894280352338927165893852926368075847821865399458797190372109362244156625784787294867778811941706348438872433369626617712703070985624462974018012850848650417900040102046406227759974953184092466929822097548543584414234243823788586693833050931432774039377087538102610501093482565489072908969043407779528795880797062711181217663407041956385666449656389333611627911069658125737893551353907243249692216472721990660228733951153245756000605702103031192421722025679376402408078456769374898424987731808899910434047040238464711942295168403240995486530677572848433826091229518320332252389057425490397394033529761561151207285421751121923079087775959615617069983473842151458557631981194244757850022241092128178920753141874634243378338205550661678867864410128486037376192636270982770365807536154207059420360333858046842608684117191498895342980977180556690875257290455313686439918915606805960149363085341018546228676203726885356126330491967630467869532343764769701758601013353045603950737017236106410033192034352367985215876294098714471953124787156126239725261446021275501513618749685466320611493750349572880101928255984403460082792351597977071933504990251495342651123728460966123682277214162372921063614630848043615819976104068096097730949613273139294433483016302574057046767656513200928225225838517777409885073958810157014946264002346371876489978019309383007640735424369053669896702379717372739068521407363083935022485226742722178704850732070693927416399713699085863191754946859055226098920596296657109097596005847384369770306110731238193306040203873941304908865904527343518001134408589897229263839580924431382715796106383606177489425461258595021752151196460928214878741530544160457029112879966600882260897721169256913568456107998510984557879621906879611307674270907976339624526525135069395404921878211813012335061968731969363242436328782978510115070806790697001722653378002964224152967507540402010808772899080053124686813679825669866436194200549782038956746134297455291265612977986613284015976201898739223461046953561214933648468972427899910927888132600510517724032948481626707077308156053923910364301978391184700196876384948447902164994508165793790071499732296138096658310377924704411435182182341145202119119080733122376294558780012652480536765914082097722480074763123101813252464509944098885485702430735471740202053690892981157741434804050515998126437231510609645194805262105813948922813909652088885380765113919381101036578306267335851337426999821840371463787305160128748863057816385699080358178746842530064326698520278468107715066822965839968774226489676762003034644311256827174104285137396628208064916515882642169993454265821084474820294369945793734174294661146274472174787594276729378956843351891966540560635570423526070787912207285064279103533002903309499626971613850287013614316188595102452083107402352566948116680264416332346543481573295735399205565443158456285318627396805349587151224208435496400484572612302415859714557279984538768986241461232592109118314915002908718045028866907942037729339547777138894525971999118516446842932127731579598726162912622643223920618924134608498469790332690893540441441854377236686872441732565227030410660291624263567979716933234202224328799448119130156475695104553011175143092836484525464958502511081481096359279443817237360054780158771232044025383773828022606383358126683949331103098586267528445215815056086558838962854071692286587278819822447365535813842853736590561200064989146275643223346760242532746956280770999119716342900434521220437394983842632466699025496378376856939022547959923454815759945148153391609398374596193030264170152498065116997156864288224948515281987972750229500246667365452902551599836834463320425807762869643923803696856146428667377947366350011749910852151274591578838812894622254274123987749564542660435422975963492918748657309958719385090707573804732884700843626537436610072139500404212510545312366536271702093450522079553635323269399201736359027856705180780605058699641007381537567750424377626424155565412643754373235413714885504343283510732762670781809213895657463286223123770410191222740440039764252830714018655393718415290196653955319688585070079986416995470843965176669787048544818603941740217895279819993061268105338068685452643200913351022898093001186751337202535998918642339318955333634169147063353469947124817518767016727956479180651099980675604476441745554671432289775587269846246804652148491460880230455151722948736384797060395389219615056463332227278495083560225543416341740020286723728471870195440762972091063227727844976754989042383771229407120741292855859699440188842186982262185118254494961006022899016643263565937942565992939499903519255051402604807618428488628605458293915544100964205685660749514854088639642302510672212967619561763877907042451766019255910996143440144399159299333330006455694315055388215831445967748982253040122451632300952241028882249527246860867851316989179088216394066967686955228759025998848604513813384789225666317403765810877050342113235234224391883443208966051334500092000591408749217357897842667739325829359993962945674144309577216265744550341690892084627040013329455939216230795357606818883007620730424276167529821344899140440072991033918193673894599246805523733887994357840530469763857788591338693802926295477983471926744258983200860342734234529191161680989448431040319223701281213833987853023567017837530656510203722120928843532394379800899622638575684445216908355000855825057404440128087290338061464381882821209458681668803410235261762692598746153651137651279330422651666496565873691310157846313944194522124727680244339121746626858794862282460790020772804655951251626619275542228824798223960047821029818945619862441630375082400478113290308192853012390615408986834344688918923711731328519814569463446647640416841890393630038328684492921586056538483489696294561244654400023836529719355727223577630933267609553374818468367465187813184521652259328969375871415684138904957928549405710915029448946074420156794966836228381908212832202819519158253220238991100659608239498067887939649265467662822836840403708614129466512077883511230133495183680211290695361348639978200496335696317952445318410041118644739117526154512015623000064424603815535438298337745391262730190539399526885038818820908961940203968600277664844988467347950642940756151747870182087443802358566107280229765448783363384934813784787178426033018461530630349859034946122641631478452786991662427155979875128850917730835200941734389214900999745713426224011187398763191114196822460616949526545228691560860017191663457872325578405414882342603090379428562233801857021897213115796102823073415330442216532371199666972635485722476047250084601965212445249818429091389495542965918493364036920236915759088616787959094259948015694991533378888412148762924193656798033708237225465350242489019568517153205849554181416201565649535613371818993957825399517531720301911070628566337261660921671358846053624217875821782327792419132777087924287695908509083311638214596617599809959555695837068107612380892604897133472914646914705338952730485056799151473732169250140466269538157345119832516267307234370290590223964876616315953903606001474053363744103128955673100431805190428355685175258363527952282018194755718925754743923737328113143571401058164101990233729075407523281704611574878791689493260464878990634075542931936548747068688948212612281950142990612026634173786964200410848650959686576677900608717895117294010618184034757657649006936391695282203923730107050152304119594513970978593922533552758171058271018438345817290421424825004794282470418296718275786747211670331094317814878134264214127402990079474432055387194721851384182974282868290909205829861392725393619350611081197356406032886208935658246517635046326085579225840834464920705751266760985479645271452274010483680839096450196892697600514211250828059951998795139268052377272355462099153124883718698223975846016396067319370957809940887059140931744837273957069575304645152367596639888343326551488351038740842857459813837884074722898111299290704724471427925515779714769115950985269648192954743822843645076102493977394505911504402837490538948136891829711538876946196529607320879505683493596776956777646764515198315167662381201009684191190947829003053771994111444407667487432458214425331948526201618371621441053361049279624130986261892455385463106705525113067716320928254038214676138953657286794391901060505666628762496900736817651788441450503937686247242613564057226402720453460219519515382952023221383825246515032885616219694991880479329741476439605737160892619144588393580715941035935980985366112654913847713598927908447549897357825044731392012692316094624502476083268136498614706113752119070481242914358862027637557247718884875684305782446730739784040593763958151014563314314301099146965658645053878392862609389530873528177661320046160299141945950864175780136646603553979737511799147016043821651175852507131882094941748130745181483490558057526898359801446212336751018093340311729806982911311619991433784590564368042952353155246975233118277277578543891570531184522001356551531623127706241124677946430917780932843607814491150942616889733150770880904446882769150215334382414956075419274345788800846450679214854414831298911269258055119414866770216470110573313676577914260764894314649717490187849554581665377472959915300675880664504918746344518386898295267337588652901853393775175777598001459242814414675546582502982107217183023793948954699930383823178112219663621316727945685898201436917917372340164621684403779744769089794225606061234218023753590771576513239939603474107052918050544337141687351192782666440556555199071377889775922505575823969098932622251303845513557688185737055704868618240150824698100187611537226229751858183541739823587082595096595333019954981370104686234924131972971374358778235544815252430688903224754845165532725494544189329687152876383425361638744103448849232737278666459223107212535814762201531059274234792154199038021651423971759897598313951611760791790482645888213584799813991938974331527610768546681713880105070890763337937671990385876363057759277362321080145344542673133341859326605336012968950689319172990149906669080882381298317820406411683453888561859750369231327199411325907817042806952491357888247443756868379388385542175421218111917085529321445688022036950756655202012987802100011477895863333344856961259200184583141247598212217645088368080170972694303178953418082843744920507386519256911770452206385337920144891304481567032934408434570582939751198068854136795615369394193736055533606573504705529352550274225343742421621331942788318392425624242317249486686815922137765024209272319980595061310970155176996034427795777812425641915261098448305107529721157538818826437425894766702998468253693440620429976053786865955393089684696743204941782845032470241720392370939396026179984395095251245597128117498956784859690231129676663657911557725867618764177380235669556117083496999271094558112965562349773324871476654693560654343067610436462363392440923148959173447280959873079742677180011660931095179219240209545259407593228900770264332311572499799973383974448396740449123495900752851993315834245651327573417214965925035329233330203090556235138301523106279470049843947490668136502665358182621636493319207506852462471133538075548102846329588435029957125984787695596396834487046745278791698315124543084053321356889456910221860585998339428689738141671567236396750447619626918673737403198278090362564853922282579459754701564394625733585878375471095897486613865816132384678638508438176577544598604692278809284390888181598892917400895582470078444856421000067537272365894216188764178102855093838730744153905556828846950233398958709552998567724486518196669163433411767552981927617182205242552502778622177081828194945659731060581599512411672930297816330000069897348899867633401505196275139590947834457260541591227747666884791071284929256608569530836140825177844348805671132235607326512316993251842239800116485182285807614209288755270728239691218337447032786825292590172653668259181176979790198837826016753901789393824508378235576775777276073973980749311824666050750138255638714026659852571111588147899183476778588814024834085759103696004716343035102888817631022382449021778899611280328442118555697767317390266913269599568911518642303519875899272023609743708307037272416303312693579638082796378906662572526050443497883231881108018849465392583530558922734134572487390376918254532380246010026999310619984636685498915753554804502601836244785377517639373159017325389666055524637886732741184752274669514526530138343113359189776789989044040174751182949575898209369836150118521539592277557468137585284796719364320349933432303415027917548730079742582391504949804467979010275107794588785210335622566583611663115160760730167436833259629162710006529155345532697977421470627716366873294630995778742039234800524782212084500068837444257677277665906645509019349928786953796462927845188781517301499032829667131457637598198026346396487924346102207834077915408462694221312915200157616106958723401250829121572863067575885297505630772003138067450809004596105335433573867802070805059481777424264421778731291792943961795965026468320027562968836586747008373487562498359424731192717694773424236106339531716679343430432288358187741390859718916526014212848404285242239892381681620832038606817951386802342666735720346314737681491062279791465592426913224072369782896176199874532421937648751334573857836202416691079925508769266893656448002681645517615608910685675882525102635219154230205230457198789387581713999654610343670938543660482368059366657448645040390338307443705150280158145429441776094096965225204013112000799399863714585183788284927208962422852326080432772001435611806952379827739681653204845647797796237566839215839359581522884259918495626719082667184467865271744527539922446276346751519527003112794685433364722668126884432550992202856509548529781742134627894570811631408103928560478833492935139946739109744415120679468045891525205026214161650046305496870944514220349128528926443402419463538338860422289853049412521831437529269045515611090253534925306408673769927763878542374998131110949241292091713210895363080990585002554468019658008305543347921925033805022855966728736469490531455921115839948926159079005999070857099805851621120446916208562122709363481854124021395731833904068977665527288971927444003884539634836563093259061553853831101683493673006342545752301791716402217885974561486967326936447398931000617479345996954924842150257067351208507577231269119354453284166977815376037129694180582973046286658400811739826808614674729935897474916956046187539211090828937945045994656099168252733943687002903897809842551355593056190637926598501574767520017183083668996279081178088609203338511982958995611496453584240850174844023176622330504393571822560698434615532155145144681164603948464641434483170240814977240669052300028583972173546756262533865054164198815052698808819750289774655258121304774032179278360006797678897911549888507997729404052652165882304262795341979439684073367403798253511390420656753296557885661774512080357122840558143415944910790770733645634758553890004423427891724886202235532562485719698428599184317078297420082375534670108371403722032741317196998884282830320214873210872145753326554682860526049041216349002660213134170848101262757273559708414644231754811055092815436821553374532380946415283151480799463979190367906330974805319651842035018171266613265420110127020538294685261990764053267049048716447904159347632455422106764767932604800798046894268517933123368598462751575687338716544281064772044191032592584952818358670392111713737889649492309230885171559980098836438786535036056283974532223958544940870900489053696821095544312459633142402695489521807859109025400233486313766670870761471102272310906154252973552977299259444151706813272057498027033559908630809135912652564288170114622018323698436985656977204300730035094060473498732617742184764355896216032012355021564562848731378112435863433851281382407624999073227716259095021227799201640056044987855262757402207733455298911786884476141532461074639938960472954073097963622695660944936125579143133618365337246305998763468050622559753471034021795999867406675369661648942877407179797131256964021767347255534974242115531796610183473950934856800076173651583536241812326776573049376472424471133082563196245557857904860971086330540690008628846293153472668546072855997961549850519090740289287176132960411371576437416966500879092116105183368443468284297137607210248039268674748168834358717472162381248283373467201246397259067123521522141753285968887590629977227993324054525452067508145160971964039945265293819487335061778634211075347499727282293704376783695132579291792922153154815607858537954284593767496335929145721209285329838590358362364489834863355611625453552911788240007305464575068768164235724901680814816196130136699815092856493892307441981928163376652031385984021347542827127816704932728957942906553242205472044575523939428529342723954491969033531140891516511853424359287822388957797502881981725068534175805103638907167393178291948650940184319769726245267927059766086467929963443992050493459504310503086113858948447256775011646412846588900232274779098872876657989867612059974241660726693253063506234640933080047759802362944995769547287637726077535882866933058886904312517653021424793222440987497148154544896763025351954250140163780408355327979334706804413842238896821822503714114880115217825871574254845561351482306364233461015145248650570359940470131702265974307403894868031701788207840739225446269656832621003330803683677382312407594401618074140160669751450048092049010772938903893398524089192282079242344152068908905405503898022142062580041334475216983015858961319488209017175175677273037819891401650260151205798880832342639188600066443920818080052302709683384406507383421507679858097674316120565707053320919281275142368865881265939252156163196815618353495245927718468490790406307455956286268406761514475832594637956238476570106957845692168401105782535435700002683500658558208327780577511628676579450061037869057977272814383329315868162328822255109479899683800259770547571626975924225758950511400737316550093469519894282911853781548465354207948736658940241465669627682764244591627783108907615423445622680869824391276269657872270206343877097707311800038977712498707623090109271685487307448210727638775821287535721512856043736240686464000318993173307403501210124217367440190123638152204554331723142674462846591673523217274052306189432087347434003453395238467046379825498488341907158179626505491304444988003642531542407939077396710503877537766728964039362973676697721638622570657537247428191376766611466725255860631817525792279359961228573310430199146704639873785445406500485271709310662256034303526186551780931096810253361968430592970873490551389637648973998543723997934034805159066030107907160431548004678632180248246736761978511729928633055688966665714426694076592110644413924521587613803443885592747684508480644522322327211804273040250772250041600716929249906209929488407121925105228949523136984866374877773721640694223142525069347804397471401489165475954107133418679727890574657700367940873903175705278884525429469502863858015937166456030689681473973541579585993148370506787667012675309368971836132047780288656877518671554485164443109455013644404682162572869677380266600838116644294111511522498837464397732908392205564940464275828423782793999330490210805704443538012194987824475223648047115625216787558126863065317211090800901965077153806887917747789778236602997404728817497781472218389779853381819752461138488498105795784698555958802807285814130287369464575485779525820047563251791032566016524439176591910129476421431546905709203342488728478946339976389112059562392783767957336692920786926752338117489118404637227994948366139541284454121275647605633534545481947265855716435913081032380157459940100072263312869818350733301604309203252340778944582013914498219839490230502743025046696629392248491344154795358638522172129355242041114659518779402616956674760204263826664806476676800369363064649318692278130817760348710102389401736630198381430107303906453502583772197904965905983260616492836194986205904396286516084801329653733548666496917751656127539173649318016395428897076028510357478170895925566582711169867014131792698396995877802579288230598972584902291942019483363689859894632029756825902945167017807205733762280736887448353196515019236952625777362449060942427902761551802616732998115346155155210888965975582127244488115480002396740706327562657990729605759902528247773491701318039571710831023623598301363791028530646116758429665758748654495604544636999348624217091618027471252613104076974645786771213340309607649075271740410286216830553625819741541824728325914029586655607701150242590259250560050436668394614051892547849411152384432517005131569542432793516791818437213763465858354449399640633571230184483822101223611243610684770872890913656101630108851824740575615002433865099315267680904051764618084742100400348275889265333241415624274589257991143322549843458036048041117153163809681937933933802071574295706922170722526234727649317199424720019012027803077092251607833925434770136034262063827920681179588235721803554946094523452938794000122596296035239742649086551184824353385705606342180922261043802099920733225583789354466304618755379128845715087949194062546795511892891415158307359224206540290961349667683108068369403348687512851558277941506790202819798879001018250508527558489209946779771320502773227759207849634352381244257600101965515935857381923845937434770259306763174562674115609094279647869082335999347940736463057464392181854818894137383131972799127347363553564427003801789500393123189107697667125681850415722929639107815827192142926955219354176319011599779236242365680341200354288111161511228739769892735140369329941783491551646240060580684480455229853070683207296471253358393274234041323614868679435531306344176769373429877524254530000156042474668571256831268227064502666202837276331334255186250333096249910300371018581450842835497399440305882017233813136358626996841351444834439286217071698570056029501040334705923108908789013675601506323109962902501883204705413688091198518559106079563977999882536523805969889395318875945632153193876398065144487832018972506867959374022313389875719635496985411543891367787866475648435901344567322774893412273923455325346569814905174543487686834461524411973950583829979773789903448305281735021519812018093070413567068951224249225937579458585847469703219408046217462404902534019128801357126676372511662415925295167231655067144213930019315025088977770201636104640865576236886045750568262647816282222983498956929132259487755175687396413244107770744808904391253073481481685144066116689452148436089849824002906488758949483829748472586656210546678712863798850453302826890675299649872079736324342658859454764324360622598590590394349777452587023595919345541910914087644608643401280092602113555026215391501978904995841699810936497168437372059361405401060204415894654349980404305292300888865842785858152756916490964008975044173471334696862189600695309951731213702458839473911955463343452340810319295929976066954029451899445523666682703542957330771242325716983274894001487487837532546017334692018785787790026150478748237503676539095304386630018351641110954708504229457002977484120513351716979548068971684482956878579008779214252385701174112424933854410720366526921918784843329622272565361370007360612523562485207723303877360635943551363043550997416897422983395157163228877916238325172928977398020590407725013849803291040332669691606784744142144372017503353843545087176728625151713765027436038271306802679139293371333301761399223477807304648821388571361400387489484746251991266812254241894536991679489678749345063866654261032364899403943922784492665275091415152572869968134613576223304374017196989369936733657048776907335564132638660889191713722280579660691904009042822212829835699957746517685831137828749906002998977593010936911889539848580414806461302030936517904289059149029796040955458278573579387444617577761539341777335372131463083375682097489152065384251079462883867901890104696926697802734147487050349759997925540302911867503945790844880362412269367654887167938579292639644911915150450371860141715226573736182155314814050686385796829218786579354137924764860734596916380437167054099348114690893150841334851299570267004286085515319166835066404029049495860563564044323894066510301930373229637610021468051508856490239693949439418883882225988325457724724330258735968313303813923176423264655215906085252401935904932826159016476037775352495513326368775585662268129340495715330227306944628950785555901764369446884868446491110089651768645972253463324655315379421265873777233978807545596385254041453047415436003451015951059976380600968249842644313765248097355537340165875193615591917069081281437577362948766740321707498013760133754881729082878118326229005951019511078407653440843339022198706811767881894951593824624989856216854913245981714064247812943366416739219282212926661821246044459462722559833465019166189897086247721884585746727830456376053011288517275915130309605338751393355235254124906559897652834929862646958717460593570734518149054313253769542718569621734112460370258278512439579448645328680889407810590739483553149123762110345397690290613012269860090207581670768569053740557852345364933516131925882114527227558964784274993072798972462485869583438410129698921633691069295386732205904594509871505370564956043639396582286077889231723219798387113668356472325567443979827164191588098436334848686918210387195990641460912635960134368988418739804022551460198553067909980960072403734283760267982759840472825368910701415891631982749320985162871139795667938148941838641590868087392666624940536866121660041884797267866974931378380568310785303509178486507342065738366624129358589745453524173762613887217458168384798238942270275648148053043920899796085151058558250469697641195248268388970144083412545378469438848454725778503325747652372993851994826577974862637525598757119402971517630920145984067542920416802631697185046544566383324362590471384555221816489600510371198197246527225943844563365394210823887766267718950436826549753442673392009413693057499572010738327573356263736114570757489407439663229650292839656278643853548180152870492711748422133732798712613550371362557666660704724570389271937108960537682475178435645176470645219233573201961155989032846721184728779039219547610757727107303189112791999375651372514382710894308831949974207394852330967103450811883992994003811903896673891256985118232632606201644472922764734015745578787606705313331518408516981810458959874921688946363947588282696656719555888470469330869276357805597174745726973240288449306708761583325661236072351877557833676004310571283766938179011759631808978069479397907673762345642930960823860001724855354437756862187113087892556632562628203645535951904293677089489987508269414464211935737461013404397377429111477052821796026360914154777461539003654028196297720928593936972145918061513367483046541866209882256204531663953349620697512719550259228927921507296341415954901753512297029273424223546372156835272153091844230208539930213584886487769677120840096911584386489687233281200650049074094445747096532390286883937878930073951617288397527170244018345816370976278508701667691754887138266318760650675939679092777248005069783877315934865984211094939286112700514786902366261017040240498327103364691345307020121036226522335503767721432524175546202540134852052418080786083294537944174992836509305067860855416153377486823532964154637019955850311999153436196517642252433905444706105210987551864413573626906760636427818545504677379377995845226538408043874206379072562726555075851538491243103709652482693434652897056196637564597467245289171963922896396138775623281928003264223677974582830234354663274686674872226484772050579081519901533996465970091641019651587966405999639234680874511716463205414362141107026747332797293915016495245809578393065574346893457005066884756753779076075038454158388072940233546841112502639402645422638288390994293596987541589772785584329911534470378435067568303256102440550153840239403130592588797956962087579839591908874388312600548747720627344767838794248831406089755971631240450093928787333813168394293382901324188350650198736740942747373092640965289675069225780512986561337073666710652793923216086464188112120535817786604060619406971542590741180320288977435548303924444638286658432399621138943536066448261833530902709479245536107642755175195536965831991806085676439283868875748644972999920937845323662404610128067611354620897400493643916516555155349208647874667312288262702661127067448383414563434063219018619770630746206436111243240730456281690951020987896695195541264991103665882563463225513677656852013955367162091207446116454990411210942319931536838211503713142179578785902987208929716587721549267275436448027844721641948917249407381626352824582804640550170479768470448048098543558926333009640336018548596309780833886131045480480021378873944544038075188329114130949133848375306619258162338849833460464691183195038231142944352573553636108943900428971712615504367045491410764737748995521733619773564645663213932028221645028019154810567971808954948083685655931285525389292360990930104335647112328525669353881715888596249749176306098471929236328454811501835022855156903330669140059578607080176249415422905795218714017300825057794590758674223558798973406531658266281099239771773933461280781831399306449825236476691681628648408467063996388484400696879939012869509385270652534674971327002259032497497897067089878073166768976073293658377691431261553925734779428620758585460614151022975214291078524338820694608154515731843126152864657798899984005238748669388779692445196652778351873645940011314935542808802188715145434335792770364596241917239991048360388828072981932945162325363334236297314798376037586352278292009089466973938851579544870523913364945227685303267344610764409856161364357229940466517306688643485889520485224750015080388622396390061772221663561923162637776553637358604919920790167360343646540339255970721336284732841757902039495457003548775053654404521789710793475306508188363488987400967542294320176903174105450052705381084333398006532191734868746072156543451035931815576672531438486209827353968776627605838798232612309086746742262671470230462542203909744111531693377598689383884938010032216567088230252294600951978010229558968229937974936286107686070000845679386920798457316141633884663715769380762172102711976771072871098065373529956969115067837064074056346134211804178078803184052413406251321235669892766432420366756443956902276387962500581122125803389148729137471104264999431436478819291092833989418222048698612352606292321302533172060730343032185196341193618494585595939553909113645227582547224058079555469166148124463933527942814958596741785086618087504703913274112977451893470150860741529761514512685790839416778391119485554294055721893567263392970265334473509137295784758289011975604728236250733487677427779933154726686978940078486589831053964828397788367177628873450530405543360547041308186786289526974204820972163563706124753335726461393667446251310613639170896900228818404549292745082661717530627633487355939026576474484029111751711100390656621801184896992937682792513862706565929304943857686431704494930494784246775340812744685420765026656549278269727221465111759377731257753596039915933764703091553557348597129583507182167306478368335550899758384586869241122571034001150813775930879827741155612597117383809789294287915938336762810794643403053167309780358245723658140266011230044280210046231055112282688182107756069214313191264364839254859492364923258758897528456372779245845248226452191276709683188239292309648481667107909079049436231625510382918412064376840058186165610381014138306530340934866792944192566309385435530475349445260797546555365280094194686671664821141327741835112515953227281410057027311364860974804531888819665390663441630384379072270800751688640048160660073508508053349933546779258934862515659442340877426801217140805070031769571272267364751451176036282280579943721790373775008479493599943361323415021729073032710131503877150505279718720997416505571902654804758684718486762026363623386164381676729402835403826722323656961116733322859968867490038081711621149005182779642133660532985252137024906130193277581183820404958640096553719806377119698055944379702133892857599979246182599655814794755447744484410545271109698659752686771610906719069980702613715676477715694484287135578311590516004229610550069336509098634291387097138236516054767714690075238344722754519295470162706968003322372861107657201651959366527827266539094100714292980992729345326195542979888756992093905207054803780308980387627574676307175155777643432582849867118912364194473745934564857888772723438697590154592963287742652785742370789768863091480645306821281792599706189849364600164749807207260833236346092039872436887327126835466294285858155507225891839239898075603432041219611886236966724050689231196973829726626095990111822375992557081861098711737414997678021591668218384624825200477792847034067410070001391695817548951943876334440668587849652941540628890070889893623637327818989092156586092990727821303544502641572591480531746944426647653203408048274488626385321965171421630971610624773502441330371810349609612833518381147850386401866222350317175953991337022673384451530600572286582183180734762432350518411745515728724424928868147914942869029027421888117709227784607132103874703502328856919191281946134918312540257342370497595265852674096216497667218754077966913910017940177008782976544093477433919474931799627518814902773253219397433454743808796669884586381921079699562264663028928872197084691187748601980966823500599807774273117614657106588884224533006160164418294538728800828895938604953565538497496263486931159415202815323746991766153488041214380787667020764051483485581672493364029833864969469407506125165028061042919097638440533753641737789854111348341131792145932188134712379585049036822309064380134082530044895764719487209700083212514371773349129554709065045786925445959257299752800692698528142227715927265191521068292888416302847241421694000542729706174976967202305745052753287263919257352020532557567422453219775720879890566289792165496830155358615995713501464187062039303218214568424096403161691210425416425255064428176500913531131297525788839647786801887059044514170020989679352209742141601461410344934257738068872270856650373949840482554927353944069408759304163076387780269426980782014198250534279843262486087707358404387105927640374281445309698265891347794242784248882047813410439674423308967040560015385272314554330579459342446574621195137201609051608280474347027700042647511094400527100757379789393401403641341690290276416734228167847914426799085802702258904649909763575157445263622297630893055815871151040544198612593157829723550675183735059790728740580261660419930461549515865065945095366854311588334960287289625957030114882191579251266254929165260434997856086521443803289341077098751353939460964581798347994319228983832271411538565482343880253324765883714925310540031216012504649101850635845954333840365559710836141867953713372675670664559107231665988994962982078391745143678418939189106161210831247203040590418456589543480609788963253964152385186710945543349171925526695113749286683218561476342338325778492788598430429816356970468415958991743958588285025571783596939067124176731175219405270922893163596450369826844254986571908062765906170050239164240128482202540892382803322676044616157306687283054582890392996959928900859689526907343021057448004075510816470741685977444733236495411295605067754709009522410938543209399169698495931076645812019566206659491653273061282218284453947110015229594611578966073046162486702859951684336225975343869634288900900958689595840327436343295956666442486144511232901840417463419035840480879260465234495668795277205482803660494427762505680278808723934624086692766572719075867475760728277231723080516378715325927768223608829407796440758040501163940070751858301111131204171203978158017756136834405030745537190415519068838460183312510606799709202849222765691159770021742193818732410880721920728067674713060546328592185794664894957727518664548922999904178442457713792702594716182003124536178881159418921655684791726555659510539060809322661213643797182243458130197846863443287477971197376517375272639281686169984362041846837928303071349996851289604164816445968954094048686953978176005314728586891351097407151441393962663631283464795134613100381660130054527758171092916153927084095270104194298791467779075284692110395612725853311755047567481653983080694888450224924521981087649221762530498789758838426515648409131048808406576735467594023195441717868147493871872600928652166369744895194901289750516919857776928048918724213866914658532629603451217715300332735985839526782430992471114343126563129069827535290050187528192655390975329508740145852483930801280552800411878599835040756478874528559872752089568650856449282361024900712323017075211572118052752080091398478257188596657515188946239371607177865200980759920024223943346860936922008192961337267264228211234742137554559708925477574746398155728889200685009560621148432708060757342607437281516464258261999351816525830071893923659943437842950843823590254641536040029321386327741934885650793291649459023177078696530570459926315341499291618987277753051445761446054797986434482725978986921343319055297910025979830383680292642348116673148849550584952409219527346427656382894137850869316191778506130057516345341286356660515558335563894393946943562358217909924589641829560105444805459440824907999206881181494461727987377579313403006380922490057102803251186313308239915417955951741590444322502665614271050962515398433271504441955251831166801592464017772571076392691392322884169725087213191781958745462392963077282378258491914302490456638120543612436956096199283828719517053357274082224319121833359964606126663202466032849067214970744112197232884224605318650756667488544538670197519831073533479469493333294129042026646466402173113049855814940674776399896309878666962306226495378734940777882478507052870833738173736781974782818134569655081907526278409505830104910474100030198525710654545840705609530415173720402684246504155203946720833888495842254491245188722986025238906070616448913326352972155367339990197413032529581009492117675133845208641400932112965941020930948926832972375997133661006446899992519777475402499620134820919924369442319334421441046745277729885596739599845144404682989434066089007832700563214217832580770349955829530880927749409015574068902920101818553672948669284353252672868863229098987428529991019552481494812917799368564762316080866595613744487354338775226143984211843877242603891882878062832400268917952864033711971013544116133213279341373978707929221446113587882838076920514178092606421255577798264923776416867640381493189783490874862744095594513077537877664065672046111279651740069128729432595579465766546370500899417790982371758932165277003369921129923339159849964069831726705111069976964351033318381724044956371843431340120425497606322455864838404351101301966000379603345787201829874394889085846967731540532231078122372800511521140963958336941342224845731912136503738510211108822441507621645538466408309245221208118248230777174178609739499765552291333816167116723359263778065880522714769620575067349011312376716518915139184482747739972022894162748142834667000081069596243368661177447902674936826270988164365399738895967441246558964817407073634607112105485229192308242977869761939826075058422477968552847679000973341897138999434152218763013249656346082294518140771735401333714241367171994305564244533155853870422016463548036124929236097879155949340483112499323084940579737047461493518514499858802863529537468323604681849670626670758899454270343141236866703629684207543592393798982149104156556304173860534092499899142978934384693788183702662525855516386775029018418608333618006013482648141608708263866936770328559037773047947748565317237369688222301014100260617674313428488627626968598310859298970796480823880955845653646324577127336941775015040685951303761475045922982434199664768674399363196520795904613590807763330350611063611037047280992183468354761347709089701034022184420878320027466269855636268527519748916936091848402505675359722882286265576782759569481615423774263350095242766438609706043711488453438727064540930638854299969800701951426649425702858794775094479215185250233356905465352828913244543591677542617345826387181576791747012401633964916070364832899600774309484510038547810065858217980024732732584170329708313336374973044944757990064803210324468116376732970644480492902509270689884737806167509960564731968946835154306674848060071649738342238229691165803245603630867224560613038282012733000164216273364721908495463653144517029105915592524250784986248956231352055531463694448997909347402662084396629211312173438771995537764622208488680904848839709752270496779068891431464144058353465903854826061450370106836377276607064133230914217059703389469328061201612272123239147703485615028191827140788334641168552975571855846278107508599618779039630369044882121852278250103907992241382345475220958504626279366733032429782942313572154386488098940719937090453701150765781246027825692851539968783563113980147077197603801386440109091527063141061881237459895317252197428910267081399785777703799847659529200220349928537218345226186128305276854814888116125728420062861695259904715340651289881397768194244176667653053121820588648556830653572920855008723251824680481808258183124832504302103103173838381903893210037484385976215231978212561842794226877051864279560568382055077097621935591365160660765790177794673279038245871417845472134041905411697245017918854943965515429396790781453468687662493304306348092905931919153198477653230247365051593640032920015778823597598698541359064168195426549272923725575025592375358795441656497754467600465932794786658220110085141480203213290635806266821577787509659921565909617961603519960390261015701432702585986689193866820613554187329893276501559064726687834583688489155516167624833049197394866201619687746773294532238276914973643727278289984032625727818283277792471211607145487663730074328996047677249857121063676521089466339675003590379956727287549072430486168313011259929837846131748815375690826201760493053828366469450948122107534402953438446651472837328988342060116474209289576922587253494324573173768919384144563382274842302027104760363271702614311246823041657100306764217829638552707362010933057990396844269018767524708775059818280485110789169132142075921238671475841326905337083927343213910326355164047017833746285269363068369637850527628862800599427863884684727176439610469070988807621382521784346778186122937530608205463771597417921634711398918077606958118533054678289898098043742835781723058874415112518976375670193094779488035036176608124387568369215994134726158787712539408288101981821840148241449175553135989295268476613783098502634288228757079348142679674841087275436948690991749879247328452289898521200111342882629684489565924381991031336546908159652857790057762847844133269167321363550892389392823167789019291214495911865487363126671678091983513011704862817411901265967779519110458714240173946672188563065084666559525058936952795267999667420148441069670439395345424850257276951875626358839337800451326967435215171343315481226548784211639464457124415985753038135296473524117904187928292834228065947106791536011174108584661256259350804257669123239271157948699368201533451128945310846089656601703592382391981865407866539089205872907295994914951128806423715659028851402730359445406089234390078560366533058328551625247122791707305117862879309057993809418907597297565138519731916085748466720749990869632626654757159936664601607628287610224268086971810761399827368566333117135758665051954552864416716085866843781714627689773857545073091818100507587263813017739175787069323714301352316695743012224846420286433070676626242599278963983851651773756972643847239701847642614374300775631507320413511844249263205248773399950452531400259622654714706255481103092757224752952810391282894467652437676242218681054626916999973640482434955411554779690854151109388967451709558873955049417843686600463586577594904833409491394568898400328808984100522009762148262088935820158768338879131461907617238003860454195889363666287858614108585906825328474323116783174293928034169102505370029745358494292045873395085687267506951198801145325877335873471538733163913680547371634311544644802022812680988420346739857214849700124508486850187463447484318270529533164692743167218973269034520363906767372780648879503510296943745678795101638714917368413001349196431930305375538336005615093853265770647593486005760549008445901420460417633998784656942636779702394015213979606839447172023096377653903117939145330395791098732256288310094075504956202369236638341121978008808365318056014953093364625306299962097422514962684629754382780894736101482256473197641361065014714699351107200825206229294129702822658853755125857223355060633580756665725255139373202304199364685692162556466058928945391855799906804174797064817294673397531388932608781928583146230063085834718104399154993739908637951014019806520885517480854849000310682583385233655859552719365913683821332376533801756504487481031241034864343983366371236695238859026026991825366578694924749564532686457746589337720077284052414150758173151428822197807523039057001613476762486263245523206615532581619649346820700678366336319422723677065023503667265093577176984780827715618089274928674660485500051460569145752750986377852561710977730569220929416615297766592466269605690876069582454245226156694011336073795886650390463998102436513461842423057366865206614316977772488345157829865717249417693006274287463322527134500714759815992834115075454392877198979226788567626161784762661029241778476642051641178170741807153221454185564855111227031962435664480460283548318663976744074748523150820961944354616293008258553547624649014381005777337506513386707136562058063634685858549642956112633746790977440653208632937305871659692540566291256432355979520436272981330952712332473493248438371725991846194232379445004480356054335195975679902647686580462148699322310839029585897091611892445766886996963490498921648668893654175598457020910894079403791647633767179178624419995512357104908959131288501431674185558747723488863712702927559950368492730094615707481910037252521431861834701792460225344649908075808498586023507385720589911128908454761307413099785123590592565250178635871401665002555550040609663647269085923290698832100734400916346397278154273312022023084623544374063343814202549165394157632757764055090895782917148538417774433754565171245121910133455341612271960635906599251860717153552544035554366842440952203237386972518946874221671926304787525013575383268665595558168213666830406374813157412053696819140844004449500855746879814783423596767573046875719409263220183202643011871507195707090351720568706589958527926135883542334543107585802435639750582954225505970339566817231556245655106902393939226552097519790744429860538858024745772469481878297431538159745556055761127940434350956794497797994550638737687811965471674672916562812494809815757843614070297452900440150413397688121864232091781822364373293794442376193035337407542395512267700830008265272224634700084399363661142887716214276935689579387217251852098468921332649402100558733093153239175356379466978128240165351479640768278998611271096145653258352602572078652079930015774823492203306116859633354069182363718753047899612080150068650674857313833088741870441545465762905929735137469648896673359337205823815039304625644876082070047197851308448698825611459455832299402577094306064996501504242238900260709614760774598406867084185755177712650177169406757898028515257622297665350290601959746818196880023943657299972080309947134098674668289149705600735929572466658589942436238422466848529396437456513095094567980965137788619695983615620373467397570827975890245662694799151829295204887744794161323260346919547706921904477832091234454655286244572117835604947398632325557969886914526483745088037824930254784391202637270033967562320631894229773713987105792220245022380146845157125556518235173007246110218528315863016177328524212265269186425222397680435690414373089216997905717178310811898360370161595499297977517360766092930556790534382987312413679979251319280301997040369844364716581973982239169358966852876960434161224779956185431009721306790291457852790581338046965359568950468319674704165660888490908548642893270629784191346014990284445981898967881159676275757153803910037687974649645411610306162125418270193251037566100615275620388442303065433868879456606165183246969078127600419077159603182643260833999044088701567209180824676841606833878600938462237354257492258012077943290529952814309765762445383207344117749226381268755081629645384558708789937851498853040587101144944076611586902045455273258732578307883777296409762503836281383733257972491778064771364301208480849505161983245475970140116777186769949440484677439345574905909570487341000547373055593897186827729195029343079349931750078576248721182336570352804857572628905530480351811894636123967693785722237348962667228983551384123133648871818381864485135322870616800634240176397647386689540938840390010263280198589339183083138574545907447792515506900621149993599681309281382956100158658626648379101523697708290280709339329106963125580635763904052854191098810793059566123618667007217001801100618375818041309394764088058780046756071075348623391073766340234007502974746838562363275672434774670168559036738693910879714934893702603317688157495617755132630301725236899744728219894306218078394782782568497597088218265234616128480210048092098248873976480140521761856230024593835468694256196710035672465105117869579360906498384058637975582800769422211019674547946811914677012365229524053560020487006969785234896956959130771390362910498730039697182150233525740920684151103516204078696309782816985561485140555228053280291655137123170516326033527339947985551446699854609373875384401066229512826182919732747965771972333061730600636321672174427066227880884987378418137552846306629026777673114224350913610462083169311110562093896712568875510401765618203739388736982686035843197564561174132036144150879687723544286574113841540310203466784014141087093188644960902523286951112392878795667225468497911832220708840955001961469690271078340677536574512554392180337895803489871549914150263026498118558001620791949849825491987247904838780184415237267086943397023391753364737829454185469276518758547320507245058372274315941462405503052929304041721725202826939009510629030818116506220525152336594462400201361958338188433107905204930947772408363180047684847149568807044117484452958570138979174192049742320106758401880437453105206734618486365805540572395644073335512830818365925451345270541115954889184788634022726629146608649800283856252907388775134562827863881467121729407049938398357240740862727141167131812802873313925258616108898386116372103358444694224794063262471528820776447470534037239785476147270060748000153788440741383165354421223083516943324714463303687823041210995287231373218749731976200967806343024689164290809299410038682145504009001558078194953000054572643389628606557760027129527227546801100528405086205201427356960576248902535066293014947236082964923462306987893146911982058309877329599430300881606085518608029041039470935720302168306892897940020097318957496559412195768192671050242873061351679980163637205957824737298332594285811967300676892511823848240250546744648575457699016614672290923420032795478859252942126351377050971822332057799197555277936043111425832661513876132220027014051675621680936370548648918409920525071134331941181918727084948905431058758469338018859304292089502833275692113373223445366578322445362431033170698887552325377569979796571602717547820462672526964156443966260522734154385410966145160507626294559813336951787906558144367020076570859078257382266086184536074752857976470126423913598363757847135745466413194872926352892730121416515759150444998660261054111282518827489738072673757177206509916492033139404932316671021058790886753977254028955849107592509706175820145283402170797301772394808928322715468384457642355835224924101665790987045467159254602825319821175850619093443142188704905530579283871207265550462286099921525061862682882631828232937508026930627925971047184076858520920530816325466133098255099853169048273522621594182382091899555858896727305708774580389995813775257246093871423515202014164412490680025412379755101589706709587875540602134779328757382519256019189823659061895082446806943484738132837113446157876247609642332335488359191307723160701139803220275385517691169577996554273589091793936809771926677434753714747205376859952405386074895493514135933337747348039817905842454075081818199163774160847508010805174431483346077963589375670822540243960015697394232653650849275431021490617571555788737093680007662231056955009833802167668263069017997619630887214934872472078569597282701208605215628848071507365283729222740850308432896151646586718239081434353156373199769173672309787820510594117545650801120538487965900205670879758637423877536508582616564803247299928576179144725692817867436684344283304081822563530186890482200923768528908947765726570070764812524963253708221443387821971191443055933863935837017743781015941228774424263482956975060113451789350664468524217964103835575834322382056749259306391552177198435471406322381428438328835200022110618127742876361068102204916040613382775637579582019612230176186610511867985765872813102645057898932907510123908836102982414749636823707951153545563790749035216877142234903668736434142266113789284270754778299235931820126147065783667888038387092290198713177201017054212249383738361576930951055135995610808829708564451006767954062675862238521815679902058489507766606432574905194744314658955869872988629757341275227746756482115518599665007288758778276484225745323696500057529157612223615164202824589143026083187649350235723837403111488845780382205236582351592908024423309552119201012651293522404173989306628467672139185864433764489487485963387449368441472021962573234533153396336098487943737664357669933719782699110473685545339244327615772428393321998553597345204237033081605670657434139856488689958313340347183656333906666536276387346885725320366713835021849308094327315137350391580083902994483102371233574569147686330781443010731423658480137328170837494609811050916086211475729782387109630217680435359496828919343863767821829425586193529812079304904862183474816906156328417695275773233121576269461689873681293864264237360854137420438721220448769586708679247305252042512114872365169500806893943258743559364463769858869324342866517034789866080669655787946263634699365575212906476850491574640448925091473936465353998970006069714478958315972925615038686506482757198830763160593569910382362806642942912408926938564691780035447864519540870778367621795285923828226941044560429260951592799160478528192731057836078065208293250695045343471268500936869218850293108528914907994934464566039235652936124940213742065607046339489679488582089491277791367037803697751757080403315839839936700475193271222269876160684196810374169685173780748004201145991588129742866313171799039102483758656703659380212501643303939117490210184428200954749625161381689936585800249665331676413978426197742908565163798880778984894935569121516692536868377347782671243248492768193942090125858322217305669774139700880979475613822544660763009342558068980566633712295482654108795379953015639633626208042710849213250279135519085971301198270947652422572898612149077187490051453859802414262975151550227708308200199377823362020606232645139565702930227741610824877157950159935455260970868242133401059074217125195834839149827245529949111717274861161539297574468804741524990806688064427672627673243757901407312424304356868246369607963729306621038314983645909539790165504291441664267008631538077877726078454801292188962821027171087604915074828376554824419694983648796860128187213703876875165091187342533019387529123967768367078082918760966207351733537128575234808293895204053181864794466229456300273024732305504287997476433068016211697841030160686315281735550151468499200359101388792358767935153353534962573016247991964865855037524894480929471079408307175038708905869195809623044964213790622526845422725787700706446971072870471075104787614292995656153452748606835469006486537678075361121350804897273157364827260428431952012927231775081716234161462839202024790227542666379837577679093348543946818163733298801598760105730454788386899705931410278619143983676266832492217242841602764289778944619205838823283783234348342032414937091581505703153816418810230852201648657863689604933876081371534782082613497820053391150579042457917486481104426884732088963878219842152250292250550150590560090256277084975844061120303023191559834557521870904964280175447806564833513542627931717737491991111484257385333532973006138669113932892675329736543680810437992397885974126282523071627104695060715829587457007227278151630288221584552146514605894687965921437731115454634645014553033750166518708281793836520340410396133217965707768796195758141954998288334041655237349960216897218813234022279994570873843466503344200969783759577830734274676205990788200565812029591527934937779118733118207192846641087684811223831637377145252797809645596060560194853686061527790588559727823180980415699118761522254954437092623098503435085910445216056128292414607538184291757585880552476210040725590695575845258797844525740690148765519415249430931960025179569108026305094146266127184456510802133987033821760243185253675847687250118357540303718489580905898143878024094025679086525647239478121039923829889397413866674909747332922738056802047833676108497678714477706130854739295432244161569835283767542346138046523700480544661982461805710422144840285462226814837656864672554514203346567119884020907768901954953090738847169462972849253435286685924995778408595419154587786320570033660503055721779370207851442793736283554195298427402940833320796422055788881951726109263834306571032469523055977822515303354603263147018884768973197857803644224680266575368741757385388144802961351823623383027810050900374095181098080466555541531629305267300784925982389513296338710289826518382180022694967233250857480529127607782394460510840902918734289122153859486312634718770650594346857797513362509124024705024913664839196559734104574732583486512833431587462059417284307202120217019415690093580904284248293661501319217526048253373384826496788370160341671788718918449812781609569517883740497522041575614504237265792266090114426259235693208905856101439589898691150675465028183803461702637321509992556136262786895465530282787817625313082044011228453125390604569390646120854900276755191268923373677617801099611949585544933410111267986354601440488641244387160124964959928218488811495483352950112597736267659121058709093087483533631101241739270597586736090711033947561005646085310886909298879128687041295320715507737182184086057130372513866561646395276295502988863377679931393030172017122262503177910188466159853240674909121415626676343276515472437225986624692056981780052567786295441214793147735252717000147911487903617853228941340744584835025943721144791788109770017459358278646565678653088413214709110317154723251413704591719988879602735390553019845541834416183592250461457062387144486460427079490030383782093782944596288435967969524956423711923745164558600815689214822326381101403895443496122789252873334047926913236832932578119993733710116689589272786742743141675107035458425125006118847639571791245535847317560170572362480675004703817201679212372375293842984714957515676180259719343268323283651870500874492161741602051831822384202739968052871433503340978196521159666806542301781227210747894584525933208558200803849568889289465682142772638732624577283458474831228840593120441260969835211417311985313730641573835398762885894621178660183995937913475723448232398828173893982883413043203748447890824266562723453529680667093912822226030086659108811699447374666339781919703444192446050679726574170107256518446975437630061684207873412536892160205298700347795372860349466793474645655565074031343966578106488143818510435834648707499829750808765107030559148409583566000317502256196270865654690964641987530635035118127373225419892430178854128619868781850707835796001062955628125989345177469119202741831048032281038556216755461410154928711953441560726880571384388418695544796139913881632689799068154651437346520695976408639531527281235815275207254302935530680934410359299107428633117326500157309569400070527002298783794267831212793209993144169151202035511751516595214627362538396398952773190128347977620536828363265280258875509264575174737679152129673473436396410639379824719705897906387269323099414657996947301139746152250257735232048781286332435072101257743941863398558596533727834350628225638151542292524716417920425428220389698749760013377537000903668223077329283707183996463060715757615676600394984339335214907748348802164393127150128640776050192084065270400322720714195721711579463601261785807465407700193178157918999756402754215875696294243146655980403303531932868567422394738791770967989902154695195573605906564432397741726513713628614654999777803909029391066021339890664196195509961624359799980498956109596322492503029246455729096840344522468257235688700667236731465481335899292822244144680828408079725269583516084623910172010344881563086375623051128899181104933175882326713337176874624897445173955536250125876874246402606716586851971444188781468250420333847195360512941083499228205590896775421041442665450971947018243971853118872202590344333091536216357812824679723736014039784421896776277542244303406391848813992181886399565650046297681036182491635991910199551345109613918900694079640484939329899603883526083883607442856240883678112354885353558044550221521368475157253217329407870862253614700311940976918559050213938732712649426160511791120446488424148334702711323578806892169392106650563945727439222731674295703730048104474671738753636195106332393225020059702808315284720551893043118862240728954586647908138389686629973585249227034707414892334381691073337117032481701960936403817275531703772978501610073156822597941772477186143893787230759641241394273971242169278136791937298295602999521777773843135838698018870758100488559387533629304786962843752346645098794293036187367619410401051875258970504891869342881357790829999820848529540319076455131570961275503279824920708071874070694414343927425960978607963405709562027761961359960321907342444356538217536760351131454110036223311086504513859429087225920333590031550551209230281849228750490441455052671289895247481438426185695095469483264741975259254305989611023523037104645612928971262772483032953513100822786130297090615740565491917479396000416437040060942247099830909059509650022926162834732002582940927226261487256497845475882240912857470997559516064585344505354709438287225403444128409534510102433653782587908245092002530944589971350281334731561256616750773077588183268653213327389074107517062752950470861602419303522090323682896428607153485971710450824430915262875866223427863347158891739010252968397781065764088569134562664079904600884738725431728112113874850542196494932423049203395338321136425666134239702644912953026976427326737686457479863715352013036679585232921879486819794207452908396944863993628778547236976541059892708672558382986321691608709815085180147783216977670652850763444725704235099544176919162887693939042932819347160024933898075789091349160249015346632129404397561228616181112549777307668890491569665999055729210730408441611740657254743043560782830436102956255548908720428164346098121179135493669208426365131185895408508598186474689324817931391966378169722527826235040947306517544324326738945421090563381724594657050511205442171442580367424812903773228482382687028050635059679027361707911135751312576861459446242975032811712834400263335358995760968189125703143102494448976125591756529455639745306148138141652383151903775798785177964880670441841866135638983496029727687255081190346477489659187362778577088799851627852656658195144875492616557529553867609574184994781419483319259797165644237389325879972674376662250033345029564059288818632797409301963416321814748893500401947040326951833891395958436710634270633904481804187765525792629934897836335382598756521132635595800370904454211364863545313293080077867335904996358523509505159694667322119141893735949165488998135329023476202693110678781841360264433267618582188840993816587021535348153745659203200513192829832705918589441349475726695122062458728535454307343400788661291606931997829267022954858880967190919341722039755477242701007964342237011199931039883090587745874643240460158002222832992209778834162278684110008713756148479735860078722051201175262033423030831955044011296299211330609311346073020430406815678639333904460903934515407036054751358148892238506523110818446181407593480277812561861719608004632987837004131796402263876189846650119838011190974615946727619817478337907847206073320812152113029022117879255074419473505538415358953775373907547604279221643396820581322966828309696147489211508991512825155193754642283726076408383070706084225806767009740865283668961070234834910398086903682041119442845472246143224359735011668317618128057304175394345926855917240086751017724796459017194968598680502871879073094617809981487398377294156552778074550706395754436224302253929604726834286727063899899523631726924340350432480140170182819243818183096380560283195737350246597250085898451875664353509621396588796651194229772794475717581627867181978340429177781537497899318553415886062742976986458127199038726275645407015066837150156042771978230474148573617546226024967615326439039306349921464224860071287555568030116184762096410698717879160992968830772228235538294299469211326360618719559301010879719504649893104436048579434062088855660316075648956194532390265485598163249853544556007681204437520218152254406090710793210641713462439691736387942616664304076077899968977858093781046898249441947016833154976139040358853160130975457831034262479758332620598127785162009386739767755376549467129247857889078462754420384496283141618905319058920666918937429197286569827458283814298549601060892262990633179027538162129918198553881449558925402457768259020682997285037677437316949143410298155987788198979664144463328623303989231466083111965730726402947862749563786866521026070264799299326369665327901973110296049388430212064255571060677322959375984330292811220254477592569312456103394898698654608805460009811648935369928016956847718601949395744962147334599558934487865978631621785750219063671935392800442155370763873086622195892742236715462094005965796488047129737231740469818229261720904258975439527457052450606672459131837944910368011237561636065428309818986254570630649368940849514559698831590360350520386760853356338600662426386434627134938361509782380666394719021315259812219665525020321064266808203075484023715758176006806854359969683379927397904864565522713737883049890768210755860125311088645580689267407362712504069977753470194389512356014100795763190398810313316880355002594291796685277986714660878338427018837033878085072620379262076746993743851951024872169800449072302434012732554677085639887675204444713577446582234172512533356358448237479729529222261090258915733375779119198343377362340143489732153373411761183592496194284602537417315184717296454386713142049958612475071336237800539566124214952617813791311412861831711804437223675023812661405943122136590024119286686068288750440358008046952297910551609222310204367769185780799203472495161092624700900043159833811237127453249131140924214879160354938464772946260290946238771332912120949936325821948113515157680275912673435477438696311275035229821079798475505310835810006665745038047567317937551833747017472627915070557463906945050517760391818091183769391011783696928845699630184052020976944831014767916896479042503007796196276576244788056444736764663226565522200054145554328073139545200130469465356546878753281889201165274331090961868085508868380139410934489407621750552835635031832329823205271149261793344224743105678225613504843640918852724176727960352907509600190084102010424506436757967332575461746787044183091833319219153702159276181747122654694499875656487096615741760042030897024516517647167757986375943701858418336760968736577513910336808347930870115599974841572759392394926771085571366787843908459894234911832843310374684750900972245680863510134380411240660541656658200023759554458240207349323909525190234536852562532685154650377121154158052015319520988405587340245449085875367412541622398572354137669916860596718320974551156468394639704281225865840986736094703441040417797847562792784364143161086141715862349556285684098413107932591295049504034905605891942426771373494688225540496513624793177231250384263717603654987751004419489256834364273068397535238016440745063420754591733310324337119831156834623527369432590058602202076488548530079253893283587139088350843751582941877762499534080813567129377536476190938429398500343141651819938587872597538126366770763539143153766214682512216062108509027598608977218089635245121395247882248758366496793486663716696253521622620851055711660105311096885451547458243425197073940589730491677565417743522658351578665002280950332975818079845448657360478224384143140539833889309009185255029164862522016825557550453820935645546615975921266099643883762905643531235790692238763739939004088455943594630145603231705154092404203747860466936820371727337446543939003477490996232172895959710308688557495007753954464202766929708399581738559519771634446156274158227274436926110896454941337138499005750086452098445886904740694460168507549840463836786110794791922999423107216659473450697139960766919070183976601211683624522917566528123418505142046895652035611652644585480983261023269260979553118543567217690334215074511566223789866613455055264094114712002644567522723619794065695675568049829080605289625552863095993785834549245041242766923954388973307172706242295640606830370807576518951443322797831485170837120459957534513729702072093952470909107484645436796875612078423368375366065709837474424584322523053054191871387271849972580939441120227483757189540858545860727309236425261798904579379402516706495613008975742623813057652020824652183693489759819651137168471037614786522994214869066771816232898506492460135116791485588116844427257651193230449376724964893601201237124625841517371274471515832001912070907296893009981382320953932027093023539181513710335395930854145069642835211031055328375225256996937652821216020459867714034106754324802169599174924381348191829052833748574264525182762656501844397133118843499771624968041904685691379939438880424264672901249446325431087360801684907491345448799934897841569944540920741836630574497087561959518985838884582703000305822990904440654664071757863362597683094584312342406660295766819884744037329261104393191592041986246056718132771224239210006259085543653235295590516375543810960351801769739805231186182527422773518168771070076108087439999675651796541713323334696410774974109390697753177379608423856632539645903812184527190779398856997084495919854711970527532823594660288804491563322566087831175362538977029970685729058025475735723913637300705536301137361182253925724145063563529271474187490819075449621763705829870351136311087445333708854309147701596410333106823075946258749143054965096023870243741285302807318355905964517030723550175851665512973415522299126289351707088576983423418588513313544715256061032137172627179837420913923867380046418516659362872640440735181108592148456388652104890809611065708527357552175701419130068630884466127863766596528300409748206673800600528574964575270232964264657218403244781930025002279937568724535504325338673286632442178842547227042627793396563147892752758022734154759293977745388704361919424899710194948425352095053558118469824904082741796533996634089962290493871904388501128404755592552572785066651463921139316813304000683128780132710439315931822316224631830083596232858423272318992863080846360211784431958929482998870809823027373701168961327320903372273758669760495107584734423450401220037248273084579815464323134081269632651011482865197850069558460118059113944741555395830944398744506498253594833451062852813066158427480030418408553192935632562812828259517446728243086426324762454592852045566061217123573521456609995344696606091759698985443002642637250872709490612116852060537101493850653603153342857117943399102897087309962225244485696738489837408308756269426592341994436532286968115676609247376121250844910891217385547568520285669187102878417446994250123232890428365779808876367151520132949207618227738209828015199820909965558732735577192283020131402898863889517540787216040629774748117476336272510482753180289141784404908443301484108701800617048817705609206318755501401924584431495502317051561154318985705266861344891490623414471969589920485892180298400164630001154487368758779783807785106737815772506403169586409670682476327812862357349812051054340797401936268433407883349135390936573542064748123831836351203178064237887543086258846067179451043155498145959401237219326204681381360950352018538600113542431579566776444853893197754380432862945829191970080445353715135054570892759897176775695447627121187919525075091654242294326297522760822789809215575160555680566888789850755549537295877853646036724376840391315154099972869810796784458708743907094075377822391257418207982210819803593035628259889995506947758024489704128857805043923153646045216147305286484005357528483940475402476011378113769888638617206168897132028869021492138464976110879017901987042688523507490361898812172531470226053452760562120369708127777593428346942005760003742807990460724893386767287595496830768611422049830825091326131857157037567929136019933918913392655136081858772931554228756186660861521233969692620705933034276442457834419577988564864151130873758256991102281123241324076234732296741745984996045125398858562561103811123596399547326162545480042149984261124531549322554208531186159354168856089697922536024914474614553655467239195028948740143161571975981871909039322224578140481110559730104840905376641989696316431168907615583368882921114607145757884542486351589776556266518321616610687535921116291425198708701364707532200086199023250311968007261664083050178089326110759472029794928119299687219189189731077809172928728993694909812243441233306740657438860920678994125564775400646814906793259618648881909267203897123037587922747793023499402517439118546125795336568995074895353351870172369310142886753686590765886116551967754183637461193561161655966215190231902909483065592105995117645739423845926666185019444560696540795078731971070724356096114096123762806692343588358383000675918891170897264089927587020185593684052636259719392518509463221423998608704356366098760115055628717598045877265487563996059127190187381888981744041448626927323974351819098993141217774327661376650856054546432182635180636113493486717768713418984966485555883006958439384128349734697442733118597043665882320329044569802825542063571775235778051427264409767056237502090607972143054924853797719615662904788744186148243612859313622655618911684595613440435201658774573709722240853277513976310559999088079713497403593588168872016968451214347512728549039710578671750237525374703018237333110263986875076207230630544401997229915679933304125275360070326661349696565093429642969212168662022819343720814569312009641483133434565971595812677229562938521641927376633901226201375675977352267290578816672387019130501504936596387238503421938368201679256386276075961040274666038977491282458260788305673563137276511238916091942844099657031252266187157653083205873267586117783980071866719788874427360481537725294968486938375513989317932877767856110907536714583947942693159137077694589632110070201084289780154527614190127999467380822109796603508626663335739967600871849935707363677317083978969626771580097384021237239006857986653428126264431749143079106551071808843210142154661793077561663821794295539995441195823536777150418759439886642420852710882077187329155598498759600645960974410348739200316278272874280881115753724786793095182178364216490548566547811198252384196490856939181653696399284426575283233756799919229046058032191944978469771648601907073578322917229612194440866544100919740579054609242718940157657367374953132586430257901247256093167737224891963291559592810562813405457672161356517617147386864866903040726889659386948093725841471924960483758644162714241118494855994983174103459009009296446057498891707580896886792208017867390506804492434811036229188800158942634233370718545268230859698761008687163596399672939511849024578819886903275902533535326896811087173896972930453509570545663125430503523460823626761155267225517305193069111997525194404482485972122471191316560434361546898264659582083203434983269758730203362559229095472844537662009787976781679098963348718039217472924933925390687739449858383706782937734210378191225055694246759044808188739264125980987105699254812813886904541269717210775441514467505718983645046395487871060092820196941513316478692194578220255621810842277790879231879936832174714276999334987999384416292459150125858328196268426084940164882759989894339711383117944393051663946941628089786249604118033871451204074918826685793804160578103111132582774431915554483751126862682756831639676273899005421390032181642813123158825873555220639306298777218415947835645133245652342068311828720073971039382250902544601540836489722400804727746001478447484565809132062819722738974985919573380201110769941098039379674397543499487165165027550631436557568704376751257960799055212311080002870695645176040084940221170899745106321775343031983237379091235493521517214363412056804372746166929112419338859424017692257357227937309298209862099584197412508001365754135074931318939974711588221736005787531207233843610856613655198975059636403607050350809356710174347749836173071248855831797356535485982937254904003293081554462764650958100413996430591713995843050038767321188804555915635015920862945993455377452549289158423841729000523983237919618885593155754219362960815015274296769871850898264585534475775427716645717728069703419008725033130978112438453860343604682085655323876830342905410504026500859872844950941478551018006257433524502292223180194812197983899499627022643829954217894370186251825652813188618150079137616950091919041100678611384544466793748400118079292939733632131791668366784417045613270745279491973307634202558323728607180855742450455546677162007641119389334438095555316971877025971636986421983122376422711612071214134382284482198634591631766510753413843743847855237804008828082039155101892617490586137985396443754309663240419024575111196830921389173514905014775768603677876082508791844609428772194299239334566130085374662457857444491131439005202128299077616618400798555368494233323624391818337623554463875090460194244846609378096704141339382218580788135796380210226061379340012524264329211085680146565293307577962482187096174090807069048542427485575010177697896791211798726912472775146145885099690894634928088530813580891920705986725946063125013449467164246937415198390022899652892111573359255072834549462822240739753488893372892508059086003135269096415417456977467440654869834842143684894883374597578378672910681317131172047747747637255053060393411580489860428290845715972320486357822990043375691721391153159190948781714629956909982870658223492833060351279319104205195650698992781256606903207368766051614868934299656945430538297088286518057575720810342021464018493909616014201529137341505986967592986237644602072607381907001583451893028136796594000481176710104016759621861539796917102141893309190692570787933176760558963420556314309976490440485932433478052990250218853195138589239831147157185993558555102094181053819858434658268904871116669397338609209878758707458991041595436831025691662006693248794733552430622911544199004995447324668379942577608827321622595666841485568560936904297814454712773682616268258089470277397146907744569668492876294435795332855161056289910559500956204954386694715100326254008302266858524251669555339928903317845589032409311904795078254769605137877314945389148502170203209647568981819360565621980576733093300459795125995110700488666720612444854353983583182163670814183398584997925387901312653553699269925901992493176332890565805255108304696583062807910114091881888012983751010949312560469097748253343659807244266937981767962666712250408505815530441148353454706799823898069807890332865642531457616483944684268438499850699087149045365393948948850364103331442116068575881536346217319309396849746981705740407197589705098292297038136338605133043784327502946426559612104563979113033461396372363856482489186108972643560545162545320124937815745428479738685561295689531350485076091180151814157395729968030005941161989723186699241140427096372573872978066084251209243258700099509257766698984545965371908527478176151169859806101347851742669914027756408233236792870349816473118402644111642361142327078720784995798682796969191402624938254794452126317695611495808983834006625459622867863551520442450337026831184600870522363649868538899214832233737494800842883418921511342473029274967138924881209889116566047891458337420974579873372964421640188449875307692033347814843604218499040090709801534199328380947500949050440686884542708706704769535373151779727788451072075575588737220362959905839600837429750190912113001776435630080052585869175809538981885721115817068077938824718780063850054380623388220956606335280609498963628197374516048798003932334670404357413012749613881904929008654494992472585840096783032126115759491670663791528277063488656753263594025490117311947598928683636622906167019777314457500581483176723528446578360848911499148867292645039895218065986191271224834577492829131778419546512792840551840091368469745603749857169387503610948337028452093166331884380854754365152510916844336860317554206182999241853350080051563217973480847734351573227074744700649943776317127868176530851723956966871076815958354977230200472569410417912842262408390267400691884919226925180199405485143062234981763351794648781191913686476664892481450032924899787013008914455489452095920395464090712150520963107211292687094436666510020492606522599661861461341612846473480042256400381354741561674232885509789065714808596934690440545087536202978994750769809158737231858542627507101372351577912586115770718507032031058439505363771876952899128149344975644692246455589382654956109649093155950735489783975281261763632909346963711728935203364116592807887971013953530832858489336555384535328761468249937735172392887635080228120537936898017657659686006656350163885041384001851661859585138761249060693561217687442352468190317851457611607252968737263736098549197280197563713513655258696310585315017914245069496433854574030176981015528335837482682470746751363894935600295769063919467835475348691111248373800640235274611913265516750365271235222307141423087773003719854182715654674394751324077201317522066392591573284240123906484826845625773691313530551642130303082376857479802829557371874308532595680069964786556623992246105887638986263729888651443534263415434856894525019789990747728049128029806307068588923983283093382463401766204054403021541204141945385328479606241827431206808618410907787222740725163449623005534261895330057070622182001250663232989011460341299939639420115631822452422277629239111477784510412538122022430411693570240231853419890899378706457833225811953762470558426611937331575876332397525311848529812016587688779551926069101327154657356648187935891292770975853377817983492395459417585955354095259149447048420281520142249002851320626388147918272342966700117004602473653866933065913001335665971945850839982225146171694058174063256531271573103995627925947906150968464965308862627531933171470264414014484567690659702935763015097891910970491612135053897542125809667471587915691538472843189843706108099262724402436464795440003718692748101454322037578062479927116678337142195036186505850174901527650874279507220338360824802122470299866183540147565548591579928419958416238776853839287105339963772224018316893801467193504244253580167734855234277708693023243926293351577704718592329054146075736213293893487901395008678753309481327897196750607229814728224340034364682687734231614749700303938953066280090735562786321920929626458410858951850074960840000474012376124987570181361551386083408909883054369600005718142477662868278903563782418654533470031339452948448994343871905498118903774996361469022223643927101438883747214216508338808972886362855658647481235514679200791137782042507085873268872346965194443121914813595668979644136904837837441159393275909965119059632725137597458076603097512602977941543644066373803759032954423748349844896031621072112409269830793740360019068822237947792002560906056965468743209393430520472657230911716476541973664590416362821696819128017690303387071133501993898585156822666303164084591837530876381914903863097825658691892164504905293014359186495619055800471259049248012261055189124321109950798919137542250332783228203155423866129396198606580705907405628779005860073353027315804275703829385204772238506983523727928727872419624554840353855138474770931734043756121876560631579883957904603254446982818655097601156067240782015520016960471071873472570488338466669254176367976113853069504735455318452169103714765814794351503770824445859811322203400803823032247808933040454157094004455227476949892675096048189286404433971626212581120075835598004630386909854399469141490464788493544467028492061249316161340916042312449828104973814115067466470354071995756166197747423530432907570775310852386493592887928312543972668577694436297480697851478904349531112260756982584270701115335525107663497630899136989819517481223484918126818802895604084198082050077582911783434260820591776844156756398668774361502882946520170324497552484082935463317500760379469494953877318731500007422132872612944781113556510731881441625918258617734777835475481184033826603899196791193055808386568520255659721151736632230835389228260258612246688706504187936004367359473941170710450095018763095868953833459131894913416879661530976229965386385856951507693554032817679119606569221227496692934200157601022221066465725685096361332637419139425346089295402957240504490842702239347764881742788134917742875042587044947908445117660005287159910503906547765338755554626015952817045957958453814400366763330746534685544953119607674732322343405720981921924106335721865779456745447035111493000850990816282277341954299002971626068926706564591964868176289706240496606454910540533805154382051933035475019765440422538684553142633486699048685473717887918692304036960928222016830721353846133453716372705567967658148203127014582736597339312701709790235608315632879700530761063205255846477329875533184796914625753998910606675788875989362588104692490775816659671807653015156559147217732324292540295532375171084208543226247244907177273616825825105949455328823691651543620402758704294746096951961155393860078569346837081878104234010796556395884656230052567013710284725121674526427351241610120251967598407921267243485963197446681605424062119487447860571567400192900000366482099444589106559364247003845267155480524264032138623755034296215767282947625415052309822529963401082953061108660718975311099747975893257830727606403358304402471246430271458982135927342178251516491124050613501024103447159069187529944228737414497636921444365059395459289310703957861589300358435375372294880747697958867809786700387241582914385908945001117462390042998642274441365052159137303447821577524007444666423852894662705866065275931934182893201422770301824637405156982467250758132613011423706331130522793301073197404847882976523340804954085435916694709998908614252554518870358403211332584873619151124859475801579509843042523647649922319033815080460557835476389335276136862765082301773178717894734677503582919798379608562966412902078939219123116687564850285116475193113938474620003364631185660039432228199904921079302459013917300237135896139727588440232504595482852082531705822242271673767926646877015924835272037566527753724882747620824668203871643690191502276481642557880507041967019821128830126636738283214698354010407282113468804493106355611195161063156621788202529129263133870665032550152811063851218523253226662539833231145398039454584303727247296141477549924143354483496411430144311675385792373155663328579534445098138405871698589001374194607718719193062378592997030718633443975565564861079147452521451111067842194570935860416436513890422547939953979062020866588831592349073736734698813117612108775582214562890786404928999811847508340928286226199090002195424501782603275075645159331202454952664774310012241967777108255430835725183328904181876408273349923068543016489262125027429636391713125964730302808625447525406004923731360598197390251531773779293654993617740447434170287258648739250588966456881528851920149568532476153764787610280672544877912029637952743006479790205864374777087621983746716331215454911420479053131233787913231781008716957579022920813671069410666325017667905763446076840878877584298590672607602451400039726717810394277623686526701187582184188664555904849035012437306325470681689151912022135369598789595976296493393603551851665272189864741727530256833096986297555561852303187348286544344352027356405177893319605461777121793748901662318544963963797521627037530863159863054298484320994494277038401517874460225303993090869601180474754936738184678922452701199911057033578100878782704037484509069600611726593444358177832851593322838376965612147784212209618379514183291185112349928698409832316344421180061524861763535058454063977408038438497975839384987995586352736772903927943667105473763097345359629070571730457033933186742731069948573734868683605955693042500099925882229459556697109060606900561216479492044565566505544212372523244820451242905344630819081876593084573790192475901942459971124409918426921122620280456149873781157066576760410320188462132271295497217154588424818177041379148567256558544013761397135735805448787249303697717800585098215389569623071519221231101972611001607567212652958411559396862040848822962097196220802228141195262153986302583162076367948169518807512358805099925796572050948665090133780256436047884174367023750600827161073904424275101141431165634285593950565096051310455064172326091654422674596022616602929022068323936491408230695231774960606193071218330513290740040686725963928866616025053356076031038828055237543811156165890175219940031890395226402877919247885276145738711716088353082313915327772026718626053558948278768068911145441234145856773384594751719494225828203328611059093687725841970218573689011921026559120786860670493148420335418904291806217173884615145016708647474026520025556801741359855412200175836985227621947019494181264955637482503261195311138684832042170445438210587974935615728458001366188744259952139705301993322010293680380996233226317395096513778524271076954254138062101730676853428376389907010412827919453810921058568637154440407493834395839606185485641199848250904110169893585741018997181639794066187312324521464107387501041053408025183500592205370048036249219680055415955930449920249847352187424534123713311793335413724040659647911082826280257758477143867411080286191198396842990238324549935438488547576996231830340363647587506257128876659978144077379169391052294933523950415489061669371386850731499169487287609901396281840316926924712025768085564189539507970418244358316691849903472042331236337122458011412003491215481092908968879430646973369858251980619596521767228409248978708667171357393005709162061506656837852160893834039864295561617750900707010858437536976686842038536968694388895286011526720578726240662815096378428917680896251464000975537618925643038469765554001448246136293635570492699251330823247151795150171480286399988354925685116461329080751512611533114688353815723602990164334522211816276771746128590441671226931206859381994385216907021757324740986131887452474191287500283227854251559241383394427794847364981887860077594231760951219104486802164824446442465565318471665536915865822814616877223091771835093798420422497698724521956793346871981724650266471814626003154799678260839423066217652331408654282786428612209542743820661340248763364660371347944859090801155603474741245984963328919035380070008068617795931196886063444234268949435438142580743220512056972822000230493872462106820218632973998059046760621367261655816022545280777030872707274399918052489511890511284870229311954485835767094582608819547697197312025229364297713825903284042507828936505893713300968748718993577355263516634830570329038897316606227578886272436844926407286643071228790651281152036248750173245048550735985394221028690251641721070653265695509976345917646826816079488463668705961731627828946399906717335327400965240499560985225893883324835841966441731696376125318298483421508214833176884953964346345772494462257101971847843202091059177681575923598186652903554769298540068058853738249352058348752797284989284102450829190914884383104874799551547615006167456190284421136318355304471362639526297326199587052561113188991472423401683869558985688643952686144523280129509522621457628020082693049329328849596402738762872178721926870095563969236841763644870993412639448565082491939921831900945141359748582612175846088864821740337095126194379178564816236139665925070461712145000248579688872315252535107064207122690392250415771323715842225311628788946715244015278689336961720746988510044612585645955143100822005322358629250948092856653103273294777139768756893540687504229402726044217803411779117640648047608798003007234214886223929863648023998057467412958718204373108306696541294139983417952532487910707704539232856416514324495077868390561953787315877832818845121891173341592493354172912155238795552372729758313577015500604626383872650694834638878635687673088724418113482044770279696816337727777975306925458981327537243578548123804179390242921974528574514547010240821558095886022971315235790773888503382005364875483548789582314755847084697526999371104966973497536850145301741792278290040873518268324618177107337504756210288096715033212234331469660201640946982623172020822792927135717259075630940049085720696692656296520150807688677003113062407895161498750818207623749634565745516875364507724554972956275790661812372752235397412199795710801177422361167172040787673338841382349442225288308570784335472152780204084839604197218071511149207369848434869444695621206371317803321390521009921452255570611048394683217671742075505023452507239525319899561973058176031097461478812776427031505183926411714326197008769629020661440413134952708421268650913293297714682142320430968154566176203773102517928878985159665713572135593341443148625738185072934463234613221493460164086410945626896015614626330322167707336769192413597790810609735739665738779564518409756376484148869965045256009659677648236047741820987236950855912245489223392946759856499693726571993016372601501222896321298919730528869276293205948667474728754677391149131922209398637058950457142073932429197615941008128593932566189052920529485206018070757466858268410371124654023794702546318690060054230033049994889966535015851838511500960221515838182208234891268779094497746275270569479080544699810322852768525547834207262111735379066571435317148373905822196711313528876001596252251175156921940513363182417671815796254382930650956972819517135961102941407410667111089506001670114067231857900134399388066476351665737402544920352206087753011619133143028470295027349403615189231562969243891207245987521407875917157878686776850532054682638768104357773822326179856360681626534312441745913985232490027868744586196688847754057879501604720849818819873217288794030967326394498899604588207504906981254110899745782874074664349795316185957968969610330128468487106939957952524306178569219090768691592289681174440057730233773526526521607723833620073185082969171550810552371016083595497112849359005967290517554431244021376717405083788216681602855688319109299465311098485030498801679224875333948988875056248372730983520215818747249250491708132429719212622229376118072619338667078541928345317654413346930536838193898712924646032168304316788821187700145959857171487109206305236307981795245058413777461789102590375741448624367667674014908115052960489784709307719813723187772601811441138903214208658473300187349184524151767674293609398977457751346016272432681028504248399722710253429437610889611064167306592866367506572227778986016759589517701229932131760471368014719100943243763970045896222460832657894865148262674027767008700600016019244675638180884427485590660429491857233739480769887964340934299425474752641250326637504255368296176561263776931483240975857329282170809886434239426773705912029653978668116436686236484726670751064359845051943424437506477258641306196623743608826356901327631364213046234891923202920773207602690069189148492244109084121165506583657439597445258306273355608640066626116218441146623343669489174588592661047342958660105722461890587037177677467305142982835464585053238171549480749221578617365881596504445216876113245924957577304661443979330541033833493003787614017632961431263210965637421173155898580406542242228548816599560689459077325442280668653441958635096458821836476585607762794346702056005509510881111876746316126113433679881123700860569296945078237066873353070051983969690286388070334515023895866637725804886240059776776375649237259613997335524317520209193501676606945288101125902473083128846821588280803121454487756983364087524407444271043581753885010071224206580916918015850650551748795468943840555840309608185830417715146850817218428595374771393936080093641756613608690989022054277252286220592211505396138641235575972999595620468974302113464130045362091539923875600440539367020681086338476711133630011427133334304287020956723868867445740927060574253319574585676012903913581082339467724650594437441625689936730231183257905558772956965863224534409162248450875732166914060190850894897317867529627008382384761598395625724174927364986390154551309483585703531499090414834933212155793668841001572519245316577429834752528608811893416930226871000348654804486341800595772065219195200164324762929457529311980756398181502864439611753131479215694514389145177041542871665607290383440629113499094964925462558634314472604104237930263084142025353163221667446539000591549240639598979768101524460839822483342897205902059175355211365605387902899918056280482463470982355125787821618449152959364154077128081240429661258562995162084036707177097443134150745643541374351435425868666385433474811731008918777477810239493568750119139328701792224831328658477087678047593876210747419040279069243990364250494274660660703445363639098122830736477811836639363203232629127031757678752280014315803458244266958755750547723589004121281113040576008053698842436130774665391541506260122349244865917188772287132692450825041531939489682790375840745080521528359173065838506374401016655672702828126946397025248307364057948783191640986177004775932330552544264697960026599511853804954170329852649672450396656772673788029703481248091133838313079886734899653426353048951325742805430123220436864650594513402982753607421177558944297602190885174362749337564656082749570810080414339344423886681010444383934942106334494859623440594228311458939216903237772966123855096078306444927808670024051629091565780297314517227990812877343038443714283682331237181346745644601345319155889859589958096553320765066464236226585952026700508185145509526473880420825433974325460770579764206125312090516654328573447859583889575676738483108550194869704983181786104680260682644462926986383751015946713188727933375630985186484149729569959918445317336307277486526194956363770199065861906715520999023976447081070795974739279175469406897023543345475416243371470848693485383046419619561858663994095169321365001539548617208599516966877742116211353388756806982533684083243739490433090639768892423839685615902780149862574402426761331918530899494711276954253389135187488199484821438050124088569702771877717709824821240327148434629198576043496183923711679774203612674070423701031586451762022717535389040715636855412750168714283167374898984550540003621270690181573182264978004119270360965905940692746467449239075293529324167635841154730031812351451171418010642682089733124640944028959795060747716677328193041903531712938755390471885219279316063269938177547883682131237114486737927620076843109164090815548734414677190869138475533778762414288499371572784677037165000719379618388211579091667755555834795468751072306094650290701100113789895618438278732719880780396682044245546730568575946904265816989884555587895485343002444976657913652183483467657260220915174977528896272279158148739613212691948776068333284082093335362871142347525310137950743499080229742483554261051828840305123776117437978397021992689162337044369847166715074886849847332460450587779685317166254785456164813129872020745353939858848961880536763291670387374844522887330339209844226214929571713580297309460453175462489246573524620846952370193723078492899334955873959842593244324278110563345062196868242915026967102858411513186948839497673222673372695858800834526515139150657203601820337394916579429585851940069831324479426235498274887020594927742607943196796471961751818986467753091234701291584974658127140236688210798172129421225141662294245600732581502961435704533459939722748857819510273603622958538857066711407100216659958935737366829322098770062764904881442718386758374517351091568916324485621567663520938704286573450895468470131992332872299989527087293979037272528410207575230225637955144626603190807253689088059190731389786056430003219405751642992878840832133348741921020002207902941170617467339545538649799594595225248892603236440280189631461042417097077200669317489019124003482567011374541274009824124413539080691332665145720382419783090490837626488576936413333260636147620990696868473609989357846197166020717732374400882062601108600468588216177235501681927823308870027432322924317161753397194948275087927146137844251772565425118752851789447821663805956672731772768016803622128664688764954344098124480066599241846341993590213815055605710658210032605471263597847873616080163061906159137509102616419486104093247921737373886762416025445116459896958813594462884824160873704987929272944514585951970113129468643727963737319145568163903016743019337583181414214451086426612880658196624947135663578178755412646207923027809459406625344914563342370815307769381244300482542359644759992581161525066030322320106472437411735369696703182842206567183900088110808981416672052290938807576106027595050248780839773160371323291486994554727521686387337150837652149567807009829218860126115796334345751413431423329273745788917641072571135142106506027094394152689756051622572822132792890241059976436464685068024370812026030672567307104215534801744066421419695266131652886235346262515946858207566667514314975629648997875959535652784913089726857950900278711746442227990080757056675903653480033711152864785416187494699095589227264726902071492782341530374269889315640619124498491012635400119178675067205280365011381634607855757514333205473407103472985855312964684132986839495189797852123715491037623448787133415336939344470263890897258364534302624693055790439259489702626114380595712183563098306189560303050486902344560067497713232685003654458222133033445353042193641289285908003708776350908801532013541880500692955164109404943905025252082333446453458093477667879540453164717105433270184795922692380400952410960165854623385333765611332337830514394800015475832716643386978073209914281609798121803491670089447870638645274415649355643986810480369252143405906864636373011025759652663588745387739620405492666309783325809038384155515828983284158897048654896429440535149604556607969446835530490267155092580412656743733882275078480178034644803364305681362991962715403678027057449905101134330120051102928456339646993928241636780123140765559400156364179027172044271631502493770337043108031692122431509318588282186625220324989409601516649766490828152158038838363604376451989204795108538069682747668698215582586331253415688723564073488118339936354866667135935195315349493807732947289679675321479081634716450327939783089509998683076598279348582958486339123116920761806406051619452644465695223162333935250014419801518199248388392148033186908209132297099766743943146511231334372097075243649548491892154828035717646413936171954490251383061677273303827482364643514208698161457812081612429487397388283355544104970883599603069611383283598110690210194675422142643017348171947549901474108335058335613233214491295864557139699199761165282904003773076283422692320902071526744596799607195091769614225242279725768868518704128025199650227217425895714744413965656778920244874778835432220975129352838333279386575527921178981070569876129883402518042032308673476635056857249538288436089857494319676290197394875853890702727761821667892540390161951091028444488165054316494130812791066408400759502048715933686526173968554253593348109593066267890634443368982210258475725817294821450675721690354119147404434931929983479920859530726553571108090362569521079507637214511369170957700270261682200811062392538501742614647396699650513732090936178691762505297709541464694309390435538258336651196431785934252150726859530745446800311139461522092843436336769394353525157285841371037074558427806489646940652270517278929607693923239505330878657798699861599213063525768665718147498072243921530504041018601821250097052607558879148543486825332242119951012485122529672973501421351526152658651422639852333295622127739823303051777588344732284441592793471850137038411847341757957250623474149084868856252362937787492830830203014729361964151572578883950164963032105677761670190323347785186527149320134688618281492810828061289455423852407157495156439501037070465632913203435519869034211177673634165923901444692536747426291183604907919459879326893522543760615958122427038859700030297687611325295991526657147058990572604865622978511447627343117605197226397539890103260350028556153980048092579020385491753972527293307886944215155553396371209450037106134395193198676213254921449065532950280430632893114875275259172790774120124838369070502579924518462701097222589002808273856235509514588977110870410529531796052714667994067412413242153985249071377533929466296647013438185688319123466657216487392248803341388339915953500805869833130269187718657861936020209882049858829128337172117889396243060252066466415933866063595738508427268637141016241230928990698804622874513945588758358280887482600913302163526102066042935659962386332485148419351918188838091187178218403090914386617408029591980782420318345956961715182660813809164193598049690361060408614449281502619473081835819761846947334303514867055633024339525042066876598619006301469970582509188043156864499700158613193252743043946343539787420737840206766865932816378324448537146700893350360882317157174278188476419662714571422540079747381760589542593865484313023072306541655526139093635435957530011227227208514279458524171369972075349640309701103093078344111830745278882888215185624492857682271347377371431542313585605567812051644390068174461846627320199626117522946963746131256635859860780332353981822073100050399809163000162517948407675193671836513079733986320419463958606930046990209828124604412656924324444755487602343488380868212713471926934203512471371836768493870948550911988425174825456932186489035458703614122182117438322255282953007164862587398536094958928126097452329858343126630474940339171825235598613363958046315158712474321479033151600628141697708570072038248604786667822960799049807515002498265964732142155973520721855735571750673887625713608983067541275019994859807699033017082060141838021550865071315062536506137731740045796910697566774683909712452327195911452279313909058907476068194110030244655339824032290126832194093418657049697244127044984926197487917698609684756813200127644410055043408152666473214386007041800831004341685999802552913216639106466123156738273560414695696331766274745803138363844511531652828542689367145030534891374243508505743417754946994944511394130331461556692659510539356666270335358915103612796318818801183454860582711154373817072114949884637713612848753126454862527023381097357751045958982047040308779261032923551125080383965786696636844397507062268330160478271170472323565908530634685631154560097958279731996881265411667419345851757846876033587328388341325902661181971490957712323933998941270581622273876735738292953887050876865407172966650739576773543165736111832180943107538730422735801423032003865154024934990948800728206615536224371114900926541911658825844033950906702312841279038592693682571273201533096633954905304967835400450724352897430159147728721338500468651649714429807936544420174279124717829213216704533451892157029237429607018592689036751306732013399242598663183432903724559112136696908446116397229015977585281861649126534456247064609402916621928776444060836394849680819571010137416208931194248473458976849843741251928014585099927003474743196689558256105217720741995548074342396139975704095417029375491097840983781934198926831922036419859083444476364042623927967798895968266746591929719364823000233685121797173725980138067894137414668726721828831295449738262338388805100483443113870516809700573339877522021257314130118647954688207974293186620535357417467786959551234006610744165325514884420105836462185308405938856604375992322298721725088018691190587769522571176860556827362681883539397337513562046543955285231958714486963154941751683714802241743806431651948042469913308342362710053967741103756091984169676769024266438002170996099785235878160411972165157619303047251870980008036597335518076531103544819366901965217596890296205644128378569395754951637552511868443714853505590716349013125497883078334411546182814642210237364820919269989672283012759841194113270830457291001029642460977594411526512080557118404650550158870018516774923142214522110264310992184604886478011739824944513383818804782919368970867435627106759909955784421834859804111303732786952061455187707570725152394809396175573712522130723491288967295890860121586547243968150027864451193549617033275619705736490470416011954001461278405010840223550903284179706931236724425729932227259996598942603697951507393541160642062408753471525056337545778016163763371799444338233429957869522781907575139458843410416974803879944742323506650439698228840782631448090257207894555926095377919066758101889668449188493688235934029900622776100070672370545367580111480609480557852255575675252995884311844935212022653338534325448798577406980095353866264391402382793461739804925976653612434880378050664958302098155596214736767720753913123840907924405239382196510941353822400780360698760737843592715513022211430510109292175816065659271354644154846109732390460102432941511521191658436275103284398404881688177914651090067399000101458875297095727095579447379825900674768296712090321521187196464534249302702614886935635281808200716786644451910095970728187335406581247178813016378795463176955312250573130809718061914171385494425206083072941840301236058274928875342744175362867948448242061172115096483991993217116250587699392743763530901116318471020621551133730521345666677438671868765514441279216090251363306998557739337491002913897323272455182098475191716451051117575191407185237822055634553288005386341685312299037668035273843997156798303027980509276203801685828678107036041440572430633313114288568946087414470071939818471763944367859400341176559887836983012900230888628288869911961948457704618647057114106664815292460346271963170309037194209539918947627212559565337297661877784027436599631227301358829401730940203620870389097400432626575517093310315119571010147464043280471479431723557951337337638227261825889796199578783536043724676338423924759618368169659574649732465608067313968840758770701506634195416665218117606514991867428477460483834058084116902795412744600371271059018495419237952396941679321441656937032433413601273319602195295527746487261149585304923052943858214956044427073004432893312950909295658100119025416239715761489035200409481651590161292128230109727503215564895654133149133360169838456171738478500904001255804129591014037727667627353767782023102123706806515870635851233939993874796615629580593734842078784422390377891631003487077197899229801089187107982571193714046448578605446791136705185736592367951125111022381731021027492090939726761059974230478537029300508729831506664421235559120430653779382775847194272597093273360475912686254913530499050185486566512458526321608341038699219994212522086904730939413284610175349509825353814613017006116279152068499028174911993770996940034130124793111985426722004491562593717919839333433146538490961077218461993813676798344855406587506145698030198132489328940296340388150808705362519462242810137421153200688505175648717345254467811331843463100958283448827035391586289186411109373909873177847273375711536733049810247624284414098627490315650910346802923147303521778760208417450199205307611917309713510647873070073050237467441446981969939393969642433404787245684186677834875620387287176053306562695737268260718175018912104426540163820747518822770466544292320012944708592275860355579512593337119737573670786023446249294561466924488058419769400184576829563823344080179450145683358534399836461593978526947700695417474427500152729160160707521001324063356480069083421727860447910423261643697351427523181434180712791067930810465634492154889598491203546781861249078308495181978939704488475194867021901942984138359952651153942241366264978311338703634549922018201419242406950206188076461896052264793265148327037425004234071075175770288429659409135211938929108744921556996942248149613344884392280993044237636446097169254293840205767568358687461289387873627073347067989341959147590478390558742992780523726540610201734895296725562310567069010523144219760214624842617220349941472708507321457853070242417926450948504283308489220109742941931950641774820862898709228423378344225866446281625674615274326608152975090278128167407204777340230271149165735215480996161388220104672184785349964624545235439852771126477977401716322841545284405773662463216409354551717607745040582809835241630820599927828777999802377826464063018774042852723628074835037515077815123254004824341925769098622580776116914614372153032179299180613773712658165591688599199145618016685177830977884422373502597778665133698480565975890492972999202220383410852484673629335770787060535764700963638538087681707166522020114222655783571773204326343613721001118861345179280443218705700110549187478553258496829848796441099452279035159791353844086794445086661011933167780912962326367193811470417596378558466948816937886844670054432475580163528826908268876078270508117928755355217955523370409299706172053224633390179975493210655493882107139893180832929081720390304849264088633713309669415664213677010792835306056905101729167082476481303474763625987983173512523247497577734860112641742011681817672631183123783719277125986145853091883147510146098293687804094767035232368270732463137641553811756050687095425804562694590539153932872474867811508117074219714921427771157426822552700239090087107445158125903172767838054811216384018631850307144198256136362084712596566882235831335368937939687019946827966208555151959383916155897903926970874817685243542501957674933549056517619386177910717476709492287992809253827798769385998661195012497538985149726447333242705162752140650418586329253325420136046733767133162686075644926045349200923151520759830241374306469571158007920818687064251067900404212451627176551769848641569920758354154185997346345485750295432054945979651552273502198133338852966705613084718161888514898100904425692095735261997455249300501595003963825044388375989472188359890126773216644645524438328190682097456424433007320312269706326645810632414583840081630262587068840745251385308454337112138450710586376378109233264090875889297511618445192056460456321882839885295226725434037233705195116689821551506444126203099447685255098183405022662145974162244568921806679603608290597631780851108666268066703658347714023303937474212902794620225969620177498566523554196193989191717346251709573144031880732464116787247757776926541177088495025618711365075177684512467879799338365395709429251776501103525970159457396370133172419877793648493970419468584512409905528155750910803610293957270588339602137411943787332933605714925373759893043972681956178807609544305358298165639259059773514104276563060987029965818561946858905891565333688410509588376540298441525719118738837380171088863247261023206867177264282918400706586942277997323387855243527615688390836833918837184113529593890189756815646725231472314505331399851725358287358386228217568530754349700935911371242078296959622034797031152663800756954104653157882974297296099597590319487527138061743009020379510142283379138659013790305852864828005224841291779634384944710355167439598359588289579985154356765596135758690965211138366307482867351183431713565435161754433048447809199901121252645988128044241997933764612215502222594296826884837634197641296828758816000897574516360877412711593021040461663284972242409167410275490971415639854142839023790329560078093802901904526712799500249314218932996514635167953192569452268564839304194490410657347575972717134917046012719668377111484871856194558329670768985796592278070284116569505909859170865333805005149282925292564011779462661061217165259221887492004386205298194408077940276403956204181113429497298140703366710689024751209168665448085106619294451910985741175049173547704293375878865789145421074325236649298864919123553636080304567881509987808132361397061104802005424331228858981845877394402611208911680984842832123364587420149629482901778410280821168230772597066661053994785952901687859064342662735110307432828582939445360061478983264037567202699599102675116422532406203512856025974592686509111356604160253740073748137294504692279504545663807512385919242213059249211259653042777803947108850080477963278023396360180225236829038695928205773226127783309316218036520508727720971604763766496494757818206893440177217672254215059655903104312117687046565053211957725059202430255940808987166509513868537005973768678685976393998868100930046590793426652523586675893979191410185440605805588118758051532624050235186865683069992232881221520026164965129757194440580529546456823798319790225755400529929009805037810211473092544261466446864707406006207581874584300053640123752751801095501733231378767925642369817471499137880306922393273932976744266062700201274092861964209590159348854188928127233187987916220237056761745736593058644722607863202871619339114920201416728278691817287759326587900720643319709119314650253325029866667988499593619864609820834391852465791255415011836356107214802390205546530152387258797513997114069664384053831004669978416815711803049129885158961625483029709466552862406891209122261193423035712047561696377284869693548441749339532977274567709278074337127847786683611193832970909617942416032382921988816042065634798054315271162515115912480148623718102575336168750053418384171541221126811535998843326035402547181997526490017164720176219574829155883839686533863214032695894024097761660902924497063563220100166769741037303822333500196898364671470299430915218166492293470001474126724665763177461119512056700773111130806155230310231749517686374079746976471042457907309823299555718719157485743881478864302865086232477187076297465858406999052422574442812877714009169303159984318242954332447287740797548305903274350905121801153558913260844574045419846573769171336503305461460504285008049923893197992315851520762363064338882621470024327564985864445013890357862525773614899598677128406614010532406661957144108175082310999879613004497038856680075805700334764005341893680304541952247119097215988911103918475086992325601834336736701441536185432480976403686161377989669317336183210162566409255135052452034298388686520977396649739357926198595178482173560961552112657897045104845273948941065737388992619026964423853044687801146359514737450023818545759359432519012330207739958693041987868061608676556605589077187383694043108722014258893129867273312151029009931369674403562930628573149677143457831618415034312136237439207154428894637135376667265507774033056296316144856071232553901652242383270475390851803778777785372285588739161139262022510500143101749077287997298725429331760508718594012327480342417489011065703366097828868329364220819800408773780124954621380513100916244473103797978613453782814926672265863391834325409498951711029398885730484692863511174238828010381545147235860380244191138555475372533711932447332605395871946362434167186669594039276242495497444720029845808751659362263906695697817013022100530592682217845585899981415265126570084961385519955331596472938852972788125186725052186258891330461061684415727583291668140893430230809426837727032960165904341661270700375689450001731643045410331333555662200354197346837344127095874951673040841308724661893492533412373778528577516559016693185438015752844280396659616428090590872669904080157302797750664001814015688823636127210187138870953701441317796920233831611186682577856677615376146540455744269747584689350078204731643507132261151428846585627031939173391463348794811191584574837137361970067146361688705095225919653153855350391491126675519995189308013920091219714919605742579064327274194317058819149685932877446714338860696653506015813948142553973041274659556814607746448163248851188112856411498820394269128951115372245259921269775121859018271221102290999076607453091526080017954589955042963518102686636353531924950376578319744900174124213055265248432316760300153300648340473854205185289945106709032422851036536529063983430952059106211723098861313268693352273168259670186332220937110624404804964196106151010869588498296639939121168950621745726344979229632640544599182483345990494373640803004194893276849308419897881156993272772198875213122632322744787385997486337643776280286543758381002125128475032337107962148542708455080638326038407669299665723705573233638185115026275005186841266646261528802834847470604375701023676727104763640114318551199082578819863240739402609347769862988599156682073398553544134551958911562544070961403856139275952482172846071245369816404585838542781233644661539386061093218039429552051727887189410318477440076652225368325479020340336773156784850455703425622200281241735194969740429328135105747434967313305383990560990654076709168132545702077866093891279028620286283257746710393086607590353396098117993776306462677622384852524171167320728614242324501758851804545736549947005280890107979229990892990975562707092850821094887607024408838893178527271368277939986391074313647249209718332620782038402092050643651197504671886344543808760399477653542031500875299001036583786644590654851154533588707315802772706876101885446902817283573417843175270264084140284407029385744460634493505439041049565099996317966356175507732314634175270219502637905544606012294538529482749350435684298356378549505192935736236059164489204720629452804104076118087255203517674613998383131764708006297918125191887915229516669139308395640009246925657828794242012707842336444108985027988169078139929796297666538485622784677469563111178294714539709390309531851958109150041357916077413627218466173816552434010481063100773495497687705850702080506602890512424169297775498566891769829088326305343555766667383637199580979029742617604394694488750554886125853041422721712695182134851486483873662375610551725496501641634867595369540647391786833884480576593316316850423662254857843490349067627839437784481322653646811360649351106391539869618774979193142150620200028323256840455400092341193775883018666368558322166125094264564804504252031042685805022641090098358226705708803085141694735564372237608616812754271352104352672653662721661426488404468247481549116041305084766378530363804801724976302238344600139948363265810409824013221657185975792237732732032074338786222951723620303807754286958778208007377753415448847354593696265867006908689287577547667222000316704143485529461168026385587368821308109972694160616295620340409255072367849875126451756762153064234751967969801565602514446717772180907765664036055376276873994762055813589637181661224207516872351587182202323570700692683438616994660094186326472574879922044961525591209184228258242469154493114056557632755761381675045713456434663472874160135667274340159315090557113643275904294255380026744011652432054344422388533620988822116339165273907259746744481120570114771386175309938703797646320217201542027477037918710376116365856254466763337121298609339278530899325665476410355512010048102692473037629258408276564077268481589164302140294621362102408263495998593601372679755785198029637371798123861466109247373087235811700769303572465159156258262341716084208853268469369430587069761715144740955483741753400166147691021607621221192690417356126086638877854449477227457886974252197410503474541603851080024295320852141411876184940038950410664373380666044016128000245447404234594653273572246573941164771806837638515669231409358135921560398775049046546434816089688956901012891727178211381598824737099545555998031358227440309220750757223815372479123403227692972468072896808461857695905319682153849079283226885269258574476406995492294492385162785728634156792747004793881619453759800619922075997840067807244065911932278580618437598630797438111319372552031713651631936692050786687421469736861318135656857657976059720393159900658454229824150935741945650289488374641994751993100971647938283983160161322077980600322551599474239967588812759567229969102926556228207479102132429886605144396190551893241082079009851275774492907914576923005112230318235827576520535804116384361828508014411864228228655697067507596646233170152945626078649550899877549475757813237630120738456136573511120028941493812131515390282267730403539316993372292225344417114073944958186523173795102044483433392674988963890712588011706583580220999884867887282627874951189841718120787965794333496551310657026929826084530274623169248016982042686438571609934021558637324282760717960594006522287539530353322580266840653498968827322237110405315611426349678482384280288952486232196155311512711926204503226435291951657710717801284382816741988201343304939535270797899270780868972017673751350397099061778971091746012314019815737732876554654902449019842506634614946766200486095792458905251659338849146750841716550596474056321021026819563112003306915255419035211022437654925732634429150155706287694279329783554856136606467853348094297616782428603483410806083985736307360122339847544145661272207119329829402586387694672854528210893677228763075227773881166883126113917162985006373721691204274898610417813127937416762735056656673989065173083493946061999166743262560087404883835092020656337438655967316477522277510577537716411272719377701021961161149478215754056728781161950916664407593459438418858788992508708192208972594192195697771495068505521397467056498724510634118093747426340200239646995045593609652088551647186555559134886441014580244670998275985057194640701293397342337606067931820948889326122922917158402095803168573958925077387294925401057735424815083715022629252739556359146892451317513664801896007436080987896923752963460893655793996687111810053667838724344015151266325342614685022235327397604774063964039333832473631379816716882843062031524713254230787436979226433703177149622293689586003532119826704008940190943957891633996704578455877178801552250153579412619393017480946690597401710385094392081020576335636793139364102770778734838540477232514823352779417435884892511428525864110095149931246990781174563868783413940953552974838309812062198333795674685244089534152889151980425436172681212435378938243578721397351236940281796455332773354729329786987618309746988596344815755412557407495256044305721255935097779181997245058485922249293015039460565160809688846552976409532694440143035683893430251792085930953234451521828849820240068212385779044349568213262923165691965141004251715780662071900069550137692925558189734290406586144488903416109447277844814544963153450158303129354919489937453142124083056930198618494625648360116900480544467303965803299814233260077200029046342201665850066177643814120574846239647579383466103335883332910848926711142686277659929751668573724445179688402830030450021920898601163959499006087597525775413887458474204776835510031054084876425028915483723645789013438242635498193946208843614798664483490757253694600613863271653728492596666556524418107447941649348904934557907957423751417473211942673946242005998183488656406372730082061645339598035216407934400799991490300328530727507511151540914190104842984236981023846289831380097148207759585060181665240599313709635787868385487563325775176824348648543583774409125044071234401472031153058873166183105380437326451954714494103690136141577965712523650723354186177216378538376884151978477205433722744172218503340505841227535975029139430907947849884643635754520050040974993327316952427289488885454347607958572279579484495970567299468431513744781559819815150275196345913200678731445884391896200750322935880831761232317281924324083120566955736560047485972947537075165490512138920007669604572522083515296196702618873823137532025215409570089348369399148381121099423273837033721810479232783100353752280302732642898387617010026748434931812520176477388609413247267313693176294785340198851417532308309945463802972881682344289457330681708410621181609190630798599966920904866906655360087893405149776279641757699374941108450510250577924167442506026335156765479445046229571739613448972144060646515051798982352224932515959592871125231340990470981640012024553168427253312860986976100712102155638329433859514590685856839294092866581373299668120761504267432047190025446624591407830114699341035626760474184519048339599186360197651437570637895447349764621960387476308750522702019697981029982578880758010884672077488012729386631705935157018002308977526615371805364049704746400683287248454390077340608347255206740450584908035224115496630336826094992401185465409480444335739020297162458950825862275226219966636181224835116969356478085703097176253192602009155892724742020775724087113669422087935826573743990521120713965093115940007103050914094750898349006549553455550332391948523337161248022109984700394311684234909864575693229239270666775913267855847698806204319036204517499842414998018084564363464216158714204717121658024689228528823531510940315664862674616894688369887801418267823341222369190735540086099172900083563588391081223877567153589239696929324825301583720113166421359325147003980602595483949262574799832626875347433016253022441550471078571111438367856561249997448601936918081456129424382651655824145552591449144263863654275800359675755333770966134384206084224735561057455040925672258912893523531931135045943234162329237889582678272245632799755467200240743381800181713414920283213366986722251510969900397453816183185551166210799762045204486123244654796272585849401552016931312631302975108049880417656472808704789897849447323472003080212637439163689099750142981249623613989648534754959539547922893523503194497541124651126964400128199250049846831204850279418295031955076397495512507960088215693552135112374287947454309366319025874986103282261973979904312939700068103166995263100555113869193538564093029100096631575913002998796570381645914066970632950737662453537947208004357979142409486638181777433357903482992308067064503834738468149944401119197521222608804292628379667599513052731749950035998648970339886734675162584841896545954427036682787626822486023593208129387272990155626348039759091706238213953005049870477420945816668151631031085780343318807026184368999737068037555143878094373873479336173022850089604474121772784415434064795011377103110197792620084458878691427333059663879579141953577851275288311210987602389395410002686327877548553580568092232203741065940736007406640833627392871135985331427896804401337551150448312469532055179011391994525897604250297346956166179107757735407854396586232931958585666107519651032717141310181677617465021613543530611094405224518118511158687584784621924678859686571629066458239115913141507174423115890351724232722310791211386036850670172643592529914377840340220393811639794003226069151629288469399935617935430453258267184217999223524988523976907323570551236391373424428789610262070030775420693871936975749345239283721079819369132818709995340567850920572858356377829895079818001468574159632145129635441962110166528053825767669660907121753348856435947058514094290023953789581313553258957589502308144171289182339324956160596034583926462653125757626096105284959445277687765230648111582199981634057448660166166072114480629778027685884309557475128923033026124243407937551754664950510518209390636881130351630106509729143953451504952275055665207672508851170170457540626284085785429250415143882408844301616919661801314377654439155705601489153236592006778385239141434216108553338795711577525599619516721848340533447316983116377669195694024257644011906393674867743332296799538487942848989979044180557866327338807891384374891230981976246760958641524034507140353529068249034585951808309219642230176720604592292104603886978526752558065796626213448576080442350461499508880108146880551540922154037361865909298330769591811972331913977397687546263564853145181598452457555972824305846892671666483435077006634226208738481479334669804953548434399313348326795084488472151811400408728821032303882772041637488858656936884348408047923301489267676017200010997924507129234839236069393466946424923934481462407245126054432157395586522447706978804950037732267606141178045367533281644782636227481922669380228979073202916572278131492878945447081491164169267298650231367165132466416510073158185869190950120198535197588509547350396546418495891628524531780344687486012347710434550634943518009055059293081347039999860413367744863428003884589621496212422886446074932500988952220169026373191823245657622049772732656879818650216561147597576476456538233344486514774517045962599714896302983362880681452430034031033445816217404571680846600812331569623229267810578918627264649102690859200987320954425942139970584861621381959078439573175141133827344636356632443921805247640022930686354955502959948435218446932582423051720180852425799571398140258198868844067352372966327216620802092629854500232949236368405688839899175322204740284007947247802869868414953135482843966909478666190334801149622134544130194081046312618556341020624012864407488742520867989000022460974238447714980973139768478307301876022816270527342283056178347974104024724413115336617466087085142055346651338421300649871662340618222295832015466664291207499421513978388742198816455790921765447811328326285259958966397591654143313494364953359398661543388867442057548742374954064534417687811673482647320094059192707736956005552744846407855696566891859979049288576800244782260327289355103014455518655510151804075774998647681006943769631638284122496318965991426850838364378913095521194372818828822700650448681862586159801035512051752059575190197773713934887434500313803754034606085038693750929028396243408133186782630680512684686510033800194264618714968973143798314780975238496696000740686002872909571715602993253342263205558348081944704705245263145772514943380046584157664195801278220070862489461495889921799651122646596874338493394705823829891776433552210035102623514207778981440213158626168007187159835363023068146463467626719820425297841045026631246627006282955449626123470591368420273897957934566415102335708977974853366081619148051750703145463467751071341728601279603507603121331227034310428162175177342923243742971853375657845882217408513419713993519359002301207889166509166017863591191468752958075288002088768296578391838991342450478650852011062213124680925319474823915937543945718657118670561575974884506905215551119353247868277349128608363476936764052123192839078053845147683066804811254012357318132313421639950050916603832903512905337019114527979500586579442338102760823553557158336253411005832390709781197298638995345770262456743975227745272613610646184834248809530963063930501036341961903735699626084984344269174026707617520682826634407813284053702257613188311172146452753973672419515460499170519728228291388798474175064812044691159517500290397426541192289020422111333110616358106579178364319793504054843224437185889676716461902692669887922531001746007343948666568267213601083445662907133241907880885754949011610196824547962520958573049403097571458578135967505202346937632366514820808100135132831271540626467846757040362546370345906910009410466895358561605677793946806964969347413042934745619915857715080560609893944357722735511115811684711146131180800685533605926006240196822999202814857084135659011773883080256369384336749369148016707952581397342677659290960857242174353021328712192515318238797889413880319976966835149946805723389335511210610465436224958954815775142827929834837330464178161352109064209288722480491407957705958070911666310455327964238809493703769061385557227877777983007058047711613765343029373476228957296486432790515516473799060777085162462843259952996798964325766534003674810640042806677616949088212678615957863074151979465410798061153049839788629130769180433779549097254600209260214820459788320811867060496225664487059839421968231766069619936477452694441183554735768415786612402322072503418114768831591884975827173105500687307380336516904334619407956054092965619152392083000471755234199255201513815269226737947620144263162405538043271840348553484136266671296263225846325270388940303689166180966187057972750691483493736170432384270834102887962661517509642347391389272013164687441498738797212377749828700492146233639906315295534896441426573353466702470378945546060284073787390900413332969686137342473669573983555346885659187816563283334974478267421675406567407581584483057669887398323558966958838237181241897802032904998363480971691853354959569163996600870520037789279907775251786740273450771605685969709524959419848595386563525180321727306989706310393346943959963102374294825789195623689636050844976850447699618027977692100296027767304689945399845138801890272937396904188647655241495147870053219846909049294611303166397144801718173366957596535752104220488103151157347088562616029054376554182438938380962777601239230584291306603277828079067779413707581745505465723845730796518299151125329739114740440295991097013343543337253454661940384646363029895524538385691746288085327603982517361607710757216760660088371159917384043323748698609596993961001416733324296854619480677001792161535825364646788027274664127348612387057031058857300781391215377240347502819930552227707238253098310048181326596248782065152779282254214036839267702590265257949226134138386676276169520887357978660632929329202994184642302133900256452327994610603926778418680578431959310116596125462844435078377727497528374050713058730353176478157416601462982427194767977563276465147291998522999606880472108624841117588917772361140083305253446407748195876320523920392791731665888845292471247648707020326189369918616022852814326065198328603750007317380065333435423028982256678276385414428931110602227352872029721966146194725806263595858875802565757712594864620234220168107202161612579851172537677989923770376639864289266210512288486117003221092285191926821238111427127573417381171009682162088371776787600623286849062601803666304330546593878841715646051547617994144716348366192072597972049055615824495497888094054086245281493922393797666009045306425928669709793252753085357343032131708369953445893432264926973086169047787688372923835056245515525024547927506560805964877211877698813404906970646222992992758591604583229886918263106965027820955668410313173779500474383104862712306992273715883001110660028982390751000715939191825323765448011529440563710555166016748713681545152261868168165698659737185031285708191794099212731983460447049083777593990616782789299996670088048684764482470995843342708621826360834413309097412531248885498646911781881013824809584743718077696679075503859189511070328555619145175691162777620352512342759166199491249335911985353024357825797347565862597343668682962349943536374808740198054492868488454942350378553755618878908754830907280297351043528625281537819119856862023792196302844963053039248033222219026592354778309532119971958070756403988881522617559532911101034066382772278946386931821033385059928042088473724169263633024573232461884527854285932485638024862370590467007908039315798590954198041989222267636408900176246907648806774030768704027919946445938372170836139281396428727452815507096453707719296701175426165613724438274275922678500968327944325666384934296964153253331560268598096542957434988928101306816751040037596255981927213728158423115885490328988543742117680328260386909489169780435547873456430674141950695195709201235644714709974972687652013649427200019394348109641319448216005320574658380700565089766825591132573512450858393915629878615973856823713266911592912181464237873920094406530105414100267223002094522231140650938209109685529296916170580044699459974123877797625821366104453214154939278263049082526202550981688991019803282975228478832158376261655942485817814597106546310895116649151039429358371210565122255954058454732892309569909924350128120123725176637963496173939804772361020891860713971836789903610636096200810182293112983383273376238282707958078755339648923737815070945690569340089285078966550073859360078785041213031463212640316500031445418567673924576274899016100481040563502954725558155573066288892528463417819211166927901558486196914838360721658302602865328897185442017962702227307213533087866532037799178326464481873644820894327405783513407269025332349774651836942647154912120966007991524743432010055759984986833600699543652034479390846575428767570526756675219796224768105736669952226449947707230813705308159406014420402535615772922860233344025086458122660154036964532188545467910949099624534440189249532939218857335862145093325321484260937380929330228014676882357698946697520957917198342186461746576839999927396031493974303751694860121796334755105202415514706821574053813971567851165696138718676598942091888210192239083038246889343288024864275384300280614264571058666907482006904403112857773601007251445545265223107858736174040079061903605149143338943751911138938845095915101847922464632300866580933882152708732080638413049105291805776945648015159388596916785450884052153455043508421870648822897542242078603678055948910990418772637833961996963020268125621461882915414167953091914119528940806527408940954689714150519938586993576983321527840651404645278788734190500915023127360325098125929308203522219022537405629665607785866230457038580709136566643915734474611494451353769609889905893141289957275236413116032980800195867881879952539622122413277647891400924583715419233309812057106129464678871623873262741351567328939415721713596282049736912224110471767125080257534814391112039711682328765451369240353480192729655103334870013874183368741014608944447489643174851342703910591525407705974364291888589693990005124456870185409824696241288150773944370342096222751220204179785307730352283970779382800465318955743222402911289419196571507642965451751915451785883396287065946410543607328654350906760692872205640346357469584468709994883930360696729033072786404806175710286517819750120603535512939301132030210276874898821398072177423572992836770646395942173422101404132440721579353907670811244444861019096982827340109949117815339737449700943530970349341765579037467050920906439447263432320167954342447738959041967181743045461236751072774122081758357012774003549411564855291357704683163629054098819011181806730153224063836163288430178082608998711568246425183055943672051002036204823322633340767907568726864959374670343180046859332462004412146588227271168163295325173807233198316605872470125955335725361401632894187780274134572920359056883407872295540321742865243932613791967249541217312713593024401479900479882011739209801706734369807808492187346388925357241817996275357796795950398782279138782114079865311259329312882235796215807871770564982680740784009321400024759851988003020435837069602489396591032424020098482163794430221501097873499492455713014136514757847038963079791800029022742207245224971018996059438918410998680673381360086006019828458163005370371570808670422076221950023579088929743506704346241141987006506150393122420972121330509176337063520070750747843985934020554298258128704996808836804958061501412553789033783813351204057381166213124551894839759409990500636419110549361065340240204710244145407765143208936918367146388386540895190287597300726452025102962037736741905691480543695365632411512424689180276682809109410563924096989146938700932093875706525422845939305896882960354382711532087189611825611394754522711689251920774991771736099531585699654993316437213639893338638731238214895078136850069277529775295631153840685353760620037211644509371603900991054415921013468853162138939181831707507642675767231052926433930298252331106603776774941542763177065412778090558011210331013648273148087818324404830889042467862442254812505755406048557331173231417961098811855117241150609657843048970274423659851146753798442274411979245038040440841006876350031070765097648383745490267992811731730971379156127070872379330898232098836210919736240368951543006397204769831162327459867377998539117206345230881409407259314472894665738737014895103397399521204163752919069174083762653109363275864276024431441055134965915856049830674103348247877111017631367996568432667701983303737756949945913917006315763299265546800795375538790149588594427854055854812216093111459055885279773928680638754220471220248691220409765857855226965804577003248886660631855243833544360085058272181435389864739036183015868354761656132406320331140331496412202029225208485410379870396442753889778663761199018484652037094354920578107760850527718695391178348045220035789907262936936872020535357281236779840260798541489444024655356713763421111212294358151824714522053037101759779927657711421365672167322162279930535533959003311233871013920515713253148598559797369350537405262348385202644136293864959784234570405455728748274257933151021546296743702312673591012500232836786862517170652836726420568486623251363125658703788848993846854378241074841608846552340527448556328049808922075619672666886886689487711045381457232016692258012761652294849494668548821737177670220804372977876775320369258893706134414052644580327471913864646382369874089787150848761701743217910197498238943175894978420199814857298090599670590886696817899655329928272594619438441233315367325681901582987842279888421056174893357223417752874403655271092447258837764765238867818082813917104572758003827150805954086887952657465184063507995669256151302110522546207100634906705839026277435146651690641873067738821836563074079176559798453430427470707629808074105787632402729158250761665558737362819189983026249251556135408436022958726141027117374042718855226952495580214731154724431843925319380699738725755534791309770923716864154928501317323697637940544692341362224052726979683110282020480864550097059076984941764344919296759757780895816949496662836840766574651438470442728848321048267701138979822779963221080507378656662588246438773366930878823739994546847749671033881851593279900874287900757125314733736730558456872355145467155247805012919593512792001322234144301026145726114543029207133322699787883674865950007959257117194733678740232095723335157682537797641461311130208712184050573429151331474113656345409201114812657888088726418496239290867232399097397370407942299548128960672947418812461039006842320168245090851467597099063525066242824000183234329904709209822697211129304338215160231708456393982425890597136327771349405672865430303946596630067782882791760290321211353682052099855215050007831577957846417029347089565865850706641544399790323668559424556978521488046763409425163476046895885365037689204262798121615789954418228380424481692381059337363088136466841392460576615762405128014781842747661040098980202647307491538403308718194397905192314617083876556848688082696639908295892942803109152507872646905949306977314095995468929051703093129697703202170219371770571108783952182504828229416932416287142123538567936985919040601581216489057044175348694464075569200915056257309354832803753831677345019423060949664591037713866820763005972779292730683710973263794469414715960624301527829704715919587293507292347445371824720726360757909886282892285466038897786514310159787144068300176670036883017650186406015358732369678713569788601430583057335915014190817609243597040277921497556700392929159131248918516213675206423201477621225509562608451918215795289440876746266246518791561460394209724445621329629160634056863913057974931474790343144187825887660236977877712918004158745509287009780274883154729144402227812722501996058090602046542352793119507347005566551373801167199562816292140200032729785465854658151298635595703278421831760798380575352429057988951012845551824909231340703429518011052660558248020228448110133041157957272780423592707531059641804973766073843108619603762978089643333894998543130498850926635942066014433449302459946396928969332623213306834538116903347036165738426594792062698552546528625744254156336900528223550877787290866422630998628592347587140497832071254295406982805327595575337044940881758671227432806687420851418315867506983863133969997893142482747522582739642866039480530998112797453598516418635497051839872493898815138106235599693174008896988895048858639813018094722819464011007962572818705633627143844732333922323619852195365235478194242851887084141333675246059053451012164461189916475818586183683153229259175272452760796095228398663073140980449637385196645696328962894010220185195332142647057901256137299947020874744541852253827626030617360078743157329949690992461227718250175631303205925306583841241269005948339680102437596078315872739851677740603028233724240938731991970753607044189011761071954235216336447777524589335232998965742516064039329983395598061985093104585449237142571411906181974956342893095048715823507686197820371540697387344867016365903817690541316943910673149682323372411650902647799456067222878401607544084047379687584552419128542866780481698098669813185648422527182568903719181306154711235077635588007535449891789932756107076917938788771959768328808627181583929054848731062893767211201260628497314387647358621821431007537811225211890721508587242544030081402261295065567404939637264997107861680720476169322886168051197940629992203095102582756770095859531542733135369283005703599513039487996290520442258572473010858743478420802280419381314036643654373667578324479409170004135749858519492989001465006495094633545435091054868771201973132911197767382986506301258566203011263116613952966359804590350034903090849176893598035155277214984118764610702127834269806656467393691195967569117268528297312696114638541520955382165284800235717408167532070012492230697362319340363411020582152016558793594244639301613859853423046928170399443654043268111841058726702629700635231682007888399886537416819055808566742341972404636258661838832962475967212649555436891643110436251218739168601679677087521679502688932581724035423714336661716841597052233377478092828356962437754990637936618330688717727224158217572413424310398255739029164695058280772595303237947084683903138399977683675559943383802988730328558834328387961617254088816019266345628225828114857252520157974944505381300992634321200770353229795240168363989924014650143764730778506682857318830920536477498634949973157338134931756418904753007831673006454188650535303411644181947893194915432347901963835938356165918781867340890714586196848240783123633389249429219726230687455906881809424852117671392402303973770379813696294677502731098094325202861142376401790267784471959086328917911404473572615321441840512029896571381890978432968716200835085705718535698634201755757423303594316866904236659438752746858507899147842021786894158334314677969562347197058405085779544457389210750369297684399850912398985787949338638789414123702873916283936013865346782441016147899171538368534610252387822220477888903509099951513455497192951764836667561897179966636182700555369827915043628735296326772601750630901962617021260542751382184349674379115691443286157016511413646877504748026859660809676389121748455727957461975694512113363076263079822970697497692557166617772299441441566953192059440828523301626481614208872440784094264375242129118124293054844213275294385151084264297267521244051674959248944110943596916209045029581394564377318810349395982352945926796842524939141546601515313355245413893318292234054712145817910774002111463042667382733222693831529952641035963239313299591473100125597534233819880682264512527516753977895997422087590498084404551330557361932842524641495836136391270238965979739920700166530953598337667855143091593472228088014246706317176439354897374783332521367276683469334804304855207831938070637172137786989377865211537544592535499141094433125738500329805119945225907887973735511768469018822415837438809864383529103902251410600564187938325912882179155068105385819978903945757465135125824244942385007806249496143757781719685123761805271719914793906701761327921862421079304052390538141782758570561427824872673102894478763050159559076635278579094082256555082814641452062688970193388577707788680529494780822167015674845306700730776388593597095171560122063312412376571311090978703349230581472202101672184924955938382726121978208999435552390725585448333169585967683569984244427179947533553487279037867033862722716289617320800002762088834132012008070311807824358257038447378418734602299585656348443228994622791497305108133463438300085820157104533421660655895135795065885915312006828497795777899130611373814262149780634304779848691596432374408539861377727433956547793012670986474521208744388792822462732492037704305205184681446869265102630997409641247453821915469386151202746500727902402185101484086546771102011590598129531751683793858712406809401568950550209012989541063526385803713964447060527513472377674207433931651725530244796202785928309452221184120915032384446941355210882519908707822029917417214736824717093734550195280059717153958157420256388971901231891513073767253299467569325080972136310274344002624014727069475533334415194824979364704606381062124734846376473058711038048219449358238683822179997269709008436656075578493176319245554971524463266594869111131001012393070720314448089396011500996980256395230806803069487152257374821046829886183386068908076290379704851791768668219639647972824459151759864798476548085667949101432361715714562193082608887811045962305233167249442839654350218333841791359611646459489091228709524164099515794948610771593325480781308517695679831306010613319708691571312093113493655475508598348794700496104857125495908299319781537607952486238768821717414579199378217948570939640279891987041902679717455340035745470397935385486860430639044468821555955130629360131089172411715209678212846008738144173526845322753033969971513637957688622815094626703434879987885314854521117572669452184720443551009540051222400409865927340330016964305671478825975979857015220330407016869093972521118590944215910791503536704475507887816976176914073644623592492709637000049573433267632799918956078597701969216440587425301829192740826727778501465767231068356724764131180115786869562872547361330135854199511462762676912058081773502774484580832289805132188439043091117968453140692167772589784906742983923322951408698588015630745296731418011661727366898665999395709472563029740261890317146779386992071375792030972747986348956412199644854668068753426685699034295953729720901576908017990003641489094624112178265196261739605828100059972839328133551812546629836598946633808675568491079483585725058144977482049955586841460583882819699201734609251976035934030144031245101635001121177368314172638657839626261869061893392496097320792299742383274155829639280126549976163307938928906549897957708583206638163061612858898110447224833666490579511490912891383993839425826877221147605568070575162564336800202759308275922565645020754272108658258556424118681409339830648039121343191425916414640398039326876448156034742548856979603792949892596891548121341651144975097438487182015291131029675894611139137022314763017636717085791150786066008051277891428705867935459735604523271523785793196392604457997375946295201051165504889984437705258516244915717694577670115758358462008947470673811527308463268820737792263367788285728280525965286401170238275787772200117956799722742555494901503276138620005564797355876694171628643812379889697242861298688959878240795915327150972679486401400659395612236156630073507342902463758565278778561361461136258407231685713085859341981023688133139718191843112872890919359339721926729014293673857405303266133510201779425591938257022564434865102647451930768707129946740986027096249693543589437622103034766752747634818869798932889573491787353648644380178940450479416824153144611323930222788112266516460675350648831917869956348506043509598357903792636493603894450293970160844077827703888000280779513634979222760137737400472600026749177399000827524960278482881071295010579514909864494668560350789789472670801355035436969899190527192276596614977541147876753806249132453767449719116933943614301566330048481239047776084395278777408392023115478315546322545823396802477602449967701348914057423119631353563904902445131951870356821713904721459844212814676653616355320612228824087637066218698215531866182950340680723495832302150288343239392558856135178321460146869864150827368401259655398270684323589572829854488683303170934163556181430733281741907366401918477585683508497316692351668759259487222103300955859791205825398552236831074137960502130468234844984489465646467269833823328729336801079476780385904324952253990652589702068644403619063687585170691882047125172027485123699032220839355628741924501598721706757727658021318766403724120432094378521171307798839064951854361266124043223431815583988228442413940347905120674918485519216020381458304697473450564144892258488078119873489240971838162483455312764292885122630284710731699000024613370008497796795007919554007149705629854747255652943015911830769599127215059477682983501216758138111821563217001254880977707633317768648002600228184705665446415467640353623560081408248772774972942337476030895247262452421472466316642796279819486568257959843111039917189886910549866078329040577062332343854855424615512921457466049529460537671451850435742500436481240494891797931546508268392816937614969507193572367045056542999403999382343295550869033108360189357894504785633936949359493792702378053056824958982199620575970838195053122694567496504731805423394846392715616526908421918093366509551405961023866502851627519574181543970155652157953171922533740526521340778855022068127555588936879072536777505784350549646702610522954929112647443937354338625742267824577851197931270834592650376255047476768083238761023282183761108081298363671175062887208028962706378709014984562250610869297100427753689164802482585656484829801289189986426357689185379836268722110628104155386656015690504857386532145285432818398305719938500872267479992983473381128982040899719129136687041413532986573966625057076176584689234208110262035763484977742118129786190611503570230140211881215342334820160137586701069335564488600969996986117458715271276031256276625606621588697912585435727233982025807850579518740126164745594127884821805124096967814414402111341688415759318662254820080521121555823755350897938282027513288488123159041819894201735457524754429322095794823751650699799061181831656340910354494499928974219717752698903039886449007734665629711258492527750569126800832459986248676344296902743354546442141805804833621617976269997992820576983241561585477721685525248023784214443454884268276889388866641909545905112727311120143764266091687995358573063725510197548063864681922744851117350413188851849816626677474711001609008060383347654120828387380588624118443686600536876875389845227344998362354887892343669726953381814737711991929173805397278063076143466651855049902958603374712536092542973848296252080248056493181187511881566716012255974421521728551037980976158023645408514695753480869488518877932660086331886265008444618359050301629587046618453387697961436623594546691239220521862030801018888267390393216655017550711912108894418432923424821436092029531397339196247411277767998189014228621379139767554722744856529956498778783774838948039744542877976112386097567998621855389401440461473042642045843632553332081777831888721154692286322319558296988405097577483137509103412266261644998748640006089988779693856909371467896139611478509265358152869410822905310898694000272175743163932948032049487324769276232569399633435228119590023038925937212282921287557572465490347051864671063289046943211403104256202379391405511032369893194510332690414801124747242939856392037065576932244861950262185292877282431100931295381086443669151471345474011212764904769550209682065152547619661823752477006674257602540783419142989743510149969269478958892806834374074872434734610054466920288756861293555600299352906482371825451742866659864544482331872107505040562449840638167919788477370344902240437231389422540001743506839445523792567359060402275840282902556553337986837782844257252260726085900664636708012434285047123257576726795370434802862115595969703025803883110717252912959825375137363084345277227271041807150253005535929455960212415947060255538852702221357835304497980764422141469184746974270157049689062254470719187607792156825825512778573904203061667514917184834926758850734000203629395954937688024695142592632765533058589381187675222719178391445805337591240116793524724562709435249540917503405115409957969681613643011426011421251240119086097888029157624450212195759223997686850819949467484159894896053376126167069719682641684092617166377627258558154941311850680676459568231144648534214665016966143665978136894637739952466842603679203161529143094786086927845914997312926932234151991187262841732946342099190798655956866798438334349934897847674532747217981037824551661497431753121741596700320463891976746009821866322549747227794672473233263069195397327078583077174284357566629503925962456423040428890383780490851066240693163819677700476725567538183681940276254165626520824399652531284708445016483683861466953416238005230624532935090928457441009960045295407759469056581993096308568192423689739212785472457922691476042714823051971871375548908248943897306177636450855304200479970385666554658358637286834178206529187081678951062650771531277419422976333122226376236202352517682356660129101017729619884998818330859748283583375126369739317099343524396480388351243138371293977734346972720767561825978547104661870513005007813753211285908955177232523578615076357210310495900274544979333444344119482411426616911732680206950217379246241116063851572533620159194776795606005458062040575883027655824143804797545904674073870754257570774491649706123048363625857940955055034262723122039906087920673897376032382273451798687556610720156863110696380350994130216108236210901362854491032648819137597396645307750822287895379847434134295545906131249486448727576307875258339604813700228292995244511701773016801624709949496225086223903280631449394504720406808706066903874307203353087575546209265372153467222432579903400444956114238797785777797590547620377112077133681736129303689144176382308752809855120055838575278267176616852240989506733719470918188599771659079226913713569222922795371818779005027113540615203076089065288998991802321763494259461398384493785215884055391509496466451905679931203916920752195530657131471010693965356742163320195280731843482421013524070838612428251353449249688891540271414887528132557018256826134680477289886647612767957216909658664314411519147675734583953917308409909060572523425167264317831653886381911500902721217664167341516676600546004853103743719137950435800347727772538343363138931816506820052094555306848000992313460615300485512981245840700346537085979549935955491257025238265299711193778560923263358795650072343370002543423475294748914967094493599141538638505512562248133285317349263209377931546009371349705342208017147826845640845437103284658621108313831402278556057072011094572286869342924798415794242740000037497660475700333338943231454119203425223329539889195516745567942071037661235205503315300663612039124952558417316667963514255241839884535160186294252750690695035439665013482816567512774098923973065222151188037341233091636361907293114214766253334902712615895453436329094349183697922335265458598600723160837168780624225574578904941456531577880725944803841059733417979705780416445336063624077929960993876122264033336970494943560780566141632200051763754832031733339095300797181629180258997850410551936962089062624693094755493606351223241174122294365587939194586619158940500963625871331550273105007692344001386216580588936183303844485918133449677178528817395728840526498203554177307896774750459094971355166417315421351879271242915097246794366384965924914193604464989486809751998576369212253058638809868892939250617407237678383138135023118711626104810504478221125446546093850160495909666620738424917105421598374295693802853349239825623454872348779612111132438759685602603704045263270076799645249764962732287763472485086011264097145664707378269066391891910448928520591044727668273023415685731848609228412432705296390012673310373197469563756213674365732091956650690892106235316783158425694669711660518247046368831059340729759744711166656805250006461230808720200280948627190660273930184000930942496652544830546702194490847299759741745638707524468438147112080857953951136916959665838207053463086034355016699368421357745429828203619769808380818806498489897974522209979675106765657370099434591950204263413829938022184341798499072593664966051763764718734411355489265527010808706368873842856638624005365927841046639446153333102312341364204103348550094059212705232952551639031274790235673887239479835548297528333869368063463764572832973969749874595573154108815935091115498797781497654491005069479219620869386102415167554339458766629032616760149210002344727738443406734984552763339819639629319581387620708212872195253261145477738032491761681250557908121692132405561262953629662851839786401487224757007695948347373841090746941648916313228020858022751918697153450890515517766224815351250436721566188808616242885047525248944006952352495140317598518496846930404054642461047530096458586484477654598479691638065950123951566371199638160824856642661007775207927238461664089828041576161990450191150766773045625695058224372792762236177866391456149732308866942488384233276769500206403343947468673833576060343480806519830394219376663189135993815465650255350176215596901282141295325614276209181176301793682856663460751332498556966659769867090636462118417471557109043621007507413200925243363412076801475402565626417748504344032691256470263585974100146291727994153059254337190420937516928708660113230237344926111659249304431428002679870557444587715649599186811188089123422921263292792646052856380634503222841769729836925158376519775075333489675843599516508349094492841609826109066823824992111808057587825437801218453923101731235951670226501846648746919389285599970174487819463733098316496930714045359076322769736548571875805263843656158102960959199389087404353447579104423268650653971273908074926308874546414260445323724094961011500106487079754955303323989754912074794521120088003115707395121123102599665032532373973359710675794488478440787174064533196069133209327311797851102766474922100010880200249815568002816675672966097795170967089669806466735246925244956230867722502502928214717049993440894112655842483059502005229044762204538773102475161958970073172708450191446387817125469674529216957204358711464059123290077429246865137671196338084289389812266353918516426074237589688789251330755851060274043732255595410561763834476433360331741487670664849418554527497589300410519840707111812538395918150696892297690238226912299446003839901238870193855427260960844576407865294301943831901126511464792317853745861799083735433826802952185897613707154524409056769300712560528745704235608244045289429132563974841516780351219362609637427473137642020116928402128350234651973349660187494827478459609341822320413466016221854916478819949908227393641503107029743214017332995820530181089675997373491626994692492688919365774906643940473562823220016544154982327937030991921019935816322745746001779090332155262728551542891542969088646183854520538951946024445202179673387787043612802784204920536584502589636826163739369053483494654151289641039884494400140022814388070917016569121469733972634432332774679444748950039509880862124587973828483903202899071646307826856812214730073591632260846528952899848302496993742698351861402954854954441334074820039552819906006260883078096531786592769540822885688148045785548400635432443699698551439131351376431639329556878176785610784209813744970575049603098341363114960860925880122492224457308330500255926895977509443507361650161201105567839096427413524608585461088447585528094036052017000058966021863025374161093203207288158179616611585517790940732504578938339994047286730355858304958343338177067334119476247730480373469483272451341356599780232819442036983633391397869457606196131172327860584991194028855929318276371128174254184396777994235699762863687179768006926286652807829645688456041694264154864326752421909382882647875283511889935255643628565540884875224678091313722477075855008801198809955051645355326559927614060194153877947512341880135037922958479473901138007882723924913438872771311010428026297909054059053914867920441071869080775971416058268969112096340188535208977141436717952684090866155742501771751208163195103530781756589909185669290713246841966346681373255098914226684222713920768325702084888297012649437538172960762233601065108132664023010342112472041160758096531575485782197429514302012757612159504549706605122491272048930673259995677821027354964549911829211896040282639549210137049875507358899108376751630385438720885927789245464979419253728595907531242633301130848577664960581358817257905813257121843961654410502823729788668992211810320718924291666423672953968320002578966561268736661525673127310070514958580097667675137950579365418832505635113535692416923131743669769642502655327259846139748148174673646570417306208909262952933949805818826299859896091970376765278803792696922126463394423891250690533704464996753773369613142449051434695403668977617733860634649981119901986155645587521468250266438201176831736450299788994159922844278907430259561196818629743956979692333908798784804485408429208733132770548202940220434686055631189214824365744491482698888956266064518458917187823168730218044641856028899021415048354985598623930020016385531075589585158409251420699724812007952578613126410948641855671072583587663474890498445655185459718853529102908385872255068588157790238539035436370474552660420565009782335223173682279727293269029156153907381743780451431777727448076888404755890108813205221285085592950907647568264073940473800049253150480621048103119064193948089399189219141625337844561657236770465386165927731391706748925296922927492942381363964364272855828542015342448554249492568978140574345565020005219256781457169688034833621732722737672034447186454939797093994460464380328407511382972731992738864304612478229362522689542259258076020267742437982371897060120773529808470611160838815820762570601403618300619243347784256457941845611603511978956863610285349945675060434034144876518798500196802554989356174716408940580841498532877002503127626036998133973306409573880354781251781658074178677654510049681126168862349093049181065376153847442087847006333442655313665977448809732852662858863550800393204342786502543034111434736080749280355154665673518640402323921035334989780645711830873350989684773300060583005139174939267810939042179068338441327261982174451437817192385319509734285855242794325039145884206390922117709521065365530096190842573420499404409785053397910382460401120828778527150472187964470047463436057377828098561944201672359838189581659070905156761302866554759279886786688957619819705239093112834595584692947739096298827564013672079577780204159040306994272575715457531863840036067644833524300663869327936786946628408742541311893556763941851353892628146796060779583216270705003132232031354108563461142414935889075321202381212908006405041463985494760739422699733177529886220114521983948647999405427513771187400425505303613260628006465776263821327396923917203386920740054501164436651108130053788308502031105490055486327649843546110695598275679496296191480372502310078267062559089890790186790324459743261661286263783613996768901589702899619301076030764235648585180702343220964152897950351777379244386104390705804780546977768057418589588996331496966114744800817935721522174878913940777778214072010149531683402913457614619321341657220781845937900649102858046163470888806288288003745017895390710653885230685958824426516828530596283964636084350641354260600690305419187272187223238464744142770330120713190762807767788279016284928363293704972924186782863623400032636918895985804149658521840188380260936408550692095152376011846748223663506484275023162135489217866352433183917406944442569239029834773869285703151190809447739448293520407052470767594535036983148398185828557492606461937741897873619286390709716018328440051448301568216034681304169126166859993403660859331020536350301512446845180523737170420226862908855402290881924541091143032132870927989760082705945797842613155675999303191748101847752365711532984207574487478633259325954072292997418382373275190054296242529514720681757193958520934592374642588804632297527431685977511427069810972857548838310528960126831229094229488439488443804451352329541577023765426663317455014255779487894651818850197332262110568204180658429114059481228662707646020656426759877122415932796359370741116584784865418808301221839969223495549730912524757482286554142634867802108494725947474727038891180067539377604763963840593499686250416271079509568894407956480357714858629969923692737427841738145165851776297190795059833793123308189286757230977664672573230841678017581864340828930499785442802258990105817028225650343826113517802182461710950399332884434813951529085900548950032442854364075368204729325780855634776593144352321674569813905293027500625740130224921934698999983756394870508793575888439171037635479669626658874249627945553051904885711209341122962011182318759555899010811003652854565155008311046018874542363056351638998388292526882679539749751367053975448492394060599585153750364100117245423072885874834844102230422148367924973337340978428426949801430185827989554945361051450497799250832121314252317449788178444151966239361530889028654718639984739826581860774341500902290734534832174413739967849852888836491878611890279362586378831349040338950977259311838859943655613335929313550820004943655982623311497971276076695925555328896288198247344045363860754771471026963223911002653415601932149235937390793640864726575403024796340770698794729463030486822783845048303669237298805819710953631289506636436385121411288044227045668986179677357019370801496221050017675419963046442886486567558549957126281053103801234039284566254361726846580633143280288367997559085265834425612950274172170738656385674895755671426051813673724633110959120207998213249532133265228175316975593007632508137174942722254890099952389069744043585499313964250403798266896641895713868286976055825879029924476103603503184626811840875604874732768966429111140342098558578925198187973615013663863846916824367344773414219704824786140317368911720260521980693831900363419813636442531341468079315065294176775858139036659776206601756574661260878462880010967905601450257672057844096915585196265216827206745984929760140478236087746391820953844776675188638125431333209179537283486917415454704284269223141435722703682931384311327006558589662740423049918737507443033638492526517424792362466760101650178912367998578703062820730005130081440452636671989476703724807748146292040315726571759288054660696563675282873512375197238436450264426792842556628807259915295597941540459354524218558686108951178741727803803344961431095140424212511320236787863601722983742476648683379752520716351900795231998759432011868448101732566568787755660880366682278821955736390303911462537004187526256297639290436260874599484847461645615553733558109465898856091229469244110905063601181509410098870028917359316364304292812980996997333944270766165190287580653836874092347722520235130640574779588762808557454867114922952143793475272944558884031867711155339716374476716191326322086049420445941004307263072451049402912800572382808925926453920684328426357384418197946450777642779015535056784851558519311405346862780042724913494942625442844071040252523854695523642320047402805122412067804152745099978635082009806365573334840606192237422340028048253702176714600333152497871782059912290152492751857291872308088794536901670515473775835771651556693510762027492629314121595562370448909975595645188853824325036122351810694858668012320312731886451038180633694894333356921128801924452097989513958560072886921404362799785730274417090033249043410130932202977390119332531341393231505734375901479269247092263142228982145330317191910005586949401138299967394411561557011820347376639931083642699952165677318140645546138200395533023035175248498330408213358860553330084387648992546070487889522483048039356243847602313369835747834544098803359056509835630177806927484835916053606429790365476539615561358220094399826233016947229938590078009765092411815812243224741566563930341095002561003309155885864731602648746282958528217568898963816135129070038641436901758252804884636802988125382965557342654386515926302825449314832333608237301979585591536830831694769325692030919578501212015058211752471433897353009704325241680005613969308119843563160257720535236975401024886343693851761096822716859961966864189295255802579714584702192409212617590280706663044240646953541784748901980285314616483858036640036571532828135152592436311353964688689431862586297084564331484928218286084262647297187180764230043889659334210159428356911427829993035050461126194046735433557740968322829054577981501777973775950798079347632058746924790952120484825366585893025690412754121068463732722854183520651985239118075727952509843648563672109520754247295248545954665825438463620044170655697878698528163292894702633306149371226845855460701596967434070190109699116253306865273192620530949448646063436802818605978331260043875065166065822951659910115505962235768320065719665665797675875334676554811108973012858216412646824821686093203067230690066147206730562991341172659737899231689033451637281194499293508599809872872434817741874653995992939306446883002223890366653287014051481827336981680490062168208537684836442014928821259969970220973166634230008720175250734726976392936417562341188706253841016485026114219807130983498622124700565898704399583744452553882031146257765307333167814370706660943055893625720895220980531413763268941756587843655262341470386158894927932748541207465691899459420497872098650195719147938533161538118741373256680149018703327662224399101460859305370153125395280622169174199315620599355589672313768901982327531522107262310127077861943418383197960451631360692320347204429977530580045912990622027241655197860375147878074945899556725398006171027372487651117912530365073716718281322209193102839010159010266978245701478927401440287190213646507088565657172531663258277529983402995716236980700709393536782873885143531817946332401232365813521645951593993983446838475407630535908159530393670281252129622528983922148983349946221017831737190140669973296233797774021826425568917853378892373349951381706340852631335151786603160478118339113996527944525396035766610525995841010764934671882652238931022533319328760648434162930720988827160350067174814706643548909911335704775831459293169427337593534356743767009202292189144380992217606983137826925398318997918812782037157793998872360431872815806695490390737413117375986027210936639379098006793135860071026236761702603802102982001639533144486225254545144446451854462229296824728792554213278987380570280934521250818499060283270394618982907072781977688778826885935405257964113087142078809863315101687696850383580400763704196968729446641147858049750385446579739389941524191038591424754047051872774313958402801177819684282197967585554274464235887650979717393953710056128948332796431672122961948813728187799158971384400767199496681182844663274739413514419613169844845654773062755893714676340817354256538285550497777213386316054550022614811395713822586325095253545861587748707938009506036191937462707239403678718556023111345483673012393762000217693335138145260600988261153286935521888451912469119418982714290769952579298907936547977758099905771706824425426718004607004802586186400003701648904567597976661614920650865602271297829723362155595260068203011775082486167399869694476502310141726479125012963664840376284280393152725791527803388659952693874855839316500037268258419697160915658756052437489186455932049956399858984035529409109881017230834321827734254133238275242441661076555956142819454820444939114058771871127191802620199058837998933651171196674230610964839912977950220898793800327056880847337208561259771193890029044843755260184404708874631859117930167254844029261465784176131234175421573495517709050886918807834882758239723308350237408802315393283751348136587775508908748270096852465352275292954650705175169058524302348133723541098393486965606361700673043505736905976405478528441794945804569089705539915630487188185694483903269043202666856789596956157563706330890292000648462215913643368653696914329515962219190948787853806979136169774561667487873929821255822051470621100423344663409002258132984863601455413542145741916325577870996170324142435110762489928703371795688534406937220183116959859331628031172366164747659294806804570946609004997395600332151725824477034205100778238330724595499464868822687935464443003635948062876798480197739508449965366006004157967379770756101658860957851103391636611969934763722515524034425216010274920120460214282928384645006641138983982302115536236597856101031070030678564247064642107828310980621429986027096711251309838760188504141334950899330909560756705000439704484987712067978036426520289271096024929340044186283644476617649345069887122409883578058195115983075743709392300930488702434531129796747788891362002929126698374598285553833344194641823978497108871817644162421146537834352364871115052604743198335304534848503091436953852187017246908164027028179272999509866753794810906860850465435114363337907485435448301119513263412580116281204691674818226009415640006479674611721933936336119578028854952948436396083579469381496158075167584619945694829049018624941549110355472457115164457452607045782166142437530410607746264158698989196181974079286391643830835766309281141119380692645603483652058804428495626218893815359619917352595464936612813146745396188444256083615426975289291278179089559373123011498261598772480738945641955758193659457081795674544427522933687607035438510108799056244670994460361945743635237015606140248135798936982546255522727648290610863826760072921314851258901584204047127629609536441396570163595456241222141633839487705908445666633841276035462901989977682580750870865709878348653846922874570784570647649446370979625488924768282658207574676353944431313666455271872034896470664632282707347281665873347414961338370301671896384813796267071195101604271959808169227012652400086754097413786685596268221803207612044748610547855940234024538062002250929394583696164376682854595670309068152751297270341857059596648615111969443339630715752220521946610491233199656913204541183853692684394020997445992341681691306780409548438816788987692194125958137371089771718201588813904191763671250764510713886807053153239694478132472791795173620619299432058607942229885348603359452787767734165872708361804216968529014446824907368298175984485137966570620812884099985431933593525926123245059477848731701634354958866527908445707135654169382546858439965763967309493092552142427586056956938307147338553534664798988855490643237295353545545289902313402022106547879640680373567711263533316297140729245626456445141108667902756246546068126037773588802399887623738625023485613453205992018326038658238652132672529386624480859445821912906329768167800992972258831295023769592092770876013538882475954907751791090165597700007976329258120663270644352978365870619122629416083168549889043091070862293717661489498653636930380507540544317440507201251323446542897158478220403561266143705670495739406936853800468449313798034886518513139992103286947059080307656004306965541860161439345102120845905159241555884932300124875871901866074352380489918289097960173951737566841376140968303538501053314150961416945721139429275041941621151792529399204331185178400655203685704942112039043341840274015429778251979036046637489664204554187902893258797600801504533660364566027301685986000526084715380228832196391228392958055945381983961865272641389443522056682675553140461450422505723465759849481828945750973973453480877366022727380188349784371924125201584991125537455395346238589922569757082097750648120243964402978028324320596437347203619359118590226292613732597717997402161241050187160611210576526685882603088252602421677984020111766280648796089798217440455557065105939166243101930480714369016465531927665282591559480250559302747303180266869805167207931968127809163663052711120611635047350250872342133192772743878717105442137216121805427604466042794433938111694954977258821436451217627525137861335162739429284741736649622177022408134756544449770586001281850708740262131379425555397303816956342227304509577354276242326182670909790981374797311011649083477869682908915619827062229025033925660236910936231641279871285903459387082057383766407230704060872642755864385366822245785108017457228355179573238387653702808370352377382081416555558962359920111602991082785425167154283424237029342291420290197777456544449024346723483437520423521724890414605722235950057206298935782449050040721473269795462762983378249800567196147593072153502571524401589053459800987326812544360111271168830913015975096762883666654103375279123953658155008880645126268420156815714129614712197177229274239347077891426290322350767953909671454139643306124187073796854275471890237965660784548392297922249448252178633147966772809061725966335130335896160085606178624584434753608661662476834885591953635125377637181090436181921679697572031759543690245014432617706821695303983020769308604146046440453584135357194225574286484850810692249668600321634911392900929005573457287243581753301216080713215114307179325451432475727827791772686168789735872474814939609291996432638361375163958360454987598456227309634723623366698502717026883618144034658030880866902520282971605330658573878473823964508087838708239109956889266290863670576344381627207873566942077816205699036306790954068632365796749650542695346286525302408975592848459348918147816880547784846431744148133982167991740311620175491515119985151143669290295762707099975198048720927717391518171824481933492473194763668429214794302917916727426230953504073275417103639356839612290744200349541924817431317482012459646018241618521317970701201689985232446560727139810175625103410445471297880956282094677318704838481687956398893231278491027363576521063628329051704368688431115717006126765302139797193327910298212687877635263858118459612830637162694569906541693227731747316739440589551345078398612145996031374792997700479093779051729432168194106424056450264900031224545214848090488311060176119341154434839679195421209814414928612684672523021017319831796342575147089656090327014554745684292046001100733808322363476318891543957353139532993013920068541870145085404588288825072253522482604590604258622203515397622188575005384918817941533254286242273997715169581448360512573817292599165492316235121263713093677249267234874032828506554399292302814297721788444250830440305478901233828246790118035156689716941144873682202590852104730205305843563666221767843636872991071946613253022116654864682720560296959894026627150478214867137607088073791396687095371421404327626902474956946005609447397709522827134246871148593156270781116192977470529442583025111244326386773559753696827962454722737537304886811600651934045023332736248595133123846878430293556927000350239701753822017176374090182394211925726746012628302776067744985680378265191089578597693654491690963001973287809825036053700989891017053376386204386418127591038907050019054279443136611745406095609702504024569367894322063220095830600975862408894545162415327819371101949656960901223404786752639796264910859497794354500956677875785761830728847811130727720070075770711755933375956699870057071163387252673834829186040177572673490957548092615408413294691371670935809972427672453148913585602791324847821828899722492482772858407811362988728777865753683442068598474613550623416824092666070433662567859326484928289137075434656951305860646982677383496174059909806241603507304393331962435488354741604487493667680228360805896204912121085680473973309082188007620278087982316696163222937198877986339847326010071249111911851907106729590679726099737908415454622261952919317779093677335971521137550173066641380796372037015414820992754463569131543683624879577650848705203723960812492242864220078289005164952752081854946915449746252166661152917960583085591502292221613341222251036111124134552870275012975151218920766187903059587253303971520211508340677839040357748510248103258715673413700385445607785640553901795761764577567107288155308988363289041950353943881451008631677660679194224708343461976108085562827723428082840322639759501624378932943622413862194855359804476993600734033274024492306045239280026963221356123257217249153109207897219921476296006385516444614339653763984054204485108423294793881073909555964647623626699309910088821954556765142643259986723593183837878009397760194349494397668511838247628065839738368103522067562360182388221019608186478721134008768593880409543028958749291604939298485026409710018234614090944674626008782616965510635063975758261729271076566243727815941595685739123878663943265819565992878745147023088888888175043679814719575562386703422309109992781383357308489155362029728152249257003799422306601490761379991700856073418705884261577615000841303353511578008812701022610742588175628700201813276380108389931584873581063635107747937167264553626279376637858648215975292669270649826596746358676171764952042062537172997539959882397401344468459005393868758606058049583204033380247586861164603325291015446728035626896125472171368793488497140542024506962885800072900437853396775437275974304121682208381948947115194593155895161903866394622159391302581533141562470995590431893102476808117091345087172710018866868973213574060597414623262066185680078731939732995944205992675001759393512772134930038978524022782787613815380142335049669775260226653441971071576870582223167601494480676913549672699797562433999893832575271333823025201156295781581683081051713210446519442393905475568654537931953540740220577626926552200554689645975460350149194484773230124097527987218551984812478155413087388367364221956167908422231577729747073593483960603690394495050646362822153238581792959397477881680656028523577768462292848921007345751765530492740129547923415706978453776302126721551545478261665850610588549768682761454644893630378841649230233424222367031207330789535636750385965500457460478961385937315357473829746672458316707601393554102271989144645188093463147387978888044788210715531408792408481980439084117401946445695091862721898194574398970064325292854494920105506508370717784885439544002210090946776191224197455224274989688774316944995380036713543703289159906374844717319073213437805963181342066014803889576635282241491253579775484780546044636792253962006839949006355642042540937173794276372605087873195046072814445404174352320191793439298372484048304188059232623437294772162358655021705206144546930457316477148517571151499766318368438692307428314674349710077212122499472805417749456192405900109276169984648209199452126099777380933628889925220939185899707837187062232909821648497965637757793229051205810641664068333041981257851942892031672223789287972006574023183202376856861555013895416255263326544156150684637127809703871646056075527346336238492873120768922210288042040087924133201088970605411673502790827882774771443924387208521756221568644505285401789627751323139542533599582804732675805266444546911732878639241721612790030816239624121127405335558149827622199754053030210128993977583933472030832858196423521170247917869799017441692772607701849676945403605393895159705853024740349397914126485832353319378776490728486824620024887475248144370600523435280131091229957762106947552970460485802574474497481641324956392094409798650586632007964664035726548771878005140988445922838640213360363608321519207266665681583180959944118160388938698699936965176937036645190904432434503912428261752568111838600711768693719962406898388887941334477725623048408780183865019561591952037153555538213407808207952013356918954012872830122852306800993157647985138515080397100531546025048288273766732762118732394837427213665127758788606428009163173089386226623549879736776975252629729314167720835599081180432672402414794528261893806161896241845554772638417746724723465452077973308726179575061023294307015965757780977672013364127301137663686965881397550563597284644700796968708959652725000604550480812490502243558258001803960570705533454449325206456419075611870769835224638062564976688424430821612085014027689202321139594514406538188156595467966996005804792463074739604340305942071592916322766776161365723582543809979054343395678760335231609369751131053680521404032135078645247409551511411942755165923712362312289649416627511971614484262557225760551047749262037255969637673241992934810357920886265920809359053055605664407301177349332908379863134007565277353263422121589737614306013424853832062299848685939893033987193572999177462200278235668935921318742585161072789617694024900793867060570097340221787837605338379399158786136384268777145253724058584651107405437257907692655996637153292371925043572065343462500675211749827678657018635398941883910457578434620396652111479643852238629847926519411140641679135742425504769279701574872523194194536862011684405062959872878119778260514686041640827189855360275375471849363815004873489275769212147839274585259559546937627079035307704125758765366129585131613058381854232433288467980283510641453076457258043453577230055157519090109278074167520877397766702245341894523957714138400889829290382401546748118589044159278189228744338582010805444705056692515271125229373665014354625042471297978252129651466187709456736098952793970442824882759869401001373189691990525504728458368374970187115902377877327055725560259021867836907857183402388837329027132103248302750860631518805102899653477783108223481286967981808929569983276383138582321612698685295764276358475374826747663865012587616641961652973119781038812937839864214549902454480905006375027960224773695301054378956599568757611476291953514884776898450124776065081299291376028751190588629889424094456882042084162127432925856533879559414269089456131630012638053815577429081119355214534461301728444226241333662660209314797901797670006084184079047162659183867136582918317466141053777491065255990055712708039816900237705623930970680491318821359480166127985930765891189144486190914748621042237723627296824849133446821777452762988930522701400682808761221130383216469980121088989200393907630223479625784920393212723693624058897041002638992524826250707991460333160561825114180191296948657741359774809458162435378876069314136890399967581735140120396576650588593880675042168719855750012687395590281240504238426044228891675896822322574373921925460102422532002763611254368495481860380277102359723478955876296941911111300028159971242177700073045611556679759881907777538626465056895378870228617731864405306900160995881642017428300281613318165226892606231619279883882048844857012065262972907203594302276990847547702014028599136013756434482352933290460888374610359070153134093916068930248621294609223777175679382453479653375481862563783076348924938352455384444870511252436365105981944107122423157276332142366799896881157513422294004687772509999433935416441479333695711285715158523914473820849996723110821988082203245445719086750896369742910327866470061413567384686059497158590316542144489477665067901598139356085460774012815219851967626206352176436213944219016050122390350323368077451045004269625568197821933047795426892431999805278279544994386849608859900265327971848660720287176680134136924775489493012768019955772404566513172593380741915502349162626599341660603218101499614074585151825536467872688462814010877599467220261579208751431781229870053310295112126971480236387732623676598563393549752490299514525027384931920270181018638989586482458364033174196614270215406197462246776393123821172113081686919586704142354848754515700730917351287690720962718439380634380798513108374133111776916967667281204582125283214941215820657567563856102894009940069333179068610930194710615483784637569858698216238710933121796870997358626868649883045960074761771493919381616518926380181375283869339756699966047396882961768091372109506737768756225123196513656418926049710825260428547373764558263415650730384813533807727837508641672899158015774148807069373037284855465633063279156818262155293555837267918848090509737767058633985048026254217604296461603612899514078246566407127963928325408463108291392393932393751055250511420590394962242997507399116736015342048744220776295148200700285332475796152484663828066894712072462571267414935559742490538124173278051847916837550142870369025423235677312640363705818139174009301295831819898975641985636975664372578923159595955304905297707966520269663764131021893485555674220656781115130510289881406206486180216857077145967664592449097097328741013513657125488301403722662556889703365746272903639876501094870101592862035016703199153580952809328093939259355250695783158673641117398919864243403207381736838713113487333060124771236772984088258355407752397700055345618412758512935487816570753529434477196258611053929897486913843026745077546464021646033405721200863406207781042546666714817114393745188904357001076119937473260860502111626233851492008964834764195493104838788898474642646759836317202309269412850863723095314432905224803931697101243290621582957058939657376301733440302206590708796802366890257650065651952918822174472909814742856440224112219846637366688999368777546766945605069285587170858208166169567731214045414311805481225235284864803145908495070992093890930225609372701637286080467289164806546146919029416893322698181674892190526293049590581481370335892347879782486263859150228508016370929970577659536599487541071471951236133914483248804958500241211689334014903648530982958044605723423410907635392742691720082326845085429866508171455032766481515393373206216890895885648999822160030320488840242984321378863599061225471202890900670541531240989612544066105671008335614092445979065824329280946250449308404971098628851926337800569746445640029478300333582097382173399040344173203515458097262522657942882750526419890085894060459528350780946360171851088314906773931677262736943524296127486815647346445621799322706818892372236025754129446226761223067913335326377288902102493377363412393994677898377779763753039860607642018980255157408567676079689863666781994996900048722597473049505404369955243473111946664943579830407712874835069388310794600402376399453702804358806927516775978163169907481176700205277081390958044974114093601221854140058170303634134324014726747678515061175642937030053545273819603710542718562232133036400073614952857415001122078712586589659175750924262849149256337292586016640861226087287746556698171266655391606789366655832881635241715394426169829864480275124377798478618593200175245222759235760075186314128614433374508401000672897097926055799687912077668558415846313049739283941942427501879827161255163633165603952832402202176493595520313333126610479753584778555095818762374306347451703709673539596406671095441564043268973400499234211383604512881215600841032795526703009179651006919906794986688005236054315919643051478096678434134574262789369611176209676492389043176281496159168444278784640794064523847009265240689160444587692563430364461866202384737384359631489805097389039752988885094586783707335257602177726989753029620582652468872693375877127246214300875195915474015488912230554325788490451134754649884304368799638459330835201908326684323070376197092146506983099064703354361253365147197169074372014426244134839853438447585600025097300274797299182441650102043194651768743846093818856735411964551541849493667420378088292359824467226651261582017885342525734115673597792593307522990501083144450649271252263259865537962723879879641492823905982492888608063067696258514335962358005847703148898142383464867822692228695084308794267597365556207786806316686569618356308443974873486090804229056838691016080099634044771884030110507762699129438637957597392325375451609594803513603592729240379847306969178777415308939052516850008325328047331415427644015664797424667909494164641008489910221372803546838468063955740875830330163657640980161921627064080553681290135797061527746219093075209630886877077158493123962964730371775086763219914313092121215298267972718664907807451345813952013078391683139606863836875009443876072955474041609408256349461327413750915101281216970743036563367254012807761644167197597902690494764534981200188567111352111334872079405430191445847081883847773224674700391378830531891676270281194064710649825315251564085605744971946889361412184409999738329125319670383260333629110707982425353034643960234730556002096264856814008731760874450126547557847956969932926537286754781430826466419967840900297940356793591488646069317617735229054170326469076436619259237031708338527513378359016377262419240457362409323565728056633465288534005738131802297581482731626846485557566876741634438733361007999213146386819817174409443524317416283491840855220171198762493969675946877124067789448449564251927963454055278335799424057498855902118896222629866769190911391892375282337422886244081634919070633326305660651884087461372343651027931544917827917968785211913176264030394512048079694295234675865589416465198026079685567793014425330636851041792764604983594829334297689777993790637357889494379348165497777027864857993392726604835202824583134127776337748969696691552576210088860981407584544750210811261949329473129008267711591382494255831294925673055296505089998487945832104021891758646864413501333403779657996144423190864829034159158220883806505802345364571118428916022136608353144542733111969862271732433872116478820139791019386406009630352348297447790830693057454336355498519415022303604597082890492114635152032397875287352510087018460936973838325212819846111420722234972413844814871177974499161185152110368902121233599179889446209783515088450973910018121740641075871320104419681321183808740351383028145292308986746877836191097836924664286391064506591705882011340299268536699076919017934427051528197148862371998110510472075851484538504230050312821242974613511172998616552991241800939243387221487079268673395037089421286006688806872543996776353166409077639009692447753808389281107817786083812640984917457834226447414674100366828777878830260337311077592720779284815137874569787286331720131018407329622912829058087356395405883928598812393331716368464404103032998730911306524873587869681501296802248123987406574374648203116629478180141577773902515371642652999828344922280539813201179978755517350541647357670925755753350111216304331915700463846109425865730341639409545995146697761133456072881747426900848233343326862335226291861384210227974375445944296725537294904768522886128817466805568411510684489893095160350430510567439419890652415534474040887784628910824431182970217537892556457702959331074984757065505597918237753558016866757640915117425074386899020122480857329709112089232597608769348896232019088442371966085115014994710624739256982961580096371769869274062026187041829948240035773347471413702166017227276599091215147693099085965454135496981470386366334645464670912875239796853713078936642510589243097583724956645814818636216011611282776438870634349566697620113848213536128653833608395243023111546619635616619191759523617028817156951772973855626880898954748769294235825306265352509578728949081546293934184448993522684638422945582630152317106311978786945466853546552207567185886801505509405303057513643903135205670018392832517408408806467386277199558136696496498590940076469911525009479070233094739717452330577769141826691975529565235886380824721361294357807324481743101580159171876144429511027794268092640803928687453665662033002254024791160703578228221096674265501672705323115761417733683952879817177740320911769830512213746288259849526774314237910048291214192449868409782497926945499396976818816143281856006632760723319496334760737110313632523719536372896240005735799297541707495886829047784290343436755663741670134996052216234010725320484480303657120922831793001871829131776687332968852258830868007747858165253006198687464323786400222076894881809971816431939772300028681956357407176111274179584788712178430166045394278994332127347222444372623592384795848336801136921047120084457415453399862724790319433331554579225845419181776620568744296310833858292812039831311391022117790301244753622105612091012801298909869863733060472985890599612121105527305282662572075091632241097692425905784665155798347485971151223828900301075056842574607584222557310625913620013641391032928052183364842693925249864911337815475954595561378197036737829611596102470783466265430932450590076964831642717041332749895778137831291356482018435052907569323254234758823787869359927732511131356720447401589058302592548847582337139914060286940675552588757620625656942651748260521352279072249189032186751817891685147321438739038270431183414944939616666523472188268004695356117517786667641957552071117185855350896398471939881894652053949123632623673257860642663368279230402555636980783119435806441183745136452551690760061864260743722123927049727753997137378509091622771335744997457795607469965602604172358243812217473572519884069268198028816059991375850474008416195781980512205221827596511054280227281270726921333000102313909055216063279198220904510610397751610246954131041165478213756619607405424375282453342983047528691331125288267860761693906457640464438941795746699148004110601112084057784747098038787215698363650089244173932729594906827803297664864255282214850837481567967355126168392389044319920255926887029094487489360487127933734907620120488819348529501224733932456929592101339361479437747373990124845857593309811366244198443685446576625987808184133742291027777263684533163477809306028049840950288896060959718986466897592039349151641485443490310874146753623277331184924190334898431529457868919289910030786009659778070761213429889738519598893260043377294124725427643685725970549995825561525569420637976628045174850839486351609495263080134922405081218968495019940255575225154198493445500499439194754962776304491426551296558972149169720750281852937516483053239313454121239180741393158776468718103440825698563543334549000800281851214653877390631817663849006352619306611508219703036629507642951925059528342376427583287033131638226176589891705690496774109192491707123972814447409262598443182081029340405764877933365706646978453606976300177422894803828546838679354831011830723465009651455735785523125804346135625251201745616136967200909261727335386592068057112803037644287223939557278977546437350524787494180444075562742002175960422431556180304579552155623068498264603021324140526560588959509160550736912303332860267803063877507469304533038892804497095631018425805171724896580628821670181427288015301777800866789625404281884319565883132589558951008250739510543317504409571610573962487019797049834582859305197335307600379046606604019230736318594598190190777332449091809971341121440405521607085594339327881931036785506533969420168949177842160909537929868721699818486730023645078282494007619759805817322675812699040871341245400149844107043517292275324246925942881295520916420660614613351959132824414923372815185366525454564167995808001094477836252407267443330873202717529808047267045895018136410111220964556994732135483735071139771380779450567429289388904876313427565436816206234864918307188210165712317914604525968571603697285119393466059150636312080927950451048474478083593966238968863908980095657493688574108996120373626467771650378855659940195146483013704847019898745975974377694306640583995918097910580740680996419136602834441033562175338145619501713271651670878392502538382951607373559072899395046544187611299360603477619801679585551368915756129665895904442596638007100012532540034440307867036810668233170951361655234379247141516069722186853401650608552399361945467780906109790194946084235096490452582598164882232662476301696342741025372019574975479193388805044623375003109766037219254974339067258172141156068546129587833552133604867819729486461511418327168934199304775218639371930378555034219924404632071674520260716147607483752091511489237347759384774577002696577677588003852043873616059647067279415199637376151914978123688689847003185449887385528408451974319314794008017924758128805336302461466111844987971421655379624134666304097967019223461985067402579715540480856822330466379274056015235624348792412064843499041476350475979339634338587599215615924894076106469038596359759294739058777103481283436847194830198002610820472797420547920295631839806662294625041523814330707577818070960368401880261205615087223006697756351096597478712007327886483328943171756500259648933711515617766231030267344632068176253994800090099847651682737657891959361776571568279113360008217613236401400355027468921311902877664286738429758429126504712227205058785606288494273266567406842395577833245439756163371111656398411650317013595844611823135824286380521474290224589527536082273601098726278508175812937936480507958196709437921815830315706438325801045757333281505543486529539716673116071932607692513717985398832906836749273767927178232263193068338355139421651240281245645387621573328762648917782901159741794417513426447155888992231087969613420838745769849980336697156806099795407076347924061633801055227307208342617801982152592649155518623296099771104056919832600736543916559077423173512242974585503852262711982659693329397315192665840409150912431080099878276953727588988604020396848476905761641876285050995619939444082297567301336399640792047577806983592587534942156227771151583275868147159070173269192491407507540586323115482793376166669399044461395869390967538867743001456503041557715475684116111301995288696395540194421275963340159759629728451237850916611697440625429768447572177473340724839235595009881384311248817697001775555959778247985121921368256850201521278322930412671380275922222558963976698805397516802897597432369022015981972991939737310165711772568207072483216883587116214462752884602101132892981507639322997874365298754023367375835634856930356754630935140569307723978456527346531791482975882714139633316841712569659841767054783920361208993230204308823613797943935133417250210614008032245599356384642867203585743960164295854159850414731670003629930806818564364140467466392443320338318404857743401340093374196419421187237785213770614669636496455141978692203934570960873288746031569678409608920092765712797860446285284659630565367866970361389718472309685270870493561406099269988785984378525941481925016517298071558406646120044333468220903157373680787066995924580628210534977185748901516915386105553189202052029981124614650913581053207242435234648907550747179838022740127081096201029496648055992847358238003302650830239102096728589247880618376149279767152995298177972493766032624343309075435173517847017469485953367450397787187128439993119071630475742594472547925944294814875952635877582439198700389657017968416010595083188884176621637187977753396525795413665005818409701594676401016202808463927174791509834470694895616151980813655021478213439767519392312794947794680408114050217517311302716391881632085339302572894086217461607151277131378360071781815605784174892072036418196284418220001841611208600025132017982505433134940714771840137435177232214426395540743477277648282883204588107410618274143758909200110946203949731917888996037327132464670445659049057189470628764890216412457011006529903101719039936137501826256948291844210733579566976422060527288025760562412383511509552174376905003352868695882146737758551928786492537830212490991035268093447425083953857915350109672242226030571378663622014549659738456778273801510061883758554979144398609912641901890652300156169302102320393033158168166386751707784896291963232582568101532239225412380407209272808302267541313312990483117302329489496790423184954527244464291568214253323990251099021403697173286868975831373154782971675938587342661012880319538967047338367895503276743352101434115158691251891431844479221339327920266108902568514215836357499520970500549242817516775436556960182641817746129355612921618726072450223890443869755533494505238490406654919156819718111369392550870784895940185584818439660357211831807363894656778550155185186646830168186623111537660985623479595909088971692133387177678064377871570391647393278257633049142896124391868879796132160933658058753062009242508042890204275755725895132369940967874114463497511786018880556680531246832771843172945369807877764279027502581219367498028140787368695399846840341152501285816129418286266246070253308838609341852257175608249977452305657381235655220154866668094942051714474623455061398085248485156394574477491802328922870504498775216361188075337493443171572469676038800456615600059064884572370340891718732481858885981714522930619703090721573657546171876788914336183722035046191536434412090694701042599977152629116667959578516005944013351231258782972957468898281801944714300598590367343890105857863055295948914224615179565987673871014748640885121708095677925969554868537000724498351927880826736608252593504082879147216188974414160705438952616886439196292012165770867894451685574701792301470178419667001388080806277289338753118532812558397305379418239314745922578634184659910467252906778114651212472403649556515687920135339485202837557972970029784013311200617858609010202325573902022572653456818860987855153941810940094764336044682609148528268797229000871155020732765020334070072540438307738422852699195368780421248301537955657423188662033657713353092027208861614384594588108894474006728416725154372098473276270086363456558655116596389022008933430009970557473036841141900094730655070464517366936063528102786733726967297760626569262525305606567324560906084039980234058791870095088489919797938096359344799862617850525457037221307431768670386253282233838031131699002908186540410712006906718628486203681470191599349955040731664178916869753731418844376376778035674174772837007625553464258768693590518164378512778602848479331182349182687685393054410328084826718333948922641223945962436284004567920858064106834594601157050176396286782667196903448125257134059814039576064689090538062710068444474605278292352137949960594906369047594259088417603554378829886712143965852794857693967283788036013589408213577013354429953728029409466610657821942226628770181103444950711374209605668506950701593728772083037286919150636193623418876715151616721229226279296439323881961027055519925518100582843641453002408980524932140450914365422311080696252604754565858001824147933394554694648372940326738379394647437410231956821378230562799039957718549308591166493400420429308123595034856206995066502793469776038871932322760697896127442203386423070231977501966651009754353150301352752943781570929846458947314831348065903879872593090443082897521510579816818137024957287698037290068369324058060634060582158281714433007969567741030270429863470046802564525156132137606772537705626076368805572135441899397045639041238924737489776549698675971332601701836662163720047887270887373608921749420320079235393700474118539626281566484261840058809811982968656820533266040475239074013060158708642514603092805326692201739449066641948745693000233140844697682168177294735946124315950243521428821045493776650040016664419246639343424205569650928234300267818117690252434969406300638576277472938908604766932823218822768985829030228556134812634693552882578789358979176308701100717829356604034593415962504689917689537448587675731255606025744527460641681983813699344993186756734960957364147789872551811635492291980023796813890031505893846785982062866621229905699214061298781097666708639305176357520476725924768253485143968523352377617222282491590201495775970060332008602405403211227738126682890355963318089471193646635652845405977394831662177540714162138916788772228497287871912085066044103205490252045597711009536309036618452988872823036571941536938542626351557438019193706275373592271949466074936322368197190526086505365669754420645269789571719905765655649276567560818801034001781004469257034153973566068404818319152814091268773974325458728133066986584681132261873988998244316257903327352524368870540645851917402812654103237499351423678463587028866636339868332831708903737727751783004310242589475587543774666410276012026010381936528903255572873167423116111066933376104094208933469180540642977288494160183557844423673499608176335909688019279118988119816422249689703771862532466651776100908386028055970685705397213944979733160992382795735679943680617672740878903705506402010931846905446128414334364979648960711634399823966010171993733131257249755177562957124635555176600863428134150424785654071836934526178596392814235639879571596656751510982430742769159262254245825649155490008151122219003075803763340785782003659660817713807221331759825140754555148126959926428429378105917556464930874265269766244155847321829888361311949892614131126053168545855180568943291329775845128235726436249927595032170921393166781319491659709863893865426804200379008281926005295921470029339310216389398871302931542768346721789183272642489482422778124866981296154081860723257623746996651870825275349405031716478088860793941397571141630308426968752707007314779560515892886170476694677643890073993187363058397479409562685219275354115887572585479601768072188740867268738667039726360101353816878787214334406439137077376594178538237024763383810753469240909283452429791951888810799543994567072494780927068697650484018126258956549918802199685403585266298797215596012177664924064648468014839547676148767099383540988411882682088571620931752999036593455054852346555626329311249773647896448743898670780627342103345304892885367633504886713375786364100863856217054224144214013579491838219602162372667905034035855224965297121303592084303746103958441981640073112699882864209765870558061648090798628328946485058943904100642130307396063722841715275482038631086306219939983223404639603005241204631227605634454971243439622908974017554308360218978874156843038906547085865043328941937494155497521973611784653345947160958837296367585434246875244597825425863120547679596037029300720549269865798329700535852803683577117186289600628224322433034976505251166735391913864714315613823589699634379971616979217575076108572867802522636119835454562354272683541379612563799354174755807536036482637242002770846226416553966261994993975200369122086537131204621679488075178485652200697894316814412193084440536620942965890108341516197315120594538076350962633884757135541349874219498160046197692894966338448612205226571430397689744831329906537128487243835735203608450159123372295656368383126016523888776777007084016787181076700682564163887861110543416678183656349116934866928996374334766460757168123609905414327369278152219336813452474177136686329001480532666694924195077658217799421073936061742031328114012502779573090110526994091263944362924795042105027790043065328889435555782112158777684090862093525289728159084465656133385204051026766794991863135668103700201025242306694604491218878597353428184020835158725538416527184706821094695475793658232841396888343295698451184326244363903195354560087869043520614701548740541074872875098575771645758283339063745763014081999784025965590984602156668705885118134878670628892052924399860990290891252869345014544685693892951740975919248490318012639981616852035608119342770216951851660729014648196572557407432925642073988915605162592811201399052683722704752143327860939382007331199503550446358120884362168272336214650499607754075737527560129393676056994141973151851817637122269723367714173755245226955633386100482642345715475638994194257476027754749222455125919159882466423922584572567348370597753721529609281270860987655052799820803548315701689335130327322705601161058940059047140973579141128211630250529188811469243127216798032629324822110550102619105118349523191206397976243295682405436467811261903087370731404939707464809072348759842646317965633803143129597368332871790335088775829790901884732419537329530283108974243321318519988142813922187966357348874001266917131709231855854789482866828838615410174980667744932152286942188362317812931606051769940697792236468751107575730886171651760194502857320184857101485404915024492223157422368629575372274950861423734575765088819193683945029453132730640451424876722345077008940013177131657687116818355110211808051410642779534145600859076252866023490371964061934876201122116849079218952439095282571572658898219970733736894786681264841529080551402501183618956583907129169198179974508498347468352503566271736383726836306649340051869357199488957979318897630754166241753922490909811855785691039209180133228802562065547162083931153515552950124977090703314697683348566992487176981529717542622836080927330582851843638073546775101378766257380957261863691365388967284933997593421175005900530825402880650988458300115595696321382313651770827802800981013781347830621829493126108728651131475198402161455952788956021518296427702741100407852527854920117120173015896759764305499362887211449446954253624323029283268126652935186686504075685826520892733423519852647108010068717081246561074457008347214382360305082929446143437287883979032299851467669051567582550193626032174923156638918848253343514240086950042483958925194947429041892332674031594948944836281403673003628844283512213493091560923041453714659775386000629101616177352062872495335642300311103933336630146566796511420464473063155380042740279978793594404896029157757484960199446722018184153463339248011293409470909783071369589486223173846107396285612093716931267437896790517200818283801913502203445380104882687049644058570547172737293646633536713212465323013644422090448814170165905489677183682853832699128310575355642093387794161140040619699581239064010022500863711272066544321206253243923547111792254576071008738789436857356237347242727078799606312345870037938763511580931547608397732024055619853903999800466069729806840546709240491854044624267394918343019624605797801107327227021393400976725027992176915429791522483597163526149902899373597320667574341442736941811807577337254136964058361819063804998781655967446088346703232317893070670887706049241064953255450297518636490478819678525107758109514762104463285058027392598500885699509219207843104797909715840960649439720065424731175901284837131180757893877972731899849207388463228124952250783373948345146280260502429131300422009680696556226490847056391549411876184785673315459687593291614722141002434396827594713606965677034786608564987240185257283093561458121901360612988074060134939762934852025822426989249701214414112248489145479017147210971815592705528696013306402662969371748597099273953549799375727467069166823536054830587506896656216206387015937575267878172242461435988331363364412453581620421533025783779183278356200752548136331750604258411594479451688745101501741306498885167749290755589672415196585487466923903564668980363530422020112707032565440660881353712657135800509119228575084731318853157228439398961198208521622114600655650836644006335343803618756154227168965496884816813561817050573796000226167618659759802773555166612245141204377468002888563115816413631914317716752634406666409689862930981967884264872285959989569433299697159370349839707516320826329813994779094059324721268283401545651099016303987857570415623437000191531649557053695223818362298670410818897268413332322279276141800801395037576120471958755818383948553892011098942841567634508458475510544377967434076752130378562412987051016423955407574387566287261822495441191999982347917809131232578186644417528903303396829825804983670147499026712863936284584654688093941083675972143175085555628437214021148657080871126348491204141020181896499511218104657261716069197801710071862301030303412994137292032191126315093587595242734823142401780436723706058345883526750118572296278493335295263305810791415372421124266574502787161231829475972968283426954917209131138048526303907652830791273834298832673578724306194163724152188323540257809202428471647225625774073247749992682082457017916159836348398048825176748199513634879402765744660722561592458197342246377985489198999854333867752909984505622540499013260981440877987564675800431525257425567452205215538355473361486876914694022136528707270827093414985808040994675626554449659547136050744521327113369638026356862089009407376597287706181275434359646854550454819358129748287094280094192867520263949437748003545175512876064905523719171310692990633323719719278011384811172111493357604738772350858009543678002381189946858849383209964243009981127075955597221531440667457669384163849086935970606183580048711891259192765496278028959504788233253120428244691900128286443037785149051710196364676515112002883971679440421233561330804684780588650189453519920534505941137283574510293294955886680764601497017091334486896414274424616785438675438025957407576953084643399202107586660101981388525507782866531340607639245264227153672519835886842918584791632583182415324005621741587558266155853245890002868265196613894376191015819585994838953402849716652822657346045311564759503521790894524453399989318643683163983653973569415506214042864211240577332831825380083233469984904813518470850910667617929134422112245535833816986617855021926196343328631976565902435351662307302155198231924322446494248536353255945571082901986497279432950673751074061035887131567730864245962254977379319384469125218181176176220070679094737018408527731257689544998655888835712215730134765075472425671455018409622714610245642832253728138514426986780412860520637239006157950103842171282857191622627030966552618335401383384931465567787341002206254819914152191875128840528392583530165041641789109663954472598561040819993231440483741221353947346074155103494417728784373958870209770729272997870239389209518844507497494885057936174220365917922082788255901760899126466584551015529715806528180531026836044617044167870728244019692853532702636683438889070935206529076384361222811966282957914542883892112739982364808383524858958156701838356647564253429955257223488253372082557705266368060016499306905956236595880707747436491411371251384803949887173794414620042721353189580317675874463776383026440593756200662477440313649761295164053986614173768111626661577079400538247081887540812761100392006540668657203176459663155061270373053164168863285956342458729009961192388745580674857796767208089108392716272556447089131361410694502229077096809202250793739248682033865455918708557502824247347622692905612198616858858383518257906255420418159243736776860145753263843134389423646875979183612502777378054946573950310891594296519678374433763996273641204849300922511464568417392398132832505735352804698214593608014900436926516705574642511461470832835005904738092894828119637250924851411418469194524995086524241760417128153261535795717443516977313484374553040582975709219033307936559604846777146077760805348905784302374697076245516374890972074852247456577522974608353363969078711736724736868929268074864897867040951374255522082840843763231676768121455534225836494469339628111095039752705548770641586655477009249997874509398178244571121855206512683630333843119946356562135567084649857133164002033944018984023127075591092339313055599266278837217592523993908730584425576373976750827546080659998206689156500332843648327416345613177862368981080799829481216029878157967057197499889362850144026815184143920650731271267548617815282543166840269937520212214914665725434928371707314923650266663984049861829973838195219126656725289817614867616929730199505286096690260452229666916694190323893087155499231612585201026855924050691760797876041262408758356943704172654552592838580931174013457210241222085884968870116015023788788075946394765398062688987131737531801741231103462462279162143944387784244286449248823056261860464858443185916238136213374132242324563813278219374400817688329300709724293747981017062990507535332540945651393990663362864027540209207201099549738065700594889147684905713829670012253499600304016535965312230360389177512391312672757438078042085487275855323693406298700020325225453600581643976589720969408512355775732919148317060670453690568191872838809838171704955548534894125968504405459056452385014441521947799112893255971984912935393579282876474930617599483577270902705663907259184741043746599363745038749875304981797462214577458978031187924363147020170216647216389656211814815360453999497690826808910996899469798891495715707969812416800235643247797591396990426138025852451205402784287492116579948422343115784508423850309704615908065907336759649087137798810003061885533777981030035949771973348472746001900829215855531592507235686551806564874646496419586148808918818825989098949297421953340158614028150211908876250817453471786415631043532128702302395141268413269411235258400838554491697456898142211497912546334032546586581193292143529395577699479426252414939481339572110621786019329359890960938529777273649187294192966958493213972151681572072650797566797711989523570043604254285458826920428336253891013302470005498408873969222383641344975325862211595476034296476064959788327175508187264231833514533335990009790418841468619787140606958593538835466599258263267999291011438850833484615017160912809282741255612408942077684938376127702963834029060389857386050842850340283334472093884015244724537961802243043161368213276766779195172017668842920067109403406384523722509863988108053043026085894409850135183801876731694652395211658944795910555907488130767316603312538123265323130699154678782674094772283626810083651522407841854832859000014013615110006698910711920119481690777480014954065577662619711934493597029406363481128525659543073784535115404356536910464107080759992802094521502034432138040709756661442734439371590360890699505978818722560709785905781602508848496199275292182291435201214148982793559766080961408309246180256679597836358660775034441690646194842393298619987032205285613024727440392162024608958288023578018844972463802194451926386142444138119371206701952275919998858326700468101394498612824061059043517683009649403091108518422350150890275676940423029366606589259626792449725350691301088074565574217913909177850465976556357226271026169851668631252746340139187155888882123935302511874375685495591248373188751993264932573450503134916544608746990177452107993727453929546269540881039687944433281717233423223396637725660572805756480853779550019572550635731985531837107192218111039707469480126307688553048598536957639631858139796370693914140968292282254167745028242639203474132756221477171652252375763651282010756718443774967517895472080300226150861294421354286571355133925737989164027532813821498756742671184152378817316472526766224082947140074674668012595675974926750181879250027803910899679115732387686800050123255009189733704765885799186507980187571360016333063383760354955820181279165111743649698503227737688666399107936777672196515279413156755509110947841542645209647827269949262237598696581835736634013500796912299809898835944410549849906201065229025600756194682389065174859317694853458317335619173058482301049429210857219978968795582039199198208639894343853094501685343247276047855936285356808341640229324896979061714210189482260310926253713870374267312092183120396111743542854872963233632668947429470675041312493173424188997879398329864076903492647112428076585542810614811579984786314788107422983077613390088035588916370280702910587237608791737443533591808277839668864758545686752454766156940312417703325129850336141984938035535745116834804179034229347247879959876414889781430867280507531824242817175432852279667310859302340952929958636946788803553671485048587456659661772727524467449096093555524371985615765926828008420245766384331565550863569762196669296846524448197415234584917718167280850736143362756958422422826657625634345474319716832474644449720257769251628271227578132097943181455863117709173874473418936517508625903845191775627622250789762259682807518936478823088663753239125785168422945109747068512654764038865329293938107482410232363988225486960935999606453928973245244909347796160071023977357058880469698663957820227053355769739817728691814549411676067986231132408505578834195037112446676650673668447563007609776698854879172612297566463770660278660485552973031481815629092665524882648648053525346762038312522140616975269074703558537843013578106599745965986124039244304254746957308890855688014224698526599282239062228688082159075676850318203368188624364099824170783680756436442119386730628762662982685020124502622368843738118693059918315528616298453611033067840830436221302819811440378816916043774300928928016304675059191686138434715317824255272512847511178148827905714712403075862379702487712215768203642264777523676327608219946480631642274438914761693805738614100053380003901343753397761396203827915197933546682920565679252088237699181228200352813996220795871112517541402374650149353965602287741305553878180118516513162874050025926205152665458905218462704810496871272350324963201224474495277108942879911332618942696175513166903131246729476820497310071937210054988265392447211363101028635279877326537553521814711237129729922592431326623428438460741443735199594496164388981837497077672500513626221708399511761654742079750953845232810477700889982285541230302778157689421626309960835099059244818134351901711910128636040964785011172460848653253684025390239165465163201163250551980776585907156403160117549590650037769716501328762586730206744526467854397597307608040579840058933228848572338679338503396165459069638847808818022243204098530521072078616028538307361713045729762117512408930871471926040709980844956492298747566364409458474411174952426393027707431014610996591680665538972829207880299529870782175346052135095675774339327234419394919328610943074421991692638362319148323062797453619604131711511810187346330976655655811429114043158072506125212577008058560712333626366536782169127537172675376970363966615998572701362136088274677065350770660252738408498809665051272677298615265026585243320295966772344417677460990874601056081666095273045599999015801224562609308208104901892717590730569348569360335931061462175255125053608945204141931496331865371132226614492920083830009388921684769188619692629320156262991061661950679988152968941883467581425701915290393236032296988865452638279630438442221276631454569315008284678557928204154859736142534381550529572047137352474458872654962271583642919899230511865917458907841216640026847501920686816669274859069665486375278807842315360343390949616749488207923462302440965999504552368760211794800717053334749969117090497590355587002911514132118047986637864357177447003254184713739701543861652905192910866119774690157665337793234303010325935940867947582212134892977408215993442391892949188706504138806827323070184240877877900926532934569647922570936381908614667946458140142746691476870636495118858532252942932826368434358193549843233986027556596548699078526167674084980090249665368901464226934269523866487060290834696296808593789328379179911603655388011197344226222580346270386235156861537168039219187164222527520595843087148112067014296375898411691766152706110897841138542978098170717585432293931744208702262891262729905872810772453207133535711982433582083559638210682667014957821187518813810111845023506045602271276227221034165102813599798946248219358150088458383262322902137914648332607585007160615584288642638848145047776462051799273161075937004296756634880178001532088643875764996035507713608603000967091630372019200956580587208115445990831034371069274872451982716771867832789984273213510497069170703752669699164072670836732537378060498594068548495587632414550061977754169358641244797362908436751966359519974135466489705893398732838822690097466646873378004573922156458401590040476836143357609300140035813168630991672175787575737792684754578155398657029524589511771356152247576158074795528385989131944128761394222367940624577297740451947983492886332841791214869837349330831370719810354337554504831641327086409428803345596229824343498168398162071201132680837198029693674542369489914642260171845591537061190114131457963316710084332373485471935008690814114616635050579793309123841421115332907835154539825595665485374166468346757793997980389471633529354255806694853216295684022335399183207283841747814662027139439792314036007606277593956609066832302043113497675974067327231539392421764387625363994663523484291834308634772143943408398660818156481327791984751553327612867626301794027618129572459332112678848582987383626367108031257022110752001889646002621319601342502040795521108253914119079964616948422593290116865329514452401877468827606350669970260195459249494712471605968590813395182083805318503158873578065113225167000939771317393048945339568761741025469627957069071638782038098172453430207730986294641409973470522448365848330879152904209330125767481029703079632204284693195383285285951539361440484074627861600661099097877071958255741382420615749165441053878542834586867302743182894428746749510672491954689726888720075130218307765497726109732239468705587753066407515488117897955607883092876698406031314289472136550085677887361613682417400336717326182049619814809063265414182443382702609456612357531555735566667310214943617649005550049582246707813209450664407125586512693009915361646995046132898314914326194854101871839776451012501007754750505547942605798898457826422128953493714274932650825029426371093322200055217690599831812056996266446104220830026727597679745000699758052825871887797935253777448048277034108711180247069706174257210312890733047131967935283995891177350215625393789779807753922305747100756966175418833445797524622206450879431692742009494478427290739882999453399921470308532690656123797674384748687416856914034195538451578292100024299137055762490425055977429177004463906383800819665965527551182162003148610236292695474728109616006618779549402603202865468134803322176061252950478842585766424916877049923733823952756733327475249138598428680181971425027022792725441897450702682427344791442531422762640117503951346114167694891711196713137165930079863021595868187264484885284591318680114913473390755436369051730875936208980359846275263441843048057176732678438062357915766515390777227098877215458600650672576159581286827383452060575533332613621210033687496775711217458054387795515116396907331593410562217930134459600499083452155347338000109004258860873004793095966915870136506830921215365610761212414698279912370163209649268762784631786378415400537838931216594741921500876656516393791819141273603215130598451409468540747045946775945706166144751272960230912793314510018116278100572536636497793761189963988734355774903625000733480190167592104478968996616970601836934837463439658102921775954826528402049201837185417534329480121735231531210811752761481601986108788839571185831087994822698006251010213852181245352259350329662987646267598221446785357626706143218508503702974651437942466188715131726478180464601589209734332963603110951962453485753735441393417076644169440192137318206798280735461662168888717624393925733234464535616050942001390918848774336274232804141408038710394912211632046763991661224551431200193775463052913846081112441830955784267864985957451112908516547441588040096022091963187079523361280005508510079423618969090375626046852345842667928103219704036145919570862452218455627190658284171438455980061013843127663051080498208686464712499528269464763563940327939682605552957073653573588937310596625991626842972118274405776815080106431150860737907603270689936103701313039264235650085802582166217268722899258516680342575893458664171784623358023062265287533962775643431706475219730038940718697305743139048217386392634476302068494512358209072872417952809107283664337881984526864623483377609482236212693360848702989421549837691882230414856956521404199484641423928950520144913466848322889626953667448495223768507115885582277952657537949211446883341283272076270799687970809615832997607527355265372532801743804101969071406840399266139371216137493050797608893434564277464623948249084399947416283045586678837435997412624853281418837224454714069076402525400391819592829939572882268242051723829533969931786660785401709196874890630073127056148837031029770529316324863454361750027267799113393092830983078476958452847437732961501785625454478819531840563824638803462268231882782211080204964633753794584837239951266563278991924699156073414140590072072774533007663149721868499889343500785081637464278789709855162989387301756407495969711190538056836231237880789428463546042039879851551493709558692179921583237205153511881959482269547051319348296878939778783426716945797620730942103181978914632172063242398417650625291157405709464376161858571812464992252912481944021487276047964360872669046349160766959901991771773235591807190514362789110035549772390097954861109686070989726356130259859569197435735978455996446354948611204435791878322249095239188864970402758521736806167723940627185564089974325596150056918944539607895538841227691377412894288343963261776455537306502349958086191887063863792283030463436292768145062100227019166433295308874740356532509246145922223162553533787619081018216918113913009978795092539576435225008212075579698409192789635027383146003046683383728052680955676646003948170791498048220659476050070885617664580976596922403630887850584650665232400620416467987344406980876315187616241166168965798562715819041235688611556846172418987266687986779879073920536682770282958419519687985883400186068742909860272903793288865433104460555298184373501885255293163031169771373846446011703034904959358909725941804257580667170842845957947770689104193360192914141089046017787295313450466639633180045841126965226083450983597947957191620531899343593967965963550759914692814005486257348402727125642686804758285313258847556492687219558501794913473272818533114220748286794690348506754835268940543933810631925512507152938713516771597241464805477750072499459724997878418066390743224506006962647589022705036133490952902966102977876701984000372593690228171418498186781818264481321100511884366214202784163998943407186783580815399348717326021025163531893193194272770905676819981097235496660434124492931160498025109186877943420730775837744383504662621237294483915558699707425655039565219968344280814259564728485256584003426369684981703881535861875599143898901224180495855640181813972907326824953902769936034887921346401469461339439452519584338944334558970002077378468474319736433745547366206906309217615513484397286700778083453433525431528431424697840611725580200370187900540294496145844024456145687773589522478465605786990231239966807398578535474183559271448644966744679417527603769746075639997532032412356800717097721766293752460130019017404786168994154394285707830357590699500257232104195268985481412079143482123288220536044075496302236251198769159773019950974203226828495135328039694433627922226278110101248847697295110241358866549033896463650484379912286716074986364002288506927155622303899660375824164889170150124465565044785185718472812549511603790747980017887652111647369392820989946236382993992440039950031148927477299771545003604793005080138019790999875293747262515867863127161890303178125018170921020458296942630772721139464534339834133402950392586747073293427893985356239466415691653686200628090874025774837947178943446748510232064108835762730932359848696357078978985873225189324834159668723281066960871306462295064726988728986211881235765568618363276114888093722856145171590918032638935021744062880832716628042354520078907818389392245838580196786162969098645930440417545452760461834877285133317953108755703952406310896527173168243446388712849468052914277589817136253706015265578792721924360804547808418507006044802668940896329686412816860878018073593599562129539974187330668383313103474934384377714899721008423163336962573866880735193370837444601199989626085753904375862180441791774394927004674150660591591740236353619596672235142941179868891171000472760553111849693614739758630589913494988951369682960946397658793976244062172217561251379088484752620275639802070292263895624881805493489411497296028235955949840223403538872536562149309215237394447542277283353914762607588157389301896160229059956235021147306259008206400790014498826088787567149755285647252733171309750781522531148869500528953385895464652632252177252603688010839135738162661863780447529357375717788622990536247171839026792789384272032846024602435341019269003283292253239153174404481729061590416006402462027737704771384633986260835710631027174482380775350268963496133330539549641735288534859064157159709766769442206909409556264877556231436857045680108002065497231189042093732121936602678573349484297331964484462379160469395719138228070410030088884687107257728797107360800377613313840530968502286486580519915374243844683697372802939356013433217755450696477430124034904777861556466226084030683939064510754470470857563506427639662553691590956117196434408587616315091255511927949781910008504655196781017042974650731520010290797067671432744075268954752707889705120712980689849274555079976472888858578950410810694786448804468639765749728390168062726117594562085385967540354909939243349347895270694877862652711233727481409451709102704149737539488569288743949484640915698237586759397380846640397141517753790853258863650247100106334121119595504041632284660972499381679191371211766035006896534843298365238379309961282040851932538138314589927068769338115229628010959151045519355453336894447655371328932398808922344843181221487359909411392199560722637014814267605710901891023412308348985381071809169880366952342496882592927630339523594946244760258733413274802435987293237011645700523452498418782192349581543876407696351393244244056726940601552150772115617362868319227644245759621576011166978411503003893189064567524921764355398845771692965270017678376370103220815539633681732908840068011486150636746075024302390768815716982158683618563154126821655536470549232931881401737289974215202378932221232762229428857052148494417913793990783253644255400053894045609464564749092820946872846851626807146284754545828134936694726335365133274745987887360700456125582894226363562488674687332052747957756639339178245489291239070387021530619196477275599586507189262880773534070636861455321905023312312977547723770133508610617703112032521454203309861492228560644132710375001414104822362131408499212582365993624908336516082176250750869732890657536234883077280915651538787710142309013121404379819996582376993771447546273807758360019243806116190044370832062805432275901133199044038680660315042734911224911803280494518946005375827973850521322461308643062058723085995623377199562606208092017775220352701308135603437873113428006394189898056588569803098652437994643974770639097760495412258736120927820391864209356591419444541811042261675077997452926330268824039354471954549731952958131045608816884317144136115777105844268864695425300725849830485505628607154653433502593912939896122707263890280479737604727852162786316379037646703540466883409098904974521717985797443815114158533906833271367133585283340191348457865839982414409041356882391313780436204274091643398708671161262152044151954127858107758559933905329527282602313020000967576719795535634895307378355380277110468681155364113051772333437280427213403062505307854980618799903164698799446810148813640995194497714270385905268354693103773324906444028148656631559912075723477889254610959272737425425225157370413373649583601965894664707246877439267446588475601320005689877425307694674396456371927147829011424079833829302249373994444168455365184072766568050946260967525156297837001992008052297248292444104840714196804113726146949347694255066889418736275312699748152678927527897320137040147615903728660105865264679818550801404216901094126773788093966401254447110305033851414247392427157591827343686932725650747633840354346137850865586670646963637114074662926036161381385751940084566281954582446684775513104100742841083602792696989882685313458467928109850746446835503290463632464713186668261235181839020743334150098908484701570891678295257469406074378520151614433227601393312310927894062101332861865863212846049658843571893184303907214133449841339343213548839199774116180660501110372993344843203735004941847747968308990189946936398802587334749455773971838875791384175317615541538031963472526716386949458659981430027226998046640081369312342666546876642856183113619175574741256051840931183506062544516413645180166259592768546987686245459609315852536334255344238822367828504518633300799760436775700507364164022143954254265267712662897583717309750972965736275966829953102655998968781999606691527237300079076614028479661521383055103282676844477319072265090751867166751227721322247318502341832486892338528477634991572808054011718755344705924256151183770007760651276640920156213128681424077881805028213376823858852509335584502861696442038356489093771640007785481136978563876904501294244406621522070802225301651853509939945139771260541308355292068572861439498833404997110968704054128618905242454344795227707897533513900322896610988571030728426598142685720781027412595616428554714711634628890861721394021202645407606734675786894272538586327933241192240295418863128735430716159118896827363016366570405380838639564496666784487628261029110934617685109621761491266073650204262471429662396059500969851834296979264752049551487359644652677589374267219095044574983025677711756964877080447527008724978472504981825640494948315557660660468312051560036118083883704426523545486644586397338690065789001982350301091966103407175720536495017951767516926977213154424608958286609675395917162977476802859550960864047348868198137796883178285656213458592710577592716045576167240661366971106171079713319845514894832236269693224087967253375974866680433027400827960251856695411477045949426286329917397928147335811478245348561623854574725998643166597000678402422511208223809907222920112901225755264891467030728136439977397521317591512846911308868973409919584171359256483631470812343473353779404255343917879470017479103151112935467224441840663396505586138565548050277096646201198850680343160161374621047934069447671359522193964894549688532313706125077363434667674138384064937998926143627740821363753925991019755451472029419395822743036177142904407596307255617974669867182898894106631610388849824905042750269645469634901118406832751766919131034400840185800019282019264304478962998414659921115106492466607775865639747469429369529643858228526541100506796598615572426619305800633503043622006248632358694684781619077671454602734773762084274109985963867046205232179368584670635388049203311508678618327245521277672144947409451913296202576893075684362200774916684602729183048105804608540518397584009420714802581910769850294281959486219665368841775734019754865248462524172027943392198610604065608754113845620377022523365407444509000311052534948606384288878079773993406006777632401013847390309114037982303223171998829514518326349973478896886908665158686512194169480999879958972662290814297230269439101124015808470392128119207002826425699916906007960434093966711918463665551761203163047371391586088490624044875804082867278595695750659914135626128807060539338585420543952894526447938787192750063140769401391973710187557230262652156394001816269696514987245657590374241505019594902572691697761268492806209388136284156042236499944784113997128191401079288509744405309584596797098071590113486775370441003802385916121122899258867353269069455275233781886139911981974687901422318439234995331930520861749134194082819129354794512693932620218973187361576773490136697452450601197899492261050168116156983348290794491449361219976495704733708802952796163853954487915363530455364380056882805134661008797699280433584653434520927796107934633704148372080572602884752569262539981909311766712894696130336207050767257326752037245030974315226845998114029038760401581097182368922209059769284425481223792473654414695613199228507679172079666131826613347144886639674895904771240438605002094870873826456047638061555716687976070794100250183424857384534704631952505073565637193950652377891430836942115093285135202314445603449306235596136028558223838442968948089920709946408164117491166593872437037676786359769599351097301133412637240708518565766362941379934925730079395853269082234994014299400561835984847232085243161299253128638043519294138117478171527754791397964321955908811204243932059689122092439380512641123187136531899418421573971957793543845500905786023870361155184978816516306114784963679670849132381463310170347050140805711229131487050920536892668607350418132771735645951540772018638542947160292822411536659481968741931529522861558428498217959529029579767682018897509440480771401875741713699816905118544087383417186724440346894548126732800836492736065838425937040437906833604476102046219656044585409633996110813786547951449654392880934845952393923653595555669000873286198307245794240286981773586909827377368238475809711959828877154761078889207672187408331308035435746070570002337172850616506908098765413956015763169472227390166955878345544457173703172152203508824998956939458696501518382682493396143801570885356950379302666298420060849226943715508532619725510693983800894351418676154356000138211006853650561969327421596954451693730984171917612368768219379116669847460493490496889737516798423392191627307804087563840478467735312713313573566480964654822877317769616967497099429023543743307239067899989688405533887055363495245826298698931190694780896367338915058293971140441291726134618810572114215539636227393297995245618163900091206500418281170165458554634423299857467696908949641761440103185297968048728909242424099991435695978013622280586446440516935255273707267629591516708895179548684368534516229120131760414531144484462265337724312546949522782795307715159214156443529918137139361846110651240269252716865830617803906487257842293382415422976340564916694888590151891726466864086132017658606556342717612627321573667158848114163923488387523525850303537703314160733133379776413009380678772064168851449301673400599520792709614799883429439493817693358742730533738114299770440015831060860690143625723319038422578597089441899457875058387215134868669617108850550740339475188227187227997295457829865586617872035445536652580381609000510553675666303231044271202658824628466302201965891429479340907418760077607074340186887825421280469369339288404277844365670607757996203383665573938675288802936256084240813281521409806013567092141364483745866253729571154145295205330260493025060608672421621630362982037781709995521939890132984899348571470965481652337957899684492727469964792746272368100727216411102598294102131536076092002880203479591126080699284659896131007031428984359627029060501964712914070535079014132328617805871706600709410221964191649519299228199401722330573641562942452362111428736700787462897606578962921365929545376945186164532285699062943036167723586543202975709585123795295070143631143491924571186358477354093004558215801244920665738541322883584064474858737337881242908797582378232848448074012860768294053147814840802046045596968023953489441420000206864834417379812698965182118797872779165548366064376089105203395488727999497753111349357502818665195140661569415423444762496357016876680150198470597289889391810522943353632650979187735040792260305001633797169209904618867453632409338622849845752520223268145691225832177298445902540402081355032257389622900791647073893552147419899238678100660235524131712960995185364319463111396895588015367745492334921804870152602761540654352879910676489327128188792580924332227426507393122013211854742923641939063160168516340915182011892819080801154638268787419033401200482403399640561469647377583615020763803123605798248398996551492356581189808295046280723746141133822449054806082389976060295989751800041391252725465830957485480641240888215724295315772110725601450248173225172681257299222179462707765296253065729957602605932934621494141713177469208842833701879309581641876565648887163652966458103315085955625231640957377929267248067787339260780524545396450120783136087663832745745241559599820825863646813407806283806034479364494450658436091741457647422776073703783394049762048397042082020641467018396255635496786702334997259399384757240651410617940166542394898546364092654345975254800434716273109557503043600375019679668554248478966157408409858977761455292231609302566229022142856768681902828836898771963248965219075004551286880182763752643160746840690473620308196169261481163288192077926118144055970172277881343609443679393977131926676028697564054507308565773178085654519170587101693175746276436728523910717885295520185049907255288239391455982219790922518314095397892059604903775136086806607562923163910212877391623976715350948575395289984923522739619641447727534667330206083265528052244942933445441211195566093125294618372438753126483148411073914882049152491672033567240889402743842455664839064657033551929038265774430035312264943878780525466270087383721978858638642993882816093624561931126643217327944310820672200840905537972965918250268533673703910239168604212384550904327989668235781005316307345183447332197876224343763843239504847406576824980055350173025702970037801174594655780122844748702533885315523657859048522605764272500138845579141948427037693150333837030624280042749422253898877294923867143787719935002447095790578521148265100980268382791985006200510431795671089428182990269077596236755319455278748857383263162065281111182331380621581492824436020651366287740680537146787965285478058290675363087223611462640805635651410418008382230999382493663533936199724129838060974705123882407150115262133411074861469577473022276339929977578989937667137169136254593229263794786889467992222099188426931775172197652884860074592631824126974782173282250847828075454937598838519781149244017834830625257590500763375478651773810696279374088873062641315789531912569423989897508422444892985991155025663391160926733283205394953051046717543829348866212056372817695962758413323206426363725268214499507184598822124308810319493581139842959908023107717200641501301651152496916120942515831685089942640223656585669474516074143453008564481829685384517267558341226819817969870300854174529971589643425124362779861631033100630215211323649774666244305711110574611684168843803154194866261098134723047802937524780838135086737121440809470477986788494979439191809387060982696394539380121498656995056600660178528053711743468714814977082752162736117310714106686895262988781364329026294285190014523112847217137532062819876029639584136279787823776073393130096707854108393325175364269179912329688133492129650597383051347773561828773378094779039680165506351163141315888941803295722855934907493506583206277554310618660519778331687241103762150794200378852765055807553928445896024820168352200318484885323498116656312905754450771049003950290780225889912760336331883530855566813013688057433149196033510670104556903689753700412665474513922924937482534909778148708042546324943173131541333384503103967484039390793567705618835558051186664721700503626376166161402532807731884761889218936805750010544184547443580278838325539365740023907795346727649468477596373432454238410279006299516834093117371375402296010717901363465668449616407435462384380517862237808280486173767714184044221209756928866540810223409145769233124768913724759945085222916531205070931028755678200092628963376554222532569877274023262829038116752324407615256707458963343593981737218233722315484330303024106798072808636650408421973013681619088329384197075676498537376900099578818817509750641421714307360240543505844654148063129537925506409392705461048184571991041822966079453715753099718540788407666344863769724114097640858000444763756794159481580037583116215938112703491364057019182427180870419794110112678998572385975188242330460297092809552984751062151053799928937188149987063280103371622508746926529797227010939486858341678926665596804860236656703494629925568747287515758449248456925511142554554606090224126646327951119249445982726364390491458102973422740432951817587936808474333106153752001658440045457433424166580984477070086368489938312209714799965161304064632488585723857214569688313914665416407546312448472496612702399195444340142941746058068221017485426368978532998421278528082171505901871197432509232839747909483697461896655172777801023304968320621046646332913611029880172309803320603379330597848431950845287736906141383810066085784303672700698732864727553940611763870031528824687617037104240265670890065686180714017175410371819348729632589690999951138080471465330550545517973438160701841593343497861248911245618629241175790939369750865024303019197894667356391290031972052188465458526673179337177575911404136296325853245660513587089559328179211799900189402743595289509174334228084555626418772485137683422261851359245696475713826160152722006063017106532496629291988407838205668395823490656212663084197452245943437315419520182145637943244440443866791877046574523933984007220333068328137837078645491112849562520995316210284325779426897801477636122864118815369054193378139597132213852613953857893349414831274823170807343946186635956293531764474121826422098732684126035464701551330367298223536530907644188118143201575243413024522090136707476495938507526687633717124912170961305494648738905730317986054630308509716989975674964480586879530285992244424552133830427673173502776290152364224598072533128249624188882109782829472302242279383790617677653095516746576553039952249047308739019003233205008402705970315959434923173444994042326598487238708185663384865275522771469441164169678309041551338307164694402562878061686674284875564064163810774460792635839697226449276772647602710340495709676421742209578822808826209417944540542984958259418371518848627127432443459581855390459445892257398701269113802513145383545510660239405013749420799736824596784994427804176869999984760462882584223402681743523651731733893949298917578079897152561720128366046470581854679009786243947593193924458316488732444037442175624198204242037204777144490579303776442852536474533649369256172813154767087260182870156589315685200574795913162301612875600627951104969556740849312071321683916701064918086266997317666772478120198037129631144191031664021530508561810001768511292600879971197171548845458435764397965376011972628629088088708156866342702625863725153456075910659866645470574459805174773989317619565561915869428987376869962125882222892821557682510387785530368503143177384239289663958719979748846157852243004721755058441789223508148976014350374393930552100499680075627745122827366601258185444575397836740115120998977715526186484045690671770257089469811841386600698418324573958689237642133063360113254068043267708372908443870085872268483132288894443079412620585283386373428878674972709111124278904514076387331593668608677130866808484465320688083151273970600157657430025966539264468600774436924719801329179672333170008989440753998861011577187492050881850378871689897939680208266583210126730906631904570221116195044501260445817206326999325044850759041509923197800571886528097308968797519122321902076214229167950372910031581571266405060569947102730664566493675751545478970012583688226369866144163595330950917529564450921759968038127355518885510180111641493138208737851565015381682570863331394622072638251790928114885967983789860909473715874062459820215388367453658661210639226187836309250559386481415138649286340593211347749444226784013759027514829089652128747232579928349647247678762158775159792095695284601291291814933161368584054091512910418064109181432571658988888665724979681592561811315200959073755409162507317381794999593833396718904365429365938924702843841874686100791847854454275692012660492022791064870144428484340257577299826746562054942198506787864769632649247897071658416600881698973061730118656235631793314431503152299303038432303867855272387259273622505501825654355910717385216578663066300172406472700169466106850139088907636052117522543875092564482633383595454406211114022716465729274552495042524075890624830715697116769718945924339878207489016323031994039097850334024477507604976697609804491015515623597098869173483068590098794299924211603450429407678708437152750308781036337296742620842733000651370373159695286464560056631805110843566505606113300268153389698002484477594240225030945215759146155083252521334937740042025993632593012596018781361014567242867123375617994714881588909259381697500981385847327103260263909691111551424914155572374469165160193206649079652821417194847928853936089696752678817713374560393155202371409189637235247575484813482592673472259945353089260342520161700566087740267199592906609622533609782828440194488988297686255447117485466643844676133793773926023246755164529122195225581160198453019905582798771109507921258451279396497930612081394793299708538275308126594131680292856061377843045553314293554061465812321303276796394025356421390674022389611973628708215772543008796036487503412850081283374748196708179809438401938547512043198123763685667864801331917968795341571691807841700422869374156897066916254353392809265683684092121002014585247686858544333545864097624366934301741232649865584769431214499206908674641568076654574972631908544362333786517631997668597574931358715969008843485935468215132553976918291364785637837556254958613082178182161372061356318317256617444415976005794070688719759491630787678024315910185543828880279146477753926209015428197827937606554228424868672367727396024297357266595880876112511938081151546625468233063502918081805238379558354716315172609057164128693946230760120718430737302386744651325119561527748130188213383001915984895670094071914232251647356027608946653426536659092526683288345643509214406780848006150185439323091811135901044275016100845527560162947209163464241061729894905759580501538004716339509747071884709697832416067241882596086352688260901393779774338282815617960526043796513204273458749557730535788907735629601275135678398298942383410568708875792406523599201578861540291956015605704180594875904890385160325549856718645809258470088546519814647792273707813843246215584407402694686711496442198967775041680351502859233583035523278959132461591580986140538539728784283556157383574095274793511680205118689426835929310357461560707910460926002333753321323743195361721640202821867169349669923922363098943783845930616882298445888116264700363871777717861011642696779981972145778717220720866745261436641280022583593716926166617750020657755579646428656695768936018887145502189673809170804323780640660145573922920597561438079216093433382209675368301201871196159645935774724865731788232050653938727203767049822324556061781443139438055243990531463382154197209655491230779457376644592372046549520524746024994236265163170531305810450289786327126727221504494414819696293073732985787003126940741221380923570493876155395846153606190456993199586165030590219012087638701149892968067586667346833299466822411561324636468637244833917179501198269993205500090670784105403370839493277071769076610217342667097318158634569010926252993112363549601610982215201820159335165976377267021890424712080235385202502006419025036670282262680890590150909273970058322829239771678259098058382999024554783397305350257545882600631616537263698631479363767241619710038579900775013883170856410571604317396661795458863596695780908947173347964490285627329222530049186963249801592993303734439951991870215705106205948701419791001663569142621591149765025461477256715494123893588079152598816161838714722071113656746462012045749520429283100482759924720054371429963432702288759210012942168523613296603311438775203755522833136757421030605711517177599593394639018109735418994882992991744179630478934223333651128225903082388557156107358704651354160928686466408497790456322556081564073764905974645849784095387899493186381139682482103794078565277263859497111552087140024535345588144931569814155126849310417611593507488573352970994780067460222089686279164782786088262480664153503219093778575142993728252098251115633988248413469098296561095398661752952214509241621017926184583881020357044726028184941374586346783529057183233055628626944981094305018575917036874508832558641043270697013941636075575481172791592991922270597835945215419175986017812111520565445824349390227629557744069230323438859326942423624868981600132447414655305330036308567654508196462355524875363643450757056353715772671192057179198975136811432677629702130789485460568889341683836919091755044386200336175914590961279794134420976126267670242163912607778474329843788755164494717850037124219744604087540021234407902743614464253604267681168779722714933000750171757655387798435315458104753268797663569225036347726347370483514677733290565476646281295227879344822507876659403369727134029303741652002443294890971547472207919188794231768283326396361397559203170302271201874124179308699694248549469260966281123891248667476313351072852228328866166801331362631604940212153416205948863630025333574804917110660097284881418717897732152998261217116061789172305943658483804009223550701030043936797846215139024643063524707343463783279752625621063672663578438106100651645511408473044023089563580232425677807392242068049325259358530581750985369530332562320523870282948076280686528251945537582058337384138879663019328531512606589894138917159321114924216221832937303584353086968291133103343993795997974860657887229503968019407918070493229990819788708133793883168733216520867832257626420258583447469442159102988934833273253445314129640361852862976778209318408653616302768738290773267464423806207053299137570158899460000231908259252613069238932633386515057235685539580753798387837509666061225468278291346147045356973659205318647324608762227373043675231109621761804935351640972810165161072625304105698779516782646314993990090202730955110693893638467045983799298693928191111488251454775975154408656546824756023368747471700123784975563630887973943624770802956541702169063755286903929049400334071184331437318583585283786918339730842907527615628600023159691087439817441322031534435776542952924384869588537996643605047229600614843723668319647566756667967166988177013521413824155681332179866967545284837600423181664104039670561350346253769139263631470406521508370929728482866625281762395851378063634859198216448091957324312742370514119438974233690138599156614128206685008067388732619698191875895421188934268680716055869513416124505311476912884589976885823344045696503915951394835408724623443884612199271071061345632134049840578028660192761037253995508492386146695396751516719935484200269940068665651495148764942783938573521944060250961679239064983426640501169103832218694926486902062967151753649498690774490474752291337699531845087399367505170689798224034166323089454033100245691288048777367937112505997702284487572559178547537848097343021549660868517880507135761692926308048679795248522745759864178636932760220526507417135648254660036967315513645087069870811329937231651432707236420099304885622648600068419280104391512235509752653716376133596519582743188294321395506860556038667654027309367233194567139983703362417481454506872888082694308874828293997291262900052078537995958343451839720053266016708858910196818854406636471039235232650323929112150018227891914795355195763764989223152580231729139935024811666991493777851203053396724670908050260879195241571061600797396585827332625996490753564355276411628699302960338686262779029055796762357287437245662517488519135075650805781209527426589474211369274940018048918901653325462651844024931113716827910836013517922803604138989836212624931629856896825680798531172366475195952323036602165629998450537894911616981444377624703436082804922026586517478499443230227835753117996379451258434860605499844838824692817763986268821880884178734806386888531251554416721195129252217289405948057548792042487931913400761149766208501689138985771860868629388277112184154585670285934883435429407151969698133825186416711591955034396017697970799792861707115390052524037485852793178524425355055979619417043104775864897598721700268671749744204248244805076680885216159974040366957597073712126646754424432835730115994309315073582040038270961780603867604876705779523620434525562157354606241336363561167571018934525319663539971761421245286316992225061050954789654246738841778493965032278800152760459117259822179221742552371890291640801405406569858744727754279256645218351702433231115628022963739025859854721160421577385766412112780207799657953113008466614357302019389473609683742715366701884321164313464109615681388722915666335753477124414714459639847390609279079334545431685556240569446911047130419322773581585276108550705894771934894684240077236520251566535391326675259436203691108800692370715763109623930690406946581618108364558117793701749683043680819517534143728132618082190420125876013073590744037064645107290819952493301072407778928627285689806598313066715093563705937111921546665515244875782385645162310735968746690807520167435160489897186696790183073893855735439665097015165132067774990575381423582664121156986763027215972466183535605871992072104807434693890535639891271284267848905869613397314015146794519075116955311050712609349241847673478827936484548305829387998584482102491244414186521663547606842861926985604126389050308029843401958915089857202177953828522821505756142046109889682408996379141676980913418351034208076780647274218356552955740925966970981852559025946491528359123578733131358108966592763560933672195351652267894196227310966114298184648588240657592299642560097699090867540311378116143580260849742504371855138723776206022142637759400056344689660709488868035474720260610862494361237776712641500378800941618187228037463980304234134410959601712510153734372803678153920626448015118905751149638251788754097115880069972416770038848098272506383954083701723310042821947665699617873391277679611907389469449450100139797518101248839949250740870667699363684273055965050063839518889504775685086488730700618718065775460455284213825466347004325361250802199599865066597398566368068071253122712292888918937238035080376088318054303742358773315432495562393457158503823943021532517583916539644639288929810614510666879708655472838782615124401417402011372566973750286272937059065015964643847179811848670529816306207979523813573414929595932206248490634171271495219831574913169938644526453958777902230520665786655967001489537600223515947407492993070282546405355612405450569529122702173945437760575034014748760118983881808328061560758518366756865840123050159828543411936403716601275469560790970586768122508262948305239016951103018251190480892602381005539326369427218050956740781785068593203785656104833513324872956696511573751468840052323307664469858682130701482005713418665675838669588815141656900278257686636368360193833587834900276545369007634249476099022025688409735818673524926359509288724749914150311472829367513109966399338713363308752829290912480534944034964050326121506212332651284346224772267740187153580507572880705972502024883619892064603044413541156185979881829447657594929764201319831515312662862859908015520555917320155003421456237621856592963476030604559413381085871645815319668541526862286903849209965364197443008446042316883303468048178062301142440609000535826698820751949020119769745243178969650425438280488513006384659265403414340376756070410795593734099251961936796358084130563319617016284418662855918935371935302690762577130923262022655382532194871038681355713536250091166328113432454956009432707502962135987871690615237379479280069452621958619389346815875989914210216074495423849029527739485347796584658919246762446210845105277140896047586254488838064755401373260157612784176243263990381912835687674693062832458483809251983764015860791019776640736592476821748583442603263408740018078332707451046552475743331265502066131167170962881488483250245071458176789369041738535720936934245749959720284550275352006704529597624864702933969314202647446212033806047972332101011244794612106888227737558092929966315091764866284490947211262694216761520292185651027936971940314886004122556998234894586590011694812698804419938351269945442677976058253970764111048803843180514883629561589868397269547350391133843475443110793826965114930916001438926795484796926666273236646185585720800374067940605157234041442656155427392551588468817322720871683544769750071439467640931198518644492914540258839342732775362153907704298821605181354350609737433996740804777215621047350548212431885969919949040583619764382525915233156361410085429890802681766265757634535192498502316744378827945788771300558210049776272072522795381713315167140513200189514562604420724640067070623893168957207439248518799479799790556959433246766951772852926662231010473867068153620527575606164052174724641642716595215688582986396682649292447706745651836728949721407454322368939626095407202433019650147819295406358454639321966030118958132682273984377075673513005042981332911083994512217492931400471551895261739447257895652902431588613305336745599229655455467307554283308453856344446712026638061300868541938955483713170459174203574625649583828647464212407632744582359801816674583813525010025852420991013457033398015603356747766237674453612894700124695836797833278450193577642717959101961560954204221821553795225634588206293834919627631962817022738735799027051216294211378822464150402717546773779604181470418695759433349905504597990322162873149808321288092952537279546779391315725693976691055993078644467345316755648851352670823874928197896383166669688100407777500672050080574717425237841270630415787390207823295080293420516856801326197416518797024534429495732954338776274423522128509856046897837391163101234361297079831724584359645507501333065830168405905533960208043421898845316160634971587930009025998131952667590840889383027437427245248478617190432469654247612969683220098830644884197248557282747605186524998745613839885825682461197105213434422840499515376379060064092132781059715507413697747393525081806511381289781021040025636414085848319600289778140443214687701270826338135996284312915976254945703125642729628796449049154557040970289141368274492887701714340564577102299110413430670019540104459060143095812230697656064436913829696235238412937112950900676049122045583521834761325249734965668309703910133575301820425851857347941247476382746034398302059459443431753409331685839276285088264851736810596347677270170861699670997318166603480534592888113664616920248554426837811638067129763882074613266437657625773397500479555691301369694917231565684951865692579136241296292509216873050986675011733687843121694117990162888201808668477202441072939493651926970484941327717645112434959130945985208324287847603234400162224387203005663414168434446770557358684505308844843465433407719794492266010804453608409385416633915396769874067077283366369663477026604472150264373179679302673269314518079203854248987800132478773737121395411234703533599954504420000814004111775968469923457537474297344221408734027348566033454069697129293188357037478348589673614226763212183015994913896479911674880791801075364270833265891860524531110582715700649816461386031385013168890740539920023431632603609475241733968860150912410463293563176363495059260485335360290131660687696738433732735872272776838940104108746092515850616723254277444069597105553294694157870311051742491390431086762244807689400094039276519682123718121138057723559010862801143301506749017039497207492100264435821363685672554957378097043287779146223563773472631654738330213659643592122713484214481163886942844852403241084806385156770142754052616429208798236995962860253689024361865858230629709405210834926947688882744006174337174474053482734848208500273562306686560070450206888155235192953294615228427536861068096445478037953480400475275898065773364224277804133174362106065765035134084613096130183741811447559488421849288668640470474998912294203479375057307241883158452024006455240362222000679976793161344619853058801190312452925260107224572478445836628716250711529673681128494794923976808360656403289707172555369337674328476275161298088885554364637826804964108356269267190027551935862884464930723976570590456935725607778313757741176517494960449844401817191995783630017578440861263618573350249765752790195649977395259817628273881823506946520995293415533253012260471141300527317955940435019614125615116408067984886048021238460867635789268037277269049236363071185724169403639277142372358712859674955714564866671291838507900716353996936016764545098243686505467462590873621104969839625020575601799223642540012576216800868385187564216075894502045361320972457946585318979823008746012401600716680737093997325898458992330038594926018090683290219934260713152857000626493968950856515068841946682514972296436047921581589940161873505836729245516284807181294580097720057246887576219658964334192341358249731251868166347479433434525777539566164008441951895765218207700909705215811428638512902106303732329523435683838141118869345735091046133186812385367436057322260668921972575572336350047735481743807177417780112489249024194266796238584810489910676234720248432191681772608301748392339906160891602344264533809097502383631456196346368559464391497967850149078039661657705255934048391354108134790938857003637809428904924012921968940497458526102444203313077727621350837143272017112852576519018103454432247208671927912524472753211332391064592004976570836690636516246783188011853875086949448813199309391801654063218883832522069432951901530416868408720892455680781484423203357184068682155947661690006558357283508105161948841915129535335539198085585733145184826899029228481695993386266474498199294108378669252385626721470233145726101656465674697190488555321229548085884911442836153009481376761780713110489057034574755509186959316983745955111959704598695437407287900871606352495437269989969271771106663921146915105823892622204529469702518426551654646088995193033389969209380666545860812786155968956530630352537984847878063261931159434251794226334319524140511278768064579607271028511446607973207858897942660378009453456195269976328032064887992496215613177697395401237008061936841162383191802629023710607314095930429443918001034765593776468481348193322077444541861685529934423083986047056222990805382363845108231418671238807551802899487596269227655822355978675172285411447521238816155868130442269314087182842905282633373151897592952932229773113219485428014829116552015733868189815524377714179633503916847786619804639623796134573549648052601751647217380265178118003805756080018009104031806121726428818918517894144190747640971218835334486711885493816655461603491703947641552093857272481383851319595989629557182221670426004389068030835370489847934322366979351506272578389843089750058330994110677447992971952047183622164300659904753189691527643952844916621162101947723301803426783669487330502833042939531476308800048894000710880103152843614604979249565280497169976839118990260056878375725199398834343174642027673779335300679762628345243008173499282317557314457949909793752594531149289742754153531725461065088702801796421343073864452566063775975902328816011351509716169392021343616136988425747422675837047993183979621457791502325273767634438818475387907851812911865727737566882150418293440994427403911230819781506490715342875305603630035474611964407595832605390447009098204831021091058647830966725435087572199397170952338982116958148582426133479373639527657195175940038100323042136902607580255293319560989132083946867526839517575794232498365011995973523086925681599119805978788693516063222198942030645096487315290223310950526804075331570178162852225104265837799431653775113137234999717436265549953772267805161857065733557003207539366025940659848477801381119886368627313765717726120237707995292453596753295934187077738970903469889760586242871528016538932473983891981617153645363883418742183973250123082526481568210373245815434775816124702321479298489376283935847959579890223153805599415577105488084249161650947382797250299052901603526600768904046661671235672519062145319144447316442201503820808365899464147273130114528944465391576025403613643272349161809016546785253759036485871377217558035615997835710167987852119449239522609109935258426596807649993283990466383072966697813038506890874708795983460610737004596788137849424514179715963270924918461853502885571607453316451181873823299070420476499775058849730823690140455934907941369153703540034163094895040052994375007439111238509221039206273362356513031376150820655953849720034178525415648987129813114114350506875399543950884797856353895640630156963459545334077654489671183348572892772459910327536202277578232639181153286005157345637202965921411448547540103322951342625745273286110594928352386401780920717282453427833224760823176316347024208605636006248638552355704787629728883700385646545249461513200187823892862973489545232422961606745169032623756525645077775792248266437689645580731813416658991352120287068605436573804276431661299372675315196595681917617630829981895829264305786882053023371994816938128985891777100624795967685048187182754108017202064201468722788291630277049757999391541970632978516501086470559822234321230434051462835750847750626634866389480531459801161383885373459631462592848845736302503425808843906546176543591004972737491937262713484338166625325924469431021129370293310788559283885539915498626295319445679544846599014792795974753153638654929194210993008816106107419684397891345049048286085021719481595142128200045556539517667986828689525264967954242926565522100611772639452856362892656927857748960953197941894018814519982262965152892875131485338574022426847328919241747278511561008353826260685312500712603427868406834355672215654071941798009377712743984402129180831129818000821222728518293350297455042757891145363460246233624378635533013732072586392080665019756478904882555449473400851724422622126202694363902673845272184714977788244641534935352734837723245621477539517760687712928022999403627046300516246045918276470618442847472383560488766503555294129660971155410350222129085279332371617293771485989327403335090770408032584651084216386542517706971348772135978685246124426339269810430872439518331254959828387533204476626406127170758352195184302180329660197390702001317335304127982860545812009810003210849378352560985430694361030516698616359322336214579961384672837017320772152120199611599070660089655398273047221191000583468553552249079987850307993789694038214863703689623207428669681158158699167344175231220108026672880465031001319825274311097561522495891623261518731208434913915013062015569374969536695707098147381078507384680106852306144443110594356000526852213286543943176730375747680827524162057755586862938373255793529887064904453712036858022332366645717212740054376092589988784659884875013207768244374049199793680891550968627247554502517357824899435912013916529714736537459797857320481869451649438903317828464682702222681244200965629006672950114121555683397145173379552262692013747563846996801301925852459161723752556808927189551650339981515430095668390142166786203294746523081070673399869986643722694046222270675612167338025316630924445347361471289023556359975255325311271161080674162216935165942179735372379064751493358421092277198281422091944964962956959972053210621496638783292667595362841402648817180078912311144644950486269554261537902075136129111334240326688837728846888518161643300004585539240520054810174039142370625025829124936014319010115436912774300728146592787551612333812068964334263872588063707613532671263291925249222830277159539264723181985313859432343751574867517530071885326145668216263198375770102840193396584643154044266308502383710568952203430801185675116375400261075221310328073288024608882949843601675191793604505090043769375363219533621072558944259292271955824618926916056394315547900368437695524759263159078924202974202409865879849306607490881923446530757562957607626461672625620473990037264748086141917454254410601360617672847045315988320379918066989484407998193325261710052888629057857629357020788492778745368664629604468138969994803317795191363382278469323904443309469836622758259802836728449893210319408848692364689517261346912360191381346318225680560056002161599345970257081689444466696806070971182844087872612870328805268722636718157176123506638430971640642025467236325656426303572382753882772747483569207971628298740896211573915003294476915378739597434413903894645969463301090296246836846080536501444587377335718564945259551880926404004488755271948380526214298224948395206228136071162110329926037496012361906561320665079843255247520039373693528584773121165316113083345701146099501100996535363656981210813136162346657609498904717686231463814189799453604800788050349709579788695074997231742139675635811812317966369458188798867055248685798277376321574134957088944738982736534777496955707497113693104339615818241472782196894942108610397603700670677131372090729865680461200458013993543418829827206866688515241881619378544069824954665316201573995169548592524841754746341006156174283050011597158941790364869345525946891525758041990961348377770673671932505721796832257411733355719759724867588833216096687559292935939212507710049559995744403702448917464257755982985813555188619900843769226924602296282143643350934788486022998672745240109766200400870954018837194596066750203472427228938309256191101763995401764131106410075448316155732296962791600279504027704749379911421954410164350659872573141904855469292566893183345158162392036022809539621186038402380442105548641951048057911067691843076563730016262903164023852366419930042099742646719998565400921487469815475052019923821558197265753002363867605402870621869035788106466921661786618890079732263724101961344706889944628909974187488580774757928010345939255403067475642688145872252264504499451972104458540376609454638090120315135058857141607411605810991004807448807728757507447318752977082602808477032377784501407556334710014215280666536309008563539934962873120706522629239241019535513806908055471902131378404126252573525056304315771782553227653922238607828145275610321344658913599313704858982493751480904089906742365857452294562544877833293117779952487654743464070241803107500881333467979145101044564764060359391259263704335067130292955649556356160154459126919348844288327776109373197185815001138382507676504265529236184867137428097138260128451569873009321640439976425077142683724745065620813292761688163822215161117190628447123390781766223544396970587465453164621887511927669733071931271122748329817121864643792124768895170161382100627363728529791611119266594150893745053766889193090245233768944582742696963640466194540631030283478751905249306576668500632368433607605482107452134587543809273947793167138075820901138318892875346053582467667924555947905806754680223730626946147858993365681045086731266946995034421716058682432136059353737608318518368264596880480234188741757256808241774503872089075888712302403881051442455237187321029397845359737641848521394895236951372688260236638403755202437724940722839178339186296953868543814521827402731893102003168201736860813255929702278625310465232292741729607297286523110114306133298660069679781742483642360625852220783781209640480449159377901879905115623614611436529149472283268580103455422469135147876933349490034966593707814519918620185890076102560756869578553304570032789645791947109500300915027131315364145616115818745002640243262626637777780916675026874800105286506918261644236448848208557598072736288016164491604629130134256007110472579477007717527578008033553466504709106390217181154453866018206675901752931074154427082930762723923389859940457890521272403982824275128181849701978421562079416423937229857323629739398816911223387249536983321955516898446253718872558985226555215993316359591308731312646203020853903989557348329956072034863859705081313791400897100222508086284895150197813030283354249072112527632970968525633662764090593075532355690634014321406424622056807030226475847643672180967682709166614217641399938328490060239254452651526416865753234579705970580753579545635421623172364949246080369979952502259682917657017638021050308805086435439934972237876075466843396763499810929802919938471376451683691988847581740846329678679182023934566840465745096993699655505752458710794476716630049471022353309462866457331976414390966374386991890564198167115864801781035006856222299787944028758449418905918792084661658974950418351547002092124363649951451484777132079272325670000763288683845466107372426984100504302934560935394895055942391862664141826767349417197973010424010612682990115098895140845773636804921240182389415219257805076208657017468714213270442650732186496670055734347514338191366546032241315696836258383753002319610105682709268807824332687789589035983420613826428357320979996244347876781182359946706518350744380389707263076617308551507527264579164099036789585770469386910264139122929495154121197822124801601439814321072186479737392138936098687026580477191462800789088854361004636676391564373979400963052252538164301113577571810010866794891416025863098333745446764310951284226423756185273587762005287793403734278837347868496405553312091855710312316936315462271954536386643451127755315735663482817335558202895949095966632287024744576670459670806440334061285836864543997454709987742997603043460864264723612466713225874475663946427964474944477736253242936670476909325078440993204476218056574973657795248335081459402875345334443892938161080054903447418276995329089623478236383947055590522629897771559394607818410064547094980312620017527968140364117298643115509498752686191099115180700570758955050758163329659341045405010299454979886628883076994690184003767958617798820360661451456562238945364863324739739338286967375044317698607752593716332034199681210152650709928253096821528494754022960689360982544537038409402416800488635211745970966215951931232891579515730550013619553355583165839766476314770259269242789922972688849860711940641349153549213193890255936703800428655500490291141855183974878786556416080277784817617222683333777497876819265578546354239680912065397444215788559011741754016119831493255337756688485025800781712052352613576134130311432470243482910307701854045435036037815788319306710469941666018364608139137982115106996353594494419983255430965253461753231881676935580062002483742939619793364605005485156676194035991982295841151221063905976309402655786087928678340326967959197518811652207648637976333266019772225779042782801505886809996543851722170085541726897807881747938146858578581663136654624143026499210046763912188451472523462471399602132129727252545173392058699003496344340138460746428268679301277282190476342621715154601928457732564483374751012391311852446189977496316858591294717937643004195226516951751002045793738842898785589055119587501006608533604457265667561944889128317106088561908714597604585153496669433308012947532315552581931223354241302064415529489219431468973655320302871395399176661802766591198392147218960332512397062009949275460913121199045670925184358336707275218229639626486328566477365167532864923679721713653656973097744241242214209882049143471145454541857174312518313933482273074351467868886107643460736548997985910597779776277652884124020320135746962196099186586088999787956333850831937500651893765747374196315798403435889514550718671288960408588326665711975731702607344733168260744094025883539541622032540645736512228614991890616204133729731109331042879908241500476483751265501929558472451939160594867776123162730859984890794459073311800689458339259043706689763603047393572237826540275997139146049542522117265638540277475683858274854153378620821049349444890374178866055958256239235483111882448047658714600980294544628645746758900443391610637009723056722236994729812000841182855301360366201237791704515847724542996977321676968227472310638557639223405972942478272397562701720275142996406050182360659890672881377170172496441585535279009934641739678552406257617765296777029274277665417280833180761395735621837666411647651896735370994581961672153581636707752726626710181636167890585561126720281280925766695781788698985243453071958474903152250574781491752709961651607144526328925332196702457982612252080073729492494640924305440355915554673199294743246556355202229771316616933435960941625865236273250272163727125263845024967731635083807427285784468337779940129940224030876859484211680385897161680315921386969805379628322403624331621464527372478059783145417437588998725350849023639842488019443686492936551690977738789139865483471563322710795090938048767707950768198891757401675377634068989141887521688965421402029004243835002386476074115129007687141363846862432861236757524317617264381657127586983459770100840958924565011205976891189006276387528751276425496761546357404570825655455201334770390591445993344768777684722704466800525324140395064796861098133729960220647496105606470840725401652805880178801444112427128328945851859470721151069985890775596229099421696861816701144625896685147419997776734531387598576486461240028024842460819525686355477400974780078226648426463200607657210970295849034308123036176528842494649619190055411365670375985849960921914096227707968931663736875956619647372124138938418477799517587988282453741122732348972516443925503339532098576361257404237330282095526293375900037421178760534588168044530077517333274189439865095867292440235970538254784096787751796106541796882417131734754359636467730753744049372015995290179467804960427102528645494451698991421480344459348343274137286353653661047690840060979104983988231015193901453177592258538944587637320360443167681688633935522153051636403549506680404457263709367258383290006056786785388104103791352678382140274328769210539914128248969927909517906932191227093568215143946822873814977020442196336055159297817126325473474370100390063218573519755348809555245517811590085758574237035711589122290229505343964730797544740447919354900027805132208762350526504623629117097501645920920185674462330893139084625996624368621675297384571783504594954248999814407982964357430152961103824840098441963864195325946273229535944453729217671082788594977361738176213036025106003166518433088043588669795507911982764454749684679398345481187883131280713399200507011402281374318949458065295326761407984377420509709860434826429290154428775631811542537428603330227442318295449705060705331593760830012147088821354496976839379704294285362979739553503309538694085632956393592475093235111482753609349960212754876101163011702864586495450303300729751332369291838722914989248051428556019220379024025333247714049045080853392950039167886138879935182657229851801609080534290820086566003944674793924656219770228580221859144643326424778628291359543237809855759705000964508867806851595131913469722771967281093300711466121261118611452234574173935137686090128111836644346432309084892132464813441475534765067304259667895484534500238600249987990289063668871133395194658485124375227412051058687618551536981990267764821041928243784728497128456263609015063533887541464232791318299925618507330904309757335885387448215577061619791093624177114700172608659072099894923422095898051677745449706961491723151696705441248350402115692407006945794983035159826668450579592219099926292018059655693762919572388104045063117499351301861079008648490718847283864597105302364765785760523764364774612875986032347873430207302532847120267776872759938792356699451599499401102372073820729042145527649258947531515402254666263119148642394248531494380014315899391773959974292675170400513577476666697377978535368688653538556704313478250021175862775510490634322397882019860949386816706257054927369862737452147197041306366257596427149122339333467445438730388948305931732042574724923897634910175393121877729722165818448204112277183755397322295530427186120943799781618469935457381698948900148766611911469191579879498978602907129103701559729248124745770814359924042599383891296733027411420063309555825008609982485018384977581250643398606423217328732012413395751310024485428900039598601150463015238557765901629476236223581719015252570391807942471605693649171928997054953831909487369312998041370421382604149917238327143289031696854936291060459783194680805447681492185819189205828205145348066959599382268176067637582280089076469582352821726484194233549585013002961047097992685088042968634277194467525218472180830924050780626664094499810015669301188034660513344147086034024245294450853671523104023778572386981559952323831028778619129945094532671608161901188630331498426355044145055280862976940973343086010524272818656610821098588075637931247309519464562146361082820639018284237998817041013439859977298930117926756027905526511043596984765633738661575267405824931519583124852850307431281442197484863763342543592031321305948549478749717805936128935789010156423466065296806991434556343918385992308898642631275787672339636147673214541959502899887252122525311205432111011080515366728404228919407970084751825562262672752487452369912455227034665501926161906110357259696331585037451472567421401435100563854295253765366793262112651024486048117529267102652987349088278967215591851832893300110037959550667693483600638803508485593344976496794423667226759620799622490945339994580936088759036069152480005812913907273996751500932224182778438975353346702587948570674627451086717079214708032422525084451564623768360677104345037249640702632602982984252542026835414326047290182734557770740472121249705863456019915105027787352206437520300833301003608330284554395508609374840420669993844873339269749293825720636018581929249614065039172341746395215565697023300046598895723836721472531178408435848730434077322427854217644525527641138918424276347834927287834974703397730220574540742913260785607065794090822583151967846378402069364663883858287204320990557450235718070365372061413918136101583518983088257278666382509263655584386883956720241388062470880922860716787501645599300140732013808992691005433641040732402350712903487143837266190402764445773608119140158958666672373696586831664696309669682193063509712081138961472117333931847742724772572714606815874293686077839165062920787431135230796774179882071109639503897465151199961671728862721590111783533264027158787345779146316615477998946702302552892505113054515057427296974106191306703133916877505455182850595608641499196417778760252995151727940214856938789763409125746735034105105913445555529699578948968560581066104846961582335768926686820136109457485995175821731370055009092272983022022986920466382969329542709860004722341812703369622649444615141259354335634491464994039587723873699604977801831015261251100022762825044094364281023371813394391472483613611190124623519791623194169148466611074135494470213461369349858751460935913532505512853901249044587491113672617812576687544993735479973381737072850879044692648821409772554812984352710832055007611693180314855284513547124889079991055736670786149530762302623279866968129530953517967173713604303825769354361529501593030723495316407990046826084325784941605915955863800868963147427945567720141928603242743422667665979217178085917575756360342398563047557889213106295569216430820765959014796063350433577072671584689078811491899163332456460535323787816710443197261473528046710269002207084670010892880389424415199188121249523843755950209550207937916259715783445543435531697212822509610554703606754480594834235796460242113094773547014592665107625332064035582169369590983676248648577091286261345091395621838748593740773559529713577553551860646925733808869569907648512757994507737474134201482258507199308869228050707805819344305583352066889844115206605100475590716505814684791322566013363037801897842258748188274418208883165742151823989619824500044882251929018132370693006356341981644959972474496178377882031578550670109231826493343241046020602840136919744599387606515525271130886537396676499111318731480022799186930013246816096210369122946042874944317971308547865415464046564018265688381038321731442239932911026866245306764468328448173649601621169456246827313045858464042597507435742614714306855238535280248989900321930852560249569339344561083232433183963321758172087183662254417605007617076158119019174456145320566253239673579110740906649154466594855273675148201197429633558682737101111161218251179687466449615623020182700549305649952041288699168188313476482853007211541059010413573190100298232253338806817374422214271108235198345729553049246326027193664041650293513548516626813551183775219212040032020051039873517432750033541426218080604499883189421493005408522617526762095850289153313367791756872321142089222716553560578154553691217449761720999187658441954620925065240947291891823512970780590130464641124825455955713893539564807435605094985477905188620705874656506514228558091173617827165170961991702928544803307034453059920663061220833697333087355735709683012682080409021441137105543676576645919100111735234904729644531309932731121135392262768995840818621764334536993503612170701437287677661909992660753085877501491363297945370260358539833877198515325625731976707700909451014019171257062160693465819388373789380848370606433823648881038507492528419901601103205315357233535486660520659387949034661079478867443495239021035332367483842047642153893714726648598943126431246502237802513992484033045480701964237785379077299950429547723984555500419437200125974226458845942659263391093486613448005514220448895221638560177244354365996629209417709808342559772709444738659642354838352860211797572534841229689000344177686213403198387559434194974933434533961690132224920900044566687350338718327523083857010389836966710077777192545689397258988077985968875759620782628239495584549023579664856535350142062741609218509175422105560913795794684327668821845214603425822669715734625161136996072146544976391570882367250516730624193841864710927096641030628945195870377473350038831204612648759545190053700364182110716416534672446488071641546010414708191178621365561841379172607770604057384610195936900556249234620241830443203139717837745731188385419888065657269669958021067006989413242151281325688762634429052000061533323476612289735054512383344791085134734180588102968252614269745652826995932302517893882650729870661363956424173649875908430640705758057180086302946564008355012360554687326036410884293018574388468789537133310703701823021008637921034190895117730320213811145266809702282672826995955892324149443361618061551368052986814835863553078168546037600191174705123989708759289759380802990343801003045805120242820903228996760884915517092245237534187788786149425470463252228919450595806689279849133730935303022978497496133854651934616960831290243764949205807350010662920065183175004802143188067360017135204042445897466336599656337472546151583832296324257885670898242690482594690720941332932145427271738713893596332851498437691335650172789461328124928537181530115720002865896329243075743383189374739320919182426240817369087701627723277955486800454683936132691400400853620681455765703927578105840440585988045123063465080284998241976369214712615171274817401858309935505797136083164748351417121031798119634206803429333974167892705717822759825167227013521563784858537188189487326123239143338390197981489144436907791353756245174184591919991034950024172915470563186138667190676682669025772633788814707077749606762264932137861843424157046478848186802704954523432596503500025599659753622245230691776838717413841418751859978083957173668545074970197265202609640594606134128456464983498882067822211770078079969816959723164980513944905030748605789277409894526678659617939510105432522553689579713611438276897006822890910191766211465127961294417684519349396827005869649773078038704174319813496806482564934052045612193497481993799233658933372560611773243688796208601466248401115961312344748575412167862762463987937364116770335190832535427576937675014338228055846176168695087330931661511695341539463307558179664724064125236525444285876868181920793527462460678386873010070902067753006729720964014697313445897688620240654804521446593070554454855549338270090271518152651365387513701005531212671010071998132321239769926426768037213907987075334887965000846406106345092443480002592769465657421118304996085782510618680195564941086532751894891750332894222827303988913434650579728105836548674355231883702203824736696969885365116829620330845825346902629900409904252148300574771932269498801095617036962362181086374505335642448551953615935110868272604439958848989055469165783166481138901388963882732877531753348502673355718322786144340404520915876507397911211834809446024812804973721257249322408744380700613513488439308612324831859505171242301273680540892265553740068429143230472341698537012856504321674601262840345688671368054567824891291419815927854985456055022103307746755614421180761189395283320187325897081140224209528802760012143103153465640118989350007538383101105450696641056610497938069170481093148680199549519875888641982015592314159265016048696599090656953449955988067534468191332908249781709134926130548647659554832736047842869357175019601812969409591766964380964876667823536036713625176764820840340102264295592615943892639593091433853773773902030909866671475525918694467875617202042011778647745663884800261441731947124952830379131177560484721262963365807189497823815511697729709059230316650517458724592735281967927719913458685112267987605726536725580290487494782589081572528370605977039846378989552914853931736408498799640183980995198570488790952668147087184948103734363738438739802275093855939296605701525874639671672256072198017844020241214384597691581812406439433324206858680404516623101735267711006406298850959713009591496739695057149740984239059693868181332073100881387270796507667033470819601729081335179793542006986801066337159846670491424231943607366908238493327738574262590271060282525169804740154080670956925749215278383981818095633067834905650166402411644358504014038863954488014916637532427781660326592389893147642156314238078508191885472728371754489886111480877060275592084330993944482046282988834435200373263270626694119940599358924084086429497785661057515905575669420633442459621594380497958373254007226818307845623352120746098055283179020641035788530493475262874848807094540729789720784297572167058304757608814592368064516142748313894377295221254116272964721426360857904506608347743299524823401857696054141681655229691938401270946714829879082062358895880758678079288858930749074905217928939275166916331014358543543507315201535713454241758023989178320096379002467317387670755840649543418850214175172443779877425367601100724252787511246170182086416052428229473773380760702861878234636236465622607033627943987349820007387815319389497886978138585255928552549480856296753584175075069124389718803081506183167812322784278852245442507485650522622404744238663956498887570285813574595924674037482709120126603568347212974153650940252997779899463452805455131572800916111127826132371372754868940526736181472054492148043488131219487559434388145296007032819858440666519690790720531926540375998213935768205793856147008593622095253945480537057734115123602239194369806270842942722617649308271902412359520480474009153614357704037091160642424900047031471960921191204815657274330073756348311702954515153236777145713448941105964631598807685967029185307178859855500309109930839029756896197517976135686047329422891476177050643525125708267327479782553200186868107189335503831864286229587707852509532922098854413163328968637272975244262694844220857002518673077307723960927507763864482405691780770099566084115630620397083095845331608057644018167867306451364097170101259303551197998388164647746777668735577364074749645491154747900896692682850617581664893020590898788089767285234978558231915533478814438694026339180461132652658346982008663398096589043087359110625868018231937784398530059869719996615115021318907334764317226795888972880356935724335011795365999770649668626924609456593156171787842666233765567395505772925783277810906448248393436980207243059405992932792343278504271560640736865796054687934105325869398391864967273092411356989127132991094187235859592778164500603520897644122390156467701126797410624001681358955524822817153724171909477518593823286670704344003036774747137607917385668384927448419527726671081478325674453831450904584884086468627642549541036605123285983503003912608533840857004932586967454365084179635745039179225833477943221358611624483302643510022506946393539354322836445558640479500046964266619518938344519895536282168361115696124927157499463143266021261147764319134547788579444006456007900391041500749482270667589108298136007977511399380755086648774804957559175920447695663502583632355423820575966659016343882047153043967733825348266229791361290463060057015070257521554054473336687582528978241039120324587369323050578478866827199976444217895620191224848455947354105779695052030103061295809353540778382911033798197420498099787375972894964719536339745183356437972660126418382977344190431368319085271410704899922856172957837042136330436287872680648517459844660503048016480071920568922150999263599472649354730278368442648635384132436605147704210437161518723230330713153688678676722368272126268241480044201091949097811459405920005011430848900953736760863741069917632581494655150094993956104932169418557814543204284081574599108482208552275174598902671857529419680783142162852798830134906195603894525100555317298033204922205974082511659545458944451883028221602856983803036823298801023121036316380028627742104416125432315238724670324111710682102673334788743191277726126677091451643887512389958382853505724126970486817356745462198396520800025193944318918715930984396789438676510161345797030970110621217242458821705340271955138775278654482054682188928543115101076897550504458652176807877512089597978737075605232126727313347258532548524528148101823304494325514571110124465669897892309597296299489080842493134045358982682892648828997049206924376859093113465544725591470730020755928615770078215814795300496982980291304782345304569084926568068479343429172875518895207535289361077977712693641810822304256727372555547211205513536812592355579544227998631617239524157535379628892420634168546883254668401228498289569324228783240031181190012853110503120017552437130117607376959106461816901582182032201497717178621466174417273039280370829918010298466352730644201380317471390280281744305745749267411072125588612393113202570978573088566113193902556408008094697533121372554563326263315848796855954091768913745202265873751475193893686938112400026097424437665568117307356510801814965587724399756430797280221071518215004080949476342517376106586954646335595346533580963599120197533841753960314438181153236677027524682457869450211983981650421247972256457494797531012630201692038780800511640228087246697570597304896289710903897795287632648956448245278012146930793435829861155867866541664212649074061121294164960472462408828672872231647253975441711847716940055935858061416559806276679066529278854342137560272536275307622031423262374409543968383118072371239789142588904459105037196075401178222086161807557172996827479755626464758930228303704829640098119122834224970053183110940580385677685827230707882062525866615512476433837007211598464766564523515885868698298392003999961187054176836721994401401438227267888229667969519129291738334073861529690507690118013598501414864483634523095258626799959836404350380408264921928725883204265935804493592927735097934821639297137401137290258299854525437654261366137231314136434253740075923503926716646102052306365342451669305414758737353211029816747860120659492492664578284261694634470734689124523578667249080110574116519956321140734108892756356905515452593864358269273874219800336176145878764447655060101552362380924873746234351300100079134087400009441695204406241607115872228588308237784908118743349122328256047001724023113192127089328148050764943013352003404009463982698811614833240787510046231683695513328728420587474227748796009856781919200361405701468385819194516700215118185938931492361478706067825646118424657197599968978921016323754218336533193007026927683909444010821951585608594486254030277168332545513270087473126116623476818570930155141200144169261719622006616209533332834262441314358531654629026059634663692052086425435894910502015680762708693844653027843043407475216732276537606904571257572821243179546795906200856005904723057552075538774268651370455089181604563107197810894212478708782466883732510314946947980674755660569506956642007306850588250147632396057782223560581456235908193027907748613186640584730992134916378808756726401108416116904060021589695152998662071089508537921139951221192340455896407897645246493905255055880780322095423749063022810024400013982508212348459669887997156338178975668018928841814857981567238953940877204623199203630632939424477828018838219751689537363374492957929832217257718329536131822425241785402333098026824759704437218751494731298449114022261571523136917666054739643074974796870651138243254420663698517021341793043445306673557597181803790336161100555251470478547564989965991882146118841510824451183949147379466292089422266698420679711105233841387271642801571044572287151731874931008500416847040340633676074204085031711089856839313313824185208621631263999985079673818963739064131406397451763303914720629437642416145111370914621371702184873578549331398969499442186033657937800324625638274231473787862467845352799485740016006795237130912983564783871069811925020318463292319106154927280788527598401504298772620786284342161739236148371691167374693677804584661299837630824732963886881642053713010567208418488520438095485384987407128725460454606669787670646791258930822674535052017642071437731439664160714989358983991588000212786368350294919246345594403299085154060730485915368433723564351308060572608314477396752563892747660924362347223995058299066342191991458365568012386793499202828564918545723842242782596146373220988232303458779675562068481093149254388395205833210894307341967060983753171318786560235309501098577475609605486173788785229677452009841099473429671658777485889880602132165733886923410651303532917577251578383828224221357467785094928592201661799657994986442893114651347078353483717123795829123597734690671450681112344514136324653904300676822892469023296750432526689319155829387715085749327373562795087673050375996354969378617332566151910566861956715256195992840714782924560239736170611608345606702327873114004678168641527518193601569909808114934052151067702931300359207938217731828530726480528006839539480836452222522621960436570375383394821045174984252416004593735267286282592888446067921165889931646425490276848973534517206537519933909852806319897584481437385820749465774487408111278477163785298290906561925143959010360856477906700167680502361335067450133887930368629253994099636382937124190183624359904876803433264803860832587713361111485621158822443678344887581307285288412978218559786158399952682936865450423757670570912678859023102244865627747461586358596621129047636876413245751932326664337145004328957804772473484704450024779801499635890200461676187614625336547375201353340081043645246062390122357793535365333020922641302252865009282187535212229299497842096604481039320595192587654122435707720462467089016403867739123978640701797830137334887109164568711715687954570820140145293170128428314346788366701023052569753867934652571264163612109398086308735396820221621770610037669593307598593626534384532512877396760754125558816959067564010470136502713313249768048828123454926292947825902254954282909424312857898797610425519422757022182624080931716050044410253309996642148597195984890035395608627070028568347394412117499489279827220593012575083064099551394034776381872511514667869968651080549513296260124353491623521625387259467976746247436848356317766943337040170759971374651889823842714719591298290527645458188873592603155098021890351086976305799675293614456876251840977007142617727224895507839936880782767332929233890808101915728289286470749389387750453582632363359439811758337325558813480548631385866826569384946712386863458204719711994173940853686217688605424382740050370455997567958777114528488835716608565850496451896858371104015889992877567506203156036000431899517491389872242974972474778065476130985913439399115724490634689956545526644140692488355395344620410972358659116830802882238620672019064595527271187101045046913567862051023676303081694688229208550080643747465739138132113030964166711036335130870869332779093921023477938134132061325306180327223735359304014809005810161400444097861259451350230909126248114095611766223508876796277716546037696893994621176811579184422945341090032556837147722656530033573765069494032798174312438892694158163142450393240666343858686820361292391181003865334800397057577294464301375561989456612402488299053079507309725786883808338669725782200846756595394662041540148151500731597284178334069352911173981696353366751560570026648463023655231726913554592023914191046287985144939455802716132854629188964396377688468105479035788815241339583922748436198881565902517398637703718589404778557436634130518418069563728461539869532669084800823227615062272561344480966523595928025752231119079241253534042787974615969189148839923944082183667231479696140830425812098963862876353952363147333986793353741152534529456860803875488864408032351212588112559777198267189878365837257363434029870231501388191399125651029252713885015976855776743830660749820230532449678446837967057445420580650026864860083364232695884039181729482359372850188691656314107445790151261250458829516618697362319105879409796959938036815988466540548786019347529148471641233132549487265386337721733868507542024380410233782417863912230604422013809898551666793348548730092430566721818930726028978016932797881488207965792525131487469978684673529224876439893151355045734307384443510399890700384491401667948139266914616512429288798794169399967770836361076747311289815891992060410876345447305134181465465782753758867672127484422574992328315538880503587293295106521735880290785460522218864152284296243448786085432774106860584038138680957631139874381597368905156975109822944941389161016403665284614513572695621605858736863409676333135317048736019785239754498065017467002216045432543179447530281161030217915916036368428639305786822837491240283190800360940077407100672077778711657957892326605950702070811506238070893136163364878025878192525406106506850776147181180848088745718310151944819556688948408168000799416253547861926169268968434211705161629235818373106818924236577784963316860381474273948934538639927261005525901735322168146367229590252251643306375410490851148717998897355329467807182006579691850296063256456298085557678356943912686085536357786602452208052708490346250312898286726774082982363124168282096758682380144279174562513404915410878673306615800528851474618403106409135032911565391331532823436720528759082010935339559610195435295324043104696677009871493178353957047224841423540440546671964941314292908807225563473704304733865949755253121833409719469110999655381447335607877748948685764881796390827237194274153962458095528599857596446685017599163770361170365610396389246866896517777050787781241067392280282607028008935928264882116942368726695410856290089470687447699935878318104828128390706818350464040472602316342837047305640271540360867574500284193062895294268232352832316948116810001712926492760350943011672426995649645768329036528687651945134982334511676608179735159740971371322097593288286125257027460704470388472137896719501032655104432907148570731481637853505383323023169247837111328260263922687548537373472885010222730869641612846310888173989247524036776905704514740448514861977393008129443210018431224823189181643130851716380242704057944157202594137420783260642075174069206373571622586657165800342504112674718627961221870698335637266776629552378761206651652334606456019622625942373455186448658629458790534233591019230774908510236044272535258660539154433480249933799488283775194106403119657676455170068725420619216374501642666939266185298260219204021577882451241363419995551023890207453041407723036226217169959308087141318819116313150551123131168902587165434202411122792841129690337713152688155228912971039373191591784562178534083276400147851880996892766672355146766472687149609271649929476565221477950920825534404333273437530269779427371591283626365181898169007298416435166146601187221647254204528918420639913530985094729434194109339397061286287542706900789873427797998375273594055433400427908355029714479395867665537536196315445067857358614248919199904797806955075827093683133251865287794958100637678969233192257576570770062865759834516234929735620539362987240637576104437506050970921686666565076163346938691465286537762191088120411445363503211623512748078186813587885730377594493956101032247295444040691372903711436222395754945897242740059132138189295109694374088707032198953233272134936837270995336269962136107589370759630423499842810270357265657275567724308555613636117013772931315511949924182187351142762590915799727143327525455760898175124196399483368472279285217547955605328345337203507110821992290745465166209276997028315305022843010489826789748737803372464490034719878890829746429107527282198566622105343504611635038638926965287787121684846369684225656324972292648948010296707643742362994932692925680147106938625642909007661467412846264579046998545410389780582462163443779950689718894247536178251029180997194660123982309547510540987015940637295185088344583212036264126786327145292684420136898214007486388229107621230331408406396852196583879656390499572330859166425236047353976718689641918973499280653275850484831566377157575341524712173331325173678363087714406767123501056812381366233002561920028352137893457894375602677125792692909996387793038369155864541805559680236983728978674001160359735572409118845788937035891884482598424694653267799180197868392662496867059980755729917945820815276045949203206804402198597493625249444182367907337879229524466444111514933822033968048118209312763639425343004450843909110981430738305427398288894494151586920719755193892964326990632369885540101702161751640593158429605700392428309403235574761572605539871977883330332169261875085857505220951141633058723870573333165270796131375977597301895486130257329882744955498468703474833410134053965515342674089857111104978327973638498836631060453808912899978253191211806878129762008880436321444749200564376071242083577672282956819466172481812539769402797198895519764104238437443204853723088897880750082623218878701147371432011420202448050356171888694350887627141213473892850176694668524866561088067501382175897374210863831895356711003751521036301735378740033993972769472080351564972724553515971787057123205996213420879850672248300476630404645215635292244259776030937884383403526516976527166330807732012909616071273526404165548156046929317974713314352181049259280245826527721262101180611608451601939195226530004397277423797096824166656942238466136249954850190368783220307616357274733997503594076207549146817285475018605413967048937208849166203603022550555590220093951291521194198431110955254728163362699655351551192866405515096847635749189949315291256858686285024817456357051080154477572960795224483183561466413622014503019914766112361687816032910598472895514613208811667332006205400373087186644194807797143398616053231254490806307831351960137359037080817622021068459229454998889959155645747235863091170978663588604213156992960338571316216727679402249995275838940819396919246685501005869220537733033217173778464846108140120962331192749598228548866519617114735053411243448657307766048911076979083621444169212902422863606570860725553454507279801056147438299937478821381530238342025860843759643233108402565260814638165680515822500903811282744383690276181195412778555383352800382372964421214579662640910602890997332526954365298216676556382597555013322492535401436472453297808570735814726286491706946666700960364588169304285387215087296029054415900720675429837039802433143415609788579621245460890610800583671565335185250202129719471214370761463729714893342394377969096953331813668833885348399989240647526760339686958641765933578049720128829146690270102597314632486855578226830495586900035036369633338239289952119098862772596601708461212181850527421363033367125959740499563724743644652053479565701241174362574059126086261610637926253529747768533434407969327141898328339773325440945223423947533046254341060319449653873563978250922657967823013764206025840479693483001248125963694214433074591271052519842857151311228071659005913899283944838047119378920792776617195145498133575057908162372876152589011848663047775908085540147702360956502246601599883850254363925282673598697716096129941798111326125760727000859159857183575678858695751825189077135745330626847711321905418800400774745377268070288645042125142547116329645595408641106938950939857596534632871632246439169651637438434384683688088721165616402511169066569629646476379116414703394316686225461581425411608046687744363101206476085321048616309885464229304238344525135021318591424415420026965756758219181642904717882829968731196812601133217290612642280467902169884215150569326096943164380380880323527232156244969224623290404382853716117678440016824049885323247854275442857617741576717986231274912615501116497562467305656400977579879598967109251206687618724480787529378318617366711625900785824859901369539724068888718415285199095314789081035756227174064992722136173965122374966776834079965367847315070791093006840053348363834557087845389512110571862881359257192212286956594272848587751776143988833340905631170408738466689505771872721751004142195487788003777743439281856732148599005686742765528577200854947537771681310477964804910397153198380720846603247873010990681820303669326251263886406817236906217689677784535225485982307129266419412589374511343255789048571221406310987490390645373728225155754113889343576999088088143656669919004718556008265060178528418156059427279392835649940996552695190416696651773214807478590695365136707348561006966468702692032834921708367239941575769781805910749368015932442777928250339381303526058819518619353684874937660440299806393399938627140795148906060981617092064236271773132882813313842062994374537516331590524354189146749501372295982398445809935472543063613668690761398288975170523263856826144649392553493623892728424105222418910677514835905004004883886245948127431498099404300483744252968452837056234491825211656321735027089009846332643217393259096173857314140436610996657872936802136638181770901259033485654598055823971120338203706649728518202678248251596860556830909747591012431525923962027640373314245428821175760623360873379259133032947350633990820710093289026455824097607303377884061821060149222611398106312053058144445787592399342115426531458620703746574761066668473114738402894795259457778662575234767275417186508944688696397892166786955590707213260112549525580918454035341540392618237826246504743223876850973173392762758220566684038740572791838384153721349685390121866660285164900971561660005443472746771752575562023381054054810141702696523835825566432094088238376334362332692130928435590305417779317096886462221267139910875009505630041351248021875265283972319166286063878945892678117883855669856925517093360348663348570996819748413312389255146551847263338223181806169752837179899953043185168301339650616968914966107604323571651246248759711075903282325589556688161987561096715656789784965823899534716792999619994503023411670422938020182285792289784386565477349655892016560522359511261415550999071633688390405886592000062342602549612433847097896123862790025262999373053474075285573361015249173603310475199061469618867563037291553600330382670630736486084628890760127953065265261186799124967054742945048469601757921649373855653929904335550485994125894856579980115799192179219292790644751225094771715069266196523085205001956271246030539213242212763020260143357318301580120275030899149162467501206756961535036948452476799489767137608789970544568066522247127556478638910724611534393599989157469403157466849924535062701831021666873914217961501386484213575629566410030175989854176625684201061953079900274338344995490637056190898407972968242560864120428334743191124470932827215969908505758459978261403094083161846845951295705873219808978952295584528334376784986929094196457175302705032736265708010151009555310104106325950167130707037980632172583720904038818901113198882979119307317411653168606441633641674668057647212868867430735607526980788948638393157342191395069557993504078279305946754556048978807476487176489092353566316894170324767446303560240816491284930518599086549904450390478339597723455228151304112005063626778351852189398490587186132668304345194411976209001192177820245428807560526896298426041405593895823403203421437014375736859336614080209979325291763804247073660235449193825553283146847166931783147394797805197430981371965112519737266561499967839305079133033310102263316327280311820046053139894623414661932214810026802585017693772168099850203125625169148923235084308329635839871922787480577441583110429083876103736397198779596698986832398717111485435291772506900419438427609194183269583530121295172376587903137213155051484399434605028280594357773769304486969057599199236045975987099304121896200330765959585416499882734890270562134069213727404788966872869171577923813103767146821722134660423272252771300950390199827060146065664845789249649329408409224087526286215516886110122570983768779098495121691398653236969877616235658518619655347441600519703541927976930538802099971352836630837258872257287581185803958999075198301787799820353114182345794353014479242708613804890288085346044324792761616639925036732581364882234908278637609975782904060009402210617614052124863477113968130976606626993947136874081435635104460725114231258872254714580642574533073338967005410579984647540991513172605813732157906871354654950868373194183701409766927172994928097356406977135651219969112858557251618985450275031827606528599489579149266386056389567548973452324167123290792297744942243864138571544749695956310387464356799145409240542749483006210479105154854983460861911364280429746604807598226485879490065961815642644181246034072989919723061652540579780678231886506230409255974611977149708722914707627884775785763493444178856729205687332301672553980590651860861424750092499054253884239041421575021810817092904715110944828892245209481075848917357640992834260746015176216770339237860702838546164062165937312236315418877437569749953982849982254189629835461974828596750939618124606734725391563468223022087105912634514829267528579237585855677824426225984447414799264242891301299931405795343971880653247929768919824198096973313996062532173623435769573593110707186537262626716191069782871857363254195285117460340349634208153917471411112167078983159305976934233886000835998122687080050560987137688661440665741444497756634840130241089993666132955272193271014571773695238042992253018967287052502553928103879176468130755337536803458454863946973090027968628378709258505043921372365904030225815758655530848555697954713175476207410282560542154489220182553661873641936285160774771510370750268553219601314291845204391090935492374810302244648897351777974607078217034594684752199112760676537965357174765399904984716838421528943425495692021700338501516491128676421580644890159910468565402889193870050101615618468480810761880564970040497985408116638426739500035270390978044684161473441898299369991254246248631338387775021165936048350035084265210111090187813588126621270942226027525326850022068124640934849765819438284673047800177156499196824705238412866108058526113395679381462319684280868088154430317525445167040325787244188515699361912812078106817705319783206803583765286838844674271937888637926651313711668539905128000761887051732342634465115486704201268970712488361539395275903236121475304763061868570054000608370970205678584900164319190627565740820456604050547119864655344639716167836700973736652960558031854420389230864627294857162872893836015959332193558302666097527787629160990753775220680014468238448607930769505563229950206928805354788717520688391099602316942580730878684949178820742827052333905069920385213976737805775296524055167306204274479831601951131144709541639391080445927208950358705283580092497484616582932609244364698618858800061821407155015665624392505706543995781312806595239798633084869463843634289113781074437431542407076709667107448234146965588704126972632902497839675214522223067109474695157619733317899731374931810996177986158910977429601398710753434050699576749622603748825605094152589114216632844843250550188153724569949554946194114631820699421854774631253959064677358906422467950058578970885139899960011262166478402538233872191333349187824256262498372949154619259847090075761518750736567103930261823487652599310852019291488425187792571259685026788054371457512834880305400989209046254060804964374396416868026050800372190142481280147363414089415684584548549813186783506034521203838649364969299343306267935730496044403472240257108179079419039675514785302415966939324595361543051726856403950082523055007223317217823713288946787756632665083836619934557226486767585765510911422361630601839835964056084568098137775578370302436194181024033246038492081762174151840284027041859682303451887034651220664668208614344064822279951333673869866547888047161069243279219837175040269252482017176286313917117850860906602980030781353795128256200458479234108249733614054591449155147966117128477611067655318409320662170053326961851891117409748300846212104476584569561961104521650486929978145025004641146967898697851094944761017670654322009999890952898642796525041497980583809466564327104733688970589750123164350655406404483036309986814286852892051875296462741696098102928261465870542623604665638097674075190389100348016555404399515141943171730007245441468691838402187950470378101567692644727488969001358788206122963376772426625601484208297395142617096332642496330156271652962191202868722874681361553017415476630762578802033167388698743822338222030530988201315966670304797363252717945446972226991796885365401263753274420848209239922687758369178102578516742004878486172421862246816047308775815849150314688524646111098694908226464953998536673929870898893360768552714739199969558213122475050363113314092002130724746656752645146136298179361556099586855153387983299580019057489719710417646397800246698756369235576671268867070456249701976270560181708666896638163758289568991934530345563773360006231006790453506347349196181721919100775111541122362175826331817812998293099658701612931444101950044099029325703523655186230424656107686374863515835237041530968543555858319782461140968861088210037830629996855063718383479324218901111176627089758524803812635039913186130687280231175578741868520541168534051065582031939818346267545817893032299639732442043569715135624104062395343891709819202718864150737402036139181093033706178356025273007152120421252965918414235873322713695959361752879759361629358666668267438484386143155892580536102031759782408377828457372222521989229315610888949379095519130731213621385435583270630334935613347298930390389277727933427805688982575995364949311460321483198541582519233100523815135458969449537508346244713683130359129079420323630968040055378720333090750986355029134191304542309491562167015010718706392304950253652174648338928354634900614036120205871622838642391285339337522774115637895952582093829423427018585290283370683222015463764358424288592684363421891820645914462715517635220249831748803717254958672178561009573286521450117223103333070643280402024521506338247881124715971254861955667639886015162430095112933869550799366899944642148711183723110465754911519537607099335415249967691587200205352220093969564620407608224708581648248928496524641390845957232184914258745328933817401045193452630530956923438230459231668130129020626656957915960842313282706924837034547376430752162178043955843050750841324939741483518136338330918998595221500757288522623723451575575134398835099427203233377730747305616309318687949495922234827882909391762108628203579410418924891819281714173967162762650044182851190242527351846317117507224291878016830636228034062652223326989152764177125668145160106619623285451159545658076234605692583389184850910689657808507827264712565634535905202721135307058463196980825518691239268789612854943825910025194748944824020566095761120851929967463689366241839468602201221251365289364650495960425563896453764423984168743081214132966050338354195779474797923815964473168353821670606516632486639930514431213051689976225665677575319917592208272796428401351743679153841373511772724288239281438960820739766102316841788986531864904355071907169851913282864698822287202424532281266079150611634890975266440997742285829469131940292823687259926894943031168967001582464734044248800080613833583359047629214336443664748553745970464649825612793691738255188253754407333645210389952019022604154220887429953574220764233536970241095694804077761701573108487107894006541424224679051877828153724725650543740701223796649140562432483088184446305898356706136162537202122696868462075404909807856764426528918992017117602853942399220139576828930601373011065429438892762606019904228324628239787796416862474454535953154474068524795607889830052429111178550716975941232869517778591115601875859252437748188244712146885299691133986512340285035050800720362905443485375235071564772802057536387555274192485145908970155504142860897673161937046328208195545536596194944426879360972109159625170044645414462356381035141905198713621286436024006870125793153972207492980334650714150556464881523688325896775250560799775408540477850546232731740370068228680210748679577576649914587665988394457789019772248812187682445633317041429929232041712956424732530091811740288695717060182399969917053761090894767373665991059930959198076426694686266287154189113054442178719327449704130726051820844773472360487221131602856830193128211269274449002172815276671126895185868410142829762915286803840721291056356408220438925378548950874447291689270680425614318214446531507196887165057381849964044274477505151474680759646500840810241433734159390773927166158439823015659621389465086354048786682712114074453814921587477203545674726779108027255916310018409950454091280590160057021511771989371661648981355161304710588630425509673518877318914474400124403217196842227125553166444488221883973321786843330997419413248555299854928399121859160092517675506052640207653212194723745528097925344352249469552057648691135475576975052754792176131339519005515666010136239972651806983367899859411030933827976777851787540238883692969210878793366614577635940078114662400431971984030839831795594600260436059600683827148000064753961480417518473193679234179773515394967290745016393976313150252885958257872342487711172723401032958874194251062866989198384973452371372187223711846984771828763156917018382323180582131817124819956660762608425720204230314666644274954520755917951091396710241096831298748008592507765388309683860979480167788979389630855405328394309749909574405918364355287900930475589661726513933063254645565438416960381255066971264215274616668431462420304319571486365319733668547029089972653405197673660757979013194790067191353688851433719394261474634518234914737450553848833042460458843994227175186771820326391992248242954101245354321077869481039734597784434277219581040818228330075858203013781685545894927338945137669226588592547367492908844328732585783715700228538128421344239261223011512716403454610040285574905722693604010712738289164024766434521175155190028296392075352147693137055553842306856706163545521559531242316500865857237686091739076703330130539836542951073118278247002320957527866831239221093961659394594359437398414450538257091640082874401302440335747426322237084402858045713821777760056456816953762761082771095173371861117398470510537676260228499795316085322601665301423810101888820366146579626786333719782317275954421029010444758757621571993195880048129502613280158558305463287728127439015191761690090516905843796710595455575187777461032559770743403218197238827311601212489867301513774416753328612925362207516832104112016906339975482504000708604658643532548742595802160446634210156645437488890759536835396636943791197612832688050057405845477167974337279606970429927046227778780067113773234855704738103360454375498551460457649867350548431096811643671733942206932572719447665668716078019235615628033859939561903173285861127852732644050429225923198204458574598046601597562840505425678132866838411222067454249875101242333315856872284345779998960368744416921308710030016747995794821050724560333287429975685403575223972420218912727694319557457537741618322656479615041597832698624892339523928042906171464616545501243468335436321058471696830792986516018636019102719558352785054295529400089921859270578295719073550953794622913243026379346536185707524652871468495198480986464386645739766996441686634761516362689211081362346105728588998848936628801109187794016982002865209011760340429550827915575356010245201704605454760752290578906662872086066769792426586825077510502614694845773772876927610018763601133649567927339976725179609721405152012718754760143787338470324674360813085593798531525651648361815634653582364350524447661923611035333625060293589063292098816742109863666531965056014593451778193587644736584582179756163961542500837115114945547850822485836787895358339125941874624229904571494036504034456813300085945647046323150764827555373917576198331826092207759461851114405186251438877568796593573943802117773519933440528007770393771057512912900629462933171692052513527498248230224335143431490353855912629156789902245592784962748033631326696102534940229971886180964398748127381579552070064348305061051735349092642282145961343920899841309409542742756799455221099499643080387771234029780320834766490242892208377879035191695346520467925059291181815268068528926189859947065296047291716421499762217017442321250833874487727366392190932320044168522401113986103611716534977527687802066389482267964874802267702702565120510268009541862068553440050337605695279383145368153473532039498551234227990394806933778277087207068503721037560810391876313337613334177410150242451813897886560778218744905037628241850908066075562894180574480886892680970150227706634270169215027400626623880376953345932845364718799068902525550324830042689274728271681693225130955000349410479738875352216858667268276668289135474879480528100639038419664417301142693309391298442170410190803568936479011311194243129656349473379619893105111579021141219117281717698135154525365407112192889875618276372082214624411895011352060636011662769903912059774924783173360572324273165526403225617509969397698977559631146377628543623742897776104117924909658978900507036500930499771089068134325991350180333033842164642687090109672835700149005919703026196246891572298276027253623970254217354978123145693866100793001192125388124102021554458359676932819758407744813886363843075627784266355069061357796309438132939709865833664561230746329073327237370784516969697521671420982923876140028076183057621820752996242592530888436273888755153089524913384552838376520517088968356375628502794706920356577211444854904548255699287105010660795870491986616690340121491840139292167311946522622580922375784865041602813025305135435544873989473162759038209333514979273632434098572649836218381561333697233740797859159161048300075360584254706525061416231337173522229859375683390248482134960570378617995100391261214338856295287735482269381715293553775560250012830279879313841531733332983752699349050169214014627882013479134963950093444581946017732871694887911377219135039868215189954904201114633497533924462232034823643068156660657877778252852871756556898601826310060373901639473484523319381048388421912719577258764288130341909872976290006123266542208657992920317212993991520944457308567045334458126074795264291135816688391169673269501441953744858665049642227459507132061522170579628424523133401976572567909407437032768409886875127182617942000886775288117891547743885197666768567465922702963795410998657843052210314058117027948493871270886570747145616657108300636943824662567645073024888388196194738309694061875211845388008549366203088730902937862091429482200653738473555367557349658575101290352907713411508247756848510968739871496553111549360431895614040985624045465114482723862631185958763563767096126485898843468281679195473182402462866488573776552053963777180360073313432359007585266797911117268773753088222699901988981725172808797252522374105102453794274764425488453833903428375954385157362564644894719096117308334637282714152980195980050802777218312016260057906864158691008570252964181053293561728861044262257951159508849858227782599514718651869524838645456039052310737158207104587366722285941036157934519408014469316482862550645423589771340296263413375003845955844780188434540256881952970436608349211432966859952362624639541722920275531969140199039429436034751767359014839387451608362384518684297144652820313170762378515773842251392845783887504893179241410293640657175323671477505575946485243438903402211333633603383651546828916843061635331122167059951235595051081131561856935812247161452566160401592980996239198958511825362014676064194996535225030629336068440440379697609041739012651734974793302262507321231991736774217320181554231976398585359777907646256163324830146577398516648013474258186083617510486841749537347807201593541518420749819664853592851027740470063448476952018536497786429631378632475875843998883419924632873556531971262564764108836612421109262471577642666541937251950469254182533059633103336681911388041643850714880902175160191083757317289716493641931298500379387576572106687174587653432034705833643058851607491982558942319148167385806398073620865954894461687531904646907125726817305854042176444886180787954254122440726297705921819717965957760261448710543755532190591499611616556335784708832085195178482283173482333050923624939620727545522603476887110243437646622875869806128019781645816393370614287188400526256118059118251339526495957641944477032480160396231358731988709419433203195003676613390449938538435257669896525506936788885308083925898758538699759610028638765746181180264025831880577528439058064992625272893261710891239596760293339361941128290721122699649759978839426898118150060838137679076827831170665958128439192961722011757516889365487766766208065161830764632933912577909726999272626787298445767316892321720433279525031866432648427090029211893051465279761876804117943638144008531210719704307128145002903699376196104593613228103046728926269317628474037438709514173242611266348697192886897028430264706699493056081792200510681752627064803212138823310085347694768664482819499849106094947540255748059996278698378709445513306357812367234498125159193804871876071511715170883951927646849265416191992516718103651280782829094434063091266980879573342076188272986397001268306185602234793177734153107286459234546427267277963247192800395377505565084254212624187721520788539074379269694520482033468463897670822059341230013499919094874725345565844687675423786989934389957882106135274196820282190904857402011609202820457855745074284686449763452932835868849800681055127607033217770842494225992045488639291436193849347791310433214702586861774906780375416294699100914312602737425353314888438335762380082358544400804454545981400143171292473447057165837557987190659083527440262830355776671962138384223761212675819046717192504263189055092046711964385278819323857713979287132067536132337656538720230058808091910666223015054581435480676678194821367212074744484115239359651538227871016480775831821202352374463669905986220308688320537713052611497226549858701567997435583850812650250839375493604883776210903118967011561014263413093587859150836064614648997194113559203366295778215688014596926452314319753438280481938561083291223536764478670661945427143981693227862035292836764313060359201944148064897613048676206896915367826786724054325723838357270545606033601171808610185698248264557996168765999836623283312441966115081339986194989589474690529153054519593745134523014747607119032401613169766437593057337892421912237183625770937192299069184080620662272899589006755113930013744886293383050225498652102413121766475827714441120049638461968136415298102252230779538882738237086599661880526256567688607147989336566217881673455587755997281416862067971593458655019647661602397506906136316802558235379361551684911891958983078141742307894011592014354140622599943136910033994307593597726315733513662227431355837204862061448324653860326151287743496255281187653152055506248351116487921593077956754123489901459320368645072059814667756761453597245023578438685101156123485581547562491201594915776073167882898743124510003660037063425406979760017042324829876764649936117463366285215314215353344908744231035606789972349090800445065212958158252368554536338910705106544206137864398792276012895590662104910433103226262832907104639639649760438286951829606495243736601654943275798650551146204600857315730970047688532585515578385269398040424814165808661922844965343562546838528095000781044386078516249933083238191554235236691413072600329741141384620279923273226274577254204184154723866964153156310252063831908010898332123251947291194676615381537668287552108923287427595441808473292731134163910063819748007168574711923971861538036596642773588430625445909243359367747603742469046168397672933563608867003752393692716624282556617095519269488520974852173471828592685383019967389026724443687484000266824905342322421641187473067455065986947410417580023969996001536624890815327497811822649560459375904400122209163092946141430038977445790897978707533277543858345061966484333195431690386218555613627308947873682565947864032250118096608992793325770335665659933576268909314436137091491926107969744606439325884647212473036173245197603042799720254380791524663256020451144763256912192466087747467586105708620351478980332179538729833888574864946144513114852131060654464287717285547690337420458886766883229051201684621177021053906802131489359134613746683782473341887630813393019667674425221972459447134537754999074413057313260039382833431434192034675172972154339373805287693031195299895632357767261645832719003672374384678051644863280928493137438976112606878109458825905996500230212217864447813452890342130940709677936769873072895183854064090178999438309830425880211159284465340094947084504142989583581037703598988112022300790400032094134327760782852986643208517926464099227298323030109610302025468567290751628664871227216574185813103483333611991198237762565809804012313550411936147629462171901075325161100888160544638288543305310022656863144677010127043427710276517857002275844915869166099891958574944497247312491875009122319729549279548716676418105808335686694256660888949699376025571118473522362487127440620224494876667115054638510257806319328252117074843734144579129686358813794566393608251749093260685007962724035413867233067127243033039472190137081019436798901830446731549603756939042285985004121407624000865076841398380890666387274076140373273364178596779272975133782232347436448206029330080020373815005183917016197964628997414858303400734045839545515966617398701237840304031165180295767181432013703952517095499239357829801393571724842979874107927801457872726122756241254563890017846692866481714573739544412573581949911760518461790070284211805555225887840571963696667289915313461146342828503243898728562997162798024846789769284267829272139382341348081650938159682285709021448534756515248853747469590148883624693903714807229164851515032356546767918805128175527262586018324082177100911760815992140948656605357234889324559319070834445156547320532003056995012819672890605671923288066675728828532064148298127139603941905798271396270690667917440443977396662437789415991808632417208769678222573945509110531803895101769970433731740662344248350061149864166836278854199804998200734471799949144706431946233113333470220492104555787665188745500161846022902411735564622719358733933254653660440075179326294233886231656621242095905115428269072073848274600443292082271418044427861595400522306073802623714264948031369407393146406987565273633031798514745878790182982106018622439497695496546035107018235035740914629232075950592460012990415521254087516803436704423557850886158592384001284800502214557944636963408211176246779501213337519301229948084488574893146699106740722832321192588206221849720264084526484780547262909319283965879704900677322892506677198220854730865508064600600176593423267467905653053800594010323456597708213109606311306110956442235753630207236485468603342508949889745488687757227712282079178137507998419252947724040749556259985033587186015466049279429758013380798694281011950627356918155976996815428875506081557355323519814379710047687429590453256002472235790846926767708697852854184843726931566386360618818563160877323263429554326629725157017692978225081611947115537032446045717346325263368163972398830893840123747672058914368469458416589293728428820148043914576370555667751243062213703760307642144148277384399207618777648844287432004795528492322841112429092837310977298585820050313878148419788203465317466094338377629786388556482151419376207430622068666074798993109255173499825564993715170830391843995630304823637204934277302573907190291990834406541685239239004418981988507876005996475482165006076858301077259449424690544104107989997844763066395134738984362622357319002655760523242088249103263546585970438523670014524100761556051127470739434400590827669566292513327527017453718360711636098360414355290129479674151501477903860362418185419080064543972557080421768346196168737694374701805897717051941917713148896426667427969948585520652660115728048289679634596882187389377899929453338132635044294081141843326875710771764726566630955896908902629825890505950042216901738157317421798575792240997289526596830604043909766280863892045149022500239839156003917629888507041000437150125369448055477143018843722271144106411278213644355712436684636765139950089677960858263156272245805167661735785461738128550070853235953520197389672363367065777091380910932531947116271774600096162796418860274157524982423349649837333909006434129041215441191053211630056503518883404156727473567977952294413963264871745239613216954707314522311131513448315071306803190608432484122498074971834025722984410804720231195124700207828084724198709992820636734914739950548159993855929975416306668264185289552318779409609372561402402821440776367886571973817103174464765232798432556900848057943907037770563702124878137284396615749752093961852223436497111882377898228566156427681634417401546949898426126613932851694677014875066603756311237915177233170961920349891358890943088448735451558491979244639232059646663765509542225784663014869053118455469879364281359454735434390205515837266322938344951327925895723200746265877512711587712740067990462383876145466913908452531378583329569055293040578088772124271081857240757319414868947170401583187877896727997372117100589079971258670065202973501238648788858236053788022873497145862438787682555556034962832389945430997211935749863344025015885770967777559228158801009764474350121618620001813095722267276280303159112279623281992958479178880982958718928359843960516050833800617901162136783343478849874036735656590569777775808285373866438528859329336581185415235008643783999354363690414402956918184631946524738164314435533893489024039404615850994765463273353027081212353308212653862546792432359989424510874503029198597019506462306387415207365847946390750633911329698456590251130359944462375211807221026738945017752032341345363911183416925866696033931160981364966346477451707211215108019409257686158611737326937999207382176969980783721493984688592991792400387361060703913498301135873448383115874841724933917529348873315654219204365970455012403758939606276246576124812537275355398914550912536650515279043961584523889794047153104901583129580375160468632746831717455515505526222805220760601413921868900337860519987047800498131276259068188812461108047314945241458390630422422066110389994184011770922402134008463277461456974156092677503664958507016457758694148854706313515840770627924733130024951783497831451982623281853391407000949126636422803061182575217720729294986367929490702073458027478843291441664112355699998365716603366004228602870275499241700814072109213171801609407337699337998717597591009518022716175031345969277638607070198140754096432647878941655190568243454681682936492548279643250318449117441613434185660138105796662003806040348873097114995256883378259067615059167253638848894466517561248057891610769261123897807722811738628781339649794283446942808256466737400586917954758736988539508365186219239716518225240556810424767296293309123313587103807333942524818795768542100155806156153964956741471632186915157189746988714890829268932995681625256992533018970096653646145163779323437104754918801375979232296552047426268170007823674032001554027033109651338319097429638116915025565171031317220980764201272360090387835434302189743033364120971115958780333854725303012172296817205288162108428001033319757275734755120355269505354163360556887877434784570994786492374716923369175363718519007682020304205113280247760528878642881337085885905621778284738782463934554019778364730677633241909883772459600849280564836690922479608838173584668478303895388330699901549700512468493284861335342847988393702495510888380322196581974990872712682332177227049219704055025342093581334229355013611659976951785234837226351682443559578070735995875092159163304691928537391052190468635038737202738815964411291571799673676532869554393821911350608493023734141687246266372917977860988084636108689660234095850795510247039667394817667284216468560866112093750725276465819536802735692320163542447888902753890740968082068867903271133114382818956507971535014639346812785351527467083850511644613761170193840794978000391969723073078298149284744867186026093259017962549548952422664807725041623575303951079635730705345032747827722527391007308834370767187645251246306687296380774080886539571903055458317482836836619493427706060403811738063305499638446369032324564194866711106362264748095566717163375501688517346622438755472936119762143863332429546838321340834857629149796195478377778311773670205433986863756650228481518300104984124829937386679044827600155290538381319250627271184219068721469695048059517541485119054289853935800046342699008940999506438339133424019574205532836783970519079293686050536264171784251693573849567875079978674858654619478421842914634738988933082151230750375892391574312065696171049136028220679582308719559433515724860274821748624269760574121829223708691313468447458789521365628474909632797112037676006377828915067725542766320105699958914610375389676549434473138949188033686956392138152940216775144606895600426910177293746957663585982192298653368663329846816797557525746479743182702389760378695046985034541029205038433866823277209183785561853771639840904110259160096275424120248114333814007992133295572334401911677515205169873459713065506373257666423920052100940203228679392244397829141583373293296633862709499907903572472727753648471947895334284025335644143603808958134124603467546473485300496168373330322103826810193355299651289436780856009523386773530331115541432238824907042295693169123164509139819588169995358104425781801416936633501076489194292086097175549268042385413973014731585200919767963369675463055449938081981933738682938408001486872396138657192946603514342920619899113686792587005241292990592661220081310778156235527419251215489150131563349137671747481652835866493391057720214861977086439670618080711815353131255623630946554249930347186666369795462000369468563872578359850142483961005428052204396466814037749111891278156984839061305345871900011660054997512582801070170012274574816961031180193624864570768581135639735336232897196915369846670069690530111111194193396688679103287653974791617744738055580749962652629319794765223874308128409626598787613614289769842054792424448556751656622917815454720210185086730530529907581846305768783200702206021072629965224542693270012398890662831715164616236329273822920819300370488431934984289355869582774461015224650402622585242745544387650633533548497542732891638257534412097585412516758045311450047476330063694179438727400741789209967187681377556221032321011328814693642220745185437608589974790408223304990778309402039592449365808662207352855918914089552585683426848887340383332048809691248755460131238111036270281816227539307050242404933910975475734309816871150840768182250425006543720984934910447525624459558104785151093479269612665858432443608695132046354872867729837695279728063124324961982704998589547360458508531156108140650670012333148113691835789454154844934377367369533519939528864480348209463881053854259819463854008420633055130196287174178437574906498864595326913289779014366339883798624314803310856209752581485531674767884856233763517648268840680435918843755472286643025470174727279263122484978663905765802039303660385790644430680816982877730297687492139555659590831064893541989601807597158165967772709729732798259708753593700764169659570931819482427008744639405365981148123626798660277543181996554755855890545796162163190750003180374279569562898840137783270275088945238306862991275141820984185065723667746320785670463020184034195497584152582789191570203757230695073504517931159665543489362617398096938951436443268193675816102046349170132292513474644033782683966994920490406621925334914559732334022696958799204712185625490809003531423405339178296076320769778023620945682804158708442213276843081094347142485600682265796467420610629740261000411925940621731814150709336545713924627017672894118971957821129854267641049544982097769957241549711933970108122796539497835816671499010671791254277434876421333416406761165366022673555244293985140232419358071511590545614876358742819771063566773278323711991905203969234799700679381907857780258988184751725957324114965926200583121265902758185679944295033020746078789877799573962728634073176566035968398368401043642468285404010889126155069223688047307329516351173778450998803131831848554246604637734184237484465234338144447516808911686010526390911688420539443351362919671277611513929085679928821994648236477414433761819941746054863569977071542372796636920793077973261718195864439693722156791744749985913316923958556157609063652787275611863737853128323799639583009404486091341061359756817249705493503837341722712750459346753353998900355797266333637241514538414617841073598637033874484416934517447363463349616785740148929643660614397555658920449149795226116533147662692772916050886412129478361018159029923759188634032117059965365132657989136936076872520622456704730457085069567455347889332147214959738471925751548900947440343882655976887756056882497797289259686798963224704986383214740215560842330106767395214820905154618643056593553035937090472397495661385453662917706207293301881631624581819245255788991259183745759600361935091951811999112524776896933225454043948742580957849566648094685555999358755457458231065116085442067986133152549074523428987464843727082525155172556170154063949771149078556627414619993089507724169425965850203077356739205056659226551129370347175961807216152865743926042659132122699349106643814054564957329824001646993121949359899126463006709762814503585360597124941712965254357918309582206123426294390991703656932328800676038796846711157506712485630274829198473835145670539648741486303454361737535477926391553358895447513703467347733361753626219212668277412441195170188009593123373171122974631653411886479089454125346056715402158870322160973839365650621048173928601755802088626653393086911364670693230307775533982358502383166571939796752448951484374274629103602125479576652908125468951440106365663282497609471289050156576001691250403785909963816480748781143095713317773160707353314772561430363475018065093601222652656484539034746023728002482022417287548346255722356689624992868269235265989852712682932436864130583012774068255502099144368927012686148500134354680389111156889264247524742896575079999683250316294548981881400625312201932997766165935040261802493527592778366707723949075761174110458502952746067356124283359812618406585701784831845553277503990956564479931760884081444337974875312446481800921841625042183071409874701672901266105423218565538388827873167136185981341252127670302137470625935986442361828794362048914810700992903765990215685628610488028812494933724788109325214357502249990194007151957522757753247466629146356590009855000548604086462489630677080059318089821428957529402102464681764333692392700343295596441294922564409324935835685452347075212251500685214692166565987376115716427225736623299515778505930933753038934157795113989967832133164859130618678031835507550313391444947255314525098993792293552262894073262128702922336978283889658035231848262623271896044142296983959403157685071432365269371310330510906555307838284456660352532020254422702472953938653508853157454777814862058725502349210013761289704569894091455068261682676214048315892219474034240350234914030011724990290329638812096218922757655028984983308101253305861028950565808302127846362561429520716097796434425256030878273437770403068017395676806171348204046771002227228451219807579948798329336501157902995077357124247017017938765264136708191483195921518111106908568841173046416689268200746570135352458235934043792456366829743754033526634973047849482274435332014558873356478677172823443295572852258229014750973669497504777212673738457846527545293149563675284525287580995028834443452689564781742708949563705270861373666105605649502574160035077566401776923411458803084540648982051389739935877703373351160923513052853393162274580782385163796752427149548351511205401410038281999499061225330688527397932843253107017501129500157799738348508855135748965525837602950122282587764903782727151289310445111113759759087217047264542782688705642764350716383555824558452560153349730990303957442321636663328826442827927294304263656056392779834743328199904103680414579965991366796585279493510751786823226585228311946326774315429328965351417137992499513486650909290039931416140897826786378104815080056315393106964593981723987802415988431342381620020833625788728290302147910106035338570674471143973642144979096011632060638391500810762840945378796177397551909893792181692421042379869467867038302455965454740006838939549485550952757574274910700639770786333259417258349158142304076384344868055418663046340882612841907310344736331016448751249853517949646299147896033063897016280032596733145004291423180962069632024176771569600259207302675203355730282458145650084633940480444446138226307398412719230167286891111918627181991472436926229345946819076611786939191911192950799945612880189022783502759061218774465520957759748096603697912774444048341140984970265547097622695762734540045775827323937614584582365381409055736987264707776430898340707043903238381909788099476237540711490187257687185507376213883158745399276720492233376268739463206487989635711592888896808366491542366594186115066039975019269202762678328147300205061929674143144539381912718733064465849174741580695199096950722686972756548047631712802607520849690769512430019905772755936204399962584168328469585579514194108718892493725166125732312722277616794733553485263533104277304867875791940212694031996665031982305057547520030641609170437967185265037295845534645096433756843037063925294638580036670628638610624571322001436516941082704538048076163753389458783412583566226223457737712103309797890737739727693294809996546419207166708148358089795036032254768414998218942716361227203866088047083369707332038605670999418330843013412575294257393855315289252122334386536530524602673697451182736080119000402662833960429830167465957698386827973399778768556481864023322394301369642900581279666886552820413675248275634018057242956032162888124139802870511630731704876275670529448405445607135127687123827359902136709861815417286075581813163700701085135874024629342139334789475230619246320676501028237201718705005306943438289500546492588613507606951234368735580987568562770452658348647444391723918115301995900800858888229062412143556056480291756904422442598741176078762776022726684491380740155688352926921273795354431936621529423751428273970972530270471730393442803112503836525336980395618764883979077200643150904302635368116914814350119826972492131713375693406349812730946047430275648964071080951259686204349266660216167581191816099356742146866066287638903874794988425407258927618314935301523545305483761826813914203984890181525732731876010049201049235705967240587928393218470382040137067200162089067923033211135585265355853562191034795569308982912341750708389615167107913969226210943222011060582780675785825812298932555776938049676788987113448899691499806117351571253492624977727943981318524759880788561598419426420601953840581808712100532450627621062874027869342171418538651076675436811268750743022811319866600175354906820367179231337952441898823723956279755544256500405034767811558663078645618330775128419525280679294178209202925755429605819565367305919505047862085650155293103688723008944285921061128776615490626263579302394359462749126357758458847852369090371631535051893682530737799690046161095660073234388512729947219451151095386179142406411224082454578262051486485473863117036440246883381118905753716548254205692171860144591266478810711222687759379359031508570894189216982558183959533557693273588290490137273048685446584281497078523846263030730391249274546601228366465448011334515283533829989144233302546022692160901553459181464207533961729153104302195682447214561712633429079705122342594486606841645735325889346028425966598737821797557762155910011870091723748144875201261093857548543265816178676936984014060683162255078026574754889116733089607663163468560000771008904139649390303910428091329409208998651523038821953471426527191703504336541177970357521044815642924526250055433147640425120029773836821804899521785978784266076715466164818835033341343777677069496085356915171477818434361103794006196853649179637951936779273911136810375910207984820715978950114469283429783222523222515890597719886763780993032991428569842631031539046876366078940793768438200317319222704079987078986496971828129924434085800893403727387601630644162875840535925129495396324523320513816685691647462148307914771223163952599673505264449629289114850515016111336497290895353432271966642160894026716688860710581386582357387923651067044199535466074423354241632920295955809817294311388240363182551054385713231742410196106454068836509396976970866406036224893137857789142539882261509153333255399125903050076167802017492165942123654554359241494733446227969635460609211679734497884584689848534158084784138412871687033300503959542006284594878356524523893839341716787701217525693373064119217686785277091921963904570316146476675677020423521044911622939660385845026621501753948050026291366682353781030757208132932765827303445171556278180635620239667145232773200916772933496737361955651654531816340994630048164076310537788662723457104453147640905010596302957814934108802469608868455662094711039175951640118070971772759125183255164226560533829061944899018554960233570887471208507239033110713712237822405041026138743300054154579465311296507327993194247852966216676025584298982366540857958923578839438027041454432465688867344566940749112352678951554773379956189228960001209942182492535168472880054874174187802510566962898863336931279897398622678297501238959456469668352963625118863387352187132226132954783247315379600213895414645788682727743035945231859827779274979801236417834023613076396722266492823577151756877965611027269878971501250842209986375228418800057420689498104819405437347989497025839800499335397768760262451008533329768543816591038770127051284214256260855169076081290857792667278649151058629554807939984874122337261392029182549048183754321556852837608558017982546127381630693385363418730893388313808414784502075222478711040649091256535225787649367175499331478503679655994559153214794315967706787427424051026925643087573413243683536868380368040592823297654776736023890163134328481237759824217846845547165292270643203945528814143843937891590332588038074624828024254039696246714007801649797056049750329020184807906270668025529707143782878497348812160113112521412490020672190749365199738212971705770667343768265616068752712750324525137565022324955862186321017361869458123406758927762480706088283607563992069303467332880136845142045931475973451059315151409630223220009676794337547048096568997269413804683704242468779499804643627306763959927015620500461840645944855002423093344483061118809821864407406601228179496221998347849567756530853744841766477961311043490380016253647481080670058359808215807675297356747458507338327849266798951730730883027028731505659515373938114782138655701240760210610041454823185549878504243406986330903529092568188758445119658413890535489242406968932483845290246549152390301899572693267825121931679356505683963884141214737659023987489750710514613122093155145910607252233460124754387395468550208221872336678332791859900893751148769239025847657596438337395994827701885277301363229213899393530321087532894687357997745772898251446666036413621393939886483034710473368144053299951876075479369078209945062341698959799219275544554476409028496725545916222349873300693523015674060399566201248934896133055594664049341190309198299624604208686242473197938527953651494677012520411273308968026415350632536768866734294613488698520938242724122527811294806028696695418638866080945218938046896861652750703068918615948986358767805390397628497568160851449342420644179584460897670954352491639266646737240413248598779617518479776879301268171540534916295905628739957164388808806075058946000722018776935769757087066671822186908569614133013257490475705697944605727515707857276564488579424630186979997787802499463654987331465527322630574027133817342046250582050006063107169545906898676187090794191906319392803276006964042693498954133224587822716642445934463609504519163786130271984173068385414742060072228760840185810061226018430197401521191170926008839598409663665062769343955040274587352879506787265051623973524292745636000732714204375226960422109927846624615284646922173963812376168462623740213421892598529271250732144113420589485001583580004627800901346126384630297082056668070410744306077831710634731200849524719875639230765131953877181609497933039173038107415510839184000005627721441757016113935683161471005848880539651346510562957197670318418358382198522915664343206717364381968980529339217424061261674393387630584390451575137904117166543476731759366002808271460595795231157912942947005860306159497314049300587843906263880494822238839493254435351786040848851522153611855394699854600687271090010292879391501596410025976825660837613035464964656546826437265444544238008062269350423869856155882219413140192617059649294483952903377137424860375540234851307791745864000244956765965541632472746210799655325254548380179130592384606815179599355067210242026441836664209258636513558360703170921967285743039570472186870715260387428601448971649252843191378133948500317151614488259322524362273164419403812172576817042540982094542141346672538325677621952684651325065531187540283512989679288012517707058335826204119501149083120715703737923499582654969464409034450553431793640327864392066606254265743376729885207453283860733209644650316010095313549817117830496612267674346597772328487655119254648773871830586902923528587119311598981253447010356462610102171425957834488822335780444768182876983670816875076621762884187908857976902745288031082935417677241128916732246977080465017432012228150431095942231111478741888361643764138713845973547020198179262130721730603855361768105277157766872073510310713965110027465336705602449067476822573679916280013853174622798240596143647556196527154207987360566203081179785813394538120073101349818152729990530673870900873011080826640838825510014563500267428009138536132145410889297384036695426468384101937162852432944986172638330923662115752115157406795326388116888161699110542151773334392732527624027133012865024218426556011350380187878076296014240833618097491479975165360393395220343523606598802496114646915086038235097697841541262601805949946891979272106956561780962495893216127810770654885828108198310619562732440314135819901380413835904503484340705406554034014769104356522995968185661520053952454140675131662370597327073682121621602747629239709630227483026369759903410976445569870172468339353999238922024594466340115097243373447549226516912675240304022154146008937323362496983608049122254128104230402858728400111253487017428472666646947016373508490169943571344747781328117135272009080043786555963612221858615951271689218147223928950939172780363808113090892408158265418341681276901769131850265053807325913003811572362617606830530434245414108906283932015820679781768396330772720149278983186155092029720395037029131789261615190007198459306130562529480125722557811599243502394005505160418994409707943169380848504205413087687577385213878832810871856397472561946822542130755116539695299716888933168444180535032763097169126964320742320597056898033151450175159583174452069186118337455066665722813554561645373457083159267549953290464136106191719238525263013299367915988443394438379442349360309667796669188721476139720825379051682705476519372624353528860070168287488765048402344359239816386167148746743413187044789427678212449701469222190271159828579439740874682984595288867829358847617532544948787628651914501898366713191673900665403500725424113841235757501927171793170250382441327361088491634238470450963517225799065898809525101716204281221732765673027013752364387045803178629978348671235318211868855336717937560559852986734403562632932229756529658721756263195617523155661396215247117888584907152097177562399337596226465127533084425030869580021419435563892298916139100231010579338341995409722149888180971025895207290381426046874721019859710233382156105689351383488098541779171385251209901001797530102732165751390164452521382281332893294128859887801925909518782808681576644182005277842660064127823024751832303276519870376601300223189467550543672526676035771351212183643887468036644374199124231452982789742670554897309557357236998059680046614596575002483806404002996711928629132175294619824595697815056212573264867940809580591372237819142929752082404269754309847991132299771444954416137788175945451835032423097512258727676680694332035435527442337046441314051237675749656790732706911850147563957666303860282589002810768415912988282578110724220744425262736673633714515515471624344032145141289254700561127912654461317216723637528116439448736837432341435626529791135693955658346114928590550375587103609540293450540795625123422814327010704859371865413137662510543179811602139491438738751077149266901131489448453012233970359816849972236678963721252165622381097787372515049713589855104530816267481405081958401472120609924389023885541811144626782827580730781980711366617814243485507770295140204095391729097619269451497458808426162835269447602563819347706757342816492030278780973800708501335565995850298768695797298819835859000491185309709085559936021246867334905285726043632786082620252227292187286433285772685451347781567452205187844239320292739790808029418611436407819261253205974869246381976913673576648080169671242101422674136816041601482528615964585360588101011421560040421629669226825912558148638102417674467634068027569412121067506235837621524445435283033962545848097239311517047139888651259232463144361441047566328257744283082327969526639961308840497413443252117997472334885016463631275633276518379172544310299160150062288532496341563083946640071306220643410544203385189875728302771953196200708778640614358957658437108425429582703297189084859362363077156124337183078717107023427846644391621641713325199966252105324971005799360574277119816042375214396942821923038551679310479743383827724390428530629288765419095276293973119496341724224901157102590434273631330418686488185492454401235438869017649574891053852588183562802996729745617655973987288837538098606200165192666252569599632923902102278384780941935790834199072360195362683657622650628402556474279465697431587939293712727373937017144855810638314041309427320993339465249982787631129995130128727650172651127227001128413478153912919258094943733998384506380343150533359785124900533326000810250589310170321667934805913746263352884383006623465107249149669227276973189947324871196843776684450957487977311159969737704764654795202706348608914607864553080575247578210629677465239001440867391446734906637080134297318962296047822924530390993375159909690469001175970257131059430560051922341863803996007256804245372042562619011890286318787744946548098563383653342586538228769344972277440202266134696531916110989503064552089006353543360040831035283345709295229364172099569881761567480144141136779397853527043679814211134585093397911586310434623056739518574988703117584717925254084001444760671549009135946136353266221633694551474903760245955104748058354109475067673835871853241740046449971595615536479508936314606627007419942795932665166622125919223472595633787226229251542829313204052200758624196729464798463399101665977397911909039828936312823727573553117672100100618043667560266857587542049266501937830316197919697429759180939096655152719872144444552154890822089827414761239745375625152704594510736059643529337331322777639132923635916084899330118507394250349311226958499778818131349771218694289513623284559755377611579176868404806399773262033574215639801500494390841764109644666581384103318023443379246707270409019967831854231020071697085604518978723436995456042399607280304397546433693045205589469746365167196647140137228856921182406405051522319875935338866333291260788475201377625544299598006380361316463881103132029162908785215126351424266564901376745078365707673946441040959528947560873219831048335208947107764726290988023223537287711760768746670102707325578360351120981591593005099217107832176374071181303912223948783836537632305659125590170717867003491137569670220686727442310544064354924167762735656313353979828493117922875657191520014290840211427433162839266906598211167835894765987069464444563054731376863089664767546911153334578547847722909014229058094427878053817076017954597369386684972791643350160046836961695781612136182602702624059301099096078812097569270187991571718446465696336563899013311031627758385497226296626941839877122955205583881620909910382754360036343435047254324522994124620091718749542343503523883277032131416636305412005563425655337945154893529505955660929191062519427380450165951563305798112111831225737115810347150118295121418082126344610971930093338366125029945464339812698679771360635038417639691990932455008218595704637927813394008484346944525914111289032335150704862209075383472943622088730880611010699511114267499074057991759197090262960960929113810370204645182407800401009730022450938003979614146333304117290103487686821149132591352424471149830750769789672366568464255923071508565812033979477017558966093716379745194388348007474797527915631527166126525385016254031012461004183016040057878256876557937507232735639863048818758360709003766239675219629408100555588370596351137577546818410107469122229389355385564783848704549765301277946447827351404497599349024252223481467266688535027322407564304734140092045018333638184652864129428951640022583622697303168657209443188064784745781097645121968807142685010664979583667757047323032307478140410660356770499839944575996404440026562845327142344766182711943992892704919378814802859084051672353647002248815341589232648614620895324157476699132193784815882210158293977627053219084331309198204598202490605930041408436061972750426883337743964285596592241963223765199239253950493978045259802101914631325953502959165078471051826498204590387237172631229411279672294909680331493330006387322834256161233026414775142965236420107288038279651034983440724649951415817026581167171945843207088229264033905722310583804748545392254103229459863424810146999771570372982371147433751887241505598317856758999380435949376147582697273597258034881555926131659987688018766949771711128482042972637572784618398862106077868315811180090794351270521399724072821890724490668842637070563657454759063140741940668903070726106016600415552845029952025556865871124910570746733780198155591818800926903184985782340029515163079646437149330140927521243116744216168938379628941849446366302135825923874703066844345384685183514170244520982342908895939650627955387086716562260824922041355509085483396102047995800170074815947307333760653633821536621462485944779463767375067748679472969323607699529689220926276108027896791079512860692204662388014662331416374065816062554311174751382898131675598799368806213849726548958615570616137976780307604690790583618206830734715545558095340900806365276719037172181512819908372054543047868322269993543438190513967040267802670635020984717176843751141971213709707677198373473267930416028962472863795080599950969199357947555692256674817033911325247168800583012706968816809817566208638208294439167624024692188903439501562654219444760955866815667838098790386447412355569071609619497934865141777911477686253800555524059119958587076608888310192372893600677503455276813327822781881295709717971028750403259722395370586195526200601247290684859810548700057592030386308672717707457177316970390711319245302288934453639742718760773275479955345160836927049221407872761272074875873689591088162406196720919979062945605214534907957519360534241217540827153338311223402647088051310159204368788850057484653191960960219268699911354899302557982444912900387951890130858307778340060004772148915522333789393755879629141539778437232831030081610858671852442924884137870092498841453114550947087219341375762478346194561594762915798756320179366984368134000921528223942460114184888964253494309006745182256084369014815330612961491028578191089467649163381146990559630536787613348665645436956589731259035278342225535687711373095234475237376562559074224758647038698124878375537355007503510111086093803911079826490555139688854536014336865159139885517441824282880317730008028669402564239777288463630130780011148284807982177224497059204766137191751731962207601051831223178873314911517427511966258101985246548947133338715794412830165477769038271702864723658827642828678253592307015370333269361054907580760914639218597701470461725216000905763970729854008432240721810167631986937372663584668977253582936737392132473338085275366597252945770974870554555196042026344732201025550900666273312409310636321755163455221568545701571512182903163531048722848717172943674412974668931002919221483393128615632195091277010615250109886056057917697456768350351216583431890780684515961339292832418562728976366810171018953539865032457948273927662367423317938604408750664160520956785153044608091166506312390238652462400688818863649094666059851338809382042984548580114611061525407586055088803387898930655073811557356356274745060019181710287509337156668206223833471177241228483214810334521323181782155457443906340002756843647146939233533580116150351759778437836424199067374979179063684178915201702112267112147159218547591752735348276693448762094226492760663525900842790646355429237245407129740925808373511452251581980233558420446781914492205719819138976959493774852887515710101131502511662082433556314478844413029155133697790678748126616968044467363899186941975192228570058351924976828716599356393965991054335666169720344517942366410672165690256415573983633130906379093986144897128703435959420930132074845327443375005550220106536116859040400453562785190040129796077880888308087406032688078816729763565775846015141940405008978904586145088199761832750274141172472386340093953591281798108976139466985229572301755596724717506634152005294227834022471710703999052539141158819154361307885376453432011751816385039327147333676568501735355779629855712517506776272396417418132192492409418096807843640147614333751394919412754682619592524113485782574987125136002725411936743459697171834235306085331266716451314213236392412079235326066019695000446494162195171187403345140720370991043674815377153397277247281381757182382264752336374354657252859535872107867568938811814362285530526829047963188123386920528129117654203807255442059439277136474185325336370364991008065154182140676705022459918706065355387550108995007983927529511409125382383630457165635943820004154989700649822757841489885704566272859497680015349540488001496205681935739378366501750512140657736840999423807110686074018956292711602704299645110017887398188897629394848202626273523976757110914073944106168031888324076905718604226568880299228008546452049862099633776938610470001690995536050876641065482082106322901316408964337873810600131335519974108793285773917038950578757039929700841916107000133305355700984404044887495847837519965307546494688196921917172392103536818830119050024065400177925409025051837665562877211530239208093814938965575569264791454543459166824180996783693776188982716456411184429433887528341175923281715510168129126242332824419409921080297735896290795594084485871035552317212394474389553345316325407179055155343397786961110939497175879580948797878086660633580671983698820835412554955645783590305356564107087033660504193319973430175549486503017775348135055527599434208223345437562924221823126521743908030921460237375045569343500956666089058768206790837606939786566077413980114117730579509758610928645695406202709329051580894496708445989053788553214133248492421438599647283209531714810781410737969478726346308624169518866162156484098949262367298783693965946042972527110733216958361506965347121418430118743422921470886477214557313523604517397666544074995215046395840732735066904285801115413807922663037472441425295968708026572536437436203052286994530718186496640182064818660415010507057835790082240822047379744753928039816920849017737003898464021700239056488848016154051324231995596361872637962576716324085224144292038607329885780919223878152911832789417239761738821427344020777835011388151597855031756375100387324285065444500774283061054645738430472763405425551565431965599663434350491742384892746010408615230791013265448570948575559360790574337442816493112325881959176630437942690496650500031543814241165583811459173643842636515914752351689728622958318564005457986534049733705053053691458467546710949780587932101494937223639194647153656934153942977176396575565721320659988645247500955912935659429198014972115854116167144098391847520138995585831684989654992755617158259535755532845774013793921926022120201693862120843437377734541341689403007467189942951197884619947283684200442393327056502508303587225964277163234648720957991720816236024980887717149377191823079506473879065472734847344057714816554832318814882575191053268883519473304158010695932841349368658476591691789909981130655632845414845368601134851945171715241529547250775527102802803316187128868398060603413784529901996051942685855171917676404888254681962302987044449155397289376790671209960189648204893479411647000794576368082613919337293950189919704916382014995129285970486613551690931925686687153394645493707214722720842359111653267733236393811291352252150349634152656402553944634587366727966382757521153031081535452851446102208836739086368732737794836890387544950902402017830926074474753388584334873066888904884218807782775245418021011962389590549994803953555082423051333605219323520379393805731455264183658282202307206797260108857855310829183702165785430209479809023199296677231241985154670432813131137085400347723314302736056897178515195200803796473142391975868313491236768759224457772546905804281783330447207134766424071586377253011166016042331516933261030924440848149534390879910584781435418164716574508377640901403047662333211783116725297909523939205287555315268920527446965441734909552476096844501342001853609716544456239618511602046631740295182688549235402818760377781655950069744999614598474977804032979159963091032309572521743568799295755989440437467296356449109659557291276851534018639736845944261699615190061025670422541889547655208189073818345012517045541992005802146848213825109998566732588932503754306760750820290738007321950249052186631137392349521678639390642797027704602937849369717994987374097743634086852020627776811146934693553654019021530956238764139691456611349735731060934303678165410663842199930132707135600162861105501910879317498171614310493617797744956692992919816436199163243381551465791506905172628784857625145945170179925783817477020518788157647195944911740073511934999636232277067707053851429847831191875858101333080090210948178537275720892611475039938779186852975293150655626396877279796674213275249245676256597895465519930026986933241940691708490647655041466620834007750668590637158434747067831995988813155418348548155182922404339818974309873519888265510048499623508748403860143028836222776544695854487648746263521436859193263082862588760718708341897792293922869557618646039183079444299033798510441380274490646002866000600659773589272599185110745101958395259894556225284741514229699705605943902792368095100514454921199766028514471979562929603994073335136700559908321898422231264930254043156516390387262269663899976772609420670414460503857989428489367016122508633185871180284859742114199406006210359891600265449142614895879441548112868786948235587293057914876565295936316955077401163582005219973611844516264123449987662445172333528124309462497277278328257139226676152968615775538172036387599202556780896100773808124062968631283641914746605583795308535204929423562358538608522558387046361142742119314073411139524481431458486824848303980471469148043381036796864767444552959763311682978657416247530619724066615646989979658604560214821642386909510915131893659586762253950759416945369271161984151704460269665892754820765467573947176251357244715760994755311911022429515878669883913866843978639984201037595898360268882185430382570465318370252365543847639043651563581212008921731353071741950421900707408100381204006379144193395642059976451056369920213921672844471662385179522637627085870404868648193280301296499102895432120599262257145441497375079756461507412100283324483264392702053331174130640840305116661063914332393052098476905137777781296253945423387326629002634249037664352653048019880602491641566383021981792071619346082974756694969242789290350473052959853898815634944876152250257866232057184109450223095260652428324812965958347699848522239657235444024295055148767990213143309626201714389870754574174957592105459728389669839596668598058073287963792284989372717613238869136677783632476760539840341185018143300999527016244041078943027259725012945212569101725667815117102456561715136543531573837522131691739886876686030704245927940325918113585958889050210844870161895259036429699923887614873195863519073255249439836643818978656487199253470478423725948240356877220237987512957818183646316070013865678657623552215043386100813722073205912687230260627418147396107497812285928263429417339346080405453104016702929127485173100708684806507755668757610462207583539008755526786924922577622410072855477932105156191998384221657022524465361358026605812537407548180007899654982129332518750024272452001135683943121164240348191092574095782825584623998509079546121234354722034687097042579860123295634112741604747072206768450720057853406022739623878114191758119668640039956652527616534095374481505238062083318803988680331533823809517547171133853131217336746853695244032550599829252439556882336936109707179917306103977260711431071092896693020721886654761157965997357265922786129545088419165913891288351720407937240183618346635126275804654513172098534376804125530825123329198018576476955115443308455496651136773168162175502734259620182931216977887650796346823810994895190860702860432845691916881841602399440330267849094741311700329735424773821990727942580656112998833003954182117869620241908637357636737339384134224269666564561554600023972841351627807790216235321290750180919505208482610756629784149722998540147524895740568991168134131690384653821322025115013154957647282784096853407470580860421853558171950599215471268854768593061435067760103603054767601865875677670231097668484310491733830549503728798928309307798192129144743789691618462840393836671333743685622699872405710768047935009774920022574914885907145110377149758724030218691942406328499586730220111813744603499663333617768322033841123622798425022770667271915361897353286486480605373085764732763083612098460660464427534724603928560605151740925269689776460485547629925928940165914723926108502268284766815890788661491301552667430213902376366878140101382250598290065180219968784472120875634486020835063108214821576486401154605094791452405353400825785106805438618995490355786515067720104212626537854305948937101546943457775465378827631530733903875948467251204738275284048336487299554313534315773613762841734814089884055743203225551301238283924978797368789144555949509948293896878478583399905834195948074919186842656814165567727767939630548305046783150966989306105409969844992051628670024145314143170452741389920968454376605619182611726969920005360893704498431492892892703829476195527024181106262894906971013035316491933259836853453842464288954890005524594730289183609357831686073302370653415043772793518833606042294303446947482624992434728572801325296032156480030175365748065281834913205757818022904618869760028114606622545200932942521074667442002794488538004340952565414552456619809684694675505016742465172199336532093177760071932951543401925668678377985493894761591197568803220431079971584069349028643538843975616899432919615400638018022718166648686848787697622633569275930905189536293305689036264270683998550044388042767521671957385279651093111647392357063382004923167480625180878190010843332805295710044467912343191328219833479971844064800153076403969234111915556703181047358494916235694708423588491510210044742609441786710980018961362904888000538465734407451995470065094427036232946183335868086280939538877357565847379253290064704144999561328970481650979372336615363556065860939462583962272504956008546149654600229870139414484321385777642706915366116699644206121129992190112938879079073524060884801753447499312366664629137505495674084771589491552031715673280878810973507372190759634409885545110914212861900654115429191467556738098503465040312761304758555977479944015109781579217160491056871612511938456119098848870978674954892630730796286120609842761501413531760388060918663929699920420341940246849412865129433063933475904475187626649554262499495617004655515581954098173721608123096830974280107613152558104160372801636228888932673500091412940884763118071930338244788069146714005408668383374430087648035011379767625910692609549698389679031058947313322086901487252949936045087491267067946946399687380488556986732694788644015025361475032815816033201675178086939518569326582947691256844809895875922943161153081352865717827803957724050269236618302187315004647594068620565202321726862278733117925843974694068590980562835361402733343427686125636041311621605912599483091840227394205371784554000449861672765530610331636813314448031357139712433226113045543827698629245571909713243548160134063633914913584866839134996327348153706054963764515910374651715127143041896180660518125767332627671435149163350508378168540258426648494069953872501669291986485951620793376512328650068647865243763775037909802854163711564886589508877404763530831607882068391732135322481831604887339259149673498238413346767274199880223714458328695117292416007750945763926404205413704405550657231263272508103064387328654206650219871604849600663032292658456489069526978269621263873022266583043342070406563084364039799473803664378352912742418784911058298675232467622091342328582399297906486505850092427875547444775575620242526805951087152354540019505854447883388597971171102350595281874439569329473978899170066947730429826798599649664561470135114573823146229829781866572395009943405511385730489417168117746566510833368668547509444253140584604190530197382834844015418391604178497657343791135016284811780601501916172036253565983464656082157109911017455337289277935668338586622916387491405340353045149068358370785174935193471510387423110589249410476268784544869571502732868112760825166437266322310860065461247062696511491235514351595400202445687408340473581872309794226357120948703921059657281890256415036032692667235161432240647676051228410675314756825729741299893325861903133428314047632268134490134454061815901073269071567807491878780837855174795846620556672719183548160300149374096845806878879274286056550893075487337646348963605710569291394733662724217972049277456380742659863074987396078676493995508381281626852974684750635411798456825613714587379662946763663352291746789508245488596638582908758942713404234483462425813237379905074460792348293883556895977838656920834548841190973090668374417211974952710609579466479185657186943375106676344644531333800877298046234725095759313471661046383102141815889334271689261272124182759183128578448209450379170194685199692753826034634051373544052838369816870899188207105145856060934294837383895153737923980361411912735451196396455771770648083581657628892762817178814312915880515711872821113686538590537702370571762963501691271160230557923080650912203069015164777269985798711109603032314362895935685916181977700493889660186471179680314135192724453032457789232601271030885541608588041234645654098099491910215324676538158005542313924096416958536799659739525868640657088203826240387477827949418279004442113495954517077863218374194144348627489438005205435463713481950681710439612539005414127201519049507301402622934359488592933803582055128983130225911544604331109070006455453250839808554520648409046018684191635906516613699712571867218751620604022164927716686563991272870993248494023159251587699820717665184214182923618874450247964908898800306312305193424524616894244785780862539514477830201487308776322474639407856642278238188108626183234588381640903951312791659935833309505248740476542701164013984137648073045132109362705285937547108724726650296310800252831530290577820393369989645257026282394077923609859567541255680525186566149184240690008150943582535192906220480705488445348572844243889844107435664570632033852971316041922144189207886529382354118145035482506746281308006763237188999312946683282192237877362775253540486550110813527054985154237525045154151293554122107711643178813782864229857480997446730297782847849910714219149674922601680309334151212689346354693817639743834964821724882572419123897479304653329597800047755517499581952114816365072273567183008340329536542397000862808779351713824922594649091569859661509826560161296291539329720268353842573452273453846959709614100906011743186469668708995028789729343663836921671830149255008502098332715463900038516707959774450961936873272462693613341518895924183567485362808762542623613799637856933630976781546218087592120262219235745580806037684012570514761609875665221244544481794249000014673101615092916636088010836669817018300739559954775680935177116868329232449880890400124701894630713134896902376117408797799870905606822528481738162558041329707561467713109676147152712332571717861865119946683064008018381060549531538092572178240347362721819248895086272122393222305288957579384602288235376234625777887135555291660373954435670567034792833511168306472743917970483694455721950486657071266722290040088269111176958076683527290649402557365082456060369345111638560096968222619407393112614564736962514749868627117061228281784408525740965307115469835903328660937691265041699082359692523083427892653498404628073178620676986671551583687133895352563719487695235154118042237421901083947182881557415941285285886082619936111182660626833011182782090841229842719493416197915381086025990574406121330195583167726181250287516860013410969711403495844899477340334464888084677436878780308032150761133260613485324128413726896946795956596534391636358584761661388632940886123994046064227432594171918103486722174898223266642510957131530649282631696458773520977622518614845758231247754993123861489983009730872035308694704744366300810196930602474204371550542364709442026750459461804309266981914100364933847129997691738150082666666644857492713346050409724959795524598831984275871227404526020689685642394357345295117597632213825932071945510940456466944791296647188015512611794068789718227569724429306208839748520789260279953988326322056527682634574723968029848298304272324199350932080117010160814023348239898019863248810694356943911239625202044777703745926505782737557931837430705365255735813541901524700019875115916883351612679896656155018933869983517982221951195695598334676432635681055240398270163747291251308094973743179028033638635619069478365183616467433343349699809449161256200560569185589935661860121079974854743600557153927491312752764952030542500062657129122465929592785349428603502750731952159173725558531082729020576778410778037920385058325606118411385128133429055769414434672932561104802257758413036103765290692786017911145657817813840467013197339206912783465192058179632820759346119801886808299910598131596183119430204609334314087316062250756902702472184303425113518736290299475939890252854997568377724457935671181909097216488066682412562905268200576956823385538325819354708857309437053878233753844115522437983782444230366704847997239171183968307530471582852114153562738992569714005841630258410007495189117046527211147497243643583796909778300248086576024401978350986250729829631830856324773515959274972862556288617896715458734113905400668961266088123177801730796968500968557742488366085377796671368899331810834118811035899368386998720044692524584395008063621547300815048967376554032935344345648505945133072292154051537195559033030790229815587932366842405394882954668626309450324463975010935605882275975887399786720465024006225518531919208644535465280771647181110577761363568411498778147016209748977570437623931286442176996821595657758665290086917654355095132213956983420121789400852054566413951477092373644424154125342300882671659173430950715302484407133580927010883443248234240918776500032309390921324679743501922488978924492109362168783754181482511596959378863885390455467395471209654597999547970414944852951715361704394340338697795793139570677034104838882686365403071921716259483429171988276077586882695011999296091815923520844277269558009850468557965507125277476252198656275431682068883900163165732860453606731580322350811269458131996864801086508964752161500266045526352428127349702079049166355694136901557473884191181727929576533964135800007275531824197974443633509960309118593309045033530403904383091991147614654132711401230208026364436231218799249483199969752740377815875450380153512012295066963498238531875162416201395660150110053665787265474341353424538805014463717910261296185373501151410522915072872792910623292707353765069430697045477358839986892469274184785268904381880552324834217876029841482730769323393058251346296496049660280984336050801880190458733693615245482680457648616342004514535882509094473246160336291973575333460769598209256437463275372507095272397453846514435850881378092740146720698464019026663509465236880437526673370448641489359896599169802223285243674296821162902179551367836511444893765947221284296279338796855640136118830085545068291506709565450632514049103996741358333302718228282852499115721606917556040270621902553465671238500519723846161177313980571245924032364983392051312906544084470081821065822061463066155546811794228398860292918408792320946390366666618858253984278492741910081708724985201646927177532513131359558723954445364337884795675636309793596654946690085005764445186707853301065794770040224761227844057584146911258831318401811960352677690706483518423243986863257480362185451301335809942386608084709256845403317288782532951498352911188277938847494786934778402359807764421791389728229807432425927593824826033200382661241918750625287864090823632015412658642657922593461326495073238404916634956658357862001422984121157116659980699673268074085930028613843576200959869007825233936403482468772871479371410552224583652963148328836393348866541784304937148211816704092717394158750949217526630281161716611192898187417043687076523912437368976607832709229224180237654723492862036119618402121946627530573795408932479146333428415590487861494982868914319725920811835154547771106407271461503168095157294494427978095366515320640633825654608635610019119209400735715927128901824346185387840511791215762876784141706136531018499465051775473042998976100897616097929418021036117543119278896005467718172798682282357031317724241678528108997348101930984239727584910352318891113500188026214796295308820010610159036857465627364317344179338398449789513830283660522140607854334241259972810224427871671436088464121277656539558870492533982621575878418551346505651345892204770682733429950465185197828768042512068770287228506329311956060891372641429826315683508153428353397091530948871617888192905709075647154473862549469160069878430124586868407432516144678888465548373280149255877221096318319771142020146960884676561083060074015967898651904051488416545397496416210681293903296581534345210223778437046802889236624483552845407577612688951860006270804762443427037344308813722256493161791289504854448882150816356004303027022408736369910197081240167053592559489852529840014203353368788753354740826560855027793034485275490960605987804130036312008606735992877738998429702801641966178201975184162707240854822904428185550391392893571947026885964950112178165271178002198106287747364718914029151275407415400736605874182341979686982886592851635201411349974882033679563217301198160436285794621376578522846859999382074908140934092757701725253623845253484837832442980163062434583044829726558142361540369555107135548243977232706828894050587952364879835333635065985961846634854927232935635207705187947292939874199307389913892324732830646766904795560702382623503859777030349907828189737898256291107677357242561267777970408765939720453802118422130691789332726775161170805653334862936269052284176752950946888163925969244119286031379734705735792325839874961505549324130737193235782292590390694170071848584183841961359627355857474727815016490411128312988147832041209368911164924945281310220358802529110183439840763374026961889037896156327272762853609189214971968697559783613854869388666157996937656888186268419662310869583685888197168754855400112219270028131201022942382514503015437203627759991100307510609619728126689674989497965606086852007039206916932015449646434260113502193392975532098756951687696903897442453452683253654266730952386320574361174412049714649919522566088448031205765307988390741190267702181439029245030544990629938004258139731199956786495814017522391737647940768652334919640358604240419874450040417434393852042612649900400550364433206845795262129252073643181440001084342010854479890066287685917094548363191962891116514773486723828909883485495596537119484257499134173293377740378951549270421865703882358340420049302631882809447559633292523021084264557602223996389765937755500222764494195154061533145746468445245484523503200875004342062272290992037180606577726022429219810893168768687868961810406426760702328033650684737686118032722242096750552859105747873332130527773908589156565906041917125511085130360369849631584847306266620085517165916907491995523421229171867842918489153456307474416408637950361720899205432222034576029067847293936310639170613433277603135216998947612454722852955810301041573260177688249474563224629926178453420472435251174093083438887347557420530526146164128086485623732906641205677171422177980071257041718752550863275821453431276169243520514391898048383079138904201098136650806440233241098095679592014056057335874536768630032786362018094950593875247660211467390288926678022870797668468081143750783627644833522710470099484205336119348013101744548569968151025106237397262325901970499422903940603480839583926007932249682187759707769797687528860432273865507450122359851144856230783679993014348805987746393428040459808215138961892013393247863244683924429332839434254689578891742724950748833442540169928090975061388971681664719400424487656265814620551590370706447567652495732907203409452972136568041239800385061434404919920448149713720181223460238882539864476153330281378866358235177856869565851989290249439369236413249547812586548746367031315441657217917874646271332550447639235437171217485814809559561132803172238972981457312534061171770424364986602919359940112734169079934144716942953232617764946250362401963113552371484020593846903363642773942766379117877248088617743206186108642096655927278175932312531083472687049117176890302967148356964866671827583309339711008748386621691095518450202028487906209091198938101680553757639511375263830642963873692243046603790023308709209736229019982193217270717634569975893269475435326361661288839346109885347015122869188504242562335684878630286803357088675463944042419476919157598148642801874630590928348120056595388390872028641498616367561256389852949540635215686929551978346306194984442562190992694721365248237008648715731506009346738887786957478242464310314810055442954001217165398517631144484534435613414208493983607743639775130140755214940220596940724061481475004285060287354585655418829573179586240227196912988416592460765661243640492555694035371285339037364471448291797260921967124808949044515368754762558026124734329984542128767489208550007815025073091913563962942927479797132038305433103921843879623195020858232733577606036277486076759032218831117792601740183271761096748737569251109402202840226640708293681227442922370243974306074781611760814238868496470943848505669968208881018504262056500082499169233885196069135062721464584467447618436705777586042181594059667149544976155591297459853388889602546152589241644001538221496174596851512115800130425095365525835845729598138494279318622174189992383985514413556142941559726661749738087614909660961385006418123882215191771136448110596280467752124766858378409950785027282348318187861849079341838271674228489749611650519008904086849388141236429609465425288239958759959694089402655505587550158536325330873196867931874733596105621104539452279483698610077109072239229881969959408133039634265452511573058955453721028687331280182116324442622597556850083173647787983016633779573645986094181631169865898311930727614890338879147334640258359082988097048255582091551511816247756178737568990478047506503890560633293669853837817529015476496871190916406364302905659142111217971116506110693994805166454684156618617901119081831862108388298683847045478293853817677500879093147505725338235148432479331785690005537581370122604958392839039499325196672754704888454366776450399911163155203292710827739746619639935941129506533725735676885458347054609782258045169630153410910776254597940959515869305088946379305992397690829445883123809152551651911246319733703063146873272428388005060782493631164239952200280003320037236207537023856560628162627821104727365110404736504814365113065316116164217339837900343038019212874047854009990330066213213868627746787706234424668044387905354361316906488855240171068632442761673254642345597945615468615327561135305746481392675518067608054051610473375018309434223149976912403090257529408977379481226399894054914942994242971639057313739244212144798119951037801359449289448148068939260411690593039814789396748393342220031799024140392642210835721442888378377781760040663077531692033510451875460837614373873671132008158578237434876194209008009915828925773425397931002129083796636632396144309045099004050384420463719727016538016711312884227409047847449535396155740267650798294242892183226814012595794410706264847961769009435876360387905091564784145122853188575232808383319845151127052786850882345282937448639218754499254303926467319694923998910950885132025523048692305096929277122209709642837227603483295649294038407911386726379495768414590651564538078396050879069547694023115067766061623496728607350875917312609732232903162066860501088661385588760780902387084442327591440724321869669664906138819500943403733180420277653424368119718402893024564971216433101177273584970149674393291612235659140614864855550703628496875559674544854247658494734621238387095312750237126256775063806335697968481382566583708867947603842373856949594733627325090964214556047658809123395648161633110611297677525465346537604609859210521201791123694227084063337976466433292069020943184582936446518399352593774010079841467656080927998613821805421109007238419961768564124371155907486605068313320887645262848464726391504756239969533650455600690632761525188451305927616291541700145917162937656127403998489584300963655403537907262892097170907070682805253651569112281821129601873470667655846248378153320256251025684793543558696513051627676995279939862679087936704668388687445103198538925421545132754586462107338881277852061866838848049369833466496645773674959049120648547509085250952024560480743497237990349282002155878966972774508003761236068699363069360630261572800277998257356403431789380614756641815596824426485988431203809603895284936659047686839179943483777949693713854532893989838387228347605607781462562232784423365312074681887473686190453906897331604698301167031345103612653472411269861883915774988739944307414735131426983030177768380072197154714823712418399436047398178320419739669223190227097456713946069491591384149251637130397142233257034579071661687259544209669952436078983706815319397139595859156995010901819186540228606125870132458117686973055047730716993308468089332654440865240662495898905290848339898221080690424643492134765504848362788302446527303066310047751529394931356826824095390710737103910173109950322701789368386177858278030025551025560053600809778772327171209130183722709503195354564204631843720198647758718406344327943901090114939565617412513783547354081101380285543287376146711169933758545821780338483045554378656837168275535864054128509587404928318110161008929503821486587031425149298174925720320982829998567924087163245579855832855282743305264900697386132027656722821095610573776466036063252144753970403407889878927466078905389990897385756914589326889263756759867385311654055337562767338821464022652097874134189373374263926055443861994036625549106216403889387971039659425424646462214071736383195285382990650840484704081348841132535534405040272646433508010991632898051381376773428735602334241350573934755871761595941817319793000267690006249977756727707838500633558904334208149365950818314179238908274804420587848369390130028041032604387440382873752449500061441230231280220051702610648105021690966489236061256644486086857500584090051769192783707623691681568363698532695278069593698572990877805783254556402325506644803591069984154328710685999893909942940575617493543329072986348068175071943760699307497120269577415293174557254510639681584771434800219182842875811334138067019197383834139658818209997036532275786964538747458578227311247358375795789968348256256707954483163166829621980867018591615236312600677706543328185591023193699984044917188017040587874367583027030419147798555898032004578755318756533479890178021457341977852058953364681831362869856314966491565353925896977240383209692295720358996287167281885117442436977907355651639588278209764513979732252711934838003033589472147033253392165850168605549785893959330425025409522120376053835344452135777236427025606350828074473657071592998662032357071137110949522816623558903905499866570801068087978390705982958377479200282204155595905983456645057333784799452555540309372505537219645666885515741676615973884752637159418440331721129918510499043029229933402364138369484807824800696691958314007510965216255224771197862916598307255293210234202206283809548109899416317024661641292380648877547762634985507737390196452880584334299124250326516845469656412845600061696702997663507599958895699432948809609908899855001133925090427361605999926049812260257056484582182262342546484442568725871131012679068451969141814533371195026494953815527631564649270058895974826900657147320324680579052641261953306154981229698934365537307987583764489031621351302053888320503110623420638749961513737714619786183209904796495033240434158350817463521581792552400708331235418345180290293984667716101904545136224121536950626480508885488162208255417701281445998769105360506404189955419693900840400631238915130395464587446860948932843335586511560140302201487372247635577647075731911876533229187667815238106368457397688990529503344446727172888331450824156853009143693235598585705051689824926673781880442022260155828175295453934932999255778585703911378454014305209397694652861518672599340052967803745036455737110537230381868934880608710550211366230358351359543670215435842122045671692277115964559749592915430837544295268433794822807268247602772704753118825519827325609365892672522496833894057411777906043221833271869621070914716194997519332869360533620436501083813568451405695185448785337343161722193569088065037634470356817757483738702866441780761667122103376876398853149568029281247482819420735256542007041857133759198576770207093551475428252452270693865289263550062855186720542731215777857426378857805106578017852124064000184323291176308042690195983079400845222384366371271870897350514275467161176839301907485650237320712560136448229042044308185588788155152501008149395845601563742373299275002408874155642784401917580405002542018008406170020831772972013694768238787599835549099992979659976399037854710221872426190693688500154546222056456156963305303494227961944818961204926122180232913576017716968104812576069752275211693437593042254347518266810568031644473370464693157953220228538876980719073262749949967136969107252587170638153919756906532472222709424694402701585326384006380324775653136338531252253543362601954019050081445102142489635065776594663760466541139195244245503326591604122378837984817390065174664539356749169002039383829211848521854292119853602262522249176105144050771833628839320339376103659973315916358911811791521822086949020269161564118865538955649548695635453790274700179087572537867741973266477950981123248993144870719734075351037436027067707943415072989580310239908524314864632029873694007987236976873880990087403287759234120550933576828467227862790371493157533027486997952907726963020726619395271243115389369176922285524377444052775442814919017272681836798651739337568372746564864313554116587325480797624605316359135006249247185158560343515280041815767213622909768281425338586072393202726946501529026201058472294251705804141945156855281205404598063607459037399811108753334986997678935320566380724165033895438547971990362992933445005342750145928937118995498433533276193334521157909494524405394495548148980252995698846572425980314580297522258412910608369374670139259263470515164481427939877068464749568067490690857185287300225862528534189541637703750797035092471961709893392780016445776845948746612927938395448503600168142460754185504560280185423985857463407802518291785532422037100185416473543234810364508339178716502018150596891621160266052766886967151658981481921076252243411162072657935323215492668659588723525391042452477016206431373708869687128703523751959754747680838530291609149975716501914621634897378956931239916751901958152720478908573007127598679209373393170383876495632793925740502602030427256330760661322515352864588790144072430963252708872906239298155929154275948636843593972384395108192799000628960529404350783676912257735363738991201120978060933928870378840207686044323753173830354758054751838596164918561762166631774343101891681277325086233039797169067926859591188370842887510212291826596320803891720215553041763250479822336034525571104289783993720806100181709869936617524974166458250594974517169317888767254415090325965593362118200872438266349576220401683089298491942167609073614693341854853850458113689071397260880161674410308499343528578708983521855784814963252916664933494825198535030308268383901212238717318599464220916107176570897381145076943090298751045895916919996328445910370451832293407623384994430843714994317479788288269803476692991587508687224483634015726937247698452961354281886644536953824559143415363995388335681775094198563063807736285596166994896370882997267068775046780151875741862426699886036533405406790288269765561294041451256318479827778062418335834183680416992763133306640250917011473390252884143807539948677675699346949203340065863620936684630186793706437034999926374541870780150872628876400189158841764461821138490009664504390046300649919703873421479448455452824220655489672362881066515441145384434488797262003529110063252390066867277508246503518715513327678419137059914224391546835676872279148919246604197315791203543250175744939147962083795133201143297188822498539321387612764419936054359254033231442598858289592230944463650523977991397583594687845370172459399686180045309860268609303519504758552294887718954369242014744042785953223414486057949500176704468872613548036158905796965735852590433219219178735734493985010102514388820724960735362023364685682191709801976911151408295125485919803180432376917220213339965654127367380013678579993138220266023213663493775736609048285534736278580346010235648168237860124827264615424900232243473847956829530286396087343588678778914491245893273340294451002719355633204894654070775533830529318429948988881479950010132233123401899293857865914264810828107618023474924213274770345833212005817640668017033505660203066551854315219979070144485044552489139856338951495062094399274165537617067733039562705106203284464256340471352955090378615199003507928988140833621789522315759213679397357572871386218128058959853157989046192679163999135244483072838904916428273389096082929088439637985484178818409313599551663334014083287912382849489996142077826396168223670247145567275101734694729029887529773060425554069886806724644684975876108364808901932347753303645439475078407523508713431541721167720250135885826390115864779270613539170483763832964255046082913583783436968467133234069381005600674577457943300686775687226943066125312478114208413821803727804094787444923748579892144476170377968678396961853725733247974052171981935261200725029441871435967159968535951710657422185006640705840135431762537176187421462237258246312170689650044589044702983822383469192064704424602141999845918113683766286335547796253778985623713391639248502894154095308526952344902107702033734936115489569505478017025874005294837161407620654668632397559307387620642478816875387361210970435432233350822585148030370397340271440835984060270219490993985872116058188994819427568359088423404845023982168863381989353995995168449967084226009501739473571276087195722238712474355716633530057965258127547516976553840908449446285868742108983588086903778795750767795503349405912676215391132544745872455576548329360282622165281157199962170211321327762980407275272076005303959731810043435978019818378529747927634447872008925080843801086342148693297752255096545225901142237034583088470868981457285810650216062190233123912932465992341124381623069420606491959655237858423517887553838042788039647923786922652551330020205371926642476350854295184058058133633149292004271487452316919474831008648993480636117081338419335966067734417584523180266492361378017593771350083021351757179669090228916434465640104826957967507555283102865888693383437011269721657649166369035477816044285260593329303312226574718902792221428573696074802587095363441799363694272149308776054080746001475918671060672221306959808004645288430103876128290465089801135307267089468299798479244867640079536811986585557692356697335989803659641435173559691689708675374368413654417344481736196538116113270532285255223066909907365004786339235753758366782519781954434622376023402403652362130604493205261732028381659727062216300462159451882879648698633831776614934773987594975422337252657988298860347146346498969931839293040570780922774608118079532875700126815394484717682979954511522675454990203313518191636975448425904564480841208633246926876492915010569224889526283619070653580378029928244956417077684369420085044267116154571130306349070664091683142125974564147062395867152564192090044388630769790904221921923844663807469702307530575373258948743299870962928843135219832789939450190333589734821722303693257275062159839534637636469909504775561803981374672571266850526440047858884692747241452973010654186792253589239781514037206281228221587876805104049583612508219237081872936604538546052166630309608531714377693888409941681553751625043075079938378446992802843969577328569570592174495723479537920910309369593511493725267438928188535708398278560101700834409331475192366914192153511000092212603016068203099335108945068379381583670488397038686648105290951196262554840022857719935567046749348071738009881884246652302566157566604245253079838803497058012494497183480763852603634506279711167795600089471698490752498583539471052585658130941377341933370184678782053323466627790386250888007555552239313284135178749576944207230347635612640290431683620235206542472874870813211199969757296725412777184275258171161488006540100698486431690071722760819034103165106571225072954271959736742490287876320164396019288823238840575356324078425908763411677253886328411315576426694061423787852772871924310847067529424194603302011364151362016278669320229753534048408858051147893849862615450418983985397945437825408863543936559909585571354443394403300957570956108377020994992618265221612875980995941368174173360697350616437186228387822261178651559182857369922408094626190659046705006570953467125331448501324363749394432042372985718450058092025196127265143852363229192147350175903347903721037682568262857372707714812960007360283152716009702208609947001154249710773394579321141938017455553459543960120740617070378827584871859758498603635098277386735370821270591331160376053744541901104420301005956108309929974342080661223002153513447977176945858741097464796023893470999210790779640894505518459399629849708719871892224162458171042614138273762273941392217230182917998408627295304257262510695789787194452634533977278446040050085091581802392652983817762140461179390164908295979608840201658559595548213638696595869343138758560036414299518230587177122637750214566504412628820089008303639585186559044909487168585039235511448701756592519606327213435191447773362134959249641783755375299425528599741083391480616045110354146943594138055435386562782436668484265298741376792039405156348093937044621519751992324290498828747755173607124469904796474358108327223514469634291415946525242219329743384049169518611427897712405449224979939678701391877086710841303238189553899853484809439071721629578203392465341649670439206058845318219034007003929360898199686739080695798952731602504437563340553537005266061934116656529098153555848144779497330980446990835773617354011917373214859095048983728605934954265335686505272707359539542696293929283932017849728196560873549309904964124107085293628391461293998554582348697329814612888212746415862277815426242242620851127500471020739026957718360937175599472986380627962982310886389579340289298244307231433037982541504192336357442426067708635273126027595871739936774058599334311897827155605536449853145065502975355770473590383092297055302425538480240516123660785284276693777975136726164521652186809908834258160669357316101977493849074752759598731707350797774882972750679771338468197666865070253273906729032488214939503483876039902794854394820169691770342368826748516714528316811791722179331983159247036137691320697046298140059705286188153157882114216654103122173083236261535560108087791080543484528720245265321723947429959037749371824373160635279932617635229150546848262024059809104312573393881259886998938738342790863220198071899871078432799562545923565219086054936203321358016662307135993805321059457255318480777233201355419888828352344183778265774701538137346741537899273092933765650921609517130501138562715380123550217752693766832447332396335190457374480875630876766080952284559089779192200240026426983086138846692726564416850714986857486536699623056114905694651469001182358695898995639590366433250384016590468596731407842273930746938831487278289978969775600508859376731901335337307882749424425946007401886607217672937143939548156048362030813047615929194807804945501776004284096410169741446706698205352237986543181162782195245627688970721145596115338029280323343437439088130294691299454638162565939259653083636242647240946201416431124130214336210384459818147062787381986886200160450553274773664987855210940060394937283675367060858584203815342033571364998325081810748496611147394976876565649086186611792867715359341092617483457754525831128011100670879333645818269363770127148519374992893134646921685489826331199009428210608059475288837575805629162801838728534373794760944315337590027972242910486457880440761099509155178768046162815078972978358419411081814220915981019035546396177396339524833799419058543867010010975722092784286858116177754903631035945007058627731168515668353703059320536631888474244321706036855177731029748964989557362447563213540473707489718882485713877765070631120922960991338152250777816147889620703827118195108927120158023685591695819688256488803752966951039267538144708080090987087344873043725123406101686617606303959697138756046113651866991937102183320981760268051858509542869351201793093248971665332384189721595143284116917169548313017924467097194493005326323641535905740522207403767145754545073816149977348911496398295466236961400582052914912189292229225643006553296931585384209036928595544138090819752629151623215440710169446401137808803468189428841999669023109715457665794976848362420303846616231417284189638472213943290036837496171857141412322698475302653738323415851031506604320247954569737231215332023077921116276948249689211734663597724181280370897978267876840379352858495704042610822335995894423484871577855128862601225837224085977662906758320292483522759041633763958948211296293708111189669852574274331526565884635679400500738132361982942333975357304414532577264185878794569729892391064299606523241726529772497180574706355523796770058677122884770301140424076924795549490453852221352425027339440972398317145502991134667329027904788823503175819564924352449942322863337475610678006567984954903449839215299533002703924420026013747098624250417982823679886797902797538690395319535323494188981327931233902761028912175725010843324812303802028258500164715491768255891837134633626586454304554066114670098397846323387169138379949014126375249878496406497410561049168367083745053672877206004009581142688439170137591911025549366108163012178271159860523371923469168365855527038769076546956525463667342263677314447729300523272177227268398972144981965662840318947621484697533318629605967416250802101542435813708052007303338442430191938826190403199651990963117875078453217672908114523791609436880997249136542213896486177740343580787733007296649831761986598066170383395351093145736793900463475661358301045782077794698022294266026168967148496659681411399070098062275028623078582952384760443598759116199058145707893798359467102661077316255367940701608279117257750929541032230959588579749595679543911552169741576682036176091024944021963298636978387799262870924231856409182839034302273911164073270633186706348287187661773840958394353238847338894270496323009131461549539088405446592106518791273540382737564578361445303253612560126658552938293914084748536125525755818828676396939716959876158516606213935753317663479535332449886662194179935634146131292094529737710414544354559842012907339232146542666590251530661281737226426134963078060131861532710101617918031031839489908966603637671658637612221646044660817777274254491083514178256669186104856248880509920796068368432322863099862168313825731556065846272591506541091792722788711705426382821469952958371463090906539433046367429974182518248729958430913391412488569017186419401349010514626908215964275605210317384342342875030847480966935925773236160394535359045883056212999915628434681417990439660029308216317150896332711185162777980931810697004316498844512605401085769301914586644903065994083392501013924218211136031092981143017640283587155078897763834964468199063622917852745518759956515661651087183264452974848187439594380572184218475017498161582257336251873864583949896385427856264251623043705805843280633373795064617394315613458769679353090799884920338593270636352997676680975981627483100149652621284032972153945882982547349484227348188324737822839641132368795220037952933424541960479738286611452210777610372904841223679638686307160430984374525595691491836888826672285951286588607101269515307805061138314775184025608807321581601469996941511131157141863660475574921446869012418321295412340137768932951985920438483720556691944298049081932467178239970640984895596331976615640602268248714037640766589329888799035839320469531964798568501075239672486496403382839443268983620849700540790448098089728291651724475573183443335770749174620597541185244334186144021701314964151161304471905560543511697469750704675800530775792335867949836864643078656199541301866950593908415545334572932447871830869237327858098696041607363838642320805159210041542187578855800037646012100013890727765980398919408335401688131284243052765108677468633425300792983479945395234477423842615330359683584114009198550151114341731759670087228838165832259310923729143334063879292883767180163798116157523812691669923075598161392629312287013189582453352649756058290315043354039495799891473045073017081824878552635311303048046511811995042578629251748874102009417122122745792081168682947969468402474985024580186702159459184110190155424403435299940751715526808645037772529096928324979543622041932866935187321680961660923639991836260168714113836571546250578774622448639298888301853887572038848942638601113203393659977714338582156037533375867359802028818102695898809407014652307239270908827681473709954327844610874752296147747571770120221361551891070758861393813984054917559652291311621428507187807270826477875504177623627535755382293067303592798434259261455488027004214735276909910758221346023995898311016143963472734150776581236153264736133993990273904243880204939210602693943691137850660387528980656938614223324564988208592179512911329459276312247309122441787872155518946824374258585051047120998003405834400784917547438441846174010969274402240913060566067319791861072874063263875148850341194524985527708871887160519298901042374409101071180772560665233979468987315344766359755799352121286394137510456713819526254975484681188607517052610393065213042641450798960020711133490430949036091912068562062234646445049917799312558349733874199628029861555024654646960900528567153007201164315477281644228377242535708657504317794395979250244506695695596233654097453200250843244237800512803159130098798128322908377617167480778566199787789382867922307173137320304586307887169783472106264429624719876956710396566950575133748299143636322620964808847337507001165880709144250520912502584161059640633060456855083485455647140814362451640986238205661408944173165937347835420672217641420417651777047965791933757720836358034737304905376998074822174538806540763808635613813301734040256838735343549426719273681130148498525364540377942448255313785792141432420685093736957903136977888570318832194733311647956947905249109410744898407305021322649887624610913615563078374922875237270340156474757490813323163403208702582080826761334036927871806378611695954355924361078423023832951763857141188068255970905746669181383441011865282356870082980716837888014525965364755978150874968992659227915546610429179188098460504084644442110557570576882059258108640013539670291850732694203942377855881744963495687820104059142592884407441304698398598294934240564401712743870076214228312146798511835545977718160616549180533123932799782306090607018555374078673614233142862814921346397533592425816942475678568143190166467236887001124659113678961830119166883252970534695252333937296005463710452779986045258870499791741209598859547922862807038826050041602611733185817789725193197431848984895748117540700854447208034432763828540835738487079839520330032295027501788657926758069721031713203851458699374282716324338148288597267416360444063616633399293814678806166402681070917713703446379424783261518570015957787065954466647957775423999204307052634139281333588425385542531743486743096640948703231932799620254471490596553709454331482089438351756352053947387601142844885385506480967436441623778100795250119855521529718573445603889594183157862689062534110175246110565839199072346473378653120826192092891916823308058595190680133586899072018741451611608726857335011040638775576005653962781558019944859428487734401600624465698136088627889614576490713992680236686237182258414198538602966303118415151864204356225632745355530980379051345292457648593637753442112104979235108311046992746303134281968119381098121015465783858979586563096599725333474545537124707219579047391270038687823337159847524457732586653047119794643826930477752531552284836104504151611092263308584504842805205592508762447224631482182317176208600933847154749575891578460603281300868746563417040738502344165938876778261725458810605329337257331477715184023332562252768458101455852944814962504197894284943768042671342772349617222659817302179549908143325022706641576828240277284844287876636037123738392263154353959344463289796283584547690296970852961287951540698107321468407691443945079215262747338658596583724336315483863939591472972319767347162807721645611048077348862733956501467475541719879559773359718875399781878271439841242646798742336063551748929583342956510077695556511780452173918001074692346761374350701818166390104843667272787602691541982808519179664608525705822776158853303683848499037401476341643784271564285082271803730776686704983277970426950954666927980139289750575109432028588004332164627589503040108474016014695213837714037812957304145580567078009480907444105931103329860921912330548376495952160063065730786378459213275791092602564418978878160876140010386646703479360298180827106284817770449333919412427717880293760742429093470904525527379297003790288118416932518606655908275732137639222863103217534930959562884002891993848012151213383031545131020142516423116408466452441265067705457289205429781374102068376074805307558789334110522109221530572141289545741001016039193089973520465172063222831035638721161117831875818002032314030224288866243509306418210236274414203026618618404560159430483509434099492505284763037462768485280130192744521351697222510488415378031633284989855955470861807010565487464271247078879372266627360131786554007921857990789842639325011226633781417111818517323136906915581038027633884576332644912077213060178259394205855775493024711501381388717014312284601242261475093497885583780758163662587539490921418602290706699610389053895179625517174185581129116576298015824823985005400546919888858493596240865794665670387692407052348705568188046804327037254966582361243352976097421706207921021151361883497145409173289849456602909670807355082848544090109749164909542094991240638033711914411137630294723761531877080492600326178384976409390581920265535332805747908818010374108130030027365483751943800016336077368308530158461483795033866771357308047998692624037472599620320367380370277114818693191999880560529862406741697160840196288022634607448095170748172511474328579118791495078162345362384255856270918053049993050112564892359253309561745500672442585014387342943353293702880609336377741219143785935957857188944331268414347404348754091829455548861349370804548341951416031338784010157017398359740593383316664772960334253400364318149499767919753606358580549076231390093386734791479161446706168075407082574481987188283661360645001230432458581745433318668479407949292871147742974082141319438538742696912328631724922500966417794928434894219232986597768412493270081947066875216853373164842348503846111319819797152657144819458582953752075636766554922997850642511482304387790874030537972646460227071930920660910125296106324736231835248871385971193975946446840915320389836331594137108361545820029826348259524075055087735043721325040243545425461353148388435118741368774777663623544977762809766201111197903852328190163434253628224636987479121556827909942766012273220529972632374049513602363281500756400482523791096497413477133417708062454619069831666441917983212070720664815250336583574715626012569940847811892027573377741479031316587578092818088348327770087691685708730116709792162558699645895672114199236603731808042231455682983239145311782349207113387401859965603584108888154379349829001642909268926626683032476433286836389789044582686821069863474802614233943048237523621119551004570510544183525691170736245518094673737082287335874146800489758393224235931763372263136645002638727526712128197158077130263073734826045570262878056996088792951149820747758389870802507074569644997480234502942820092256512071717958723328410609291616164455840108405457645950702775231942962066003532707962659419061518743052332599286588924859677992399386326173135227522086911543774004264186991138524502961487509072649302814427091890759367634468984336760828960987152553795081709690204280956144674049352479929689186692590236278330181789895553469028575216152421659122103187625773195002463403109066894820844739248132801375680350251263170663561860628100862635306011649223382891296175715652190837946844686967345890273173154097264932453349796583183454214289530414824821692252649440315547660740426306969628265972842183186878779701356695856148748093125190226185310068542285904125550130280134703805399345886178444019437474884147181874044895536361462002063271258286191491659650757900712222064873183543713034831831482348619061354026231679275647309681651781000646645648099984167833790095529624274208664159726080619568548334470417566728149231260747165410524947376229756286122119347113120735394062468024903551894876651419161064622595308228457239518309499296608128652789253295871312351486824772197790709920478932194350897046801018150022417870070058952234074214792410320928609678007418496775091972240866354303497229825772503326104107284976566996112646528880412979592583926118326738636766252298030247243984689382300722149426037320946211842839205468933445275897887739331659599179618698514028656508436364265001646667927997579284237371891318837884881176319303789123636217589348071623185875376943149457177860167578852697920644050660171915800109041896319074948190523680643638092269578410260082072765726467159274733738147596798618747198819306722305517809748617698430966336782993645996628867870208808574203257785661314443706389185078835490169067976922894138864275768089305738420447755671174575072811864709555380283594374026102242858727107380693488242870126058054703077321265738158414686156923327124078523045830131278393586637445465551618688006365689825867274649444288394565772700297636700852335647591057973534708341226435205613224666064550505746738373094595366500902543406262111476687824295253772746347430990831388611545574874014329194978917248552822215064802107437641699260727437845774155756613049414491956356244989773954228237454404998319471543664260399162009351127314790740011956811294873388482894588136846600757130492553098941339011850876672755290649288868426803491957775051466368500491919102220965828250738040852715308831824364099180926779134707541146939916862767260919057188289998007728017147135490047257603871731973183931513018304380350085167071661389269384287353933119741379949875231245863575893621576191416334728517019857442235386120017509437092962120720957489213221172599138783765679508802972878187714270329679308426575137521169802664298147625276639882870540384745220283344189267185502990696112575728352243504637113899217403911302669202995702465074722971202766814393231230879257956565236963572790943552950624484102092323587975957140287809430087134717757504988320545113625579394980407186614201242045526121289025391604514205232557161151978534534782156849806835218347135423290513330896728894994014048589622378237718238894656027999760915976463465836886868683940511092176761186016189664057234517505646696303189454164778070852573530034531141114620811369958426288083450142122933027457036704707958035204235486994037511585431532872014793251496318921425184519907422011315245423919584328455861128018023779301715363958531529338562151114804177466530912436361552873519640676350551133599360184645549723018905049076020691730166300174725405886692275263960539846875147589209157336956897311244667229625432958272505774522020252245580036542306567625542548989517964748328790816395317047169025685507786735452548178161204074114282180849682568846103899422167565450918851639214235378806631283211318134766337921116492775090463418341791490225594879774268928692901217823089372997547617283034200378071214141797689043217823842889544790126614502060650688889946182187161105224993905639951665948847951484021366435849005607449599014023834880185812475502222183388190076254910552357962670304521751242803600041719336475335102436333204823126893546564837782411179661194944274948431356054620854424639140511857302347736181022047055784759923126481499027622814781850349150587722814488952025403854790643251021238072112414005099963808511796522270436678757940815810014020923404359968354568227653685441286940658737211297228786566943939781048949216638935379262485555429222891973252418509428085054430181399641320800569086007294142584810034617774155159176094851436568025325647739444812849414507151688105258976276013338052101246675949027208336724842474326334289936942767384792641964610318230891033947609089841266334643833344843468305894563505482756147637270706806888181644951068731422705257303602662508178822104358979409796501037680895274952606973601757071933870669422391740591070396903311435706527142179381439831863801365502595427843445407555069427792487856389634883053074833125063721296487293697709972654133481798480764961422690226162048004687581962167297118998655327973425714570840377878195188708739135343491760700928122596508442473735342422168654854756346094722257831370279245468437294621819279089568677136580359061799647351050576433950803746139783819137755790459055279297292459087715385410288553164737170485567894840018991776649716317107190036721888501403864205164126899119715392654662002104443739751435179564444555582203894199347673462407834437302809275364686581497752135828625827665885171169395581252355364354027756865480312664072227913616246826115648331195816578147607221110183109347581320348393994148628814405394356945871712495118181624194097949615781141612288082383736842072674388518729918963245104653677404440056885749801659970816864974023676461212585108823381205459600833184991053327533204088966166830847451471709339571727053789733139468587777222853997763225825779073958950415194617999261021264948294385219517575657656472656498243443181046436563695248366921474320914631896195664905757991035033018035628978863554499452120804838040831538455317319756300811351718116082576229353076540002641350087464052851900355591919458504034017097276772865834556213159820822372366135251477607176991351849715734693866245224825776347865553014214404010722735798548857164565191350794078934853791264942834017922439559155517640442981197228901241605052667050351132511712640375072361657730826164377494225456474950064295422846398071197105176968012710779278200221947786045635824655425450434002565282377219935476652415471731351892566031531837752390989534024157087171390278833111106431084186123545742170145862027158203281501448560186173570331015182939245594555155594882174737773274826392008946351757823580201654706589590896169130968755979088958826832335902857687793339094229289391449601063844441206381710457054436428314235160939630457903469351289882609788663766569991259445468938731530371276573876805385085662185954444209093195286304169401863518429931929632891369582203924594482791287193908011146137333429300142773569216615421175716972371998070319207160787660174913735886748164122157475903433009321199834936906358697937296071826019439674040374690949960409729111457562298446374380223479504055249640456240771178022920381068099201879795075740588998153875917006861039597018409430080840372464767495580907426121098889957894567062943954713157040963565942861921158636483683835397143513491498331179795298454214810594049021068745022271091119173716839037530637967077724267057122842682947186494028092409520904886727083115499601657772987480904405588068171900893931204447933589582592104798493935035821181338630073781939786780035033528466315784059493645105331899780952345453100589399216258584526547670880099098419497491282275115146985689992503933515485591165793535076542391422957891163085649426136200124888000590544932744922629572463705664214457613412472947581571610250523393631704586927535103689294574411530774000246297454606570200900117621952593429340654519072948543149185248142537930892873079260120713161835853515013719706414959996674486367362518289841255660482677145643372235631303736125824588305853835020760634685412178279972947980904347042589126984257992745329429429384809505734380352264730589429291987450522900174973265817599686893348150781723884257844711766856710892098251991340382639176143170957952398678884968153206452565258465115005620889081266649112190330942766184573942879626395268604777802275689637652179740094607175152977632269056655654408015202146614094430330682757217732826444036281934578230602780200275362674812221808697065009199646237695359704506910562619277643947798568103557482268580755168298872734957969084153228371724166862331069797198927920157887933806110498364811252041247937362503720723666943507359987117512029274090386514534827178958312785264586225264245805229227627871262305507406832683374383810184980229288119762878101053075430500408802144606824726207612060626280335208577170021929316395361940459362017395535588657334820997918140387942739544919909454680792647899706217258972511407036148291542771880185057461904910913108838837093792517542226042468673768569916454189575237839130905370430701232974175695778341383796724659793833222487081947740437514032811468382804534048288648736309151368320389088163927926265476655340281681782575112919234767586185830634883127029094245510846068561796005993587566786999446518472460559632786169671151029189893188405738627858118755675029428925733626885659718675304346851641053692670334200770996786124544959319824906056667595067838732435300095340838956006813637721325904191276736789448421743550107287190939135280524135768787427826633575007367354926449979848449958189114528373891036691741179707551464427392393904493645584486776012443948466848008324874003158197986964932501334516394259149329230978255791314449637148310139059812081210137337379414576963144468195749986371376611031849759935540030326769652183736599983169151520456809188725509047654158788976550417005746307733303261631936880056415916734036647199933896806973650856513327275575779982415200214200378615899897621143710317656356323595657061858481591388075383679116204146704248171327656332726047959846856216943418487190710995700505341641899020860202163630150998946352507609265871177403851259748357567251238459912475818863356273403245277643129440080532429779870909079480684853395206699740868703355318640571945772207375094796769222572307890202918620791145444320948686189845338761021282392660180001430277601122125620244597679599409995492187512595975663768392642274857959553695121668120424694820259163499130815048452100184175018596331065187764817249663567587046470400206939155190359508940420649812691761951798500213592160479742175852482989292002243745394253273706763370468491739163386337750395454825606224349999769308966590079069444488367285563931491771347668813177284259920134214956596802670454332955732686432769996724149403800408402811575801838929238219943853958023833366123733876483698560766625576820974404567453863924194781794885722351329360505765496071416549201635947636018458119041990273713450306176719156035214209404800142143923615818858988696155328004590776503686238439499306824304316563544186603255373633786960184347704389614472925383998123938823735490964203582094727411280782371523279046431149387971623074336070698278721036612454619685080056494914413721014934438469613449471655259489925864407225636053279609044519870133963107577731444741230734990194769138019220771019284014125702234447966863991775263976107547299196925796020146818217210187935400746032941056837851416960319929086888159676675691145304303652609858820880937867165932981296330397060631611005159450818694675243168982089865621022152948691246070774789463076602801897674414378572510248265660886970768241613186664237250750610347720178286926733419299132382761840465936908851294397969557213197224886746810979022609639465549577438978561595956696206036638286055829228021675544462554820168634740088978876382879807501580097175886962402787001454773803062890339053538356212215527262533762900734776406666447589442266254519715882635108897995994567962337930318861508357086274938568505456081666698345910302146785062627985952376186297227358868390082909000158734698520145796984816452609182576045978485574856810525235754987593149183467837650569038085673182921452858120744067789286469379447841803551289381001026335532578775214435544521992501544754639054473077970582230284040626489551802000862592625103618548365127195327527779499663417873985453267148843508326212202214291391862884678333561146341592136801834091108372306508817056807654779644771086277350554072819829232276044689795450536619875426567381119339785071112216002935942163910862392546376262359943701863869337865630361599486467317302223260575420509688360182585279407348313281781654040759247453390661543627963443694719358676125625857159915696694225006703908619377098613071827398687687951942819564223081465254579471016915117933051451109442261367635086735414458851205975273056886062631689742607327240887499511036953270479419062865983198841416829202878739108526665181495422996298774225977388404552299608274692008569318324764651420001775035926155645758517934294318457073174398394872154431900631211228140262613039721089248520264727260443034872371152058956569596491530303500655582934873013756054780736993507925464285711207776512419701088054351160203989089514402569960991815269230502526054779360202700420287784060457093592710589680112082584036925454520259067457310358949415069693450517336386707090896021434416438113747972730942029364716311080036753044551593899000933090289134590844253223658049211671630602678820426767916304268550760981343626630673620266339108802551855358287132576780358978647244076429586863974939134125053178291102172600528738773283723252689952107924866186897504746694496793774457339251541520075730905629329442686074467302637082327836294689350514077612410186647637527768726385161100427384327869757402969651624080272786502754270694159227368613814996050187564300287331394286193956294437283419164120006606417506500518396275084527021093347707580248204716136051161429058699520688770139520012405593299934543317201834764112763093608071222168505049049269833794334458306766402639506716661979337657198088527592127582191441781931472002479504503917784401124576527258298262995024348168450327135176926431653135708716772378058545558191546617440998558939210810088683035064525499879346656988766829403207541843580882132219708314707104859978171982953998342805591494535189997995967676867412929647833608657423574741639918634295304995897275617099249734299773056193811496631227557283747437109113217854163580114217951683644264278037427053855578586839437032529784455499450109626400381628449458327759603392826744260694832363025997128620849541585808905774339231793576311358430323972497802875973439421855020073509941002061460534527355811091178879877299562687300233506871434540647651537638790287530266789350943470633784511199945200415585785159650316627523175596727073157293278917493679713022597194043172464442690158233745067711021948077654063403292190830336689790538168848235639426470349942995272345049166316415370614921828851069142376368035578413451607809775761787436821094715078765331133573263052502558688410451692741748665169610404611383501197151670846370363848350897854695272998875952940708889633840941708918405076170268081674395900971091940937096728638033976052824781458945348835734680530654862614554741003908065661743182440498963808772967129664356387195482634282315305843392462620517627295000682123151783711231656961527791563703609196184192068491114383089121537839114567646505959649981781844853137106000195980811507751091968364304428149719247666101373620052710709876637966605413138517043109407518748087543934522613269013607766349571215412624595675061209628319674992137870862432620091214094492345018378388986791971985379639752291186180636563109903819478382235451435528265689735010518960874229955707044982325642054158076135730165592562857899933118425088921187408370827267402234252455473186536587910388219107147163554922047505713298192376592764482983134497060170805478769157461220499994649410674166770011653620592098379243459894429114129766950877640329086499457432536603014594986960151630314210689082643609778743010984916668779894660953057714704828584007376169204798849499207549717264293067627858934446831144600921314651200901410805550127943082667337152627731984054320925105449014019932235974865761305158074242921813349153231083623796783943754530237666142783167323693873217098773573995608974472688563194580245194713839797541504636601218605146467519050932551130233809082236198417725874331040902514932697063924329874367086382990996075854745256776913732693224429506116333473191297224841053572971848705438835706970216033054166839889085029698450780810533676520827347145757060778220487279248237997521202477136586001186432082979641482278337688787833813671932595427812740030777744032111694609852596993494971323863844670860676462136748188427214430884667183544190737402520482303095234672721519657646932236169893577627972198867953833135841623814545633129985969589865031462175519306032697057457469181597337266381791075339636623083556487708056976529066633759084803179698544956541602759341261448489729739778236046907944234903548389223650050912499712654625181224956497835868403976783093929742353683273714071969560633225419042716212147972357091268518490882683659774677077355078726913833382662240659658878209626311444020975407822863151923481227149383022256902420981867953066042030713743557931359285072337938909462365884129722238669448028405780416174824668120599787148340590727354796377589679369809799989159325272701117735713060749343386603604297623111060081922159056161261228550130935448536480798909081738353637085781291458347814566067687849935049076238815846953942957541551811909362922396265189922156393946402810169625170195417547292307465876966605613325793634210398920822095733817534390364854617736005890054288017457337301382394147872663576507051271874485046151764847800176348155844139572615908105044003526932936553398914693847226328760724279696144211709237725520474458062240291292568791087285952526631866309361785334025636142229573133673700170503856983722375871844607557087112232492522381515160036170446069901411963847026447252038980096055324430693074860068237858918260922015659825310338472625639824245324561403399738524785431586953800169056700396574252223547204634137675252793348705737752845016060870223947964645506706995575333380634962616409854277970354061988252122661664233591980981461147782151748651131315078752055298518077743064492912045732055034870369470651239506124031336821545635500154418355594129933800348731349204109775331179741747753763606526785602728276870556149611290241947336054098031408137468926495674496118980244387381882922175415889185428232076268425830900625948872088207063793559512200361377497690901778269953360384030716382667243107941091542247190319759263538804204682630274256345766503569299093284545265938606120743615563478054806393571390670412948860505251726471839841488677249569718429882455012376054293820367718238868983646640206380824121417221624227609149763678551126268941962824911956782123661069426613391541828548602377096239503162612986341032408033581891572274620640100495534478121036013041667897123020771901413723563697225068216144985214681337844983107697269681980061635396560806375558412953638396174484092890605247014363981685571269673734920447572538286034869044075585549118617909313750831848748490599071265183632855756176366308911801196343796824047485946449641373398260906980301822867808098330273347467992843117161886532316968077422542876297927844068046912433703713620529792310640636829386470631554528282970125513917272435908172544836604098299447106669515219995575813586751138972974887302957202284529376126595557450778776488209027316699569930410671968471742856702033226327335077620591338775509518539233117456701564818854324976460884567712269681327974812819249973156310970987794196359701630982175048889813801651586793845290276960751879093931716356881395255521007368886221793068817527441564958335147885978463948792782511782135064962034539885477423377276751490942263058106685195797020564123198179802318526990341009204505053836151501644343831497968817702711677125547758335288440036446963321019879275599158620059481235598200742854160499711450567010024614716113367348441746720402059469003494905500901037189543190042015657462914777310120895295246884620746589745703448391755914718228049317562009484501980088109177427398769778251272588582078449011470610918445026769336626262035266419896313563602715533019340194812231391212268232209319333871947710518402504974064162813389346724825938428634035359890601411532114145972415512364695229907842631766350911833989388740671199689252308569914668238437272673063052487651671409499972227869181444365454181311270881468896776939335523771842651644006716256791558938517760869390347623248345228660693326100478614984699460841407476776123665474272278358365598275384123713944323382788071413197541874613025067684049622929944722191310589252784920826168827394158215047930260526065389941575742559968855790618480759965561522940197950363287739191731917696140074201636360654646554443246509800875175079243292562617703803621797569263115120922481047829576230397874947643000791280020549248983786960415297165429410125617807442951529945135354633151030921293556580612696662093143049010226781801229435742004227295068151638298990608053461026102227104552861377712193715214130342123554460114055371327086711222543379824527440423122125025034832729993564860902232924258743873372835530132729825430407590656021160554929417445910413265604069105680362311816291014813840462374753370384348934250957852642532987009768492515138083587783203922851590916885458450015556643431396692417797376150877003185869147070801171785262620458766756692364377965388384540581846751085573075083712164462437140240855797121366413384069684243006568953552317334548387926537089690184812342136330424152385110887297436499466252599172130693056691496586923411393931211543930368803433226385048002222200074286807411440247118717898371294865440711196874473809540400686675195730593278766493310077957904488408089659373995450832295722259155945149766966096716226037360155029968009740342127408124042120875768306183831756030745842466485775368876639635860054120314733986611089852863014837959884695500358105167599200530498701543187644589310140671747537000735795882098063735937781344672042638796080643244135189082205117880763065533327091495871602180508206651998379750406163238303996188522793329311739077033819744491466300317287030550306988677576628527175855802114146101946111298691393656801134788411555747551643802556129439053162648273505649552946942377880094802498000682384819860085381724790337176276367939439455227329319083937401753580675228939422799188787436446997425414523838254960836338194527502948028371944031992605224601071661474652180917871417827202503972685029870391084896732918344231248331836473739877126203742901471875052147505156537235306229587536321651743539390114685132452364320128609855454262325440710641904996599131607349864006953030732041413341530527179479105599777453169004794823864825286965628645970222476602667739502503045682062179905312968887375021337616671607017208744630911263850488145427985938671558781996422800600263076879321964129147024368420967717139781414700942609671005091317103334791535829872858570083419375352793065677979933380041121242467034349092813925949488562036666867841379478656597099537387392965140896508880449931950100162691663335347672327729407273688283946040669134994481271181698491279400266027102764072061195469910944161895912108628946009352468040522318086949365705793353151469888676710288889470109822692651972900081437587496784839233292083776362727665734525966412049065367628713895049069245064749884930488859170904043675706546635595811470389477806520655918095864419614428741615503010085328522283989577776852720546809470515191427560645156187662545966704400649386782062519628457013471199530191900982074217708393525327834429816046852565651998700923535254781939836695407890026635181369976330892796913580294287815353937553611679131982510967519133553096476004365530253505477463645865351648766671703971116352376966981303436330837978712287375892972062191086216030232595843871356262675566151798341093512135444585263111261705935727483106392174691179273189851253469020306877321697972866518283806978414617341577568908734120634883756418532158771181059150979313182297122657454777159534292380517044816960530328130007479078462678390546538516357871074198852062165106447076457448688088906390041397090645812656926939748941985342532651826870768303900335965191929348025269603185625162908952775179238577299652035907753860921010603686521695737094888263170077010529507237225868686767679952335262186508445876330769002378146750455555592801397560738337294553080431810428083455354193806057087114122780171501214889284460873223772774970908238128390990173455336502516505753371847939075711764949669980845265323177309042094642761018522629403277518818568416182816833928113738468991054114715330590246631900764145386138841318885949040177759473641698103894013889405408543029616077896727776771644338514132341473379436069322163074984521194897593328723295453118310015693548360164003836684920190926738251896338034938310589324756416411114535529930542798625182402712607496325812526326797186259566838802168211803829087586635371124092175948860420827455631690104864297253923628692967472069156524525316520823452913535175389188365236933755521887509487987661905828010483003751496360277710651961716831216625051764481743077573514445680462680829667753702371265619512936646250793403935181627664310211089587211786067615506842071639874985839458721411126102940713428151318138310287729637276475654400357003928093358363518475288378623856642743609511166818456229603020855885919825205514084014165330817719211901766433187047919457625587767129853573155317875429781958697576042933656422504656990209012918389690640071121719509907941628015085038210120995320557271046262854209227955700259454891242435149956978272328236106201171334587204387071766276092841279178415752350705595040836539977541204852714032267886747543148758261719384133277652140760670054117720256414228604261083470523102275845419993565879020662475035304577537445248338451262693938024718458809313662302651544401093195727862578848687105195096586006190165147345556997639306849995570095046775945401542897247835905372041014119603338823968277987480529805709057061056511168194049073108157907240196926819670853030738591412687061200094247373904980120672733350897447439102781402166983613031981064722434943251713097915033993784904611185589349133234270228943376183627274153116308469440503749293661832203598099851962563219155194702110179625490885048246929956554357692929646324897598180606468492830262502494357736733677540786007512991684138165347160195490456241869969440337687318398121482079915022833520599525926498181918763472890431824271142865886913407743778324952093750778767596868160581390774128012938477578238866280198018189822608099360811741394741395856094264291012718357909757102674262904337766407987107624734235210193762140080592003328942883841556015210667900968822302353255805467159293155579809984112783186232157430712224503715078381715354803989390618834559604184330797535524243938310139892193017067767059424252561614277731167008995861179208372031476386982918778510798478279393678651053504201553884426408832473076698366595646334368250658496678169520433279264294952214109303037654017747125182775815281019496628400042700925487825590642083099902891254786397621806059110165652626906412190584718090629368343213190205252354230516385118585753650066621026799686346638403522060814700255835852610751344191956701073962806235522477249969895132432190856720714664687940417076762325308767745179153345311919418377067061918254012042660644051905716066193639235398401037830492918076277535445979420583471347967381078661600113292191501937085585357473372058863159441305688289084643716674697076832218030211184370146092507475178386261193734163663672670040080716746506029788780952167057702517052364704244163698732037716865972149415869998897089972061301140635457121777734272490270642746487883578292441744126708689439054658888349837061516358578690198519326884873095922239782877936387868056501745391718143161408113671617465189723432477592982686868672724929638839031908709809851469940814185098396486114018776436435193801618419343851057405758794838018246291287836446276138931548243707939798821468113176018629220823390584480156457833280762543288510641770951941296694084904676415252955755719182484660046739194140575425059538173205626087848659819199606891003250041476891775080397970824127744126233022132142291043374088180380892901187834317414317406281183385862749153542751962129164628967105290097248361378757143305620650282392049446801034769417059510448850914628692334020268035908522950602936384817001918644600166548746033661504388237949675526449319392417402011160320840185181662795578180203004492937285836313867687230697478459026251173290851644379985092036887808663893615088177046016933127246630731373612612196111833022395743200044981608126933305565854345722516648935163259190200708004340683877026701392213431675939342023959698131242703437232149846889298989623380977696182859565492649962933528091799390326158532800479469503514224096211236650366654234249912233524948189252031049809308417822553066409129151300795924560521889843954752901150275246356101124985316907000865231719432874511570408182995998649504395230402881886622490409088430629893000269726649177328586096555353894127559436515789610379723610790600826808260188545674194703195943389370172420152084000329817052330110749353518196722726605464453016685482090251967184716343402263275781747185948027882224263732268012097472252078008574536077691794289365043127219650120599681431622859930715988731256162210236236732930281101323255510500928956895573172917678417341108503064340976493077522667771021456199122903514454798965842738389908392541282624583213781364299903940742864612694867274176667989249462965667841229120910613651629837966714644642664225755090245297165513931305929626807290059245420125534885956400526481813639460918871065047001551389872738690238903501934333827894039778472537710629446111611902982175461670924574050546989519270137939715399399611349440713267156547067208390256346525475898273659358387922004273154312615005077318169717341764132702672712988126824014108453072650249716391251337372962039226203122948250202077980492719354411755302399707145799515228538857104619106627532298079064075063382741238976103652129560094752488910043176547816485366681881288626494163267637725468379327015613270185480580780170328637690203726534088445932756484646892543897518493357403337415729053795869170768122787665366575225467706023152349362415542020036993948306035818506620181652859794773088060083166324921510940629129296271075370047567966987682142556227993044094684385845827261817620801528362237550530552901181921869516851908782355099236118290926070419598778590932480000129766504654902966791412038772934198460122328506465543380795223668265412462646887235990470107286131787040581979286502902922123137521936031049210445911240827166902628417991965779899707382755540934785089921934243501870510996656526679673964807883131147177979413479604425993003874891291245201236020436867098863129131725234335081965650532584290275203155350939329307916039928199962379334967332074676824221357868036710035633255728599738759841068946664050348825525581353235918602513384746728035190704985501829967357539316695319966969744213861084790040346477334549191169796646169033108266595708931334013473126890767077349301680907775074153837546296390494450524668281438691892382303973242742418622931228341022482496748193676688565368269609163337493969119618522854612599213967611862813671584618588780415780880898799083196471099900065989601665923608093429592521082400132996182251284702068059339956687679694324246027380461528563315094805184365673966091110527962243665863902043498230716640718277551989732206317676581348753040502538843140006623575097991417205344181745623445997541216149420822995274105018933543365969537732328540451539630443944359247389077351502971971679518630907942741344057765022705466281927513995353885147883831743351681233424114704429045918953580996157391013728519821324412447421975807778424860360072508793452151206608831035823822166131725327372543899477774414574240121143493659520625969819623067816047770107808985844834049479872752675442612298984379457220347370470021229406713270126390743966767287742780222811500588341263173951552830257309770856140560011929710110565513588416960731228277266873297605725185960311058630281408808028706668337206884281262255482079948512370233494095583021524345271009641954423160076779443896090931262685802989982025652667997252136894693360390215920912813013209798916425378918931678998972951531424914470207785323500805315718319475971659500077733805209785863993765559676117184770052598670985618637649000091174091304888128778860906347211318569344018331952377848300601592148388470269129451389695634124126656662383331956433297659772566192650436924510588676625661501132392346994108321605348194710553075779651987380983009786511091377937191119814913398828548825770168576806270360000081575370847016273036365528081373887357048563671576638295037272212406696948969216802268740499149473283396532910602391064355183037784658305772341710866050029006518866128888418163212415963831977818263261583980910029940751117398278197653893534776781314345693631704844171078319886861501262097006639374587877162165316318780439096854675214713050144522216954551381652397799624698123597699070212352006471711953663838361818595139726478071702883318162289369292389365051909300806181923757507071019839441546776498737376635415905804236725046827420605071207961414371443069761677624779899451577886941600121863183863901539057395151468437445550915863005136761638893220319654166297687709868702580704226020174093629223767056022456554043303164704012300153271381814004518153875673892519234192047801867942600444477439050406006505391258376302472359154537008016307618351712548875911859245536267773559892304055029128438686038626054729211780626344195351283208388544850666165927542412424534102063731856198300571306810454362628462765423293777182526471810791769452325211687711412082208522388078030306574936878470947803305472426558568948626349115719161507319167942759230267893417299958253341028906026795134058827562334261099988232899327729934326606760110783486920484996975261843342793372469202718427416525644121651894102405486392776654797686518258234723009550256537574537877423699252445641003450993276272086117295801884857348977973219066631332690964343490186469027394793826767411650324132469678336535056548257779269159976662148711292595300776058223493615106108416177037814621817662608721947806113499860459553058139215116012496972896302918359630678159540122716548378262838011053639039025096194008749065520458569254477616099377584169214738299679387301352635858611388515189747289475330400073106122149900513780015166277346018054233989274960978294468323434201972247608500974576442489922185347670435690732251524761272576656645141809694592968293808025657463515509897147563678070446196987561676716564153851387062113376643998859456944600849796933623601458543684524967459995132166258449652399901017239566626521619952521300354972209519675961914692885693000650360245749831190151485104135980707802783418391097907071052743658953028671016239913181703080711128110079973190728841404377079486335101172813457552873379440396421552273287631437779541070840311446845502276211823895337553737558809210632941921115842277995102837919681204131679392464041531203039764559498854148856639343044103826999454441591517377110740888036515201982530214065169888975584262450466720246528184233967675061644912733331883113717200220374504594983664944530723957341557284051170837074557696740747956475301108802119924545664089725978838768832055133404686335065265169520690786775983646133842931492443699661469618681914613903153114803128222816632129016105236392179368452683611188061697872677243504727487061628360817909480286335702710898533168205415848216406800137974086243918027970595999193104948010994757443002480590007357069758379001684620625710796171629157515182178935940097510844597617416784562362316070975454175349355162268249640071050677531164439398234752095358649256787558293778198508458683834160136160965219614011239476555594860298355951256507645201692810272814891630269699787191554818501222822673201529975230504842112446070160562312849466389581395101860127231816348690261248709226135156226444339522444163048951625001120523053451066472338360776798132531832964084185254242460210689606825316333837551655754455413254007558270091224806555767992020780160612968741675354130942477868579006176398879520502301677965210345082959186021347407095902157079866212091163987164340309418190482532190524223905032289837907744941661379477543493690998414316911362955381494954727154689741179393147333644284871624003236241606961648606452193551211748591612800911793610902952768099708307061428495406321914909736696309606968489809892490550810735062847184951964101456863228159569486329326607776716171613673489577667496504293262214040830748120356111295987689929228475170824341780227504917338522513694227668222675785176071304260821416205509265695466481347410411392763186623333989198911737488300932501120775041485064085792274089712449088459563870281443974375583013997609335153707547770651830212070470275663879335177738725907729452740255658450357121472596575186683441054751968498435386539073707006437075585234186140709411514243601484472878968205209367744941419524785622627422040391845362167623842735439218200750573291598194621719506946708172918557084501423618987951803007225624362305570611035297043949905339950659730835243074422927386817277537940155691507292680449212043067621220993738620139151059725438293198408388727797295958774586288155502427745892212413280397165312201011679340127421084831539414672890372335458483676922411682804364781257892086819420188258220504881360985266687169130748049533182666665820413471668961633332054247747517405011746552670779064843476978461019901855996622985514589860625791210140657733126991504377593346788939700587899108412263978763219551398102730016259980699874045175910745038723804793186879258225169257470841186428769751920647678998569942670231867818213812938099595020512220086474315129916879013232663469865186733942227280581573436847789600596081956756580088226813044159479604718252906561505134688583860362547780621431790241931898482586247271100694991638068627999161620504697606245165941931670983899991252731954607792671728662817295018413880218426955384611332731697680578275957148116409328461209727134134588355218340271512022544787306257558934255483564110964316445156601483608478376055453861547528480927512746781311897581664837733735356068226000714398676418128798100580941660931779239238839297354500412675839425447106005211153210906491389448815825267508451425310339607395245775513085112737090257236554971180866194788708356101055949626664883835104935292227436044231071806892532707308456466551841999571886637920921115957052565691530970419515598344673945899486218517450893746473553556040482086955345519287728742230182538708967134139876886765578435630119674774401513134038997615296611791446539896172983096033759713788110289553855313968984067699975011045507013577880735499468591479837209018391454831318073069355915948946381064041997893843888589246941379654595177064627838542174739418755748946143204847428918160594308278981194261075028330202901832571752196953154540938267020760057500534745296041627931913358506994668656593555459564603114565693652821081219455406393726199262615663748337329991673286601274067083508645803827432518875550582501205337878068781824139901954997693208843522485186991997459171762143709271581857134844397190994993746931419665923707348692537524158599381296156620088372706186637236418725730954191157960903246989855331129882880146069373377372750998349061338676255612319220386428082224561944820607430394607698647551496382004155138094414259265448659506983017333437593744341537288289804739410947860273610561864136826234407253883407443682398660273772900407743358184186391067276028971055355461859808241412066798175380001941807020636117035341965012720204055667516887183860402131221822413097333025690627707551690538567760857655995363270761696215652023237105168638907552856225340265969062888520314889135889555710646743690391091775922808502948190149317003382020315370345740816341839987171975951155832191545725331528373133827090459743257430592857398537750548556406618398249125811777670847670537359683826661117739937142356456661321065110714182965786665767968564097608861941572470510855764883369603539175259082656503934650053935460544931257282618101558775795682657130976725990776363330865027141661180851422307042769971101578427997590280070382579718740991007477685905544412836470507605388212440607514490330875438721896277382329244653331945555402077818941930237102868130650692592526143170883914882556799777685567713481959415524586110859094603420148036083174534211435213402563762636855586495686183588061145897642317186135518839493794546091985378098557721688654679054607193354048630101634390143471878579118554571218482807264580834195436148044029692037631844199930651460411632004298791324533321247073599778198944792168022426241996682654890549263717606539707730265887647076760475695667811852291630589611773253319251110518902622680817475107464903855718319518228358909298176626728958185548544761866779654035596985646080144979589990659263233423261086739043764783467430380720240542380967691422081500814187961770217435052061129268910235581711749208431713441770057261598234303743936765113219107810819737783500464847981810667673278513279983118777756974333181685471141590836731607438587091996864896958382971217129968028211737233548926473511068615733161531246568555579022951521912266179082949616733988658633513153336979111271751978736063967335645941030301543976453800912276901403017899211833495315198395069815943173930306253707133619835651818613328944058649873867677583949010749079857479397575568843494740045221467584821798209166449627225811069846252042409986399081842314180943146605011499608108168653945870143706525435586631739755160962413513385354335352356133719302030734995506646247416208844227938206082797046231242168053049822714003515678664285462998057211391725756308905365285047480849075831281363568447794765251972547687875588773423528788835042439770237722320460868042544505719876621510582012254573474880487514365295527496059398942086734512526068392263221111638414667084449092869334424914752436184534360075277378564317798816150731878865777933540113301353427469642130833726675935817670602845969698507484357191266952141247810097200057921115308687714172297306999926599186306768540196862374564440089759973139082086270398161127265216387326401312128679847751236421810929613574441576521810990678481603591529390216050454781751795342572810185298413213301366320518801734052427830052837012699090671664180870814087886194192792979095836833112022044238014408309813392582553161864758054372603860305873478431026360046708286127147648429390184718453498302327353899142973592613957107446153000982248201890091924931857652947879008105335478034757793931248824711278149211362391473648262186812598940944835183480458125226711331420127929115282650241925189657416927412831400588924093350961026158403877006268094780471102539901851772064918174890067990250710575079871592028364544693018208150041775742904748754463244154882579727085653302769441794360553589948835401686216146039064992099708325627395447931871208707048644336463318768656186191548335284130339788202887510782346248788863693286823119967361397176873427462548775907519382660129047742850619560799977579140812635275403042979039353386027270676396245462361114710973556447788905609383640530980957035324452150834523799691470881356784231108384148660674664475608533063294591319408169824842373258577003065468082774203288856747093450249932902956260586411441647533471756797341314349571559021304946926064590423091968308900972391799238753366555395420172736502707780437599723656510619781881593946191552292953881051928419908100816960045274268937136481195464916762597934749987295917617653596819467135662943924814242976270614003239172851723232408591624807134194110743446381318913067198952168786543721792339635159512473517517430256067554848192981817384539109973279630339626024887205759272333760262042359395578911898241174134625374791002182720221099424456842821927952970111037666126745352614689676611956736247767594612450616282253438669203609021205730436160718600156182223987288677608646451920739007398755631407891267788316532106348795882371456299490286808666685272424974401714497461570283019139642320222337325060965249482929053883760935112497128266033010813032405268194955303842886435588078357675731409293339580632211214400046721649226151159843007993959628909481542104905003922718078859452766341853527410959965948363273565321995217305553204974184431662838295794030986553457147102012792424458055964408374707293557981013647070798537433504983224222984866532754305617264748487952497924522714882933699159265438217631268570534852525942497142612170160418313132386376897522169015409113896388667468409593755497079244369393469205829712125095410910761490337622703352176232184332597573296491824075129842561538626342486378408599526748212733663245698960449049322302377964356977202922411253380584154588811826659752577030652047731424915466285571708436500526569276077419799910255969886809088638094942171189997463560151352364926530704865582528972096081502636857496697642823800846754342516461786004758679031940175111809585917135055109362773916350908681336439021792327093312204574907807846052534176603916442012174688491229091839672230072011986837732617372840411931509995392110528341743365518874408099450860346998874965421583067032939348696478480018278354115349548923664050904752607127734376004756374894277879985720588615479171331443241121059172397290033662751865867133708313876116598020424981225302597337186022753711552873747287402671404903811006253055034038096812114501408489758012926608950006302900438335331789097898965711156746072518597737357260117065865895703065309685808493661775323543997948107614825665993766672398617738149108604470844112740892773815658492890297351000258463376576105594433775937087903817929531454492752258995376859472696419181913680279817930802021560909260353736517537369712574809557947086228365644919847518321196986284982921818642017376948236967010334084830150982647771942525151237326529563746116564438704203098337313018065693225410682333068509377468894481288261572221701610065354346863245055240245717323665614102091559171142927390625379779155950430230742972166245463514861923548025140617909240803785042094685644722438233601315782333464699851241030681889341966538140140364974563133861353065551992675353779365421986056872508749927594148239411096402517888197199815430592587793402437610050596950887812969402475327934381782702664801153638257769196158437287285791389061688811288475558657533221975163049378481488647448159836117914254028643378748523634786574269045735157509719159222893032877163115522371752562118468186026078819298694514601880205655279516589174681614761084713323642846715457405132157649182524083380897057490362730327407778051795291218021333830278661649506648081544113502116515439808314879119165311743255971727584817657244288456141314258454766742118345743790940954342106188393076159626658999645931435824590569889202280137386372640679376181469498905285196870102969213817885723536194009544720160195514010857849756254355983152443407935545335217644226329371266634093293097043655622230997484709412031640375502084016268696073508129319673786071457962252859425575594650080803353105471522409235748573676845128339824969210562601596299734638736198108925448016717835754354320400362102944345956019447386281229811053197533922305249106160732753363560673160797618672083440094751269080502759370097086125517075279870848750675283130982180116173154656040271473964884590428977739637142598824817990489687706031237831053555692586735562910793027481616238521745168714215183280905982505390175231430874725196914106188979939025739915416032406360132784852987666738937729001853714820887608525176846782496576988395131098640203122248417692717856275515259385377342739397952528448677514746898766361516492347687529360702005322717847882648823359244188242170126771180220532247904454316620532844636811542568562987858326526145896986945988133437399596820340181844018819845838715784379390950051648475152146548043300364762493601691930735854045957048572081028083117077521444979260599269598899851081695796890798793461892574770413350939066962620918413499494636131762417313195026072463694000569723528129427594399524122175545211474239008585529771538346087787329619841206300797953279211917854065900738158805490980171656530689405879129904919076314897221472030382906162394557488176309741770167751625586220274808018512146967095538235598112526372584255796927655482549610430187209800363849819975495473601142521691136345050214542521830999743808396490476272736121623529669304851177630013546046188400083773791083332346413702559820238464154578430736138367260586179865008813161618875785598425789906478329375806932981121136745831522200491499897358232044602838004754876110515669372949364929630119924289486598145690888744294682157306676236372164516566773186083805467191718447324489364909081341910418233007009197231211720327462772218884173177879532280711526929562729058277287255729471414470535371944776737727839784163669473331536539652083841891530143853429764264148937987666032488742922248012754026353773444045195433735421125040467654470790651171265445978706810470633901490456241651251222838067368205291416812998227860781661001574686613517301955656046247325662654403529837394712014374485433580088292952196528360487416726846447827638689124639459074073046107317159129829660485999014070018569830736614631110873481481691460294127044394400786095911283250183672487191876416701301323864616429764191412174647396050028200214776122868049423008859700533380064928050319131996786285609804610004503334892794069552084125686245821757301839245358218084822353033042092290720945113471367812073474550544198841750050227306623715505981684255778479834017196857498769955359710046596465630262860401922534686752208075551668599008376655492161507180411314126317787688171462437767918675246303496576526018154798429595811394562431516446049745128773330013399145752451299027486282219428317584465717135095214245156187299897397534111942522875206232104274428109421078755887006390911511121498536037653781881481904667257847988292422311735313868210468323600872530238205602180344615582713509713417529167066614044226730379330160130271163008058262612373182229697048389194739575644022155426517789256850313178977196194050735712665557501809968296141713812936823559180116022082269061776860198149803937450460098049043415717918890448445408029777108058834102326674492000846854235239064613067182345004028601090012519948929590721956073582165081607367923094635194626288501509416214249169309516101090944053215228656262404704215987660083245898126825103342532578051032678994759111230817637850642640998005907551805385571453390072469294975485312337670063399567540377081808351988252909203679397430080318374477201805671394218064953001673938831760876082092440776587437603610876812288716377617714461958346047197464340815609103092016623260413491808381930395879454304420641931472703808551716513287267947372317873898995035674486878902619313885719866484531023206802437413522902937922933748909638825407493146010788229554493395202990480079625451647800326438941379589765805209099544546375233605525565034214755610201716318476596018983713498104214203229968347315444107510919198738533128461117572287112871952563329941968439472155991568582711782963398958993939316204103605146513451773579482651312088384214568300957036343893888628456809442724808694376017784395974017345695324578594968134958949091424042474366832337787556497646977105070328468176931035629983229385126133508930194632404702911026684711557083362585729504884996935983683925988147368398060813910594051417274729267300884258991207311664689344228380241208495741677496710147270072612707444317128700542630764059758039634277211528184980266582666853056245694084130099826221894229608667117497311789482611299738770312979781459005105275910931940453656433623809280516267448550888117416732581831648968378479077556070745464497652863046086127528137176649365287025962591580557279493985418777772744566740567215959921893550839380961631422243468119749403522404574524901949762879091168301780902259709973773680198768955408479858185078774977696297001787617948416053926878434953043347586782591868375234191271040896398842955502547993683661495795023521727817334352220638772369479504972243582113359112760010311218536357482635398564162339346622228323945313040193736277672269095584906227466344971019199793825723100608216167568884996361867852790220702434994715411753519262954885169071447434210826491491372525864838288020528173756963653730135415441062137718002758815065574241286434900040660452853157400140602229626121073107024153389596310414615354332381454929428593402559274900157711449932262686621610413270964945777712289287149196039071904569101812224770151760750419390048629736652864955886300403145657084438033001277949764452405834757691452622845831068580156504433654193387302703592163759237764702126701054208577810198861331532168216309519345593995855710360346873842407447277398418696997486736114741791496023278074111197843372906137269305635144314470804739141770328240524034008140559188023992824704073989863591395064922284889591949994765633605582353195812612499944482749758443996135816253304341456137734957746643779074093742260583123832552653008706549328354189316146445814786497104858497831182661737572967709522523364390641541080104846377657591531515216567181374535259109957854320159229163350999402308740212738981617393652645212712506493728519276767900235895060130765368428155741836715180394743254561977002224177449565651084916922356248532831465955706501341302580744745329442761433349476993960461763713894136580185941560348528508523467851446950618509656585749554416594087645339341920715069142469185056775994349413317155836965893209752028926521809187760240375643268541814946459722180280369290181702383037881257379686512067771673887522293603054898862499548562600568003309787986029303997968698248980736949589360802725400988225158238302970652137956060966470951595826540441646333654353322182254832198662418818474853091919900576755260181039584116333590194262198553002441915896658085212029051990575466652996242943459908433103111880034410525159101629565390324029089514913032641311014080187431078725560527778923704303797838737688310538047430742608484514842038770227218017783599998222278673661837848606383528329391873078147826354105864994987705921213415172215868575336390078439510813518506177333149044023989756140269617285574700703319873081933318072403926604349146298501807483322350899714243175179981714627747257741837692827096861598876048055893199837955535806517040960574276308292750805204569444439681561756647695809006203327651545821331543199200461766831597217617372220079793611485356893142642707869603903210453885436782212507469172446900250374973534892950658803519736371975711262722245960176586368217241860423239752656571365433552364388959174403784522444447683631837049844362649498538440682083847010397234305541359610567128377321943672417439706603345252870089682536001407889744762624025814027407444676402460250639690444090626325794086942382708154791087839394772691297080240164655539078598166849282699813862647124359342723327706775976199717217060982284133480579613445619114644505259561693565205384814228937766009781810624464595303607998193492668994205803854401037220912752738196333981609189498220728678055459366365374990862608065466644290569549939341813403398420449046413610126029415501844742449897991048481361414547565432580353101856410368848698069084336685492142472210232971514587199916758220362312723377577412925786835599729575685954853670764954601866210693643469051180754555578761550495184941907244978993966844233544343778215965937583977158551291263297575740876658421734485889612591305635545317606145006048489889128375539241557189731672984598272347603798935718760461032146283082518048885453417655590749668402391657114951184611386186988092990452581943532804462518259213105321922242326359131139753385811517739455968644277007147953708632083282990729244504588227760266682980512476062201925626721486951760637271557306373251841500634556348742299677077486036872148927663234911571137475692788186996378063425481539639743846544612025804336208511343817991864604338128333797995859918206669375630370782130308034501559001990070845124399107112015967901613862287714899104518165428879310564976488231699520438532383261769042468369237737962283625340033045909109058222336748845089776962895299432737797566867552233558675814249966980980712228127773275208703040645031131811105551503316432948476383673856134581983369658650238076807540238415122154541232253735355456470028194640884229690119580615787539454460663176354805738496342269797546745378326679706629716792079206235502144034407217672796704197808012463352695022537098203453943384393862892023562067016378738769206990272431491232946607077437358151836122546391853357231558025570595241730103997669913590722464138480966690158162803699673540766915507102636693420374701619202627803923790819881477911871076493386815478602099328137621461637615636386158698709094289708866970867722807710315288319488360229664230027044193570978221423723652283605998867740912523285964497156566515285509313229299860607282448940157840373272722299944201048281991055880209761516543904784551090479884485059318948540095063721664541279659830153998397544969404351969247941769910660574676318161422870705999856812086517075109753798214181632240831088412563889636168029109076252691488812686272837492904460439974148275984106336045735218380961470799184001657592596480346079330567904754462960436708375736305972189919118684821022126182652856751687375074619521018680791671798764539317234270817330896117085022282299791838951999372037740499139035569153707467131655169677925725128741811694455375809175707589734871667548102879664353820603515441897891067384486939823955362906369246938875110968723360112106028491602217042192991379783182215386824483266931703827420719125533645565219437164391839573085475432118528970839792055722084630409540995170811568323396443721673955991189267681084769047184465739683838269799648579718021420776305677300486425029882787159873276985061735792300877146374731564280540930279329836238617584468000216789540967650370839922195347610925717502433717897943984419156239870696922611713885800232672600253948573439336256996798179043588314845643878515843633140636318494537583957597278231249381009585452551020583630697986216086515446025743431490084232549025470084895276654474532110288050647296539500637884313175523328134314766925080784377284748302449969706961188005842004105438114676020531023189778962439385722220144084999814671068097593214802312356314827318737788409473215092220945703699303702063436091665345025231394868081807779063843975947266608212371470326669076897717004147932517671122371661972220861965715687373480727022044954765170194143203110999032287261037360008246929936057081675052812015901473880499828287031428696957524005203830821937776819045782295287165154782593870972141014858377147410150526897038382073635630146226679307509621332952834292256141637795866247174456917177714881031573532176572081233181312150736348896213995730792679708423537814400529221106693457717555300319461699991548648176419890693975262189045372316013493912582244747576899622693626534155703547384678533878711799643701537072982329814477963065833767080414373100411003160093928784588121035924595345188317911178209622079997936452591912300903357835720849354423096777924970202113567699253890205763723201267130506849701858101649558233306779325427603083951699811358728988846044339443437072359551127424596399800824909020155528715261088571484084246441021182702083226325613597692899897445567825349214522818865635184327472250093804724903480517564615064749468469552459088749705150703507640168679093206655084099848034034835615037026491651913476715754371667159898234958803794584545156318309797805658186819503951655767333701813988185432924219228605969762230075995205223380911917298113162089830916682571033657216041498768476630717456655005028153742042073240887284434792265123708491690355746299071804902459232563205599230226852885965196688160501226651369166260719546822011655256648920297524525162406711867139671856051764865340227675127077310924850127091364007773987956422579969075012213093606820735211908640060772171362263565012904984775997338696567739901594117466761329965761590613016637380665339473884803636181471161113118095772730869827777436306593895045245960349160543685853892122558906625067605909510527421948870107694233229348879504629279092574375390085103130591716687042010827070997761540864623900136320888165421143438872135539812688077581387713379264494007646986189105033636782981645866617307833006116176208969946816820990558320951359766804223704746927321841641834172029197947596504490987759806249504246496807447193328618706055073394460671747385311388662832479631350432474013299044462463509011152502642971767599676816452903675947754257680584097115208936511148288906548753497893806749517235128187138715327809781638257142378289822641826189747500103705966133886034595955867809997253245406651363185223619647145577548019304825078912770957597981256680972955172580595847953668273087674255508304883709890435532264371784360705176090923064041046464109954573849943797817999602642975347776579255400992929229594147913472840333720318088861536546923805606584140535923699604065458088388199208011613816120909540894710820564352430368085625522866270659076231271595642385134781165161834657893558419629826189186197146268027108258179834113821526039341639710545401847104363721030208290127499854051079092356906826477090143567166370825419375378178900200494704757192423061981493963330951561951180156268640202740961674232590994109769612761883714423806559182875833765921298975441861918480466571974780565946741782506594442587078410940080945345509235359666728663392561153849831012365863464193156534066487300630729730833926899364393479552051034208187360677091125718762830268047751918879644814568755696141865072889442023563603231954148441406331643398410625566337575794730028040885052252825562512624707974170018945544108499631304950422576175550095307198752251180523344634690601649864244295240587643250505455033826937437978760327064968257822742188782851548905606317451859229541941636068854775404423466855990034016262690270835098932473131467649563642498567507181837146834777837060609167324544549353796875110979894652525540997027186243138880141409545435808986277960697291047641944504194995488503763858437279145268430181454526916923148750665854437798981685859573158220225396151741816035408735618586250896101674599856753347463315777237224531722473921742825092462297919443393804460629992585946447343478543652750921022156281633491404744285385630879119934773718624023725619222987883631359029681165647855198217516703434279382105521398166032212839181974773474337118982309555530396958883374517676283454124038759359747341914532103653940138060556637454313721876716808960411116431624631069134992218492394715044728432814541016046063824787629356435839308721776806654604320307981548388862412760282045723883574544446322187844713615476451692397487081108810672729545008245255676066670812451076633055082270497254050077440941184764576770406753727998029562159252600461343020800327288106133660922958911358617170177968142807581686833360566968050085735609268744662940866892943445098164856579863436076261264606698416430818511491872689957821898944719398878602346635881622968333801266136629798561685476079774361505648366834160061204626305297052459947667542851945044984681370820588800055680520220871500255948209201408554249971940708784543509983240402112052221776305119224787885492586926417285266542981491144022344425145525023108802439774808500204621504226347671967982046512128988762241682200219620897950933247772824312189771420647625709771528327040721603868338275064016070871983607862130022034112625804091921905233659969530920149109853834563694880093677467200059906179403687898225943494404291163753159492942538602704034910488516254044470711770133463177519379163010621439021399205999325573320570858595384760150066926316775278082865300496066101479900386294407360611284447035057472189303957204455530498053514925992405699809998047019448470428214674757638221049859385812763353216738856621092632974483933064951111831328900220763107712129862457715929140469415678703902430779481952678339119930617300242600064994843953576901041046014459555963478995703556411750492318306970505881782078806447155047594813691752215400811293549090827247171757599655938376129567706216089048006586857357930701910731607421051129955923412008563905565328517745778624381212588176826506421902748021882370753314243099569375199832900347368799307395437022378152903612606102622871523589926869780548272335119490227636332514074873128892753408336469325534270471876676909177759909333888837801430002376835857632564088183124774537501628366295147547729623818224759337031212368980989565612325225524996684037348823165930518148154466510986718881802945576924157107616839901146504474771516123874161313845068349483001344820693702014965918183080174030572747020133463847424004183145193222810045559372344030936493808185966652047774463733875677742379125195759083842633836279606259715068121729672061033133032195772954816647126150585051727371080111215587675772111357907298226639716653660006490167188241726052072111957232907142892459673122641076152268813570251997828382213294668159885360492816334950313148372072751557749179951342083694096015084225549105142519376969853418847423753952033894962300278761787231074995890941163464282739167439853151597975294022377628548497919211141791420718168348828238732077316691194211524972790808340303614025238877262615276884739791432771816601670678829973750451498843024784579425349322522513121208285216964866633463334184236883712126282444708747815024480546966812658684579186925841598561265455209628863199957630547059083416116727639533441961334243442956329236688924989286109751290589410932703679084920380449939237205473567744580024667385893971270263221902813302758949803091576229465005630010658460653971064675764391603219448166985473174759971150207081398343716214849564392948804423918129228301662748264319959942483073323935825233181294976440589871487532389902523549660156808891686437126695246215364573748008222729058541741400864429061250525564085681582466278172696523530775307632228086872676585193617388150667416218987945636436392994588437419710478353041429514294508183188114013487457804127843259355510257093052016541511376135696931992597362425177367351561554620935086320982816573698390283217307279832374471132629956700470698481080785361087918979929727427978259247015996787245170502537110069214251537039278386717174509161649005352665783719282833054285255045631493052243061871783481577096934560983710377146825847412516521703602696586960371851519002632922409681782544772638265611217806426165209016077936222712744415736476421219902270845706614973203738481712537796918404421475563377878476251842017106326682069366372054092648391810297916346714128312678344738180393697590850196382649490673284850139066888782212109700877451317578406828877067403232480303859732913061519235283702718282166075515337912843076314851799391777743381506068303035803830149998635455351582986394116902620829304610540923256697982212529939095544228392093040113932344303393501091477466255180956023319985616482327019898204180720463743194977276148618500428122794440422118942695892032143192694495376329869022711517997637908022462157071757797886515700966056752540636200269367424358880357513312667912931892300092807159361803529855333556339641175551041233103537616504479870432485879081162543186303753420031767514602863756117927921239023977399765896810477439982823789041430024992407833039273432204864509973812098411278181351425016232394294924478053614671700544481316591221460656150770648908744332487833174359876536539183447159942291592255151995645350194213687679078832183150410251928389733539616599692158103201887134199479004592554353747734201531828535361463973780302093472636385226926024447580128398986950646114520932523116680258734751751722019669284268544762518001378499678404826740508095255390909700886301384019321029655070943095763849214078375258851218750364645080554757809933115068983035302163004105274369570875169452471250101023734277935402868389043418174130470409987093309246796771269820356176056970053938849767254275536364457736370431895832963120055580637088509065664420765204087474812706443057028450834045420557631728137543641065457852821699422975247095139761346092561383568063837921018416966393998303343843334140949206981668413950671641566665412335090817198350756359608701666250103495046870386241417574936368018875368209196832449156183018699795046968778730384100178894836004706928876794450507070604359766397701037387835677185798604923613011581297825240991660463610793582157088142414623356293807446097238444386387453178400870860039937058948978708880415454592523645307920576662323212146781672905687452111685128550259237018090459908541545186781371235335269429662860098618668940058134752721452063918386775832851152681437711467153536050202132662220584454697407528767618647641745611069101972093129049141666681328029897873372608615935115048013843542025123971703876889475440763248377391697694849401466568045553805749246684779700674551625619157297303496936531601749055463205713090085554844101922355302683806019522679216996418884106037483440402595789686672053549165616940682497451245839290251874690003190099486492909315884167371206473985545847693094259748431773383795852103614166893431052574136739059710985540628192199439319477426623787360530233445738922634773435559752088953293096809101466577652575683176745262072662749556356428320540080398426094139682352347282283761774954231739418336674932086034173755622603164785251221345116282603959918016676113366977455026561753025004761291600784542198137636208909120154115827988577525376810041469265153584609418146819054141307015591103365109955939383969426808278455450544455081501166906296975910406012240150878888717077101971859585525014298770906245293728319235037052566192840623164532843270843339213062213166125249831599528926995114107602286029439211011695661881441559942389639426634351409373703806286776036162834359110058884205947022840338298378013735363749329810454708223183634787142127259619523304540533255459145803121439633842358940265745309134048362151909160712440170418392613775895351643137532404764770802100557251312277733522608748505640089538689251537148786448140650404901433219279279930259777013557716726480063477519983075547356805864398452297561046136850209757275422831729720645677317701614895603512835989658094837667755521572513038379484033882140010624758053132056608880155374558111531409002822243188513118985660469232196200370627513741860627167512783725727814027384853214335600124635496756417766710007454056029650547510476192471821511856665763735653885173815847844747784750532429983332109701617304170080303446495390368322995278755061049104685787062813243889066988436209553300444217222474588564028592941229631012592684716415165145336363265827262796919923136456967484799246605432845256466868763182490893034692973913586080762558732160129876549612356671360876600253753914500474193140452591107325825999845350381920652047791983707436005794210438962042403917559912099297499765127611357049506506792675897628681928415686640327061719186566736843979869687089240024655762866389098743250572415313129370372961510184514552736412094152937025674396098899800563765013522658327929141474431900224488120436516858357904373354472781997777944531125529980273263371598040249336531209915752364808592941028284289482584606270463555934026498634697884540149124204900874670622891465490007012434680876397183648051087425975630226704444688193284244657992999243126345798503268191736294629497872870716574143388511238978685609107554177547771094457931841819880578927595024107167119981805140576656611279363391706988507879207303879713290778269363183841638623755127795260039076191903120466756337906697390205731671013960782154854493073044394255699446894434207456171441049330441137196083616584128031473457392137289907068504150762585664094534433969103530883761274606196197111981285068766444944814556615895290159060354717817316733518337614196215651752931275627891473727156681114938567501900773033278979676447408857787398710070974837121891344970758852161250041860012125638668133444700814509161236621269724846575300835146347145869619210368891054765011207614080477700261826389885379031723526777438317226189587819784622898481497389472266706504905078235061843761523280298809661276283954179675754654746144572048501064240365820718099944986789125009246730855981538540525510276136149051929893970182249079216478987490862806004960005350129604689477039537564860499125402006435867165535083178948709042889750473507396071067980570743593399720198072471041641367864062697741786278115869771931324335260694961339763682359270151671140496552748809442724892669947152298510480136787320429213167755519205347311359495642107756757051696775560710140710038713969358769813415905162761511791735983451291377931087077363290606854291691013650558616949023384365857125931174698802131229320908029129287823774225588949864268365173751679892688899164010636086385541603570194218908298099377898054212099488702500551053030440369899824659448136210547294418355883999545187366703232665158168878345622377473409305249153001191521355113255270533214026442916273890257069820468238654823323588494854864198956418796439691138131567360869689125250270492575494059858561243802483279708549599342452597607081139686656161765315880965746687442754425687450672000108922721581927392849139304726825368552180423306927886954476226695864118796195842898871387352017868770896199255748207231478356765497909403802242715405365792276627575786618031417638956457165151970938598159693000568666433623238822930977839354183698719594788644756281375929441512241725123283149290041391983473995415445564907006140566823515884338152511893952658987923377381874908948423341711042879853195619821546743048842604570699182814074488739826884702326433090044366707848598980669586090308842683231174288336516770352438708298208125759455077726560287591606728135267163957805602831037333715993729901668655891372358544894087639043591698748314177331457618880070154420458132725479130941005906097883898108292509112014202203574701162471122087900841380329251631614887676840819463449237241746329640629428509761526918889072918633103249196340819651944446148440468512970307627851370478034684913850265351206735496119709973195527125044869268768534150297134738492323921633282700530777193920180512480706564960312227996423241546781607845465367783201775553811098596212245977790017980266322341803721148050363251791710057666682934021991424712342767049687806327371489188708573914695369821953862112855061933991884058532437043222717338333247956297013981664470756380346307274335893310166519397792465469414352132677623082802836360492666270559441670031142487276265091797862374275749303294846305714979370223270642534145511433168650272404634043694970759599579820983066562566262213820172632234126189995486796942879095448287707236210817605607770847313489825351473264464107394112892315921795795422719486842750890036731717219306784045151236815933159517971056852407866315181040055880365670062328773868053794583330773098059353595623442084202982202301526440538746227159630414756440508076793919366485371124841847413696938935804805071585422746621566714222252629414226548083131256340397769048128518578375571620161769065384901953769640254301029553555965328430501273361187724974146706297789882566912800363511562864476700075815914301683687371195653139840534043352635817635595959364941329931039493033423237809194866447549944488859335327042001220007667836687138540323851973592942559222065368085638501902446347271026106947584094498507013149857388565838215298246151194418429964440203322132146389878808574665784822129294059983673737357386500582057116067383477260546815707235806609214976900126257721010245408009547639314382410621616292057396061105759791805488281290819176274250330415665847232175503942690874393382795572189354327766453337370915772296841293233955584681713892813328186006536533008620550071978090228856772581755783408188448792486249192658185565782906343994823100652572810011122492866552360000971885090843698520825290602086443935039468070623123325361225843253986546361487974306269747863640976586111303659417567927996321135230242973824285239103609622810050474877367446285649290301509807535626047686062286371073544631111016553545036051454642420022059734476202213788695913520139397130575569312053578771666042522837438334780319529171683067398993751728914103620211717860291936496647453676180185860798273706889338678519567498015763922633406556255971651560901577379551026509953282309550625864806387898027040189185031707112961120805859422267526155091594222086917004238632492833577403690327045751861258327849631730292335750173838956888196802593028053432843834131852969345248863123294208924113808649878931064358526985526985270152371569539189685014151326068154687980084794829819649101414233111630584855349381108406837161177956461489863397168966009407085983215325506964064203331320183270151921954572508864557162034298996262744526520604760629717816525877625847233073998759098969628280745444304075490595828443946564110446157921103999620239979057706670625214802918494685101847651664884954820740133983225220781894243528091665923291094727236296774972212434339513206081090072393822129638203224328821735621633468671685948850928710853460413047290229962628936143504591450724786344260510289367876664454818707384585078235455122416970212674731775450439973539306618131536777675650009028651366132952672494791007335831595153898945485757145720275377522731431329829207933876190602355312307554217463822855152756819041522606197976003997166415889093134627866762168024672023012529339067438161457491863351169377670634821625984864870769499346582063690194451089422850377306874167895650238587704845280137496773985499992804270698983714442292932096568121453846854003893154071105476887701512284481712984252221102777918090026630765204707277033236262248173899281782861631245880176176325072823319883574476359928888522586159955061965117073305995888221076070155721573453688881838969539027177786881213920126139553482469443903180512504029837830782799807171993534169281499048498450843401825404086191902666144150605698740431839330629203813146110060688037094879703992782525746927156911253347535675129529559749050979142243487320554193547219480883075010085961389569599427103030828160445464169721642172731407979449482925613026118436147744329408037119795181606491951126879894344256064243100873105183107920003325499410608095032782520558618126234041674461439512100626585977539323626576498165136233701619012228816937978696016402335226516925779647333358423730438023746878904229026828163306953868828694760427188010159406629393191134491811778797152079337807750979015693007973386070963721196530342101162256059925619269961537443024046422684117955787700118346598364812943700995939541104291971520504770878187951294658423548322688154863576972326875447017322071173999428322921098889019184151576639291547249430803937863107420413736574805652757547994403224639501273648101296274108282852352615739113565304104124546707477386332781878227083248253846761847020540311811999902672826870515275380804691616311781670589557640367541554059661877327573220182473178983098434510744319679596042434015078692869515435982216160186659428109137823390356666826730082330829787465330678461501434677344972394916014718259863319747770117481404380749413026380379109358792410332179420848244191522546066398565983966642105085055344509437936500866836216663339373706528327637599389497157942239719474456777459553534033053688003509302156297681032737187384504909318763101520927792685411551717505955471050185528289485750841204179929278298803875856574480986642105586510259692153377933968748154565692464208035456713303327939619620961253086336252625376778026298344010379783317635144141198673905387673326252510509971613739407657467924782191513609626395776655870366328430124931617011486609372240030842766174250692303874811937139608462473438871957858759128290293021542720219873618779493476158647201204537989873213962302089091868750579769275113984502001675921363073984622980017878534261164265404370739189803186453318523602076425245182752380547674324031957602890480858348599074592950611731890418102147010911336956394379406387107185771826685363311238946121739615441539042893829991275181817133608830560610427774117240470429211104271973840644590677571260552541431868969742471585792341971670928861944649041951715998983987868520843614654471161769642995344251141794362645206277152281196284315578615662757220295783689085220351744068066027645183852584023941366541997812332803409063350194365903427595754871248322193011215404447036095189650387060414987432153656376066951247972872309956370231928193390886461074871731999756354782326392420069223496921277621309975150579332770814108371044990292764532041124144630574437941983524008897546362303120734221727750396099027436698233371091542377007223287244973748064960321995139973896429477964978471364996211529405040323466909292476014592488126077973588812978600746780382399623481022126206776185703485247160440997692542051965712631933361122362377943019480408281390977286099357484228102282685109959931156205057246862260227993694667049263763918426202400026737900646821680513710590705491269896215274063090604372505852230210403318911920837790394304797219728861408527822476550620306054762582284560447282260360657270997243370257565288325436678826606018881174272193314692842184699426850168816211788768801408295710709992740956775290565607767833300884960449854604380455165838016483197130666924472306810087344182151364825644637699284508000750529564358184130133388577280540027442743998053624236518707835681395848074193698891461080625641786507238027545338388705372533595252979529189370453220390613865207936682129547983827792877759938600997790824957521427426890324313144019584846373296931492731736089383822458118137240495559213988934490413655568508418921973617039814892076664698290650700332408399789672649859613889636653760994451056114083394780726893059293463541550343055835368683794503224028199588124730855061373247085440973038099001543621092741464667932853884141054575320631887026534910111622237604143432666620191199732696577267792073869039648009844640242375031963327205669351098494825741938327547474556895963632087090254572154798945135131428623454469071106672813078703139852071108614420303973930500491513012782342849922438591106307897628043282359360316985932273288334895658541341373315717585068541943250300596215283708725524833434516146796382198037123217588920666295078490801723881638022023950080697628545131782123701561943742536980681816712568945385111583556856048338663168813799367957442930434818532092038538944472167252841575396854081559066000642436144641865353626967502529662585614588778162164842946009631054905142093393972337770010900756996833165637803974544752401684550923287541333662665662524260484921879906438986119022098788580777894021401529330819863552980508838742733834802289115563270299324084350966242760375703304642777258602757607142558577510624516390493483037620834008315180468514163804039509528549502146943650275062879797210207205605747402856303003020133496089161843627634556878218772866703675420129379146664588297699093657332789359531133433556021171582692564015043591785920147244097151693426915889294301803209809208739837348601885021342037841227917670598526022899075475607018587269518743978810924672346380767477748522541389350351891354014221698328239997811972551375385248564599567871234289835833525150841108643609086936333194569827857333538115823756455938994165521239538092249285800456366247730013277193162069579972906666968163268641503314014399298637653243115214482496185518390383319119676796608995909531271519771718880803724295913297494254642971170747839633236741444024291162089808066610469131388248452695721879251387694514417952792363643801973016715259871530487150367744179568819515755106757875911611868774314631779240401478183454564463966504091088807179109126728598924496871285099726909899178501720651784523178044358266113946834613175918267883814113268975643342601447030371981384948481371431960339251261188643608462850335045096517530914880428020600637739609104065815362243215169152284505936039366709595741589763311058942085165511884047074295642815401535298223319877983336735007738996481860421292912961414844375778975134291441991271028829613995957632562305131838764618621499954745975911365585394112879190469524096919099868628681501886128734759326283164596536688332050119843769851623660040204520131676510387500142791636791934270238968202466633112878687480533179333144821129259888699433565641566476260070153363568972496276838022143667042418741868054386931224108555527733950194788381316161347146251108601602631590349381405485078595820165849378846449795577219528271280778062989063960539093539260336437915009604576670456194512001788591353430274454167754965570919840290850849616851532841535604208724656602724219507260209996970995556674301570172635050035481276137642212873117011998115897120576694348526679752847769243536439312699343552038076598387037942978520327244724899204236018589574622663016560321624699320971510627957135399776976215312989807931943430935076848943076668121721395999226790549030714959457990786566104662823292467398455013737086584007581695590688850403041045015217751389143911719100445314117310295752586300295779391486337927241204107018893100517228214897484787496227329602075147680399447563722211382524184920545555150647090611048875553780974811427513495049574267121860700390313448492234660473385823412223338719199886849238859770598458015515045955759635502086732642476064357883249081604371084154602826473395098217450868280344300185160382691524581581905980008644952412336875552157598164260649574106199046164696268412020422126761776478224137946172936977301118165152252561493475703206202409016703996833663614496441701400574701669493649797440095477269437433649356141768257819062376145322138626908260249421424566434998891307556167745944304023515602026202754890042087274900160745467473823151354165178103154728875782205295296032574262596952942419406671132187564036044928992667023253955897795161941967315463354482198149837107095407771022713986241073171783561227192281686273767815879101388346945006495590889278940402508268243583980320773900863743774415734540419336052856524000123853862744514772500742429639710966988387468180344370016478020925823121604573859080748052529620359974489110695066525172813199060481374018316749681322116910468884303577629921888662677849523802054441348001094881787075487145419224403561280086604359539234177186480552912089002717580969675227462945002170522716231752099223483554982342589902644102032626393615413272470012613826851335036798812247695192379006063803071306299556475269094324032024573405929256991551536727180827227146446263185709425666267435704902645746539056547141968991703791013981628176012893357574991550798003993576989322276790115212367305646638328629988452056349377051218701151164939192617295964660374097778503546042675059066849612686873621734185970649340116642092812060967112232179395156507732418902678326446391472429337649540978123981662750174818503353496264469888214387711028499077166075009828738967714186135406358229418896731572926439499651438540966025740338270541952210557656093426288771484144069382502300414541710458463375449267515611595049253286632494503224390850106227208639551727600867863669660671168420281523993360510430115053859827485088026651446594765718444997317092507563820094117605715990509946232033588825717890742220881854283276396040513362535409224416806494937180933549508124259152708645708778283664141277105860824755649537368797065804778430701448205167210145160342189057092376690507598578296185883562814795784297818732665871943514325955168926071581543437718880476232804066378951091818707766122162675662886197765695762843594339217678093810549261818164990315513098737310303801881886951052306777225095322165476062231642910973080626265685407095687454959105058040548929959115550304870974608837036683527090410233748820562076160804963770663577240292331724297100674176193719565255572797844772360496331051016540829988839630837622587950077709033932409233220045469099775720107113499884151344909541730640255471267069884319359128355819801038061364222146002243266645669869503254240654973700393093238749108167669291789361729243364130016476856296127650051992639910802490091785089209525005398303987849195977892607313572349628928594088330514757734050725768107777819282089737851563974056191630793324393734505454219884583225238422332742640323014718005589775721265428395218440458029621221445664303259512884566577288197714003323893603184257977951580242522707438459125915397199713803644839591457472522696453924517190798790972399194910149287604830514963713035201162096705066222806416134354344724904203946624084089929377058461718601022452527315329998475802311489399121253309437844021436782771223173270814959109739590158146218189382571358904873135882620123963935714084811491183070789342265873527867191176835893369765982160187147389127296658971541498100494457306541227914921137933216277368069764531258593873361669862557794120756452534076509700784674738607308306826881385169274621277078321572959564171719745061284734563984504618633028106536416338614532585975264438177881170046646180697232248402074509053684808709286705192394995477700289764254872035111416225169857928220097911150196415409237195622659009607937932189604110158854875498389409471673814918083948489571302687119200588375725438228577777926546396220265936577783664029077634575467663884629891714557804952262854871524701702826124577801216120948331787905845547577155337987234852847175519120894136114849039024190332816906860453303590886501638922470160084497727740738524004944653178601213037177282833744553059015646571559890532496715599146772482621278163615185941587888676361437164114064046310150437902383878769589292543045301333899560917781104939709460393410556447460656072954996639331720428569044603008276838169223350539413539799193519109601871829827453759754056991878256213059871963905276289281588373071560172005162896280425026916233641202626115523243236379714026119353832875578513586496191045907657134808129535911769803875854898971772618318010673800796865440702908105924312821945873193245932099676573297862367213092722398781242364336964277965502902255950532781104984106961167401758095930278459846580412456516159303273470982306772960887699682887379129331780495462205940933530418361096464243421718949635760283216908108330773124702929829933236755232606864522318218344009071345291231858338668254875535520857987019514127963569590649299874644952393369172192212514010259605487471452718783336996483753645975744826276834004682791668006182817745953498049660349900379137379862142420971355115262192583526898473735402204926655251112421440078770166444896704254844553365623125022960595569543377919348463908949864000550396551076215489753305019327150004714390820622954017253516676214712337900353010743140197123103527187246157366645001012493720769482715905918768628940678620045438758425569753275680733814382100013072479111689583146470932226414377089055817151331480085350570857917348297853808966541414175093489501353725509955898584701433464357182935841049106476305273316420223616518761632659895534301948819757724222685232399808488935942666742060175173200797937538077283275657813376372575703429604313594778901694034893590230613405568753074250426063728639260901292406144616243406009166852674482621089083476641211717335305117221260145949833774036998321669450262570382654217206418524771235975677370844041406968898564985076130132771391134163815164825370035320276769316441330720784656365240114419442957649325059068745750841246142596822208834013922069463855874611424322361923553744023686944486270584641843803344082619057752360040092340421397898283289103046017280927410491469873849386759473923981126157425690039963491773538563565535980549769205142593911745841050845514960184891588386273729979134921035795440117400539449359095922945801044951443079615852425691051929651326809110092118261053816451107335413613939462036305988258578803513683425203473526566627980788372244609645983039942983869440461856315880256634395291523127075508093849528267431113866938898922122634371644225817863861850032841493500627900220131148102979365782660395272812824565003122709279900102180857516901721084779749769046975581385705232015517339586450619878637256130231145941520535574834652579936659896681371716088281402848948048397435735167747108750299563053373415704224110407069217716567482366187723789270361865887975632148949478135651682681615100938632964934914310399244896051964565156588577764542953851229213418292391663855821584873629846861929952819541629218821993541298346433028196114518525341244853907431007571704299288085223937102438914202766625139860790611532514152775814350561276132595271056498870798282387106458176224306120005011837187589127538146556542617694517251057454103002232203319672104873107866155471694080082290830227049064178675897860528064746507481435768431422263062703165277772033047372942986739041569981942456711247859946285852295966768128133672615434055541012668659050208028191529333443012120163109751919523681326934671035793237778424093316681320763130514960944743738377953088050030262590993528458883728294567136829620372336777761699935597044774609249061340464635569032009291492346115734789171329566461494119906800217561809590100116156656227960417761472906514419959510687826556429119347453684561368344503522989152553776546322823180825370664786732430411687896931893142811144159577009465495164264892124223513050471558815280926018677078787019329446698963530639928512924399505955866598550197632128158409125265679554870456830254536074240939101874089045668142827301316597977340692892839667497297783445148475792191472510302969063758210350570611941671677817970668774758634542481044242751801843657643217432517695752315964148856169275687601965807930974602694201030233010901090163803279345096738312359473945764637280502616668149581618208356636328744787474495456151729365156085805068920322934990269324311685735663789453154050192922360116329253876234653580331819743235761323938293335758586301740321386284981343932998757797311115525538474299207147364973651873154377616668233782410780402928529300428425890527708966984985244546789535433509271186657517856018507120952283325918670469986181560246734941653490046196591587694752485866824414012159940700363701053344418370667095840272036809067051203826566781460626921014105252847207911734297255410173385800441568602424808567820758873583373506791352865713411923690123344862389590729174473882629544355990353529710729600568510897098163123952934419830865247539065270497524744057037639174883263701280843490247475590718709537776163018259422778255086729102060434999151953765554238877562184603292791795641513604279024986200385781820144226196308106366294049965280015750947820329587470252497387386409211889171722988599334757913225123204068657996080135628701744040824395265924107942940044295932010436608187026517764547228929682621631652226469625951085052669828076604828325688864036650047639258871703091049134814465935138552713379331913475159099712645000034747544007046198718295594967946192646192816051943246853311672314149988485546457752408084579222063536099667414374535103008556454856554082333765850602982282101644096513521087596688378401609847982373535516263417081200948448348990733927631424176227736811398347350107425319475422530409389251605941051897148622270811478880388014425026546484643124206891822334453800680244269137315412372151931464972243589923499378861673942202137402495129642744956557926807843838914323861309944943001982586773869071727246390744165578945339713300993135802622494326609658639010051080307930014788584673804975077845580961019509467045615743508309767272646925654595421890426095698254333542361275251334365778238492293098269349142428151796868424186894803833982338149402217058136015793824612509585108316226696275467808625766868837361844317614396083204592328590320004455606915211262482810483471172396822622188107850265212167580032263939270849211299510111049041413263542169292677925885780391342081673868529549313840525356593448564865059855501369788909279395605776482852673119423928161549413373268305650374534788836568071823967655325127015193796226302359691662561149453242943045239240533272746680759678724817372338031560420928838966920511750484903120533793975419403065560290409755369566530263064735265893946935234877380784125519561362975300601159016642687576234225333722696688088954220450448493844444346167933122255966044886480882759266665776427706630647302435354798006223786322001155793357791841593062727445892541044674345646265691130952151297887785734820423994434929119808804865348943403593753648130714166410424602426781879902045506477001980249674578209006800203502231123853928910933726992910796597829878363473131671662584568912398095829469892441473128101177964155715470770518445818889999413234088410963885127158629470444184302695813665866691580406429684723872342542849826134178926764384894863350776405564169493343452890509462381924366216709200047266946466038012449403174644818132792408595859793473953699382912685301254275616858643199612981561998107169818969090619809122568504390180490039460661768117268715789614623170425781782758330022665963428778365431933636290779926366309735281103518302122641167100994174471630708899769536899422761065816293933033311016219862626023000856583167296753124193341580384050910360198917799371222366873875815901428674403598748899022641553038919140421459866137989849773165300470360367111824032367776204875914902758959961276890375745996264860094362097083965968187737421355971640197763497507665452522107809917970970061154769264438046638554686716447157852010239968529782586859979790677688330025536281976303425549595649111601358337284923225757634325652036403795948701069188986566163816486608698814141998533674696636934505193248011382270424055851684989865189118856249305454437481519020320249265717314448781509015231630336669815352112324064065322700356365374212476429180390330475068805899274428647593347092066789856382307293935474862098664774851758177488134556888197521387482908824928050712745545841691314851218779959689864407939818766567124041838436552859524223040508972144210873909473921293480007583331126168223708615815735063580739048122928523280754344453561388500458670147814531047152259396219189381758002394123912416643571331794775091162959046016178582545346161470545691861162714961256817325740051820117761944741237564099480967004008905776598032439967612746240633243886634484913248211196166682351897277129797305667386858149362649602347624979118596203806429312770802552988982281620963698928989705199069294769075575843267333298774024998685744145129718709042549989561318922561525194467785126237076484947295805142768411623522394691569168605009420230440627310582758293754728280162267271136477087399603028425096952852994528044136399538118456867217980247618275306152534189412541382074983125908784720174848537621764963856292008016550677844868153422117385919667609305341644013924962097949167278558708897713365644190328394398671226174369952469256490762626100228668612250476425739607651433282007429965624537888059715398206704849940562562721568510926421161492455298161904138485733199277850368658497822062604345448947307898646617853358669276642688203835979681736330660040041588319143575236496092148631615569742368648668109548334275982301071621660807899622866563760227648781216283686449789550575374579363612839269610586969759518528911091110368583642913228566831192503018110557260086520720881562940471217148026524283211011731828250053672090516381731425648467361080580575295488016358096632895180567319475364043962376384261397916026740620719246999261645553394809579889208408219779595332573989933581634740580922066933794379539266066296509927031455765812076255605090137677203013110306108116963353571423142857499543635502502390502700503082105694846750907795614868171589111532650622036137551835906924709176899301571453231425976504820203345418104897492565377476759031909886158175252650339551501963637127130613012469101096627520640024879937044724341162699668641838654605763454531836823106298019754625894354006304167809361492734466853487081827976142372702866832050485299528094501886605831458242175848089215250212441783376385086729645602083283545737244236315066187329997433646697191017225503811845288399284719790797620550388014425831968405477979534033159479300143869602691994117096658581551803496716341697323613610380731855307607486866764086427084327892548330076784304252376902408855257867975370613259346316988804394545799494670568081099754680529356873536002079071731946915263891947399015202027243705532761021646487288159562058205439872902628692568441156218914008334927256993036464858329779469004244595812201096256479559337787514770430141585200059202656544504899024094547936328164308112021773855030125539472556381161641000369241218779286119433838117159511844500053433659615364941213073120909271777162156196118872364147988275448684642022396654295597142513953749580597908579908484468513899322836218341035846546606594361256207154654499715310838242287778086477813537493544150784595133842010186197936044437583501497351834437906603141840253534479627110322939052618613969462908194436510425871541436867787297352877510903612205114983437552460246271371718354848573840434043088239403366636336747326774544042720050110226761469359792570931008224135665775841683018768636911815877045935439229340199642425558619721501222351203634271519795625030412203667060781207743294619292747556693719071566182831837540455415539467655097298030826587639349017252659564716942208845874724459268884410284160314379683636013590148749579132025207125217315805726387277135150550976996681484434333215324072082242103135373432079724770954527359050676230855551799869831199214914778638088308598827395491577484005344483308471118586067793149407962367274784535667480044281051971384335364785916786676192543674703512194732566461543323640294651598711843614741591466287780528038322498360868606493036585297210431291083007957435994478888536229325329458875194476605126842267248229996068421960702263103846207484967580286227132555973431832243288672913295854475397844963000333582054849717651808431414229375833530588223376426389097613578829127155439575696999840363047749572395259056887561430036231489221428107360172859492511255426073546365014479978490299304261371689433535699058182938831078069225057944702118666348278562396049682316197609231290163412402191606823469516579269219205602109312132480776500714033294528712454045099376538747279240325536999202780102194014933163146319678587762378614073337615733089074314832267200136311790930692808831383965108941752556511612846355787685065770920537232222806307654695294206864378684805827755341639108615947895789942496103503861217443630188442872121146099118045775690042270004726252757794885145637083802707678411331780161425483334572356061445939909276093027658625405215244497236906707998076014952238130396737687034651569360580617965558956904982024982615750624211151585737833913735205008588439283784074666388480845098596854773645455080005389679717236656360962151771846048410004386494634726241855371164735565650727128556524757696185429478529232505562073791623909783877163217803384747399952948956460698488327213076293109914411805323871190157413892990407890260576370830355884548488097554368191143001123590357052496254472087187634838256234300892138570966475918188576684479479229797092205558690418579172383331189731664941454103567825789594319487360722845507730818895819642078430930755003455706743820457623065368122382648150407500951374571614436129166420491064680435206739992970398142712226486218989229274375771203913812331987104037279388416506558834879718929023127955392157089099631426048912606507890234272899619794902740695922521785737779340989669856682589814052172882375942202418544654641149204684573713106247556804357175879483262854295083665181359302134858100809783276352187869745330215913291206898807596186415066072094122878674015078020000504611554996123049571412284565602044172493493099740225786765829916922242194237879219320056852934898016353259171646571189759981474939525575477562010671771294949877568668284802056786843721687442267155725249728212118514369295534421824670713473412110178940714314268690844979536808253459290347054207929104714145409773569638922028459235326502939764048437716062938959095154347364571255597497731173983615618466727614261644888531964403277819223611216312872042921436371535038855318217367974156387233549900893902687396072653685381042965347812085301398319489358555232212795282646306409118875909675734535735513654213734393089477747094571806178424452917165445041191670812143640439045417806979804076354414670701429609572712163569365316283633626084265605565411057068125566212945829181062791301672202699714293768772239635647634989013102052728381669679977244086019446656339460538503542008522506712230612342754387867391742082600073915260740691314180396263867886249436098157586817793820731807648800947074464716896553711456419816287353687946286016061673674379285978512400287855040953907354903737300450248092667962444082670679585277047718596684876933360742520845171374908953511109961578074387486533641798442174093463789698760606323534419073146985105751714070777799185958473706490174521983703583234426101406739751795698934977582511726384304778606233322181050913539206530420123309977442202613390393845513687595114699469339529224209560626203666722273533672108973638002271836886083781369285714394331543603151497697854624970236494143345614664020857652987593720493528937119485318357171176039256090093480481980376162441251665157245272583509915354348541561796825374893492490634949741689945689266321684024431872427854072475137319905035069257944829714382973193057504661701087020368765291222230560091837940242487477591994127756722416825732090956100893637097663905079656120807382662638746517328124276264730355203182825254617459930121279245426994217305261716174856299145765738428617125163902903146745837284141198762275837787714643173872470181904014640052831753278158199239865286198407838059684966557184788771525568729496551873924098225292144994611594110503402327331068501930035802333281562519306890879446750892145102213966014976630539829101358252125470904676230175247914953345019228947078610690940961020903831136065117913519183646191329024784262174757757013436407524140961164556680393440791452206520726961837943688275529824816890659181188396359769176198068959639551376693184615020674988245869952700748413736799991951750754584853581545954933474814724531313052087489324532050828500332988962596811072394670083884909064212795481888109655308034252412065030106845013132399264296653463227010881982287708688786533446243302619217595935442997240146346378114153292661073167431196226743357916412337876268676936650348976830940860903443023038712682109758197173279460308219451845343712272045043947628138408832955340071361810561614285879949084998156716831507748090414709551173621869222604264598410467522605942180642543887424130022074863024046341346425809753744379531019574088774336128425800737533486545689523872795614992175116385677583838061428867004617294634695931083401242582234929411641391006165512261997904116482032773588358772406328704554479397835536925337976893705036518156109018497497697237024955272071874664178857757853136383522165650189117648101048347687077716883170147068978365306852461103761085752671910475501641484112906193126681238248806704027361288139284847819347875870843194049610963402828626801715908505348504570024250268225262920584858375608534238830837421754429586221929985394893427796993461132949041885967832181746397622789857429730958002046719844361074723894708936406139698985209152484672525040268542930334910175227358482577947070050545751333265210211178138416419070625536097833907175152636193618412904896915358733292387133733186464061651109658486255403089233252913767122304094168230261482059161315861640021240361948177360812935372675005604315811938463826333313356521234468874114876622656140706208930316779594446551784088247915972440044107996159835571737880662078319064886809682103548019389668609833337515567325244546665132155757222204148272959707676069167589600310552853334372421478791744828946459715227235006495715673146905343839108293258726283097708011233041104755444577931098999051247633723703346206256092268346180657043854176299871527457631290414775939109348852724280091136294755521228314537376382855716496802363297138341149550471908561800119765829970483938945336251388088896821490898413980170635352432102146707621590662232659317756682969312279780142284283044578525980867826795706224219450064276287839671660855522907420106306991777729720645785375051139799377102413867904150838579615387193754403649487504238909711894477051621368315188593193180480042845399409596718529617723626636746288127765944243448079901530352598863019604560097249580965953247781462594941863120386207935832975831054829627173934467347805263898425350717164112504507230474607524642734826725846219417348305811642429355413749157990910302568934757188052806782798249278039351923078683776293327378690628912127379740869913437232133017273243891084572480385222651176675527716776333877643961002991640329926895254303967388310037596070826241872570947752070120829883193639626533010925891834427999471883012672575511630426231096149173298538957973111340594032292085754398347958811898886349772217305733446027929253535725575799897517547993054774636980210123869584319134697222876842504899729192933045281805537381442322592063334987475807895635585216694799820676813771771414237095507047183853133626030719635887579633878016671840950896172370072231565251729147952556756929136363651748159644693927074159910262232842113797231593053199502252971897292482307685591414641939409002374382960058706205489753388816251936443456166726164640455501997354685011891312218300325757821506221277461012002294292484265257209369009319632727038016522002290783908118632005239032272520818512600684587923764241556120437607989692773088367207497614354618577781342035186374859161682370846035949874935210557095554694608495751289523564892024629688069718657367127406646644271162797193600518368793777877139867127540856472608295178590647722140186572468064958913350126758402762314374589956543121181459476986742120612068527555936481034610384727178431940458281859166548459529865649689797984649193436502568928764860949428887323742333642345230898644162697620652002041793659891812598585119829629597173317973921894910789934746216821649550996718390980434569570029481016561903919504103391654271081919229119671641458935762905245144352023246472304468153309355761658507921717484242820007114986847964633733802758174003809393790295187920772012404951809586514385900780431055001015237410410420124020020776294344504203499985503092873536538783887735234127548623728042780137242844842606356923399352053187971269252193486163907309291732444135300826085525571950461362304431677378505653429275894701746909561933057003247932205793953240234645692645282214537700517925962320306813980682790335714854338015293964441503738030044354015326392492659419895783496009822259593781810788622741856606941003911065813497453467534320062842050962048958876263449796730684588729747943740159232639007334601540920322078707482159910520875959778510759156174083100853719584051069008326439864120558792559891954406379962118509946023423716790790213489270637456816285439487625226812961208581665184612385055311691519953793112884712623457013891640772133618652009381702180588009897439713591180179950781899466481645950854996238533162884710794787430365924423819195249927946233018706133358248886013486361891136234483147841119096666392208211544876088040298153380855960662934975830982312229564033368259532100901216861679300286751066431562135236493562195839067826177395542775386121447141461619192589493780494508324273254091019809431432208740683512633506544773788522695077843134620765993802548098621850982561041266271648950964263837888644663080714746206818460314335758723867333714176903154557707358307544426698270556615285488402004323395032686824664144539140888449240757989631339630766820997469725936738743123868045790696534923796503372686741147557266904307165061515801001988730080651942323385849872126377985583310028512974259649455420251417229783666886330567109354722943673669242884038003592424415000304498836713555732173739262347284488221009978102215955274961811529586622266941199266264996999368504132878916594954795469155209269399242567753007856441698749501253133368278393289534782622729828177565596142978069766662556601338174079493028994036093496151641685811588820175670429324036285389826271806704912495837065561757587006931960220251366157666276779400272244294006407103997017326235541633945069871917775433318247557350522248247312395364206479962110119416128986815512178025240466911200262731645757917754990911364664841855432142127740011689797850197175012147414314924081136758798121420866590347514093870589011632887488058940711136971554712282348701134746282680666506420061965668617060945409258889190109712365982747183953344278569571931572577239167235557535677092290327751175385596286331722085029658759673471891225171367169689929737259457842538263689704166623960719727914033496171485887189148258438888742134730178725018317107627208236757924738437732320915684937170633076112832128403378039850881523945436776012367886103456932506176058147577731288185256331334785627146276610057200970977842738780765018152331499419250617951165450975830702129117671835333144799492182127841747053513210558185444087951087299036530010575151717956449926583967086955466564686053644044315651181826092221837511092702057996387287362842972214461628264484138939297357653482531164255693292185788909832949671029719619329892489937938068852189525183272605900423958201420742551091160255723332773006297256861302720240484631472367893661810668519729393298467761059106805691906731135256828218243071887308662807906044563220272631762015022517675300860511484470786941509249191741448916750423924094067735817531576226902743784419275219413204881682797355752369783187284520235813396393740029566624693049264201962629912675837303388024937111345801868529848408095337241029377978359330892205921811477502180165813562521559950671305214350934448074312744532539203138053415864802542705609371928197991481866991937635993708579114920452213874419969989221774291592518606635146344753031358566875490986603598415298778866649380741365884389259804112276814454174998137341920285629589004670439795986706444019460339536786941709985582424006093118662430304826404369175580469546755975487301722844082355842510680784613250751031271821831016415218791453110758084457325667984016223607652791133487983875544805364095765841542844678976104186571781950382230918896786805373028724672280348064066488389226223701646469808254393280743294497399174497102529998657759413834400614830623110060858658637668692273090997698115610113115948284792597189942330919550098855851248919228185883637236426612092465737996592144268247891007983233261220533831199329467120167161036210714340106434411731782298910027129341826364174215065210574949658454693037875720340351420334283220319232607390888253449071471183022768189275322070546693783186755514231088450762983983022630927483548440034787772043853980607154383039849672814281332504328523562797077810992616228625324343260318977386399553178593798681306119232450260096569966357009751690319758717955717934976760414502847105077122304543420796984652267229828149756519650357575258854049433810981885302440996516026224205723620811300865203895047027204603430327094235374119835453827174912650201001815354785126434769314635502460614827854987194847858793433448268971047567816998591586024334417735242740426403245154984866420683756200655211567896017962961782126688025669210271574398621632847591188480029825147155511497459962682066858868971547385059037716801752168677856210880945783369467719513576171984355454636148903137994240912658166477237664968212020009594038711770502383105515318421654132525703793705348806174247834228528034937066960434223567187924815529439029114363145158818269515898754669563328300662585595981185193487679804737995761391840418981179422414667770913549702219722323676474448408798634160837406484979921043426273775657866874715384677606074219132505932291140931128282229425524339506858286188445638088929317693837530734720170867294889018977781297622911685458220787944208449940924772100680994735418815331808907839518581700358449416317012846523578539990428017112668682324992422839376220038519126824070108072674816352234967418577244987913363305243734830818006465414364110298089042283147547498269451424257119869793270098157860958373471574385078312162846200437326083887921682785546779605749702194580725838670472182387142718478158181685071326909535567807028619178044518990294135195198210516176546699839030607732045676535193174445561404817490156339668382037282558647348262989713481670742963703886103354209529500421349310390961575991832749678499792177332356264026571415703779929208543756002974644256021194772704152640392464822910686830758094678045903061311090480652178214188959685359917945360375861368176123406428703762568556609275454280880024576191627244100448201734028356456024326629431927470811726071695177821938490098888819275941430717969307166804021177022194442875642167562703083034276813004108172275909786499708790355552718025377590719502974174782351856656904175599391807469226469331950897309139475885231221491530157444850610649813543331790570215606269300285206754559385369639706610069171687947280727252456354602785372817341715004288454934103940923175721094017473805939170712361620622423057557348399099510096906314753314160805520583460127822283095406704268650871575811916326925163121770380108270974139778841067955412023710443389860502768152465225507914124582340663366791999122364822426447243025224391369946692703972961701142934914363843452439981134104174037818992600201873998728018692368586162282736269103082475525839893057490217873068269599522342344080150232958942032334279069066289566642996262866041951593112119030722299801884055694187988727583761617643465598017994133866188988222111384567954385726969508871015377593329246224965913477072716332155604804406472587384772042550100948234680038621145858573030146742998805070766853274984391899354869193726202465002873827268250940150263852031653421529836541869220400304318776676504817455070730345725076779290252468351027457832617857176860485744248805121233827074289960718634624411780375017831978937481533560660976405017387491643372196998166772499345836602523614201156230372505391943188752013526638831341674062738724355560887708268116455829734553624353893764401619943538020521600638058268382416055401096654488942553176843106687833110475543264671564039497052008726404284089613244097021090269103099389124790662695460907418823187749458108507501169677760553980508322200380531462884097473999118005702607794007021752517476414256162926830635794183818106662593061862447953805530894945201005183468106178925655348592105899226568761892076856632863179810914799255387321338417525079902559628490549548997078569018037559301361938990643352043725070536391278276983640227937763324549176938066355235638909148585322885605981984382125787932678697553873382881911895122663404915773129628084129522021031565899637180955494308447832685287449861464651231373687270085806927226506702923535388453733320341581005039068521005626889908550366446476343845185079617560105117323950131457729168705284639261478571567191273791421551376263626068936365731618462496272671495174315201071257027009409461730099765483500359544413200086178305090621804719111486489174745823926782745438531007196943627143716165346217640629636663994661550654812221524282176716484830100549715367589757738597882545963048748769101485781170434219667096603179934496557390612383218112422917226137096158114465657364125184538010844434453668609928973831823543566672410851580843851500272609907234219823852273930008613937800470020978060832568385217975170087510467605839908859413208610151890491242168420779114128110770655308767960762061617824905397563449754723386839547918814121026634390681166918776647022133397610804376023750832335362263101935728223829081786473413126902529174385076797712500324579673975307069512184583482343862009614556017685781857565256126513411337357446306159168991329486466180110299601845324082355975927828969149148252230254635014860751103443371084381932439649237806306562234723630330706766667970509997882629930730775045184835092206024674702730700856008535444741566675372230378527124898217247696139019827351805611975100950534646051713101896419294684507839600215788856750897807365590361075279142714454311869652854381703167575811857448333558631046855151905694925959954516708749146506963001080320914730226073946141594274674790750292559667846469480808862806330677563518394957915489261359796253233774535418957240938591459754213104031210489126794424155191656606177486585817989359954273670657626590789266748527219322190505234275349650139892333362741345665725328323585395952532814160989881507583039247102218979526440881189526689223512047540306896496489795923666988742241707116957889909536450664532741094222966543912632663627899900404791548603458082990714142585718821453701741055912508269791577546748884550361777175993136486977806672373210416077775755388424615302204843691438675607920608837620546121851439255165542219338981446609442829344330583131184981229324849698855413690001732724798847679472008889040954273565349154395284617071993374732564793276163564690367146366873277489558048953119784992407193511413683317897955119317610881753517527445830919916852197678673190091373450858844634330683478956075396164236116009389195823364004141636603292717967992387343818492848778838729512909873527849445218949852072868481057673547631314426765191149714204272176014520683576953509304540721976540699876682677400720135550140163799089286749792539069257779979134576371212910962326916815004187005288940688428729067393102858802231439185060519617026892673569112448853847667665039285203895714024047091145610953449767386120459786427885255521553958489559885004247948435171876542350855684262670180812157873062420659998354696622213223638681394244801145348010205444007340783038568245234286503275180396540012524658283558104673931192591103371902401292460759107528011705360369700927791351102522067146920879966557879148643915468154275254222862797572833867181302383856145809659728391264573433428993109747865362458980706471744319520414000088552006417968003214654530720854653119924399861363411208067943696647584268983755800508348583307875068658856272825529904806037959037260446897627669335659507541314902008598998568606658546087619731429368039812632057406416864790806555419397487179967742120418237639536286309808843200177843094169640960521044476144337854038180156820610489998467057644573316930307871613457008860166896548698526618383247109614414466132571790626748986381318603746993540001063264307931399447427752942435277552883429845424984080492108874088336430628569668774529398686644309192163804538888977107129014429794737924076638579858406450017218775447755286125147384105925369651592548810135085309684811569246297414900566472852046719169249213053754412616004892652412155889949013334378357996768625567602557256593748066473588974769487612198031422822154233830469290802234463836696433788927470764334173028744449538176028597157430048162085195230557744326029125894591553118924500505707799186159524005507782772678646360742588337359456765917610226711974507126935917098174284304939888120048455586506647044549982896307744653671174740112148860139358515830550102882905691176677816160056886401429166348823074051269914345526784954110781427539214988740559181315271790281051290899852590036671698121533807232529740401675098926525441309220461066990542905159660359287251040649944686222067789549295625227746798189904547084574235115744327444523552503481660624988933145943838985144321024545963319415756559964561685615402516648103317141646248583956637300599238613963277956976436643459314186643199959923996342501071746884844311276481059971224969456179078043910501223892225767059478566322622365340223157081264607790521113058006989109250111377986051156422731487219005559021390605817297792021085414521135862527190015239154761529417886263122675326774401854895193754022009059454954915574261597963859889524916846182729800132045542405413584641228923401083818826899717110685733765977619234577951988446826562390970919009535275836383587467393717450802605788589091253773237455669677022100610234218318012625003456749767148183750814679664849490351623406522826072912628750504450481025961040801699601207713868111290390396605078242098200584349978759313837322898554287927146041420559721853171102627893976181130561485083459199802743015676222974289441926180994690926058266198783563579586991414935023437909594031973490283979923537580123857269772921592732071300363587191304778994042973982973671150220405729261024662836950593360927884412121802989860017840881921797439042010133739870730671820443479407195998607327255739137989160116970746754088646136559356593024305340562423471241137482641381785162429002227826421711787448576763327902020811388487878316533842347363368005849631441584747017225532365524282570996122461297593578888878518417135554052553122374385559774540623147670297663794915919101376172964669886261855343932980347995199840616717644877404250125422630487800580073095991158254272632713639241100485767130544153484446687030592415388406712045683257407007694343413747342101219710716959655386842507754371015400453555564640157086479041646551456327643549233100886057087285932356177245705178044230542870582978701411585847253203147944765990366409080768215380659776788092878691023839618506050788950925803908322946045420883940426994073168371284778948548142805979577650187276991755096636599852238493226791355915888127989829514429896145818497116265695571741349552276057677835977551316764154744132774555447526836834924264570603645812356804572261556722875318679324895962106165159783940385488404323832634139028569910377446160421061563100961168916868315557352646406946169008070763820515645371335526248689228151876280135167333069006654852197859446121627889879798034926675528569304604018430706555648896662756337900840835514145295746244774187603834826377566796035321716490405838677761148610479227784247344526660104977572500719774403772445862278986433609200048466231230139361926721106523686033096946855442046717185189774886927907976149514257188163000032387177829543692904988655737281963509628199914992840313889339795635350565662573462729752836189019996520942421536437289555602484120033631070879374573599439793892006405155215464199678852716480091070358559075993011308561330993761565755070234920070087073329151585101175220094470678170864805738304268563944628655153371602497160260264890585576835097115403801959044969042845965540725212100133594193813281879470726573299201920013837648117489001012353005321923366518906307757651887938090649728001580248992628287263451049467278912853438070969675586617680975451914901486296129923964341696498637168486714133588678241924775558780163172533242181879064918654762838704433349188846064078006149502526758272431812830615245625100518573308594572488781265587855340015304877409934860337941316867283246646980494299062496899918385733076615887011728052048407998428276641639865184753831601452685536037670032133003310487906955696754766037863286243242031466793600002642357407882265675198563791724530973863342848647390648335564014424353070259439574504481246557953685279554939495197217716325583442648346773254880974659505307742155634520524638124188060303527045936077006309875610927683982766864632586333626826835495434284002158346593439032872025584514658104222354518918534450799646718007728925255662486525196668511494527416617674189583373801700969318535293843010621896832614670058020256597664221598089444992996692587093492529273614691076041519558688279642817066010734860894621288356329683427420467319306357335069327011239007590210969696555630019932359102444168974447144390777983722481725965754613189663463883433202874626743696756966735595871926713626258557787777811962735749574226027494326936553021454264599290323039270913044896826582510061857629614406700854093681023525091885118001515782802476413150511906052848181919713511881149094731701208282271386363699037607163964871231648029680294863773510811563309869204471169117402508379874255879962288707959375776426961170787200566553188567900464027441836051095377704386100866588088457007602062482881708978272257007956052439681883073306847632314125580941830483026498141902898373562624249790364587999089522968721177628811662185710975993459733470919113188545266275961101611879367742906299569257556333968585321316551111002767829100164091173605931096484596628787729184434074497827698796455664277139316107631760281012821923064730340041598975831983610760967751514157103434190744562809710454903795340930142365377795788640562903696826447484261877827840506420546207288377320648046245940315725313311890426015973409168299575152437193635623045341522011374388307788422850135609441359003998273026718441523021139329582467276659069976701087097669400910769061244778391529318495166000188114581887159522310959263455475703565103318901939868947658558849547320295524753054514189092714983594543929811976236938260011585902455239045972380825044260864073485766724822497323960886374632021125507068344677329012137633506350377119986130880179841392821965164869375585502086908329627933043978036568865579235530338017889234727560728409604545051330099610297604800728271908970265885405376374449933745980789620872740710760559850089208925391188656957903063201220642078480123290096019952375996583618374583590006771560962689505690680818853615313001832389404269575201939866955871114420425069707814115993856448452363125326272546166681373217201308199398544754929139596706355191810002597987203423351448420809361836214472056598371179002063194522569088567329093869738894577583658137924003601529702964676715307614723413574416782409175747391805524142253933200751873278503613701342961082060146393170683722189410728061086361033525209990610057473024447747140193351753409985713468243030733171650462346757834088495488151375568004674039166683106744236616024115658465522647232413395882139846628721701907822954321579939159971547985455386952552578250208333066885476269142308046345875968962240961459125244836038778287862782120610306324871702951567446762966886510685682298898560644674859455318632975524765703044806343524531894617369703260222696404634063466107279796459620062068443135201260738393474196600917934959380491954382528583783887064072161674663139059806317869435644184071905086656378794649719618754962071846637619236882872857156673880928854474295696188199988159543888894724617184671859692003042369274541658051693402322270593190087897051189792987530191141267142871536571909759964575784961391753643916336105655084320603730842486716347688430473923578987238405507344731005744245818409688499805819405470722762413531348179670438219502696089727041340207231784634314751389712501697165523386484839590538752038977425175420379950982597312121037720451370153006050378950296068446594962711843261685121245596068550752188476343639745317758791353889114514545741796847212846510385960923773219254716597667287250850007294382047383312762694741399568470064346128551130043661490296105326170772835738971533063659066843199151111752284201360065278291666780469168812505015517180671656901384674789918565666570444521624694580947890619818570257160777941213071741690174623325769534022729107283965400124145305850673117090821062255145301604785972219793450220763906056491060353914857014495313886665213573748373973385796043456667673987033231607861836600148074218213609548477469697789494543476569462653943179074834697012054219630393000957919731922606698325359449457435047252193124793456195934358429250426068995694159342199427944684809848322263692745415243759539070890676922164230377730556113151706298215579849215365349947742782939581150597629589607644237868149414110643688417799049086990025948257435099327306472142681829538014340289529803361409331499794647320989020271161772280520695313780326469897282162086556009896308793545840214085653411663461961472057804769793943065036441633778096358915284543468064147992137773419612560209807079739547337977241177050063242234732027017289245556268269021736188863496394990417575181223361365130336763007619398384819768044467426645906778155104948373330284941969036720240243486576236702940862047595628445969319586212437979630691207540988967021198691413609711797450767576428517312099848783575128628065383215460813485454668741924239369225452900946383229115100618725153906683632014087827081450092285559856328454663878095997343163440307887063438722549705587021329304948837240656544566535356060730896892163488601947922150724777395385845028815186579273924195528271247547964962940942596788300290030184486979044329904219640967748984431435291679453391786540921811834680368938320990806194414552395756775438149211634845290568590455185022130837040764412748366230361208136676970553706751039169701111190263324511687957533977075411770089358441949293522297885354068519811408125690433814773599908122780929355747884414576151949386512052167091609977326747408592104960156551699237143464624487069390742581324356941796343370779746946418282672454159914666238739650686447253277618172196405230351355291501448664543250756275780557952180201064393045960170733108204455800964901738377897464909332316161728735125748975743849111190743358913902962520114783143202943444121703414586064600219888828521228958141291083189680314471199342018476359894217649077543389759675362514485465850038839701277200156404520682839807165076898857360933096185342495458044864044403459392215091193042050912143491369865709936697165518669561622296538436254320623405604767078477169133385645182438871064844936504742214380075248527807241702762067267237466421381747591483324522462577123089754174023926040701239026060648875603917327426602723831436749803899519500613104097464176525760386515794556174678279109380505603323783501175195662142727566422532388508917696694588189825869258179756122841738617330115662854964727168722187956397186642300980536469839014000078781077340181805238920520968051548318325810729979077278873209161136187098343566957969769627748545145782482175648267839549710706384696799807602183667329022881583189071109153283724664175980601037433322916025649191896605008421722713355687227499732269558004522978281763506006264350535274653304763389461068065913492345176679592122617492600003614192043480972751013477273095254680751642625077894848295425590421193559073606936397583748924972839358607682495691060453059150843286685004240853123573959700883633551420943286743073283521304572964872199199246108155955794677563131742827211188109949594478571969192678296456195052447383601169299402203091974790600035734363904536397699235568544389447878314898288171321809597839232074237284288516400272277613133582869975865643523326114554322910790705182447520427597132794098910257242747424601621962402229722080503646893122921340791532595049870507480730864942174006332799870610097238381634090432265214576043618507255858202065188612492065380245918649125494560971905679991731897218019770705858090051419237855828633878513300327364587777424710860231175712787388015885362211404672453041432597450181521243188036424461583773167634454039970781792174554544525200100021003455996830549542991796386010847738287706857802608034398977111719655490206578509394895082486197583719236818300398496152401248490572695525021340608684733734204615763050779687105376868178098191214575026024088047785503313582497198301073973845916913181618281739443879717072933597368422787277843648282100399544819985803518143080669744965314276083311435514375002480154464882832262904346351730329665461548099273368543630491346047501205566230738255593327490547361353273817483869240626347076367114090259105858430631312166269608161183932319491366203605145831714423923599900431753780607835155973387703859820249956898866244241020383229397535905455320275667549207954740060822183021543465715524717750151332083781244375587814836178275645616842796585607604512519373817387775740939953697462137045939609837469789734320199355011266226904103986425172962953034205743334138631794490855598479749384988958207757729229796153908779815460941234838126892063176452796029967512990072621072925373081525160971229297998622360248721612101869968627963939498711241155076479565151928530770308455557286395490001927307368031133950804956430513346502829294431936245496173484916399124447037137823914824119248808972915467581102630263341462466655878400541530626130356398795223176254623847449938002152966884217962603424739513043610052449949173616765976168279356140511088011326872898601354667561149279431270871005929794906643936576553928855641635785579575922604378057695279029344221379102071756760570252937080428366761271838736585540829128722470692904839707668163593851146591178883915940052279582547675712033158587919695626353097327949695805400224958801504478161432229634882585722087822495952763130300376233328748673074709993150784135662273184675694622052319721108453787248688577176927522659823001920800491617270882157835986643015008248544109303932398320358077225754219124867787019011828760187260779130018708704464287808077609571496009620310823513958583860639354330306654881051778353112091223339877345610236562863793927717264470873507624520913605210698073033240405744484578553700177808399217778282372650247493614061554360764907435160223518749229353903852158586514384726953558306030336529722113512550616882853779142911406658306729707992316342662986764534433648701849752286644987127732434500299920585865054107257487428069375036598536974534916997816051051018098667136391713468945033852312464023800992969588534227429343462903013404563849094047920082345477622360426655029599655578352655345943193831461248784700043711159372717707014164177635722115596789585342496083953861887539393223032342473160266540832474743583632957887934278279566684071429306584998761596793957409425526148406929289901007158764216403980189516818444289366223174681857083151132129396193013959960000599405958518871805650630338351637541908899854879582564029377689256427847143929331812151443006165349947660381314729975798419242007486163642739677025252253831615644800217312797517252240466286536884116726868271417878868501237980897989355924734849942624054359210268151818461336860432390658794037593719415022516912748920029826431386079392959815548153846878142585288578271654092378556646431063943179986572836316740900011953480019055621971146102850322737881044910107024388948072459670116518676500462975375767093285222820428451317864037108725947945069112822906981441757908056166651915630113203048440574439335615568721740090030068375186135829268367167889284556482738114831961145199271032857349562307754640292712938479764444394428373977463146927765093540889619920147776599352795159250593899468809017835996708806791421790895374335379643911310551866056141796861359345609228346322330438815562876208718307019052530107639446896131929753304278256943848809768028226083021023959446028127279591369336833538526232753100529140307573191637938297140196938997896685918547679057767803855403212945911291193289252031827184803492274051154449725230927217521008398870276141181299163265288644309333380954108480979891136623862883412660003689835571333806887809290297171795778814768910244664325610917984834242491262814236582866628532413439174513317102051386533267502629412492146175122034115884065587635849233245610387604988080173907559380317607002519007505022054881892230193287647174297037914615459945737309476197744304147411038324393010881857271866659425349304736737100750322702816407404958347889776249134106148405816446177747961598594289697915608533524330546961241712728598390730096544253015110306868747684192007453154522630879660340324752941448246443288157048979319507073928916459577058444391428598376941785646557657229272180739444611147544001924618707476514826420249840665209198646534759734693229215074974710321889151751002729921035676435542918614668621781597996956559750647996551027251536059228611060232211489729342960642554312738528988595079444691991889711657982255662633794276823325281822388973661154809385155019972291380133234088375314414280810608499174574184272673452174321091602883973186435785304630199212354872050041528657534308408688159745846377470741230472389434805620194333878762296720024949303904214145167047660442449254501036672122926013870257445929199044811391503859706686898827399510881346578636378092480025505185524806429686710357200354890670172627521300682027877729887589563791708463495810225380334039374354866180240012209957898794208351889016668044560275811842742639774095533676027007000364305525545710865810225954691317884216551157800678934689372357317713812283683957313894923458573250143018898738002274287338966686731404403619564620509837699298480470766426912732063799759745471780605570630980654343369708559934179494524168511070463309100242238141496247294635228909502378749369894343618826774189150789075634945766604020391095453913539936923804853642056977109916023274761136038296085543960372024320475064473071571036261248533144238942437855022100047184822922832266852434855393769568378176036901858081806775693300346132155317041925587440561094882192546168449763295007981711470135723471600947007034547504809349546347250765676424512686798816962920130415583213511154303959071667137470331157649826620838422467017542608422814119409924958274585163461320833578095167899391084561013272930471509136231970663719087600356084520461593846008874080192610782164543973997860268708045441545103688943378378198689470946596555898833903197984260046093650361015424095885981901585050518114229754902588462368460247258686811217996604120425315997546643721884254395434207966419548042444167790579398571062080277251021082294450589826218135812730333100914212448682165706158467405028394182537958119085936297528020904606396705846438454933215802244694417009279178325739446823291578620996377637438798459451257634301726612367143911824304599050300026183018194744489969458188475528245961581552837725800907569193235132738699286023599495263695312610977286554255073436408780153043537458312633465380143638655069088045338854370732015952655815460211194210457114618014169560617137749369095944785422418012601110184720882538334120085458324939631554393873042436228471205806575727633205918231488414120798609341416168346198553378812092837263841814681615156726273670867552003938484383890330894180430560079256062826279913876806306101425136023123879719915488204158594533079891382223024795471800669511649716680141763135150685579485346846643817616335566879476214363437536801156395833861468286819932129529858535849754572743386454018818230481320680233597157269080828260709934624852160865445564220325859815630999706827903082920804417715535364202367946787290379936461026549020979081766114698528914885254736129992198200027608618620800639147336852361863652960371457874425755968610358457224212220762723519759024583422131157286033165297565170836730670355759263334249833257747485091943780646110272904984463277383813634656264532847550590762958425367420104225969726864272825030875277523281546853352454381965808285504885693636855930147786150228700210976543837443859650953893519471376252789662157675654529812762963644599696438100484753697052753004931638204965365769865620695800782220584522519474677877691764139672394377898530018816885973749003908852863200940690444934682669647337969907637523288026538009102132655209301705488812635115989710888445453169437432983073796798061233255210852114652461425322438789509039532871562804883800699296218946930183279561610757850960785917525879137247037999206005400837547823780329369753286328430062597808258082431309298983615687324817596323400072740925406483010981551648864524753319175180936861283710745074609264907296498713496090980141469160221765176512277475829544746658342655652228875301129424814166154670213369720526315958533806836138048751822746925922726884065098334289475238142319435287892335232695330940650589042926393432883191475615811460979128515046379420402643266417656211481843381645943363603396461652566825043344058902737036986577315787607390385333887727018850708584731261488643922372805646128090002631660003133793934810875608816962884589211683656349593630530016755603736532894934663279060789345808210038885019633735929071445129881302390994624423209163540659367472842656755811572255724782827065342817227273267171433459367565453546082097822669116742929886339908589490480715052323085719670823802854687791598084422797065704453633275819929951501783952952418527583678666382877424205893548681447369148663785231581620829120208719685615581171304891832835689805074677346136847767600762820699000861631339535851089320228868264469203728756188010792241245742757616309298265596697246913822193188337064191778499583061288038532610758262163359841584970735135642320736713805666769237758678591043298354805806170282141850443192813413837521276583251851351164274328574783737349797697541320972278314495836866597724314545825768087059398422051602977237673751838854552126530377206815732421394618882792209246370823134368533070470803872284912499379866692656223185870368240678534569242886874592162655796707595282544983100595800456073449640767234992614300145292601629273397282284903828951141999333089205668711895583357453986705983879380351587857557810099961044121712216900303702145253512306897292932095046720533546230898699051466132719798294257155983356299033529560989274667490748279218327076872781809077802125198327316091043037566767758992804379805301808263277805727035488245762030064373017444101384444619136661112309181473950518594702150136203354963304282141603462816046544964999980574733546405087748346930828121147994133787589286795960568994974693664119904488871487979082875423641404248469464593779097677264376154337181721513886423832595850281613575206194453872099710728302112092919265697411763099605144576069392568825733354045671012274749348468216763683786331305479997417469335164607014339585869366133053161929930787412493111189927736467689719805605283548424694904231184334454428940898692935705654518001315349627053164173687355991759781132962400362061694235386087004009744705648628344836603156928119516080919628694190370950438270208140761702692661237406767042954464538594296913333359661667943000764432949304030260140579312778940376012288402785932287353596500273515912736948544830498087023373881265015827882306884383366435745643547940366533229745777052161399877357179629245829560884479455354059256738080122836979497767120678188460116498791347922403037699254015264688475316850140925823450488390735715386494334629098345683777933279174560281333247443011369472743056262536949487009201381412401586587639125122796285419582365910819476470118455337572454387002063321499208878369148042829234018660749049096165412100655480086730008812021018680967656316177387471156587839553626998007503232070069804492869334640504978897285349412131258359289647959317057721126174158253544321855415333943302727355182189386012791707598431188450413102210740516696442492965722032518631996479531119424683476810227291311375618048338897670590108645993221176187805141698212281336270780864350679489889698883196341972493096277264396800119397830150900371681018356740144233169732290398648557789012979173272000779562049653555713139539765615169479255629261772926309484217278725341448561647515530927674252788302035481938982596965483940478507139011833644493438337000644474600195052596922067810989869742050763650491095892746615224016503670701605918280161090844117370472441631547482664259383377870001118055383951283098805636678073112527774575690983237544478001950681326146257804582465201384859131186920556219687809925492504216998991796634784272863165787411841446374947864039477418388119555688080022580808894590042803173003258582843363204906557342218852534502275161602661237542439843934930279624537921988043351361483916230862478591381645995881567176523438736676727507136582558144442002025728450768214881031072551862657575248948243314990983835625542355603330838058660552259020474111075803334069942820369445598601475306907742792389473664725392508181128585302266415403999243672727166186030447990918102932876272415094805143459115255695790134574631317938524147195307096706004302898568966304308912783897261984704771973930044235954180577874778064328508501139106399889114363342520946312359439500875402188707130865576790313112769689730737614552068507142795899120271231431233142252878227546951525839240999857009132511526237217519369953023528269929978528296719170370743404722655424548211495277908867775729909309739692029339656589926060268953576720625317235132618016198807646862222542923707378877939840318241470015809730961750624446122508493286053486228521268655169163645554919191467547003580330923160425359362690714724590203449931298806170918357812202145613783594803490080824433246393306802452794966641993421006778947633115689826485940645441165231268626008874777239019145773648800156369582240268033855490884516331213324102264621683308677058991991501254388606408097940697749733277856615552478765950108524020961447169223791688215325357888584667714673043157333560021472322374895212668120553208851225055110172778324635568594044487839612970486097923643196728748942624799304833382038585540457609140295807436008946223825473781486524304844514675743200329980323376214420189880878003273053566527958435113298369849958286256968736072035639581112108602121214270487564327413858986986683716464375979234520474230121671972525445067543726924920830355057820967452386397755532886795887656462192035939122398007927299993311736101527346101853848442373025126313371779017632068943052725037792101656286847895630485947596734023234579602888038272879893440123916963899032425209559445522204090331273674736307950488595842126899254535662334310685178053837799127106548218494985425664462622389711976146467573889398490869265997666239776270843046705429974739891827530389850546987607552131335948216505204041378074853600186861762764407802328791533539042742186876746272391064236026168971223636606998472437769859097369271279385229526191686642688012523324400225285685392539393945663870370881712299269911060086660370558860160639303250920828304859961674373809828380990291650470796831533193343720868982182917976059178733814977436252963286580881450502363637366510488323007916566451237483141055829587258932521446729187834436149916799575198514190738603587740100267487816785149532497224211443708151679205805630139514019011432908906331922637895318267579484483190217423934763325017436842970505317099430128959897309492668583651716875906307971849383843300026330039030525814223636468641236911886525636240838763046191082789073633620860354598904394642446900788053620497593432354241340284055484061795839077685427372323863028245635529546151775305818307126725046538583205457016729195381317400429909229800829402320220109704313021341114647401589332372162424995563666196036338520334620481283725256418752257607349895130804206985870537290789133757464933773501975945973883792322251147644194991442494181124629074495166438812833285905072063466508242560290124220752084252974148485116777352678153135208771060785924285485017251532642401063585031745630729241915597597387419380041848781891160589416981094166929012059484152846316832965662856932360612621509334948520033011100879490575554472387744513057693806053050055178599683224479882339555642710836746821100717180838028091491319493256356533693484556150281547219141417294312697100165307891427745777016382605442268196941983850656369245967740924071839220632815880506434128719972632197681289862137208200285450618273067431729002855429571361706168372029432032367351292327580219681204328772491166432723156446255198303236886393289662626631582354854907861200985146267726055665603398681527391699901824609067013889790895574766430572673576354382373316567658305069098698810950595502317859211817416975972627557461760574875624473806761040691844720980453555025375378803312490397606905993190461083367422655134219656890035050510175500369651454533770092960678824298566144590067378274746789054725705938722319617431426497217874542886273064395113429757496266018257936415627301543417882608030448841590441091957512082270290025495596752300322242054902166848330506787692631979171105974723819841773631710883178596196751674719218169812172707827177876901460873242548070167515994068028514342768749920089826491418395027841337467533219112472571886223855675854187017520864238510408072982372470271636615009892409780731516837764713101795259825221624205367176348240731161612244714083947201744752288836779646831047818803497758604662990580388237978191031600103047375854253029998326787228270256388366306077103072806719800870356086723445812219254040355797251751447109331161382543331253435535095474295968760069567961941648056521131726419853406960798153921507895084474181737120856340942924037698281262079989512719939772530023699208406144662442159258378648255277065412095874921892940762188325435671528047329809705763018904151203156167651076513531996209004060923646391230107691048710377376684246817265624462483593185254149517429267902652729981261445807938263488054087329364859007026147145257277039198617778985477065697465365230326349360124168687547349981217921215564529036000658610124174488130626877425433136531949831154786452501978470905243702695485960847872035562538048561585894583971020915035933321340637298195324419795262954025336528912183452492850738940974782123555442495688154371600686531799963928584921152187805869420877977061576376513681512376055314241999544565981519376174835805302058661607000472013453949667824277299777007861372032369356751313614428392040418731167327205547187971236007437494949594797134515455829138188239501039122285208656516586332630364164226714984430345197236922666927499339109463671521220776598300477941398361003889938742501880918059403019790199210142185348483636360888278830277866463562902173828303626517535843634482214155872512401329216274654492443453743611457515075537786154708026940364926323215107360186125521934399913709245972176194652962818039422621115820556460205059037129089109812470285041995665910964161792998671055314562775190985648829109100063235134093518268138291618200673347504606334427007356178023159394115713069041289176829541540877689367993180139364515219792683865487861147248146788026158291688520741463204712114269956659187635830443970400555552772274286666889979289455404544433777741403299149446320178603828681838106082183453089050863365179632573697736266339178001257458011752690249330005621754221400261578178479541792947532076105901837246260107158682393051865220390028449839455205776461322637453405287700118946926051360069130456670230819028417705399845043366195235466213406929660449870080415562110945262846705347632759987944489254318497746782745333137558699632792172734175109976339403095353962088132502417709618264438438003018627776927446192882214380465705395060524624313718780968289790564484133026325893111100774178252811629200762811964172812880273063402093547282156591423567925485153289794930872689653383492384130087921158668504998211285379415499501381030482050850202583233757353054115443130664076070528303558790091789592633309176021252248738240482693954726083288138602788960304731041627125861336787738846405611384300326835571481649153686642265812281844366442452161846001095417632256035753701455306268061235683462494375374210605963715511236495442302492849541913546379780736712634112117664574050186366171714855746273275912837838438613608081765947883026436542004038122739318096760778221764506228819003776218995213577181407549599209533462775723097655900295931456332187347024563806138127893722048914866739463206603667866987724751607358286713109489319824644498155546054931714758633976377421643003938808048906614331928980550492431106469886168421840987175301410799483370273582397493144751139522720210122729672650384901105944299454094610075047509577810245211047666883144487104822762145354309264789524055849192671640047954345280875860339205580999445938419395290953993664526923622179982928397916756352019047519324995338163164248901736139340244295070366378442718588271438476232102957383041457489909858976350859123465331742715351524945688518177810118974214666599321533769455769116330761030935030223637471289482100212864307086013448727917466436633591615127883111315576594389335730379127873487584013484097251573412632314393188019997942563960738539361559407167025731922331329529729792117243140188734486456570793205574634795732154412203553066949258088542669703519684620516861530245618240467899107303431631381918661649395457726261914185149120638823134024636124684575991363895547669690323081000705291266110522789079348266753954886620623056441409541266870204825519597487581300884798114854133101357640485339979081016004172136604493520161932562404231907503132314517214733590138107510474450127170652601053105827464638040590949930187645228347939365864110432951085305056101972002306196859364414114947920921940300491849519053658351567592377745408663847432404652381012006225394980683649481310488853383390730320996330305579413190038722583057843753827954659734295605599519797167536424143816098554816871217489616356569835623967931483460205609085148104802685638370059666022787557614475734975279494541321862541254904720994996292432056381872029724432922440322321773224492745045930947040752569352838149994369847782107056000494271716086186018141115357486393594094568862241691570251865959953351700017911891648110655431007834815170190212411600015556748906530262771659066300449605206159875042876748211689189135730468204800975383481035557157970330780581337924742827292258126660721001128465079510770843946718889201657440975429162058592910446603236259846601368132512557782633391792932546470165955460662959887344538105276723851545963352674682016285962799761052278456053802622313723862180169294952700297335087463609705312667668000975540225117458121971187246256896284934551232804122102405023089480463684990519466938136287710709876778282082354604055631375352085035984878420182617380954132545693586857736190169717439229715077177132009201142494781100513481495656508354568452445313001189021889451258458118717004322541275660500056774635646044311142824064335702884883716338040808748078887060944977252887042389721279137768359993452603199432849829802595540607060508667560492027772961752208051325890225582080610740163266603159584841215589560186917944945259519866556215999633559123890838153876464087661530329713714438338770849117599634568219609608600834648626698998922245104439133584531523869774871065832702798144058367958126992390181241830964380077348506823506866456141158253524403090132523197776996421178275658501447606237494896508015243892743050817051658595454039808562120043459555872371483949969916958385515020528966132071217118656142571499292626719829198861673194365167373908633521576865100119843535457838401932487062164060183779236118925460385890333525812939640176705585860884898673525737765377154370272659906859595770358394814075905397160241790807774781226402299121366018061731991674264493826905644196873045183122630039658869128877186053887588243535479379934234217217632790833949502887264618431929398754450304772413679597668571666110039659992330736540749897602916074078349622505755710735541654152793762932110305534334916196551101028955094335724592611423633311399692335629668950182762247857705838112919140387568143081880270339437054497621594107292126504111918216686862039015505025473519523707427153609193383764294680708479000615217187419987773961651846580763050147638940810890913942009642163789135905046391263708801802348175103031571917319210931721639791135071129876930388903842767882962415803031301980721163166297227680992724552264815911137630670302061401839706060542565162545989338709114581875488400773650310249766697142901695728232439781842102077982190471534097889392146722434127502666825200157445178035360012002272666193845549707611919120631338760408305493403979332335742773220859352458430044182943186032620787881314367384885477627895592517892783223450262563709570232893461558174323064994755233110736184490524111712289281990764844187412709238648032088427999821505460386518610167660014444152671787583724151453878847454491534959573520652030486345407052570479491218352265992394437763745947421397959662960524688168583557328655621421535705164732670748301929040390970308966986870159526073828857974574680196473853264793319239924342246490084495734931457502188892938529402815202325972406859849728836367689992753613146690659481804640073984548558454975191291294303219327607028659270320726791179228278551918649365121179067890030352825509292081518106501667541176675274788030337175559924744613018696767994558472405778801594161895368744108371527367123574772197870021197716738476130954372635427287091011160175169143083895185987692758406550013921141224756334947845712920366958863053731638465878687230721100541399781465052403801783122750992302116013158034277859937020215680567372829613317711820063803708979107658150269184693215950995541676466246726535743618056952887982231641344335927738952915161433957805282961569327825099141928753136132089860959906597078424503782377028426526866111860245488421148085307405518620108143234625169033943319117387666961092272024724032370296495886963564994582578702334087987125428317388982765775764187481305134455249948881576732859610520895899568218042789074729573769700058539030044363227639888327326938242223049042653411435058850554838433453149970802263195523652912481654403715705516814866812896406325812509344221430005021121674479422796003858778186392341705688014529070323105586364858475288761078675931383617946886800833436505450780270367698761824566816996212915221844263492386031115534654075178822552236862237980872239842501582072167191945725094335667479138881205404042968490903147670665263613698895517830597360800291543509511526268536893693460450207974848629101461935835988303330735866162204363968566892673615253844388260668191583840934892431102676693835964229337926055924730598195347684126995080293476976704202995206675301410225731098782255537953378460008689492893898281107648530579502184458525365201211628295695613591111993099079310762103101795671446042371813257127728218997940059247850282536492063533200986947063315117736664418096182356128263895749808384588276487052736219081390508083335240763580026517999947072664040943472104015552558022649226471968170975661864552329032919494983607707219500237250709231419758600835288474603609223736961743790582167778443333270790957452041879711159298813143190846608678329229581289303445473974674576869510206834890918748799263097545307603303400972562277000088618456480510352251371168396362432400096496719954581260757312713618655676063199978395789427728372227254065137440002683881353056827286705610606500431547782351879027871076017733318753316948028050774350633331336713668027943430136206178772563725067407851860636682164994006713345235180736922093434407500569251085720052999975025586100584069812314809654845864154372766905593421590447590569079647281244934403385571189215575496409251862985759482970891705900269471738011731300050429119282494365683972772187174405029706587741469234762080895980365422643897710453276814829246923113283541937509632832384597961666180980351695580152127886315443235381363613694613417661103492642224829888775894196943504765806543303997986178791147258870768992845835599101891355078278805639249331102907629477864310304200277597091091107694353818757598606740174160008338114485969019281903886338284605785465245600771522071675138275353975203099595765419185617069475669676926497008083886518770737687804040327162977250582109322680110990258750474873574817262844054167915788837662074973255108308132996348522924682643676500672008004892484258910490536194441934210930824987330072659341490140278706816396924970107856918581752062877141643157971836480253788899187136693166640024885418736513274426842799038400851901050574878871807973270184461961020951532664145319802874132423216103271626545538629333587614605751860262503267157858243213375380710186504635112717963291026415140232522367317966671237312211485676582132884935119756760548520640686861578078911172598106265285551067579600223962961505022758055534403114136192436497206212281656745580175600434666565948527284345654327210079197080176657931444711036371836687603996384736379509773008161988030238620192957208739732059261486596288162090309931450378826000717282130141428783486540238338523354166792824261695180327868691950914700147274763201416134388595355307952740456736952892933882028389105558915410479654019316339523024508341466619896020729458072983142299233363178371878294000771150660634928225784319954085315559559532567753705102012152204136941480887563646570107133593991423843255170892391573322695093099912239644925093102384857929328892635453423655293302350151944558718997053615277553703197708469057411978051555937397587271310262330372037545577076751720444712538476829855740462512913222999111783852244076869548217738069268119817059014417861618144619111067382118877693827273855977878490355004255217655183611450647410865854923626399543429083299980401783874318388990554887008498344833445387835154272015212750982797477298990095614134382956997666923662712941996260464091881027715071845366980655575806824080470455380576024278755408282356876056786212350284680320713048015912382646490815881895301724194776975474353962018886176033893966768198027562998831886037199736664049947298552165184111280716134787424334791559871184647475401711307600979639256844979953530334408590867488062808629988610904924911883102517769868259916053166276914839673935173457019780650473060452039416822924049764540655440688803719479790089046349127821214508600258437053324111937262982865619893918574058194353034956015831603300047375435042631236440745029542947100407091922702582772272982819291378268819618771363610283884100114397159598668621690959136536202205637442932264051283729368457285614594831648998902914739052556817775531989918114668170859212926677998304278564030962267131785950314896752254370934049366699505572948030962118497138088490424488040451490004328681616848829274069628440594063696685458233715035846421856921665544718145475329715364196692037262830139789347514024645452450687795008260154840548818790523079945009065451832936089031633992653310382752136126409842152063302787011405137980854308415954536901014739563645113625173300519705516792320325352445369563391127135141079787758100749856972875007745419627117611482793103334171071303249054047844552386469014966071892740175612785138413666858037144486108101498898742899932921633477020493668565979664134257821722032521908244614593989415481355632399163800620029891141878843767560956793164150909524757509452888181274514601681178762964704053287926824667183014393773721245056879203727302468905577823965215770877518483461665871726161753800058682579211770151828208868573558020780446552426317126351687546587154523368780618648968039417757241544543506566781016523678556391414274515732406741669534672099454879858452622365261073799793701610657297457850999830482149664754974705923372301415554725724670665326719001640303827270412950774006093659391961165958661758796182402552291143610889928825778575653964740219570334761224484921454230921003951892735546861749653437775547657208181696447618996907321911859113870041871569923622344213685195656340806859320983469556942802315036869904707271175731935015094468076013049821242449023424579227285806482187469708006639048137066075736121795180532922719358170059351016663199519870803008799776673517502801808555309768634969045520447944946072843306793241078383577522035489565892941182474330903705923437485860955788114952195739134782340188329157544052120099174109424076080893590430121454468606887772852629596362730617095326731837289207798728386474378796776406507149966439310333775679549810899520889732822999465229828726632049508895208591629552742119197353062542303270209391711396866962192851309671488327862305739032903222188305689448763804491348728065530313023748834213639822544995866076638430741008997412027752730040599487040491600474629729123099409762409761740994526677183138810409647252568577579745367382306439931432555028493513258545427351921690490906450919684628995094323499775250143683543521502172736104511535666363108608518699802085663775965877623812700810697559320270724209386336552668501256637351959472411167461549147494181037369359841517818391339478946396743351853752547938002663719990413402840771996015166143371305330452728457701898346956130356739444215090985804436987274497982755050168074655556312692800769779453768797525006378300236038786212453485687782641043843076364540844150026332133160325705748658955525512546066448264224565581335760769819901610976401754106201576339319762495397818976024829060183347069734475483126073084486008265768201593022266811471868361331583489562655101162999065153391337258003213238026072887556342594837751955835242526559424738273763568788467567777864493149695997343961916272542450729154663633387225240578422027856504772847416025742279669669424810499798073317631935662672891833017899479926125245602899003322251384273284507250377058918346154516262463147060219213876489699386837994195139974699248221951639508475221179098029691908184079723819516159967526987929812247130424368028547406389883057270236123623718688632922211769758777484635129606290396660729082439803073402384291050439483352647820686452696169038813509499258084793362704642070205580523668171723082487750351747361772018891408560464945489612242382878591038543756532940765651525730902527526461401518631396701438874793229412944424559111547353792167371174183781208701359978952364999102726457126977814485027883367483065027492302599941111980923045393669463291851007800588046979223488315108200387338338236908006744708393505624704772872223837256131250641102176786794306534080017492313551281917412276103251010215926406750713258348073266098208882183620914041521898274680880816754854299389927820039844127725603580965621873762131485939954217627358412722694880114619504252257809542541138121450483798170606956480853736330425033755340698465459245394475255899628443844875689382574958380557204130025131819506141186764517038850315101465720365757571708999228073267612299331886178564349222403295482261294254731199737009902579129593102635558771077891114637030457295788313033390947098591942222999892946630969496377866408568601394829781611453795222381586978888519006527462658303741099441564935511870755178511509952273641962128869458863694964228110484195661567750653834215279876775463048829420291272455298122162236888702834188479071111578134974315484520661721000297119879793363251023648814407042553101820991465749408436068597527017056248430514352327514821756085797442926749492150282878818838991759756358760493773966224978694034275651290812417471749446501617297204638185849884002199205754918939271203342376383096074787239390351002616313004221444795092029057233220832164624203009534182125977650709232951335859381184878943157301628691976244303387334208068653842894159079095633576743751475974327610912389196233604449666603562785707038139835015169887742247837529587454060688395937420749894989408778196639605335337705165198461487632941742023601616945763116950373517913553018114786684076487765581027476692416658808917477141068859777895604611334113977581963584639728659672716639857038717134361164224914371827928069170647217473472618092659915103439342141174584428882125939538585178428043496517886782588050886463467511221982360120574719519512391051965646645151309459269359131310213147399107563444454126051748001264494610316016495348707552105791288231718447709558765925694299470687631282878249047045619852425142762435297545090558950246033624976598103006042183600941345737891616587272588196316206777711087563785738914650080409861932341373038158212860924627159802932439437488332745136309933357078527843816062082151678283639580373830932709013345833071003883340201250465509316729473733989903918793856042303924556052792370933708359655824980758265670540351858152956714081380416732492935172535283999506098506048519594549373128168218343553108366541464134197057031272151795458281225668432347607177718258880858809292443789267213453582233707287259728831364214284849098762295132462227430246312610197959481142756271621498459076293082179455792030924757336676270283928563453507979553832247749405432173912140647039269168248195912055394346193057375182276184866735753981968573154731817781065770031486729735889112064270876792260563736675377304201735143071457403002270745706433462745434057057988754761782114603508059142374410233837475987573675181057753314963285693268808233292195452653180605526956565914400595562750868075054035389669196843889575431228604170391523887837134973108715819046073519359398947895448956315324551709141244736721606521158565059941080715611776231737001819755680861754421765923280471889259078820620089244318667026167873401195365378370751768385431878749282318995212642588561945074297046104392861943938250299240161933540612061280874340470755922365728552303816112052370029846455984449060919360370394350058192177411091280940744160471959331922770654412090740027722778651341157499492183873631168742173819941891515354589578197293582264134072571313413293773148836365141312812040326573415398159875116613065865903884659192915306595046666472184217327049733366976701361374017192562813866541313971643325745928008339211413140405910731380169090435013804902745198572632110183070829844208953499817767642563748725364026183636938924748589714405890113236600084834909353433680920107860108946877639653837554885561970642362870014822998411040674535223772540200132105346892323562030580798384733317986447507805124398174658983175445535933233169610738997059207204519686796516080736909860096709765811733678180691654416507858305246819044785963938991535127133072039350935842587083385167677038695791844200020626392909255382321899701416204383800560474691172894167222659295648125897634629449440669674546130858112849179027474824913533271412192979509218873917125411068723209412579587950354266162677977509677623840528886761868278718045135133096771659040732849731004819728521897701660825492321029712771322778840924992946754800367596445856035882101802601286891217454104910795148971797198410683598714987208853835433542442476052800447061017685688644041526649247032447947342115875841299751363068975015333945677120258369155764939669898819667201762800940742119913912939189876896536364593407583935428706497197190181471596986281646917249092803897918047590892496819117920718865534319965876153868388557058730037704600011142895125828843718548846152029191409869678856383864321491344637442729927304837291690822616797665615654095140775556508780777483949098187142059737521844694236327494978705433962606082741443352712531093693938392807175783146347681118858527863145048339863411819067854193925372592096563924302315257624678043064640345970966657000218795357156914869840536658462629753008023211363933117955438428557263071028787031876083949252888619693892936838962516477057085006158902542814633915052685057087981158865005466540613039855080777388813852354489863296373278993895633353067931305199034085093811768917096222626750696674707355075633051102484637589801614436275971513704908147755838685956310300076601599185226704714288346076561592375627853600053776670663213127772534291576773864529528429619540717610872382439883605616230880489162059691876665915012687444274953522545655702963858800716325092115033284800527067056712032586443997157626757663712126991103424782471216569026421701889491016572441085839167064313523845824267600232160640742493804382042205527020129919956249200010276540757995826682645985232694556855498300213292007432034725242657620966838345441258341923453324054933705121678217275462580183212705567289182792234784320174111091909422583587936390212332399138958022003311045814140987352266367006444156859695076320829518195775947678681101454205264222790352362034528964752958848964665262153919598619802690864965940959228046939558025482324372455446122361818162703267530402031265690896969440223913134641033128681058660510826983903156830921047740891971487682349237990690640936302234854760803354653800568391844667423291897095338984089536716868341938542150952306626487243796350132483535818853350530553078372295333304479514260610538274515987158781378676116219750381438923101142393056517280502495146564066727189680323474814354935988228027365955296589426654576606326718898234696703812668338283121544831503712283693025100533979657694602167229385976929455287540551551549303860941837860580659463612516838612831880869128439391496245694944912866270000275709001121173700996468039394751814235147447232755816140648600502674279180788701184794092175577832892134135025986033525632771640064551034294486576371648313983234376104066713187553735571975114746146283714389830913138021098691201775127665875415493406363007777048157237859955246834448648074930506143346198058763382545451904966553465112792624821740054076260538976758486994346067454748981184556300150858051214087742007696013952485214872367079486239782169745543579330720507212333606205195623012487683770770828435807213606491462897988659681456756201359261531452338354787098047136253423312677060890380782834049517147986027868754283740928584051631734175247358263203025962592283675554300125821146650137663359972375136395248086892038001883589646260022005985731196023413454955552652150103825454631920670848094598739167179129143454108779226646330893692959536883856898062445037118006508873504287107422687467679054360820795803119381246848534134139611639970315661104089545421798759303865617389893622636172336509634340031739306560964282103128626631891606052513477662238454808248707985797439983933454565574435620167109273333432740310748404053938184309473834465437299082512122909763596091311390067365480925642773834592270687106725848135497084816138211171586427198989494452265922748438774295261392350103937076589585512046368212903835152250997533420116497027308336237242651507398997711077222997993990445403017057699212121147448998230795277378978707252227295966582705867956935602912123813712553053034499047661766261068243194963149706354692432146524631404282806882602537776774807233818181729209983629802517675828977212441231456983277000494070479962230222217142806844315063701400660477785416593938556234723521575965337536593335881348450963555812487755128866049928625711346588307645426455625030661171718382394759318378166412963731062154346723309717282567017240699634463636923182739496269890121027601423848162596030155978341177023652248552886170176631480357144011094086791592567891197142081328332571291069903316172060815144139866680480374654666122597676444775491688287023600125388358592604561894177873932969963911922612158377331834052332307946634682148931480654094930054434883997992566883425895341039176772048417485136584702092703696176978067082546444096856237076747112080659138525553305295446250801433791549627557478556372968283771733386601598054229183618320059856464832632055191409011598212378784261972807544272568675104956538897003105690640427960737213860173944086959179928758936679567257441831174417706891878755343819096081904663471695391200959598968020705755712464974249761047022312155064226510134843222469681390018257913765211897389575263374936333036441055848456777049249033365968128257928216738051259182282709176109235045883307479511068068672756192515859926972311367417890236738281756699653281774369822689604975436683696392021766109667589503522124587728954435575991603338558308964389165690569550521548809583106166765261752361392177812496366916754911125307197298568814434857237574965669863772892934379457725765087324057435828672257509933359369301663962787233280561339680213758908817175332635744319702892993144578317636923741274362327828426380174391127929896249723017423111842182377529628826638156240499041914610283887381643456739525633607741820479039230655449845785924691228550694965102220633590361617989656800700633450568044463607194674550244463275447267531593650902689148327394096283341758080739429768671735256454109301612353197206203798057198120633501238201915700405659536521992937507522155731887507703023689724216026823454728438650518693243418530800772194304283339820583880351630242222258599193270960915304900514226838774251972342832039938220664197029164295045729077132979352961721032351122204646303257250233691197130941145080690707378448841834942103587199045776628637105323408681465943821947409664549003472791028762444506807273909075971220060141536837204484931529227498648049054708820997204565642191094707351306858232704091815825320549586824278359985433542847397923849558839465448960853695687765579102264517675677781284854905685927696659428359542197000529130563365540466366323323158455790135579739813532704364924027101594853062333537096216236067341060972774686720082832062630364245848591816851545341086790130008924684029565688319248820233721592796093687703047078028450013372878064559638802130793175919744716392484620730175491663316919976280298351718768410334842332553776639337101401759905348143312654145812421162058890342809448704920105932190922587053393467334309281577352742783760087134301409546330835609962208859139334746582668764564651618234438109606489474043016847815192820866974217177373668804576955748213052343388128216118889687892143816725144300569763016774353364326705899504790739286605608546492339294795285716666470525663994023716246372393131839369529450810178158310224134796902611354785248366235413379300090691271771150801432033175560872101168881458244109785476308471946228932627868511398992498450435328296840251113549674223442576774269125260309590201786146585939112797658637980206192011726652442575565216725239500128322263392993277142673321582979043971928509373298558672328925219737121073364543516164883175314170642196738884653184022876432019536969215657418654622654173840007311672093904656515575134185918059540229038913985123084092225427498057483160209025079945970847358293927554824141541101463409779730300599070361776768456738312239833846903945694863034846845025371579863176247423456506168953212255071665926621861371719078280008237282042441432958319684346830375504611708335558809024949479437879600476425899577253596627966515828965206916524795029244013495117282503245314388431312647771653694275576483530416355275288314569415235554063163284839335757032107654502325796710535947365516960690056302536487733036188503364954483406146614831681083231444997814239876498776603013959784949903199330273623393983300817217514842726898834837331728177497263056657567101830754878490358060078326868337784652950961798533121435977432700072856165879600190035983730127521237721079297895139243555053797909379725319309519430689373892890830499132095742235560520308395080013603693616667803419669640632120434310200076959942256055501317797609308546338660849460642386253927507204280214151903912857609283980378928568597190861626807231841896691838576010479834406348639015597998814422507683079355233140309077266362906045064949981104160048244017023741449096061163336626794053626788314547315262253877316553835326066551652448597234652343695804970490042512455387501111391237149932145375723184051813566336049427107235651997971701379381551894097706591099728018416439210134329027270593379932240087979238590775285417208742029699472156803661106088731469438229899035436223981641065895934173511346199884616640189643354218321478928973346905614796870416415531519840217278576713799641464810445485787759703369325183347256174885981648615402629194205391749902162306488741315870721777077729812285066118336098709617357948553567688604728970832653348168093168287014811176834798479970660900243233510962279677699959855699969561207065994849367963108749259861005199526026312057428333979099773680094090348988778746199842459568706685093835816067717944594040366871062784399117088332007872300648630607588674467841689770661320912623049477856950836578069651649306938778721489099571135524703134442379722446110829154493752313959735660885999324739577505159391968962812522629488916764449124448320672347127206830238954537045287248404697702003263570854958735585154429381740571228697696534349587490785832213679226861477813861561994453084316459653392602304958827548357549718329214050248780804169950909638168578308689872005951891253714550900934212591173109887745881123036249655785796249356114742290056906625768331467567533519871391790556187825738111979454198119253934985080708230623777235853424137506336639352032438200656655721019469545073070558655087600796275977229201975293504033958346273092498899248302285440806029473522733691681904158460895967072077404383686451629033387199853410752624119683978904619893374170172300487884307362067116243370967732469574728835545740320396970330501113904188462600513212983069320138645105740491435327538312479567285428011045668636773759012103734368203147646316247049185436680203061990433322924314188873279132185879979407232678549218195087515674629511896024221860639456358471481432086405874382319440642254556453465391020081367983373986035724160083174045223220189854063842231866463853166366807996156659835724718761769327086900991107897536988855794241158905081716370091607608536859625031918929937624873310102571149874384743082803465500679525598257376075164101609997666607988461547297136624826858269945287185729785469767396665016898455121587974271108933179381648960879182879924093289540661765568387627943839546210469703427481283020817714845938372040667004521401307808390643134903943453641655013723951687691585598091988129913164493855211158028613629927479874583908604211685643317400597796071607534960940649019808056151212218514908535917745761682126661304467948941067875343546851488468765710829504873618075992666789085695946643137161502167198692333124242549381755040772228256711149132701099773131561394866059658986648352251272420047950342141662474512306853957986994023980711357972630619447266579111554400574174613442820478497901533269153309718050639729345392092601966327762835289061555169453970112588550319629747383349980898002405474495748663312442342496389142543220662504936736066566597365416869557297714096924728727862394280780462416196243635859015629592896320424874432288559673634496044694249092864721407553632977692982252379840595094344684503790844494564804093059648463531112324912587976398910973498309655332555358094265860920737842149362313596984354918528143359144619967143327319071723634035633402693182232467753254072283669556986713976607854499365317820503103527466971434865373327009561673646608883930424694391228917572815598874978423252770871575488369500407187235251582752828897852644215907269178062366709149295475871618815603404393096110187331797210118416123847679346852059220589723189723545541794770341543376278313038299405061480211806610227940866666135472686375368074147925719696579869768124083039495502945727424391471890907477019953688510468514684688415624729429527155307241286754447042507417620170628115295473593900722203797194233562766483986835723103733603050812387214000728963443960134270829201209907704926850540168604884400440631418395682223532977513258503199272568854249784420488977976508869644001498996463708099834384146509698023249390185100211062976504328677674166701352165463717819730496404596600565646023297269998374069184305377481567603346607494700331977558236038059559827846462829950128127013130009405359570289622185113252128473469021100654309959468475153435336415971863558992074326441895700842634311104533089682184892492806463706430074521895270184525671340791908115832394400292302557128284190574633842923537405387023406075779326104921208646506738554802349990504095130189551130676321412754438172883194335956006509516203730537050425321701240765794881064524809023198743502347003424936134895013688488210837597777229012224317451974631754738225137293793721611119072537965929654033672526410008223699032254419030642429970929979724241341126825486826705190524356508980743931273822565238100664208610257106483036157422258315222064569966819725883658826619306881739102431419130107239067525624445149616248602015809266609274463984282892157189694502579629769655237022075404976494306327670625022146150580273464417139871688560710972658744822383310035949153334041226740373587650114227531052255271483270219875915278476601968988789209783027977117475711871725523480142881118217710259310890123518113632764893701226612149493132889935183217402739134829228580408395713642420206666092088115067689763085720365249877918924010191609120718960580719059581883806657554295466149819573684420143608275118631007776667080030143797729816550084268922632439866454046044634574437332796183433719628051111105128814249614715082355133982205135220335529911525959574646678489924963795773601381317667573898211409115304453650527717553233785822661848396139286646054481373527480498008150773581396830571668348603152601867448940142369494888965657717893265529958876741752260312415417084556418501736536529626338282284034655144541619285351971585274732389499524670750169975345389490378534977715930625136206430244519613142203148772250332382840877781290710542118980696931595633379691178649750360553410153849394557306643049357209371321583236204621043781690669429934641987561263895372753612348280698118088914764122506943489210646654045020337841668607207943114478536622068801747370524430081120722425229702033519430147416568580989239571239893841450952594171796057593064953701976232791405589438827979602032011559855280843504973976853366935868938512057040500302077402023891853618456967724172722129207518602629443531087180404752273805511438974856580913846297505761272863507311486970459322723832615344916036212470574451423752073284785570475574646652183358834547723338296792237351430890830939548004273372107929399238974027305383439041332556079802901806474211702446580618337104257987686978279218108437261402573500577485572035513932136232899768051398231121249219101081388253749867693399209877355719370600779067554525115956161600853524091383721301336877474768139554113937426783363898220342903875394975750819160647606190671433484572606638850049615699788313880367297340383283097582919224067387748407299661086140061989176502845571429546610359906554478077773295127295218411148919236951926687322381830066046417855834053499616552621132731270584433881069926705683762554475234839600984190096959950086039068847703843236365658287897647926382509532602929878036292407043553808881213936822669051704449836590355911078403619282747991957690135069206727204714079248554679974637678753579007302196325722468863985141404306942531145584997948043305324331110582731599560276588752787247251322087790942307512112868737972095703619427855611602526734047249418976208616469317001415804470546239981753482183037172961364511368165607496418984574707684966559849438349003682253897209184816866948027857070372550160311842331641504530809276211619029916326921896329938337710554055425353027431053044090333689652265588739662528891890892696311232573203276015747241644158423676431126242860642787653989907000351656321994265705462035461827918673036824217593140359067167594316135381616429705986535508365460829173013431508110161910621049368104331741324766501145352384461167921443737579726423004840594051682614839660782848851204572549326451145453960689655309869031638813367100284418423020281218834977883606866149234114244948689990065940932838691309017590380262877641570357594600844436115346822883202218759046966126707789735493788065427481907472752846742907697918865943632062606798138523970687904596748879681152866636280258112040269173863460284294877122278013166479985504122768535383876510569234210901539718888357768749564736159375948599341112468425267548996250499137595578729703904148037184538140436508748860545682102424990755193454620431739988169628062019167738631838415142449717686487107559742870087415537962629259276765068487520068892049859442302260229854456778784641068329416785430636140560968345955723009881056936461132492726250155234253077777182025531080055330448800014041513848110740167423079875679863146465989130407912629448475311135601914140392675629641317306559380387707705858687119466908014004465356508070316570179385439646773304884369458698737529399812049346776512775066631064310204203557641722166174192623683816382632739551989775352777587705776199377714681776327987109926214166059117778622341809439094683880077563237261603978956870460763310753883978636987436559813085674127182596751925048461748978591532106105364585123893717375877859042186659736876322039663613957592730333851604729239942602752815409436154378949446503537830339519591728155141745002131800974606343503777956143277085392912577308498290777921399150983274330622743707034245461249365149570457476840587656099622576209196112007722965964451004006144536640013120355142411664127944109616794474482600357955002054049865170742138914674010066910871487852867751464279481141486194790927536082209770011933429817687478972895622893692386458846983939201490815553420298593740974174181800988104994273429585686279688652150280302585489700623626223434484341843210674339748388086414490128837200639031254072918751037862799171050365022190337586874108333192810788913381461867865330290103950146932194938014976172892863554676510856934227650171809895174105071235859883730937936510512092332630450586828110442582410534409690408991331294879945278304653978580934765539091907576646029804578992922883134642829615638502416435899604439417715917166653607652924208901952356334726720500923511068865080075666791473468789104139054155148835019730302758193445697234426581848028884959316274760095622352238783352192634054046287056064474148578333815759784291356929119698935654794232811311564454573200934760543420210036750644116325330497831502595281717260705496635070574504778555379106884146855498991491754572355046684230488074048655720664719375933702950277503606244093587911583573263988176275047433164592348776012317908075341185505024264344271918296928901306284092156931566152025102616591162478930402842571101610021836004922401031203729407560123914341217655360167822760238685696631185640664974926948294358766251305926251802819668905984869510672926254873182138694837347554482572305773268087888804881505396454054278691043170255521490719033813295535570722865638112353655910262958047964710353959919629482694328536843694831286548308945539662522093400559017201607730136539673169555267911319836851446759776431813990980242339663061073361480393544565250842539170053344373559584135315401733930057875863404360073463192140872333677015409245417337753442988920790408432170780173895762948849990848646603233614257936745548628074043723655988543530392682201550956236233500671237910580707325385704776370410419721985534337957112561829713834847407011087426435226638749663236042511709808206431942557998010095816211755323965274606935537155798946168543163820986010020894770379992207698147559027095648719134856644118244307298394866711594246636545532669392924316645744669987076147956721316340739188373551797973604391597154821326022732956339464431868181416187419100749945882523253643143068306272052897516955304401531359818588073169174286511997853109262438759700450685062723186539023382375969190622653161381891423493436906856192602695804254688839035234120524435058476769035139222249745255332794500150591149266867947909003524248564889114000396824105431597984516711312340690177617002301671684506577685305567826695418825857224623497518773799116060912379320265163009429169166712787912478142287111464601132676167007938568801028235841649483675885117644999260916146512737408656461523775196572951578429120106399618936711704042400142111278674253492433455618834117779905294329258282905415665453995702753576169479701216934578712906286550941501013187708671822543485568025954842504299464504348128663923525521781843911860008716276191528464084584464556572404295370860924920789222941401226086655894151504202575947436547484970994812241585333489874219495160452737003317362280667536764327626516144500398487126302388709903097189008053456439259760149343670425024209289870123035864210408472671301893989229212086182375466866829346017359613570123607331228933254988272210422760366740359000219071271446232290596547091322540975533650653342496554166678371725927179571488789176256358802560120207555894026093107321316933809406231161782774270578929675413570161333712764296025278917743975017736650727808826988410155613877769815418665614632593785055205511997879848378537569787866170842402104231242176541097691430865982933249353324506648728951340726942307673054056019701198695967266829444419269605426695179912632783694231496953234337433622167340880200615125120173979903501032414193341422561728343262289824983433612599826285678081243140187362003934787664132753951069159674405803769450230886405143638757873487019625024375954952114209515400850792748975100785396223846480755665425835395010068711642792089872692030437033192830916008187454399007844015338357402833118063005755096641371010133279177557613687837870473338166984300892847320636837741048412477127961684421214404694438272060202341118042084076004095266015700804871439045540334738806431226122823084268798477555197980408218108733148234222755756577407750754955944472817475306861768823189093996015228910793079776969910361162795883237986005381500930135946636600246424677151883692676064857486908563885848490089776488769104600266133327725714601235514176971822700604034279151151425644046030282035334442621691476764485350757779329845104003039294955941575459677092061268190986386667655282292387927976883419798397023178001965027366540370519110238116732188210886438619451832808382087366356534323199578744900093706276646346067386924724113392681786551266510212494493007898979950718035680098351892506358367965682145126131957198546951374758900975707895537766894973541131000213367996198436329312993274511746280112207193627289460568462232288461531442204628810838962487238474779775110496727506411894065913701013870514917065261587907730274034720748393510117660179894183407904041767085821610989752055309476244767113308847925298357392452596767013071740806455624749170891480083501496270564767753233988832170593024981234942146506233414350859861407956320057057036786553900838713294326341552269491425835567594771646101496628578192106115587530658006239551117824582313594045170684886102095272482233057366835724136934192258417942345148834131174241547780144677329193803916490336631218422635461402094107495797620344852161100892414605201596954412737748301715050112342977456035834747674288437814935782888184572595002890712980202748430402574735316051966215659290056040007111397763682791509360868365852661252499378860836767389280036312500232488538834909274880727540176963431387894991322399601820099859713462387325524649895581032112920735523998283894661919040066600726827570296207700772586635059763227199018014318539111471528486748992570383558299734479602141606241179173043641500539701635227027996324642665456072531609335651399209112277608525877815266490628915211067177430665482108152176208657552311287637137856325689108577670924437175983992726142626879572766816265880181758089394978662855080021657696553957198368185859424975093661455599498722211214832159635742394375420740457400995608005539237778570268632489128632239580449337514251454140241750646156762186074395259862650806053813318022895875156021358475281639514181782757209112290927666753520516139984752086683126151282775511120920022545339650026132055568576386001769830600391773435114994912164148182256491023183750365951099290009054250172396789296149837544697742015390730571089050363531348692261632766264814586381639214194358808449950994107593186046196300590432942155070796184845433934397430597621632322139424017877341428786308750930892902416641071428261742689171055510537131567702604166828092234889321408838076946518733825670176605786786878194562792381683767492777506834325771340654236903119183685216039270818778025586946884635691170654957126205206597923205000694768762792800442291581012144172318810324708329694980554125160587482518266679336685996829589997618879115591978549903421130832345291567860211553735270430271180785915524949244868395655696778043775459307421897880881050079776192419167070772536885473490017155198434094810037962011533092647861822426584692608102479445919101598611300408016295193340987116513161096580654523992490072744862659810187067051285048627616509962002314872153157462392382328739107816030997206688461631171431708835220644355523734862070697401239243212016723889256541010527534760723716416767773540943623674165145177211778308630416629489814625199830342156327690954812434701010251760744089539406051319709843617048528647802948827812279178396844750527083927268997201644804836889336192659082799593720614832840993228293944964161365571677691042250241854675576101390974673635020214648732778627944243923709364319699288562831811721833065099541246518272632608722830312327420204742418454828454281182068333725355913944043124101053226274978403011127545126599243917260731961988498872430298593008807872861620889573837321319608813778694179688665610375367460898546262354559942375320581847683872652143307188095897658462266230270612568931553924244293737647994521308837231357287333409936565314655682453278619377634790940574724331347154310740704695291839517530192892484835701618653592491204768045652212815824998336706828836824401841993298180786306523310203473730238038015413984036689010640422028961453372769265999749098485982003606052578257828780973609515314604163706115548565785384792421204160028054470876491234109914323769186339929701800353183804968481776307149557165093808588495001184938104882516298568654663801812562658677139864658235221573630549922565488643506076513894480541968147801217320589838676071914071604162884147613826549076920878183274453464521282345004693436370150838291164951102705237834437647651044808422472657628828627947641012470382944591136344576258769269986044463476245177331231642091402990073657745595912979212217423324030870964676776587930608990753166388447312961716495003617357997737297884832350206452480051179909451849843537178375285778782992801253107201422314318831847476031055941113804338494033476033115841842233022516411929234601044606252154257565130715195355349400313662722925062657295634323414855175354211337329706683164997838510761093400450434822079228549672501734693232983778570591690977774572414163483903815280813337052649621719699743199284251922736448931720869232826935538567149668087464505940297133376495721156312256979154065663966630181326034945651523871175656164739709119052116681311972787165478755787191347141001850458760600758152421607045676584948558746669561935691126697635918909152939125719159173351215597601654521829518820904180112432876362415834205027589520610842192656655928708022605713986021343785668318490732164674784252471771271494309749510632232851514942573332731763517099072318028587923287421384801058301647118709361692573000942486979943051914289696875390624298011746151275821115896399152509482745960840493441604688139956240389934609380056575296008178306503444235089689601413715173049100683352075605403901652858057970260548263275487977451343995748432973375461612051759799512413278530474803964644594961139588448438874642524114358011321313210022306303250251859785000686870236185671376856981112259663827329227506129247045686592940895384725070935747653553434114901737303225405526944321645023720596788060450026763427734238586554955378360609595240133255358180047250216474912747895475556839881094680403452754409890321841794021427806900280298968346027278931667220527512401526439010229337969400549286332498026319357389677701746679457383115871680144962350144938498877185833416246639366051341871903492951263190212034806526541822623183879368967247963181599849793189125972163735040308771865051468891369848054413485860045950177574011812715011848403378730819441304053677843760733232338081905053810852716064905131312867139345047237729394750488137628863098354564280848205915069424026243485439172039663215512647435327212255048211536188252087950910122334016590488592282364368561783186293959610770059054471845739246068778017688060505310423761235535323841803299003615938291136338666592220527821739283024146070428678270217511274684165135655940331510396480621270328518219027255766806494344313631847438219257173236219214029203956287681251232319870265394706014461275833587195431387383555504661384341833070356916358860326698980227584791551599806382827849327684285499408568458735319398156037452315599981047943868820912456896641419269276448522191999770761765723771202430825569643884855835454324465292316583324684306979066861668141950295504915979610155885728911983572806970056668071193606383600645918752179977468769378356130371342213127800925729503775650914141040746369206729831123246392694474240805736582749569879479616680723507179364164595767569645352982555114666450472372331031617286452591271526646628926776194542340708965431714028531712434663348319099751264281486362121975364716149105788014490996426729040129886227073519574866671905274126586915203004653239317607553454176622369700860789573407035201488185031737847977787554512381267500566330192635628466764850253241158110365451620190921008792831702126687863556512950572715071125569841508819819348797245752607193743092463095923734585814623679849489268578448421719659751456584793007171124916765799628314074284621978442561401860252322144131738503536731660246791391476040793657295992614617799329803197771937483615103198138403564369128414521346081565962061978018983439538937352656632481827936287572369054844445760274190114607487360836098581241644520896491110462396018157440194445659816352314128336544927849267986473076605511695622314762613331879839130881272618789577616617000798738933957578311714810574639616388123916257298772593765810927891470902670359772212873729301839454842906716599532586793752901767340866128222087528904679914008575413331518735690806504746053222905470786932335373464435773146660772292415611303713632657088729801013645309478448964524468223365606949401296657208848738695912128377729226591596025538103728144756198636197641892727106059154191392154782587421297769600579371828650080168345409043440889855560056868983960140253053537195721979324568261177247259525475595359717378832751713686031454024286264436178685772175179343205380544001368266861825724976444037146247922756823198917995031268836225608568847116368607635922978102116580843597077411036575921069698426394070092811729767641148779939953729410124421898874293210607328626858959989698387003322749893593023540944620904719671616831347024051090086687306005461346942604723676933720507463888098482481013677539709686978144021976719835380759704257425729486645037348128610499097909728255340125637380170268558834582117001624607285106730024523947054430961828375545647510391409057437191672810529945927950836089554364331266625136446490331459985307496359681662837480976463696886944946890965135875471669921694306095746103803909588629704272709127349257778618780325721661266594473734965491525150181030829316012345286758378848498076142083655789291750633613092824310251017920582416247969612529588256743032025366716017958871337668117702006541215165409081221221265676064267845867176259110749126135840670500075113989250468773090103890442072377717317859835618811758373460955975594901419393428767256342894374592373330457128863241924347677705516596137721797740730234985429050693964604410028399908365741157562196558770590847246265363861533406820304745548767503541678002998904031790743817108370256936355374784617040631827753146695565872286380012349281822112483971380983763095976810229649700949956529182782998606598646417952794925716862366278820611508105122118369683217444722021363035073730364581153238476163105427265396696726914577833584681597215183818448393101021999829090433701190591722922662951503763344475657505022745626166486458349510901721169306045340815279581433875963122086829304376223735167719740770727442513970651670065333805386805202417569368440231008460336787772151089071537244969636087056940172013507491058189815859555567088664347836968658623691053353095434386562245398028792070085496260857218861134738512299668250769283358461549428535456049682256057237033637699943307941463695559636016045414598732155416722072311363528941607661325047735689928664933675397839769688952168971730552752699597008384144265183120457255503883533471942041295271021662063315743550414813645359507485651563486069108033166270523042181754821939396745256298221828987761786409678417128409229876913767901328387389838098129652621809245539377955667089037382329325274804176657810877961247882297811017625825464567373276197670034526514308310056196714732859209532151841451835498372322035442636935606855036932614041550913617249838853511177762519382689398885280038732581289571442368149278456118900697273626344792386434995541057336695751362718872078924412992269465862397967564269604152162044472319526886258229728345012226634307701039147590188376654568279335016391214339171258942693735155325882760597397111875379353459119601188097456430801514455541372596786272936757244706516035561070811050991350380976471895017828522326911565768194069317510673286593019092492487811552683078388056382368792400863474054194057543134743642283795634442705844549543103567628999447520178170776762979261218200380724163090044514968741933355126238066761754985106966223953370216512846375681770991783180151469044263037645097806679705313414504848898785072087660803597985120145523748187924838141482592734050135697965420752555011291522664379829747109024993878507538943011751264221115454007984117032594535329604706006191267657657579232029755066010196791476410635662631780767574990782633302546827386095878273094364989503645880175013109669420233013091671094090093477831802455036863228887064827617590089697153761831370772982179147528548425151011878926105403340853544114517044742132429585903309526887809436853216402202333632255722452869661008245873202203728309911552412321042445304682002672749649552434917469508090536495902600452387976042995961870482503289993208065137597658221157963719272403611370868168620160524810709637001209504528729912022008039521943122821212060723091594240138214135018956669960189289897233078532459508620713720259286828131208302515736416086217545426678981283662426138916988640036665277950334708709148338242122527166533298836038966765663157846154786802015357788142725995838739714221485004002494561979932081067233860164737989224988058368118379459372993615603030250985995052044503464636426700062643528775375923090938326578211929668414353494023154861902986495756522251155159687254903899100504725331482378512445450450757898377606133849999069876345870044396342997501885205086682914102944489576379533622052767017682272631056241314466076581062342735676436984193381169052228436493881359532319146301433953091015682719363734728213897960819749678847928197773613216813848986269386213003380247182791912382192688214202808530293919139524246719398454867419519206112781503363378475593158410155022433624459765978959339091740293498463955088263953325663159383652768490172391875561406318424263569167064615863659794179041702368445482818563114855814265461082565056731688682028086650721204282674231564526651163987787597837864534167157103264751552239482294400483907437873500702733852516521929879079243709173333136122998257633807829504511714113514426485299601591776675014139070441236060866074853898513397022302889474798012351792007614998893512288156110381802995373887044632556316603058500983349202059703064368723775546860994198251483305714645457517178665610884991064202140679344010463915399103551774484697651536099330350867547183990693230965377688265807661794706192981277429807384335146826231526167793925905156446703705837681481627913627378946819843648161771438757080973187969728497727711964196998264170413236166988966920328487164956966177198827716188474515545798748030818088447926236911249210098739059605127294625154923928401660092677131656925949095731261370083872395229440210113902168268177557729320495592538968039866968051973841919849647455422134968992631239390830810289893263477839117841604157804777589817099042593321833266178037748891673280558352422067105588310742775879702315179516226967622652880167345420797378836705733927120468104414305402403280571054415526091267275452003474165923104931632451485156294361238757470558691572939449099089194210960243293195591144503359293095127656626715038973575976613253009574788043305594182195543355638468631737597949773092480784131151881262352794534632870283398576906548754511108674502537047173552205034306149033091299471401722913760431358050039769406150986839224093232597049060473737164644961822750426323067038511026486904679908394054127881657862735093585588371758872988134117298230678222750782506955961668976531607768269428432293221916974342292002351376494940383961845225003169826535101101787559241533192904571438639613772732330156832888172662916139975513183590025379115018799310784832366352701240490127367255792334273279026085713700978307295161051644785748062207346480889536989365498451951856669641181184612808725362464929288218719018275650870004926179676732880322745116086367278942764212961272452723633071318605277641303007310022516017590839977591186847913281455025897902569242132567416370067912900048119058173096985974644434886653590385074279604861016585061857423580310803745808802962890763211912602933740886043616214526583636598005193233322974848975890997736681778486924100199397349941413628490455862200649419233202711307300836231875744555630607750069499544089718750877386625073468518595341925285690951183956466442360742365751265506544852263242634479514161284839678033244979689014784816667181406254337886285038372255825015676474155977089772705413590244195612032324818678070376977307838665451694304218120263036941370897228904016574093296710474246988380390673461453260623146192769681985460774620436725731550185561055869241967738682726446757299293731297859931267828651903677812305082626711299929652279028574320646765541258333525802088877210929069354845511555438671511799704611356963523932064446137036799161472111524756769264179896116285545224141807289254677704159571406949925057425192370596204801319924676867524747827256671042494039746283195272560240605354169759511341896895347971476485641779556376641755602489110245853403058160600236497621384507543288595225530597931875886784375498251267074129104459333241117939085954348064425117736889947708522249814731653025267044083765602459066574544399312599094682352375243778142636849061182023139593695908013744146300404039526658202555266747784428232165134760212794644566675959275034790185677273656600333007539615388525472283017961653511685495361733407824829414303457953407679500134439679810111254392324054363831270319318577892459773697467107507178649229518178281736887805687762480444484358803929911020492128465762990909036320145234335120306271072950337315021065791945381044724557032412154894738029960231458242893964985787351163037147025303729992931988120867102716357203835992129429489645251878782417234856425785784170720485161209265958462165088399149979402489814950995802643656573821727334434825128403916287473420964627351641422263708497312563550349601954319849131540766859283923945733351839156513668753945557455691598388757687362860793027640187835211774765465392114902553094371326272801616917407806125019577003404726029430227993263891295194251039352230604010819228121822253737652794953066221385238307922290736999140292157090645765838688581711232970915870463473234439233659659081686571359786610444633519999614419452033916535349197995123668232905938538473584355752047664336675403748688969953362122670376854178606971774524375626069797224020379814338933132143234597826217570456727821643442988392233810002162271296542337722959973226369616632669996319694442030089490755958550705204355934919207650004322467036769117027585915552862543081989444996425785875441613093185289759806880423720822928490163635859569917155031163144105556199472458422419666343994262388970963286566739461910044649059183954711524916876093525973972607654184476896888484283216945438133773204786214938107049908326938668698904859941823094128221536653008224068624487696153897181915474497098634887039114290280816862954934359316912697682715746437230957793263168900310486634108736702724019507636309460617745843641966062585249291525014403802473123293257370833344176778052435837359277183754991799531532281064068985355365718135029141159683223906035282271055454971722944048310913889989592351776947140805314950984057654009148183407823524250857869164903131238331873349033683333126369101048202859183488434710490813637813387182399009205316142310016897894216238442530364248881287360664261747165805282585881272655840719111539240676109296734930591661888577212286781390619594082232863005358001993817441758623880604945156817275446016751479794743202281054107758535905766732040849059212021272296706312531011436371970492999057272604828486462237460763992613208578617398150262114134893748580564834601628888757317956551930154660438003874091137838687777612647196138661541085611550223674439223438178472808373521261095955321509602189999215888965723128957524409956282215632291520940169552439689265899811994308473927070972411728948858962406954569535076877354007815831505425674401152903983654269308051200342650644884970143532980223122804800652054267134449619447223040707166944969545450676696608690518815386726175835358171418532124660004890895053759398825006544610571131213660831990537539655094855092718235876580694463944001907666877756950647864258822337843243452510528537435792865154722973015396763873572963308432824393368324127042804450836441676212548082222516284102683869904588410035969991416986566709671322144267542209318048274014514362275111735890400324738282219358074148388316117908355257406960681314876900538958218026164169986265652290648289967872057834167350406689368002407219104351183211066369862968070890897849789786896288978331349656659642054106938300265764774996058351406707758262889775144440978204911324070334600068048390376787728267229827364238492869046651519762122882510297962537287651049451221521843518044434850991826293159718731175133379362106074655144749453151431080757279780872229057451685397429932544389284220718401790247929675841617794481578739756334123824696196348224050540833645032095187936963354479052235892529652872334368078059404138868472381499752081863933507261083211979119850081983348155804048920683668504353853894807656238897217655711555245714240611796845658889523925609595733811074370976000461370678398362642352871707439254436950094216551901647701948225190888090988494772736042339952616068055455048926649021175908386155851900213858197226366418791029640625771256631989365416750803899223762038400424636207225945322389708489040738597042387781546336828547106173441264772364181413425984733717983708206634930890439880639748496423669169067286018673090193525624794654691466870206551486014664464336896851656070625859961552824674547026205066661507490310633416687699466291363855043149363800564569629893281407806762721456392844048952186758682381995055488680706336306825560646605114440619920989887486328855120160763329222271191548578507987277658357222018477137047225332706378223680139766075294417953730558892396594302811457992436513908250711375509603188819062418060588533025742743823998396484546037991085167217223041357067147136714359142311701485571147380649082419715920343817878478387420145078057734980574586685022493536634290101871416603753621456262724735582030488140564789533746438883340225326639836147265160732827619663278071296573755058724833192084729110033565231099916741900274803515668306746038368109973991190882362271483604498405600711756829336658141163997455161706061542700667279490897831332472775916644395570292529348286141778442882256367985155784207928839498435305712026188176686314406267533250334446008312955977904987097178866565508283207558975492874732509174897863620459408917068753737685388380638410946707200206785671325456237929024950364025789759742872685319270469990459819797332942899984291177529766978768527195243823083656276892807999545092314787999217278066207536423812402807921639510961319576725590050385728893441531719773072108790638206943711717475012669566992259881334640470880977119149360666793205833955671975596250776516267859275633387503370014692632347076379283617954719295105628447834793980912698769967247363808916218764123352259532923736175220099475259785958755990358621374370872066666397008708923597319721293103056943548214422462294327465405921008113114689195397891695392438562078165429805079128520949785089418239487449351778879697049331211114303794613669491319627604446158808756401545861071334202536244606345340594025124703611932838722354739312825647722202087097091192373626844607127984863833697591231236753540006335990104503335329590993552336186880518601302340059416550609766034667994149962815361805939721992187597165418241360003777218260316532156159292536457337544682592226132243420574395971445253337196910055736402514702841918659589308042151404671956210918926478601735977359341029549350248989230785627485924779211912939795536385042125361909250152738218287176393289491771682550133746155015818285557021654379190046441254947697162511085274460413209279112543169569338201377704534114482490712834401776657166454576363212264290246400780981290760097027673683492177904440344298614088240731865531361575273680441108042495412480076166372532681990950668912552286883405222198871636695954894171488758080144456573959205968828055283746865368457759338259918398996409226472573861505106504737648967390052256811493961090488513250996236573665171858067627255360750726326740747576069607867760322139873795813532061528527483641192786365654045722186246826109227031500564045986533539426977796423184424687124781499441782857742271959058559925412360724989035370604406240760864616504190727967749271180614421615548545901325527965749130395262294983083242046492833103972575721068681263357257319342104266138108825561658039798026931122149045345499744433949294045829328803505012028855142965041804409544454376934126858204027490242168506039284491665192073409643786418812718083774025034727114226300737736234646272041913094771407051699030331551207712475260975316588605774090805315352424946677895769704033198495503396180468695515462302988798621056502531384884648010522186314491919244671322975981898309165655701002137945400002951774090020822448316282223286407012217992558534126973308426379379350589916784620732117767186781204348175752898059188360884599766839085844157466263595988430420410063459642699189491466548338983982334658041277467353298411166357587267676819153646678538769499289696680596486712112423631007137247423540916649932596931212542284206666031578459270189593444127400597029063923169999193937848276559235668167955014404861926284198946672318647421805385176198889601053805810104827339694270552668839273855774314939731761571674020707699954719806058374610438853721422884451053534436714651046598185943850321104692229242457433288086582020443072873060767315931711402795102246447344050337492290236767350204989109728533302527673683701394668711246786165654276458540128638310718896208874771119669115590960828506378451464414079622209221788134278573486351743524025699291610882526264152649871904816790201831260954148451051137595736899544935878931630794924955401502362063065519075865962272025562861360359103750247111158353963210873928330953761352133559429111323228220125973630083577284773500260436402216834095608297086069021754887559663268023041103416993471331502954867263991194324914064828723865518876626590470644399629573785685639047131859032741171247976500799509103135822696110643423667493051110284261483001983643107854735537429118735385272575035934499930727895575257545338971958269942174521551868939887244010552542130722162878463079861218006007873187062117185184806924849763353842870625098480040402584682642442661781295266346518826923442319861103245025164418643794178778542369784226589677377991656285873742913899068464551154851872723255843622870753145433420651058402730910215389887667106079746421905971572333574000614246892683362899991968885256940697985121172232589750078793446065278302851616440925735506843810391184488429571281818322235548149319527086898193298134857901280313360075287661754078043075028832005265141033703486375219279898668894132155540877841166053072382817133925716277487377378805056665663711556684411697257073617967509392956905713345747758492823383546271813796015020334875098064538748741955436771332117746401530559703716059799877048216195780951855822505447308798249585082339894105741392565874243963050407650541237106376865084333989226562558067938999540842271079502334447486173011991860422445496202441375618123606285797091774209467511037192108132990198335324208048380485445439853529753871638154060192610675234473860631143870427560891241465228417410383860594104242669048541248067405502276817956996254452037155793923111590120179103974032292718826342326140857215541995209828589611797076147893378032795403676407529724379576233465216089825412087362818083466310317549129346449288362131818470869480574909749013343613197193044243813110675841947252550958809132829314794453480292851092760017811119518517673276368749992523099599382458225811926084066977452882095447408442447740455748736522338057095003604300615469016654773153683676561169750441087114426291490795637870328663487285209784469956774262924407097602487312652070152359132650386337098749786985130365380913447596558312545384511305882690641057115517935401282058725748606469345902306576736204320591523674374370243897812193326533454920471550705845534912502962847064623484698906617700969276840368361380514463339679748816825823424131882391829309291571125675511159990772555886727306422972383715258234756642034608320269132751021739696462473625027753015226587452646771872424537957453225777155709227975473232897770003997265191746009764113180121002892988083298609725953904163327137797509715756764761744451335513885531720161703633225940816184656351866234993103090160845265545223215427404502524596091192034533286793509201174151384987233077609335529079268856235688031808093685355204571703869699836341150072690484810582836783741181352387064107642195511380397011110331021184674456276083822702734894609214472904990749955915414293125416645200642049858120117567583494950766255377772350033924779806315679196604410636238140227341957902036766423365512404355733491392842256785532311330770862533635922259102626287933321600731902234578778504767136537256177031767373291227761726267118323744242958934686157112468833089568990941413886921998631978749032919106712488977735295839503916468802745489221747217358796275153474705374323890450576534200119447844333603173990955481495843563466682784695132816413682762335339544939284848877423792775981703457123189850924313118611079138601839247164343909620105256554752254868410947450362966856788200696427257386905092932674217928852591380849956024059984345534999040919745629839955216331080166010616411653737848100512612488803264689994271795305546637946521067127715326065663494394069577026185666762993635439141942335072143339068084105540301696594678725855473557789189930907908031349351634797334343080286815510559962231641742456724288092327664087186049454927088145084466909502671048508341266285449061014872783805497383248798854165069859155162081398697919699899474553006910485814491881181885269011237226037765811119845187457549489705210154858452493852478411419072813389749044148149254108760000386472486347917267431601624306169450985856008807176910746370662495045286053621057833977174132725063089173196393367487203493711345337324940373345740740799475229342969823628275987484624633200532278718530271670205383388527681233075644154798871812050436605791382194686521259000189256743266452812825815376999142276814292491077015468936969393909423661476358607981983171391656996799058739545993970068136270460858192915826914648309835262903260519788029638807662395136746462112472846174220632716329614950090093372654849633437192390200633503398636887466613115243808479699224624963613718084642568392495423885107797061139734052375014875150868838754162028487751092420080551127826242108476695344521445032130570609471191975386249536362401346113247943344103905303098238397075417497825106495939706309365350400617217419894492577273416539779161165992583400375148367764933762649770782127127461675868166171340792745947353757300693453675314624290063962922718214086883760322598111626795482688738061540279862766620167496980841432749266960147127529703701839383793742003108316765056964044629987926886472475585882292984988781864708074032708005972000034242102269849571523996067327089658284264385527148446533116074439212784731439757476844439302434542563983791817713394154236411764702239936516824579605375583784357194384426217025015487334591847530231056945092015361385474391984428762141004819115361442873906067920200684765038184436387304589262348102191350349423846138015649717076784355304407509381812372493203002130355917778250268027917066956322709394669973386563586874368826027316001308915017038550892495448164302918212188086865232279689454533256643217139792005352255556538064327810313142806275242423588596106143275388703602541080436049979721786412677578772073812376706886029903024084063330685894856716368958047116398143518027254686079951011078204353462386438998586123012430448053786714353578120734841131382706034913635009313670254197516153457719745188497510504488136429679151119472498291392286961509599255495409679232320129445827470365681604606036805827360089411666627731510990857833785566191244168312179973130422368169498131304050236679755294456400556924186279248203687733636396146021934572207871100661389167093628499351100934586017827763959559221744585703818723839963284157478024166687457684539301863276946643407417142512936726922870707200579610241126283453890575314920071873169912192187680679940764371905483835812674511727221677330891792689064708965799520281212879916162756862182418884520594472228268042757921287094061033498064889755934720545796899424418844097040138513292403876250733412637591425114288036531991319827119182239349491721289504227706326109794894444266981262380768292217381259888055585639282479883525313214949395068872385998417301273722476172514756664065977195844962259689805310370553221890934079100826611490522251800336054043439570832442655648020141529039368504168817257728276948936752799024972621051248515026060355185031462879611395488302495129754212500574452636896864569185252391788848092952967184746234014892141744831104424629058501913446926434885130464691021985240965123739279928220671421993880153501788376144558460313283813997029809669813467443887623333294570682321176922675143145094194968442665960306424498187726983942541298564453018800488919437907313793484294426651671068801749856703176728727604270051556100032321163401109394820988513081031744573105461794605501878568985216611035519398353193165909088135035771915940349532533481023022195058002411111031106423151336358590634453833123012378203005096753299485086398955120105996699333524515309754633503631965087755968205145149261171934310677144333159532527570519183584166375673287128430518965786903576363855572435956328314946500091645648116184070798103406896000997222819558258453599409685689738842495800394867450520537722978616611785718824629346921638992270217844307622136825250087264920486486682490466157070349802557357895569701316922396229394410792251456144686964243330784189233693825646061517999122222333431902876544607705818124181994157363240553871364098120516247114195169258894674753455954333622150600748537627661913263794375257551081166912278731532224047645459364994749290679420408770398246757960579373815460232493988106308681495704013672869241828607436615535688848015261678401190834182941624112673722220372440576521720445066087676909594296470287749891367418432638110621526318840926499965916524448680871455502026125777275207899732402842940374318409086496211605247661160016513955096861897325342973685332026875981861493429483503470839454340305110620810687313767649997678369276672187176287688200918963861337794771612460627300905107785365489425374323385071164380642530229299178707139561624420837569784431502029544043490348533301207078471008380639497886564771297861174592644285469216043912051572529231087887258091080716323143843863817746907589689556009420937922996333587590414681789940961517501426666039450253874759108245082820915649566544135731293381940397490454867676911922065270148016683769685948966303361634269304294880423069776869291363703475420104982656634595513409765464144798833894434439847339725737955120847925519456382786728952722448203856674700469098084899623297562198752660246180287730113844147812810215556148192688133250095812666360654201242091641743103758744003011810566927993872997158646801646759564910860850698412484423610072516370281561850499418574788133420230192258102763766303273064148568535933704015768352306822516817226643322059146357623960168446022529331913860549684175524348492632578027931968416797465658467099993148830044484178126179713905809921733155114009041724907024960479839735046650122425486292858079989509364325267123484425222925356969742575499563820491088480434657505276993933400871190473434362739331623047077732601510515350398185880624511910706619867889332486840654509720799096665781091349178909214397531100483022261159133400556982066290969785092172535756751082297719931475867216064308857567349399344718084657201005582459423950633544461949439797917801739655839809529741300196098921414602083681800047665010765202130092953084050893066324909647594527088651723003722022923474384932223873127717237415322315705058429860557214013000600438584935186463773245808945150851060896541519134594084755057608638000246140525349484879030137049642396979092258345328296403902464265035232043258402407133204279986212630821967983158276597957977613090016799724285223976101173510955318179135728524251774110727176511718017617444417150581397601312144190569974947626349113393966633232356615176375857668328178746652720320693424986331799949151208727153131972184689761306963824834825732782501219955841316676627051935528169811476966346968295302267778009034792553091518538535842171803306718835051988493183367840557913236662157410094706495311672895543469108525568390196644110299554589304406990418590925420331712015549236733248049178931310961514983722601381830183735334939704785210125354017950873403697975367998257363440085688129043158929188173198180055217943552718305648869825048585218230704010703357432146078770293292266898252392625127758722422283439599415814133301361012583597473039439761866827584438604994973507713964513085206972617492026995798990174650394622708800278372705636680587424273969349252395818759957852398879757936056917087006613827868632866183976999933856894859525362054077453385218014093399925453768948489921251176889025362935814869048352749509601428389750269750701138891289211107842420295970259259211095726691834901459555787968402397805121321493780922233573566467512409774018269826818697644107607730510835902760689560618276270130635469873138213839455358578401739647082146390204405550590485415508301794968471028126097115665618312954056513069597607350297668198807322637113518910281355619473458451900383831027637517502916937030062873081148828464145300753983784599072018651781436597954345001375625696490993249626047910441897473614667933809416028877374487529537699579432675211052052122980177671623219221583344831470285983136909039522061944680611225060025419424896397780766937344961854230285676086562145943888861889271704727546802947588315363023445355447383547721535051255204663873012072990354437691314123963264637045099517897724776685840686661158780012910196857248200041753043668226873525026757205553823722198463855912425508333148118841762533169042868661698464031888826675194307700176550853377972634816749657744633217212094632100996227815901127447885271897935289129054256712146951463861442967661252679179679626678392784048816027232495666477963974391628412419308648668492834111344131790785375390679329120656629671909151939697979270578175701931951647574458585334460813380088648303969915512124706801739219984324913476608646674751994690614819802019585464440598435069047436925002520225719364135091132239356902223810362550427173556473019696726466370052402800632004971186071974492586687179865321944209424602397686638451433641844073480503764933542079118604367834813461805864870317829152056207422194893047063925678809036654488120796290549907396028549771953102809845849423506090634554620805965470864477443016267470714939305555863906445406584463938969209935933988971592420004372768302295499655367686339376669186679461507735502337294129266952701115412348333648946866413665457092892838376312257942863111522350788633690689034356176778428402776491293041624070987392457022106540015728560993581106268995719533677947954847260379838047076756464720039484661086279004657069852057342113936128928168168065787939050305401041506575256636253840358091713449833481463827104095952822597090518050652563822548444996719139745807028515496062021550497385625582883129634027926020521127010247887907016889018822234129484476808017242666917278065668165810953220066159332075662676433105658917535268855705114116069260387986680397717164157664672408695660358119977208493565005546467013521338551572942804294029650378438592181982707320825634838982307051417971838965939284568343932192101711293735040733708553542366418157951744718480531640255094900119139310895733826267731301498065345984662792390878247471356700669851479212837939572872866465038967336194625147092313095308668253285599802572189342891225092417093225019570658471910208324355205407884129912965641843193932864761269891731566736804552942413955850266294687826255425428800390863323154194600241571754331681423717259656571072010641837373689198426557591362155885516716191451450076594118548224095973004528193559604166231257622658972389324035001237426177578449046414095477540869375218922787380760796439693030079459595346618659009478328270743672745953030072984497457935750171393917311368292048190095461876344636704918183917827205925310229193020906431594157195943161921001034646993461470731102004268152022136305344904546948028661337008505339298555638594075792312475025993092128145791803252794220262279210494885655268961204124854919491000113766251368544537680427993964018189160885490249578538249524366994127246679793308582334636969991656740700831484031041678951315699838531697436059351474983532641475502131946482335111839315949913794413658444395310868374027930897409847477517126326368318274651839655339280945425719086233778583089050966624092510647003564033834041630272727556955371650772657495707992069841362426871342100347179375116341343325877279856543190329575404826904646774997382239284297637103195221634894409480098859482850810161622108549000946111445428657210058780028159153531395031662995207689146082126260497176727771946297356841926565826143424037721270470139852559122564249317513800394856016059699634956187979550063372983378978549351299863375804397995219370122228252234486711372714182980416638548975025038524831531118708890457314581003173855499874544397980056655344532835077877869345882297272124197774954867238374864028497816018259274330240396509882830206276688313348386026570001125384013952595571663636121030491477528176451254345705261959964424732250772284288932980428252494150654074296620524130393305754248488878076948067471211820348493508597501181085490197879627786818503660885931637297165565079141289282374381186059338084263479710218096193900989209831742031449379187826688666753381388616293004897501881302161722427489772925117058782784151331316318586564224174583268995897708827520007432503370399676029642459673652906677295467563406278268636758009935401325257098761232506103345594609918344787404390450432326968545432176540746736796130341982003752280190854331424661919369721432996691777838681988486670333040545321704224409922625360126438476919631370753415315374993331689942676465410683408199350579253040395503916567629523114506928942521907599454127362299793590353976806978523709531078191253796262883410232593482947891146594893720494184486918687564663415890636957789146990721730912899680465429870268519038491085019986973400402579454272250808474974488761000434015351833338551718366627519937678276156198066668275678598972961039293396862007672169062861787340055429398967024450343380091225624910201139914635789979568058414046427220966743628363184498677112855337360689875670081110147030893044726922701537027204277119914889059501156793244400478891502614774899103947079057954990855873719868479382177202544795994696187847327782784118231247675087636033160092762318680890576903233163741942921398684983850749579387791245610533335145016306266772240484007801309296775794663301781785243717967822719914967527927503188335073494441235679147499866181408134500226518347923127337179568799843972010211232834240019936356546558806775495335532867153613083770269037712758796585932694754541042792176628271876213501184718008292830332256142781401696432292978859708813686205052146139087119857002431845833573996213110146628325755944581182199383497498420570331849076570929353361997336476307855507128704655153077383593678098544837518546576893146161657674318958041083115848594949858934734477323532752056673018504459559034835502320678651098337003516279620173232515388666185741419127319890314401447581610691187559999026743888694723033131316677848787078313645437796833601764636121861802398066082017337017305284002753531619532241363742295461465416866570490050458491498353239015748907065180759587467193962391804264647532085737459156602068511030255087025771251372839820306765575259106275651580502624009349915591922697248304648230910843306335652028686162022620174939926613604965827799226216332745046497815899594220050940591645962555648449815483895573101047383759657899217937175135099165361576028734084075219400693713684650922018727632193263934652116352251880917131460350638768935394402275152883498331772019168510606462542151591453568416072486963447049319565922624012027779173102187901316074486328942749177408667678072702274511536181135044735800107439647755182667029034341506118086744015077136581253964684577713698955616714936653550198811178190013029247151573910288578167862688341873259819150341234085306376734676356252354963874567545952580452579815298325125538300026741220063364212745478118644712007496148949289155971309472469645693346462730248627246403567786401751481493078751554567119581714772797445687421572452099976811029428445928509635317646064121869886660154521136125378061559875978706599610562323811861547211566179691955586488707433837340014513447914797119848061146613957486920945150736351588708309047928920058838294094297742765086899956069551168280104898422331726409519991661960370233961364558787022666422097674403161236932404092579601032682763810860792733229508144205607161667176617901882009681227639228819644092314238953822243550611077069008236364652800400997454848329662513559998380232075194778374922310841739152682013505752600323310998583091987234781297625746878448516365251600328983498596339355241973500705914265740397013171722058979404682657332875520606373379157570986315738223693097426959159009284642970356408436753385702326112763590553769285673187912101871543990187680458341999729884507202630824492461471572847018609621915261905734633872315904092937009576214551740955612292703320816174822929186145990998939069874373540802176256681712257285821609252465066229411074155035798178929736858948152022551600972356116400009472392060421652596636870970114282407997057459899248354566092440159486541379116199114043068299254136867525358481810629018861960586755557010139049653177913232354277163539777567180605565875129687975051656684442128546228892603568098178009087992953704989094143800688641112135609059501591723314498221953897374665403874257755965028965177844836235957318673419670529877381221013180404623538118687415545452409918808999375168063427059173126027236161733841293633303188977559896343068088697691452268247371228945828490967915977466242466184988375978003870292581030320131356830918564005529368327280667940497951354111850147747379049698750868457260902232591061353681868778781998697394617609810819690384138505392142341287460348346828871454009160683695045671379064624704728680266283783572635829621918440091405725902069827114692947994333383259929647562680069818591893673729177288535191203006626906965488313747384974688659437230796955436846232887845139234548065946703197822638880316051422192742902916542878838073969847062505407102316923559522016025071181607160082164589964404667377648023982964297725636597897478571163117648205503788773264237865083697377968818181195113995193631437393769563413866503350985529579301391882217197300657269782730466744749447306919089763579399661540600136565025512209606799518452561632018246535982266567554094580853073812484878807457122078396555543977636876392562027010012498605384035490595791178326052514471847364645587212416936968048145546349325602238446797620889497164217018797588635526385185963909927219035708436688261192719798195416031150580163379859399396735063074908952287072069841847335242245013653909089355648096754572601763634407242738105056725340261741173213314843993521386222601562008835003165237515567482732417945030617825690941375606588065135110499087712430102529600848321638474262165604362364539483557694565933179733076989812286010830151197181071348353936804295834180831850829074252691016499310743811523470853624869322463681276260067452112573686362490912195933972518250550449360041189954200815609277760415377076804437279132844058627456634735548836488563328368483182635004679900779983606229495187767938516902186775287242633772326418802698336648004173159467449725591004707062659857224263306862322646340234853570833703036010485700938115485312424355164837459443403112067863889730659986884571296085745670994781840237637689255298423419694394542973258235133911712442587166969968410204007900950122994622749992821023636317222597254023661209833744674201200855957095393652054476911667494349553480772940655695753913980749899297605719061925515817201191627975131646060299790705926262861094777910775152689936121930091327132941462431688024522760853941307860067094306120277098205297031754066145490091529245335671311980775874028063663117628054240101766568730710702516490348885469360912787884502717441376402979735248058212951119903828096903274588545421819426137225535448883995286125302705560693280276965461949990791471471790187485830517651463971622898630233768088268947273645741758774656690437459796040451818009116378520480818813396208160478341835715576558060888369427804220569509376155562638931091411576013925849132042783859127070709478398784516193885202432666936455276246421455285674832702219022184248071066895474990515003684914946378310414851618016287868227025872966865068430963567754417892818626443142928887350692647934984401006332815924373655650373673618426178948720104319937398290964203083784162702631733988874746671880793180653192747001220337216892497824892084428052201775509087350376591605419727223264253536484763718853510272417872024443923525867136029214709771874119693252512757722802837975043837962096132867903253669522768227438481113515902730827290715845766057069995986706235228610675790052634589422670336870760695689192328553948144938619174818900753420916071843965211855316164467993456118413546954764861297235308436944385075232988293959821457809765791732893266889249424933584799973633681259249321243861048762176570951178530084983225543114681235450885237727719202282217805704325854925087173364057565709246392628359656032026347799367364807329528004737143018420733779918857372686895331000596609041578014058298975113726863553185120104435642938357071025838605177732768827987626266573492205658083501396222575394614272726837333704777090968964027862963858644012320145164495245242238459039293122402439016484069945719442051474709322938107686789424169145368241893299856210707129121683743938960653170360416611656507945192065286931613962619153848553069944829708241499620842060318956518088463488574353282264111659129439597797252752717609512823529178679329430276488179007408034298247502600835838292703414878408066709089543696680605370404815783225668645079635489518600536570343754155481778754871436212467700198948220945203781460163268855424305713857518359489102288232864700034673009017020427621606083792942406580144474716612285988542035057568464414686946942919713617892167496461377808205164418686580969422215140408776553040846244392187902966287584990997672268000634621055958259494018948268069055539742571702356491557327210043487455092770620901710009673848427299375795686304467384396296261144233890450500492667037095003051093977834573271160442065039705174831266089706581534335956094857741801185691112197361066493104315411266618911879361480488896255840104609738006482980387103731554783700707681981941518881605736111338918063413422686532685123322634555116985820645936145150763251099524869798389198424522013949116564626902398477780248059294797763518347724432332211549669294414947954601340452431685596813910903543525812310870276149210660237905496649273857423833093249925471213572429273790769795167406939250873285046528869127717817885520839651988118367310173120458925878008406709547043543830393706242410256238388966999116425457990599658182868446498544269036612976244185540194983102232992907197106829474677168505127037988962216352304526924749885563116956891025554454059018006179770045190980792182053489776667851842263159346026243625344530999966497722660899046707639420162343242570104019118576544647338899204477734505122584637334538544659338671835523035550208500827883908464044390177889975711160857740797308671142035135359143407718740149010700896117805816411560105732476747147841186116064673248172115302334297308366449438632230135328958464956249839585543879801757487043739534623287844684106755859026028994314149995158836425076374252799959080759084573483943630600888762441764246855990877074152676918121486864514461229622889076091290016545514970964599458891368803574962980598398357929651198231153072345608800563599599775421095694644330469693137982180961819461689996704127142821325866242279159768441560060776288096073218495975557640024451300574253790999008844807202254694471660052400590925901405141250290758457477754408901528907770976310992727611065077173461487427491785179413103707063515392514264055158184345573969539380849369900307286427645522393941202837440607446448718686186635616136726542687233162367482628347462166538547472230185265399814189358678609585542935436298769983141470182972100711725157172738728691636347129521481069768956150833136349367951550225141525897208732436567367437767036889975199117179104943938435572358614457037454116090041685083851722848080309348950299366483135748745772472684683654215950110302796777794387456400485830184830110053268084183372549349456960609144557075566578726675279678760612885436033462243404626557095806021257446553418086929180998576729168598659768169213234059292178787750127370904088751825946294171513137995278218484393650028951594454123283764620671314541016167951913307798026984417507940488941233879832869642041285481498442825855945603651621331529194859618099204320207333647840266364217394446212895765989079009706864896446327611378613525816653460149910771521369354536571412855230195991496866029765830661759244209031561158361319848885756230172730233952652774850659583825139220352952908278721109007734432668706673004146043154801172545604204451587852800838550962209467156250949747548395461960820420580696895585275473210656600353371548589225607941521963852208789820683302124399487983290614205665263793740437535304249549589415291472844110579280088590193871698357509392865471217941400776268627396558665979950974485524660590216168468658288540056931526875305150023686085329524101051867833716230296585749197240809383976859442660036346258891292564045331964432634739543128505599465938833028247658075139592176430721732279025307268880770551243272250047773173889092310569577473201286279628019210301859973107678381448697181593242982986229123554322318178445493470494287290814450675928577022902959154612447698011599716737037864477834927130028658386817912016539763588099671588783117690987966343376679621395773013050348385695422568444192887925044326380224359748207342083180932627247087134737709161801332313332824173553022351835437996552078686080719305509292486025282797799817255420442535690537965897356250444610691782287997467686769279839223045713141616217932886077866472313927280877679749148701326015916320460009703844122647224171835234144290002920241698234998879326889635844147295506115141116010050208002723325410880385223323237322403672535177214193006224629758781784653358252794489088788729892519821521105987162153351821333314615929852471965668762769062571405078051242250933611849186083970625788204773224109664399401427662223899801529662745455848515379909600787823173962256222319559538832945150165658108283974139816605768017073350391171210319827899675644180513827243525296318325798044820127316634537782607603206021965743989861779342239555192625991545551452819584858131778738748799516786542785323232428453030683085351322725878158842723711876649032824007948540985417973938101298592064860175250828179134378916423027162537119678419187288010648842672626013419162382248693497183416158213318452780612523584858581536458809863326001885943231115653025839557061693092561086460138192093470778624487279265083089556611566382149093288618054408431114108346697779554983192430860301449293919099682286001116583705797438367132686708127539573619102573150841538133556720646245328634294824896080659119816064752249532059553182787028089604766502079669167869116262887307714512021312468216211393545119753877646520067757100467316227467976441378117403530415575270748140074300010743395448689580508221821483607278578152527447686451328790886851765975531862368355834758949590552335069201985021577697507528583765931958163297715860944833278356661916643288040202419171474614615054591318264334113747847740893111508708801055655037469077724133099004686773650188683537884116417875132003295593529521046216822143164057380279617661151627786647054573134524105994014565462197794892540531057581707555543304020687672453761028150167858263255006903058153815283402700465880407592999128437377662686899757003725179476299405787591683204967745994615682431670957809322109346788778230201219290082445791680775585339322807234464167335849319941807580808682831913409424278749446110117691837202337779222520151701848979641033620797418881589610214645889847144384217846423606988499705766246935548363632360917416800953728451756581190555189408196840850362289974532196037850464518279208013650274328182002892211472356491178957563604775124812141308002843860916576707730116149628956389968545344464888093364222390869899781259879179861037573582907574596915875778160484831393039551791642682899335187535846090088962130172156208762573013796371747158755170401743209224220124690998604641296694122104944375926754344565557756263719824740659126690406664186755810770122008225851910169338707397342652498472079308852864284742985562271081385995414896050393683082783624288649086046012774620463891561534697084364351783491369532897678355851535577275724861586978664277360113238226347358572938930928000542443270468872499244262709809900775850116572699521551078161707409158032875125925169266250545157544803567707906931414231330715868216394033229454784524789916520139658669931242566477308411012462387975086291362186993775563214694380217079066549104876947890298526688731931202692416127925373177597848649259121870394193127236005405487171637154084077118486491209378973955434642052860277293002295374482095269247372943146926544846600196878960475952354186269571062262365881599215353052265847410951705834949686767005676562122930530284591594074768145076170135654735905141829594581389458393886570486310037337378083783114730642567919754116906914345371884532347840363667913406572585179518540824526234784872758768939922860343449467752936803810829752316118715229220417515574478946051646187632984865723221065711666447230379354884799085456076032663930579936440322279210384266303537790620905732636533880097171603163524936032124697827470894522580116706371273471874411399128218045261065332556743827087995670507255623666920375658048042812483641314987043618786918058319016259971648281060215770339858754163129018403187380243182645097860623761816504764458440031519155661598923908291431811653823608154713306268668759981087448105470233022747989015967235175924291615587754183476028932440874124026093041757724109432162574718004912674122732876813478949486310963174438299364219032774876732275083168266651224388189642441731646721411370540845322332469530092889274105389414949807199985972212381877808862676645753886047787779913011619630708208851592861621986488879431357624644321804581106116508349039453839444819074352410205627286857104603473136146806844362685228475670099702889135404987861979962998280929237101838609263995355404134908562180595270416902458031962491066605119304155517741660172251285277008280582824451310147401278201236018261328242294937296413780988269595539693316572571799136548178451477789884849536783789322243513275499612390849002816894238008999928699901556998026266685099462232488888360419605423179736834741735241935549667977983707097302892001345655473299933003723141688869316895037758745705919532089656761012164869434635819931375344289423645192939480341147296920331961663158087068420991607208253906760182199089570868301723521140749846586532038429556965720699546912369841138415424297114401754601959930006886106975706508301974814306098472072713119841560002014000045533168487365339513884336441232198106574249156268811958668697362266622489719440461095523014344744081640296508124306476619960208546480195215463571615033531132597237424034625079427643714543747529640920175939239258595941583692647451367149772728905268241694053563480641402895171646506258368720251065069057553809433107830497360663493157973139385407081331956685045429280791628932482198684572855197220353370327424908566026287508380757766744802774529375491868897792888213029744768502279141786191095176461281876511032218235975938367477716583176771532804620743982788094161626187327609677079206841763001044339179388412657960519283364977436510610203151863922628764533749645891379245194313678694406789156612684180985108183488357485295259862781743069495242271000255759170809249811029246377142277529840531719687724826699835379592333680030021428140978924166052546912225696597840139622817417824983257078599464844041906828174926968491284980617852713103069259618665604912533990576864882265312342780868841058595707905482564617622409676288334292496621794540603442387732511849716588128341836630545503062299686257046436990694594694416806539188434192976983001707589756488121415412161018448615507835307645867472589570552906832886504999938387752641836717682085493503580775374105852401960956580692622665275032068352340720925552393609857783398053823816095511253639289920969363496207416233339434012215042171187019159732714139695014900701289048985915636661571446094899997226207461864805673556636320156514246681350352355426778115886740246026103520320773625876676213889281037155608143508913031283035126304028194718121794605928583360912592984275088021836773794211043405499931955163865985389358950864255641398484371391266628077387773949114378206724490971828739761778315016896448967446120694914699400251737129878457920988730059733908678671068684300023839216364671788836283632205601607837851886112687212638378475851969207170387236915425803564804706513728890479239332846140086011637826011394074545322264162284287474179900963595994628073773479443462111614127665032905039856722815421212523152163201139210695147935885065960284947214099314029322731239057216631084926687238459867821134334336775313495187723540324244493418527632332028461677045270314408781044767631366803598872672810880856994846351158432848080778564358300578909374770092160257009576293806852103405833856601835384802841216958453078142640533908176988572778944119063830986683505848404726004389696164938389292789925011602159663578308672241893895268986091050125067433334155587417541670122489672264661981396322027153649428641435655604237814426395120329041981465962950071184034667479393411573032305253200594158295987118766968548020130960480466287164849027725358898782346423347495858183163304432724105719043774267366084991574931145655442171720051553302819504226840843667480535900924931802219459953278783175401730878007305504939327778158652763118836232908892764061318376786887209149605094737643098818900505675492450802301876727007041723798011906986175661343659690111348527429679731157914259416149795221638433189031831940362156914969483208404420762475077349205508471031649887941810248833913786757674305675028182647002211523905017590396033266932435098472777810319551426244985692153688186067928684404930429582493040590594383489356728502403637350761215551695286706634916802345183279527162476143807966802027368566789587503135605402305084750278662623602875344533774662239308646353538775655156377280122221217579662253413903316057104982344680152555661106156297823164428278741072609682321713575483510218464553061668152959484114584860048885175329495968261850866193890626911585847766529403171101355170668769179215684965305144469529256098808009550272466382877105900024070941404600524220159045881840091030465879712959903227815070106950273583315650645133376259811069116727601145028562809510717461117528011752316226202327503642080448422078761849278375212195648413154780441819317748673009476433866612103790957966452556907309535816583235535313304368801635135961633799549426550372188531160531600428111629369082495123116507122727030198536589286774832953573784772132550754756087054968961947459997362911198111005004754147169641961616054214607143794484287584276983978285157911263371570059456750565118969555100466051183449300557625946013272722698961643439202411487622895176578635627858255533225627524617886820387840043782728082638759390837790839086669180634217189583814428327295174874426149708871551507796616673463995713414946209411850885526993186660470664696373485982656994950685111628385896166069730494723046034643141999419017507509720215307979309234821832054793190732462475741605028581209152352303637106085579582755864015534167645358522166538489564367472367669297552826503910390828572309703340842872711429082508493545578427939854990516724832785546980435100996311452951426730736724460082061980092346292995272507232422294485790950276073992802455714207205083286374968786775983808947950292935471744163983052219198535963637258393129210224135134421693964867458226891638725598690693391645946332196086100085780460907733893176503863860234385650126661325608086181141837440622902227534039125740720122274401611140759546118298852449564160242947347703229169616304221784702453612640948094011543997303594359726880379075167508554161393135638865181715435712737453961282697360069813331522167351859767012115578066825300302255015567122381379377461871025541348078586953194808601301505015352689886498771611860169389728387781855964646066228296990580399883814242385399801312847703356282153198509484078526760708705287187109249674233610255810226706955434491219086609706653136703653115295485369076341297785702167117067435557269383717476954594529810277891886360439889513703903749838685284183055510348528517280481432904891674187301251851808742903033467084852053183296595980057261909183736102970319175362811982364645351588524500995072701557120363854876015036379319068281591229178979469580521925916548152245375108144314341927953532488750715561758087476879772693458989707361645276293986180421108855239163865996260126658093377373927569144147875331814628848455116050987279442702396957010709436207277602930576017783412408685430978433310658960622702265064306627634427990779081479083638973322010816770946305524749673439772399588645099520763454640539732433401548720643524749253202276754618983562141822624845322665323063096445575975742195740044993318258009458893149149549777949550618493017477631003458605821235248862700498428117824985521928503954764100024913882906704863286149248316459483695140110404972501961208266108731403620229575187156522874866026016257964099873951298753912369817585860526461602594541318069584967766583962731247566270890288365949098223236847363102891776225653086374387628451173672943764522355775379800825894437532751144834686296359889402321714834708266164535001382668336513067518436644293337951158760770639254619210886732331220604612378844631927051097567332093863709584264415931166820924464324792896769996764240535902238615517976729352004823284245353695335621702406239629117057660223015070037863976520419941563648117016902121143650364776574532048452371790961998207551747330400807996083121941608118991386863289350713931889994609910828805042093489245402725165452681115996126536950609406922234609460580217791184938794333574169045391155275463286919644355076587030204987352679655448770856634086288613606367544245262284190404378686684291126161304828092871537419388630221284649643155923557461785627697574839967203921516222214599275707065030604398668360471537693815029322465616067437452169300642707018895668948977175246932513599915957814142178823007089514258195412664351022534757571712055877426972418710873380647068182634207816675968068744731820039250690858777080686842646968789717249643595424745990369884790199141357709264400271356562745973703658774229666524342576373946244267944261483183337937431716125702887509490417530460243879067480219387103686020890845060217254166878031244743094285056289866821069185630199170608431700432097493313767567809986076734359909830985035155342629984263671757528809089968410778632120295541294790041332628565274913370242217260921069685117515720200197603138952260982512040391499098926394554873077447559754033471389903718799066958850995416999091959513291425978378485213438476914004454806869461396885208114810314437899249132815611712233821652153698315987978220151377551587255292187051077650280082760547711019016553579954410537709961358358714709633025535551755797373099236191461716111305729312018629951897235406783353676840214067372438959000639508895996711611742147744743698496694484344465973372683263147465597059793817005015985430360143492532068517744383024507892597408444038925545567503521672294265650922363961934382618993640205797644299869960686912757111033186220447020504008346500663794270747817269712333239408793063782183032595795219857209881100677851636612892365043033910381272284222565074806365040026913745274341329784951939943514010801053649963459237702577807339766335936776464491123762072993099038810941337391666129647688424462265168346643404325525012266915809042321088594798819467604686564788976240813395308512122052134808653463559181054007595578829365173923194104818931269968350623979646230367486435182113477139146016601470126432956067390037716479130194206896395161976135366198561846247838183617625069647473958416142200627843542528193342527650238821218799993559769219021141864449838105599473947411843599161198988914177899615310419898968504053269982904319495176153480098484260975682122361743269763864623261513647999190659456677291459449235983635618937178218452229223597090847047421281923552253559306420052563531582900908725844238627634656471911521973412865987188458959737125388991449914277143074630444621964340163107259640543108991823487467686806747280799637460180426509831478133548436439954136479682309351196692031594477266953909294983434265710286978184767351449564192837048476111430158525720392565590029911684357809589322988533267479952607899673183792988067838669635482908187300516320577289492158784772693570235651080534031246094711601020894729996900114618980416424490169598756998641310576104616716961823347410019359219157179158599306555712748154047131125313844056910719305007524769832987902281284150454643184018099848273992313846739524544841020881031631821806667332270496165566501956004269364989607085493857471556362810144506230671317412443243815770287264045317661442804070050646845980070859362170440534198361708737855471041779259104090442019367940155962918224395282691841982605618929931518598976238245057913163029923112046706440284346552175952127051833251253637682038650217303135528572680652550984995984046087523395987378087105508074627207715886752495596784845283750694991665868620343460165913075976371682280014383860228815126619318114629612992205136313050301932781339736307252123438194670613039592235457150659310027962822901859465485279646253837484607954218955606875157832770891807968225251965884304026624532756864035613246886753891507514210926683362344792072852694998691577569459092268440293247207871956676578446163650784036629568138657400724025267061187953200766037709532196161624408491893918871826281480082935483524944491691505848086756840702374737586385776845987890321691229654991240388491685701975449363660360824334171281106421737838365827021749821791558870738109151827601222058737918758081654025682245062634880263616722999953990901993924852973820224711276817473847863424547078297370392119455813367488735880958277058310228155765283085492573662438618197726645199579188485694218300308560666073634888414841391737399174136383092338026179668631878231780568573741573174703217685418634430534682798663610721161525276466814592312890111933509913354044914700034645533536305919410551385938637247347619264300204962675138894798199882171928068607521221294350245421821678886923970232712308406594577187666225625927873270350317831593801151245148139644807296898518137787180517851429136767665288638376760242129751833846960088489588864536076439102143105311169611247339646960640778390524018879071196292716508875056589208090586797086071222883269080491421883042833923301854148174955230662020587075173832176617792033219786541751945508062101858236053664217100806269373155106879416051683926657530785733306466213348716170624258234384248514930985696941842313979081003780614455522943346593008702028441117973694083939627283341412436287692273194114977088657737085990211446671117409382205482158277482665237106816323044309366923915580310060294431007989640659773049390104112950360862448522784612724012954880912399986434372345270499880216934711672906262542839638500149757137377472205806900246999092831730048619252643869701086033662836298395386882101606790899121665386156050564481892078752984496183690040742984026809476827835846490596790679123634214814493840590302712164493045578398467728110862860410200351636126403381719233905413507306040425345520143877420293323972379519327024568709206238276163598442287790523580462338002952522286144500848128013846911632401394633969102111566636203279277821813276088205260211391545067220909787498194985997858043915942565435341132937727047490846160845140897968528265765060308258064797808107411277593064622317857666803452605281814016048853017964477660354637599772713960102188372378780272155132186236684822156040737552968446578041346352234852089690427783647398722355376662247594899111161442246394777902288020483604782964837190108187956985389896437862932985908894517669439143334671451582321718221693055746998651532788855170841678549471307865150553591795832122206893863210393472357320560936383382399926192516879660415614529251292481277842554122147412906271074405442315895594815034426816455126257934018073057045199035247427976666942719232656207416364084961854381319886430491582700162562158242910316952497709325325300091759595818499424639422496055872942106077859540724438862354396319366362845664139920658883362444466472201052117623444562110371539548726769239865822706374529571688468968052764113456245262680434485732637010863144793172697993646354260394865418500277615757976833199298133668523501871151341160091150085502673916568403815877319168798990245606017181250999322834383838867679886624480224728939470293343956887535677280914043725654221904984789334748563849745370147214295705585504160693983038662270670861926123586201367608875765106278843102591804994889499420658693053174798597166753167717296942763867123204791976771214491760106291433663761443570777014637637770110747995151515595391996023916459906987436595229340109234730097157045108102612385221050853971811857452461166308122646433899919141044696122608436738222775748093851026972903782613854939395936844753388028580068596491896032036470445904824850598611348589282658428440607120679878652612832614299387136200254508984523759962324643090012878388297697765505630820735407355645971464844082656084257876173122259298713212342272652643052334961218716319869331539520966236374650219021116489064412770795078402188110615988261441914090349088683379655293485906600300582981175235139138365587279459222175163876166737986981861955343995466341631808294399236746171964923930947848641003206893502299372104810160942380025206120110772019190497612457507688294709777069499485996406293593939932626117899165944773682977070619399851713211687511071944186688434443411608451862805631462344173669935352017683061883449110329948010237372988522163402193678282923027230922474046079139689222111802527230396562956155842681172186473760978166569868807714099082485987823336420323494756490198139970656626599252162291447524755241931845577818492251231785074753674715680945055534378765710963772322116710711537038597503044017060750996932398216104980979082617329266247525964712705574928346878006297173187771873065533189224361387111557999631472721179493824766739600196306673244881924647371694216321946787517232173462070335804764349657517903438370995500595448141201884162882283912514144974656529937726579696140024874569007805614318592182023298526889296863765152753798620735364146136117018078887053375254498463643728166625260134871906968978456956877058040945438316400369366261320806078880498799245782976574153860661598235979337927242842215481464266585001564486230323544523327394599494156645603391653073738116808241867188405724156173559697501570075684872892037310928438895919750737665063311668852647648821152402866724106803113704678582083616774580710263657535071431731666402026072518342294333054971954575064049188783228567329092178858114399530090427072057488878124006971021207586881284359585173098820600809744576592829910045017255225042411691337028013876029641704442160470428508927734712566064489773193299666848361308920434066086737478419114880887999438784110150471679506683186116874606714259637111508126082888665117709670041955359957411195549166257408011375435356533344990503720833389506299273325032130270498983234996109452194971524345142295456286005636655954844926224706278408692452815423814270311423703527044466885690555841494646296860248793318061396836271766129951816086525007624355031058111634513286081877894083788586701962350027304225884355660638788877720784298874939389059891308159751281447102838560496090278173037968092994695499853786979724424333179878462675224656520461913760672935073892477094817346468246566759915718657574326182607045460089782716620626338047177924422246356424437589260042535821151509306691567248530162765565672662460775134405651768132866632414503161248129479676033237149721624158503444749882756230053091951416468981455208777051366257849216736678498944345792212445219468657693847776659716036243248478909659772179567725775321745945438193833019904762022867486280569493203065516025459324191521849238880221278617146069218604278899519202084232292715177160937183713460405654217814296353755241158264656212412326395366945285076489728234387571469201326589282749015756193607534257776780915357054596926548111809075989173303765307691458483175697881485095417682107468836718161035765227834070432222461904228594222649894120446266160837130684376362418325932042664889994674195647763931426670346763276089965652660550401787961013290993599691759091889472291506486891583466542602647803787742242433199962639017605860138062792993044850347349526594503182772583561771361390867378677272983053792270239433346962661830918127133630290533245182460400335620916890516583747618483520859616865581501176689995775969596122426043277980785015573845356432845083492824840650253815418079379279116434071342132624091154087827836182628108991578309576277270072708656243967577035377253275764168406063848229574899089160359234132533472791222316168865559125379104785339463632169028854543240441491043132953064207720285185168197280899914776977116318169646679851817290501004025098267134058210042192016635702367883153837346475577785903216199051147578709374915056935970728832458581830951753473239619414351304183840689063754584968905666478846606719372230129054043790737041580967082824449903322702477785682559491612376882608450000772077115542035170969492017316224476912667716802736392058370913432241284529736600816388115988509983491265787377831933403837556219438362896193219840999296039280311203698402910484562735947792588458649032276637695333014870002883767486356025223730609899871826569482417260516654068768248488320689526422340775434125970125512608328694431443032582570606934367907259194038450799721454867962176461948566868728835717672405126411429209989244146515584198128610621987422476869056393309524923538508280171435821358491401091804270922972822386470447110903068947658788666872440825562949999547980524555685182931859633912886866886510937304223616972789330618315002846589907752275044978745541011416613911354441852354162681868493699635500254305853396581559377503653600585424589776759994428950895749606152827746471253697449303498747454511213290701979284903067506916187094326898561496118576286625548355656496670752727915095510695365920897782517904727273604250221277235853033719649818582153081668157330883600261239785859318735969151825827955993882343283418134028530458611648029777504121029164835540941833310979720677813539126148734452470469338209568339171275114192691595673632900821037076306732727943401766626594162345850338909717237836204101418635183694247209768487958370279645657214598505961104648353587950355692501007219592058522492994379851990484154022884140200698026899555154458178782880979535167026135230981371164048198906841234969878389469823856815395590098721214709547958706070249512531166077758495827295380058098310482526022782416515729172260355367833689142174949191942531507011066339288939430829786209721753337532866869905226284711955081606592359852304166553880189469566023532844361337972071460244625411556545734905918501889490183260968061346583328266705058411651907206737035443992635316969832042332216629205808085844490502239160818793876537023922215524098876028741920322386570591713498548171100437684555130981611655046165078879980013007524239839200356859850135398895024424586617563037523971027473209060213268972365982283762835453506088072770158045258147141091732429666162663548341577549472732792813394372212355909861531776202298299951330950338766247086188670423648742547939544456491928764405467634400420114476616381743721968948824585393372366208379646680779703461114721589471805702112752078802102600421339543291771741157815790603267026075515244563143644329330851042332899847097276751797951883191687825344801676634046576978785979187257463703297433993764771724745057401192225184344681626186312647856634820552422428586583850352261246674343701169063946642078257289022007119856779359049292754922813534463928378431200909187884486531447404184035947238952762256472534400499406043777827022357287848711564597659651456864133514969792619289792304936583843033426067896590396869107454270556467868023769764751918354666555583141409497174102349571882450574446171308725606953126741648520366756316596753519545359241011596883785604565083925073979605505300061872326729858636577996295962261886016596513645287060422436748897212807797565514297747900291436471130875526823108758936235145068642815192878980689494054181834685975126053802516350219709105387659058704870447272795823717325792613516583460760339064117853740820869644280540193403434499982741094338142175738626925744417456393545217419771635701310340175974021801530269649215466489367258798244449020867721625228890799320661505443707901407128682116849276460852717845353678910916263132033030617939803565379626470471461218595863230730312980585950348008032801660324662111452238303082775924831420175126774175337327733960179191710800174608779212530805236803724051533904452504176792544902441685892780719973465394194143012061686709776880379954690819867025937810924870851653713693422862444422163589562629121564618647032501952543005924926844495850702779937184195615403720656874966559267616190871240099433450076816800801528250461934402642053395684720775603467097374761362310438556583321904959675884750688448316905555291878263173960476794998848389927060429815350987939186684517425113557042505085410840732376133277649682078655731870921531387269260944356616561638534416926048776901849387149954362254939648467150195507805994370598096893935228649688154049063553950716859914444279466342869941811375454527594611709821168366162162204097786101597660623701638606913004843417361150690945768203822124289149880145902451588624172564312463757034182300939088228858038473190620120191828108111093720799493011758477570690096764698778958953066231588889469306103561535467905811094376708714179265450021241813970813329801542752225965901508910812871976580865110812047721462369058064953090363776058184661986296062795639434620492713871131644390708425233434153792456882860362277343732336216812902376593757715444284218571558666087040682351747825827961021872849626456373675681826922820199463597699579991219031739999227057457537631758166770716546078482066274807008947264863152329861531112895501671601282263089247284322215410652911225004839653923490552000534703292662159791500047046996304320766492222203549421929190678237199347699073540097042431388544209691923507480618497532209639629510236367186567792764336904384130864445779714286725852206241180963895537449862181816575158283071782812775113490223600183703083228064229020501689642264812833591165778022257876649644748615424037815279342598723603375263171977290720435913795748555890507200246182136835942259306762774857675258924499632396217875979210880173856316649807547303316857732158920324334305236229060870786529625513485837377697762436649854490251009547863580762054150012920872427091370136691929190908777698843749485319671751729072575027478537932398418156447315790257014807488639810830955783890956327707280121670570526331632427245458039088762816171330558156642488830440031149287070218336978948519399628022411155856370803217048680366165372197300490925475319366654353790618075368207425448282391791635445732256181120733597856663348971745147938268651032912236741722910372861814937316837389281336043875888885916176795069241626700760784446189543982974250286894964503731327887075245512388220600256164034695091197724526542760393688687586947008570877179654080839525778010379175895790648110931511348649544813305397871037075653399930656279055311059748259617131719089448406370263279821686231500374575655063904499709915550037387380182194159820603635889107300320610424464404860638770626661476118569266954402126146321264729160391915004490438695432340374554071718826581254054818862901346875181644571458769305122039132655234630123835261909078391197110234431976845832637865910942307925034542947340496906440046323016003283547480743032660889040769282748003400950255494459467077119536746065134750527736547168197103876245562296231565590240568393811527741146419601271385024665225167450342555204845234627678482347532458847231374923731815837039128977942686580424191893658784992311198593479318888383664415791708784866084209432686508821657431917473120385965536768986961773756557134157267171476669530307256816743186579336866972299913649052237428740433769935410235585086849358099781766163575546303597917999666405026781552717245780412296098049251408412231854917764903222394266066996071412761593040419169960420002420622900033256703457288923626600776364442552697150928718045604921503067090536146971847054080263685056239928319495722489900321759630735264385343194793653909056230404868766865244364061154735026373927593501155727496552955943569272402379790768980678316461545595447647892306867162480435315550374696443836831375692209064797183901166074688491786576229124082521909679987399794248053430079667436070858686338176176941298997547526792874594264673127258355051309170546657816580309760149567558669015714266043176185779699490073546908913533771350011807492606283294859436961443993704814780374601345055882576153583919273942375338428170458497419219995503819674988993507235236601111100469406593956153625868934946099447828952273565566819175717438263644447778387656659328757654954832230876210734031718581534462046145697185585691990468568082471066890548396203741306157796151496542227291177638897996362774479877215777863526349219400046826168474193095372006365471552290186050822413738519585622453586512602174107270576110087833610334553622181486503141839631042622555948989503235239274665506751031063828651393396549467802751553977093662159845202979264546254219126175207625674723032645415487212318439991648339647265550357094491734443504960017380373979485729683566581732774752386880496837048538246026175344754875881482820979975755068800974432255275859382861020238200851762319185154278842646043524160501528171836037004203198160355626798028454248033087246982781199730995966029613065146744068696123879085837217535048174951351985200069437750338705867598754139186236475988764848610864776716951821784991378438845419866959535253696141159087876933757308850145199108086306816203361033720821145428411975317070997241398845535347764475050710247649048488347566639362935832159566910922044575051246835398365385044726284929778877630365915034557217924595364478307789296927481338469277098540313403565847153594334842548824987824210989247630156845284467717331543008050069223114758934095105532937053258383390612488222556648154226772858958694566147353361631787144918090024506926401713840566680264858648874391546373570632404384788811130775760388488804081216348704116974613693452187515843736034811047800397903645508496576009263726158748694063283567656048634443660139840731892370654996518415084868627568291090497458577909999265446414401304445602552398078978725818082720987116025745110072486457022487984942265027425895141078170986159314514831037297786559998580299910202617701704704026908478993742963281437484543738368371388770181618431615335328711265753384048768627065254778706143589153388883921364498643606720660445294231112335240200039226027780582789641077943738087510396450890081326445699765938344055780190151677948654992325070140309565345105777621945320862714820880378391921251443752191946088783602283414204073083571821514944798217253513018144500710067202580123149301132375905976616551327049461457262438280463010882768425111874617681186480003179628894795696443878381727415150188820379663534752914046809662553250660326420231179125243162323900744142487108601419827740248552017313687878355930917001088275022576209428983007215700282255281776534195872377325389507391421300641676306612425605913529374271514938037833406838171051469531561390258331944488671144178615700419426919791331897975948447215973472253203026314598996529246413873294923818674562907713037938710323227793122201721253594628435284536152947560480196304436426476030296632534198692716022129217734315136784162476691679860433884048509023621673364434700958123524543920025994312328882212266748092325658334538264360580773628537080998848934764510129476187417779682528428339475518988421850466735379145520117152515619863662058411742463209813097864753672876748902324384329826608020146480288657264736800533335263278059012719727781540647277654838833552064012513968189364407038886070916929547272501996399239623684772056556751273812240870729569230594580651763486337744215847435419141142125431640479340660427348192347144091660618932323991984425941849148258383829228160703848409946613164824750061018300252377239769690965892653692062327147312133018013797402201296475532736859734238294779164863298748248351166552466003678714120683974853389255321085816062952814336409736107550054016201096707175537593975646396409876060558476197000965855543195564024888292417371631625955449412261638061594789087843098884849655285303386896389653139183695667517082705111179127835242425143059117747089758844024837555899036317436484708386074849864755449110534733502865129081195118937308649730578001429752960235182294489002366166161270429619317596715510164694654750616298689682056829545476476780133608196941418710569680252298717182636037525008746406372199292066091951566556232385898381023608333389992581805921706023414627127917281183043500693513002064546012281006404364624554301589511584817013491942448949665606476261343841301126854381705169227768235761115351149935539767474257862831814101642761454697174638709160101132416911007091360479007421423765259384316897422028339152821294388381836001499815994336791323585574165114952146183017732924226726528823033077304673811092742666549593197775598680120410053715299230306983777575441956346609125541475615824292273711966190939889166035311716824080796888304214983946735366849831809315432064459974804775506791321250605328333402099465160352911051956541464517122416653106622611404161203176221236684235444875423765121094233043630150333229629411237514124966538598012016289236541553518000339302233450277094660670537140859989038583604554527700179563512706563239701072461427752543282820833183275578349369906351936463849199901635291464292487737195399902231804418645777668100122233669999840080310682549323322563484527131610947489682880851219308604071696238312090440625580691038527291064834666555178123980727836197346646600860048030280718134518637394287429490324857352924927219129186346725517517291543965082619183536911399256841934194239922092773523846280133327988303422498629732667558272225124743010699926785446955330907561617772235511458832358162417478790414828353580548077568835237350301785988681291354064506431796756555429968714340797767766993539818865849987576214340623882834039823427125492095101017280102835161837809710858436780403612100928946635828248547494556788816197037364946708297436911226578193311817982306556321276425065651813882819952065107383871763519758457224384661070317709142544306219229351161587054038936191936808890083969184869024459947992505087383085768527158107395030711686390066977005403106977049296576397345389147477627088323922538490806581206061074410775630923288469003329331391853356243427036600336437996109277141400922748275261613186532654995192243616742492054044437451607799033634847687883067635409883799725336698836383137172770551295826692703848368116827678583380855735405015509414190466018965068303314684218956130151541724222772174768950522497983109806709658904112684696609799365655514149364057725102269910621953324560751928383661678845126031001720082446646499589642628613543175249156454711198969479574475536215235874179958520801234589559055737727861396996221472289301956159593365631816311774178729754284656280905784161112115377341525418332839328616834392228931902913392489022855931402989219590674991894288808470033452359991571418343214944509579147335270975008394949559865674112306384586117101043571737233781606733924736551545655932471327713307483958796013559365905552344196553596739019448179588350330745828515712446223941482682167993775371528080222314922331855124865001286207256059532101241765978231792105689248824187848506506632348779364376230253629326248737757873550899176270862820817105521468418555907555216108358900366834060521590562942570778302696167027233318515914809247143841266021935421744137256665269756461405064141548372040045836453020148325947433542284364071093468296318291118393110307822590726318732829190374121073591228149484157684826314820125613899627001799314765032062741656982686927388658740128168995970388697559185204804790806247997246134240913084698110124366275682625249608164557849716510121778661941180983508833375292957737491828128485258156811917322700088109067870833482496017631410331959720283400604923923718952261098034961475234089191870364100170483671287865578612814587644411898484069857934868242459867072535308609317638628378963740830236960389749143571278916083407099969919126841824632848976459818458868649227088970759095782067260417113675968199351561267284170766279215276046559271616531571638317022189054945656970793312293238093345149188789485986761876322065805986473419039133223381094447033536488477914955010390587425034166049195633180763774711020473432248937067707806678700202462505581828511776430380079820732159673240657314132228825288262564850194178782614107479403786471364685335225879072360451021864458497193922575496558063893949263379275080489108598060214776179243552991486689442788403652161909632605800663122980271249479709486879143883179882723223826774501459824868174120164831241692397007003267101040557673242376577597563419708799029047859797554759738244744209657475154125287527485320987676160806769258959984651470270270270486847247018540820235881019611865669020112341145268314239681064771381401529381626615491184340474396870286503059928825452727519260194591934680722764681116931825782160473873610752286384417093544281397288939428324315009320801055772584080431928693724409692174740600154748061551580573057430252734290160294035497499787351325372807691745397834206926122488899119930657490288823721984660516195431746658673183037922304432494700014657457569389169040747790505185735000500596352221874621482799713569773230623330400061572826831452588689773739879457640500450585993864463901355366425591587237627981082329568980502498813962198840322044421003312469721994754705702668391185628133879654593553541208802784646337192255312363217329610211221024999459204904806199621686742781782307182831511598917459777549917720817305226044772367137837634990749223113719085342151992373471026171021870520847279510450321640601433350440996453404945392222431965265224229916898058611068726572166658954127604724400958280690500858062709475577451340149291649811262584691412066566612661955110341898720426052466136403277810303839753086313785740976552226124757986880950756623749341140424033387507538411058487531931433435653622569850867122581722216024194382442986443980815742735070458585862840210632755415890506493350975598888185276023318407299797410829414496798779219528986409094044240899722902218365400337192257491495980032227447219698722092807474547811405128964484496542252037410532832131283928487488938024664692210888857311579942337883255920828548790643153369364942178779628462860918218743944375067494683422537064955584927658755395582053679760730430247975430104117201089205769889069295988422488577236664578526936480653067158462443527873777923592696127716097327271405120682227428529480800486221285297346253945522694306123868712173864956519069269607925266941351489661277948657965695093987975050077175706641210228004695185914125436164796894104693061527624384771301293609309780644419771427175316216045845904830175250329184483827274293293474436064709365671157110503943029491865164860363316331643337263986229085624444705362587786177575937389364018066357851176130170191823364016470776803103126259001241814131120960794909903625335470511843810033947212679465977087086819352388447050568857589163899107110068934960263819670505972052818541093368592205906118274060258930319724552532634578149585459589798387913789162172534365100610230675495086737732163655401881359914834682511299073775955699578504307600184597705842243884188331361030863478064706418640219557651695931757944363793928595295448467375972808872256682836587826533512051335830371888551312839629862148838082722095687271820052402956509684318292863023348661734270767886781785693534533440677612112688804089822513130935413186652268277445958747403192036157184732380731640361013442322259411512410166070427058539207814894701518442819325843487918938632569940983639199531618592345048505684283326629506189416704996177001187730701098650446007158206986147723068412324971132860706947433456104931748280234452695030345020632082045125872058353763708944489852364104493111471084759101873352527643433255190404271046194556120960824776725923928530076384981913016894319487897256720021684144936342749895278861831775989953153712511978557459308073160101212415866412626139350071591876879734089745812605422660417407996819261864140872201541600204595383479933699751566195293959320484515442467073098251740298147445838770484559324364633353251803180620350390666216638818509456228906329389934898901850907680560878733926477611568479337931563843559652487028031539011363993719831876696081568314872845361550474203098740182303370551452713247673874096857063383937010315982387335138284805235140542031774958734137833187253913477378801339023264765354171543809509400580201027713747489196145783507248761972407392836771634305904357686950669975613879058737687654125947943935219986621236521623058755553359030973188521588198981286457182082174162701764605945414317885852836681018503013113770842083265881963537600272495335463443214541692165970984325930035178041202518435026198109046419039303734420411917037872104113234257733425010658227769141233938600257433276757567034424979733851439210961895458841775517424449165666664390007363391542709337584162620431835072816030609896684416329895165950606805799176738606170836170607626346759701670596648012208662130966585350852839048645418435909343707648882332328269499482560726191156682810421117201034728864902246239739498749373922240427965801936175042183550744315223299455229107663991266980332333969441674716265282706912938023937689073494730335878183158116383553354305684847527990305723982162092013951556964470449418172425162478278203569316742956561161116833719212388317118596848910418737390184130658100518055557991257961644841344148597114083258853943016401725030018310347606155201871971191526853625135203395475054018261004807036305954361855232707733975768279389064116683451155149663527484729177893228061906444657711368619758314184720921038650040897308799166093925121558709031122629149142675962870312383773893042863497704183641778763014564346100215214890897465736816452486658986223173145166427379623614518726104166211990519895300094099044383971325878770748959199045768043055981778823887260212014757262021377985515052917701948055242555445101691219391607746489885089896945332456242767407314115474511529699998461705008670519451905095970600036290203694958611661166439412565216498011433739283614990900703261579441000328073878058109314500752193373228245951999133735173782927718619887421241920578639163855218221892610898794818845525874358853219521469153842111593870257199044881876616069054963506385792820916306827162092233765882014018692553415452469672130938252897618257628072902879373752793021627249795642353044573458250932746037547464046701261824817611931007505912269606665701374231305234408894342048900913265346332021892637122626216744794629907332981591268886433653112836121992986471502069802302759332944101998053295420410532640834535281836414731548029564618862092160480932394414625048865136774710557921500271691565751334190264977058209473561994353996515827143822572663290767894588985154611728403272817869786420913584474966418052137576798987993815461616489547352128698223733119057877334161818664629599681310702085402687350248214048059096628896183969539268128851663778006615651893097629095618043506231672692425629621991131401811168663581576729706278381227755646574212730924535102489359175153396931352048704810733763818268663420668978866538385553080550556230443674353383005170334542067898527391783555155194305378637297462408595171166508502397094471665902252938325117110928340560965288649752926177972478309190744444759260953712685688036035496766577312752895266613863168168286621575736578712815645567080416736139644418098194621784950780528774628528592087645139973405418182762603178090110708638066887871595279584055025610058771470583468750744987634227100853861875008106347597159408657787761645012433057886153803209203843364995636825762594079160869575250427882440910210034151483196406090945600852109422074266278492028349738606232141881449115901710419296862713331051570276142809346497206272144083277086567815991158322727859560014496605063943177888092989954517772641533999319990007476714608877092595070838297867665385814607664042866718984790801896937067741802017281817050186469254689120394365438083768446373897512280612509853130887258389022737790609383409348550085897340253347264875028056860139878409017489762295251255523719977194098707427038830291118928814423141049421803840396356884476664678223614544872157079969096075146848285296275102018890072357522672786993923400531084462576547917780932669474236462995397576520108858789830211993622651988081845438706602605923092689826297154020059552511534940288737727122755925345385806093256842124754898588731585906905429519448472420152867875435321405951678075727793306311418187598521859987851125488739357086312680565333884883958116048639003615426983865961989762747510933008391860375756555490216775959716781089607300843688912427648364474269958505447893540811305702895515456526870638581639031373095397854441734723956587910222784045015797416388603993729070464462356138215407750290005167605343441848661452093229283648249232411139798351861693113424150713672656910574068387124165579410963045362861046072584159946315762272347954598332720020028853635014434327704831525652234708135535646369942202602846830121167535393172584665692479242365400313502289933465711774834981091369243275723055859592928028017934037372539213329176267059218324848179372062823733124034758786181303043453927493055734305679855685480296332641604583560703687631900804654745282738830606350815872040422604021809143929294985322634015168697324572952033169612488518781124478254517782762433710913619717807270489395323578003151099251392453743309523415850197557172015316995255786934662943465450227195818081686230687570852140189806306482303774424596717442221095147094400695242004211512514415342432068949908491175187255271399857133375294392635864918683161984740742072705963653939693174735419184453966102735890537547272613631861623316431841504343544666766492294566780661862696857504859446656210948379513732861170978167004061405499865902181107295363528603588930509941038244222397562320011611572237660685285913204749998842722770480808527708085913140467667357349159765805687761816520072553290231270730790555599851108171446136175239263129524042655847817867449779477037173232586330417213147766526350751705648675622487042190931814078455046127525567338805693666228994415487014373850418447794435512685474737773535396398153917230695916006120729251504635855157594394260587081562753620784478921550880719941158880124794785676032856076062846426095273876785362762030133268823698273515002136016597955154332890662185223647018987244916912518588964295268101720069362812934057770527452834331164998264254399350774528219837627138585788415264290182765543786068661727699810048991674492497905538328582169783837507847784728990088790307302391301217660868450182988177735187028780450721077870657569480293398184869685052329065802286648484753815504150840012420897284498161044874008008070025278423922861656799631377429906947965163909003535966731876320298411160849782381051589208691747701863915998873619086136271298509790023237681259362641588724434410240309073517726163954430267062857779122970628954168982804388236954169630948823719549355311808442109935257772640118174312184222069413519600795543390760143827066799571503733742314018414887193708488549803849277416734309625708008316915234582484262961152769463812461256162810086790034363396381238477702651476612855595934029030318071980386059097233636786751232569640166271069362489846342639358541533846604333940839905520304045283546181700459119945173741878508224529614744850577828816474214048408711963884193392100134101036203763119736770566459670028517215052293635136146487058736325520211800023576301333052661754712949606975704295625810483398154796820822777021272783318624362142568774663484984758540916899033398182652842900117369775707436188022045195504543000523678653226630511612170898162877743025899146994781660574082079959203241959651171224437913478607464637244302579840049471714952022943586415615182068625812579316408403817860951158739181135054096576266679315907523469027823573280499940946490556359743791850293407395827484344716044296614291624794351485915377492275344179391235899201192311322102089283947801858020896184501985207199861433892729561450714347740371281366959336533306712058375006358514636355379169688428404883101193032315502872139434185506465510356801075205637250884434265501710285084920910923102818906532527040592794549291072454835666914811723301200856140863097517989821824870218651746187433889326917516401285705752380523876562841972122361156025780120459853116440250569061353313339964108067809037503263397660077915023364395099571530185097717202933089236179031029751753451616575597656326563945019015295475435263468799734184600304557298363774984475849869162054481997227311235207764956192842015095944701258977361307490404213185826588904085915506700532765779365713964371897903521814701956387602471660675904884476633304036299171230847694310775519117836537592800675952537000309474546552056537174040574517205399144964145646052338557454553066062921082714237921624072901604017418876157378782364871481701939621880940686939547265295352902460888530601753801838382474513675334274150992391935252026602944834262401368603498603617742616957523790552264317976473705763041165335700421923888745168405667218968786919770935927183388439969990567380122500773828325677503713175986724428986475399940177223699246947381540813072859853354933139893661942284979343316925797327218169776682645929082142615319908350188639065831878225643581773385254955592338023131278978438651901916800179272529649579968969230603412500561607564673646185820577845284971368353127469192928408903923121563293568635794562476814228671050186764419156924755914384275942784150199636945392501070042718932762909756279401438683516499376660965984156485897375250785882015415709100918676097496192115356130050125599804912367467303337363421900983219280174214447828173710441042049576355902224717842327412559906369380048167904100985765154108091317859839939214307148901891860861435005903462787090337489781613821553626294814623139233188501892103166858671574329706818910690495540431756967219273747500645699030854382700070112825504749697626020107872498680770058171068216441392332318867230475787344053804349808666492680214208870136624433231349616688368226678313235295634494067209850854171560783261802027044141064362331987206055617530854499743255517542732435877729632563813362519580038183026933668529377838570093300539697185283230150928539133660487505163552573109723066873952578684446609019094784853365091947571747779055056628164645666207932170265574940498530024021079968588010289442645574193591255162957243886825444113112358926253635427235557102112077070352060548063099884513612473909580868761335736904152517557658109493296752697858579641257771140608102356408690720694270418000874135888140828863889621525678412721424528652269636297990911256459366792793554672116349952935935627562032738209313084453201638765250682982315355839902648079814997736379968354621184808091475452883439831981412633314169675743226169176248255383563280070964567901085004430338650169728188186432664749324577813294236703481344668587572929138079937745968186051505789202096567702392421548423768619494363079538264692536498308931985858175974181838826427952033975009852435390498778086832291186379929368266407361957040340597728480922797356333508451983169751959552264211704452143875030151352479785963136961604165976280511734129948421336825392208710934795988937127176859068074452940037191032597256581928771270559564330926502819863556268688323052886989555671518066979305005808227198453453428069406944143168369569868700363678829557586925954469511089673612027570134362474209471391906723661128081438516335789111752203572787219419070967543782855185263926960584501081012664901623874155589440610048203667485789772058195396147660788602764802685865613080540324507034254912856652946967084351489733286732474180352473764713174018922951944613724920154805993610369213180529204426189223362726053348207847458954814713976433112709588385114038548860686922232928695533236569082462205514999219120908990262733146395547885069764579586947253526607648672853538098875454230322890487097918315748036978892733004303210969080920883765209791634097364174607839410212189159683475249401158961084713162219989352076473309870930436523626375916205972237609537746736794674602281666487663491868033498338209058845186229990686372661920091679538678265040604454692485960541160060467817207532031500563526539122217052449594479353280404736907492113108625804253782633587172913218249808419335595227299451794779026981836075493513106214201470914508314848153727211926632176226554939707868447148158700618510791772992600832257506875507579062877965713420344277533499272301219732192849353881346179167676581940452784173081469704605381833236882621305420825931238107527261370779253258736716114883633613638218288091923439723253806916685704289857865546761601729546192835554823581954500522686322463432808318358060225331057918626503152543996104514539493707232448767493105285751291943545275111210868214834390490959846270748345917493534628780309189955262878539430862829382560830798475614291993014290312708146249323037149889790634405812127177280416466760586735301886066553956813225763474086549742857975919462021686359454871723528769291913988693171980804481748377893399655684551958638734900166068028665737252233647331709429241342840674609899846564653395366687106369336497821556259227310662301457876993733939851638244314168879278088595949582723219941373094893573498600507329367150646012478537225670616406142126471526691501214290417563718356961383491092297555758524963776932415690950992951602733784411232762853700578026145441734928560687595072924668533946988499679844691645177704274837494706325003259903816678272872276412183622939369189141657008790052770433707197479897771609436886453472075896451950274505580221532564054866232171754656648655301782881801739766135466718810734838222762251775022992050775887013787388927019280386267963529750636387503236202314626856900866705246518851514359820282989601062023718709901832312605141257768507450862809880761266847176255728026186530029266912209814264569026436211096235731865676544193675222002516589648071558470657550164625437593631742628730253202926324225782903408458181481056406500851325078956813177171851259897193207543434675047666975367112211102283587422692301845731779515649106903647388565946342631852254521277605783791840327389499892106458091288172714039466375162745221462719020536539138301840591711597012332132358765380923603588421519964810558384353503362558964494320965441897823596980802118200729605113777552280244169447337308924261448696856393291027735205702496570474088723746877233615904078616816373349904491957704659467522097024998139040421922291388217587253273797327373530035316358182916573334446534524580212755039195924246323847922891302702250477888935646062255930042588697616712728073600729352569948347000292100301812051461919135206819981412652041191755357021736015643740926768985335986900391239567861694383227563135891698811559795346448732858629460046478885496205013734357582570825643541559416183918212550965842569782368666959203435837840771346009842523542147535731955714015424184909054714416192464398468436653949516290182543243883801776520492217578965829465284496743456322541141590007937832899922553909618238595085589670573135582202530684017807923393932521534474632076063142035880297932584257667588840736760859649616892125261294381783782545908395402839065299831682417249567044256660783368349509689325598633421465905024589299549080993606509012877633871483252033633148355861098431081504024521793420778927184492249036797839771285977586783348625882192420005875221187069301464167256039135358362862102132990012992446606875103976020861852770548279296998036220112444170506267182805062897495547969891029291786542329751749815627503994702201479902243221697131080334167042219508287310353046564437379952155303754759053618601345630435738813872182233336073371055635071160095177071590403530030649398372227288026854651206997754705801622126272126708016826293455559391721536639749328893006367624574733972721041114956865708805655932580725554907044092714916445607378375649020403676615617368787027769565792014919593127785948177867097810341236744657350433049710226869442408400060977716163701902953950333699566692061376029008704966653722454658269169998338461556645406231072351622541178273993271577315677318386635846070995854162559923915069165938315932976307328099697188542290020760772867506787228673280131228188932604344019596339609768118531235040860036834405400352416998234415477257200980065505308683542729593174972338790050923554584187055067371377947225431038829431336474975638788595825486892209044511690102981799750307065489182926253206006530749930895548349167328580435414678449338055660164265049350325350869340885323519628299702041702946385454554926549235954743224051838964806133864571678515774265811565256946074525179699638038839282330501407026332292225624024607318222746810596987780900851077983052058514874057361149659927373107816058447595863329312212061612047816346530956365637682300248532036769034031456383909089420869887252336169564886553103166791147194351469022138601644102648554306382613732599756490281269796161479513017252940183111012616747074986584789047618365445049109280947874229520240786349345278534687609184227849225648647082563662650710395982046609876878383481650674381647497527073026041519803218247467161379056346053609127992342828917815732339550671547464293366897382802834157660510347739557998088539938335171562533537138973209387708638528586846316206689827777879198654644010391090374221770550404003395558700067025627940951404440505415481180902175486383232654922219242153365564584614042644180124309428593792593666427764531984695187373371701369849790969658384395865532539016564879262054136917906262856344294678557224224809115555589837475970914030760603459000266124397047451932453523391843702994738734212811075547509158242087523436079686930171843345898516517164612678311061014102222871227806471615509512816967054804950793535703757235688697618588942580124526708412997231771695048956105042896003201047655477705272142783294840748807354683638696074464511657044189741572949144247052698082907059420823770186077292464095577334845544297548369582123289090797983310498097175318035820828018465339415280922147650407940406097726584453767573529413625171532736099079626043949510955258097607326650615608562961542802023086073636873983350079667337671717557716908003240120935802309996465245995787566324317884437293274775119808489541636204039811018764927088458962199259595834842567884640748598269630467980132372801137785599099028300091880977515870097700172618028837632576486311945669053341077196596252129572129963428992558139974599916195993053995332391594162780104912489584914930628906187515268387034909393456948378445916542766042678563025122730678332737329741630122893786762968930421479307110453398071696092509886394727250004077251843119614466232113162997112993531908472609584726957442753824322120234602632799584771097802114264360197084881994706052129449292207444128890600865264915957775437719160997439636636024367218657788281046194983391652407544173203603491536469178879710909687994011684166962989347433709932455461463988371663215118946433282190120698283503804670470662815808225976395559459798436203338746484305264490338389797717830864795572183989049827110149294428600839747213093102278239368405289438315808853000266809206034388310311708629347774342098307072053141225814982331966090360006720802830344185793951801627570958915969176374553376537427333450868689873103613069890902163884581097552999892023661686571774519509419588633047757539521690041412160657289187011760994443248636325247049488574240504637896546700787422775799446234712237436606062312491035066082202234630899019804501825920683248254778152893079962154187785925127888138521095067756124491674731972442654707511820938437039748251222778736794307645969111714752294404241752313542042320478841870757517625359374850761164848834804666663760915599551742998825624841624828112323396751514467908253180605225626976304621074325273478796046867035172585207076538177384242859508734726187429745756460568227906516707595348990703677763343616451015840593356151167510165259960710058444003649256995614039631739357678735581370013389279380598602759064462850866111610188483572721055880937363987960375071953300514024990323414282159908617385128649490433231207249683810951722921429848788407086719337225979381914548484062772245118002784770835223564623837878930867039421081241755556641513694446233924030117796915645215878849051704100944651613667891080623410644849196983843178568876667864781830447672360607007150119289037733444129625974557807646935231318364718850354021691679227777161697029869308283191155368757890132661913164101449887090210797562586834647287280318441629870440710871216216938683327618352671222821974158103189968349892633174705957987622761900965868556361120356526323736386922754834368450524459654803920883589344394316016025590374956085527849876097397028187278442036116603044145317682323601601274988913227677849546256533004225879294216646633931569177128174182280757916961237003257369327139287312262587473326794769203941203208059912266339620414328778655030135509416280953053620289999973352549151875503631387436352981124175996444251379453657127592933185788424450660226089725519832206945745921080530660296851092837156451369180660319432652428348926058874064969954029887940842026836337970803977416555870292412647023613826467572654647160762777199380700001549129164734899222425745928608923818716054290558271537859153399044843234908357657304576921443851898891004561290305901300645216189598657927877225669801218133951326228861780859011797746055148567193481204343379516409830248366652822162007460047004374329087773065708573146725134162768675653198048071527380162479685337440950203033478442441286863288716177525475437832378183537316380209522743976584948842971174540156388389585407066150101582461707345942581931851868313106068636159217665391981475303903449121812201773237686530783112375460263122491882819477394492703152235065079085643111751305113552694686670447754926842323125410320211974891869519505891879017309799012178396481422538220769341814274911859995836311837301873577184154019639339383139604705874023160555026318596032564995802213517551775373396703281155164757989103236000045867250704169563445082095799470922204360506149781949746620684058111036655332947654393347029306627274515714588742156875870354759851258070096452728511802627748147129955541044817186441300680829046733416802220626656816424034658395433003715471693220532380747883902207341600087792107126681991746379922761111959223626173045421129352525857459768591157305311980460559180530754616759688193129152875838678907782765294012012429124160749436582312521969994023883680167002073243758877108474336474433032666045997900854643142442891716843080977052380781464285136157208266829943975473314833102441989388653464644479572956360176232291149560761859569007048959540806066949462721078827852785581815530414361411009011441724205647948305682544232456667510044381091945458549294547034241378875668879780196172281736912797899058379925781171413556810527112161296512449245964845109696770132329895672884449382080733862555375488822075321596490998850693033878401353643851312234107293412344189552263755266215687731180437063418940299313408562152559329236002161018882053076137056270559160691245695614531788921066080341710727449650598899571061236407346859735242939229278768445843235955245220865441518751721002047934289198788036296135848735388569486633769553861167810135460939819126184724132881129846171082898010256732097234699464308365171234689501003102672129191300066798337145378592478843158555513430328229392211213182290740118458823012425642270352437532742972014215621543367606338486591165800325266179925279432521998789747775725374900158776565061628526561352510372049706053855000247377075720201798015546256500923769152322287952765881953256070214932421875588034896662642580918268452675573061106134900896670158049030637326045039400993964617945182269130136446290518540899138575372830876309194273695697434771696864590993660445268706032914061662657159659021825710110349063384868893969670526512075387935983643829173719448061365967232058795281626999573738126140982657423534044336756432570883486036957164684084408433691913577775537245909232310205409330757047102061615726523599893237239729189067229693279535015572600709580216855521587657273943308637119538042706268874089188721790242103131930957921382855588298459063469751540433825911581347059237639754263682820773216795563920987122356293621045717540053207574708828555529469869869819084597409415263095756429298655404034087422872585080316798732603754344079189121720113392372651987829892773780331636844713509036161019101010832704320113691306551889199816435995331232507754057402412512040409672886603714959357023397053364886368813368233982027915059487452396758522492715580432435343529900184751730896792018456821436879458950656703719132745099849026082959491147713100469326577815692276585282374077047371712677743288143813085905979053990293990024738993257839581037578703664348572416520184218972074107266606608826923405386074424986021226930933442893058437150451466213307146392592972674725269787787516011004754108724372899395213846275078666028686697063810408430700018661071426192898367581799790431854567757234957444700133930431190379222417306051637549970876605229731172046514395613048634447509308147553997925363085602419030927329562102648323513369112132346559847313582121747624038485930053828135669532165617490752709420168660970668275624323570602149013442188032171143674971086322549294778055601353435267413817084736982546149838470449057818031850755397666496462975572878758723257887879292473830561597407710988501028317836888175269715479999873306730574146008603497956641641413609918142000064546939069024781804510584637616877217877571523338113664423617199797188386464885471241217249510686100626492611408564394781531633443592599262506992438341526144041780097773010805241737380251312738568610715077031984096867222967374258487649284844549631842186622875607691439168103412987776252715281301855821594429653835371351325329171777979198872830991724245964531762396855178562526026180975731394946420087108383312076047596318813934609621102607226129566188824582868124894400303495105143633823746410707572969757035130678181108135732932427349926639865590884815384570207724053092647400137316320255025986976716667706673565181737349106972061462576114871562696664987315266104067246404349008732663715895061624162067500469240059859038509978064997439526533710429901148112273840245183480176660280050896788480316618687808508630377150214866718644584499573317286073195938297375113723799473878186162973256488038537229490958236584153950267580567186940812009490394373496897412075025762643201017508150574711194700091653411289288424436498141213204891010223238146079009286834461825896081427255375849767338589133669648502503433398657745704358440557742209326817850106337212002496488414366291405359463441142251428574197155699536059998539294864533794595198100140318526314358064062729248540275440605472703371927873845325300382054527024562851508833280080377803056120870323558695830492723667881706029565782590668135230193382059672661454115907457186880171446482948107136490470851890691270125874357145500319096928148971960174021588603475837950151087952025323571681956647420731635608706002077484757308499442354630484647001507014436065023540005028098825292286089646369687800331139960422212400639101833424152424018378429499377974676754499841548545474661289475662415065956580239588928770931115381826432803469295322272417886621127842108870456719082714339027199973998594012651068357294142274724509393540491758654963205221920280865667128853681849658239397658730913067538737886795741516648125276256254936704891333775394631724970859597309360493776803275588157651182620645798226497359892863232212798726436779130465562781900669684967241064186155870276811878679665001408990652076675385726237476341868241518563108370009018776913790748060673442117097008923585000461089363953568191099808093687252991085443213411293550404349830693195943321490901902783869490402609130631181035284386274445472247381713305134372306852150240150634006062726926907715591398033440081520243943821959065556161413818187742592538509349386371541276899407823933519936106812104265520670330203760457415875522274853899417833820846650809140590773930431254179165479643904358383196863444079573329674812617227875568158774020510430142644474743799130168676585909826496509705387067649095052517905823556433661687186471618036955273772130086770370208012786869023811990262572991908126042052809468473652399629410087533217567134268921789513012567115416813542592264234194796713772778792103410233433972784637880793036838254692609346270728947009080802257129000840891767444358810697095733902795423956952112124396484797717897517138612355826410438214367315503468287544200779922218488013871364006302808388860503742933326599334548738212132253876557289689571390415578561360607495199756733873053988542777220762564060108334958647783556807424974305759282249911473781883538068271265137019211846249197358741631814991352632670705671450640033173690020968810645592938653903524764029928314866599142657818899030661038810371015997640718322883837330831158784262223398905276631459744680101176846128739688222887603764209000989044858512657464892464068877014760971820201360150479390783106482731231927351327614245374865820286736800930005371267418987907460381396450346907567045456500927316695680902816343727462223427122814700353667191251394988482788331885950995281732413289102690633538376303830510942007425572176251929790953880250389235149184288103002191352194175941485033384344125904746773850208629612672139266010376825078878189336766861141299219590053694885513502414628119501591714106934521523852728020710726580279355614173612341213321108023800242506614942401938178982504553619362800455753224596440997434115141366767713042145336389740534791354517492198937862561632895234946814383821452757580351922891011516703654890059313825360650119540351048161596543186537857168364276550621472292028390871907735635430691300949942281137254257443787446068318484667697715414332995130339223963565530394454636392451455222488230877129946765447557504562791906463089949381875716806381833823494714479071530164861334530375708288766483013037890728855525266552012652538783858076193548989382490290544188417244830489475879698131333107506348237490864923385597163425059068068843137543862310018348367974197097513067230954927848832862235991298267575839916899622807342455334555057542855751529061151527561091771698094724412318424388014833554514014874089400201563672351515614068410435827441541971415067003448997520983708277628495338363538693942610304260548194805224159533437434166759824081307282137818097052348281805299463142256798427420868107704838833946076947795698983910842202447008551109736094771556573849212031315570496107112928436414944417134332403812895920521804882513978319146265978269737137378903003117691445949897470757169069380266021020012414393130066346633700118729651184163243228844052286784631714373528863943350448228598938326038421189460842363033523208982719735738282721691470095147222428544401746546960685134897434677388840060277583701011413671930406956442858513426764138855893587279073104052733319651450665844783132033974446926255604678393399087604873162119162711937265358288134148245673525515911435193690204855135681764521508185656546909429481546821562183285730631618055516728202102688239421833026973584631503735044167202866110380496058512441465402626652561788004298553330490146039017192992775520378925243063303272472458363769725889503259682057765031006385640454159897052433552618735588515806146839154718479413079767549599324558196946271439268723647827127329479445171355069488372742004400363378286250023513514830636920295133038916456747053034510559840504734407902841343347877213181934917572443052482568839977670285455001763946710614228394676590251704866356102932391351360044233934841494868428861477317587751002553199483686778582259462450598017374063663907314548168101112133156208931120205945609064301821764315064446163906767665920141876534232872167868333711773160637419930076394503854660401994381961170635533823518817907036062869332867564227324551606444565285205222249659446782606869158061402413954732701464954751222931594647126674290019472600720921258252030641734128762714738503632130567340111337576221634560833576524190971006988356846093310920066812851525261872531705139886580697957619511604453734850779235033106418870003148122965175984390040944928102513649505767042213497063575792619107310319942622444494846935921178408337997521402874727859702164244162255444489145066452462973748870947842731209320418905570302877470676363560079743882169100459124150514674551327557951700315215209244737817538232331869378618891531489142976646535796874418722354359531240165859747563228981724149612175993997298924763488018627332896491387810082315966182183271464771062608534496966065424500177574050493703386768336613059240559122803404766277211619309738487931628147181790460607548220336695420674388486660573060562863702111727673143467647551468134697966582073287564130001138734620853474571071145123670354002750161928004969484050016329247016846397917335908679117312636459187584161057174660920541321223820059999251711270364523292269264838569338863925247573556345834069129226667856029131415038651769671948679402909839849283243833565408342504878567576543030512387494146542881208299939410269135541399001179842933614599513977044288801018110214293916034714610289070647810251642975099025971320622127082440086920327593823591419672332848370542880844437286470896014002321168513866103013444036535900824959168917147214764618312495279539979438863169473936233949824201572697986945614971779805712113088889704499814956552916357281293354989639267901516155139379651174829603884520601809087233783205770057885391437968584084371808960624040323454726853997365059006189722591930694639095928779461382633229258019411809031174743355118241937542970641595727404139576345048115956156073340193125383487196431872332849471563849371963156454060166707910671502926261533800503629944869950523668039805850918738657511753195264759030422784040936378118439030124572399661048134226416641083853240673030121695261044863373043397611924054893316046816345344617719235242720463461766347762917343588134220603531415911893655748338016099628233793562482013666627021977706029073094081193954292431478342378327960811141130137898124141365163687485187052501376604736061775792752019853724582501185650664952332268922372654086031181233518077881248988771623354695482990543598090342228722357388472901798843739929463874110287914771047212483387348970946412381071633055495350919020933989242891435070778417691440323094881863230453590882403286136479108791510025743523070101944658164036428842191893540497652497787695559012620034095366009987073149660833975098816900632207349730809459739586578542687335926923727918045015704865400717492736988738456873877533825377741408751008703626797094580113279439542760169419974480230643766808474221649244275081712906707856260195705076826115420775029861982259334770664443716145070458079057844926364005506030397189153102724846446034345427788604869237145813698571620598833269849482784128381564096254841522195908063493438423531069386022575531462339858062159067249554354901565976904769908505039127572795762945275334454127130385936500964384774029409479928255400551030927702365377900903554916303326015382440878041266708387730778782556948623813717503702527688306333548366400767531493544613615597424124764919539748246769529248027498072827046574296935330055452678270097300478926030075271995569745696280509941119585611014945789840676938433237556147589413443646865018066679912274604488161331985220479158479735015950377566227908373911392151091800908988635015120095885273217101110977560271471366403191840868128745952353043386232040669882020078820782919553942973678166861460695206820941067697067952735174273170840978925643060665058259001379550807097345782274884506206939781895451070676071883241441254705575091994896623280476829593475744250794448711368509893269361534576194702136996004531764815459446295089054921194786603322202226929360657986380158882932785531611435972491249032228692682541919198381560845135874935763233230828412860494758556966605720235171339206533598969619567217092278955292220879942981627045077095394916090870721236858732191676056476823716568498368240581906536456077248670514142354937750297625247042873240072016913000833887358066457795875480886816789252343920967285686213671751687566485600276185417112189264453202953022325000353863313435006686723769099992201305807990145268947733839537265532124455683353833498923178653414102945961056730504497595233945222186498588361814888825167338974968700859107820585402577659131650553561233323476918095995778809966086919568232629324361514986499781129956943056488858214714400709669416622964563175211776096506093703635597989347707755399285551621576445956561069945531623098797858678372965288999503433536542335621927772165151137388525128185287356535407049986403443539224919217601191912485437169399284757872086393026688271897553285316151531892501520845913153537386474609874065499071152233979829631180800839270686749165237843058600258664746295691065152113116034010885016663954906183411693823773081310446549448204274345525990670548659367618545864445307545790385290096100599127512102898298789606321415764011480912284566762660434943900314860910409598544393480423738380013377980172602367681512137046753330208243465049561859074766677707185764684026501558418922290334783649803195273010061022889344871225130832975102818817528912039363629332611623008838369518512394544424868342420862308728633148186249281924071185255014020769197036318518083835811746069676415152005018064547359018134932576892197598032141279430290445385300893270635412708412632951249678732829006575588491174601553855893737552988353339262238041610358787482775708015045093072325280135699793581758240221494519030814503543872602206436176582013146220331881543671882638124296072741795604906465292799785708175879729149131895345590261073963238517131625230953323102594500139884994594102724423516162726827301791034720151592394790585769455688854452444369994924394706756466139908920440408419756287354540395856046690181494302680310090221132406257330096926313963224933005828998421265365426176499435420156589775602594838665514340514832276448946323546309574327474344476327287803280305616691908334536586261805814805804972698690050768989637739930263285833852057932538796111488188904735956815479817429256950996736856302411757796732280890556184096446203517044866685385328737941959091392055156304339661408200668514962604975261125047976928256125881544053135000550691015444771981412466425110445964906197566969881409685828171627861565767338492588938252356336090873154185528607875957633693259891073102851781886263361125844752270438528138527605470712120909948660350887295380723983389274545178906793696197331289614295493335700150631842767544860690221410671431726415051952572746226367923791877831482030859370694496504933913807110453275354227444156351303355314492710668016222963520065790389389923897475874577810673049380494457202039224879260266053949315736009970155111708106878553398947903653038688040092266499069190808544815566902816063287321044917742108539602002526071767179744852157109379206568926589316289003678465559823961609035139259013888944644809733311607921890616734824634138505580758350746544671491252834691196999726484365965213447275191014693276842460356675558065774800722915979580033400717917163117961336580840828931205757155503230234153824453413450260064849835807605758760962886037748932956233639435856555579525099213718739393478024940749558631399494173844313622914617030348558429621000035785476715322404638429140490635777958343428041785439744415718903033137704424569831474862379816225236025062348643775943751964228089771274198186817503802254339422236970691379437774030495384580685155902269791609316869263564166305570832409621540431551607472681056993512466627751583143350949885994365860827786177185714164728758060262296754346639257765732747732635509685680263186192056688455830088261944941280131218622238132657493411875501545945656010025856429426724655231235750534220763300874585059373574398244016116902215069964151845290292107717516047930224368487037300956687398782110570158898940989252007596158549591174768501207487549688072090602261520065525701493415360148959761631506372956669132818722006706838529716213473717599016691577771804518751367680811436138747510181925732301324070034072145244846022128275073165216455812030222496191510693867403232482763439037978372573001769259091482362331219446122291734407815948151295434047870686179807738633003325413142509015044867992853422690065003683351106875406399025219785426657337391008289792436935981036036122505579681277520933477290653527651185229987006631430274804890161338301843287152809664131573198883395095717967494405431791111314782078826615399949881523980212659868685549854314212371688253678602536078033460466383562323371380642533587641716063207236759893110267591093016229151264282971388646398048301808765073989445235164405029087295720401259196594908273626317530410160382994419516639908795520221258174472119910121785297805087781243394118191566777768449034034207097412678255303839424022826770651822022329372234684006669737818968067599018580050290667024637790306453947853929192530929468636943914292360421294278202272232161161776530574702835888082075891206949084610746268040849763414189405545684292247377751851500936749542674716787184808836835709801403961167312597827951981905660070439982154053804595518782706147148813078342248235884832350236162230463876701513194011931738380468437745376994747019847639233196523813301826397385957618278139930897738164312143453501952358024429945213483919626728645632467158141843103154847722705082947912067401738857659499541260746221920803123464141145756729503522229403603546743836792088342668908385897036129913876193596812401895435652739259752471083143211352091964910018399241916056741857145903887166397600036976941517665518518487782172203915970872703141892485235250808232564629065290297889985375146057056635645075954991457038735136761697077666089909687507401215707364761097731212616101479502033620780348739387971749279075549455038364151033096924210018665889779035481369022087092589850176478286233766439359426009459689201480821345884308643687299714847629259174364473740398173627474607180702505949773900487328691642119087003931887085449258190674437631973886512738574498980747337352363621865408733778155111932949790877423883903208321623684029515645518364676791135095795104053854319028532689005040619737698207064545747693467468375241254882122400091601073461256255369483463516793882197263087984553344568965899500144836137102492657617856839778383953837606111478366977844797496760353005854454096718230770023967140205442058950145485886451331425469538519614500554913667813340672939815467171510827843021053725833255577815789641777573319956056194703525417990493688327069694524506833603217407472631309492515860107674915716874048058146363706498730034498841787098135749544132537508045733191442884239518166698664543778324574346038912848531225559288719409395172261737325929917667919168500728413819694703045449177292026089572355733230906533363848284165476192852948133515648856552806231050654596187453332206329145322872233788775497493824315266665587479288238143743750449571500916062759053196900515235644852047625664575688496896937147004541858540414224512332375644375542549413328304548759535478206822204906642736859317164341256322806634347068357102753274672888347968104700725933968588885157295510101990900739331921323594707533077198054466885022083480276282448921832120697250286995717932020236604535001041804188462918334502082485181370433046552044751653321238611826293202855682111364008039893261888438030633910790683591079956214064936866993272262833593100117491693743504940480828135697850125550700558850249095472580626347388400410719628247715786081757030155770151612969463918894161172335791911663750306827138916776437554284860239968183744334415498083986407104864917474156072568428100588433862707446163648925301796050454710915398878624988443664491543917423099084364506903021418003248050768433379798888300437296348840600471514398157957168732482418034752709047538766624502048766313150987352843402296656142070461094945051741904094861995220858459485369764326663463853686222555500624947916772705457146286400283284849814926350901772536617943506693576159679959993519905080535506501848925399520917189350387888415358822293690245320800678738966975820190441223129214852062618442815061868448541995343971408161819839286112366558656538826142343965299904164797790389593856919832793597196558876216297453738052375970806720931507793070675386704919467123801034585166616470389791755234366821095698107548779592934521440010944206919838427322494664241215897656334955050089579370716409378348006749596983453409701586298391038393789751059630959289255298776278285290826063295203883506822502738972563057139480964645442125720928863737009037372063465091459747477625958424620959318403047255044617410937612402625370369393301515169763696624175696405906685823437691416646212144154975448591199993247536563710567823417013230550454053347609979408889560563341142565318203161044541002100035583124021022491606903557550541795988917450525725381247029424189832216485498276010564668743437942105786799361658200713898916550720473886276775043167455622026458446034305036357815472200662055612185918943282415966660868917037754428204804583861635144002724959778730944453138196533574406765248683429203177925016849719525938171836325994767040396228994095115762542965887015961597270474807159422912503511748210611562182352894244238678927553077801749952868620488315031815193814116820704969916761940819382827714201627402327576644236816929172683036464427002336598153340769742917462298491152786776792123398606870226677374591986859091102871407776806725686645801963028241982133586324259247867402198406612057576101842736570250077086022558215521834698568392801068848897038167306667839384805614316062608631743801773343702393306569760758519747228933206037218955123669436498135972847283776208212084598500589194500345278253204745100489301986507906954654423553915974728229930237512726814355903238837033037058157600232723707589079828055731108008934586920252828176364768534894152719916756056555162009989433301255322364077458814724998285719549699886546150350990161318520983925222436723185851654807983953692992790539780451113633798483010671302453494677166522297937874434900689727973854932707075689853668573538177762634409617583344868978881388193187376438999943811405120691900820080713435377524509601293832074500221931924163395254151375659669455071398596389737922279150866277997745007463294002972568287564179320660352719379675421896475811271341691702188990547392955874647986541998223011072745975927692262555728779166927112657623495508478206736588497256259985287087312740398855877401114082063154461314249092357990502028134747910052489232749440094923594996334972690999213893043243375147639226895446626398586642966149800847568058221113793111230962520880952018807514715178910702439336571324590377940660993533833570126359184777898984334322113437043752913239685767401265118137915942936921792182760859924045740278442185901418273941073935416936599327922108154121704199142631406443983487285754732363135609225164055281699945841514307369097532495631872594548134831920239555334767760893300107632188351296291654338701646361424366829227751393956119170980215053114915350079735260713809008635625462067432117869792499939492746074995331795245807531162264321662212893099173160374265245620776124612961965770801555634862900482083187487347012821429969032252790760543553239706681642609242193980731296162854238422042457876660734107400999655652882597138106145608400948990632329284019731654106652796562333089395376338574368341789388359177174088804331160852104994624636774396048235526592849799958014141946987204277256204848743810742623615379174344683042430661103020402327607847884018239738804230123906882075000090879498641212567569788148138798986320983511550356157593897290251010519794832597593019542412698596548409709043175391515863840442029807476098193999918615989011786883391190658114555284202560828028700596906398049289052480081695161189609129914826122650387547791095283836190122031967801868544378978073650096235302004287335212852362148032318358701342303334589815541499146613823998521894560098515995893121926386854209261512271760610266160523718100242997771070264174176101531664468202432651029722452805447186720141364522666895619071446600757966159059940763921214890593278276741359577208492812761354750651091420418386886890661357972537962489716435836184384716853534231929244532562852513149033936856714790605005161906375824432210126893496808287334410186403178769143405568608198106804858358887728350496580736915695764992371119621154350695541332291162144985489788123967508724433139212735486928567419364095242567683867853033582038328096604418919945408816220218441478766940232441189083798354458410212431408341370348126446238437028379439580452688799491595962281577139494233455031068196015749108403338357577262875661756524986114331924673592266302857255135999022133397038531973710510750357381060396147417064244982813867782642823610444141380100156822989867787329080408733698481984985773543989938133925251750926206146007828158522060673251034959865134471699247822298214022474789540169894511297593176431280427793275508631530148988216801523376134560698528147115471253956015843657710962723363636992462437113434411462694717204592236548282106760129668071703698925230100423821890950609546012245556157150282169854616071808522237008638252985146907388141133587093435514961208779930100620489984598094518470012027904283785891710220870828941879339357933329030122382286200945373420794725704777719552843412106024692724596954974484968375632631098371802749208558595151844555934839602805810639758842184153721075498636495496422421758871621596545804049763953301053706559220135343700731282307673143151715006218754086117505820727249260167173503016487161787575467593264757919926563676003577888561509739962521726616573273521402834742906505917099570414400402509552859662800185891334692801516411458041484807312202565355712655164189457695468962191780597628264776554518983699848768460967297836974637723111179318757569536021397439737479437280135983282297218228271386838364313194568014750514594153144880895581573316870682495443664206166230118321988790031985635287895162148145240403398521243102211301492877437706122644850585187338640290884595497943560960560019387522599787215034053336627372870426071925799179659458075089400668572304988427079320490390708837937052410401502522284086417386735216133870743932395336471435272025984700509122224216424772121441819921356874189600356016644165807136713862405111397413160314184353557604740321524309673042805610627852308305765164857452111180614452421406321362870705588921707724755684510577649775412347931374806638867813213106834459680577462390067534423204656766088496758304109739570844403610917966619206255897439254254262006653626902734771404557902453810896935773628582841165570749723194030838881583071673413162691194777128463245831089588757402215633965187964176486508733758031634399652418607874757796394397019932881583982002080630268040935432933575632589037594903329988750042890685899061449670506520738577277609422754881207463684967971074365934295551436495037245959578476979260631811679371939195707278467537591348695613988837563700895390137724142047700217769368018627073052925165317390346916513261347571093823381256155716925700346099867971545306575557346966909499110201547356212991585196067610080003388994743377186612896583949680776569119875955626641980992650617407582491912723540164493667382755703510224220492883122517126848873612576468026768112617814458782396575706767471485753131765147084960627429701009477579660536605840270639554710611189122541956712801004100358499377968746116985763877878133629105994105843725462581920273938685878935527611396408416302639040358191246691695111561668638988236567970648605225933977829927449598035977185740856860610313745901630624916032106431837204758934829237647912540151013974199843726472273413086265244380062639954990105743629418398157346092543283067463361853883386626617805598808728036757776931815233032572602533350263301632702954429448946872460311752449477396168317371394343473770177765687445838585256333475613280851720402778652297597905084486393305273953030109498766846501680009150818665760731494149029993066378988112725037747207154152342501092406541127153295046830868253337639491497146084735596259592961550709634646485226291056525093403060054527525618725037804722714140203488812946374187047433214623241997511733460541900617992366108548590905197491499646277108136939712225991081462784356750977072151177641892238476167620618258970033109144743589482778233305444512504954033124805950711785245819745402294569114651689454839736554222886474404075818355661264599665498872820812405526874430984908536720061839139609796492245352616661807463168845188417251499376207419388822968942889715531697502408780409117968334811241401281734286792191507510698658232323362128248667994317454470043963805115827845636512440105251320322741546491572381270952708363356551323692376854474739101525690868199548876045950131348918303705294259118924946816979514077948246768065027869103570319332619205663493037334198779074119470953255796939927768467515026694094748396343049249006380372926707848833250912833125966040692964510442601185445783622816135397937948861891706707537961313992052794814907044979415026431867410748095495939586752044246804146405674778621517092681356637868844620533331566204122735997696807680787005151726364509459368744728783595548157528553432294797538985539127550883843491383886292313665464034525737196161173808812795201106809548490547866198022515365597674797602046618458295249929610702228485165300334490377196346607074907308040749657662666753916882619546792440113200514798609883670092419063913995459981693836292098912446965225733862681214823035026173465554699407876696764204988146933897000190484682873987739603595025312105790844193257119994418688362217746564781790643696107783669475529760457662805415790835819959844757085864811806333199252613396632586647844383630817320605855261439518424849415667192102726451438876841031306813069545816945091232480865150698818581354976266943207201231525346820666456797908801963299409847095383209499170904255621556679370321009501124486346949981089312447823325658091227255203112490480208578232318555976768789857764909623295445664026159086202945209283270352579933533622091216556697944490934147321570279877825599141454601906110723002145502669318361551050949595105676909656444078988864053609378193004816329941459060272145192299160309043327399088386485064083821279064101807574439338512020429447562094024665066326465003275529946528658904943834648303166769192092609599154414513613744070000338704449953388958683223318302529165804635171870298156029170899559815772014162876812986994282725470073875623116702901954137594782642117933169021972847097651196244410268190779355300049654006473840025536904364762108579474757023707981924806552761077481142459193318340321670478836881557890163742386016096045448345151983066982495841162538241553906114608830205732205825970249718358119949934207845023294798865475199445635258180025955885483994193200015472319102860155806173667836695800365981566113351433514171301954143593735395507049970439395144824143306607476403862312045238327084029796463239740462755550077383040413354566144820993170139224063136265400229050192838906805171752946156053685869702609689399262563639734843575596362106480902311390423527408549976407796056920332895855283522016651836219877861509995086920185328629203891389998242457400627888530407979729386729359146716307186383464931572735675235618816897457107947321226224978651888055120235956671787551161249399150423691822288099090327278426253284512096294349315962198625293327099981931118506975825851879249691233621532310347790267757351845033505173236703807951167831393884692772929365356759290944436294481847829500688987548906517367450553235797220129682641920459690304432393962413054440439355689761535067754958900151223944291637961372178824847979308151468742872806372493105351053803672527613355347711692244242505381141087817495344923290807823953798425641218943088052766890873549734951659319434185476396286965774797182446764155133587143921306934519320451698212260151462639581607984671188783864751143081096466298230323839891225661791901016367934691833115551028657017932463248797156938398548417759728105466241432742226514889071620040315456072647193442563279371952747715593289791174681983824682963443529686563008980005842438371510595970314008439548446893359538949125506395997932827416630083780098435167544998140682728147205579673608077860580850407757723501879348143088035131258050919386225491083817002494375945703926125959191819425220500126748539820460146522864018240944421870122383247982691423812431264846544763784781964189464293036037791150006913797947616767958802663616209793629868043679255278794805519372588456302915146050618017916268494425854254171807030030511760077385693586643248625114743137033557837999756841045082111004063638150403782471412973650862911762811127473766981756667727519405412688245516101278207741262335181418925093826255788662667902799289396581989941552580710643786327838370938299212261683000937702354712762291347528250210442462469869558329065251746859147076944707670098071548341702058342173732008586826637233256666638828327145293003358683318708055604051388359352846521727970542223889143293863367517192249275279681909844499213503441826546819625797554887913616123267707755003870743519003538735742449826168861155201374791478193317899850655605989193169347416389603106846235294209731576114033444179936054452468443251617859890303661482036771333564775873121414791910410465029091204376199115274622526527874776653005934481655963742012129523802868145982489118668671723072242447279126340448614632427673687608499464173075960855330259119476370382598812798070783466899273283675466829719591431135060620295181750797760858440265406345319799117497114134313875909811353552275661494944470059648374160544680260841201064125497229803649038830450099686710501010393802124683563505220619664011780481906032769342803275050960801663919395035715374368828560672404681762298144472101042663547231779043478365180510868141417284290187685980052179354304992480719528863186339112186790698787817010200639149204243254235195439786273360193209164864197150319774335141704753756591183909200525125606521749605069742319870890277199574320824016049713431953152056642551358133519012744127900425455317558576943270541293309081361665038883761222220962827519120078723444924554600448535379029628452473938467116579914827879983279995374228182668322915581747345695099379079654893853455975428307181831563488711744883334538796608719171373001704882276862956672677454334633537858543694302053934213917739305414953857639946886281694283262404822033549341294378131920178241609927092923649541351108812759882944458755092880521234742202450788945254204634401523616107908013057478073545799628806989315044650325536134692583072347542962750691485577258009213568802660298788334401123984874418114904048552050170083478918551761850282321118227174975148397059666331493480407829808098714770052920365702301643695584833109466173327267691811463163137330461549092830684160784475198509579256044207189523084582321282464429528397994132331399896864479293792929677102271578756859481342972705246380932468455350858901876127391067842670702318447004354723867586099128343974134029979366864455596993481722292322672224422012216094339206989112148421185806431078982345605599442360763509880121608896831911179238696521159436697425021524626165480974743435503309661221273576006710732579099485101995631051626149418621630351238180906709259689907442884896077275737009329354201732484264090930666389055145163844731862904328369269808667144555364343681450882052233245234384928205167459472082217179237269240873804520837984676065721898947450718942012798916633591453055112365551306897289059641705699017104625956958112682305915606693649343430755621383363865017348595350128102186685165060172949722626194404751125220509137907882088688417953045472020929200679704848332345631955067496533594664957086817269524398382287089439887876664051539662663678363064605994349821933542206411457066618824510914448918436264280191766696321218034189577102502572719206898103025264277637639914861347892194802318329990364278895651468342232103005665585345609950155837915170617361350931851951336857529761747934020429147535922371998645991814891998440442286236901949060506674243635278271296079416987703508674520702399087293215170082704360698368365666882968203078039644142828817207340588870934048749528450510711321455145084700238465769412659139324623642245213288161524335131476942328626262194031360366582178571311298320574272069398877301274121618309064188839143696518677153652944374164717151197734271740590763366484282127598226713663241410628766962337733936687538838570631583925286644008333159475403100506005093836254039733033879623626263603224086588997336386909786591659191725835205759375630123599575512726816607258647908328729911485366434014856892538764285495291738473988141126797328906248200384988855636846399787088670344496781725150085151838575379200346081792757277237281201253783693085482270847869486519362143996540222920265015673339806747680853327297649149196788410277237807017067823344330216117725740441621655946715664735318719738428978021963456981652353277700877007989651157622219625275946710491976426048865657412504447686545691599902082072610190738344734243565463363179474523021821084848056532712964182029800066324440615229870717325451691221715703545303201152197995785059861944952050310909814804212612243336201538579379897450603731471816486260456151209960947923942487048396127749303622828422147964443280325853173078894453131612894888263264493640664685440751311666785138165715963721937157135623637120357750483492814406563648367721664002963254206743876808319291215825644747196043559604906103495117438566274330091603840538799071121376875699432617956530288136632828507278266749003130982406668098578293082338115835740026551245160287699386139463708139895269957109396689100049288171780250845363599830871345677837660314484837708380355481536661674634022667209849203033488971581680182295955397671749002152709967932839575064114128403081345146893545398199848599399246833697704206117152743120294748933856416287920899445906227932971236085630041841533403192598984789586409756252651676903667219475576290970192887276452646362285943740662916216213604116817707016450440033216816488453156176980644161138365158217330595229532652147037561032669952285678214193995258966142730481689424395129379596695391231918645919881118587528725127986175524645965989610801665061560343928047118890640693133027288867846724297782352719926111715108218547947857007929509040282703589337470951812737254423301338593724298149571510781692104084075615882690751721152727508003116036804925257998235067777122051162597970822035924422073303921918245912815691482559323220373605154200165704282295408202424603418742753766348486831447388873540392016028020056274325470851337515377368916127584652817037501251831962677814547185593457281159124315173201767646435762579143353355264176141983680509496183756370810803325129848073004509918875006672641338814235167146190663226676372197060352133595213490417473404763872025815761766649235587971287541454615680063939507864983071424449360298092434798669221607803462929993794434361267905922331511247085890826561377101261302016458052411093876734262422826506993478500968379151468866023603186257416705228607978465094011329459179438846142471569262842764384543433898617898700339616707900526189944641366090609444740807547742847777506249478219438396779705995992373594689342423499701544419296423554452633607769996641767068833772459733729674854461090723518480209808690077501878106819621567303987285266824833391360156467402535215652931851688788437151849852776470569602938901532934725406594257059596700508267201519491215730337599620618741028722997587622039317600441233802135981396847821487770382909231570866365110109125818455666699897929621271809474233776987619522148748944998314122362994007810416019127474106157176658585392628587926085693262267908739171816405531445208244457511009865231361420981649187283459641697447396969421274101286303421873953190655129490590942459791697195189923113604175520044602607414225521042155791715574145978353314489183141451726046867551472350859466593983157595736704896555065896069947524356433996302094116081398318599393033805836568753844929766656923546074329793650743897937869620902463875413873915453502785663175549943045237177453709325635809061736737921076510541162840453514249722582140658432762989275025745074956002616103340230071838521401858465171776374853381890123148002597638964677523092345879505731970882328102289002332135732016168312075559701576858923572019357554160351000224920145106515426279446973032713371427471512816847134359607333163582370029489272369787285426235376908935538087915570268399206693625115380443238887694694864756986023251414500129814496239561709970601856501757505659161676921599692845032602945071036770878899756987990263682517289259448142854488856626451931563418245867303921061452089222751329800666501021895003253944895524645558287028701774731021940846277849586019092873499098811362970689319516056387952253753119161222827844756212733467233136465619066987617853061458046118708185414705048330758816053085562048308604659713211513468418220231629062394641770261075320583511603503994806858397680455409301832798825929171268348185812055132542813573429020815666138593753860090816208815353343999242659856663463588235182222423255562228733616504024978797138933344580145721046927961069869306623493094867511626235422354156604969768053613331408827415323257908779525289846685268176874187884395410683732748413814716589431266947297759601388823190275365514323045483372950119082297333621998279606953490438243965858891370761092832219002568892547444846117880007598597210527139107008749616762113097895884667032970642239427657824011497012403644314445996205166526937340861212208791112658438890640496335072033408001281753987144931275171676385969488660235382899627781572190750622076047706273625708993680366453165591528890582731260477644687764651564651095298370063097253833015361867013450785319902575293408682090567549867858896216119619642644835696789868607636907235935850268246314668132208403571480860806031631152728983481851781621884433983194985448066134735982668113056216770147349043541323445231452678541762940802847354480536134495231475391322981652264602228157273567171873986233918465577329259328489131152363905402066925586714737217531367771952512477937949793435920571186203246514790186039865206395130399837389230793997931497812835409535516489788001150185028788710856183440619221807572823438393982400663829107665237029312367735129834711673559316096581650295878957988752453365835280559055324627381257780245975269924049955621787906159819792864295054013521542449153958130370780240258224623917426047806398833105696322311492354699133239469565387904092384865029454316850378892337930292998530185679702018054858730665388973229378086257084857989172371882203060489842789172831569738082271788927750957484565363943838000603676960910282310134062905401944319691878380717939775181148741368534831326750187532091279565951816182904900368945293077481205633765263438463578928323919530541944255073736245294864473116009988690606126942500617143267559953345296775503161867171011643531804390821026375843617415811442064862109182417775628157356425893392189676683847986130504775639027720773182955365163936164250306620930402293064454311083527530302985155919497990462006980298921938574922886090453754701528333004086967043004865684213870992122255789198755653619807010419634957005249949676788984797350447712084169559922664466067169460231930459101718983948514431682587195938644121877231904491027147690486568898568275150047546135774689355445618851897832800341957901353134360582943249109953805233932865714868185974375587951236893374569381568616172616855629394945145611314963991258907050839642920828537255808060127290578455816770128545198636276036043963357943129334186074185636498515855372196799587561800987024615421559418786345069003107604423932370343690292992080208111500702196942240253025555821455561648725550182783159712084783882607190182808415985163954194956109709323627121089913984656935255400842131813515078532587571753453313109256211883827421734236645875674902143866126904233456288127930357053498991760218540738461962851311157173189719647322156826927994531757885832856587486840787052464214327595830974700606679437639169273020555921579008378120111867037778836941199131533236653978626735023289953314494707374969317954575934297335348092422224167383680095432810793817828931156862447597755203299420472363923569411514639277979477465412712468482357970919170171628243164123336795395698664944724609802835915922329519469006891266799637964472173213475787309522905359165854965809538012281601286146646670844668067750476417464552774685014702386811974088966024438651383371204243540561513881440063185236192030573539687265968220771805464386793367710621485012658409524032906549587733163812291685436623334725133602361481603963682787455305421365216369419756845678454549891693451244135178769578034848441265560995038329037923629619237707922074884928364740267609586819025908498416728734607190806165011531772176135320014194838247658043074068186593101244227432048636689452855584940023632315613582218913851527461705209889082235626165053092991803001923120774502338476833984717810700301573359106760483048560499793037746505391145469327261350346115215153421543002980478096953465074019920138996751990817965045523105361003721288836834808313515689941917022177145113995018782298163175311947872978222528314589321350771551384152405288042834578842951828657467475728320456289301189962535242969845615907979595448889458094466333928308593624552475176385028216540302080045957234440675137013360781423502327508077761946516538749668514362191595895377281952463254603638439963551573270823630008211537728944475211877901840505354537353739269497503677902134112029342775779989367611915537010288350936915590236492932344347716359642291750845480789993769007442416893823223376245075175266178695789667451622063284627044372638916726143206978549026688953081609504497630966870117380445065347176747648365343725658358895402455856982824377731725394265711865413512983900748025897028505436312445831147339694129933087050536746112108761654526374911017181380186106588944181910559268020761472399833372641643122411375252973459750840930417054167587733649188729033997160450464884447682745609762775724351692225290099189773469973625820975000068426806062267973499668329564547689313447417997083223537281289925197117228963119954254733748191956448053011344057856014560394700464586799000313762753566159907601585046217596640310211787740126902911587152237995937412380487907064771153671473243297163472296744772144286005723240765376951514109219048879703613460715225949971037973319794895705102874966393843199214618338782877169226025904262260673014475383321797497703020081502951518303387743255977219385169455840710983375242384271836968053956306951337975578554888354378220483214152935890399607975291124196390508427179186451318055830706729549790097603015928566467721239451814891338276614701045719344236520013283467618294707143866645685051952091494474326204515732864765435725960222340143810324921549421698447535771192982880777920748861406763975872305549422438928714373079120877493463941661493378598901900061914342899981540172138612433865323902347373854758458215042666530405869569424747521512175593737248898164185438998837560529707155085441402897257311040494770582837523632034361646837449373743136729621481190250519627436568769666237444246518879549360441643974159892382498590231320438587272704351579089749682619214275415299574253058534352290364538683227738281295104670541452084547676891346128721010420968561671167802684550534839826158893330751684114916240556219291548545263102814235648153822925714864145245495194954348015118856958491627987658940815618752361395375492224254483038210072377968783716865499956290055175220572837073883105919884274795983544793923472784564638193432534550156191021724992300890562336603838240164773746969378425704088976925995280125009554039479558076094947541354436668194229024743674001268083068841155546198114845072388806001821159810612482072887788191638714888288617216731671479575320548949564672777813907269758770494829975232143845121592822551249747413227947880283340051784579293054598880098808635752937361131674611760450136488268890127510576248574341335939463995442134060153883569559481854194464758451238629288252401280440567280467426437150331142012223341714711705261619711914031527273666635018609750679423414567378771133145421560178023119424572666627711087761159366782369580912348129692400620329863401766253543310911220983261416163177812512606502473657664250648583734195213820650221145867533920300458210492055734513585591692042507148518803937291030663162737447741246012594333517246210612552414691528768034720516361055524096143842272673840736683035352160647698526520862700324646256564704054230635725149331754566976094496651885570841687816635746567670351177124463518046435829550391854304452103629012482914706120072009721891440513412809476502295794853310854368585344811308310453548280399261215910341445811479690490278694175057221482563359129168815455760279958509822228426029152855198545428756705800024104701726922301935110330374266077484154125272991116381294912168422041457778483043754352725633565040488820931287256241347454840919955307910968719627679427427439302176129620468398429582616134217774433921685989257203511756581397122065611366760104073780474161810982701049217181405221499525780968493658880077679776733305726128809134711326579110052173718891920697005991979301364119002098768192836202020281343427345330927925362209200341341578228805095114939131470567089620398867373819197899211714605288775573820008421080386034530728625404870361088951590587086953498032094748998727273356622442375640444974866927880162750923803452477515417276181458917137923348333536278058588170072630165092572534166219618527036037660139867630784926909641916534146577876820329764685889215693289514757595493954747245395254172296764365674220944249481067412852408553041612896783149507184190392078428791750584880884555208208069909933535844577509894536567247537899811767671955199259180272357670359283205966021028244848489367384536529066442263337101101992293085626225600784167073235155470018232256471490212246200896477846202824990851093383744599907975095820051858194611741238592360880138147687378919821231727804912249311972832111497335909715053268043214607879313519941971355038220838229414640536564044329353328902620515889015804927059411545004598573659416577041266161694885118424200375992818195783877635454144035248876172057590068406550463020516294639708869257159903757311806392639803281702772661997666944984876104311605375709273673203940690688098610336644357880045780327210731974180919086350129348790645399124410362411462690368490683172883649334493652295156138745954143450128987927212202545872236534789670171477885279828078551239268560533919952520809815364468079154919387476383605545484339228367835027104295672851075477170082148423275363160392632950136359330148753139512075069662055680754112097150173897748315487158632345880561166907281270133601522376992794605339167095292424594969314268507575832474763903209420273721929891605438770554122704541264630802458497634639684189173767648919925287787104480437240684314920364635363560642938648983688125786430705939336956336305592245139900793458138276761102128392020736418850619205336529866888654579706802057064844859135754789289469507253204308814137690605131075407836218097906004027207071485398252329112751334743343935642025265090469991358903404696192448625333434730724154802895025401654928949993014621884008675748387865477340574443675680700132657006195299267584159120021095457688986281597043643026391893467471308061099743436624326619509623875706317196947770668862672582472911434169477811317930122530366227702920801501564946179538268773049829945361314166074671302447131419508163287518820998940602404453747479057909267727211041455516612329083423754989677979644007650237351476529774274591455207304391205104685993111003752606728106814668944732010563483251247685977000486945197054908065615090268684364702732440470132538519347675196269478980370083793671077378952721038765330365241642882536512528730051210413503719068379004816966454799511740979828623891497872372091641809492338827638483538025192570599357877232595124461372355897210246699521363750574045317431490832830401705115502100178797661688150617932804024843834856808144875631759810288860535999623844744054135157501456794624386734384602008923461877860628148995022620738966055043306646271689513145679709217670405486803721764719213826113503722370987801210241571367601771920967932487886067408490785699828663616635343480630224628175191156791541835448608622396272287463025095768458401663699798073361711911762325758931020453902095728650270122138063200658307635632908701717317252084258458753850599619052569431875646564568856345334518345646042074222060176919727470515472656570577628434380789389094342851981904493619524702869908600725056566013996086178586012159585545485099854903445543157756246837574605528886710755793358667750959757100468076667635842061262923884745030923929460241313657216244566166436061352824093476655642523441285012349070062656780436082137327639046592078206621912409526622860741962853867412785542226943088830220728254985411492767659968775812213087821013419672688596376830479929462780603026740698875665269836313757267767728873170278838127867334567507780405410972566887407526061194757223003975995338856441023739348803075579721804172338990364364422191820660205178379928241412668852405109632743734619057770545748444970971386289117497116798324583981974049827349453630217227929851730767946580780068663067922227536708101736283615230239057636893160304619304318897636297340175356021110493155378832219795519354411710723248010601413001976600003769073165606793992289936831372168129104255010275458716114823632742425498935136991451042256266873534999070075239759890276739956680201059921339410302426531933800713831801265301941111111481831220190929352361125733555782090098002137866701282087309737070261077465741245182516898186348035664103259709259043922134155028422074682212965756274292326595125923288445881478429256412782315736655897209857635163979633675802602781503929658793250715764034298058308648394517853139922626186552926286170015915828117753498256802116783606255485736786186359429164749705406044223696280120550525555558085769214601256682209342650658362347704619892530355820755878588636671293938826150538366787145791608601867710818766662843544884095657348478128079449065788010942116968933290030702466141368987453763440039867109422093714716962194704316249673839234255837261747309569428837903965702470021030423181462160248845811855116927490593410522251943689255193342696010268498454666312488058724152515889223840469989035277315630138825060692285320737307075155919978991666677242625859483674535775808948802464166441106395750321056495360313911950291791233620476666398653222730585597552437549456808162300544464066739161825243375120331553127334490477886018379349104992084106562641412779951818594416210812233360326585610105526888492864978789377354110518083653036408323768172912151085233083905498324363699406823186838929567935046171371011290646982402083411037879105062451963042992704363526668762772930956398665464172810162195010767702459761988269371896184773574490573413082118919125177465875818330054423429510361186740719453459875326318290824379791383392963167936138839091437673119643928160146968675920419201702462922081973949846644322989449462417697232181229829375833160897941890300283981435929093801883665436976091309772577670384818595631327556920902639796704189364434807624722990753551061512569682561739603440764757574403508171117002803742263760326882266071954039743081458539060484502388380526011978599171330301963375958496929909605798439932202101313077391405009167309069657573523467632370775724381627753952874464823992831761531540628022961818738448620449037997846287829725019493184538324829609643962827755969277828014427492715936255209050454580520027865743551141139305474699741584827802681401073169901070759559256208673778741334000667586795253397753899244300557273698043942495480881425799591705797649918002516369522329457095000944616440642120488004716649822555697102006021710936305356873782237753019683413153595738943790716403322268763530654607335878392101954224658586747660381425822434111489637864641866659919761775707915157946896972876328741934632632182795932056479192911590291292881512102995014779874812095193997016468727686467583033611830943747424788781613525103973333094214597750118267216188936647152929681066336034882146061408024330600573877971754004480336996315889884886370995716916920349664181908114384208165054529498130587122043226787262266915956305813968667087401905386102516594647377510478051956280330330422594558547567312316712505378554136935244083537298496578494510992982929594588869010870263287385043279097386555396632764286067271906154532210600832028530889792023201425681543868670221820743353786332870980461267181592791166618140458985147171751813029743520600893511396290097181809719657691748974829843531016666675259520790225820832755793023652168087873763008247306703566060391746042346960126954414897706138253685654131069613607153595105378770059479349700988203964067932641180649426170537745635345876219987735196413866024267610430447345047332405066021140833205465121290444506480602233519148036255322053870852561464830572609879066796057006803432048833740180334947484213771288958233505681436166544781284958434229404529484314509649599116684214843757313009152297354687161403971225703264922735056724914902918928230676610243549591151770852177251714422230715003052863269440564761944303251797290590488159586963710180120708500904647173953997441945211142299486102262501627223275802047762026369139560365099157751634892053901550396669923926570872528828780414673187836061400750343364143161066156703107629754351123819319990132305977590933324948190388378411211103739461817128227158564267561223576458170351534473576735975997322967910766119343293115401581424858550618990763364707085594798721044469440918416398337972311524459477061921482154271529727540112214372481926854499641090259069476607833093227185688635315809057402375970557095764261244264380627921943793867821857751457872004311016533818180828902307433681504884056599408991951140422029191007599176718885174365793587408839658765564631976514896049302100651867189442851315715084005180973830662981462051084855336245429712986252388580403515213953378867676233156808201411578300610471617372491277292796694477630916527298498990573167825195205264127207707675121054100174721579769653188832469858336938732922328095880652718686439965345441574546067881511207379831256080667846322125223541179227567921268853972928301941278048962595753954411157210921003060881995223235820841303422005313617647530157341969016780933573894921281163248474847754161198206052534178132060917146890264108975557745954580847679765245913897034390288134410913884337060703758934341073332659539708510391934095327704443971325986758633474760588023430721264615807193366399455739073688882030604414777512128773979020654412347017371424835359781924824391533654052679851715161864968956651120181267336351598381730933970440397232173589495608486383637806182828832238501211071035994058792372358574007388061901273542515806641360581677990432482307141355515987153964002489226672720045069055061933455642391245039346889175288395783639295848943132260418966433445294285487547682388345821283349581169796349022660890907179514454865147242250635617074805972808287042114473263159934747804587368616455443308659794751289227451946681073123960320493994090090252693265400654673884462229300060728833165225412602381830730310158373167801123062309908822093370773618477983296090892073323178315564143248523982827350472433727146520856937778434564590532552667018304364038875022089349474457351923370579288797687847081779895472199603984040338836571182050739517997254519427618056913900754797597549573800707038300206887884113872779532782363198619466813442044129772580115647017934859110093936155395538712738484600085605534111443625512463186958976747703351839385635890958857808560102641550924996790941568770184427762103800560107073958216468180243299476443250593559308521358064606101296902662231443819085592889963045793502194123583070583156669484647789428916486118130046536008342974896912529678245592291228197716471281638848705725935827942456057560838950595995831265327701442381791013910253803524096852099488647122043042469777549941005594056656600088216892426967966555944150130375937205840205944439431064759805178008291923546873525595971193505795524467790303184175992843233912651035881628672633054040480360473549522828069263018546973401028797091182265501328841672354211774980365500700760348098925501229530465178561777961292831992178961338854403224614956155674901143684328407762041850933629107723338394522732263939479466141164665602310359319409522764426568437716949880104909076884404597003733470868943979696846493281187303232793530330507836378594506154416056904910552157221308258875323830341916248404092876763794620710047473513290037594365543587312988462582555000271108085793604000254701129555569595691703459134262731180186051482988943868049697765193681578707040093800629207169524465744897725096828152745273234453072081634903248560410075421456969132819258800245121927391718133130368896459482755964577826073271081509499538971530440702326552214740506551127582868604608973870929634097179085189312240613633707038193062564194103834891195262871140194568908287221024230174425478759989357318222367333422836550555013656008182066850557080862754557702410145931013710451936243145035823418924417106212879202509672210849627842859753544716231357073265682622781111156882369834362480704225766046541921604486638164864920313342567664604795207898099471063980611607342529824018411156403608188959018303664522164950306648478660456816283845482493414579678881220452262833693317156325276410906219625720418593692455216511672554151021604951984589401666472988985381950327517116995592857944850708699691238167041784474198498737981307388113476821842750762482930156552709538436494632646773131013819004015037282414589440788275948685879147548967699250018826472618182330224414263277381178249070224550828869311031976818362252664372602827063566199814549221829183562899417992167721201853198708331411822579349413003416790470379622871935630668163169315786527802127127216281138679172984150323733201355738109267741231606892428171398068570594184039920271680252153548380592598788737693476395060482861353515703600188676936357280685378328323785017712038034345988183218418781704422667626796536013535349223353430725814590449179262229405654974596905540221679588619054095672685391776238154151943354954266684321129836977596574128937142157603501916153421651725518912777961066567270757508287196405036607275016228170764996787022079036670864480211282784014469710716607552463909019831194555132342847990547910265368450859370017533462364452138586318333126189213408412319953047069486985407370003546082259088263884050183224294836485104279487933714330984778840671510712206356681860436407664323346325493486131750384328115726042190308258499660457091989096598948065218913709433797664433091586769499023660836040453493629681647800093897788817457390252181326059429905137415738434868999652285585658367094317380867065072329852570491444438753003014264116850504682418450594616726506839691160036065044011804485093936214656662650910005554431910062816926619181875736907873218575362299734006999158835463298508822240408359181331241167266975552045389204643404875415313834003338404651910110291611822976960452055754158598931964571437715485079095864554796618027971341586658991253881568482104456056783757520502024791038099339547466581759841823957357698978296678202007065061256004336079918570015125089298558972284833474385346887061244642776812988044620571414638363198386853160018901236615395639666627195313566293708101259475304658286413051180469017623236101130191776250190615264900170220620428930520196705001705696164967660460516265215113870088349108154663330361572061010157776870621629427225367782289505897141853617576206216895412068529096654194669939442572380985331042821914348762248567501941733123761706593052406501499956987627393243521363647036322827596156809365963359045065726800538134456898018631068662085207958616351301754650337673626851210157695963683630909146015973388334862970576861263146808563625552171954131876889416812030229975276360267486750018322667727071594883333134266042433514894440915687882313335825322290784600222207653491214197177757165573019716461618233749109188955574411366777655738376497488962474014821579336115922072300285666182940967503064802025951387187870778858871388729292613057760213117893266741387150334685064360437066691822568527164833190865411946860240919312100688638682346858941211196564626677663770613439532998262895270547667035491023369370447191356461974072896495595405202328243969896038691408235183328268941790997080120227064561958602572993061971407698579667125740846228274178684493902632520393351114498395179558501245336762583162597453532515097259432217666108429442242906693186596903325408902484642636777799553267797967529412670238736370540688074433813689681701737167735600653661484117405187094071941800627785896876693419798977803137517760971737306458545072650475404080712609527343222571528909544835472654573855693697996076625650593746236867067216620102200787367155569323401045245166607966712996229438896395781898351055077317084334754341868662366816293085178489302462652174269565668100981813787941775840219269448722437478053435207553071951632125688109691246785540369150374080782776915379148423009993422701031257483604612303855199002196365628489888755400401830382146671015297191140517041865605435038023024476997825253223370799052727073656480406465089086193324491459684194425837192836150023584428343088949179956978587938697279603029800650152837770569267524431483043011533410044084371667620945510671516985525320205776468887995577648570468847258372580193681705836808692877279867411667869789549552752446678196471155984411443476307747108225371241126695523901998678248418249407440044711314908869962960234820684680982148815841369571091706164268172494851553776604208397151348827769287064605003227149971409160400443168880429640419358100762822885189063852828162277977487919869896983588936521652950783632902654532090386788298990106404816131088159129946490433713339137742254289620292839224162876412483524779285831496074862362502395368978219360888256425555345845661840829393388674387198035638914324126695760844880589965742292246200098691384017123488111384429838664885285320548540062062581349221632711560102821672255944536471138689941380771004261728773242466350934884280616154036418838483157637503141183252441038163192719267330942220902436786415697127907308073504629048713339010423773150714314680552740532462105909670564636189111424019372969165905039094390349044368478599872545135985526462292548392966044687074170709252548281120442292187091387597343670038742180952053128915546150403775187933755086987805962496326891179591884474736054078842388707294370342574634449488669708873284644274165566748336233085810765066276099042192024499683906745715657055635047073497311995604542422481304159738632987651018620914186816582973175188167577459031851415358347349633190277269843858299790432916222679236015161744125405632293454890882947095556019338342797006309835346270448640944642237039171317739231785110202632507728921213309052710271247789033328998603760444079999313584787713839430074454311158297958402596794262452225798667870873690060409776134160280006500920665053155048906954905956381727976366773560683255782788151755357263468819829427447221750238544519151613357813830888473267892354384066006111336420549255234747445343917696760507823899889672527527855473441231335062626134567439416443114968677838033652322681017900986146747402685976706644884882682970232838449076201380376498553870640508925856632724450782883348050230884665140606051332677352541071758513826721401117867246698598318235824239658801197462251459980212165778911912399263812717611263169589756645320723751036758336600969794636560017023263681391277735019894052381273249104195037834727166001396578118152239524791984364646271396117864321548015306446643703873425312542537849051978740846349700319400398864450262010172736772587833398573318608201636741994849732494662157044995465123377133370119006914587867061919801804379258959351045626409950481279975657584299976374761734152340470796141203482824270841620550419375021657250669631110942370396423955375625677382457834080415198290829094769412081995135847909722407913756084015056227620604521610621875559892678821591782226318706440071842047422961654399656218454183121296451327917488849109997187916466660873547498367765366636234066956826726521061128137871047050414641611753796875483118901805905440803708106139347798429997325609137030903006767764600994162092775317170366740338085507722889208639265508416095443746873693590485335539011229733215474135562784636149197022327629491508375381262905610903829884812404264370439196149248470278437572211834812808429426004380219730130470403548513411021909347535544897005802933166132657005517594938622225940395758220891065845315560172945864342210229617267974785491296771616624085500006846161115805080030574921287011904637686968306125514343126827358118905783367737712926446407431744294295137959602442924546532363434221695953063697140819286603125797076476802039391667274579140512161639680388790810037572410135969981426865434869097090693674745542384487260164220769937041713475309495953999628016269353195609700941452238577112248883045962505977627167297036584551410578075799392758396912603094633633511175613405690010228393090772658032259057092205892983980596265800704670049190620278594772139582351535451070770166169630873919818692226763717129594553929532235678028944321953078848937821052133611990781869727256534020733578293246838289852426652883815467302441450103638184690083532398245810436206668403442601212759227271666181685375317614470897195557210001988359957798911064653171258726653874382641894181775384103640106715231834758611714300301293345078946642423809277558292193478021342897780278025303535926276070562177112091008787187185073034033927230929534148327201020655634825268651471993904845563810353578733220823641022133237645221693408493291948058331035938442423678179947886453290968490625401357337404841141921868597313389675646676956888330242701005199353106362802092308522139200516102309509107321750259676175114234791953424444928355514209700659279488467406788181276453566235322953389868673997200976234162127011762105305726801498351070468273109722653449265938101105568858177038418032400519947395123538259517669711326616496204977585798086817784932133660819256313267387658304162120502667775453670982531022958987655326096117041181584743130758971397278869892368529276846445692397574818198520629485952963814311820353047834101999779256068378928099956467765782122272497815423395903850874974647563116348468697964704263301626928486468666210373602949841967435922610118692608893676733008965573339917289940517377535634609347391144843205033616981762918896867301560583430507496734408946802304952464491909253982454037825222349457735960602537758193709747015378655089511860264912551979267043275558882473850904900074380481621591878263052665035466685566841704099166682411200884690323751352919843976603461184677712370774377383263288645809300001483106968580584350802378658717750986295989811609167687605431210090816038509779267179353402594595921740515922631339417741978598421222126331883716703116780928289033481170926436060828802765534926801753542405827257799760839616110502244072969827281507788195816633896330594499818727806849576523376564719651840903746139312199282004177381706948537339611594783613240218299292954630681830902259607127024935210837716456827207712420746597994887797130621197676945611763502569444520728888724162947989313594969933326640335619665192759842444358619602311171539329569054125743361363716484025807769419077438951699901387709036544211798511503217246450540320345495713179454542106569825704163086148194558462599524006229567438903443703160277130600501458744198403338592093644157582326925693730950684842450390099403386294725951442661862927106462295759390337271826735062181156420716995688982589667520016154559054014360670335696632728077437177923412504988022521986803492357258596752458075962171485372755294704039035778347566620742694758017666400101688016016137738697092949332568021880545495862076901282917900950452276508088272716041136994450116076660739587194533801519006128007476450069626957557075052377153744534012152520635615950196373230371328619077536500689362017817862408504173991472722388673989668356614961449719150058310519859649507361168142483513178591347180785938304312986714935890805652554124960457816648626590158642964042081957021911027087253180635473585198649266896729271322301895924965923557442512169130789079149698016326470339327568096741202419558456249978956740329977257773581814190139722860970921315008235465161486890422449513714567775478234443130540786186769360556905106737532433146757316890140610613115437994055315373103590942054144858837403910689474644284243020530930290528792542489388676991958101209688793759824267226752600286170934453746014668629688135090072058892301190644598465685291924558058867308901713692029509737490713816459419038246296536866710894465221887338324062162845668832201088663610651759108619964599571066073679178583392545559489326087129107513743804182998643253315054319678884642652621526463427445337485631533887547404930060940821253290372392257755619636300176609703597807756674037133369059379251547581651364562007466620357535348979785972124073739342852231676535958272963899587903347332387760083130366441690524456171087932829179296611567139349291578315378113072293711880444255628274386413803656052468512792252947052945107645785851323097886826248293066690345870980262097538524126344555734616189146703364693098356073184524413741203582794092488163188238514643437671262444056746306932511790733557337781480560102519757385344214283337550764340166714649567991475436016016489614345226869852470411929966685380699934738809116255226126675849741162131894839704946128819157710595448986408093020975498691497595442379539654014014988737361426135066389369619417382978702222155863571865374611154053272616899336052920827364525277480939816651257028412157575838762267536256436870613263740259793145614694940437246490210335840415378610093162810837483630103916950536988543588125533855322372450862572881965770748952714780681734585073445622915414907781017797796031010450916125382464172906923037328100848837283572767838798763901561443325454863610995768749145584114701076742282743286902134116459168712924964855943676285862892189629509081794546874226207006096934384633826599447523448579617152289066047145781530996663287887427142945667548881234280048233633268550308107326150852558811687559036404008440500727800749507123763627316427703515336751052901654857204931945848558478006157828388503505640666439494975831486928139274709100677649615407039292236142695008685986838422552257166911558244137000121703270411048371601719856471686756045195773744740638481804827979159162664141687580941314087703143410096746261713130038813791081287015811827208793160137518469740218824472118681074262451456730811664444311383236255678176531823968048601426974943685243633574534270865520806146326434082013248889304604011865743093368740737401496087685456828786427627640748073339826591587312054241690122579037290929223221480367396378462091857621296825485403779088399777375973228974777724036368181958631804011066889131451170140634181023794239533435186168820978413064196391108053383944953846872718709288406205888284629022875144473320505575055199680901907835347623453661782799601979211873456511141583532323669697736803343431427628364698244640679502047141891876735182666291619876621458702917334234091899886118947024442006942101103620825373282737661433881523056032550450926752187362789153828823010560557808015112550956974509372989596871654569915882704032707702673452887683336888953572644608910473355616144895221288497091084282972592103012073487036728843554904153873351395731311178444152525835601310575945216058541872252485129790528083835472433220540735053562328169661624713008729983736144575813632298878512799267577485768627753238690218781216509351457974094221583993696884464889724615816516422849756397681149438051228750900945656612511921932735838346588409466316733948703186756993323543998873354732648003682502464925067659774918628359948218543499834280454178190443758615094847477636195375945030972711174691874521343614317590316930273175610504982570884741000264853277986056749968286841184166503891780801043135253885768167695525479646736426757954027532510204860274271031746743401026386907508328747467861067534329367070294290943173644396822948739804069850465117720957190019560941650021515015489515441203435372558832747924875229140920034896223478562360978464503255054479222293882241605073975218997284219153635097796683097722050857747138987150345133377476143643989176578352307472264534666504531486966527024758509368185754936209553440253021560345712869247749571787591233704292379002305382618284548162477290818925165342855141107350061179245645796840114739064090832171420031549584460698258240457639288773960186644765694450928854904823526175228729362810876079813770358145817350270849142177162781822193580233881901694689561426804337164542407817978443359348176637414037064337678421413552222242717035691267096576597360627287959713654250664116585770859154028138523098996509507294750535311994386161677408730357462244504654425634775014140295965840453994566757047234108455844636340878449552525829216816751397452318274451453021874705570887092178941188552586548126473976289786780397307081994965432616121452024761884762842479928876401102567864134251122648111936740993280235155385534276825243946377975740892912428302597358523909909510383516632321364182361292471194341681093087269055174605932869600730572718508509265440863187907568826788095209679708179639277393187000317422477675100029812948938503027400651905308508425583516243557123834753098727190575521404695382571863082336015212205583290413568492962458963780424174381026007595098592333638672669174719497310546517294572406987180448997685059253847058289274309825126032209032909307155194436293036216134049365405831628047880831938431480664885009327059419274869540268476204468964453600042221085750675827040745122987304410514648571811513518814153991096919172810662607061162097852777940379675401433010448674281285020002480218491747130027220314408588169691645503838157593681440597724456701168268525070161759634779530550169656624028846033815311618071873532893859881696571009587762344063568556423066984120286798039679872599288679666973754043166040036559515553394067456173592328551407646944895109428257033646136818354632653752656086418357372747358594243452377597686207335146134962867241474092990143095923401531370465483071666841600461735707742717612251214293522986867905162004312198965099636837815263925791600006071883935123923971427851124391987045265457999966388130199645327267862333731693409066790027909978006276634055668478872243537140715174118579921800029792782717620997269181158690814998147179427947661763144315232400533831390468207373421302522516925151603049372706211248598623277980014351554549951644824014443950341748189091423768996294684888793572117831442112395823337651033283402789646314375359397989554362952258687437258690839809486835982517336265452482210297168450683375599901787882652961608843356516465012921689813860306937735604916039099256926200998411304410071846520289715264681257960351594370519025621380765956608429838178709556598733693993276707784302161948750456138987076075667279605826866574602842604538232687279856857349999187012642876568242937548146512295038166067394067747316463867899569545314536527501538866670410348031740675330093510980296101613270073529879269177409281947714772998273353604911604581262963266813318475591003601869321671313232194335491911574296692621928109530433852708177787725581124482917100395240550294052416105728043740973862605273366468503917800225024071621787775377234303948281726717457379054483547157421227950953089367363029368585265577005502288517005363499602368790254995969307948271211352060247524541818066327332750453020738849060451681371197990925238110819030975215895265259131378498178167411256056698491215465686289413318083599975333406053343531155726153892320302181455579579991695859067740940663402470329079935375756941894447213196295800462033506204479605254647156205209733608856132408205558851105055373504104413674254716254335230813311391527415205079700083293057353385923060445644601587205119395188756025005112032826413589196743147999335624068319948749052359880855073330423399599546885401270452283775759390150408899278756460848548004894560021001544951927464993266270995819439400877932260574960757834824445932010078011811059647463028838747355475095728613540461294942118032375848883270246866119902574787080253264007950032469001200791802439536082385385115078402844608523744148423624242062310618665201515032802601081330978796830459586830516722455745160348581577679925275930599253278728421710860185384865729266925297032471812498029745907040698707981090141658686565660985484118498083839647227066768957459302770953208958863594489995646065490954601804321194885214815938300833171245727094443899532642658220967097259788261565492977435112287058309994685412209680889774314849708640506877077457457579718585991249592910543546779822889872632460222126146251168346177068590108966687466414360401132046770261338710509248810144155945438323833871231528641550604960597146587894371162195085704328453636024511889612613801129761147123874953249610383678612757408938498526483216768797591825046896798133186181175348192207175325403253143474443201458797239115728936052260815227527573518080613961208688195350830219401246170138750409604754631339942630164659838924974014604787741050140568197522834903087586653290904727110845733088770408729703289560383613590746623165052944350822457406480948903875893848619167869604095282604282466805618624777491633497693610541957641925137836887624753788698362832073588290412586329742427365048527835475894357762829859084599386735556610263739441717565793139400075057566193440920770803810600765035092061018433884194194335542124707783535891005363468779438012768719734151922238380660078258823036486584301549778133545817078741793544718534142481829965589663014934363098305303850726489535413914784866751442581606080094551931965100534069127122342143828945309638987174939980138577827730480186919760042983992016530895499888431871356754344722412727587989608117238111314656264581049160157063042433603603136899170163360815696134611536277725486064979175714539465993011164744347956642637659365368042084803567712133211675751855234202737211319631315343617833829886644763953355579220071133313133809020982864441941889445184848431462492091086930464360930175948070084619127974040666324624620811378924491635009938462335034760465057211245262828953522315228690554036221791536688728952708813478620997253667171172959025414097248082522549174215754609767321018513283298711682361098856017703281731057766081718675846218079991316619577798832781666202438222722790092007283092207815309743211766317315200186866726198045406411908646504850225251023342951222078143732229978451435946555838388374727399135377147375224067491092237592856338725575142379819467359047212733596235016549124953739176385113914097954844946047210086822879241302678259733385419302410505244966185414429914606203699130356467943419968502575800349422389739886849419159794306207954602527322117572974378641861091499984522694361011548952000381083920296281469297804463964537364538374288897630733869503251478593969378780626496621625423494180102956389078166857354101873248339024018017774566484252638797432337988178667214204298198910517203201425269227166281961227761321563246857175952029607972740581138256662169115373359800260348472016502257184210192843826747723920264534675320184909397450321264501601701123896845105938446047703826235680878890222755099697215540250836659601388663257819649505773812632053517692989596248416690514966385009800786189012982002680691703077884051239515132490032270338375200577149946031108062008816404281470611806568206421337723725014470349232486123316779781472045662626266558697069178353022041088203068898725606893330532862937054787431271366851251735417816946532697696913956496764401812669889758507033821768700741883293991971207813510824512025199374500576260231747306004178120696061304001782668236236882460100053856237980338085076629165100854478598872561171903194674623344915117769339124739206244855196451408195702996851151862624687162329729331904145752012027889683743057194043141854126544939762215950903014747652949715695030798337062173003892199919190622525435991362742759608177409989872509410409611881184109231029232438059955193380171896239981170022392413806197831782098573691372918996997941617525713767398335618360063073955260715949998684584104474200171279935052849053971159019620025588772322407052339333903878308483723807071856191603719870533536734079124970503227893724714568298281416248514468532133387979699603682526330076461392549250462994682349208727527057962387265958733463903519687870582279989563885496058143129955048467344506224760723576290235202965477499371576075360588336737508418723926989144980547018064578494069740657284034110587486676725052521526513018897058569735013004087202849852925614812597222485774482801674546571062454742897546065202482471770511135610329803732166311107366231525859882329384077600871348113854064817868826330411462961536547007206359449230709125993221552319443453386523108310536516409857839553640348263593578184743405723283899286557529729213138222390081402995896481368952997868389661813552074106658061556756259597585956537586421210409727894816409528136405384254649738774768204691917414825987506324247123189234357214868683582218662086083690447500405512226596155995645021475498016378186510358773131222420239701211534490933995855733757503716245650388213209691282619784824164503282054380864015882476455504055169263477587401953595176987885138002060549264023966846355294928110064529777689648161334627672731387646167209044954971406517923150534804196003211595244125131796711582816402946350237455639025555573405595911393342906537450496618778024563846654004098372479818207357518573602648240446431215846263649151185508564542511352679471389721019520985591819326420852261070973283432695461960542507948450914915032937978223186602803053082425580305564731921933993765075548447444677275976639535480154058908551647337288367356709812876144389865564639526817632745433948887113747282723979545428966123313566433121881545918115912438225657615980112498596098836063632859622202336709419629579866547620766913155412058880195456476857078511383205082706297643514223326260421258005863181176024654003873379222757044287760555689971876018503932880120396950119456515504424111356447034955526003385075989168790332983550910814367121989010358460789728345573364901773540179701303288447739455367427496488648931337381801572442894968276064106584397886353222582699607359988980746179498877555313719801897343059334033928952012509315292088838255200431422809301235478551464671025692814060221257118604644256838157228062357339766499475293893377258308358121041932213663278898660113901487658487355645645121980406811758505239886521687338045632013223582324661606798530194511100451944583360653409439109672544619601466286140373511105536934785207818004495296031453629599649525759108344591063511340928654719746763235116909995528584144593722181377836763667005568783395544490318489891799702547359532120972931030702915152336604242747270585436668546857190752518066983237547006786408297354750061543381545918830111138265909801304375139658838955067201647156023852661003746757499912800109277008091135104329301526749380277739776112051399656643728615191195966376807998136260745698046419767157323071490016524952051891516574955517971294665943155414576575801404255767676433469172606962003928009987036163927325548967775477152338791257706248589890165438081760927601357009974254926778516753301740183740672779777980774729699986550265132700353987415329813563712578889290918791429342792193155388590374722925478651131759867835475943022374773850540789389271639316528904782903639317300057997944720557269415097047148504936442776753097594005818250373459917189543617473507708799451539965451392611404564115502245287332528334740035703995211682044004547876698351676326121345945304717145837924844758270491512378824335182994450617482161703558245622531126764775437100975654768070246079275203410829151784346520653695878679452453320444306398668573480963801105852447201696298998238391872375013401590220924525441721189434600103454282412819799620100314900924459919668758428494901816612641782291862995506158256641165481836356228888364298500013496948016588161191040600762993911468863257502479364176132584425781808903555898075690878270903887796562649388839232897966308332983544816470202491444563146790639861476850727336256619452687742714812886663397890717366410091150506016249977637468608550988118128070027084707217887574435371177793508610145380068882821012203988367256499211664979348562777092852970326160706390057897122595492354282810766100615669579837826435616692456842345041269594588351490758421732232686708766514674639710453777621700133488035045336660176217364377451653990935138769120540768367612394934231771070487499745310188016903977020247988568568983536298549697608897281346990371500050035376716743236729915678150184637396938201206731231895611002409638464014700872585323208946398069756209817952307733160003826234350848232461171570972515929471499819314522777057397331318243390961546663582890026818022171253443182456048986361641882173341705260699468910603311964149624035006500546915319563599152518953734938510694619519216578202406602710288706651302723843181159373468512645672060931551567993247787997088680193419277122207157209312358021779657858615465276602979709623887402327624151907104864039155125812571250236877630163005363333213575085293771535683208175699617535491180211095467059268683460308508014765087979313301194179218587499953326230510995204760111785431164462698483962161103695511419568797136684823179370715329973009803246780496712314271785333349827011869688825027260279066939426053106284198926415875717248283560412415451754275186952475654926701805949701514805283851038912725226666557478913122302079516321854379877274887642854532218241196112259992064354401455173873566496099211689993058252584249175033968602133505900162136202885039224625244412855309552552422932541627863043053857370351981664259950009955323702740734299743316133091086875584521985560452090952139464879586994585027676195601493695814197045623617552397022510472545774893047825400512731952110318816220391274555353363991486917091744880720285718145652375520706286641652804298668027282604472535179379207561053256322806909911847464674018264678969395196621806392679710612483267065725523123425661337022505450215591694634616746390829186027877134408622974118647931585573918459202846777631342427257433997253402365611819528139332111786313014634899578731111977077177524603647626613808862874510069267000375927794091668880651861957532348488083708137065262301254168817317928651543405911040117574036908101476307890440040113502913104394548719890736814350316308885250960067843479685865696148515906056853932466192210632648582576701332416153839555761785523329167324856016786559005154490114802981385991235303707026818035920949411472011847579496471074219197420762251704372224456709577251021690546756772450470068104305010089945879221909521688717670910377816040368870127988254549685707621358408490921032761277401226156628576115160433169085754048988036634793517001470952081579173940517409303308803015867951252716201304682434393788933255480443200802618446637101208191975324917542459577945153583932685536262210155529756017479860103689522903787047528326934918912515871799105449567433376070253934954523022764421222998259789416194899420785304470715783687539792194377390632153828854577221935309253514390624481559623087567211424677306481836522103291387790246483322653677482089077986896341647556310835338577939353025210073265323418925409927270466823883355874603435571887797857909669121213722712766229201529084504535204857571934173686426276607847337420724347955551105209432918683626145146738306276828612318207779416103668969226915030784412626860232459428684948710972982454227788480796407660164717154264416977313044952628943040132084883851556413640547089214119456079495827279821818002969615120217282767707102335805260717123137223672907936565456394702413530015554455582706839282620065281577852305705200236619320721890949509843873632132023427859979288086167607619355537580673192455176440523114736866242713503237233715600716183227232278108589095580792342006829124218050697656005282159919635538572498654075834156866005240794102099946890501358592403280979791962616253386328904775982676402699040907869463516945578378665573566536643409523234822668573939055897932714029607091079438500925027263178975891812987341302555860259512245862168969445022798216927103393372642211695159492103927840825480375405862312400882624080577415263317006293164525544241148192079973544784849023610602932346840687270842733926682329546310123311511144402048136872748125946209475015558475179021108174471814645854056795138508323644209046877938620440282006422530785574287622248255825342426322005824384040830242839380826023560847012180896872019222078456766942248114361030118292071447301836008985255750986755539716864427633387750505689467980546795382398822857032322157746050743849116248722841439727333436620019537027017906868706059150193898571098853823296435479271899004073592447903228379606580193537994760596695062481801508994057515802738200998321926055524756311057651513077433787191113294501641552835918145141895327872520474113393408640102632747770809827135998525887977289838527469789585079929998705006506834008835690260972885032726618955043084087168065498467522065366346797010607854245943209139072559088994783541227997408050336470296914889276391246937159048591608862899340080512578030959760319458584435954266565283475062327343371966081060544623967081038849185926837027791392437403395973994998384240408306229118966770731199803596373570273217424380743557615719623259391287021725196418901368784772652199064930174473000966463452484874087199715444229467211724389571094170955919862652916592495826543540629651752171714674111093068956151031333149784230315989717382291737161649738797875680172146092723533962493305839415331198122535799595168331073832962373541250102772416366511696144974885519429992882038275705014644519708897520693238894142253768129941719726248948633709119404772848955363044214844337809257068092711344567270932274019503161329516314342160403600945943401681985738946029811691289803148715492956755814717133848978140371547857886685053536414891943880702393416191124458842282390894063816137068903273790043947898471504282144799073382927933518699937994768502199557694403472645736409424432471923316057973607340390944388417133070139974024911564343373654027868579504264960060281719295293602991365020992016947034659737090581066023277385179814804487651638470953565582473717920231346240345061567902694036937741037121647778995847493183748885495050191213739689266045952930053545462675623172117489383414573925872536922997635380833653203167554516332142821140803859572614148779457654650694552758589932776466648157370550940813108611800524327685168240140577807891593208834114457015965184990220678050378854341285592225878693017594424003665480953492077781925149925939830959363941154526512820675182884381413241575580180266629063598524497468350956863164225406129302156458514492794311294572914432715280944945217218049892297595173376920780748085268542684676552734963976553395069650575488897164464575111805525554301774969223750202069041182081449984348169068073512149618327990596178038939420128732757773638616578331162181118892461468727414019056734857256447222127216436763988497432474334128927832652519794261956934673892543880306391155289450958644834833190865489231065368583209470818395018983898118073500890887995203630871116723549137783631456933525820180605613716294297199047053580341188910783567228973179659807341238607477397846866737496218345512656261235196976492319048267059124959640527136372186684738642412020357912909928357810109348001605652865505611916493949095584767671684646052812207690721558625611712358727137449269828866224844327001441726229987143451468467202404691939455789673433338079842576928463120856060113720287051037151872253067194270499764146119877383410952426746285979826790590013620402850299308838730611517894885630974570413139390762855257290030887531810100874264489984521893145122998573642236304916898538249508926308551317426061431641639199413357854396473636935273166086160447501597268316729587204517459847354329856999920869508057818395384619802324056704429729548766293029717383081750124169093637210102946301962941602099621510457544477674046785236835265167122798667770737641360048851944147305850311100218150369276922746914343921176254414027299743640551412810368834164589589901155881081006513120525339712716880226237089832908586041398469689908118703260605375497626420361409992054359801975570971204961334547705312101559525410532200432833404568509702583377778994534561020837875599985426454471300719918533880362169928002420104599927670731558210254708729217627604277350683107017913023167986255657039495067898799710738606302958634669742608266249617204423117892374675348824818041130351616706372443041977584282379928193743939660210553690334360467877685358091865404720179033410921632962826231433067512182971673077889142460197027817945217619999929335329813750996912029902519103212847401143642223716201392191114717524635360670932738863568319300760311386207983575014365825382611382385305362713344357954113745814405719844172933230611400104831286830899961002433857001049572373140465447364688893868970144809365177644788097310969163931762439485795210293332279285159815594080235549767121559269221668017132195977240593585836027204867603582151539110604620685785413355917041561186944356668753158187942549475305441024068096356662635913442017218187361239130348622939719974926693776034257707798889711515203750306152591442363653347871012231551292036265044472631456212924454065733898319768795144141482095474168431782200085655298200035179386103349722765491747633046732844526854197939534497719141950899898559364401899288883810952278779637730836296943751541130896417442718153980899072979189250847156003060196256528798519576456508867989487886603032782912257187289530612562477842088777902025037446630072521550997962294751075258923257366447167939409221191362632737260293691337511179373062573322222858663105110654560825590611925364706528878871504849516520126485988379443541981990939904922810211597635098746246532084125771357010990392998421724541601643227399725098762217495747176806813697854278163850501095336923037423971028517760845690239371718074123336298735383869475651340134441156401655527459420114838114333608702903003002179732558700924389290129904411045574353856482161554513519679806264843638463660411332917811444192093111135534286363306943396901514537681178262609064393477765394938735787810688569360562009242858892921148444779015752912394009101192630152590743495519016044441045154004418060307571539657428404815398956644452912297830495510703890031889582688204094930964158284551010283624885520216246760903338433288716303898982696474167223092749951326646376159531522331630430257840228924796945280172344366434173732768048037806144431550804168339593323318162633097266988150596662529749728415828283297399038555626043246307363276785940183104692375183598884100794525907529359021290292657164014452619001863134566293024042661692478897261003605316218417622031146315388045801077555158551349574906390137356723574579527962170269644371180731466341032503165850653534443954517255192642585074221834729840803713487364658760872379689470701202942204873159463286164728052729572128767697247492707157010542451628624163972478756837365626779508768800385061827144671826445482786176802077125212533199439928126745861330898751209015478923363678963235429564080071621235676707671853347210205675560730160931052800447994119975594272284515975848475762935686484778282262848025270274126494124262099990379385955834709876400078181081633216876059792744277483888766150827341748898066430957924262124591874919458393286194412091044389622424300767212229903892897865157492865053034212831507907688341298369451789819424622487961216528094962257876696064723157015835710929094232383164504500606145378583732813556797844707130580957724089747757282628435673188816088702218969423214956208708485251832721444287268048926111142009612477708748360029356382401523566227779826532458532331387975925112433379716747281478576858748162311724080910203815012189489386576465640031212138930389163255368137832747253917881052615646355116716634024215210114884362625420097193930578149361527219388828054078322506825036988050635838389347434748167778047408811920827296799165203001178629919917956683970508171498407401274569909296350970204139346815064080243820397943330975571569270243993182794547414001923563167392519218224344276429873091379648715901368711383606112103687958495380428546195868894169219801184511639140788029109618064714737904885007063319601640806864032894536282580024766067441798846287532165910867284272928436640246941814198257116016120076205550218214718176277971811717879794335711539330518149441157725562153012756580792394914283483024167740978998469172684544969815815423193901868075045539220347845952162020029643932354430253667393025895614971511109926383185274204896855072239017555221277151001405712955354811992976883770658142582870588815712309081570162594839329094360965477133927569922578517969246689053263325936395077507504105715006273139628138435033913582018814365398181015220429446690206726966690657106725913966287449088053645700327932928168476243415576481681706791249336550542618026401940820383114580819699541065101961509000448990748858760669719096519840908151588098159190515743190877834358692457760536483632264653502367425206956981049709955245192493038364087451658852265093311174435040886858076668281086499540174673770868158350764932562319259933687377637765181110953602253496311346593772608218663569156937730266344362543940744760209468527046442465415853525035453967530120149879176289977023470357658185847672478872509297461991412062189888222015044805033829400269757807297302136846666722170334211634406735730922096815681709239046661591133443204063475030825199181091505959223307738330599777525147397522010428621473953407078954945123397184300424546503632471544983838030636480816251059950145024845429807325775853897556669926801581073827036848889523506424535322965671111510887686681251336437273468819827761074220856313302471570472140644458661653301644871401124819145528224570918397648320659400408561860658899570905382969229401750092633403155337747595966242065457147148603365761665186992932444425130504181215515148838332530195044087795163011603818704664730632378183950580115200937316603953883172540912858874366121637613096162344537234475932892315869742395071725666831553898055054051695344438548881153259535870353133675212141911452339283614575739650658510840756741124221087972790012153716975818609335175967515498812161665973831685451102200329902804672388974889056928331025083419336865044749312550216257824222485593622170869678546593234026661379084613725144506805017327412593240289744361130652089126163701316599299718115844505895531832661371742225671153919121138234736128872089198587867120948005440933340551420187369688715324453185553997753678197254038575055095760885626707255460521622048728022820198946338231540006921674514010973383746880721378514881330618816821823635674007267609876122255468432056268619549452176078407607244694913370623421873139370990276311808328098168658535094223847030616486656895983856861610307637324330279306670137695321674360497861264691173675471449706927560983310747847922294040483443229038588190664886063849637271909824342184182039287597757685865205357517057482532062724136572653606089403922036339259146810034793452211369767862585245018734678084535013646309529681926403482598527711065007913253872262888321781609169427140831690616621659327033008257619549341473445838392418874957296767793492504386584187035018548128463283738777880199840447556041542627319171396819526968432631834703173814240080805340796575024606837267508828287468922261215057211970439628822133065119117868349371280873368501754337218516080069754552713733953948580859464097294032885890852978310894070815216185999262078171931648354761334883791649596580406170746949423117555114400000871801811933506028080748092538152849607872557049138116429798937034380446365781472629809157130610130686365035162266709980688933327554198193093962021838509057292727542882496775166042072194520474004110575513880490907478484054916176898710372410138801326721712497824039843917540480477408636936014427849495165656651004389554761175360846396236448829664187356473651411677773211837483314111767555269034277601821631050673081506979904705805994523029455631138032701388666030210729355073115135634987285517042834646330595357853732479068116597686613451695832259177654023774051412967718167017109878134755525125780087868668232060839310409906537494753547246809337359412453537065055786001233237564445796174254908225809451044714985832358660961003476442294270019409726378734018475183925161664371522571998173626456421383755281300729711337775303184911781394540245139023861833576794920718312995261336766334219019611852511986282921960524740245529998945517512463723500916521103480375087081428281331919859960958797422644856509487044592083003709498390604811151396532947565878584777654838988240057807714032146476703863529425653449373021311104348474813897593356620927337924358184891978859200882209503668152258263520902297885878718838895724840784859445694232938993661838429953147389623504368466940596153792822906817601507812571038435854708650431504164098942917474844733006357963185397745443082245531684223944554602701115909925028283760999774968131042259131882760200123165353422857831013838897526565994837637086991710987652360605181585502016109491295685138266656387254273051335416630025390736494762521667898755934641163901405752915620964517849727702661533710074406100791646995295848257556463112060939653377505025609192775749572228565680316698482194766895055935089831119685515781266002706985062086647031156498282736230546619960832233621779800087777630151698409958289190010308921177197023250286923792298928929719438803741660106772274039532784169591855973416698104252326704994193184433409727233418803320389690563433473269091547687789768649778660883212173583945302312582406046393927683284246791812479481967228104640408941640696444797453223961805049756085410480347781213885254911103806502980339434394840353350921441012715077167510139448184956707117516690144368613818650679721699884172533895999969635985501053179741272044833585372604400430955210519609762983225008367181670732301664720027431488613220975765506769236111436898279036545805170684739693389032225146673304756747669865134601518287725514154128832586662924683332523194845121061897762362804619537691524673364633713258945388109985627084199424353491491417587095053110221009196170314391660366504986767632955427263939920131319617487655138621847572838454004506777836440171722399101814437547949462748455716346208219173793442696165941313319969267330299746722093702464895363455457377048868820009832772863677523070203273919072579364865025498273425198573430185235446893749544272111211337909439693910135256943760298362240961693381806488737191772635454855733591103830734816456742145734765304853804428328115531579637627480838216606041403423293338966710069284964589291971298177500030070936209646343566357955682068115283210915890994027281928801916090190074446232097659968531567295919695428708994465835229029364161626677328543238630416983524613475552141548796208286216550619756525903890287689386416731518370061989906403127944400793037542756120667365342901585540976686845626345246171982133516522724910298615284426580600732828676014190290473731910044772464632778346197919022775276672320770381028956209426045746868695243624016810503704260057083031656967730514127529923454995563390532568819132692454245567556361287964874012288395971820990663335448149433929065044176995085434804554828131428577177101677150423998108265683123352657125105157951286768185795340268541557149843347206380594357840937220386628099908419108298640998294014242457574070190709500939980278843727584927510855728184124796040869999545174407746655457988667276267833257019496296087765017442665656933597445074455409001070037337316940090356533297012788098719358029634181101574825792191323874251885542991117693193407424262709468923482004671485078820615611686311545539776999540873023233342401911866714283754962592769088811275689612891606608361168941029493303971198056863618665323632507740733198021818549900778992292132443049338500791394694628273628566099979024211920692887463472720532906996888691475593465673033771906382990663352031043000907921238691558019693486932102254200450124918654194817864482505957641050486311404682241081053464242470634789539865659111247330528959712252596615163335530756562771847573720251516447706165127708236029266582958421113614150437990056157240809257275867064707727084307575319401945941295831411661974877392442418814374301859086944550904801355746732316031027990882990093198031579153303635760318932299848905965179383804078103901912346066300096682067678619453008560781437575586660687334210163677314139371378493461386348391916260719144620450800111822855302751931994204548219295934625257146212812178344739886167632123530681287044244825747772542178676789133371485581266547481086705050839289958058766622224703648677999286438987163903719483834861501012171425836292177920460700419292260316146816076751916443792777179497789920971604803555196567972671002718823290926603970158251237482564423515031751970791398543448148112888165962226435477897947920351220565421744284506846641974090032974432407842526279579620181284486933915977838788739678850392019382759653776933843672893763196399741617900683960336410373113989058718220506855259722198024048558099913415385979751095527478859976984796044513654355534650229898068191093210923678203293768576534039245860904325681468567838517107783890103776883223480915156918939515161680723080936810561338015553960718686313671424563125938617371945113109345120975317385224129960034223845950835251962344756516007835678817012946497700523803235831615315945789824753704001960299176263762172899318968544715914992151545923351026941203466283201427912823495588374326947564100298884764191582260214423643570339003693896285543247125621025430697865895206169982869835593438192855619927074057946093808270527699398837147037335631275233275542447470535887642874143820191702306511110606546353372832679404356267251111940966329634385256223962033937604799009725795186351682092277218882901180236617244433591232821129391104947539206518598433306267347470558449615091818892005242494597621518606395904976963491838661941265699762888135798435207238547731820664589960297468248827794278528149515310674410833841982645482750512765072014072056847120662768060559685311237123900460949275070828810169700756561239510009688908590595712185142250849830516067545908244491649153293790409012061513501840906362751509774445644565154418678528949461426119005835566907244301689738699204995448352270015851307025314261785209755703326455450717239974793361531275129795139804624812506546357599520625425307258738914086215565193370660504535833802631760548923356822193272083678238201477693045539315336349294522227930183240363838144450500429780626339149062885998949691274126365188682878718182212134698877964000067446208372973794937653459709274065448285481199129700103620666511890196245119866592551217506031615626684604714870867578950853354325704088667508967187766286051266501479875613706501156947656433007565857390620566510122488630686535862842391738656330939660311745866349420519052568270571479699736953118879354569496202165179924517541091335925367608203972240314365536189137087308182707479252265171270277995709983383375014930719182789105999428418231579905960023867570670882200172701753486526297814420147716856653101366283393034205861857370688365605977204171640165702939279563432186019210204886916081438233339598719410346284840600601334816248493996411835206725720851608392976695709321133570864033137010431118943516218290957479378210230761724242081748693487984302942881499261047592988884802827697048229959039496843673197955342951263715386349214925933477061980104750561111368414653532708527238427949875999432970209426019805987075006711769050023764668943498942433128017898101196617551218375280538382630219941347358706861891960438629083486405276016384842609908372861995599680615435302849998319606397676256076521606116853968618789559452727922699855563266518936449122057122160593372862925578778976985508341280249763018705632005399408121355414003315776253380804598173561459958087622301508843172657982171095784320201592493193916926164947498479284749935723376079715380185265563553151977984711093681319550157154037009420885392448876514204009302157393824916558992335265175756815321612611459650189605462564384814808457503944891566797115434926304441290496999964118784236212821668473137152784042735822142195834750537545668831785661302067910733249062692652798051497809484459594388268522289281175301748864681551812370163824991414329896479128630383543214743551103815549186600586804431700678400796783212689939553710893915666407761032355267053138452843855707814479916673935259394634369528510055557293932735260367413389654049675537066396202104594101408011508831941302238191756331174075007319606486096465062190002442719277978589547151301598102801581896630677368763707510843109982377678461713802191169419103248356036841002664349802482493142841548261799051098066083692930049138430263748109928274665768020913343324068594214737271151528842644760584572928400025803199094262920580631472947207178508203598922896013804934664946914994749238162682834467107533614777069296898007851632884820523177276149193050812762588118852632443797400071055233158056126524480613070399562029785146331444774862112000330926850656087139856509580986448055700690487012018553872566722143860511547740375879300604278178994288416301501405333831694443749013868950350816307737588802212781429674114187536905789731021699254355573603450625557600627479547786418227754470702306474212745043914803793589165773394664284958931006139121937528122483028833730255012241222159770402828313568764165941628449804540223498994146420742949062089891739204788711375397424055478325344946395154584977533465253169507445983669410432605209696583768860589911405309374017784702145509865326700513792906711228989423263761789205399139679534049378995281562051354341177418249251378468119959946029207894915697575010672953841168045795470609470584054877200300474734020837440949629605479782419475860044956346143041284981685074243484472705851623048947748076903506807594343320978781871243723699319127844840345295613469353082821928241679438924766616122590400800903605334500994243021173668744888262695468351474964189656832431011684558317830940939184963051193374133599718085707976226508639100218387322544666339224629937055693327130204859013570629598219201974544137838789667850762379092630687490443116124719412455996223021473965286877967225977961848410456987677784330874988569795740212575975876765208303647271963522558141102457706983007935125263465145157039200330517251179204878286120302051356949232478263923025093381787098793217198180983011737215236810808808231982807814362665555214644532377023753675560906179020325983945819249246839831918792910461249803846963103524299159343689699178731222820293393716468891328039034569859251389685994254492398381142978894512894108701562834059577723384446859204003956030751773072231370436584730159422224199887935312286183829492895053261606159808016538402502294814137067650693122283642193939128571366830679046919145996898040093637188959748013302771056770677721768857025641346757276577167374826305917209443767045825110877657425108248158937064985565263281879326582857171401773888836495792220923410372926745681815670862514570533957104708361054676736208281385663532976660800363038912750517151590951075578581565953448165519356441901814429114257806404294901722944959899118328611155322527109695070243947254111419626962527766740905216425035857949636024413676286399854643798408484302803207806777804720695475775785086151960272779707239858623092533530292655828895464719596968573003191248570833045549602852981871360304636775045850471846425324256080678501534647226798173353080397446665827629528993550180892226301484583635853532607500947366761615039952558695127401226137074981660808044379544676793835651314493792095674940057913614508986349207984588608405650454350271259792766062126303241732212304024337699971619212716998287315043413686796515060371185980317745966638938528151303647653291600008994034900151827116387919215318365562669267132028717531666041459116532844622663949666212303128700354723508708113537418629712780600111838034861260884287286859859520170549329880182727873164432092453299301151063028484187080037568914761340665688875405396876960154383792869422988452324241508667054529915728995126843260593122286999360700979176651653669992296089168431529398762534379562937207695738431268342973047496539652268365616764775820850847503754396227118616303500459447364804339841741808714986001869663908938763846757584934290119470612737767042331417767326415392441730773548484490756277796714055855298932158488775034374361674961294038619364776930325123106462286149577125440502996491302148278658713970995688217258562836052808649039339078483471516929481410798019342860235062273438906733807970169572318580832890277210003594974751692668259248007049799893579127210775302340805605873976241513773088904918813722377354944068117306531677069933390318276574584444040581637419032580839641992945551900469931179172886614557481707415713311294856198728127736992710444072657780398712860025457512224155386935073962424524995512280215242319459106818039899674394064576601993015115748362680364105425195039849955412256889417903210219904756847520001318177795061357251779045198738706475218956192021075761187427109364451132819054317509136776466421897210503397792295536184970488464129246805283015838529145817273951601883875469385455875011161548845236372624228029174905830021722703361999982102044677052536211028203441395039781451431544019448938550979361601054905159324717028670122743845709375590737126202996101143406509555630047162613316430319797956845195683907130478621797339952696851920272223669208603296651912099246467298033588258042919303173142521217392955852829722515330710306126664869170962047598664045811899000365252528208733323801356912636901969637350937504146337684780017934923522503487769633694966183427468093531702257806331546448733574626179342982866265805578223520904650296736580570554154452945278400196315722889320704628875913461654140045573161546431258660001940135261521145798393854789811721347449648008338285328649439481486060820547217995697980815183731391704298798120197250104010998396915459278203072074015763472919877063919635335918375036985980034830137108678389837756677479105556994243978643275480724979095442795925211317464580872855896617930645771893412350337804413185343409629607667398519203529205823648927160744455029790065822717644211850123796192822729858503695381828544469424933033673327681004056873125064945890339159057108489250378921115934902962972489743929394369309949692167800112070218676733356577088653478396357520332303474532112945723053804642022919960679549248228985179112522408682828333523844570172092297747513534764242677395823655725310381755724472778442185576233360284631026533159199712560506612449720352831072484290878160938441368402114864598139359055094482220237013257507492066541879469692703371835865939675657602364568418471663951437999878512689119686817426591804260786157105309485355195782202305797670915481334752642037356863189611706790886948235143661803846257044191370230388481743412525108375555383989929655950083144853207628455797046156387865707473609165342928994855160982822568659768044390657067611090926098212021002837738560301200813949326096665970156359890039986600604019337771270527519276368437147271963216660180123471040643399289782807027577178949756804620683295745536155387153136824199785206351637611196430562859715196533357426952672802434985065735427020913821456566361004312768922076206696576457846237576977326662401133249390202911363613122217719511890730025403662307506102662997174643623703082195708284912528480515072560125887014541368391395141805018735964997870281965516457638527483005662851429232772192710199827432181043971829246759336736288577250357383677870608725929779126305595412930256480496163742920650773537002893466788244120390183061223964109835081927117663075244997637151866447394996857777415983699821143806042282455944512510515094171204259191927508976400910757483147952072402812571714153703456013888533546083470390784451896740133158384624179373661723870821438746284936713686827740521998124676118669853186526307722705588247719593981755096194203547876172006722436364764896851120626163631717122123844377379728416117900732379931388485084821027520658640374392512132762309782201225544098594741537207664847657505726309740584847171470641979733098971359178083284235473459161007152776979812107449826767103385393894861905652909230304448719030471396657872646114056264509249474157589987188952945983696527726376928219049637636614874892751961384743722582404532997299883211901713939631087572988436136441892723255280406133803325389398988717108828558006523206013298546705518245568622337541881991857651158789718251521265297954479240419319885051326895560652462702721902279038987502927364509781014914904280325190462364551660177576208825475820252879983647554306116900815339641724387586823319706166586290690782735522165198804867939175415179762092560704589779690810559673051428655453605050261568910150728665023087973431308552873363758494590607843151635684475897012780219176587750905335115145131933603010601434678486816608521356600663079266968066259729950701944180651752693760153599088724669881037034223694445753127566912512020734541504536767411174134215876039241881364960476775328467373457194209872069616935196786628374368951422140520023392756701468857879611645780449762357242518582565853435673219474027383837421829839352329547921232379675439634157876402224665889318122963521042714858383503871985052799705904294540906578026783647831632772590681189753348085786212047930618693414920986998397409709274665796035827986375304074222214043259377579836200374238424071017753766898821916819957070733399073267513688878936404012900263575914475172827662178418264807977601601146706203085376840441525030998214441011438007266259842631862513073253781840155211151615708409756289763411360555593094901731352821951986141674130834444153437272193551543037777030442410656491455722013442949154288540889077014320599155652118379565179379016411562004414552173230090736951838608832647986901470587929926991587068360216674067346806136938325022636538285141508280461930896187295062418051353515755115952659382724274476520982948640997869114454254654707830612207213758404951918779551022887765936770692086944656799150222726455007220187158278400740863880234109992793267786142961370813261569023026610296014697829038406915567227114210960877640461243753332047446671546034781849394434198336780364464548504533368806478643819038947521309538746956662337533442724348215651241984660274553285983609011325349679491600051187925269373505258521036812904580588617298505090892324153948906672735012227716408285832690472380116414198437158069922621147576157035073757534462543883819010473996362432613194546774293666842973527814990371607946960008984448810548837234541861908054379917535794983809914544057481257622125789606759303193636160942328287825388999750255316029661985783431586134578035086643085689725518164497402532955340817618836007812355606239447932666429669326062318114256480507934233643762236096063477492860317239655309392983444428259078795299993656851668750817872447110531965678710928548686086633851691811736303082064198768748038248643159341487745281563720503906227002585958580729157956475254616877620250135929373374358564680967503648913053154408879279441577315543247497523024086903985656641420384449709757618879852603320990369905465926094466435012979464822506213315809848126585427009814508789613868682224478645938478251179359419668116594349878880737833966985041296767654237534255395305865499361550403046949357162266966250025017627074986707916851898165505826503455170567525196124810358499833608758953033004368413192893784464508831432911953052860153585161567669693704541652486023791373462536377184837850082581948266101898814647112384526264640235314543067000772469503133872487836727672663478485612922238426123393624642714247231010610866901136548155356514804557197934142425135502721167824947880979627174603899231849565361062044491856559054091284061089492553669274359773987401551636956679862252954342488289236282781526717571424529948886502103648828244299536196432679340459085232681954980455857205543488399758855237106590215084068482001060343539260913767665941296907863514175452149461523330193533914659022712242454308313221167361341090523010112287195224920671517360918548660327560119196011504343645167478882824130270814352651473684545636713079670917977828663410163373876331567748992530586468576229945087562499744689983762454785454104757432910892211361563153224737150354185774184122690513299294139962010089609343325318878085416908831038286978154296575897151236789145435442372960319350021638462920685740634279024602254590838528610809892984042637812434613919386563789187174935431493033432549958745223135571538808929020810852342425775407460625882496099250267077273018641805268455789731573683308107892453798377035822340544512159370509382720468485113629141992492605349891703040738806406383609915076879285118583552855538286478535199244854296463549672037056685199868280737112446863210017923938028766259754609937998222974530800716032223432070744328563114275969783585178043973425676419202593398872648873806470937558049878527434526940603581864911116481612688758848775952558890490911467201816096602631453695972774825722096847679272282394145837913724974107417704099617444161284979432203837208780584449142773887450499226828159702552570201553648594097250265187156427283395210238972047766055086596233473204730935392397131729736010066063108237088872558217222533031319677605751783087604608571177105822794065146797728510355572191306402716944550849315841421450520308405438922409046596272041428960849125257959683476703464194558347941355623182086675970016783085406797747831410057968683321509940314572227001396892127920894839442930948916730316314055254420392410118460608368831549571460821911814218194658616990599702728990623574030995724730772143707024086966697467618147010699070465054216385832326052177455287143136903321833218507925762211765101691647824642540465047660983374166022257988143519614098891765354555762462483713555993509521724234583287105704822886308358710962210572974473879032276095710266412502215640803220282496716704383837651911567855053500768847198848292472983215121330146451968220925799395365116352927956017953176888030122487617062812808035396823375387348598991270930716412591468184499141347372036470889131535782880853204458825224040843242292727260337271855247784075366774641086570717453852076705786827488075602642826425334644537630910493039253855988776229996469981631099908019308519272065823522794469076533731027832118246969054908852238463081293501704494887685667582510659286779374601266028993269839975796757539048409586586317293796508627854279052055824704389444284244637290476729375161565557908855314851286953582852984599448878586583373994753551259631655789942532707476670960341815062878462925090382595168087990677753661236900501070264471695097368007146438643879581707129971750066103404715931091142261935897813860451489503184806750918880734728290349095539665211264160132787753865149348579501859213612143677657023775355383396822710701534567399600499182388725692996192351683770395591423088042457704565490107028672135396058631848556642934674854837653589978596867070239978004758373604247953430673971825504754559377808549952654118570003530723871426950491792571066987817204008594830674898661626256675238356109892444135176982868824525657234700160734742029679576869479695832172755838969607270987543514185302857478713995172091419483876663093998933552476075075378831728740731694987089862752551844276347771762751576261336560793817204114777516073927555472280988707736891824191497344211581571798108520443569900024131292763310392846073121988894525670518336675755637768270673300039795399376002041361523720150011214931651222276125086299834915462107946351219368806751904474953499487726616796044638642157361468121946189145196833315297739576944661428895794017173430685162109914556489925563428179902057644260507684240883128033350132363195111037081773460980243713659854428222040286145211998408189977138369040356419367209874181426955025836762002090672116961562707376848954036233416100461527730464297867025013493847341639615995345408140477193438951289193237552661064782052817057068745562211731242559614836490664711351785706659469821040332674506381578436465816078330019844884450659208003495696122507996533655733255895310530649759768157220265038949390015113778310328888132162245533527951484294223871211305230196176425651628398704061000258591782790327988466870220265568593551772022471328971123337602822999837766495281359641536369403973969455318349316962107572141847401265914487475771951466236507604658523701208607224723920219870525904766496169206795666103026910522541460921242817294648306099763402515724701765840483852696743762159580195369082251948087119144445352125382376086549917603252741495342574997476067175489203820808119181129874995810329217918387326465569749090087893588460158129631161216999195191409175783581482327108473421541682472725587578394987803241691048174992372237447815034160208751318578653706022396094834548101553817280244092134518418969511146073350237847894730505302599471792746986714568406697197875251011214723236792084272142594681259506509059281955578969372837759543098029220911092202892728017381961034254255028414396677905894001056648363675241751054248016672333779086276807595730766935902780944188957601881226058949050943138614838454430584517362094207791022297704182069399007042147837044860420479840240712854048761802974691601539621183263742387980961522899954767904572995225704131418180457463120582016285934390522722353624661481800454554292873351080581632510423431084880379538175238391037735035050662948148086780257824797634502943465582846109847884322148914873156622759464294887589298474828276726808890930605474944071942634191302163571325829740332477640083323863273459162380518440585320743541632983955334288596073554670035532323515096898745876435815697160835068491774796688819279007819889546178094375487679570039929453174422800316436324016763455340605864202575630682098269453803686051432274700241063384306768185240327101360314215605552183002546566735584239740990066428404119341905807533424020459706056801099609956641584338517307316380436082568080031454471575677748345283923155352524721603504426759658545008902333955450620432976718091028982149793405003210311810008391267243758614305947224145368968542729030017908451293514919045607924074215342693233098721058857823576943948832045239599837579144428565967645222882878017809988873034541921976838609023436008613495902365275459901112091846639467279160412699037286842992427695116830727203551798747594711279003987113272098243114928897535313979814983872770816744275666530637897468218594092132046241676170595192743921949097333194234032353491238031879811238163856125129750521847447480613326863463993766768723292209042782767982619516646079017363718925299075527793107121387939983135344646808016556091612140835549930939078727057590971918391923460665603880946139759378357930613865490341206004200010577404885634185965174943331372362135566128993205328567170193607573861391509011829212436087910689032299931951408436001753165694898136881592879865018795149641328164261820864757545269891811275306439606542497215181241626969721743828490988524350132135971111280333705236756467902794212315593343143275930941203443189224225030489204370006652895364409870035927500093774054688848190633646261811846873464956817238379314870565895878606652794121607221068691594358223140188787858243906753834059973413008000900756231138159294476946786762277837286925686832490257424514195938199739488854718939146453366336776986442307584757608972147895524852949981373349756508218962929137819665451368444278759213675307143142927836539132034065440853337329445246438605218170571792658729462810985745905590160266944393677839223976020689732845369686884576743265297094138783716342483856278980413519473921606990714920787756632418293126249273753788545050176322798602474452126403063927140835684091093887096270154789636403054934624895208142667559964025234706444498475524964308278272665977546523930898401665208115466253901727329743907206041184081592926471686118651435281889170595044773774717340397174919715136582057823778476015770272750397016457851909885192624223567738311360996925018132515662908850128753221295851944532120561705457703001884862570186525141143742562535076876268558165571406871664139015943394209907292723551758446700391983648139663598301940560891589358102945316287725999609504462280424041062498029353235295286651782370265246615545697278355720694220093745255157209864117529870671880392703799827816816599396384619626073169709236532226721856389107653766410744661726668944463601360062698335225681024921262341324603371820943802166918730467960351925310837393261229672264780670140085478222525875943904964596976762535831791931344923864097443046873769765611141195301389237133057981759405442588838972832718467930186034937718085571360364381355558450902576255073293670814844188319872417691008884597820756877342223862210553676449662554286915857262127818231862859416828276940511288517737277039743505646090628125067613277464707468673163724232948827106686742324595339609165474761125439671412614597442304419686821191632875219209652442880319205110973819290889273141620128808414993747115170314959728065816245932883057765136375923549778330389820565023752872967756451709473805306268111595939215096287039756873596201363743232162512240760914881203694869076559053527966432292049482441237375521192023544688093610267888574093909793255088024902475415463692708664922319849369198712943865400719135904665946658267598519734520369011719291375120990578401332012940188332047018219385575358568029059361372838745707217496253059673615881921030749711192619652514264996408100914611344885711211399735356267748525338640549871313453733099471030512764441894871196872565753101132863482356298440444792586999014642939891987948558457930960398732463405328267172953215948957349822287733055127005657834176939844253224337235973593922669509837434088148846550614246746073235556371394957184204373894281365996410056873848750046074788219343539015801540723434754957048358058001451623986249959369606527382458327011034910206336349169038169750932843049271746279736317553238797616717038649887027571111393359438889720892599199577926663068050640101510472880180306919069159563622493546471238483480136046606605841007221619892795013506194693134043497574232629301078395661166237971201971320358313031006510512700825588220122428257077527592138310950840457459240113424657733633799045258693722609749937605045072123033211158303448334986982497785119010569013012159006466765509639120926816975226162533768904809045258992592698314343317839727235371490876766630738011914859475502419544728499514369882772261638190270975908569839335002867344485042723399916441187643164232402617260995939521843196358883152243894998896349944831987813184898723034407192788529328725111928339642886343674455211702301061186185255773820834210165639695884004509468869158417473644174888730303624408872554464311675378919445333450913306136474822190252875092240960706365957132785770263756589824587017008971354896774858667751402500492301220657528171144715953240465615883912485155196859312211647329354722425066801565491996623356442347031259169627909076041429105926481471537674163780581193142955579015779303951438070631600469879329516315682784631815174868307391496476664890384121858924218528406054557560973304864972182763510913596915319011782318514514466485575594644441202268393411238354509796302174639965705890725722350520371041519488748988551280010587248240853556630494343257657274715868677662902148241315264719848581008145321094234664182124733592312054993399203417697467717715756167749355093294883437624027751005698102820503485908339897225577984371518100426145499011662571668385863195289840365312983706166755202021229605838728895028218627489880436448177581562530409540020836341972145206643539581414022871392944533112066537785984617582821788199782551538534748058018617719250379106437109997311340908972591609566445055764065980762604285203200451984965060289710119437638998658171600174136371133102874178741858841937857166572291706246885537396565470867184368800714612464387316302777525758039296416393012296624694115809465403831657381883879101303567454269561166447349264854973849279538100819433810357262431612625091370825555115812421793169632331454578444269099734697024257201489871935987851607451138510553037545476524443472777419156041177437191779873610166929175233428042209634114191768575784796782976512943241747337164094181958949291722920040251935700408557039150699033860325780924449033870941450805372055519837839875829312393997375365626465158066877301192343070252448295321239333800642618272536491145599048713995440658257517449858932100660761126967592690287195028598659770922545204095328003379996303881314931871898727255521343126928713389698516941522223721671140689830242884011811897129157949406271733584590153025621584612712471394004354462418804001453748937668740765057950428738332155475571407457455018531536623507180183491186226578906797383599896175113768116912826269838144774931886479617809956239470337062647022234108154517478495016624577398103536240384182104237248203160242033623016014709764465710531386771770212861915970563334031768698293293183861573782897565818048405218321760242029508322810585322913094926680625955541241486015934485440501291957127891424032593858229903409377178527835504835319037533520089346564479112592127975009205346124416956944048929213595844996768833811029324440185229474288880623888024312263119210296501782327972433396759526558396490358998503381722542259922541168892503322918219954411780343849659360215092837200456536822667413028619090788770629535436632032718173529577887316172635576371711767986851251851299781727825231577545153699113268025145465792411448939340851312422673115128244729492903982896861549092474155374024682801993856175991134689711938481010791867903201614656532554684832514427440049003797738407897054035759403571181461123791041259287742162158351214291491206229132602335643456175332042718273828518063196281230705475004309998303741613272266893189930507138084516385905769051053710533168547819881625527652951403617274151441812892883959380771733389948812437109083513988998399097252635075793306252029964655870999924323275539559807472335716738021666785227256510644572265694881005979817818923527663207655942491494645272890999318806619806190710201991461233106685753709592946573076075283756002456060947546712254744358645903744912743806025844444430831313373799017754419127556615752987727989839878509561050318193306649055242586210258148525193192438010866689689904969809752272767567936786898143640109809758106442327381456735255252750677919931623998461866069224530142995683160189123413364901023357806289792175739512727756823624589720756291511446233353241451199063601153330293230209664202419758148665228741029041240677572510055023140421569236651738720770321594834037233230283676099685499795849548988530892409889253344186331940697604145637468144655597380961717606986104523081239147878446184572607071400411982281263536604245581155259768991617296271983514418596500121784020559978171123805115802045733236415230395132295618734141345693627350935118407664281442607024568484351841520414060172759735723834926992566228302486418608832686310085007704318724088459620652653203563976367228867225876090071680766590396296256746370337407734054505292579839567407430250782787566366637008804601092888083539357257146909780595584905776690509043949339370607239327351145524541838435334646081312706903290526915497839226836723054701515452221754168193923903538386361211345442385352631816923816263401340089075156599052882492552025991457826878861167582848987165423818053325474218801790529359810421446416326618655609142514549579306955875628445484103312986942918191337121267683435825506640616530628018050188687954000219113827706144881142439342771551602954091092062922572072901393911654145277090704842959299825964680375682262194394621638968533052734439189898339735004733617734060390176704484248349491742407837817783235537679730056813432640670975119229334053357829901944245424798888343334609632059336651710786597912193013719252366196407482813557302581465820535582601820941482032936451565313133074895800151493617243999303039095478572015280819084572707604168690806234440849750950291711460384294177054080110208746203711196838556626746608099210779600277788731698151218376957958424265887240209723405417653680272229402172302427276299884574832778832371154893685171744375800286171688109978568106701208013581673790050642312265824878035455125327177190396152490382634815907621822612321510498256317860499120578474481851998029225862540457896498072642253040345951929790000641486312798647208143016243781840082642746370039123371176296437345274295274496552253224874040523097844760966161469177617335724106147027911572362369897762791707292660766297473942350688298483324597030437959462798264544490575342168182364277125251749801420023404750949937382177863007403923512990728787772893865027437022122580582021615396843809296436720751441032421185965965788229330656748342452226082525419771247224594295176176723334711512775930118748339984722635074791415421193657303155760437049462373814120168460986923893053816845742729643853718545160675475680041924133447563651381325545382472777596779113456520529968638497557950084920684049436743778056814139213481122124509386254874886780618280225820412339504100469120502979054687331961677951419690135358569472324605946031074508622376431004691110852945152761947018703316128271341877299967924774558199974658196742570964381702069020135720497510212030315503334746670382834192183290368438076218782072519733255661678077176509571912568876025492803787911192927080508339447782230517983072131537758279879773854347670904890625787508803064947620344877957421546844519981163945401672645119688473045659448849150190967578853748844932433893267937071943033392474714314626190336135254974566930724241822939728308509508614537075998740833559967648859811349663344017777508890992198775221768056714813989070263586485163522694868483907559779367520547155609364430204210983420649815355285232236219546617987897245721799389714202368457439029478242349328500904915293661346102497393324143559941598325750085385425562139791672113152195957907370172872463211583265264725405888121992675542336465670792963943342136965338772310220128658715920406915493450994192292922064000300260808535909378023941112065773671702330434400529452849614598728890233885361808456275435519653216661232070420401009071614883745582245079409165190975169665752581947864536363110658680782601976364961976163541086971240555125079651741965291782051072166742943076177420373794552589967904863835435817177989147479099851977781699751460942933754377166217332782890726362892333446587370443915059015148062233151210002122471689914165161947106220062925062056362124746648577573479755930624034262279795585067671747299536719688202540420604707415745366630200180913711866179460888047933053649681527674140889928843230074452824741470852262943310910739222408204841248617973040826322900195733234981309374277422456640898026754194274308112740382749996157347099668017209732858132598687662918725292828257805093612394965875290321135184995834489026461154305668499745852435197052863042773061738688033398915736738053477970961327887665364254871123831349398994222051830330050755056667570561878530192036140455416102652219656327370803327704385823921324337356823147788159541039724930763936632147067261357500426740917716290528088024657037872091781987866063555650365362515664998828857345903381077479296471689305018046712166414569481186962503135054620400884093315308251448758535560177587293763896069934461696289639336259821166120651817302266629103224770291464145102718961643002513468894196102413170219708533985437948781751516870776126437715926707399995842218142280551710457386182202209925360439086489454529044540058212196137823290893317939970136067729997237648631361504516472349795071365883897687665706367813934674840814585720756396983341591309019257139662853933296915993613862311064594029814720247440873179465957400715645364268705054716449809715607624547183130524023960565073007815555917531548599456811389507246905988262860751600720182668526322740538561567093711068735664351572422260491926066710584837168113026099071138489460318606044781169063948077483944293197763076861656051870265239266624936737700543493866449111984734054726118999338927326123357404189994971522608399365134063698011397612081668344624061324735847126676038176506627065940794688271387207616617873342927347475276542832616504637998929402056198759119281280128886950741415019122757700219787832567664174719524271478967317147811046290822684635816609922614657352397449791986226157668726190560972129589228305726244899036620371370716920156346609373845397132067644526438747187133400524124202100647887625235627715344352669052962920028906466255168547869031900755936265077381259200469412807598745165501587052252675080906996321162847571447989270493151541947316252180881480134114931141184150218973905493404551093736103229326000622187040643533617255758550749468813263092695050548010986948991665400380674658453343475671754020032151897409897483298704414958607677781894672679570990085575069705926394558984917423408169674000889837803639951562020155024491050590240244017344583660578532291974994505011343105530771373002321048280210908129101247464724882472564558807914039586788111775202053672587907159442069714875773236133191276133000344838159411544580689114839691279885326501536823912560716881165917204210244512233054614943096761182285299704449285777270754390909593676581026410137858148383903300741399821118729693497164764362017100830531151192957494797930909725931242219201493649190558901867279553916297997238068268684073490660772771652500859993817973999798927474601721148905795557675117174231003505878906510306663512235236429669371161293594862207948678840008038793365987972983048656186329407521457922836049630703645605154330511427816180019812358825983549599397542689422415418077716625092335870379805546023220427858825680056689365455586944857355865907028939152404053752503068319337977702717138724796896587099899158020911933834687086669659740410927379986584354264765011554929443609051705585092078534238847897275590057987666230758550824013373084152122147807661748665427162306518469911673725618176876905319993318053816909024680028496819188586797335815266050505283436135010472899399599655806196901005318006954139242748765634878309206042646880057124689965370641459421904725322115675774922619338704952082902985369687373649443213839717764254959172207030340336178330761362633192839873172788596313799045157924889917080928791862740108839316298745430199435058868677092741440403349333956268455347829029127834065696189379520853352152969837029115951296788008847624182242411376603081402143552203743399796223879843013400992267065433470558250782135165347333135869666775127961492295883432658260636322127770216444889627861835965573714701465600188376072133034614411242653055082205132106586586406205198424865653055092394252855598570984103427387312153782211076924318752367253328387718994712618850853045137042068951311586984761001629928957931911847748760613470724126093868807501474598787405008059970290017495590163442721782133165777826909409672231405195143972879095951556892504483792984890036532976215127859989013236470201488702341320971114420717971096835350981860567316834289604176717808700399877223950239725256029121064098551104246491473572194721304001786701842357995480569954307499329052527553173950880400577974879112095914658782448268578239672423347304796199557087216986271345914906254282406301906814155784610796800823216569012571154580345953889890832354510338451242426400579808918330199647461350569604520838188750551488343675035203577884439842446977738605704732286676985464098153557293611387926075149162248354350347965297447792500345407191531418247795933812684852270612152282491426391723611434372146374579104956023356172803653620483112963298874893706700568889801664662928917673735657601825023293717572380096851394929850242762742302187329958906375588683690378319227902357506320591394519138018417036597865436775310584655981211804161674235716421116371112532216507528500563060404323012048338321181563264207997453440841455687748714987490088056492241217677710387335256154933612056867355139216483741874506023279225170687939169513785700167051151501684595078508699054227513900657362244388039494121372049484537329888229037669184773178871447649777490658816841693749112881284255041503702523236022323628581668069020012528495825363545290079039452138242760748752583233169532092917207215273744325970330248079051494067882016070584628659121616958793313289593208042255117903810415262233462181623848344396327240322855646667959672479039689695325350307308335865307699292153993482904181130476266607960975537207855294199606208104610106000479380375689089320687762480149403273545432936611594841990854774229499190993634190742540176482464582149014426922869615179360851785560404705719293357391061939495085038391509359947660142492862471758063416370865476124636419134321647060380514176331642789386470780940978552348695424508215947703794555793299819278265338414509966066913755693191077579240500720192914853189915834205661295483970341393443624931501417676358851988013761686272858957620900264956398217346641609161694387003028384632590604476075855251113609419081386390824870404277172299006813565387978505163739131830374813244364085073556848956949896839560361420660500503005037299951226801247081004548453765647365367992711701462942697099461132834828867055621086563816421596600837240945742707699073316481255945055500218914120294370206419457666835033409681971401775498868452287740741208520291014628013894745800944912684283311330098426184306496770165325307426845376008185197586559925925672202049630019278334823644144223124258561502311478681906122000291425606661037676196454261813805898990808771873858394582614617425782201530675890825917380032276970125934445440872857787666797181008828325626878260174781143703795009437508390132025223174437155746467016497506500481059354340493505849842863101423613956526843470720577096475686922993409652282435469303766519594546773846693882491171758918711413583107027522915313073665570708214991163798923424146670483173026567336558268724846036471301864273446462200302249108039547941930151332170345522370241188140354382348495615731138347062621017860942834823982697719243801748899432837528440793751250154420955895663423157403249373833178578124933246494680742227956894975535073925143060929125226381937455176962956086860711925194100053030138506502131699609245826900051501605045750772055549727874883080758798595817710229666483899838984797535071880607276603873759307234303766090788792138583916914227064822305083689964724847841295254413962127073553638074381807511394088830318503464299068832484085522323986934011410563917445987986569443356616972057512099069678497789608181195521151120563550182575363004696185528309636861314723077445961850105200019422769024464112961749138783256198478469586074709175042924797201569334365807352039470540038709580203694630033823667869651585287961521477485742122243986311752746218338075484767617370015063668835308112402090519830420747102615547993612534633793748768083556453992894059189914522822415108813575552228021540622712811134747687093085158286066162610590574676638602985585573808250821383975348642134426179173858503496264470253217951223782436207573242727284820332250414913055460701825643892650693089312177207782569983205596452305418945381150659468211187066135883301834241227211736671802170085470600078647603287395186515212015879236548683388811569224703527436732644971784152874579361331924616511643362993777688276522367981217551556474987454956103776537738931514946387998718114169236220455121407860827677030039138867268905511128054290333886065342767597205594509320680446804426191721573571813911172444294431833606725166105620222358662753193190430505155585443666841224921091881188863385900278252951392650202016001092462455003711627448012986195280477835215916751130373041781612981225444951628167377264763482077575143291511711354723098628347731702385753824057160688270778246988156605456609556305244147673137995388544397541150801653767591719109674179047730506511006899561407520382090417372239944177557290113392076845180568511201150388749061779434135632505174978004729798765631121526449793168219245930123400510691805656511733293715786338992273195288947835777177635531914742015442590607182230706027970063103979669672080978174167037551281250070087300437537011668685021461604602497289815881385797136206624847735764791212690271788042550125325534733669616392002802991607548259743168652214915309167388964654046450943448496405862518857993638271213771846699759078889033945068583667569387884070123998543752481253658625175635664334271892641607093627048194283629534601710760412740565152553005518045229178401559471745256114221874398663134220638148108223412961750447198256341183333607118257979144928092753332063306776784628593623385348651593947430185181057208826645908268672020355210994431149656457100908712424342304671546634203604216597753872124016073542661850263034264291647491611668382942019793784144999119881496444777095479298470901756385823111578037485852459029341824960030558864110616929479822348240997907836074039214489022987124677896135175309113162537178619675434356122434536141932902492253282523869020370721247317750321664189114495115700491675257750823970081688117525528788771455164705078560507346593870102353192368477358482297234245400706800512293912518053613873062002664164931747137816906493240308325137730381243087574049744231665886122755403805909033939501843641150040338515038519588840961342616245790800037699706587433721870840290891060876299607578463878512015506627070520054332826120306546639976536099328145030620670612105143967161821808664190917540000915914085441428490246606447797533312932582252274489827934594813260103861225971856559150319144070580516578201258681529555639299571423670350293979675291626669269751932399061534996955488565573628107656986519509859810803326083438313964053231438205185523044399534316339271039468060480033667929372297955362046335085134701221766987063209458949406287061870236538517003682610235007977942267353291214186502647743372155333531126861037698222361933725302336749568543304074374448962268496289178973843526182459136135401042446327686501078872676573311012953492930257552657121191388533606331436523032674031729409022460919199571622393906191989502868842607298403188263806794814382136117189559756455018210325802800749142615696198322022399658588658216904991828138934284918600581797502461768854997427521193455493850529106876335393217144026361760166770183164202223756544973256902936783083401101944123278477648236579612870505709336224949298265407823073085802376424195494319928448186638800425674193606586828639654547282908174550655404357219073033672754746516433283846502215333957689009054957175058024157272797069358707878201047103111633163807648417908574151706092155356658761923178455003171782864399444098786989035549257817251365114482418313949232080847517763308323850163239736486277002855178652047397097217199660470152184578778168829517329908736460828021633825606798900121192422588945578025435851910354110804901316292342886985913849330274006001210258566134497830659181922686362997279458393577338696571548178756539714039218166626854417577827801426632626978905071795143797618382046245512067830368941000461300257936217787127920477874315752749018737707738499123213983155729982018032398171398740387595077850150535530587864577782135591106849950528951509527181162401195282901447369458392873472891787699662223230278518723596149969041713392431081133187663048212372542607791204562708999788273525126873148307994578306306865896699624121569630768158778876365666896800408627178093614494566534134891046878855761853685773570521606694325793818133754818570261625289315749749309403164810017161221006354205991507372614591293672762098921440112579048546795001790401603239856687198166354811335670186368044154767505140049505558960906050737690616019618667937796185906014637899745360642013075373494984377427768055644094248020751574366294278760591577907422575350275904153463191765801615877664975695012815699487100072495994351909941006479502703702795170432669880203872748135277203798661235874185664463494238939361371593145811801080392472774609416264717241433903531691289279606098672686719731408631077626492026024721514602427794316000568900314052358857644179353317095696567983922522331301688216552671365468442941592655258194322869810551207175212068448425412053766049396960778974757419231916494960821282577061192841240513864118948762820368153785721617121394954109579598319105557890843270209710270651564249954207632261935712769229516500597696590478559669362418154872220831770144219912800374030671965505649341368409841320742381787297873269373575832857056150315448558313309923707790474112242119126589502790405001460074757063772340220166983717938997809471986573374593593125666173224567013502013588616010954098078579541931663029158532877923361811691112471485958773501806018945212314386487979873574666501475491927702246554852902614280830638447025154308844983254653961497040197710987262373057779955115950138982205039685011691047274111776235972015956287484921076383791324178812363200008167609402629015944945207127425084952698237027232439242753909528078979271501680928761436276674797737074661953376169346530632105833634270534495219183121503867511469441726781601034227640039249309714238019812354551658866032607625397124051498864883456152026451713972219118444583072866074155021982038291316985518983790012682634381980853220040350710234074489473347754847456665729383123274390923002816179989141717296447842303698056617141494930741178748995537345962014805620643306867037777014846062402358596880675252204854347103390646401900007473548840603303450781943164402070186425710005825319102067754482652117513915033455463813051479876528695791663278599400318419266863761885401365237220576050673482766831312191011663427140879412885817862992881101540034372276888173442113368027291632468433288345165395371326857863905006126990070157698964546817364292160158086865663672672016586508406464312907673384612069461304821583869448442863997518299022973090837346057024792475403039866129343054063480170516039562655863547660627615466652377550216248582477227707647108779636485175925908430447074467117492111600069680915376288114027290562180483534285720719222148573143066697585167750374998820522496413667215462414573109865521029350122860143567005569274055466010941258374114531633261380477351375767386491007431188886523003754332546348769866952765060724943910574777649502850753474847656737084482312054538943182317102782217579202619234815626475819231619306610091175088291733539058373974077490419719213167522841929648518480774860683062569879724815452304036066533162682302455974353926103173357528845360843447674649422132939732146232477647782372246167309029707722847496729952156656282946387522546539490336781811679598332808729467502929222516057223413586009769527869658306220873290779000513991930496574312835670716798997756463334656171388522138264704403030077616069385263007693195547231538236390445928115096039373297216746191745435877228132417886976856457272149309709849318202572111534671405733649256924304916895757847210369379180604369137379735914215776068193655486134784649722591867633513433690049077717932070371294714365374820379178331934185276778871843702835945452407215378868721106738326697985561996809697608862490433432664491577402388079065494848461701341028938968599433438384094663174181618440460193866037472661615199153009991474168456044046083747791221865553528479824118716331764431856900521862188227728590510308148440472984602759453713542298299962802645276304325384802871379656142308603784690127797533781075664310307184335901894972282791941202192187007690957151777093155561675506138426902818428989288959760777327960394432494162650341325921018278928808636969306622911300656252638038808427514423655850149652539566070379522079498037919181977096682120743191052276235755952783687854841542070159989196575971990596977647002722985166396263710999624432339159750446441239639971702273581474543254607331562326616728932579134143212397773650847033241648257085401589941818003645878434055344650419676661019144589785152659524159545307299055489904499483592742956086060799803994026664994563191726980997506980399916202458283812121237798651049634539107936057239965614799751528022369900991633490021006971908877570935551701913067235907189997379515090908737559201360009823938676596405125844595904403644061088750785177090193745711468062052837543207115402488340389580298165163997472191823806069686372320580200951734619436251651807416894152402745669685994611514663700053996542952651939624307115550059905187368814595063942984813638936846355257445645097180944791616238748959217877072172772341671871206032827767307497754113380237968426288614593713920948597705780070958268974262735307836987606615475354844623144419371915782278092371607481386596825225441422798756591642666536660726537616507090074893882779854553199419037774923117690227160877818431799255305438064778320118768091658494473124917033669169761957287163106084747581580543536915022943767461184105229784408828086610678197335052953467191886084211509158509044552101838454084766028130970946185069557133671017106064939766746817719535667215304602343342309512010495289757203474075467211832930080507744741787432976841102580904398724053513934511560058963833330445040085878144565106915277379856966351692253540002612846141868489182050882941054177901166523590542101202860948395305483565657177705249626954037612803972314513228437739724472144895968490634318924081540657932457516681022752124784993403270183838005608762007522371855429471716853886425335886908840522746426598627472135406459220537692245886378111905081653071346477097022375202709814328476904504813983111367209100179071387779259676670440533888713632292746940791340958079677201160708537574007395942846629790396943348440870330919651829072678192713776455314357365551941016148536564716823697852829613795251013863371742206554161285934171362880513515742425913545518964416243287462331428257195210856074518327555677150822543632250675191262916532277492215518645124056611506757491701426492782071368942592532956365758658960978878782387403955096697979704513933168013186395115364458005992665219883872510695306615232227356433173026681355886497045326408921477752700550748392060077553945154825922724009564677870743818654492902166221966784965478905616275352390120172470189958575724956591578759469838595722290642904340157909481209621699944081703523182995817263109745370126373630991139455889420298652868519865272217259948035521141130074392253408128906698364582071206275033971632075996953735612777164623990237610556003644150545782049152638282653188502885699046668392658551601122791766934205229638093099655174885202968630651932128449458653739768808532822781100021290675409152089873295906909768975275751748199739478005792664442422433329299213069427173602563276276902621487613926973475530168726074413192361787011874090117260631702586135529914486305257831831755025151665270849093979219201256684783554469412519790447765210476281206994771949392295643667497618432612296975872950190382358703091480996692255467995346041033447914824849808864503496203379762887535488205767481769131986869261835020890397659229128317800087321840032911115120689044953507761094413573315788515070508728821849223330572026577624562403950168609006003040103136298903155586446499939504593597963275617517301268482205101828588985184296551402659259047513865558415941726952484208815958281457623521479313022176305689105906556030478221782217462644139132637238230373344717912465359727717774705601663458199343979426111821205842487343764182575074849954407785406409392531814457343302771627976794313720281537450660227547036970407676543356634635538941832595982575576074926648916118672168592498932531792168171162828726015889823717240544641524883729831471934641100030442109478807789185716562495878300997214497814668914415719467402409596274141335822522315416643855450026151509402442364269988238991076250201439717095135948961908203359640116547587513412349246888245417305538609981237747195096909327684267715580360063391052797080254122708771861576798568427891617399896392977905091286435456854869605005677329014938389488954382534553758020314560333789283028153126534776216400512019502492370697328388173793668423759353608466737213251682842071353454365715140536246942927046397522533952244265014470226704626511969319491747746517517746772866951159982010499083963320208407714002915184399516778518715815929316780834839742992932663153190223217346932601778072000320763331920175434765371535544725763177255631378971384922314418567748780086668855079393785054457097161471245573191750780909285359887640096234056108254982947820125728821255002617343262417709479912547279985869354715862159350973728908667623361266218181672284611389608104603251735234887170569624521880814280912187582451840981573884088420414145526257702000753191731544230920610180349602854462143769719952406767341475352513105807313352181201384605704420697519616347019357435102548215886329096243098987094046303353619204835497376181338699363073224020677256460841180860788123953348004151087220397514347943581720557994713613540330824193473825557582449121172766627730196437615538191629805341325914678902523968589047222026564540952117967043870286667057360147605381056656180652564330650403804935317688513711116304034251295547907447038900896400753498540943837736205332728745610068570764260901152185656813277525698859740367641929477072413329301941274581434439443693768225937005589103083403567912209980265799900700606582600416511353440924678229680179181525155797673754730479376051762977561903962829760958313751763063084434021834603917100220488389638157630957664335067050369268359985292950580398739810680570781106542575465163655626173119609825225034530764263582142721312854372226600891498053331231425990802245503098293672980400882384414661131607148442395404071028377035082353889658751607883660114016653421310900309215818721817154014116345960717168475836817963716890176987834013322343180688943256487506368498923045346942550822660801697750190754137239227779402692997843646188627048877361504112597784444646621350538809465517950408123252504460737307457063558259090916228050739196108387472318232020552435478439942924850196117886873148043973199760005819687003945809386020080540597613935777662025202751191112647801936880759109349624539774109817669488391831331531293582319631478069968802881182774401286568131663926777372165954907736429294336579363442741978186664471784170198150928888550747347387791459824774126688372572819936780828499330646215513671690533843519775240018023599177450996671509865192213980876480707602486507981688204080756144265474075092151086263730171156887398689413027328796786309074756642061522721501172142412618278163540322958445428031467913304056647673994071330364590802468830164610207019272403433230756210691994160196239124841169816888032292072024317335160087517162969186013184339758852266947918936895733551585330996722788383356867349836898963839978110590366812744228470543152888288216090095331506990907791367485160951694491193505473009647736081732637040290233027796731756625128043075121202498648283372366830192511562309171884230005437669130625514085267372192132802748190295791441814339684913412005583127058888054101357628609583941317088838079458180406931363864075295592335888903750890880713875092603340250313419253906917928847452099874779839655674389800811287475016475222881974222060129375425956733463123769837638196069060539880840757699152383720282777613163955215728594459902742742147946198859796646378147465385732649664693402787793330773418221785563086624812061756230183912294262460288457639522321819761085599736283753727447165936810882851630946190400141549161220669881358581443873156654831124108282038112913545739878105220426000775209009153529201530404072072833256819512319238214593179328889828668950351331547696827203171474642528189550826623563029696542499397362890708313187478594509790925460104973094439063623728355898725049891649134064029610165852642190038854070879432275757584726208468026856106962388539534200313009852535913822092951686345667100333455178006854847363286738561337439889422515808182903070414866784656458627356631577550547964327991893646313225459069531056249242784370833971084348519044467626940023325233318636218716781528534083328339996869878724151508713509896057495369095540676039757501303199053512358643174360043805947398417318345727837497223250558477056141000964755972929183168355378174622604229750160875962408477116517553343960645175515114543185248093937081308281294090471704005421097659640381638441991630365997378210372904659007159901283132210205582936515828480367184941150122001600286431921138775545916799562778920757229217700140675462588616403699159917545077713182314784106617216279515074886551440239252349965766694859479129139301738418363022536869951935408677425847160954037791137535779530325117624968964505437566648409483976305302745035102732472623810061381450716182472164209332207688278175125153710579586921210473549054624641447397987873688263939216120903114784879330824432342616426214066964697666602540914630040681008187945644248212612732499393440418686575563502812216582175529387721203165191622959675362515607063554892321202261587426878913932843303877475160954342819540221669538127184832550834737534600266782620487164495868362619958341339114759704849331277722738862835197808982284629107583206092994333524899022118959887513948286646807796122808607406941196140871095904907556801229605412807186650630312257005952653401261852961569757083109084513710239144602079844561590422464893602838660957036160952624302197895706387896737684828982762353697401140222111036521047140117231472527985102994920578079466750819434937206497585418785399721843263770613154503917256910351624408563453065831616736512834165236969789578378993756803278956786066182478742846537705428761472858696399375486825916239126822987195044486473424430136191851554859841059451564684176988229340430760747467308867632694456721780916211357450891746117081889085681869746485837431751201003425157783228904234928092701777959994861561800750619255374866295919734318391024476009199503313327248761961863242349846961929125899383092474918026866243958663996192634393698558191187886427872329805918174270982960591266221917293647079926763570959396807498398893985217524253117241549250259579005424597254023728328169175551019700333237304364088121485853604127229198164334641256094453808833914698935830925785640989221952911709988480262559453680156204222356174573234116096565965967177413320253649357143146559874406381955808532653464455713532912075643035675175666055804786810521715280652605600576706012865944345072728486646153930308508388536227398675615381013971738790788341833761720906875889954071494191696155383486095514354117652099171318716404010985649396553144870020200583556607261993109085878846363386166668997291706870650669836647077774714166144430668630913568711539335170972066128917744559271355599893081846738537761293525617974668827722024415310550226750872232364574310423712728066806303821702841131387027480172018087052539280447697194626877546606878756727401271274311303578646879516998746568008107937605540403893574988760320399476046577711378357467345503696501245841707358980521542641100710129973290406461456908372522315501692673613740074663587390158910035115778279151115335903779625741380766241319881078493581650204661447662222505231372902112905340635403868315021816905728470192404210948644474507041959986368728285300225313504895685708985823220048368729672457321191263134530360005633654370452111373135584826183686039930232091156876450901793228298767963711114942514970126873618199321239380787413122199268002155145624867785925599216487109800772848702024602521013772606975208971867815686829318315913841489747039101594938904721376248354975657661651679825004808599913029863581292248161574740713740773969786753202105481141976713647360357192056385920890664523221754003492643305945640244655290286835502656991158907914016906638067777993687998374314334902312142553376030350906674139030770139873096019924423579766248736296787400810153638441897243025865086650705042483975147765988704444573795653441558515198937863066679995469175540637407997334995719657646244743455945294905852378403301502987265414483075315450458580477173033487698015857741574342219010328644950640500814141287481101638716725767451115806291976979275527517186681301397641826985760040051180051932034746459955889408281909729173487907201366674406896317642718736222672439776471619699758131290942530972287595641110320919221319274826935027391133673172129550913313626850394942823911115216590720578000074317999216934435600834100527151461964338844012317145913152163177998166442499783920371727459931772636895177065252085922600027606642437958750495851651127540396395105628136880516108329499298546270494089631029898844505679103047487160007394854405169463040273101692622766973778123330251479366200418048739264151491069121887338806277317363155491870724487975200140411665070690850684547775008664202372643608050413607706529043946529008420581097336076478281882081292635048969854735582641339764651484676730437178739756686793699662448803156692716981350789220812782769532392018126868669066103840461640952827431429112374576869020795959481987336839297710536144867253285888224496552943852144996308188704010883945812645012460424694963896868277023834614940300273605287446225452190864522533958875419721861119646032413671082077423436100629372471225300352447077661309675738691903787102455864636186642485026307463368013762623606936739973105522368151941530797213632761276025301616452118702007102907992442632745438234387221655956232795772003873207829877940144182715242238582387916060716736541635701454547386122831879611880303515588728591859642525221718762914448492135877310318479306776080896252611439124677152011320842700753331392705208548748278026352675263038721584049794147564020918279094675910529371524169707052949066017418356944945584517005847657402713759808463857659068112447298072588975742198690837851883103748992559087209312493390525033314210056041487142768026845361457603255770014597976191348082235855527859713060508727249693407706344826231329149906690341461307218702987241744086491035423546246451364793801148553428319781133279548977592345336069661240632556469217731128052128526046419549606149785577432389267446701711007958129159646886225618996841772829924778326303420367829287669014974790176622646130568144186917182968313030690782069228405791028106402551020512652360200234804714543061267355298868459000449267956314472511212472911086098419669660337096753978749879992629402460078161212804255366184450308248001649097547819902655241284178613163158747741982367204355477049203138657619640353644570065915285045445148181316395614218401589625858032621015095912383109497092984021228373315241328693040357543721027821957515285773497621353812608940499190622122092706073215345354444857667475365868588844949664343961738350079969355703524964465926797729010450354980998766138550593504904495769212038543964877532081832614239291017129962529692132955883258856495330934158374053356826162114300013057536033841628251942809955162615287535409842662685333830583415734769082079964001906074256126370329214675311631911041812553367913226854091591779073104111146168303614575665741925572605718396826791932071913040075552287415680959647951153015018563360232302337247738470465618353418677162605845553432806812447974410776638480755079139101404309019940515000220594572442467306503775072518058881233829691391553275897382290261795166547825211196353671610083165821893330972116361015511145111061656575260885251056981504806852047914637473321073380027694336764457266602879444118865877659479092576876440419188169157762135557539913418247137244165673546432707094046703965291510552246669623513160268592892621416871994360495430983148242678737494743932944974017148003707029845306929142627197978700337709009956655148423013894874557690577346754188926416869953668701412994614568213294570243145098942481318388912059009776108485087625596004122133489045152625819993364482399141250086074204026323696578693298017326934965033062586438587396117294435264239383873665920082600307146501544574521519863060810595345841713214226383072689673950660435945547850686922546785185460181730185056570936550587039637154708041918688554343774569368948649350467232823233253062891271950414364444051144293274929789781960952078987387132783305505449130061048752098477483483798789300828672010826448780628306622370080925074575876410951913325795092813675768296657430324392444017017469650242595119888373759144395570926336667448507304950110013921563249104361015560407242662281576689410957095524617414240718146980973711029193310351847161933028385998562908864136273129785752981022003261618194461074259092731229081273355969728941068631838072674214904388840369834917138145293740624682714568341845159578959938282833087305596033442451168283542807122083276301135354700143357146942752517411117066273805051735690724589286447518061403625023311626502865554691516052038827757618985358852380423053794462256310759525818354044821121834825118455533881054793334084770913644918032940484392635116795656423569582100471213174325211807834636793980809547001369367088394345424917728998738218918660501702334822672429051012693870464923330291477898819251979006888537031987051722674505572966882573946884478085218654565278019971850613761698186881710215656010341464596997195309178925483033991484241486654552663519633583736971291184927128092222929339832487432763885147900014440089044198935576874227802337872488868165493109369741827195182737781614466972269646937532747569771537669075662971053744480628505746514193975734642127717402655667981578494310997673092472432291042149846298149617835323388717751502273100066836187943119341459630495334454940270844214712760075221454181243778301890066601845481256284734494024291689917545055749776514982081000249768851021371595438204229565093988637521282803474949839787075707238486212235713582785687051986703515278567398646150150208575564780833473100664313589763835356213416996218566963536487962892098714776225563548993627142864840906440107544717427685152706390778512085587535398149617777379083609655432344156507896421625281301910182391699216426711279284229930039007989099528575606042480804234533830184971331894714271341211777973425527461713227906410412669463232002768768277879663886352211389148003337176419183988201008517465679332593630090687454735775514803095260737870628027537035488888037439244884861257577653606125363785233343549676575947494935276684587221329627613427338848760811762046213980714583197747978242730415876252375927369983209125254156856249179914609708730916708865210089301530824374258644258576497018737201691088367276767835798088259379389941030462483170439622986255497182093385380137541552211512730244502407960461725008160362384035819345290694924778629063469398119635023225752017624733971089920469292863830363966257846614790686547112679347442284721903944998542314127194917977211374117637850021665849052358549633769655965318826112078660403481061150047172072840136768593497948602007410762893292937479554032346560076192869214849507349648135888072444721128662879105561711845177754153467280536126663835604010117771904061061056307496801116323730243741733685250615251962293862007229516273266997458507623942948549979762229184251021494521607529341946195954615439581706219842298432632895002728113696167639196384655130411559851473127788863930747361669774728546126454771166817367244385498444686541912953678144394706949401196463265275570092384314599631761401271725468093573213144631294208710821777117608334544636014135872777521650288802638905562982093616268500539748741751586941815424947300420119334712963134559290322865796419340707933861956501009080644224500985519931208087829295029178263454214869753260482681530086556823567942437899764207885712376291361034128070056679919571233310010156086220260894234312510937394469888430650712054682294419277526145591489779926007577829944383003036605703994291780329155504236655163506754667670052582510461555381585768339525129092768048410995222516102378839396329949672001666985048353390364021456817930951704234205472700356867898401222624942555719138259103001966373382126086060745799296901013047764283643687272397196665164909996083485268944345688365211096471818003439898570603743489342921380376498070711942029647875744921199542347467432936870327283281528221531867019752198297242222883466322380198377219873480757747404225790782003300298115250011216745175343546060697856698923914996405876992973803025190947865693831434591786224568187497551127690076936409801002531625699671496797379083090893604117562341503505956581710398362141695855231673312822604163086264426531868474974686249551301826261645687841025973072664613406924960763093168821824974294256339188911785116006277485060214968333535469879803416565772450098157866277358279465416156909264694997638833582786942596024978847634848252651838715327676690456805706654719511437288047812000380281932163393737679303967970651919782941977939936340309916250031619539809031038992919166936424356720508873654968316134396257788261043701915314118459484808628151216337240812596705850886827413469733544679007778881475536397855036674127170742875690077254870233453500930303926408729499760967084215840207312591466116727191847526418797144095054873446457470436541298545784577361371120447413670237723101852326207727683054991339483136386978175869078237271259297028385614020924091144471639231991480297495652067761534854268784382811259757879929617570226059324285157315574515417557878122399001796403506666690157356898213824601678390975399399600484650613510815614576735031634593329231584275914117331420879786402643428099171489190860787449616002465754198846746519541722190907855218200916657106857918371408317622761305315962071018496666980179602999398965920018358896884131346499761014396789710879828962905207245029949736877552560961460384151301888208436945517965133800672657292950375735863436345963808683097930962670387161535878199402513069860410197261928889857259609681920344999090444452479869619058821972148358409789471165475327568055337775594577702567656351199762648995075703416163540508252003588450575987213071054198091719684766742274807588525647884922545757801582700909048337132280637255128902274096400525545821219679853213470235453239020943715587135714555643874609339524669376498365454280719009222413925289649482641174110464794695067666568928121297777153320799138229989671475631207963481386579684124925663367075173129856926442441799244535589517658279804354489117661881396758018121283251721189501416309766590152381494154545801927695403667651850050811487881012101688269504107373417775678254986570274216205155854359049429943140517520010245998721274811465540292454743536110316448338436841718884546225585628921653688690681588258818638171557244422767738424855486054415634741097624745758903531049334357588852578413869745568257596749566389690053956862259089276002775631240009898440616336108897504200279741002658747401046902154622018378990908089379222391348201086615588302315705279744453233600428610774674031300441395498802364904525630821638044498274470537873779044646196676187494493947468758616643541269931263440319154968133122430915513218523542636563076118384223903662931537183847162580712128516466228197827499266143384821314732508114749712827684962574324729111545353615115070443487887063800580885564381111696578487970653019258889068831085388068822744398400541512707850419328764945162184598084971027606121420567170456050871418594536565887722512503255135335839900902178040074989339838791614525860955234690614372585706752603237664270521208572209709830366247401959647945826311084179113141969932305467512589325401480657538855382557655840917463594073206034493560469317849172520507153267986257375576185770846898179005991354909452120209882277413821846224008208780019676988878797830404740496350802529286340313880525192803896420203743735653468423830903985397215244206149451478475533924051540633822882720163268266857481213941512547624915119362068047645054047650464323546070778038900533644703244307770801234462035719764470035305781261204470156927028419014144492073794144569439713154593701689483989689420658275501620765520841145057946808292286922783953019441384880176723112093360594674126700359045161074012059797262533967163829020002433953801612409248763130166267877527549513498723600358124014712498213000608069926172439816420483993411918716796756828654464787130415420736560816904789686728909293476528686881532385320573749064581999016258547009022588303850693250569682652696632601696271142182301211045251571493108456726156389830856037924172664522834762965920298311543211941584675769110691131746415538559735723554804871380197422409573576431451008511370301381940895965887950580441425611218558099759777652703866539765387921601286673960813795130905609769196373948877373871076528903442888638739998708886426266007419023348767452529354071612164566003935714144282853035314053841576138643677581058889042747002213715520234444721900756575799526340729890583226293885794559729530705039278088002523648620531437918740890937094781984283830272674618527804408992804622765525709499050923383804119486975095911060001766910903899105972930881785110570637394277220768196882944637921061447002809902209663675997585578238296526671472155560580299749862146790804888025489725980936604732062941304591233368765397310613984317652056129017941702681752875662843606398726708994129543948188032185575193029411176837429484991460386118105610143757804765510949404856657648650286849435513985583052357685967557838969530390530958870719673203806326759495175123667012090814432601514569387587925875046748272089160230755497100818817207836512425134522939046301003512382189488526545347772310490824536309290734937556296656771918487483894409856095104718125362253527792105014696084434541723506273254444211911982407883883435516833061592111664012206569680013003667090581781145533338840519184910511268921562683940100955390771702154989387828743545792906553741338478349719667608462204936015727529708172106636805696591905569341258562781910763402643747261667183206317992148873504467472037761386511099252982513450169476666438048784851024751658228985912520251959127910174921853641884997067279666686191098969613069053240378450633592072983710631408423285449746705053333505873619384183971944393795511560772884609216895670657069617281863805896098544244601455599893626962865979340042319696061271848156312950796187687849333099241381770892377910258556184045009461008101992381781778824269433186200441663045914407774208991827285282602609712300948546682450940052469557507780948397788254510880543494583052545947017676481912928563454817283941472555143044942185185969305926050658148374425903093131781475216273547132172426092230912229292491798982932817033222588942467774703860514421404279308981050938921021210469882852199216634258968862572068558376750740618830460761655615362817380451782486374939493319050043597506157442306193418872279718867558274227361886489354933657393492130031636769671767068448652359631970043661748447650293532167416303336398001255906811417186743976170692708021543553273478035185609979275352926028963687683205500604397481887949128688658694815463804323026336718232811109362894818825101957777887168446123206221548219409014132473440076181257385700842293959232252987167492685603815273232085869487921655206754601283921955037232942479727936366864234804263458712729417654170385824598555132219618854680924554414386782302610031655443592595431985213039136207867869584225800418400552447286329154923472226009253767341587193602605669696422371324503041825187393616869917849616830648636939187497943314598211980932938008665494627036206947522586017791079298855478611440300193524474313724280767862505733995632255618235539809133080901160328665901561645161905515296033599105689554428602415080126895677054754212152583715453764332513934117567279535334952759329954590955180361956994082945788198322645889136659827971413287741495783082556819634337088088390403561507457958346986098240621272448389913937534455502705826144129211196492997811691747124514674508384672641154575384034184980544570792323041758330202227740773362742653282354455877049378026975641223917408903478503291176612410450007189633790071632490643522029125451765237824103480575961307563458438442659092456096227413693235726328531906181446842230264982135551280566436357916592615830071727582257318844120357923221011566707611078010947937760704190816476826072759824738824492852893107842104072007505326568005482111464716999283286472909912381439229773397832983147274079548693860759978522788630172554812567280612862077305386938155738819411582907283148459255547501805739918548351362622729487675695567336370839149941353442465046753909330880360453647088518921693360606339858392736509016316658200393264673512568330245367912434409084720075496004846491047433999048467178438575765692256367307216134384118871162430443452783075829457555085856153950772287869714246832206423793044848796198998788475068963830958025109324973571447850050953119401664032855662103316887054719147550311272848393315937729880888132274775879815759789342034814172326388024498700611437289927164187296629203397137737774142780232500201908709363739501928263978105313104345425998299789059715397775435777408856490723834740028860779059460582622322277301144532380844691543942869456607512805154417535415289442343057356803702419655552521902231420646096285125838361969209335436548056944829419749997819024040903313272760616379818052870722842002465687277180752256203182962359331632084526659340533114703626530908293700497584417241744227158217974789139333007110561134000380222820364703061089792842830111335228683526935183615898206736880142745223052917572896838953313292996864419547014371091049845581311920805824767152713457616971486567382449448750304733591118245239692632823804449052510566356709887463478885190925566043516006670653869698680823545586133543916455415011143255380291415699139990155530996343096063276516351154833611293189859890473800473735503714304863029110221309628561143226837608797058863163222710781933855800782765997989382217717070461563647957307268009804444348891036979177037903491071037272806334665885719278923184296676041707128626067466589844662233970242096180464525740291527562487810099612640145490543746961512666338157662649035042669688769804663556672671192669741967695167510588017596581829121248962260828475660562746532272117150491688986972415694424859912118811164629085219214109424199511614738488663602270916323821105670791699818968851178711670174337702403074743449856276213527327606401067208891840651381186423250695519703502294612272229378994215668045982421931592939730620679649425632607424855226643698746679652460325106056760978802519754262111956516812312555385698610723845145257058421579869639505092178207302078921323108177957206639019975732099861848379964663793771767513530840788082764781335420608585953257514432267913420869490731569308435914698051386517652783900316261335289944154985522018740479804540815818972895937805893581940411603352165383355896848788391109606584849789646184895932302908308692335281083060999057084685263930292874223303695097457256938442142406199457057725307226055830088292861490587441925906996947133647804486634834766274278300870701132733722119193295933394567714982096584813206077740375159772919420749895823430660932066204173017458277932894645699328873226497773726958078109600418166442707077314788631744789252851330069594316436701026911793080613751127664963302440925978915060404705923558836962161914493966700849496422532666056972623047772408314033443457677980974046420235905844811417759645198388032035300303618286480161342804331406890229148184118270682960145990623728169441324331028403435892906139588021093022151897659100665250689712573114831083294891525831562752932421082625927144844429993402284701181096820147695680948782443923845280231303171152995213297083429112380033957990784407294486534021789635804224299467068681010329991565510021963008265698040966601638598386781841379692146466289757351418994575352482562288074000619860513591882934927460433293206632910643688860967212650507049895719432355910261004162947409691242232325883000802636268563953593032222490093517421801071633549232630764029942371866042040400415791743625197473994478400809039609269530375951098193174882570223369425345153554631637356076803199242984189026706300248663230705517001009733991326582463976839362260043746725528850960580676767392547715110722074731722558827512738158159370134114757627310963889879174811221316077783913025993624529392507327824777526082080790534393195416539456629953000410347941974306421362479755522965550752168108654119021839918903533811134045206415273308689386063290754147164168646297367738160598349823351089870380858963233969833094422715105828933175539142338694820469177577501412255329236885795469935502431069918580287954519131583862349550481050574001482127775283413563049361858910739106436714699509601219869739330091858643321712950399846199951119303963559653590782041887019217491283433864873329655523224533542236032079762899433224936282294429817241445870294002986338312244713362130631417476476881026907257850992660411535267884704555949807849813157130188476344566919787401484385050813410717510541512301611258259362433470177409673185160144754129010110583850491271302945168089352201565015153941098586033141250082358929293947760853981527207318767655731259107450455662043501854320809011451753669469043068937177086665357371752211732350505999538969963981168718662331668976818374008484184573146891462040708511588696330842233471567976540288276172743531405276679808878945980293337038474759899520161697901822485435937792034330705541179595827755923458470150596701745114986458814397204928468067393748916322900342108996528728432689142001159201640843172565927132296106549831965939886517958282265291571368450777090299842029029713026512884870831322467028466262990798299832645776614652215572287896687921967630167912226430550423512484300907156270315976239107638705130954570804689169990241192316687991104653757067389802207044289533115992768038035592464248324393580643742369432632267127900099107926990009672950299770437538987919921320648453314733563456663561669536617067667487539727964351617995684999297490465192900589888541175770187038322779864568711952949794255952463120087611318014766129316067712988800697315053952537212772472392373068464913903791784334614952149778605444331208291910696448211655245529827615220422769528963449733667109533815055945297203355595996103418072306029155936350241538606120221245703285455497329709561192251889413116760966468717934180525231514248093890156255788893372893895152437696233341308194167278259435531100007312043618493750489091471060099259883492320866099889943168817891610828263622534044225832964239594641106665859256674866043721150037242242600023803468033167044923992875085210308012862410627981374405963871649566199202903268110518589808746010581745383468636819770682865949866007201554237393813093908968989478436890817421870383316882791448065115665530359447939027260464557969295994802843099546013331841151303098368894788313764208308955701965934027800015420558545066470548358299203784936899551114435214102850925132934514992884932216709977572416862534273224078927924253417377642456642252845587498203370865513960880553658029303824167675596702871247442612647162804350381539973632954190770384408729290143540473350738733078526062875576226847603686649860228134259756167829616488504057885273362549190797469965683576857400975008194775473589014935475950921949226204870557909945040643129408889598402295217827770529898251385452500641666814695593919051890203493818227112427112122389016212142052173718036812424744488151658664206731434425504211050224145152714899505418620318603991048625200459418642023915099467456599753947835970900701596650790217856789596501781002341866333828388016935681374960692413330275245505173039218353029228888012498660302970884076092598311714954069374440293798457764743340409438720548061930071317762674982458565861643937284364058247931488723532873497960510814529976653600506029180928709680429788441774462086162112529932537393848270732697559963907358734682750380016559969835651250112035158848061355991399687247617913386243603235385287247733436341871110539620696245667388565131522165882403078297536702060510128627710443224803211118085344471055085095608199313129931264398166096649418017356655052236953061369736015207118768893436599633008536183648193281649784885073196638308482387268651794542566697183639917073720384405258788679454376190374801955050857303394443528913169575911450846805080164112997675859930120846103231838005111752068922676319296051246733691614794653895731990154588562915329737208080246517306077982780669933275421774384574733065274920671308842704276799526288344624373219437962959802460558293965555930779597925071208864482822369508868231789471500093804955783644894339128691003486951235805769631132201378670111228949151353717978892843186557790578433484887876676335751818921763646065110322899315172917543090763851114688823703166924659172245838637931837136887308402030802853604972431689932570241859927134122276281440678086095216412466497716329603832126359444134160403468025047848780973384385389998134478556834012034343078679094411912417929644794565476911396793649139270438384946092038805880300452427932232622293789453226804314214835475993210466665940678592951578790548142613904105486306703661166638809301875300611950211288432858195132186215911585984121472686885638074568271954903112063484255734310782064861691943054906894384293521338702435390213222760265167860868142269389454430820396837685343550996295338227070573432371675210134959652737698078332974139171416318617557629239123352403223980355860365872053112996332938024744957013415393980601415408772368196171983558788875302468433972813197408920358446387285881726094930162374284568671985440941204643204962592887377190027684507766903001603432842302782444441458949756025924362505597407730218235013112084576796843944505153335797308167288008929514259721886358997298044627610976909605935648254937208464317443387115606977830325728288156467656021330265965453613369944774062597528478476381817823266010583483869762994696895039318157402181332361603598943834059333255868723392696936384486977183255916266452521650016681685427341969931440547542751442055069130754415068939972838822734284688345916387346815356705221453520312434094275865029339339428072120257895811163244492969240726861523096478059398425270668070804161165015399482312915351598803850032757325283330268458735735300581936161550274509902207517638952485297080317107441710610514244057274065593980253136159615481913513504837302871593655545038419107482550123544558958833173744833815160352858868345460625272133736493250764608612166158029983574634432663074493459899457003079503910499454442468214007008260901203688366257218643697558803169187982324258671055517141259789369073593609726091395959639502998865422908111381018061668149081453898335162175398025375772428357031207911698948247819343248687269376396379015280085410777635762599620216651479661301293707059739484039546155833360153924433881987673967555088731919917935388361509273721742750680999237431906426049476977530509962819139371800123965111265562677485147408509516174770567845455314381500016358413279024145924131388206778708102283956675242384583839123731031482660297254067903039378890554450630407569128767839603502744822399322130733396089588863917692360277894361168042785923703648181479860792392018238006976081647377159956069907369000053557032645721930423177897762073743934439413948012529307835915047331036250631334354003356798853459102150899086548389620077930227756176750805260875370396597265193283641347516705644850351911729991595648048499176047868369155445545763550955084374195788712108385109597062317108679413820111661400100592573040929435459163355179159654248248156754319831107440305057884793933131961537878575388083882552840309215353473100954830706815186694970346001019556803825590749658687075575325565235121785275006378567359264358093042997360838530534105325236070318181624460500204434136410453374963384598808545554641875385006655100534042189636116691124941926202579770428427207396641085792580807185509738608814460841665141644330031350438238987692564403904894005827846184187743132984722796550446601021055761341162540148579489834102640504901477772793893886533210366075417594450613696170776585508136746943101285473130713696254267648407313587551328458173974194351881747348260565753044881949826289929446891739150588971622687168720454956688713915259635368424935886710452730253115858776155629408671990004966486450441294975038879013501730649022661610493250950280777986939368460373998090106445283418081109300037281019340446827981870131636218764156646533204474006115335000992697582068014175231041386499226238289266759834514291854357536254785848048553355651751784339736175505031536104844269697448698414118577900122878659067500689133192063618972721863132391189930529046772601612773160485295775909921443162528774500293010371544125335315875036293310681945207140222053665657449996852484980606344291435710676565007647319871012007246535858443325270979509913393731825893789641041408473518635308815924442547292791043507724792901061359083932382106735428037885316780973745664997116009485631961610031699554990907841981933347105220877245037557797049310297884223361110510017005493562750797064473026335302619557631629333495926120547248117583849129354689970823163932066603757858110039262770980963569805651098514513450802884148224427326429947346020323862722160561556733883468846283981685399630030383965253852977682372369914503779857528824711007098758220107167223194283562691137622938277325219299744419478555758096081489574033513120078209598783617219135193684821028227126715635513800391300715472723690622210397704757701364887724751319179054559724645817998856040760293472937207467096965430472786861315499548153943523795622742972615844650624830528247385736100346562763235904802747121833755312581460910416110502233057614509717784657661265604930977671864823636031021212944317028597343365898587179726167044012183234282611324561576214902867547976857993531692274004850751102544548003313087874976254920425655783878694544020770452124049029060070863349070616895526617584363625953478361453512614755550759909327812257540066069556994229016703700665521431626893331463379106999774480207897201435445133395312572634983125948202196792056086953476784445660541863528262922123392775196498101859945638327710113215934655322612336024384809369086767948891103247878725971663253040611146021940461176253403265864449080635187795254949632949425248218339938646496641466015702842023980159382778707676862122628867011752547128128974060789512236421431649715069928033936101607157673491957568394253921987953204203696176596627135300871658253731245492600872782916522125696970934621461626473042680359795405463894164326491121448287182287048590642466813053966495852605296351930929024151284152753130736366472946166075127091473983392634717337378754019807692841682353782720445411253816755210038311657197573900357181831782196081574669146191558141977112443837816087265964154669828368064602626351991249425681660414748893996002177143083532710836992573705000016384794382218620716908386771595680658640665709036701365740258463499097043653657035494773579918949126043408861296548910701451927247179122581416706842957786078226635917087363085357390420526798635949486802671393866935918053972579415909160915735598061730771989885507586252482389854533850881323254712371068143544967972085745833759338859004612533295220307014988051767236751744261192466821832495411791045539319604338675275315604530414446580225531613516432897343788004800553822293851798560337101974754587639658367330672237266978248280612676365261950514273902272490982050307065721948596875854345256237977403152106560511068447483583117537094453391444441424189756817232317723427364909755815868455598394923532184952842642485826449775649966775348915197115078657522302036719714029972405577932812965393650483317883715287216320157491587538670254026845975956994702656600650878011165321700709674080818353742111392420548377844176233751248523264935060986656082891910453421421614578735240776434565205969470921670859234757866624679615260185183820987937539703505040146864755034693568654788717472083657005315157105542997641079938626586817102194955723383752069161549215539608606453343001832802221645922123449287599029211455402017244148605432764403885673199372487689782654664780940502313155427674245177647795598876270342491708966238036909477532105240350785611726842884162240507461432994368222325451363347953988912768245797164983949105313482796713066203451382980616466758886976350597115929716885271721352642247612373428834764226663955321525097218236138043551503137835039926246940671803410709662425027665713423516726814818192391848884859909146841551474975667524490696476088892695493508085562079068435419566155285226920715528315362646216417038779854349804766042704093603332079456743785790998111461028841122916507914405237087509100931602229858346979170054613710728538363054954874565221038495215037948455209163204651058461230846734794802341746123362350240630333249401455474025981064694426069268978700552739434636940939297163330132831615235617237765708220489877844793392333388826344895769374567736251521305467248509002038175722786492220498411755319170361622984730718420230015501450571718734897140937917039099413071323559630519120410904964672592889683426139902303292467479976832899165921950379391696604724880692349750192200078011631347697689916641286276976455178453417286902185281742802105737662718734078276420289948412666083156054038060083440555109340928984995354582601372239196427187026295011541021163310427301435048086011387426445574943631839789976280381751020580718082540454976912562103998730667859426638760873448829398364441006639021454795740605030242839194924089578307248513866382330019458353488704546619615117056649253556251789117767679364969223769203939989813179304692168305426117880817547075571247038426897365910413295327217332087271484096547837957203611447780564815907961339217005398329530520925113420243412901648367921793107191969040797772772347539153648138950982952811183523340065475097123338947885635734778477937422790856559044117098840932594176880871354385513131599940929928432750409012852156772310248614798091149116557430863586188632167301758753026565017041921399318621446103766176837860624808106562604599416559477126818490220000669629941055688996070144138249395583369020314067741914702105971031756551417219134880015882988019896304945569605457726729807658255715068117519972796052248780000253518679464493574719878172033228417433246232271665493871572858617741975018968136760955470986406910697127024806660845274562706705240313824118004488630036162376686594028707379225984576120377682636442579170925184815979829025625109015356199105389109889293375562360773525697762357112020631179222446859943193015451527303881031738727444262571459432537480359703723105129012847816204691578670612119661596446782919650808413991855717864351604168905738846263927739688440874741628988887917424680177556702144855210791771888618833507477271175502387066767649191760523478966025082009672432564778663822669828743771163700394329194993460248657941078202013326469125736439660284189060145143817165993158486144723140022211100482343608992652444491949950584821768047898609330782116394298352854352825033017449302622876499401734147241115846570514556864086590577359364970555355271331740646052626241594561326422264470935257879779988813262806330252757015641400156453714890585155777421586864632344215302710433115817595637987688802396489199115055181935828417911766310434059347383690837448694312150181374586686720101587540493753497646347672813758255993793435334058012952265393295093808704686191381367024963130863148003487487802593631265006054449252786752786595653441519103485319597592564940321771469887530653451926313994398914011012641288255162887366608365164948853455494494701004099757930680739362722709162216060263911990896510093310171016230923979172612368116059028124766196957740884291425263389878681071676581209005603193918537707648040153770766112163326712169693540132315281030097388906224567809700655223383509163389692325529194562347091986703582090044183113462013602362511516973297183232371319512198007297181204619402511375191191121650299620082998342835315062217021159831800502674794337686902961573701524405349972182663539040499644741979711368810271940470318889512555915726070742659154956202350365165925639075324700870783214879996518609826202539706293584765938445768885920415344359309597602685642288081196036411865351286883202951525601503866089358569337390986200263702268186731567007104363334934897098640305900124271220013153969340036166253591888132343734986524270696258242460970445541131963390847053357621168461642718934352750568193043436496108161780017744003799808664443398518256935853833825009372596263362236948366923047282596924361219901991585241488789960427228522602355909848666076647472503037477825888714247156135447295459123736359377396438700687784811043613929072538733136504923340051594805998838717111948549128471326541694270722364620660011196193262987592526254567016429331759257779605201344659447233647663519193811429540024251173705709151101145439295483397360004089889589775930656263360877745246752796699712946237560062601196529373417746187024658124745699805655084864737665028234256044985526788635806143121845249984006177380413374981518218826616302502987763290466029643159859225049186520241777179202616476694802068857782194292702180099986901368569225230928021656772525287277407622938161007991789439625554967082439272830622444569218759439440937595232614461496240122820101698888247382455493428609661218012888921190475231890328986802519090908597055605417569477755001568371782771787155861203845941602100810402430982997111640053069111414751236216128084360344060268466082151963743607938550191322106782706288994296477259086751487784475412105305124626538763950374879880309377163830230323843130667704208371821062402620366833479791439350890469982310229586460737850431175347208929381709944571010416502147295029061366471823378659549378860061848185041384419006781737190557258065016945756113031681672951929714008201322689248594515773115798897097294172057675457281687266394573010709994536513167398844652761037789607156139954355533881957802190966472947896761820744699364987680580053041274988070724564013076072725989658496787828665906720830883495455866997164429825259316987603008220558452021046928051440228601627169222031405261647435712838702314300911801970399178145531869038129138977483719305223851168188895524251280636771508925109117322493420899123386066531773605431019591906129246633187287570366211708081881519764336594969876541276058190682804009260929890961255950499821249278866800452219973276788812264690085889468790389206879060993180001925259018882464187668074259900092229667754699933512253682696878458507748735258626221904839520921279017925456709300377613574546125043658464341553684108876723754416900307500945682710328750755144140427567142856740729279884387054853809612160216789186893042040811287420065359383540089596518313314422376360229567249105156952219398061867717860922991865487856366011751195063770130004040035073492582655786226019515307038177970440494768115302669437776562522974002577251061267373829622632993951296979840059660689192569574195789657431886910636840101989901717352811701902001816135593143048761651970125039741507083412388794773851308532578853332530334058678725281648320987836754197235112289893190518123973791978786922389423204991563623894457618095680630944606111699005715740828646794423153568723520879207688378024331205361954047036142151480715610037826263428291520472834004759638344379104156683857807042939214974984722045628361811474266204753124954668916463459339405626968169357792944881521659148781963106889821927143387800661740929632989800010317844962148862230400820221627566063980943222254679766652995708298452901118667202703968267879186548111969960523361439102037621179749206500562128337292031766766927807118785713128410832526982214755847494667203387940189111556027032900142344898002189918570693301446906381589154736666011460482011396296914723822028512671343629351208941737895472629297817492221888972978927114253703527833148930430200223230971146969085011350431797504822034042134161933961805587838776401956216227896735461269391131750103785265607355895148583978937321111703708458471710709610280638228562492480897533631243864781015925766183375682172211997908353967503985330137070110833241323729258429075050594609544871083229783940891671197609416323567729326950694823321248246068642421547434719207446774939690502177354041910095400514462591133243165679497723296508275209089212507329395367359305205625372642714994578349003721722714362858684924049619800773327592111965338934355504820162293692150760243717621981688744007857835362813459121882643532520702202431971675383644939133027373778583830035375237953409170747389841080065865090111221486491102482951726123633779962526861790566111859472553741870149448481456955645050642841178717780364498843166098481454508614857118398100409491542684755388415710398364514325816611307150604998411232765498317117241844553520613449136846040476328330005826557572013027791657193336954221708337294302177310944330623810531013230852258582141563375082280618986499875349050837058665824602975616213728485207271126824985191243901615013083422578119703827297755672341155050666489982870186270821538100938613445459778225419689749211248901300441800997256939550312425573717353220325965838024163521708101944301440497331945095521294929404635133209959920296867177748755746593187441537735117389751923622127178019418644244677579022664582686833660062306426877599453392197935275314622718096513720992422326934463007313041078708802151813829497565679112296036941806699697781753106421010721941697069950468098968285944060387606301539545063173327829023041546612547457700139283600524526356393191176892287138412008416533845979579460782881774012055943712206699389119315705805169794160557108959132377209013957067416880518267431227098333660673755804902620798240875616604132010333412555789708942691567206295653829632387358508241843664125110143080734807509646814454787573062580295746389228024638567142523219032532088619815715193506008413662574821293308759954845267731306975403533133529280576224452887752889712531728367158577202897636292133928813940911968678613964629265292168170561102926362771431366065857078594758294778158694145228609478776093703821272462787898936139489727982824876335558340133562701002886637618842782361815456558698996807341355742669925447881958221595315932562649370694714269070123149385503328434138847259448004311776851802840840109276260393322957543165433665858577481303875775039287742605629167507221096111985246067278257168952592154389291144068607311036356233991508374844522348708116393868511563450560404955064859761193102078449550117237103159557083946167535747212878038321427491808522479450535409504840961861801095463952760585126255108545095993091134788681270323375810067345196174265258688729325690687439547576516133265039308693217571879260042676829141004713051355185656388569457111923147563112579045447246675826635103176850276476189928367917765351164763274298148038744060655703881235216409304258142983471642189819880555407394026961543193038148843310616930805089964363849342893007789848685267558738390681135966596055639375342714757501704804501945476645337824650913133425177859470844291504608108668137963228697107728246328794613599617410008933948632660739504119159796748885574151613917170384610425823675348434308787642705182967276269412312429069484264716787262252439832869489523550966455411681771776983438179283701112550682948287023533552902585405832918231198876461226436778983347051669212235830193109512885069966278536303972956442803652526884309983864415561071222387265248197024298375544935022059886037352940595873398564833340027295752765796613289202957374329871807067673159688326744724086053695814613774079593214930823307052792353507311483500130014599477170406008195076953704072426336373354836164641114010522293847997098066806321521768964077955663818992447352983499264100046607809160130503675692543141938673848653338347730860264236558867125360683664775902324576214764173009236170434327795814871304740136766564367457043834456335147331107095505597691689866197977257863069848712889815982713267785210470922434537619390906275972375243591918740270826177950416693902886291454301761293490215122422647447787658471420646969794899394247747188997304356012017166157966868883466654576375496241566933074804812739945259983909823177013286955431731088931679347023297599641162306684316331011802714103278342978665910703873072645838575214668790420640704351467815900799849921716631959488236881789880197037173596414060381923291227484306913550424204639706713485186316991513812278328884141822564959012508918227306647315957652780538572892810801945070670757086688928966676310811687709393234663450168709653261677801630209323920016289990003437019129414765978823782541761735199968221663559549148904044420574614281222468972192206266834498058159482881522038513632620391863786895191691530885079792510566603198242483697023885188630362736339653595451969785361243044243346512008378250228258387981615108573652209907707970705254400022990793545140615845657848935222341766133749564788518784648390545545376689493404165499025038476414388514221340519316308332979596803181230072146812155752748185843953260218173302915989434977538687437179846199636788156180778039280601500258299346542104747265037791300147509103067469694457661681205078685459061778082850704361867286284107740103952024554215447388892871240048016345739747498011096071708424994649069588558331485265148184687875312762399410667307794255737385082364943677770528466177408956594496257671844858965922010544778024195747017580177110157858065617223941155158865266792057952398872920279310170800658985330076908027353803651406561694418860968598498256927045588507595458851947016149845401195702858358683991844708272583993119429674787329144745268690751352164302693763496326354649195164493295215741852524992094511818509586980881753718639797433470415792536502051922877679047292862160661386561463799441662818157171792698213462369096080345414753185876440084685359097319886325977493664018135521939912205656801748452234749674774344745299467473537404901818162123079857096390926261008030330269300352763091509811639640499227767359241371395463430885724775578955782903717142453781084169634070128526003211816088316685652830893725199338592651541129497097581872604805931457819025716453148548718841922636110362112690810518194836810610277996022035712769427707928260894638586680643144235932973000261451259533867951116132099191162789547485149892050624518437113607020702051194976709241903591459959414817106655597421335578613735314073199951065386235767827573932716689330035826455189830406020601832923675827545928287785580801309831995931736280104115434882257256785763258183553928678718551515588521406991191286743029367694427648418258437262028507349378755367182821140935029687323407169862491247193830710102587449517010257048328074193499999044699061611850292388662900002875800564384399298571728330174452343289181231197842419028413737820362553029025871268613362560453087093958149856093425865687275701637778199664223618895562772285749682461296777198740621026260817932144153944028383176932744696915640918333913723195487172434078005197194364716999551328254760624053632477587265516110581624839084680341880423726712332535773807126557064327304558793162636203476567320111520458726686019093773901901871564986874666603272333967745413101255227492057880105745574709586692440621530561109472675233480455096964657743511979032533099806496401645019936332962321963670807659372176588874432779007554543516278101002469043498773510015680977104185081592453650386134694122613615091372328570200128519310531522972690281464971990072744351968145518341684756691044448136276660547464458320148883408843069988913662669031194556024133908099589641034997836133381817543935523606208791182061099345748804855424295603004660807205040495179065249477318934257421359571232597221592033984616073161349321213261690131888346782693157539217398160478469286712324638815085307908806511142905536670225678654626394255295111749959613301546561499199091673354895016490188385855901373292808143495565940238336113975501382428262030592261019543037001365982591801135908913937911786319634603176598717246730491773891601827260449946775736300397439764065402158048190315639645045955823147048409916648713998898290415188100275308060198403678365152485719166223243431405583002977556926280224087675908773690082314011193664149536814665103744427508528461687143516191864196178477915158792656418851634871456789932772052823725937035343200540879472123717273292940792661422309275964782036827237825563784929916845077472683237629803177575966355770927377163279844517741569020301240118598008746202099093547321007844141067109677245718761065790561776373820902720221743491299924284989949321817513580752695416871169446264728236930047660930796319703111654258615700089229571255086879459891170671015532510722436018483642330532842137677964844303671426168643902141731301283299922871863289957192069533041997098295559383569475134084951187873192541251853864385558007412307915818454792991054682306819059559256281621336661861829630850699960270313990882003798881976334560215259410467021511522020287564707576365772888791397713746142063571351692170826573425751986055158313790574306187531273994572159542652204302020788642032276423363035241868701406921214352426082858928276101189176458058841652681148859112160428312620296584289348743780074023627446502311664386388229919333507887266743529329533572551008734940701717087827948203811558268416174275808807879020103875909608336495225106326814255511063606704978932611139557447666787545645066948020540100869906741129150188993510558856227598459635399671286470712729127896612048003566673774847268766132953593234509019887329426501668675803923053973108775720079228214409347104770353042685926578967831675448328935546091315154263984587994284605994692980849971178317823997559859971404594247176029899663266145610353812698970799464473654826280691780858410664250226595772632512993150247962524633202110616334157064028812069206267634308755293199072658626575430779871909220035294576965442017324678330174254752744069399267809993810856524598722217739907974483838655820611004817046285357525369889946251078953373718797188571938598854486521006295012193470088681616522548742891209273232748771997890979717769165319710546589557372121492975205005267283941366747488599846291675860568780659057406603787467504696953740865297639778340504916579277050971977872054470879271450259065160335717300500706187317291927218641316713550981129142572910522124766798661121817200316102398629997518568592021453891679858756565599216708544750827460601280510070365384388260206774313634371963076761287913710435971473532892990777609430401259374275046517592648877138589044054367054637962134128682902656749580548751513562482074039542744063043339535635316506377681250176619134588317579375044817233465819116522146369100657141236985461440789484483791189229510784819977487538759145697455210382867799020599826246606731285647421269551300729312826391695009553849465381623888739336933613966579982445183603802252192733076723052136176246894711691245953795457595200051181069742497144208993707420715432610187016786016369518145765162530615539637681131429798601966497751299862470933684261450012013773312081156356270977494627617569724522048569226835108484406374781664191804656439632144640776762333500655217794020059723720168635519023499977558501776647884100216530238635696883151995883189970570655292410879392795374390419842210076061512860712646726729385074268713426337856834710281386084228988918748204316097675913912228443485835183396773175188599879911280456746499623290508408352477908693718550013883497960457770093550574752575811944481463377041317704379792937352653547281921499199852216982791034600521079561801929170153704525556948291506578349136405681480106334818420968806736994765469919218205014290124056482509813694039875531155827752228870688692179752355802757962040766062442956143371018889633483040488998777244632078061650773137787628791325016783621492775519602851476825593275253152502732460497385521826156605761800480218923613900572043583470661085763078086458034755440910972893345785131101585220651887432288343153896018447376813073098229679084713383985765021784941777398841773003474892043408184240522504845554640645243341833730565575477982110255641773618072750289457035640258378234495907776916489633330284100687513262043838262284113641974013477683729370002339441571229176913938705776218074553118683838861992400810961520845723202504077864802337848604826877398680354703590087166466761500785381904708085636409988399930420417111640641468525227886800043747005464659424095400886162328883682912100473592127660650251184945177405845202835822383865610599594579010222574818914009080847500113630699333725231689264193565023554298921215492446233694712275803185981000844042132212329124445227415361212458954571193683721356060312822041714799832752305814480352223804912665942556992715847951187472422165735629241571556812795899620990156378308050145354212091916121998799022301167617349599397739317648678711476768781433454224911640053884329205252840257700037251686486207367150010901515527985521773169415372557146635474835760906170041179594719805755660257600846499094440687421517074357381117304594268585833665712915453681395120560307191519330091943963422581870508737936820439900740474277338407763930891941295850159420666096765416088470858325481021870313370051178600773742046230959579602722462442922772575010840814217214424220189186450534878732581665606732016771667205882373055430516536549769655025996206523081498714895562369232156204061961090519348949803312617377852061239034609625206259994592961075468379411901352436291776821305742754467303906491401617436309249081911165214393185417917441344572310372108326556460656309718562875763487467895862502502252393300637925312021462930352629449945189543310171215536401590646430202008123971523239168896544202664091345339190506126195703323328991218474973071491972490246180310603249927365185954580791542486046954316261600392469360470174980145012429188165239091321676765960979281745367706470475438721867305200290769549813821040716966667115613554998462421455908747326889121621568000253542795581399277219657033741214633465204327023490297844698307465369078692961604524735054221187908686050876712223241290857778256839533957632856692036188330155997974352565538779968067390286453306617697346274100688622785993833592918472367764569510381394480001955223221976049794589163808650297508296592995822545694644191088823042109869292139897844145645304697534076040810247427205707232935742713727140605192396074521428788187625417899209326435615042109536591657206707467836359904104983431085860790656324858251619732873249626509232650397828712420884213100875405742641039973957537079686896763394973238623755688389910969694161791173872354785417508743536073027893931925021846873026910912718689740040034253644312083118350996712369521136527133864187598769252048366278700530423882220061849153716205766255119877765392535386049576155825338188555105034884060947357831177728868537289337090876435723327390191356588735296815983258520327039182823383371150075848373661658105366361650054611012717453908560096421764212255462703026773845880181622427852755701633316673515949398964386606401439665082227093327739723513481507550594256177965669011818286725481289493845837191302316254398234237777054167835430765498721538315797683377182359348895338134843691040734317890173126168845396572251799763348666015804145490649826222438089073069998614467673271212962041305069090914766191449184522188045094703012147037237571701369698713225186793970647423785877175512802740683747014559939280840436594827732848015164573230589619538031885738237692727262895480643445268539737775214232903756857494811123154794672727748827136773396843756534560949127467442711446333015909818366477545531327828508342139370549526155832695127946798185063182741664690146990526655304196960567799239782768380904182079988204393753656467311565713280447203357318350230974568892755437205444415188546544901426754559214024524533346457387174171199034700771442083135097081129586350817357276306830089679129656258104339909263621670797606884433015783221434780539025139614448290324718092009202902582060335594496360472344613390983317104842541216078437388657014461458152412295292138639114186427719712227929904363976898310219648051408820881507022874221336654260976430316186207165764228307859541442732901640516936689385521306836976048062731755843383988184633777169784769868617383906729927216175778761241928926039710445353941462115304381720096079736090062201730630769358546963339919964041195846715670041677539452948625238908691626860912329484687926114977034921047161128534414689367828967184738475704571836524971201487861614241679797498126756372219852081668999981613915692434649775254766250732355720469417225769152684435716207842551434248520731919649518624423012119070474526264381759524117078297813761237595663468085844545017756370923227378939101587440596422422867392445782198635921159268515364271836450659647022770076047576640918873457346107704893490779552237953510717725197643063663739942231074649239600104524054014665197523198138555757134516572922146396078164439776159116223857748020074142916870303245096784251819791527817122771701068352956123199088469530072334417510315638811539966466041687091576900047073483570418449763473230066970836020842840823091968038023956267654081999584556939430730435650254842572593996607091592639969322371481271126082051041725985830091861553791921789572102612316200995456527588380166715293359207793596016654309461049536885844100503924725570260961464121700371596607112737281747807760459653416032636510752030438186257144138646462523658179392546874739106643244254891929763208717930683072826446003579650650297938554517936136280304874148806131363013345773969539135379193377943047292943429365025170583589084491655640347499378899256226586969981044269324420140646306266307099951188333671043604972162468780441676249440677740300533035245411235710571678975417895631110083274625288683956380584093647810760438573485171861601772235458087470049073907897220814878352617077960437930563818205001232206984254806760277063383090955251079583291533644930245956154200522731447165373584017081296043999168045970875869092501348545731728876455560139788248734286160120657345782995363743843857624822147194105813837466633804954472198935558701759314002704922800791267574098768139563460119077043750458769139303265912066730065963094938585792203948234827749297132531478738010438292392369900007575144874963364224123582237962751393317581955497984931263854788413527257613158562954172523118872150480289174616622966146635905202742673599635143251881172494495434010519031722800976273771500232437204527513561300003827601062117874984464693744786867666210943930778824038167617148274533091220623825074549780559910283529199880671974385318386124014982322968447963573598196594074255575075447806782579598492018916402764008097064088681226052435788752512310310302757277836861215636971476490670138354591814123171829046948912705172360917878485022396333416138086226305833798262061464543742229590417978021413769267374547039910775286844701600411861711178748433111260142991575787805109202721017584302708980719215320354174553001476348604392433495363494099497524633915099932125684585501233155483533113953867400130544437190222248473366444141526266902678343191816776076218830113268371413991753749842461647983347288925751952227714105250820516223517071745475178041839376747712366002016771909851694091315190806319834697679637980766548307712545275932565282579228506851966697984261649734348854830620792503815982469954670513190103117630972391245037470520506608161836644188644946351165980542921791553284315081053084096909351179976038618449261687233205616223432044484805503051058195684903599710805014652945533530164206330412707214793607490634554979227285877178451074471897691500826400697083737652568666879131553392728763658941429164862747394549333963286783773679693067830456254613681537578939113379615520766360961141659392754671179952028719668246071645657452745228538513537173895226020064234176453145925396755781466902393246719354095732369568022124068361346177105871853671980066284812091203755990285075514251841790263607478508888396961508980507684165768945762101149778326990846674396463471608781776450318004881843706172112573807796723527411277918428151719639302846697923830937277523800091307711033357152622419333593959849565977920767636480582124766036933031306238897122051419019299686660258195890235366488409550946650220334451803411117942169343512709372663057635273081556263937562935907028270730760398546207290909871475877834647855454946373506273192677759926099823417499434098091645176736028946893791802197451866268042110625505250707753957334682410657094725210857601366411997500401435070395456881566550177036299649674121526893228789844812117058036014736868288805696995522886097139259533726276018993018913767533418898939825055267717456852123558283344666242238538093138986001562083144015577029730726123537330764464174393739021658641840018790191636300601561735261973769264780927092455953156566097227910462016658394856167159311043857512056412784428751330183382010996385684775620333545389719770194663831506377435213436884166264273146378556043898842338565815687437758079006565402877972455138437015656798420902699838867058632524040013918577311806041760027805994044444886661894268997654885965315732532304646508360828774318673524218172977095666115811476372720853358424889717208064574302306219761903075267255674771846211450097990742648792003923988113275867274255762172819731763955803160408243104029920278261245735791998899797777318335140330938627787642066626965144183253076206585851606989367068426237178792863196488303546969722569967577618091601022238045005801698375232088358669300387883302249699394985485510524349355662394296850495743632324150455863743062746483467303811860631680321869157468876814045669830193545505631846767489825170972046767874228222802907509163149478266572180769875947289623999982922199723998929949794155086928708010410508054963712926209423337006897256509657917186276267570978271475557360923930263009095127065528505028789599019467776901087129581721314857650504164453739993134783061383921152784415364734890399639329921537124456280281092599161293155449457199677927455350655393555503099371380265657224114522315819478363252074296717144364528573479334153788201880405239664557042204774993986853962985226862924707747473184110818238197928969191729013183395446771484631261025611182503235007187024444802677324484918568295754484105055005348457387950961282753086779454112375855890263968911262288593232610803011880416900621417100066693801545959870256522411667405917237241700965493972397205615634997667876419628201400301119012060159984577955177621180506534313366078919721657905520863111988716900406364972860534342447947319042281487440246932778206882165621651749077623889982131960736690655183868406960353779202218134581631567155899956852115086440454557406480959544363894761752407115162214987838397859915869563635552554014920759104528277062752575255523630336304213859327427809469661163236735827180730640325216275287959800338529328981528131644953339644432923046918601364603680355452614441878706814455661551529234503156273957570073582430083098960009490856969783425366794972774607663130543310207596514039362581055027716543026482231685207942936368234522094744618804944663637762270706068984523167149035620542138699336479871214622392889336036716613454212987891210026633119574612966293290286292613196229378092371676694717961243983394790371140712044653269232164902264481750184207943349138157734007233102700249639747149668481413611254074732084532365694268088871623147951329302170381953526346414538805424490765987366351588603435840092428093560750717853925380509547598359207866895975164568860104363996856905299696668131868392508159441332176439654702008149094466834334636562958348312224579833804291336229876678086060958371961518344276545135898744241071419296111081859661934750810558602103085458846118994969240458175437240730401400567568506329698361466662177346034854239564151239611939268871229914892410484160028483647528691177894356197341503410595814425283796942931884078777424657440379463176246784387571604591987129634501619080526212138456453083879316598020653056443780261864010493872566025169125934739907169717460922707626439154044398568916484525197105004362942333415016999557864168595530300818786125140543888916747317636201909215945543751010898123111684071189607895387249482098750519797642071482599574420441691670381791919523051975790403131340180827611057840421423376460489343938858061977384074799815189167932425619021703975744595426661813615256680117021924726715161576247074017050957198306294940306093005683396711503727352585068993437952837108616111255287518866764810184051633141231109104533333675546516204912096842098231285928008660854241886835471984065824651858900077582814586850356083227112771521542824605512415477631152326270158367642970410195526603030794906555734140747878505531579958791508972511829097267310135105867211814584511937451823221775216944548813808169076036465771554653726866023996605001192650081964100822769542200564394366580623505712291207081291378976619234906574046247553812471603750328998527128127115889419216296407780505867298482972093634745842624508342821346703766539813685957902687553230700443552586975556505127593693740184523829250224423112271608813347560681294651556188676685255108278217400184837436191862476336323692839658938801298525643665755019224029219618111200056995019167835197583618754980314678785483898535753988571190213891701925593048384639255977830235175812116096718878005515623438762080921416424197566191030630993677858557818574109071937008043281021855991617653019697775197866400898049242799822911659179439310733016677114955796033699759566194188978776548268092927154078756176991382577549785105178904821193126331182983935271091304148773989413027545709393334600591949782072294007286605132714094194708299032056458509171246254372638646258494607088542131526319471702231008193655007746082228260997965732819597304101304376783658629087716998069823137009773436332158502111501330278271116432237922886631704114827718231672241082831566810149359135756441988614686473969386532097243753269014719441749637199409064062291418798195524145807829748504276977735041541772529549336253143274181372727681507145770252316996563865262746914825899439858355767038576463208675447869497362730201449493697879462561417167884042563787298042362979754435935894907915291169955481960172312394631580099580715562523399514457888983887435773124556271413528097270621245141914109858382527160213257291279830946003903601152847758826680028830279850816179862064581179657903584117566717494259425397860037188663183132024002136766451082054279047997515592054860572302750734814507570106731782372342251046564793557497566847269527871312125400591628832921881641153305547376140273830402515386760445153916845194442371092995166053115367715131211885483575657075759374289177765802122183152395138377240040300027172076180484417622045051522035147011878324721076964040678747483194625228695643499311932975596471134516509438781680932565029073985343715659723680986808917027284812145842202116976626542452885170852133139868714861396507271326907507356849635070427286177340990693284904057228923008349099563940971100306976409041542272042731336672358169806896735476301844990054437634417884964445747507603805001100689702637256529946348929693713283064820525931358359836013383700916604485938654703520635922910516816885363883034606399895843998000208678870116450238249864899830325079027507470005140484711717561247653262979342536095576050496538825038156510417981897605754102483397936374042519466774767032738753441231223586618790457124547275348420717350385528474887533956026661854640608115150041995713020273804401259361212697311933745124494695917916434007734917976697554588552293335831373857512083126949159777230547753113145391805588128661943232127931125576992951093974102264250400810576487532438177130663625755589130145636333461453217654758267976468392875991823968506754883108066075285690519166382032451702907710463619226931889099765643431458606450783617699396910910884027425742543787982439656476433796449523981382887643971819950428541332659932595902220824592090198213015075749101932561635977238981668136163887111686181021111284842085729184852511204996002016980342449654430590598793195860474436817807197270219952709616913974787492060519669852455670026953518184571079954468254609851022661403266391451680465125876368797248974354182601474968392158676580274624478066758297284232568413540770874379138755312573526663650859152472716885113345261772538258493888199698726280667996899442365707878031487536500628617102615140197833000785590212096880207024553313227134375962371799775201102234267509665871097457410784475079456626130103888790780529883134542720410746255590299294329756803686856759739320748698400144041198936850995139480917124278684513147828861014957868720940064825827146816371656052542854757007966142970918790949231321523676166581243975479679322769140758540726543835561624240908336372573241486212032691329749031615250131652749994650972927210044117878470779194980652138166134123508997827963559176890629166295524814957167098722194187277447484817907247226030052096298064017166630570305235989361514107426371609388506636950295244633281402020009095803563758919075322448529908697083212693864330344339563623204184191573916189084647564995593993653517967112245230487880402938922838987000395017837438980978295658616399803304054752563198111768214757164738976396187067330957042136603263335595945951874654376191468799543792833509871333222011567084153179461922919676504194931982385378415342986863578105762715355257132812713291438495377234284543196825871921289886240535519818000581935194857727692774783552481834051842143797371787697750681242752888717503943788660830696866236970573978473898631896439486329657796725816848475560090136575634578287853254322857559597186884985132151649396165076421689125765094149959183949900647339916838596863466563423194406447145974822842923297833655693164668988015498093195585513131022559890778068553496647841155962871698569986089267888808683090529365215303731150692257990567099568764684390364391420541993368556273133470067719041557481806809841672303275904847081485983689174496122246422645774134665400888085902617039340104806920414634027392395239711341353357372702537212290519676230194599861858633372976658326139124861680381193615601527240394720837233446925952156945490197569455251493249583190444845611427848212118259973344084090878218106508054718002910122872581626449269513779317461333640485894662484115527562389819356863274732527894091507216410079765476931261243630526133564698198425128448621323711168154181561217776715052379705772341076430154151586795649955342435626554480191039307878428164620375408465670872963373220645397866488240118575039280897082312483830968940317750332223201294646762303396325359639758132291494203317515108999723040728991886687507942210366791418336445426763895433743210824920305543923012443929334175961059279255815536459358667426922989312121989447905637172872293894257716461765677750550058148209845097586681219657162464984265517860826026777992196836163562581709338566300784613466183621900533152380129742372559079411980298941490838382249005805326611674828645337754432476976534771854018615084103561578528666885769624231399732071532764304442673719158213743710905801725216766487400268623962630460824217409602238956741668276140225147141372201634450933233710919165712677198757555132710342052195655562069127062613412036141791271425448328144118996377161281433333474534033676862117384210307858439030825358036396532153372205776442391126528494282752190247065408561537302035032522137194377450225268672565534783156182475975605133502031588263875712421933212075781135572384846618865461382912619888450666763754980073579930952354911603214618419170567776156504586928084431936906924095061049389133546237400663859700784415497916277178863423305510742817073830075876324379581091325087367959455267456092306012377079718076579092044918288326230584980441162715819561026314752338174251548672996925164146511860267098646129292382892719476154231449002766082656242763483651725688214777597112136901137698135390595089834653255245019439251553086782405161165839755383347914614021423012913941881685371513721816947255636514640639350769421992851205647339297062034538283503517982423513909447969088452928999579701626418292133394748696508142197780969888731977797771148004094033645952007470661927403040425066754628865785185817101031137816709355040430239958134645880131222112354675769910624697077045328887777269163805154338151474428426221383370252467111359606183465673912839385130825362481319237506350295234853300367262656644044766871959660164917783597178808796758968293620075037717715574850536802176353084653755010116213934037522188986894634785842665741171737799665575276916367882006848950636356940551848927110895957638466574939087846233713929848650286711790831656002142274727892224069142782623467974393911993230298173125469250323646670717643649006449283813634143517822269355898749478993203456845638017259942548263940840505712130241561176945934311712308942151097031958579902344948188777693126424637148862592904557602907959458138304177690884645744852889878553064740788373842585346526946894166696542410420896592354794881414613132998651017053618067082213384589747716326415376192203264106502519868347660890767081281008462950394078988786544234365015700441893174950559668303964514885386033725452527102762734486336005609591381376327870186680187796572423889845982607490199097245605594675544979146357586201897398368003324059285018269032837420023200751981382442180455862147815390899968079911079134888532350064456530929577717849840703127691811265008590340586484844866691866718906406796774874016520383315695327535807256542525093280429457174163913961119349841596252856244397557768755329236582170442235350709274582641745239806976545812854945634578040805188331684099193917133478146980075837265991426288359770233116837478810171219725907772456880899652734051668241051732933308958534892397108163600844587881845541407104840916630540432964518377534308261348616534896134304107406380143572086970657975265621311495799846551312987757355012742257803905011132972509399472328247441886671958819028310696916868755174480142435753188133100358914369338218261506256332479025235070971761206722795793686407946414633262972643294738617408778052453412735269534149294246168951658126303297090870448737770292402543377923545691182613288863385545339894628202536743212113445636811405110706260183794803581032294129853410930950390809593008860419190850970102044279889083696716573889507728673706445585350736448622844977654233068643747494745829325984492493518225909429496099717238631737795635621084297186951097252246598434209542391748840306627998046502370461306717721995158091312628356258153970999066407694863563161361297836458477526887343868308946278801852700761097572114339026342636302478779225064883125740218017073496631565578860429416138871203775811676492370112733656724573746949991198748340305452766827941807096062146162549351509844547479752065753491127451934359647178966553153788130502698127825653464652613729402687921997562782326323403791517184209992953740111290255414136177372313584616889470758664702507426894804190320587677122991200123895544942677560488503357998967198247638523940192876121071865204591784987802858455079444014009167455229035169061054472777832911446075086504776346135589645594807743933007654692524505223944230412968051189094618622383206340520313857641182571597240412011682069746222307301365944329463796458806424429400288770579282374965393566964316582228023870062380761417491215536868217240183571013878219111667296269198150659084554391500488879003993667362340476367256337331271664740001873195019044988383047721992120512579012366033794493721734395345113694263892288456200063029869961709825017232600837082822403141665697916540862939624500946928510885714523637849573974748636627140017440232647770089444380780033434696721975836805162540849931244431615095795013960842009476444307028003202059305993196640760271444482605678984718652746631712405975858698865368454602435907193158828315226749868498854588389239255686159936662480789931350731709905938755546203988823324684896123298695270871274455189095870439887655094753054204471866431562143469440873257510241801122640544128219455915445883931931766436369781365433811273394888380894221224497145208185899548923213228242789944438130998596769427904802609845218081459842106219512334169552210937085899222766674256768689505470034441017306720499292558666716681951985637649245206565806762601278908132249062372444880454984591107294157347887071242420632952242594510803226667758764825513862443846064444223120860356316938459353658918771929402170922631280739759040552064697749537327971337640918245417631775723359652346628536659114778291974750643008046478242416196416851561044040275028446135142834595916598243120675267443435933092892108512265260322228395387895615406771169336192360604568850920243735135629425048392751962670323502406208080036062908243384532075819110531424413270656584070270783234808007742332483070920701562722412599382463993912729299417468443770783569771331619135658856493920221944740498216704288721906762602943913535078217634206351668863540365241006605876987518676291157405948892711264364429332434178626267783241621335936483531259668313541047584774398056364283672467289244984544112209844035699469271624309370262658813088011470481104506123834896673066769007292517025409456276963742163837528856714947162297668248324383041963929939495025065982298210554211067930368056364154676799959806193537930921424219321185385811978029672844964549824065820578685247315563543515536837233116496116200152296822415494455958276909264510532047978567971011311452711925489100476303754945324095547586203837973262023617530713516704669580700015267102670530468848518964427254800093968406449731030995121376603787686604569269702643406161356588725802558820718196997213226653000616199808222401778769970581976518478359806093485904111794477032614531949736468940523479992445397691283118919099231180744208163137334390120548571575163352325583097562190515648986602643849906584754507778051197064184259931561989617757737260204693674214343683396535030101640097196820021780171504148250231629501895735268294687578753316214103583267686548792966347271042192259096498592167691677602010279999963640866044869501973324676406091335396511142030510832919099797776260119792901144704578328714308001757422220785977735600729935910621850001671811702225245743266757537176583952247345993634205883988367694291066366428097011691343329391353988667157135818423140989800989365017716934319799871155621454823537507597221078913419783519576000044345914574888522909928160544734531952125636284724026607985223669155267666602049530853153579656472756365573482303963408286358586873945187129542721273628087550352789872108482777651557783967885148734358928520217465228318813772846846274632988450642386885139187964080169342450754053946749421185177890677360805698496865969350761004131041812085039965350670114494165770814856987844756651591096728268735726196595550967588428212335942182998280031200715365178793665106976582431753117873583153001508266109712990105718930343133874567462448279584076815289544086902329239105307035086557032910773603309370692785451872354052801535621928582466238625895789128050534956323565584861263584640557643259359164825771540418025725730514694339825381406326140454138701189720761964654530708812582020874455471187575764224029553172796079159661363408307650331311905679124232265783532046104120601358135505255721604458183307646478433465806993804469118042905015691283382501760906587233605155816888657121535449855115601168681115745513240431158556013595626565394577994449415723731047930746994427587756822754358295669429414432072243025671855249874166178937721334221893546601189752280353189991606810933159899141256896135107762100123523035238230736973406230134485794542339672798005562557853591660425323999215436382514317481370032362587527827077346416531427393074156806779229261098383536680155691792966065980831328384829698826128397255099292938082746744595443089714568938587196461915204533704771484937116748503930844252353173042633347499489132202428646905894196566042963250688287493418303649444425769421096920676161263981189595007408151710818208228424681367693519323952735933189097689240560773164408200513212311090170261599200398951788583222488824746877337852302658593788071442150698160182743462932077342147538576814969362793038471991009989807785222898575130458466467811124650014679542954669859191541174795029861953242585149320668662744896212468819584949998222752449020887270628363900087595417950532811428145120761828149827907418611535319998403167176233312334683262403277393419067209492705572230159645382501452202849134868043117761282653552930601332711505434817494838751842012145551450831471206378292272571563326830825387220797609036048714652372902666791376729801697503838582125326740399850241608836743120770220638011389151006620145112324007664087132889966375756126064865928666946180301529455439220941316260624099115793826413234975612738748633128845642768654552271170421131875794915931138305224462785007288690008888063456701052721542923099050776789635934189904810018933638631058462700137655341347811037081475830894785593045898253240067622250904739478164398093314251887319012673353276096458052674502579556084760864522781879777407170634152876855806360310997753954387886240192663786445104809357367455311443734089693088197163982878875113251159480414538961294910929720718636405308177175019930926342261033247228701947049732361978238406880917873166791496848390978531563388705063131597658379483370878234973145590765468010142675096808923336623210634437793248939660461344431887375995602521192342963916463860218453291178455723161653657762507323849810049719015121644197880139819332623886220413168074845718297734851354829888641577117494584772952983748516993617732533737643193080506333889510973460964091519391658931925999555719274734447423051213381132062386450810240172823952817722787828749903923960340860530305067794281643131372959113528484522464487826455909002224862967347861223925266197002990792263342516232706092318922119503792654211244190635536121247054206374682908109414999733370912158017680788866521932581729959607193600637000575581398620437295994967744464319839788969424082881319301957772171033983566361069913749237335710642308572618795851359973387884458050865016717333894536556914994501523894859860878049277947239997341171666113098694334630848228960089567427258898857144442947584968889722415162222628202317301198213385619606668366591487551376419523559881500298694658282515678376352799713446797989788832597757804822323483078174610906073126882279914765372542083715022778021939622252924107369180882230722612740304939425713344302667037924226409212740802959196355001811828813462576937864314708214344455436200377588195945677617928118760971583487688043940095246695276188846220455930455081354384005105164170303556423786448022410479370614906920645498250707454641168921136503159423628819980958294471435512416771087107772709909354479079535312232409244408971929553852919808257583295084937867071747469975806658472523931760598411785164016454850222480181545316125773803157593088300066184834407698792917757624060765896225470719818690915249379283830641929460671720966881117246238141293054084024495429759449693460947187785370558844285014951150732873309419430618063103680090480454115793256343847339791436036747293691833612925587712865622770373187529385884062294210202606513612674676782856801953041413226529976205815471110743968373356969413234027672590302597614150124240214776544375321854996261928080634929898074577359317251280062662733761642937380921161972069917577406858069407287777984910090767848323172915151670173184118648246083690581799435731005041793646441322150500116586341076937189935685294629348045448367956837349418395193496140622935840480175550688830146950475686368833573424599446031995767293068420528095298537796677387175699235223076298899701684035885853466833369653677253631753272542159961989645286640562090275519577827096252508404766541480571296644633192875400681117183491124730514598920169739094459546385092258714861434242772650248038580459094818366152084897192623999993657237234565226296625253060442831601294164772045203386053531359276331921174409398680859885777665201297800073753645703153665650356438747129988003714769807459571671734917524923417882810068485473886029134271567925529256362013390861667271347064738881026639440232512213777337031763333287394334046128570311866289686357199788761112335671222706706647387056256775241972108900644763673035677441168987466982275513697420956099176015252669490590669755078633720557604014753373447896813580594125594722968358434732811516087601386073993991803032614347345469113491269246747694310937840234045027420029714160980974105980591647998952388731000112918632335875136450022282479663880967463606500713335543180060587091571339029665667361385989768039155811673652592704834716531850677641150424804584960270045171317615845244297465714683216087217654059010504748302470765670584350416016640961077849196529658523094616928434558189620267997014769909556363074424423351156241738162334559039691048283835722701808054999090900378096416188322796094848813462305948184971867156827143593669168463631230150629232981941962466330907011129556725053530691016193849565334744987807602507316416716251988863466654776644576342475576515873794825013057291271973771193007839305473301600925776924398646722871311948033266754677353236293668600246668565552075007722506766297036164218962093049284308100753573959956337173068311326701860687120447902834378117397361757241584415079227263327028659440927083622595584964092085342696168317955706563705864382368182833965755163620209158610045676894887596169656935073400334824244858039339480296680984743298774917713537769715411272041672814780962152200534725300167022482836882896553207399182188296275636904575991013743624820363142805726632635825148835702706170926655235087468895032087031442996319489350956267381107563855508132501343321933906961570937312161569555751552365490444568342416846202937142401199319808340217649546186352874598399974582692980280451917037722169474469327950149702566821825456580454651945765772384434707898617882673228385024392218932666558307703692214867817172790912389552921533574680633935959025135878348384100518572012033338004384587022662021501498727724084125498026446682041498355411540507855302288863226703890961119111434422671602244120702277588350064594442888470996945778697127911236893375494783847394595966495910867160705031870844187549197892367452488304735532656450555209255188625797566079735513797073401491158017204150867913124995532982679365090664556634859867337280274974823206831455926064233984062256951187329612097221941482100022067024259397820185813525324747723017144971334832268013382863951495169167160760656664771526661466013131807405595846113917546828816120228695773445225141118140248405396420932868040776178340354091874968095879267967038111332249509571455817237270541205645949953283688905019633356631814396196256156829888736909783614140001653385213471047232008940380483852562172303741460135070831417401777199184899129825594977276089026576548685286450403638225950754563648368495899967728713907890328747784373754661414207507277310969053933003805716216260441553660322943213401958126566184951481974855483802438797239343188652108551957181515055006541375640273498066855171285528732011051896690692246978390848357036780772063113630130940473304725700551067013284920284841305766244420035622305404434046226943079187568181861242396543243234217400290768742655733692420556511767049995770602571535068468437184350508724790140058505788635275358913618373250822742607515152812060958954224163409171651383711988144418963376567111178083878424604659541848981820996636141879838270794889152383827214675195533387979235471219957744189409221714364444720996063290064109705814944833286864547656899485027888079505239657922873022127977027712877208494929180875374521182568149733204590367377370524380815451165005274100330241559474396004336987890241189435898815756277330216518704933128952805154713583832642690116189595869473212410413802079480646306160034762342100405603102604069778379391040489117166644858831320509822462610114876706500436561045995367614302685347222962163730455090578554612979534489732267484666736110678248609572965095563990966424345048576068930953887029752945443374454996143581951321508048139586916538193305042001265804265264893403603163265699580893359143629060475807771173100354818637614986500089460969850184925547603651454904196806838986392098823744785854519232323817025717166993414299007846590627551019777684832385656684204555392405578218043227514776359299754303842607281523629187001589108320004880810495721828229326250363092096129774710294368592439749171438973964087013786883879276088459258242294710796284982654283068143850562852077395539078941042445681293614831230906986209164528296478070411789880639196552377624421511517118806759514590133883827990350460313978595917617864201250018586030400792196676818145361180775173772541801631638981167591944781923513464099511905792186440904722135460235980665209939761691802415068189328404843734379744303195080338835849841257126850390091893951345505846715349704370574260952368624981954955141671961166384879540204846974614524061356100560378555341283670652294114857957419685799690867579759259511819782598139856329515459884063366541265074407006979021573823031339883452272973207712473179130962454480129329564936575999143420543951292402457437447968092311062961636985916017869793706411537235290901817186143211363805598418579138520081184547218194792323810043537633212820800031693197757265764283210968078747214688500260961684750597038507234185063277486124486517745260566832636875264795304823637242935479933202797405016361800404772847144280495082106067520635352996202685309545588359015483026676329241306567821091445309166650647988697448273080152225220139498665793912514825985680503033171790929545921340316797506081659664711375981526116680492917217375379074801669377186496834247898968053585225081980664189227706351742334973513054927321230442565607060823859555529340990201349220559838990901504154155353964022153469234073022142397575281091925111547329011646832774430681222413226358685663725856344961272099539777370263924349048813462943188781883552686862748511751295688806338534911634931321552885228174836002623112586744345438571347883299619749592026368229166913434851657270981539830609958947854816353766011632533139813967807450207208123518478238386674024935721081483013531019333018101144869630411275223626354321648271920464562705655201723544087653645248296247545176159003161308460184668894009476399075836170762993387028035312449219318783514381475965764481261885536036628201842460046683800770590489738855010029693613763377004541600294041821641645911553288051847418556575654534038253282183811390180498250561650125244680885376940525391380418381866634186480699217448233843725818039072049530879148442231293240796087953401935313984464914342851173631649674483503966061912426838153241690459918021124311946690615718414984485436308142534382514378839222937049165565144100502500112727442539681222033382260681772463759648529240449045345531789792186313201874440255822617061393328641806527861086242886099147759294136422574751262386328551533889347004686525433049021786144497944618784842602035795736221360674268294123500496571718272844404549726958292898054135908722034221246593397967373717893881152113243801016774857082482879640071400468624987964525437562953652259280287900805195555923297838697193987158221381502012156785571238941703927446872078313710627094869317842899781988107901990984617084275417700852596633490815468340602860413578748706614574425875685870586555696747183664280869087148836430161814260759097554471306627011697398439406300639400170461509296578939764995522773645878877909144496842118477203744673083901743264101867552841429137155364318125708222276866629711001825618668403591460954253713744085252591329474068111565503415524361536935578690312691423725390042442803525006438044864455409065702824711333211170049454471110069432595269229716205996232701306740605450496088668355887635050667167721966830608502631697583215607985541647378243195100783671018337135440074817678724297053537725581323101672337935439803108082614603021099768363770629029711921074446692317158080534420341601697482972995037465568214126887728704737337466992087505769623409733927545728506869788047564006143432535938446639302947894530680807507557615606644190995484959229068270474188040001571391912129407453589927241316209053278175586330257713804015896362676059857069292968615929591620949379084281982885229834250118988127792228448489344226678432437657164724819555739251758954978251158329197418141285980317317790879747162962975510667277807308108736727370528624238507365392849342804203291179137344362255428559223522687787755487142928527227035913566810420256763277731110377824423518049636315027657139725854227432032319262603158186977295814657119871175368226180521139321490610258326087884225589203472726616532617362097649331214726373441401169302262581882250195295795515576112249519395359095843106527122453816176539064571048376738459199313912733631506638909842986095752308904891889103839233709474741375491391461032118543072631123168165226062562014371341752300972244714078652625952815600920431788218930924791892752989103871998550022741115884173112562246193315848890008065612723598339019856904658583855256983982892684590575286179281453875498510275943544795323000757711862517911207884132321592458949229597978874958740582279550799124693228990246827256386609353298302495313520326510824428714918245993896703786025765495864506564359764733584830105476133038833123400128459768458310812731292731951032414304560191061333090931873497173787716588131992383730241235667764359476137846227171391732459470166529067584560073221500816403470606822222878603502935188825722392345172262866298724665530843876707975315455284073332255993769393064433927217056095325376883822335934906307711464464727840467775974114977343350904101202937133021431523463494997769505681322588355802831135950486289875792035032323293710795781890884262722189323865456083828811483583558400595175432858751121664591690760981454518792613377805241933771291224890505270204898671723278265300790604150766828025470872356712655679694482453091871965842311123861093733767396731228483072852101524741579683978697765055099589185537087662276286351862499317819254842953454574966386319340573592116139697581780140763910336749280613749092179385070606386306540524722627351663289266122700460439708955244348343270436883373375989175992117920300624279905252683270210262241779665228462340606237262714247467410201749449127522431126444177218247469608881575567167062718624859029938877180795467689072049386975457602935187511636328987865919605577270985359959214016263611468904209108426796410224599350926828317660879920659551833287945323498535432777080400434630559550804254179239922091647067530470709878308437597271765012469766494327670769375050373009585113860435646778541680526049845616716374308354684254557964174797475258939245007397712032001553078139447186802835844994082994694793000061053785068325863446932517493897222273511673824937025606370978017494378496511295250799606011599442416810494142048016955871566604716211141374209125107745488063038861863157504071789977098480607937898035521045197455042440583490085989912615876461583729082353303097813481383197119656922846950795722904261742715164943099206156807226868555275632914102425714204965625334759699542997558027363346783162054166786187879320368449270174099061488723778809183181359504193823453029626181679566039058760367405774791842783476212465167586974493182379039970520282707508525534865836148156596219417518101901100640381223020878262879173695995127766812287928343624999771359208922142675807820983459820067267505771206496187651069399796671969113684154702574074793935931513470903163940861306253905964714033369106717652613929181871968616222585236996083632127640293429391829977291102232005545112783943356797352343124776856876465725472577711224518210389016338088528233878523124672463547825768733065292178390547396748234493171558601322979966975648135994952821520367428134144207644391436523452085536889625941862346728964358587156347071701556429700740437082982806991821391621107407895701401132994567507725840581646299521569986825794335355166141080527911040911811067892187844284062695405710157492481493668098209030812955146057331136545834054068898528563573569650777423066981752943617379799628589593001146158604708793576638524809095008739763498636649500106810636863183581847462137608824921376955686695512805031884315920189757705395125795452628118104598737264352042249109960316402547957512145676763669339560486906285185467345861428410256096256535729827421620511565728250264477520128292754902540430914167698015178176179810748966371310233981016662460772382306375886051445459619581636521604509486912673760978101314711883861800835849720464383635624947924255815949524004039399133363959839255139919270590062014525860028688387288447768888829548337919087795800767806850452753939372823946415347928198018116735597937896618605361547532933711167816857685481868680802140065079488867761624717075109439560390000953026412502979149215274045006433660946301569562451731335833835592087511860743895100298740065958000607648867922514590652894423362452423257084541764564125420100346418265045682502786632798614233119944550022412600599082023915676529793555537560837422679339750628782139689734721184821417005713193065712433741246091981232025428623243662807702504874156828422861591859694130349069195492968792396418252368660623774041078075434974239618409673291678427591506289970584302775294882408311120423065312375634780995305837429778118822727200524287079947978114725845473634550177730913712061575115426239422009706617295880552833486772229018031390869163686083847867354532910482872245235872426971311926040112502873110155583296952831013468008316194174104814813965251349256092082751851426923591528738124566204335572623335037900199399859546820004374480483682367054145189612312826937099701395741563396841042219383861766774864836311242826417560631744505867965034841398400947982141512329021069133786698792050200510617866517305475897249461488967187513619812320735483125945777438631121927829958434165989243262211433126613168123171792438512238137812070963551709526287432903335804753077230074319461498580743630761466890392599004762087864565162998505865799367098883351443357344633577388491533297531988834056753385783518947301298775112769383832719520835068954884560311403955524465653049899771015251709478357158095174821076553434887727922493650046436946754188489580043663278853438546868776328347293099765468994835852129296102319745105427846620237624184255964503043628583342203625562042346398013289546851090001093198716557346356589842541465828283384580027242571289048937122966075555187683193554787343560288340840798981809637578673956492027860658873595553476275819073835641860127128695797676789637228067621443466218725003072192445445244429070572954340231658327585383090904855796827666090773363923505307043662357284928973890147165258926890137797114441464934194738295055373667281730808650271967031328194537976196258840871633772813947647627026086904276593421145694017129388673772628836573442163811732499854412383226612128062714709566752802596198041372184869837807750650613298624492533995361635387641441435053886196969770917921552120666336725998668570170297655625139099814803562851779964561489225828979670118831823865644379450833367171199222829194403412623387180576790656180904839281503496269192797095543147140784319032549067111221599992991372260001276198606682533313563712546742685096336922921751693703897991573225301011269221238446353965012883456241727788950648068140701860991765365956401499221925792899563355630108560959545771352064032470197285449938355959348685318481808721359330951093831462232047087349156867272084429265395479838465649683625850430206217955225675974581026828412702706492468244340189061631852875548252315055826025323360505614364017729018512952867759340985613221623704921081623634288427931691502688691059387947569386002916519842026391041917327846775337771266903885975536329226724642080504017507183189410548346917913669054854083209662121850146900689083770488317756220211033326334134542961959819233864522485404268366590476228057017282471994874977503403822133112670868552158874604843881669034522326300726940841301121626671230333423382630096582581838652652238252795273869325143329403876542330527237827148378593080098540570094197466974388415819021092705049589478929231158267727911767364646194512937591610139333700944119311048977062181808051604996847995771890389310980660109119360209419941651045236731760193077310390940192095207688734378473218151631630520011178430585019761178841744762817230436027028651545619623550204070011113653639242149799220680673617753596568054721696732495694331820205498476085414173851594630307187171359326475360543197272808057708599725760325359251236917898147158579635107955599334475176291017948530281009399056278330749029282152029579421926819699159410771262036188996896352674010302906266672357093587047337563362838115216508871549001340185891616259520842280787645461458895711211177106764732641019451423524461853789789388106315543222923846936304967437402414305949124645022131001462391718901456669623059407548259618234823811126551206807183853868238244481415482845891053866754681305904524926341879681791272055809914184642283742565510172196171061165044406644132972754334545897240240902056968151923035469595801125773968139841220378163193451905961252697983596380352071464612062896771703776293909000020283735798388163066973112288527353561858577137452354246573762134013688385216261373703342430105962156619153580125282067904482856717647356730421295181589871847906199926310999893946812571951416730549577708882695797389244463507941154330501592550584477630291516430145619474886966864922184131238999412542892607538157806397166630841778461591244390068476581258054197356623535816002661343609414711795374758616485641731683788084966137713396133093078661329135367558768736449737645374016136439770834722813541763041158994249927198248984800514082059241826263190700884067686875178345821537992055976254353511334417125002555379143155954612340202746927034189345221164222092558245944038729189754616753676005907532216485032440823269984816143718418829158641742180892179641977815171354496620412521068153145918270696246287456576187552815687605101507164940444160982958614763335816827389067410881901821185852908127678600637804725379552027383779169463152374551109542310050941675206793890990598014688665923497374472877073705338136105517303175077900723564734671856925415768548778473357041411375889399147342224106169495915024385865937683454453897065711247826098266074417810388042482644607573148665223185623124832749849817087720697787402575609346345521742392473183277090125816581358605321416558121338892266262650810228990254572951786505791589653113600454004829535484006730769477375477585524442352343537354661063719987090908638891751811039338715194027557718362218345517598417171972241360063143658593752626153270028145869180709018704918482440075823348387906904454041611471893069770791827190085696094032845838833110250226819560209948720953079146406441064851026758481661951464946184058821710079589652898794249865679800963151833947391630495011345507181171604881993734730622601079890871677422336125115647440740611205731110380431142334518910802681488844497082640484364616206168439401755574686108053505502569113846977001367736303904280582695304451861503674965942130737747275107398676892109431128646139066432649860287317766961755171407030475419866061178745226038535987823521467660468384995525954763239923624279373906526708148603537590247541876781769283266331500453212848666117570923316528081035533808782116258930875904068450868834465479034494329483393114350248997540659954883117951688840440121550966270205493609223270521968250123417827070201838252138045761086421372548767816782181122514723685995088484495259671667488598975626016195253086464582665545340582102752894679959344957813615444872324509746652649619385686631376258906545525056383876837816810380135072010317099399232957420943189427220655243121722649785454494930107972909572884265185479349172802742536600010914242902405937879397860432795629424441380280566398279822463438007966785483819758843387345886432198510703124622551692950490667593888868864340464809700611548061770767387100033424607202344611330974419507638273881107961932936426189682352034064388975443302230973257789771503153546758563306834304563248378755320769048579287034777945480712538497747195221719802589656020073859028866619188669110933806577923415772052568209071840507331066330194177310850737312822622488108665119176644819633451281259383407424925231393265807574303430030548272131282449540354081499702916841793403185474806784158433364473303415786014649411356496585986723373200692673898767045896781224197920979335981156229169550901744395561517662384704508612383213240596698503148711813476358211590287621920589282059370419346273913643163196981472117916444223558073605209831553317733683595507448576877995036003381602334999444442767388219164060471666256703778012459003181289096769954134386282787416650712929256616167823313678428447109043377406375172031268139854308370460841355893233150914491242962626407427333373792497565800332230898125841064055169745587303470903664550528532153599715521438903935843185508501477033100614633478195023591571204528204697324927030366461402690938557776758435587188772988271645638852216828728576728219032875514634278104116648499378612175900029711846649820256367746804167172092396775579325957612857707186657418391623038582479268425431336273343787514771785032131546665951458464942760032170378426522392276245029085637620345317533030046454258569898819943507865420346674856716828021610675651020100379108019684206396474717118698450614638899779251308579914448915666996907976463378034133937266631765930265768537338076058212943285827409181337833939551823101905247938164924020431177163669089103575035617681109693220194043446328147312742600746953655159760252943843945626987585528944676415591226026881750959218751842665247911256705420514482892847196078259484660034374827898485093860149648777860076667333783650086189301689197096185908199190660695109964729248907177857434679843063958627838617297412011716055287925553525649035980378347072674199484003011568646016864499485904774517067381582103607165196365388292044584039035369845783154931457179522329135736195184951410562548573206685778872961764613739088358024286690771039662099072168017839694646019760100583810788019989244770731145990467144926717419299332739833735808257426754030366065175064955807954830092139609286749457375668305876329570947992667967186693275826061529725648834688895245491621216332362863952307383824026701287907387588906297852396422892161114209017057164917995193606120276598792698190208868070322967371238935339292601848783275468193414250377621965578001609614234976431919982951852706326752125766321687987354008774848534868022223741903942759915058731724082430239112603231850457650256889633896977310403585095450412897076002194776379331924677829857193120672698111058898404829364356782853240511943820139372342904970036686418976214953181601771819386142318624112183583126073072347730304023248913753773670951297258593817932930621056437993848823764935263381551655246234035414525846990616903716306610127474419075214174637212655587991346883529117082688064776451947639016337815946273958496338436778145907651745373898581461013815925789679201919493353400445289107582815458134973234561776265080964108638641355941439711445282839491151143083872182737028517167859431757930663571868303178074868588307480394633529576772800379792748424032060417010547617395330996087920208488663037945056753641495086914701977609885646879449923101599375000824727974831888455639739746888424505241253827973457059648783575080248823217393238978250117089501988508575018698502737462867726581893919063849125399254918177764045788637672219650214993708177692956067167990583834255266560434771886737260831254248342656091739308681901695225574227275265841563817420817186067832557518298368447492098738447933003688067243622939516421272980863308247957890920873465201898199502064317554432498209222059369016142745529916957884292267602854305814637542996479084336528211316228439689606371824166743820524930091563271243510435526960289182984112568408072910398888974211269233647033503069014491652224619907591112224210447030824674494660294524955084720625494973442602744403298834853918911024177940474218034053334725414062128429385930588142883852866055795466105955195124039150575796502554439884469450030496291454048997497096397136198105952118691317900504940314259399560820542085730524276457159339073993950887130585008422711612882055026781613099469936007273889324097964456194972108258910749335141371830852766825786251617253716642699612194463745051270841179237296669533263641551474666342306791412282792320406934299540966889183493692536893608574355806612522497383138502628275209166109074222406195626701968018616197328361588495223681452122892956934498399510681205758769717670216010354831558038096864670943443126739815094512549358311126651646375493977160854885312548924287939238968604789532532245837202429685073338694038892693960006959504264534632046239300621520704950914239191159895104735766369131595164140210423461911359850035393114130338891872824082483874332652426268585438818122672826191739220538017098405749485138380108564808433098454504187327134428562278193252033050248062377565755525132161736652581472286949725782066238971507190938599714608922751994763579432258518946010452743909213425096522248799659980145696748196585255995171658574586835362553993072199362502946297990146776987077359573251275252226318175162780292708456008206711126251623026353275249090416160456039447099121777631724141065067379907081076144139595737085561950998584517432907189206719675669214892502027842089038226938382682526093917529382892138454374547050910438507663436537735993097025564353640540060299083276429321099727223169947248769950707740734988758691212346523750990460109225785027326554133501309221481071141639109273291828682612375435987936981849010809317508431061491316356556063802959572756826457515999358168342608091005137750484108746569504839673591079706129164875465178806202197690397863847327394633348098844713756300724956111022662224883275607765830805638995255367177488424564396042743400861572753827276350714860106470552011640659068180191984573307899220391076549629566111421831290835026288212874667045391119651776261436211272198204440380781515818296408740621067177997267314839604092594426532344639105557824548474759605941316484971436747889409560117505715707543634020906698843914271094776775686725158916495878215352844026086224496630895387357462215329466108753441751509327855114428871188221490100741521172484334598192983514761028938974063408805487402503992330767251384657377819334903685111715245630608823556749212438025882938359198024283583304274540920960966834550721405216256935785129723581736589953595999493378830696496893040983146237480108601963731536741147789139932258464263234928320937583771146712833877362104338834112488663791933744310287257975472574733158673533286578095256999289800301429984355648040091544847718202416611271121958761818134489983950130549275479861739613133485818730362470403729530864268662960204295689310962405286451820437638891232283617450250645688155827912797324302801809179369958465765215560301740717375110989811448929678779990922199095999676500836548780616554925494192192150861282983468758043539924183972015103884844985086550431371263428057234148654109041140149592482102558683945959245824861970001612489058208620888935499314495757763212423508000770109593118490613251730250079014972628380690170213644834216251950221658361539706112044840200483091706294295295516529373873280656438946586167647210692416045518770327094793220497115075863020558495501844145798635518209226158536896183550250161056633371311949031211044430374855427607317269570626595373150345345976114824116621818219885760820321669242172654948208502127068582300511105324372757153034936106192376120888818817860370341451882964493743950995376532715266755921379339946624507655337957957610785341094541578836478795265478689695099891652512149724127168181936690716465494705422427351412709768389084390364206039596218813641716053155744856659460348876974641850000791681182133003112952250863638762236998826015456447140917732043238915844063895981271477169568601236268281320467723954707867984602026796203000632637213834273211015340855656826095513338557636298478727426612872933985965346841931353752707215589916783879648330373413001587834672278314153495797429160974343050189508999391494084500507418264799273415014462917621211397583155762693892628295374802465070417563297788252653144112169316522219441357397938891330902666941088102782184735166354620237651602247982923998463197192381890152978056734756535054044801561047620855205038192750197164597986732842792741117900420789736402376485815179896821087853034397094676817500850052342583829712689114313204218789698771749337209134463949085599270759155030878543587550199867392229143420695138557143260756032598973659723074620493412887614204123629348226124000661626109219272961338491439211641177660405617957808779167613911946002239909892789105651508426299625462491728430702029811158727509975471938682522236708611766663476768968729459103176873544483712920124591215981935361962881149828354929450050391981004682744509789542937346860613546964869046113594555052177614877149584213108616680131375807558855917667943469854893006365400546291934532642941858740727094490383608834022237649112018455678975511055351107034004705820224188572526476739196104890196207890300575527898043710879654152091285775431694260895043960460057935220192977362836379753391031979631079748250843021492876173746379061952673370446177352293327996106590957175008828084874326534792340382924580280363051022220773607968078661050146080353975654886667535113600667631754351429291175297427177625240870041397514096274656676931701542026426712898355557312033768043494885371614678485940271611089448543619909190338476670416491572004951470717782159552868496359544320239481585934274888814947749218520790460541476353257132533218521662437441247193485368637863498771109601927444734952399076516622650891509475849335012573998657773244122282786569407341358558969963565535383447808432506883339061842702446385948624596944940105693795687488163376641917660511683729337554685067787282505742970605252162380580565329531736957590765047708999813389935398397295753746248891089277170029854521112372515883069163650646804734783417661182339185350750086202262719844686803927668576926805169889645409982240491536301582502096675588497975792239495166085904459861789553364926374587057223253315397892182907359243659398947568712585154312999668918065567299582911471286807941773606244049902541486374353577327225959118976305660239360145029820801815776641412410306676925864679854344192025361371724886985820347007965779866519622020261372588125427433712117925456143286825053833527238145682102155874348456168440313315156717382421356089881271508778963776821209932209852803000921302845206220400435267480078553124539999727541522049904374171119552920331621441006241389735385106573698530114733603357895926313102209637211690231109762306001098960756361904264898274634577265349048715861417337302384070590459015726418107426891220979644538497794102226993520569198336863311265589896557135898673242902484911580217980210331924331639189130782749696986351583189771349962705995004273076932923497876074127772171189188579506014236379763608488210186987013737245118482992177590331758446081638332883090310199187610587206675172289410512186863412552625087877284459974892490767336087111469163021513268368284157828317725646583323662602020745323113775988719115045713275260932799670824361528083281676134732075722802404309131833967873980299166779233618190332643926881743726564912795394461153442415459658130609422703430440784410408658012581495512373627796340127793937645649896980041294542180445101952256338754039054181893728164820570065010518568245392861010565234233335949638380449965033467801510154842137046935738598023678540355122527638935715305758124179459592174963293226436971998557234620574167352803756698136525756362148590220897745881350864594008633671134677944943004032835913087240755783079155525741925137642557822380318477655143586289096108871119026524288142630557471470732142861113854385698517022842362700369835445715635329492633194431517624164637434202263890143045958545126763950718943788213004469003583843100376455778970005634038834515170132085709360261510655430965703158139930828956805519962647326603105279309685410670534258496927112059913702556123251126593020436492297551327822452083234495672777670510332273018044025330736505852236028365921515293259825914637028190426434264145343324315771692657999014260021266776588502453935127474183425638601789989333012439342676515073857626041323729541674918015825388335738793611472749936749771766736016874557478564470734955059035210566275185999910451711205011531207479492096338417741056495910422568494234591373600984661876068891989157807244521483039464000716236038531292615175028000428066048246857354278388591050615440059879775105115722342199735196996579935675480521321933881402695336363190346616947757215154734031885505946456195337841771447833918768976555393416262852654926763309165151601693153535061820211186724829024848697817856032145257458481889653046307753596058538018084729357182771726867014869268682929331702857811808716631893834171277556330384441153919870445782223401292054886247709334530357026059377408991005645708371886601942540481144495287471722915056593877347825038691531488588024339353504889919593804052815183064794759813899675336526628262872352926849187859443529185728533547181869818221030160084874156405391916521446545799404534930473713084955991016641226412392994282096997667555710771895892395698159250587355902509848849138267040876420747046888204841284199523502078882194787821269677069615387529911074910349025602802428595143199769340690830701527881084964901417186029129566162473407197968451547820904910116419528587644431783065110580445259532795872264953027201881660607918088318851304694289901212656117028611836442698214403997027028349449465241559326924432529679423138921228669019929749380496782485465000565219994254873507562217196675605585170399508722426914658606785708714135264321076816917432759025556196749956291090891214809341057224406769552298090796926665362442513528264287494454074606210821580414938523399044169237248961519615309107575157936293535270059156529225361558890327175931228014491021745547748420694812756750970369103442475135758593541005567024113038508285846778220630677469296016905992104066640386159286578052801889123440861987920641473777231028057335496644514062887997813083749674329630685814854643917534935646231906937512784917869979271706939351046353113729744494377005725806806137185750360126552395387984548889364117454313224930598576040352291027444151534552075162269258773123933349945619206643741100010027150032217078055702814029693237134423805066816940621498213730011122505103234446175946694301277407069069424582195107743806336406399910896360818210728405000542148007538523449067451484155066561249443551354165314587027157076552261384735360388847408277548040325941194748527522907007223270464423181085165220160559001473145950461096586164561840286544462542946304136932829976713485043458634244170475025434832775726453148070456892756694792645116788100633030593594110801870400789407937425965043659941910163658742470345570217100708360665598208978576688345454423100734394877621184428093812635883732321433543730389414391108770745928464433193446213198140419521970246710248047877608857172875152686419354788555637605178213042944330906998213530230173270196329272018589043252495985829079071137432827962593784790815147687505956216822798602824061169716279603251001548700306524956522549700433627723732344380526835599225590165061502386930550614873641984492360950649215967742404716099570751139957516420921117694900757879723731047216891880833827141823068400507660879985067242365956057166501007586380993128669974549448863562036677371970589233890493342640431052261176022352043388898935411826284242517883402981247480253046261756027665316991576463224309254967507644878515537023277998328212024943294473046044941735459246699208341272966911305207588828150892846778153830964209272655983571888396502935091038194203819363303186952116129428273343891708473874643596791935136562416284667071772276719490690663004113097650583074493719525358656021677786246670433830871262118106363391938327315536811768309488347324725386930117609239334078471514134507360268894899693715576319981327011983764678729863939299766337192521269299344510816101456078618175372986259039592102438534021228094571598016334695608022027830480633145870917922371611647467552940169440778281191865849111818027999733560641617573420470634483454605807965968073164154399527121913311144994791434616362526146196339218197632534405217260871074709480758477165553782131770281351333408143114842731864072255836354957525934334286317367297614047980587398160648390682904026439782494454572102442948450260026965417371112887396782583181581853413723226725128719637482874041982773327515193858973364288646560615343079627935275684221133430018342000137719308451534586619823319803662549441960497479121964261385453928372533246974949921842393802542869525863604521456468383401655452083064661834384944862340288632430192127838539461053893402587824898847182304886832797145920829837287711319551622327582096828642734915886496606268765331929517768031542321936475980420019742639455637266998481734173317381579590775255804792805483876048028620412650413002086300542847093712283592861064304953924794389820330122679762253880427998330014646160797726384341476793638939683762925662868770851734607212973938957724082610228415746430054057274434758412905505568413497149964742506247314710108504373890735814868929372596221577653258808928908408671633866718745048063997212361822681555636180615053047586956579205250883345980510066490067241255852269316541419381366611134889975916529575896941765093641635365062159747747123263283667253714334830666243519856334156939619171998595815661405057264771487193941696515130489401593027607907054266801352824184315236525891769215771711005167878768261547563606068176924898885914737132038058628873380307971136246101642251019065374353472761957752328788035016012769680762807979769731079946565460991714793992945258719089282263841682665717805513983948502582413166784806548781895081344222691558532972470351079476403422067758159318961475736469465017901185480647525648622592777707151881585263986134861646921202973969734312882501327051854524342126933427580990089362720110238360861630586012355649486454630369205073245535952856120252859751078998301767604709406143852417826353256521611782542960605789420675443926712752899954533023413764276023365914837198970708541613774676263687760277029014629301329257526258951196704714641458087271325639877784196345120488203818331487827147437863026123997339730776809345570807204453559180250324138433886190087833195572936044725008028427361216872435416874019264567890721933402833144118800256897753892609929355642393411787576293865534176586390954596597778927698645408017537165692747680355741382610832625162386254315624401696726784550994318078772774618584717238623319386737698260718896645284211410284772603651911724179117599693104533269935990934733074963723462418975677994412935167780330452525429756035271566665925687786852009394955204905439542776019468030069225303774441826568336010778664127542880881919916017550561662403762711539266358894085637531846590833686147120325725138297478607417735411839316741169969616846573582052657295763573693703171672699157285898396632722462489514486200476356632429213233614115628523322292034827942820406856327848191769644150257676089705878042608751897900139218181668449735869115256380714093664461410136523203270204846241990368604915244927342665686787198731275625056091132877042362232825953967354113959496896585048833054028870763979224099488291838075899183741769435136271869448501174942010865394899451794732283037375339763771083740356273632536760374764386741938349745397619260733856987581108788530389194694109151248909151404297268779119753502111325488437455259505770508080962438996854952537528492906536833890545869909077508904483643296484675514055563595028485313412460321111596349929354061466448358232605648810025786818608432595765876525965911173448756405004123399339316210012655503998070237554380154471235188828838270086606642790706844614091239544468264656941598461823424703104669783317277708914671399310711697317689481626336869830561128540397928559733611007978718154880900498250143592329664594521995448249551311948980524643955541003801893272985620886656112263523175290381945137821549585952483092083142607864205191573721925581309823953844884183305064583250620560343190948015420545785831412161053880854938606844003745020237612498973612097290049613240715466904210751048813101400284501697245921953621037599370348626342840535847221584194229598541781600007788610961017171472271715622073280226878742646173337471055835487398944522210478688793190424690238173500127170778519650863005009577560768301244699452072755106735445866081336586343525730983212448853415638226342731515355274832599483624205578364943799927134521529615104410177982523418624051260687914299593227341290262123799393581884390871006176697385942345900735785417123296362383543500209721682868682059614339562537554699769033736957605428473876021927844787934446129295594189670241769146640571770209775989520329261915031092212190113027605871224649572336300979976529025374867176847531744778134469602592323614333584840296556467982218717593890443875006767134823096260478474847958488017914897361413431866121202287414479224590395294422887605472852627311342424362754603464270142064808713377282379398405847346391039016270300304978196021846932697430392897638231870840395965823309638962876947325050869097603990443729955515824695557373183722341599456448639383471585797513248756104965401942546141077190646405707094342088872085589149593386022721203678975326701849246974543592474924339480880467646885948904883052516747955181065233565238811938047965517637514945559973367284609907749818831157739402350090600582839693162423053440624592575304048125083575538428665357783743000051399228527844082982189053378745123349975988661991128808880678067134993957391436084746761768484681623276815198844566726165291803053703323823175310695689457345226147422630483939971313082060711270599628788746457919064986797995900012796906852077818511825144783756693959319950312450990076815488294700899810059682696034403834265117538046534216027127003267639631169140965934013409818192013897918062318266347735970954400352274689618060836792811016506329481321699891417243143165095419632594077591525261664005796898963456168113385933654729175830447331690889056187431646513665901731549975071372083609622593474769187378830990236164265507536007859351620384851268435999224439686551940488998363065885716294907504691942971676748436555375998179636925557413176530821074710474545798549226066895676478899322587917785920504148523481950990920822935422382418779146303475467398612659494117492895011042717413169652902326049652419241566338650553732320446415932248931990684573798272374115571581810884733130947973061323485259765265801163688791917109671716105079211745264058942209894823917004827798859482437221185463665407984981579093331052601279987918399476207019686436374123185461011025765835525566014018592296376674759479665598638080553940968668701436763115365102587840715422420230101949184062110912379534852039990306011262672627849301241903218489779160007812630129272599657731875027436624880838120589862148210494970245170675267534899751879101021508746068533242309017979628534178715192830376334230996468923307639180440369330637448934567437070948785170557144411103281859002200488925026080513669869962909533366935498307299262512815488719371611136412829181831470960925399281610519158672544430215064815752046891643206399313317206620165536262737512649979069940107283875619833593888662090231050656560208636835330863447590487177595590498564293254633904261815309383255124938344766509432298093223071315920864179666271955695706030580511002719993382845373056595395370463318014105464725523205459115133968119191534455680456674824008860805348380585864230573763560750983343392119581244177004340351657882957986846949808377070588065510318008907165916126064030548256161966746277217870905551562380862433896207865342466828885551710589167421704873259100242928084599578659109761021761923399497735002712282144192664765796511575307858785746329909148543179522400345064675093701178417011594995814040237519523472556981298964855607100240495883716306309696958872024194880283382060115769373911728036591501788560787213103722676445798246492710934178417919818746989242002925317461847811743483962082623687466808035717967892170623572769613246749298310934835899096726099641268819425774608579877297946835154994086700200200480236487437273966853621233441624904416349330562568528788036294354576737308509880254816370578416706404998981487521881334834045482020905282724027430458209020254273093658489145593764073123786442498187086642651293452810904290468586402263788697514851514978788058177359707756755895509766222490979203191465558728261243148287523149330558336968118624154104613185122491931126453927278895326870028534650843614862838223121144836775253266760878952445021104342057594501675168551249878361220876954601874006860380453922326897010389291545839822002083113700149087005525203654684631203169401579620101052686175543556925518509917278764295332419550359625901605115473572167992789269873785947056887434642524011167214618047867234404898119442217933283359528209116297128244212931394830315134812452020893118442592749072905425729381326661800616607883886269315019241077902585334576022079811022556485394153763018942919492897463363567109327716692119462489331447458547863639953387156665440729774563389026044177407331408327416177816433962280053812807699364298342042920941924658891723468953606992324780226604081452468400989567598330811600219341469308711616789319525500145765355621400946251807188285859342640514753988763017830096694319209541317627977801688733963898653042304686272626109405504391151470803512980261131644865554427366053586608691306847159478568985371923883032135953904784869441370541988647660274243086752479164233992403654000305581788660625523356619001140824342877930241712139977771243208760145523118684925649111938782368967210306449296723929128853779849354193746769365250031825214649816440989374262861956890284777345515292782510459206740854363274152479393467544818458749228396324792482990396192917818118534371306606564221119012832917406570829289917247083464856581252826130409793912644915957654309057378091114751656700695300816161984829270463784697139267787053757471033311807910829252604124611364957591809206600608019781280892735924874197578255129894828286938826727640285753021676656803712617488348560434453030732966074234628073005082851623051931550913769411461629280323465672914706989762230247535177493035127660055972648801094473392079792807968243936599379420325322971622808799066908729011316571251586587943536984093261500636679893196278916520355676949074345913339304001554341242339927173192804053476343804372730549502927102165387653870991496411098578475608360918828960677217763285345750605832639688898787926442216892846805744215093645614639282699768325123032307518504880715314746159109885827459738366344100811589370012455017100486934555156617978891956797147511599453445950493967175178560481001900978170509044127465887291148990160814940573571221842920344602192697418277989646252893926675056326091814582099630845617281850561606315281312752068377335613254376800839071090469252476249532078134085255134830093731597563539648078104761447240150889243456761235179162520319426292583962724351943536131234265777732041880473110045695084359657480921776174117653875484265105459323510888369262403602792973820616215350721956803358501082854018518170496065992316314732909220009827404428719808526509808157858992012350027299522040632680140030295830330924952056099887763120201118473573412029207240686049148516820347971596176973439195128857623357974195144938684041286935022698453351601008303320905516913754060569487252103031561067577926001481132496389813782655967627478862392222789429694271723710639708766634053585466445063334905644815399545580253120067155048601523293776071098758408776428463443807616286905654259332423667320837158794186520127857900354795038674518046077252633578134637743615245044194247674014199152482858852950567447721246440374215926614399720557275785570566375593060875977530132305440179545448695100171863952333848524967176509689636346860759357468850041435585550983767150351601393500267331890156223872046433447300613791683099436583048679700035453677699730455336502772354684095147309159311183099883047757124551517146013664535080512708185082794294206190538426183127755324811025013652977226521339983997599901806326137126497008031923535455142675636981862772203084388835758992344630358771713196942573629371975212036872936302964120107140507667726900745821217853378435570416412213398396781625135242616525338465472247907829413756379106009361836702062038287463017150900941304866606517721310884174248665637076286905570843277538196520814219491070875014362247151110248491659434633774243935482458430775761794206242034568581531128406386630023171838128729516340155585393709936656000943626961117549550673023027509866036272055754749768500169225363896604075781838174695150027836314145314040038378045876078825888589927241890429691991941072545109440946389710171486895208457937853488377081477381340425460910911757536207302155884466949661250431128604043202133900237274091201380462721812798857339074209464079816749497831308736364134718757597514435779635306484650511684025295133950720651023446109757504808008008269885633856929567483675569124173648387598230102086120271391865410767222992657795647869429236649043691335422131897004464954668022502009855793814919810305594609812554326748370785954101092025637786253623470311808704565301026754227374001629096045326007389621499622400570862084851910810985866218872089418370146071492213559764732692734689458321289954707681457690146782413450277351958319847295055049318000948067841912801793725374073240533438474184596131192235867998092392261644699057381512149644023126664768888335589318095390849169325770459089864944352381963066046344526851409288085455785182878643803918187622444070115866336653512629524018724025573676352752645267407234781636227725003356501073922611735647771831811776722006039564837669122432710957200385736550998910418189488230878042709204776262342705968735142639285903081411553315464932609919392419556976914885136341587195681612011686023829588786065063938208900069910906537743388221780317573266775690907070404312646885823104889016777355933603030888183990187669685108260187890218788287771367512606935064277156665871274429920472923915297562498036614158885762154595289210389442195473275239083684290358784633517025890219182252084001409563684456698673610472022777393863404325333642346810905242898100080041423909764203695975154051630520718262445200660893208136141461548868505906017321512012149268541683910480676116048846078213502651996283827349663651004085754638235812174589580961742390628754291115787555985450866959688809141217113896875421456181941828067784090841329057705691037662197424024755065911837502994015425823474432697176558086469128659903333171114014774692960656523653966841252154564689303907403703768947081661160385919573991735652127303796760848797263229695436178737111325232634782403536912845794336150956959343484331165953897619083948525545504981389763339809109627557587707348511410285179162518013102383850166792617099661692572726972204047398695787912699891966888192317498623411357111854882496521553307310695320403385051194041179929957255479637452254860785735857363546663161288576149932120123943816782010255511633350604192895069773784691480334597101855379190061817028512083200536480091854028585741713248661999462632150181275568232907279107789206315969352351947406724000553551178392650925921300725606948929979662175035320709096802726064729702167195348518283422330380643430548040098405142422822546881154375071645280964705499682385618993730755364554007837823172563348297488035531107080596366342667395446916757915341456363198767174406408426241228206866014563905250560541211332612588974208875532455230268202924769498777162573239096230952747907844648313326116532236296149796966936531926847025882132048267003538676140563890639969642169461178815107441961236001043718942286039547716378312975411554371177489653773122398160404102453055214513623842682879464020784648664864624693816239147163406433099708325196009317239618960170003797465574189913118340583431158267640133394635844188773458092154220728409847057607989156459166691528826218251796472610212456474842001317150295907234100889789264779895342849887936563127281142229103713566067604817663432493662984252982489389176162051540562051123001217129132609021292333412658377857900855165858481842149663903406264001447650173670209489354317072548666408910038421750965980668628213433410403249035071092621279893375743041355490917409872331416021086529513125455645132199655989850578093672874701198286353901402573265909812979107399277840793030945497328497370371935987329121162637699885963697317159789407150313471789687753659058004492883966670856395039246686204793259857968214279704447065479949340334446941420986282563758100370018481160150687848235864397056936900449891899981142655128743192585130505853984290278167661565950713081308117070676854558060978192721278393148223027995379347407300985222717528024689814373133707383578837502631290363880468970004981151264659962268439779268550232186294446222921528507069858087629525174485360617994079638654600860287873048976519913554046841151280882321219345380875241902296956824312161708332125458469244460180382579464870021991041894435449715676360416378525594633301565816780912819588285212798138021021814835362933055585559412041556436313048961150709413062917327718499306827353379282849473414821730830014698355335995416131358373696712801433111174751091482628603372115171357911873440613175084759215303472887636216125494971757048955344385358421911688826697353351992231373323446775146042560712853400495896975293323130906362360840619399186113109673412056132382532518404080147439253773411788066474526532585147585724290342710818640437093771468044017996051328204427670062264470756681315559045528323615142716929804385748760647327765135848649534220509027847932992760964098305027424649167195178683995876247448957487748738798479427341499580482884963193283200639007980126747132948585199979714994529322452347629174565915264202703284449305364174753067475679379841441473301272607736872496384680412106078070171314344303843525140764611158069133537371556174402447552423783546764610665941576131202433860470019748967834093282603234055958847000195420041374127745479876108497610029568266571232028852419414251160087088735523928673381531117366114458492390849665829092189530566457883847093262681766137388241784551697706158389194275078367889933105389607692171023409797507928715225997983666755251068856667379623808638409207170930478183111586756973734515634854968832296064978441023030426822080813903627895996822475317463969887847285960461631188406441913318278341339306876013298739627818886761279436456134032166952086030710044712574019397525833105113280186170302838657495783863896542437190061714412022700991550856762753306966862686954295279021641930343178084317977986549192440719307474944590762676840075481149343884028294322593361394234924642331952745641747221409637612300358908560188523599813553483985769430296381368616063407595398264182821721080887705747379677869698893076409694408049119829378258491101037449514846680133043613585520037960340106582085529116280466807801672120991054255733662410153137232882613419126745987250659138867061760813551343002670908129990719344344303666386125122106975460953202435747319192886836948021199805940235097929547529466938039993856513009029641336156137240815767171897266893454290097844627382741577738169425030172117476840794509306936993308281574817760656089946433101691015114915473542603145199092520485829409626119050627824239848631058041832435140280619754980192102443169447564745261016824860040457024315048456557833417466435007633199483300063072765233422660269776361583816692591296114340992481968220516598447913312811976825822859044821789055333483796502702397338498133892960180593846908900802340254610811133465140581517864627751578924922929563000404051546041832330848352121879481321393167622447907487154523341129220085257600136168280922225464877862544964894675655512927631758438110697414433377062147486329053219638895429972573315483099190119596577728348772934447628067196012577675593969836371612123829317003327828560884582338271614234832603373580878182376556882029265969704799913482505738904382465320009057560287817414968582643414325908961060490860267333961474776490114752825048489407999385287051589703624994501114939086750625263404406404018904747234238891974173652703790284006404888357549500284914408570570273924907266139343744128617786429146585818808837934620805994391806237686279705234383667056217587462409424000930791893847213798579478202496700065423332583081487664497132854052193688476957746682900736140172823757323423400317521190666978118634364944481557909785323389772721405206884576125212038341997191736783483409664875604313698713730441626877124680090389798978595280136867423446418264339130545521495704689595822230208462149096364631757287126651154659343198382072470453893843722749056922472269436169827366274369352873917276952876850986841582149957874444601543227820478829066347463657061779042795984338622964900864251247991831322861783538865991442950200679640851393325085982517632109127464580046855864838733380531127791496953085441646801282180158899455972159911130091445327791653546932281270126327976329168596603234693856371768811637276999230695798983437114537143399155801951106808661897363652860543884043668872548154641963569082560153807477168403482417221085386590346820856325858977697885281928872761664167405289351699333130761575217841699245049760257028055672441005211683602363856573429318204082499184448865796666897620884313975503838724453472550565389334318586158120571538515803611467928752646319905667520173032101575227485404243572219140504395319405080284271498684923816363437628248991763462809142841104438574216383282901625957558682394137593876950484206358367762168899095916149857336108414547093559196209114364443038881761868867680935488413727278618580016704179174836279103863086648831513021628146285619339338132570418917750298272628805296656734957911857266409627936016870897063600729508722103809855226624468994954583447156554793564916383474065162563983711510427732683099887007982385058816568484638759057820987874102559601051268412405648052502333970011138980557934140024565494095072764805241021787801399654585869148079106027980040944277045966193832371999858516658527859974321479808530751407017714173167248645568474721502794569961737297037272054015388456725915711409137637695440902436911867804591273382738463486557791225959660171055178001538003971741822348659839458316740712902922340142374345729851935324892856727089400249371476772028617495136472744851789320142916807791603024429917718542961137520344317152281041540568467567190256965259412060103855059962691347068376626057870243529563938103539069278908213558775386344666553479636832845520778439688850535220320039716665434846323641591289167456490779446047647015841726996554843360510853254388886180496204252976772255975157235700804116656478828155498704358853675437664461003146179275935909388293403651614242361348970865693016035386364299945441158814101232097083589932308392296438747349882163587020845794532636417629976157854139628343982196299361324671549975301272179276145100266778438043205777198590028905107292032760003219397869958928878040043748869073509240496189688121119693982539145446960335416563207088149199616193250191300329952614560946449435058623633485141647111473304123523321086048638699995165220949685545689342794514741046203840654524526118359480803230999395041410608576354223364629131716514376472018210502413469914278528302128513383322642432002171447854541148238251452259115390348126066032862480574909644181814180352472242209061981479325756674069621815159620135525652090388234129735952681399101274009949827216096812686951646361451426255496840878871338044593444788340686806343356563268369947990350759044158546975622373829647756803181396918187485402341103315080416568158959101519566397344916360077535118037167962407360056257779198285577881750571987002309867925327226894651190003362793264398159370597805487046202145175710996011792854495182927488091482721522488018040284641409340923311127171169307322064346677810978687401159847493317210676919351096517541286351468483807020854215164555937761254838441834418670429537977780228078261676192268580142441764919258239262396505567566118230276183905590860598020997487111593350763794662202451022925353414096041150553557736370102989008337749902564930060564859928530548377440562646780349552843181428257583524980424974810080758616161100735897866872561025124309195445000938034404882263306236540489924467584752203530093556604803906293258436267567887048910213307873566992914822082475858784244327735856762116990608069948996905719885043436320955074750516100450523771886957219737411308735909355837159757926244000223443542201673421564060692728720478646535860376197980509798742790779752855574363852005057324374551033722573632415498280807072187704221134710217590448474894962784717089340415616818365163124890788321918396901063253368572851717582036355178873853124928701961205012393555338692637605758785999599611897986721541036682807388640758265805441041201630783183441679690874724881060569786038609657323502775107510719222377695549031239637983558972646157769757907467708389751451746374261823251792757106505599720624253439933193055787562639532447426841231179776249222652211053363101236005144466829702660212009546037503268657682107818172014995321720725408535405518558616274694582064542068493767222850176810431011959053342091286940486228877402598388096256443600566473175832839343880015819196466256670721404338717624139404368044755763450609494686321189433385608046837085532180729818765068528116080584838705130992382664896754359547009874898116897594671586522358726116827555270297354776844475404207007589194351332718412728368584749604349575616443420393426120417499589309182136739629903471896862138297998836942462117702130652938571048341112217167611953965278697932276451558043038814996949963022208451253970163575931782983665774018934142773327846896312491248513512713333662873851848871670436485302593383326463485728614145805379238037704487423746755902613107956271870610623761816766439743826234728664308340118610835333847849702940707396402547065096511071428496796267860953746043664856065020769699879977384362874241492843046300914275002224648397424543967293050165273973633731721566015152447188826024246894151169850450641578397998391752738134953690671655449836915314943505405739448565611400752735336828469369707781988733887943490140239362663659574924362455465062538117087650829832150365702382585299540276875259631157671614422288401722901027629806439105344999967648782654902206225957035799191105633586956303748517049506902204203240951789675196417341746460222531205357628873294283521409925930387438365015068776150263152868971238398639219389100702151064430473837511738768265726090397771291978451044274968438440361858322425706021381795912417730319137641185502372647686985801466062890183046123130884434956159810777962792771773240161638375644482080832442234922512537965573927063313988394892917443843835985327920492093971975754776427523731557348050981340497935315050956447684235279027280236852786926973215902909401980983721768820393175153941809812292120092554399054412091449403638586040844210402166072850538050897384793326827101452996290667218266839007050888198166970790346097152673807549824573665784583163074087459343181784343117794013994843508542542223679474465453650614047799288579715807061841730906134500092068913741586643046058972047688040873190306506593224721419408196987328716633499976398160319866952863245684115860161991292059721028120719625535614361858569819795042701644196108826429466893504403416594364484690320871340231455831793874425602529197881690982304489842102212722128074382724065221124062261321180406423198092689600450746458776893482971965656980026584429855974111545136666756092705129173316269673409188109315264569979655566663143988245231516940154045010061043273386410835490109491608133261643691087692511591901890774774940057451016128686306447946475441900143926661115690276376194847058384542817281391888043314745251457875021669736918080752453771534319619124622325830846376307350871175526063783144370463929376041296141677361121557122221131512876902262343527625209557473754859338503763344015103020264263930823956402641851349822283877933001262125420293051489470551890825093214633611565660127526040254179013159117896512959955360485821474479527459170275010522887364555400151066981524550527311654098005082561344031719309095658427805837556191810965038754768549766924500448652949361078307478539759870505960371985926305338716306236519769557328266448342441334025537938421452783607410701210646600453604708051991141957715744979635537913139262142424734581744742970656485396680392456851345926590907018368991392380050480820193946438819675385665379529731956928767862843589473777592458286582203789559099823087061522184455642334419124019437909954534316593323295714866635986345865437341452850426057944176111072796555090152007189871768293840158192517182376264804686723101918839194596303959650718038067228815380981001743365661901066739584579357304551047435294191634752915879009618612274678936681096071954717880254145182627322492066721336739978764803783447119043302175200139029570763669413159007423802723157148943600927245486038139626549660526940169326889577145007921473348214938540397014443997226859740792369002775258348332931105964011936050140822096857656515535099928015606426588130392156293302417419955290416920909545391254441685629981886292346235891326751133685333395177964033205259316481168585728960646039055032404890449846233733996548449082740579577365293476946075343823864125719561707700036153428815108681795286466626819116223369012795529426728745343463142336275960808667713146036467887797677394791360117016211371259977538337298308453026162430375742409389568877826891113581337303029010092591598418399171855545987022674922873612884986656875910777903477396753455726772801970162376903327081886696124878265435112742492448066628196214029508466393212598100570597282814803740639993252315455290551541941584785563656965499261567202985936697682702247841264721405357969930794578241858876501817454977264109353744369567035085918432229367180738251670856606025168095943302486359312246741344506319986426409333818502777537795773256661546054093742424472981624754890714890396070574738319025548713534167243704131424158396542945275068531308158543795918900861888288017865564651253003433500698191765622378295704503443510682228945479032637829995433474484789757705474044769869125537386794147364801190295838909972556900853563844551366754271280560513044388809570907820807506639791474179046025288979387205443972715284027730054728940210064082148930590690267699664392456799088066544560567300487317821575047604627521497698976182382892569628747811954536371135527872554890994141621280135074848216128349342095965426530222008924059154229466266923909639949002385130834923630160513574365224591244564811615592666603262581916754249543717419373894022745545472129591954302939776301566062784220101353495304643185070573602354175903549391040901032019377800303634042574415604091529658092815062679902394850344718761510803431913570756884387850212143775689250755030028314746557174773292526043555073452815454080284949303177668974035167620381603630368962783140255494404973614703413989105150670689030498061722425788949706349932667447450838712326221907873240588357643688666188358888254753292213414806846341394699478986785550332764226433575596404849945703695019928518703024834200908703183037724349090434216910007561723837293715210208812291537794679060460702265244231753341494302869279148306926439395160156042712669226831022461341427321328686236346467058325001658640462027383061287848562606681209442210023721717481281713838164881816501983798979801095701798867421224789742635582430998045983283320706557162835628925539049530877114348600272193985049282352852686715804972575344801309370731466293464007697618124219362871428864899912546075707184912091282742489070713258457562729011321602494939812066571188139845620486683183608533750979411105332031024634189993187663375780892811497509301163037774733863503818100033298747927362595005823064218445900339732695228347190797587893656313600652990921775320425699295950378972398833542836188272014157194831139818572456566322523676065780737837031345854827283140325301471442542417322483500641400150622652446258830397330600045416125723613937261519834487403145895668006879573733902928835543296834134356300826022090349250427936997783444532507252066627293591501051651470102724984930811223510921237061536416472975083345039970131481568018320742600763362748551681855921427505896693342347339067698974141005168512690770191508824863128750416965246092496471345744664001344287228516982396289225487077166016813120191340701729580404657049144500651432622710339445602166006900752245269977621112770926018571051568486847228203436841021070748155250441379414256983542256972868773313294980607817675247924683791412218230153456461514841566296517621842586893450332408341384601152526442558161172755911467942455374760110149207446004095232675469059525792692421527417191023580542786415314457608744524747265636634352273811177052625121648944350518116558503361862122739783425515182749881120829518516399030944841662531501468717989995647259557959377811709042774085646755496381349593636639843519185411181139482180267196078232814751978759448131691551684844440458260450201822582781618357062598870816173069835797779175446862349869126488836948897749423341049287305712579222696148681915681586500492662977686611008972493136037349151002322069642184169114827382342075585064546580558324828515394738124876846812703846416515795371984055846101500234609539614575972124652669126769052451136926928393312715375249940455332456770132366438396384985289618018389706947718633060412755370777701725254520723367022168325149891502090925711545412794534797558002770223454360538744175164996277900671101353368273856260400328872566034078580240752524762916303204034754306776482672335052630101011501779906819181270714229455839365553498056739244775809323961742434180191791759785826450326287302359999856902922532187855205601887121208601997971501051794858144913687030306689520896579866850347860142496824520627135826385420168057958276356680036793109539969103029046249557852633786083385731035823351852860019598825457756450494563417907912698156872819844306703129466113937315223097989545924000645323067939407109600263064177579523551926376441395946180913458574511948433552184450634530400098331993253770652620000160273471027629535295105658605668865728949131385726882295309755426854894470039868834099496433426791620358571221643441864124141066311124344451513698532696152038999112508347464442325427019513824839008381654767644843525531808991931266760479204751073347449779772350428093927982815597818402130543164116632998132075767987253412167018020069296855532221880346081052599284022028556279795172417953488832612239400489976524183246862040950659115211449734259416397767793411544573378829490836682958510756763213464040569814081559611403630534991673067651966910457866519909336107410398882406524702702296927051166528278784802224105353519350018004477535351419365650556181802026778139202733634102684775438395537295001862431122343045512908409546423422544772951121087469882094912153895810313273047093723563654402690605495391050434390357687964880357382180825120982663382541784406110393127853699980675571168351192168768638129949304082664389750359448667077278180235246656416574155014780629986590054191373471628329241609022079026413267853733069968317096783894379180135512847995304702623652276634981285308025115776628120167798163657162131645316942216571717141675438880090140232746413650871859570727045399760123307504189352842309333666856947476442765665682367574101312352927091356772528012725878051145570492922943372321619569075288680173203442500865878103145920007317778363818930510092264376066918635408544230536722856364156787045771966670341897481480851088251960514563619595931868996977966055966375526793069538364286474762717950822555477542340663277415486392744225866322471699315801432194243495124991576537609933123328715105184632234773253751259495601109170420824503164971982652551379520664005439156817232855742665296126489592687883833549923910448026547670447558828518047742244375209151770102317549894182958605568846887472764373186975642313551623293065021475482867205337995319265839331013571812983035563000805725518139661458098187481600775889245426027486756836693713971312303401458633595272611464919450681171857352661416090744170135132104958218458295050820376405473248471409427280464258945499077745322465119019377821742068249695820666432893866908233551868065112845276292133051673967673547425169106347280245519341712868671308383152641605468549615033453975956186855618116126423473886305303257495620785027184332285732353214545723368269449447211703569600051561996034956230116336815643810348248919144408763179183610794385285023053272070510435535184778116985234677484940942574798685177200998275076869692172327432201862824911388396713621277842251252054153509502493171249650297010105446226828276113533376682038300077647588471984139786582458350750903095173671272842337727738302513897251932882444730872040360686934824531914608930772538870777038659697162629684827225684083209462205764140094676171343924466401622602636843123998442319289836508803726176960093161809738043036360237012187910571000436099690707158662279153386026148348408771577567174339777945880001722091655526694316255568958185961802736661354890366262260385161731043871442821530377298408562353214740533582971033709234138082834194997088279605031461731410785602759292520972726997450012044685909305802257373553214261689844464548882129410537441580595887112546377881661971291498363851933135258209362114315595987536526302624459957782494281759379695847028448656942783202154693293461307889579892660424627247778944398938765556893870758440584632918799663078121941704804787176677412830882948122430594588036597270513026906181717518750178585532522424736124861908690530937576811366470308248426079303394021485731913370489380330198323054354131100301189961135127001195443785227290143681882142320034669899793487537858595205909922994754684365838841509383605703345857510074803917353409062475548311781092608674653342816102936573008976453792027120673127485980034483710976689631881916422323498988221707669532910888406508551082133025805592513283416223595375331787480444542816040639788949404380025519692934393019796751961519088003322422632566757698444178400482743393971745001260863199523835616128261427594666262025685885703618109088570885037915924328041691492855674921336807379288165326872550932853433401173265843030499612421934875316930312416465047531915747165343473315878756361180383617393225928499976406823310042857174536283165236085485266068556135727032947853930901467143535720538699120843548665959630695660286959171591723716686496135566413933629760255284764190065550744315470881965205123540883017693560181437113920924882328876937870896101992195851698180919353687911297550971095759472405302131473495306433347662942314246163137757009259725018120410462574926929705189210311329052790987764815025883098742349595143988319201967305096197386228318683575849560930292483018862348347942952066426907089175458514957699988082454537827737035608673192262712655000534860669444542379738206958500002445250575578233807301448672485207400916488766581483685671840224270005080905337914522709695617127085455760033809759588263753671684224998182873374399137760573783294064933603116204858279941370979658814709382036507069923780480469147705103581487632620297067490633648491204665244277816729314547937675615198460909663658059206654642682724498668453048538899991034029612859822004050652679590106204521010107627642631705025428302496594820659326596482545619277626859030022307468245393281384620236539263954750455921512334132938376034084923268319485814337215654587512271456145994543547310019620486189525175290713522859730775768710025212718163517234620114865981060691276409819086819599938597380982390221993954297611300542053929530774617326072129063736696215177185356088455916768060275491969140794060937982758216451249781783757219718768207358417338942883947028631528227811152597586941810949878760629185585594183926532408376464933616478130332011528179589460248518954617376626589604367384105691621136464639634698628879726334331091199672167774642040727015343663864907299412725620791712843543523150857803612674267847965170645868553630224365265374887336469760241321423759682414369079756927457463164944843092896995385747016597064986962963057162554482445103221270818099153820660192090397020863788133233435034180353088602311542325359503104859696050541190814345351782371346019870005122637181172644445860679267118644887108218477345340804191514210617728653913229033794656119641352137316515003320003968289150541468334271282121985000518165155148307442085767391294073363513596918568160830503268757382208993011317987659956575721927118755589005813301685668192093662526300775305200816193123861365382791711790206210254958841462606618191984353988033118357975204495098799250860116412883475547056822175000557121367241136895217662479624318558298179968060848132219612690962971679195803513013466583898603141883323218623934446671938569505767532928017673182439825698782723277979296329178958118495857220229196125173445740670025200581115161423987641581853125608238110910986177722176569168919533417627529450829398590281699359150719412029222627202111643488019481034922576044142266279314914374862521840567651121244574274271902081736476577902211288931814879728679360992069158697269835692253024589354166211870678944764729683052188395843773280772432829758121365455548055184765250336736786420401149642561041307663555664756583735656748346383959224141714190689460626666977437129805386632711321342603231748586816852791245307231014065234133856686043775890240821828588322140530971920621133489761290815786226583006320340783754254391047115814774648612729346609717669405491248526285189275928006761577146592179988412434793756575629622605380781554002528535784897190737367709113039955823736606426441290096631622861128543011436773002073262420723828060862084063589014464504506386740477661529677674831455469955765030442459628718376418693289061732476049638617758643083274433446397366335588507956255064106737174103584125319046810021240126344154760218003719850789416856609742982154056036954798950318960289726719137886096740650358090353610985914133920329438308195634334972889073131381192582531389723429568628857661813194252019076223694619974125273772719732687526305732878108089483896780548414104705338573156315535681454238209719609189307148643120789982107001264753501335136370699335311416968631742243842786857150829050527535515096900711855606483264418649726062767798855726644212327774334471679594438411499095123561812664241271954486494772802116906397594869731877123280067299012661969760930764409499839069206026157912119458377853610462403701672693409000527940148802778606578167378340913442032836157120631529843134361514609627340637469982558612565191118175029171955919625435767138497386037343423552910379862595256605960780994405740535138830514214029309418096702788741216282208640372151044687086290187452623012148498371727202079891737385870077275157747713278959701504318763390034409789823457260347442762723810568694338783943563803997190459423632578181772220186738151135082271533231302918723911211714728767219102331605749349192526812258652811501646579348657784406091489113467911480413827574458629167411414256682382910905236912233732133265083048613586556450722028686837422349557733927512696909201835354739614217317491435851010091770255933084472161990816370414211118596857720354617228636254772650684482665892303173842492856000974176931142720531155258138087355766943902731276926962939822301975540271828672840694105370043251868611903570812925498216763858852198769433520021853116864408359335678303823588721598514261988716788781606850373250140894167547087323964381508838552690701125584379673836439381976406703738143584940153198931960093242594811532517640861876425996676378787851747195860380018212829785736910450609669565925981299778265807430210870217177570129418018731974924240026213509235684837393153252643775008659749918843758569749803369610051622315514719463748748506645568714564473351835709113343670672434442141011765234260224132083095798671441013344056375080183159771886536330553069366352024514598727096428712785753393407348386322053363237724070853881283518545268819459558414773474501810382007205826591423520617064281372062649668515835081179001093374710636883586701851452560814131981364030431840136560768959140589798318755004431894918573651115676496299193032889580782911488017894003628513908540726339087655666514619343575095525184841201789242959237373472836545287302362730286238429797288792138983641092716386442436060860017297807562488872713747549358319933908103568235126054276582934861389523672724768770383900270996568307362349034889666568924286354880737373944553048631673239309104569054836283127980653224841506441933880172434451599624795945136245789974127825019355968478745557192454077448914850566274635023000244665978843969418525777014640481108562871286968340073114797142527068673897739976307883337372364853313276222126437306533031823526282945861961000428295485397223298352906895916112143106923126655154304171082425348706081867736278827937342657963903641682774858420326312109259085722982634944813537497141566681849437350698516470043312074569628058923903199883993387376618949615886385349291966537541332430972982143455916380082282491968024220748794998983928720768840806619505115244565672707783497583885385860849625531976433107391380013836328448270109123783361218045146676456008851350389383393183256215512585352002498927816912282678733803450066228234540476556799503729744756276153441491026563278756545482486373206893904451996430762980770699298657918911608807773688304710653528225271751910777469734955981192596879007765669490694097484387799456682185419934487109241656854091165491196968534941495293434227526364425124773447658577296993767943496508347697122835074881998301003322580888098258491913984796590528393940750328802627738149616057800163182257532833341794392888856331165520666244637741470999322540456806648810631658553728012574428671126373788338112992324723556136281271600011620655069759943619287414320710973754281606715335745016345026605419652099383035720630536732981353239890968466305935924919430551279962979592687681895405686882929787135761736462717982838234021095167498505432519505054977917095959488639945453437281546032411465922474384222109405475974113571374682589746412260074878166882195848640331991169832799599082336779508809348176135851343806135247254605870883508289699506393272722144773935272810951238102434767691335985811161295016317302170096154997294865287292145815106043979801224509486566138670667343839173759102828773720145794538987044737845017018056411575103303831039403692204320163065106282245489664463210292763399509849308083613244407325366876873017193495262666320002155396512361457691500839919124961821092273937405369083213042802762089287567540015840333646446028898143426312231149306019517633512559130506569909666089591122548735860461885118336484971767450697557049979832656198637678632627367700452613882887996811453496612138248808517110045385319624906447202424443345485022364222159583195296971621424610793283957312509251054193046649868063450101809556178958718009463240945624168688874859817188467724847874578164334234318064418926115217970989684832503260897696676237545942696971219164068492473572531908469449745152616997272019942361408385412216238795096483782212581755096557699442967156486764364083630495502388309327036194698729244164872114403518949975266375357786060044171482549153189354972411204544404045559755351335176075444366209068076225320395196111697550708038473411328398629056870740782745338293088085856269889844292670077042905485411493687901929226427226383374795130009631181812085491515947612335310254269914085092105248853682895743348124339186789987483584098610000053405450425708613382142486103142637244796002714864180208306536540507147743732105196576557359984475558939883750783660996238422640295247139282355372660804346532054104153770825886403667922948252644637754245249071526580044079721677720361617632909709014172875005026398278998378219289563711694746251059339511809561136472079000046704248947360636499413244140350635328232371469864925334876297745973098099427123960903415756339710773275772705755360812053491794339057565335573619942722928556954504693352574859908694115506728172432261704754328599773104421156319175834651611378594293532081722884184444212232577829983212672786853107773389977367470475968732488356473286967714342989464845334186991976985866925856417647366462583427047716308250228140941933025576551481353565869849387216386881932611333482934681774607756861350596638508855109817658884611752891112814200147199018363276528037696686199337276872130060665347547547879131986222147780694082866946740598667928742811438618217267160149662260279654685615833457581584518462928889820857597266247176011317143989544367156457550133034583853497289710001990205712026888186201620438459318642226290144504931434084333205413448420655029881182896545743062013012050780168817762173424592398738474583545656296338929125281585789871945341137625793693257556572476757717184169642112700851747653944544914607287014819504174144663624728768632557507733454873435723060208147282924749230233238233091485855266354865237157006051489649636827495066033430068886769877303152069422116762675316194449925729470988600341828250079668609342487300776628223938999348915284045669105510667551514661480818815751290849835514390526987573923631010540002111191485330042287707602335223580758651440192010764715839355504706852919472429985076806594958136812389660311171717561171312804266861253233641936369323695663065931565151520667365280812837978121854984525265497955293887326722213504193547942584725734307500606651420804317087942679208288833214096553687689489397957813444576928330340806845496294459138840254230510344200024408703551156619129005404452345485013960949461716601493583326568046445983516646892703674995026629694889875855166598533451800784153783410562527299385858606540024368657931813744195017795611711327942889439543317660105322676637979763500803931027901325654667099711641347006892348785404100658935948983469223509461751102247934381397002573642147660526826081544120415315228989948554604359093287433734847781773318794537925226680967083079905074735307418760449774154995144707481380074191626735986943054496522676790646176112067311380303438676444562414627089183800032064105400430815057709012640745737929542098034941925271676094635059340296168862902133851384769205287111170473709360204501334401875111165297256218843040441951244004898060081643354819434159743077946298828092591363146625326160607431169903549228921056470764666244462445587906604205124732700263815071647993508543545590097916192258910045323487888099067855384860632469659885211833959697921227060950720954458903475467120012104052798972505955182089407998558125031006418227276983316941342483281153648623812222573915896700016811052664847944751804797244758103485495068891327705556789982797232034504256324017444581955108160366907031311496460605885156544266512623453295120435041669600062739998280999122518072715182878595292561432213279768126891540073629471156520965322567842548870878973184741551999174019854947274824771141659680723671453878305103377967519926895417056977179603628892380779037170443523627079465532754248166706833581744970937544698191124174808647531505260080821238135300676612726742106555174354154203518847255085172687551460600376080134427446811248153289357133563381957129170198708847366119258650919099381999173569241018151343424199922333103193987138662975316161773122399875905786198526020761550262791341893664926649121508297359235634047915911562345751738571064394780117021204721407769539346756967120738196491379876149928162749643974364219217365324768758351728266256149180829481398521714808268860655027287277299245843732247459617988925467043478043201959756351203021033157201792865724042010051814970319265901450945587365974202088500089536250515392149305753623024483146575919020924550779401981130081395789473259090784032894552919980814058369225847575258624697414102387272637538955470702643345883953313894170156412676201986644451721863687509159404359199296575926816956498698153431885549076676563434935067037758670258602046962615399727636774168332610253985507944327401453998373995369574140219509302669567227438807832968220801184789017722345578450545955909802652423068011275979899059081983492044588078630208446045845442063983820496488925181816967699627274433099269006332464445475857471096164739775206950103889989814074480804544399296605743028495349245831585471217126257325527516585732344405132690136565897230859778769789705114442770627997074923566153010203788594555436688811250036137565451244365910213927881839639276299273604718329757649650383825532817943914024752729827977531787411505534630193437288855353322304837590327515449581521611861561547488504095695662219242058340542531837750446315952985765076990225828714418170902783843904150299157194058581615393825551760967452743713189745325738805075748523315702763342669848298405914204426836919463866823451301677441485354702167402901841449666966179714937794330537047662409673230581100536520893918879130256466007766146270898526374817139305686110725348804268117946007423810052625907514099255970621231517440092258756656954747796134821296307886537447741366897143093199800316787674986931262893654386070915768622790335195889335880091641649066488692892013268196621226643932167452947560771603941025170524395487829073866465120272340351802947592666559383527341617630193421145776700165720226144458458179080236532859120459891085585699338886097002674514733732052294456699491107848892747476708282278363802649239430739966947019584638904992521783701146098557580590509975721497591458394726930033978980670588961216253379436774416660848596373302980339947363323625036532427610607694103267932740873905116515714169945364728266994998910201951986295845435634146250898742577334109209104668246513791325640837657859917056811277004775932772936701559273360972705102321100533160300485553214282330218352736399584461849163979061676300383723066119757770496844846877098999758649166065953997435616151643447673427061574400293200573668189883867534620175021216492775090426965757345550444212855899212612764531555695408897231274492173685921762833082519540630696403036804098580323244012847379088316290813819877438746733781460469089764346796776222744202675187078787251296729544025449763912317393967790963395018112591862335244272813720388720083169850370322677841175202160449665364063362618288474867299309779983547275766286571122804978429390474825046002507679849335174591510923139465373734506179856511530253457738885597330453633691968839366998432675310500426385087571141355513060195767166852935711333305272625550845119113057518496234534476488280115532648874763960718352941788294184463555177704329477611657007628560369549573949118471157093870385651450036489442868534716171989874200760648462548828748089437042417710093055884794217347096054328852354918340603002936019246469015885764962984806879714389743712160214762626354112724836724592574746052646805219932989477483825017973569390876750657779683469133105880284579889535304824223646989956284374540679203682599063785870593775413287670538765782433956141571429512829665912991742905561760356582390188313554651345146682258519233045638483089876066304182294072864997237616355036295443614873790260000963105148133295329993182866386841237098831494117019729790247462064046279966594796658629654407580588124499889745983860559637476371267834532261014874408957101503297009238483882888364966398146351143895603969721482826480927950519260532926058568205748123996924804732941923021868345619909251744214058979073379066305669001118799274862903208194941678614899303214132367688605873942825394410175948470563604445857179019803799511353695944852612842154247451348633194840413225208328375554442768960992165723947647305037053976265251922503354761062849503922717475089523841774054020736933003977099217832164567724704486643182918716904108798861823705775302600212986321846075747531697816435340922511083263849671507707770248149589446251869907208669476840103723197048926316936738175330470195161636885469160790352819014380800466497953764735058635207275951297709190088380688423181471994791713021553488531839123680880362315004840937244717690786910711018882803871346995526220999801869788686167676848749207715819412983955623263504864809882700006154758211251413393258968489570122909552413938759854672025760365868826558255266323479175775920480195684524175321484945223302065029927799028419090143255305848593492485153847953366776266078804437804667220769057867688156049680566925529196064049612196745311347668188857845106437873152372438331973378486945855583529446372112736287287061622317071016000096477213615562074566616403185417870427250233346343346793265405541430003180529464247511305924739429830403478251918986181351272475008822147863502945821792920530917415064696976467066749416043398712754955291142397881402897137044055431019543041356576519490579407478818391394617764069760215722746381432727759266266330647250598870592219628928999229769544894431000467069996037056443661054606268915340932153126254016436016133983529918171489529652417453336204221101672766663170865531430346397337770162568125115953232382088233949782974111206116979633505635808438593012418536368340219754441878363324472896799931912077168313810789471796364000567491331067046711721792530658084612962369198865528564461410620829937268330032150034154365135199626341372087242603236192293480713252340441347950710513182093700695800169471547965773554213062619047655321785358363069460277447505178893329005340381731540594687113545528362342312611803248191628938107966099575684962413887854163361056092164346041283294112665081489073454133196590321864022304705991854163952646911815260408325475906298675423889368381348297664454951294856434989487818126633395070483297557974702745029697373181725978248926299852199086189049617079689260465657194929167739028208875617094637053550810773708936881060428128654807974280236645117518361371404014190063232455953855485370081080409942079728237431370248692000854494641209731813324370625194159409248601728978463095131255925130912708209953592814975089862891051264394314027123344400814141643950531321955292508866072286545877609356898471601620018076704677552242743991176687210469652186776076980184704675910600228318021443180017097732424089425105833187457344225885985212035485457850323427549662629315380896577614567047824118071713902155782481229803959178168622341659660146204870207751812526056945738003746526215576607092364897473478380559945588614885269769646382114549574328646728026710657427877876212681303031428301381695285198476024017923159111507005239825520819677571870170469170053072064481581974233813644302548786696101224328708926978594455380104522201174255840338925745350297915278737821075865956126565182528081745907760747785452401984141158631164216759850139039115474775168180004200413716521327765861865339554076006918961558613818195950827858318843148405750549300127919398662645832242913213651241680433687423510660514384354117443775143345911491992289304731603419355621287689456146528630798989716998729838448950201767154024569858703493371945407022208395598474374105236255309096175652609024898114627022771900193967788023443469879755990668336826117232214428977426347876097534538511704194170262251996443966926612514789390564419906520272755548053247542352692227784273452630276902212612962609425334330401211359795113008959938992741754956000271916518295471636650780114972061756743205463803263581873575805746556258085311592273426804398549518137311079186752351091324096690582387189629590120171070590377655630909235021012702393042063196550749508200834039533246595375085580946249354053340296661009216622558458880477903030006269895571643573815404754724273255226935064652980712572595557829254192081583992219208681110807382145242963509894685742751720163745121723264539140416458863128821755401199125925667786858913880430047520545278052194967409118723348843673201390221377748598061424378742528997528988860520299249662279275273122202032023142218660534435554621341671847223164776135928561372573965262946994825855032849229140414774567794188007575935378280328437433863861723465145997504581176292012916585796363073441023817723463623046832026476577628844729663047108349605390364349492860151903001696210891133655364354569278473680286913767271865539691714065809284861100906733734426275513757952465753353419744809449575589865450739298598828734242817808877846854690356919592718584211431381235811836665548475377432714700964429374180754860684504207973041139764997816749525592731194052417248281649920037443841205526630009171214605842698035637898898872211958662986075138867434704803784814682688877348705480234717906528293382741692190477993921901895708637795796298286658210811110341144153274336208258249172409470188669091180461331124377557754195015498614637254838941087324753218751734228439973067511693243133369747705454075404435372535269855997201893983782689025117055627285603880193099354685901659469792696530226864449795481064814616433611189145764690232188261617823251171600673848428862828742135573832927839792499508384478231052040753098003206490401775160836860803082404593001052268035524917129864406879774939349921883993871449992650441696302538661869312558803816682149776932516862749933404936450846188163353875614619944097668426631295201044626551578271025840198935859450233565952852589620141327553250576134785009462608735312330314463775751043529752906524863912628639044940636075365483390367729076618771845207475996052828028408097801007112809839278304012151684105539386008772472359966917842052902850889980372869445115968946801346138291533942182353867789927074428100625598363436998416591389122277747404874874276878564664593681616442004755762778072955305432718881745960775313896846563823259141688463647961660235729458359010928468502342943039462350538055030474850218563128718223616184756381842261403106080690745825927904023615528702192210950008572296887280589666138340356488337992980957123659422452517279600450335527570026015555349928152061998289010774661311089497513348124684220823764054008328506060549964408636277121063823557583603238316411470117891847618746744615738308720152485167426019592093964138891197428349135156333833591529529172918185534005608279812699899333706737107833513349029869038207190228371151444406882064810573721617706207063717849511052573900628163194985086372110364589124606239487893735022228241743221482115602479976416751016175748849340949377798681319465953968264006965535558687558126691557845599897047401907460944604212806333034888907529723617195235507497043436684803464671143259099953594242673854602809697230565054912046513241112627848231861433921952526282807711625208747376254881381330789668558597242773237373173917092993476331865650724955140238534286346985871176091383658880639538846506088341096014207471159638680880395771813801839322472439340111520970316966509404848282947893023591528148430694773405500953585241394026823028859471861281985611719804951087502031289696621980828453788414903399383210912134862452794130186692167182402471196368839043064717699468537680186705534392419805328843298982902442745994754037920486307392612827261062793982362033886091892807807799969742237227178756078706412395332494421331794339702638008718211901132493985982470770660841085572733938825347439386131386393287917184186536922753194905052052103504689482282409973173399890384634888817169374678216540860536793126264524796274575424120269187821891177201070392737248478719820329396752717421460329240831306948201422662799195717381845715607876861644738922822380572258501802612672824363060849773112447752694817519405885000657619350480434406198510973577811225818898110321791595832102386942937173140827822059485484464862550312672131321251670705130265196948919756193587824298563941289401099647327336131643602098163096309920810932425690739197984896792328652250198030449543264960437431158632749107488977358774829276585586302037810250308001434491191562490774996479430639210742972183776703761380399612161312753720085453794369997766542464439173692552964674863501961451399338987627022547534091239478008830692811811267258207955422462147255057236701542452174537327245822018988082489144693699793749174793036452782156385975437084697838247377662202261527401562324445964980622697535759695114176005255055250168579343118504820604746138499762151091069808386327468697620643789392487611467794436983732398041525823991596715051236129067655875164882630298383943789783212990109605913893213405689892802512245968329047580106709727648114446624827778098803245825363415253651160090098756834454530372111204275254302527778090083285216975467112123042297584560676720096378582032851441623267327399319944432679791656245594233194257128297831418538247179861225750951387716688546426386343658621444510155403373169443054807511266629535721181055194437508413161823346505582055247257706141554765402411232675204236266101273123096356969827454192910040569232106639962146893537943973351794108559217365742669542259464610375745351901614442384683783694896698363185816287466737308898621142627044582381526040011728138483118187136728083339637946336032480592780001923084064315472196304980674193937777685643176216990785551823451662501178072595476326924170929054525871017869981814848978959441392065138545400284048297048768965951798072858897508385474026258934220887655250236611919327263309243821574166313042398183412759181927469215655222191357260528257875269809789225196249324672680850498120498607166053774288573655568601603788888878886174434027420284361876912421395641987531274459981123063061031990809721470101679614278535696811609715472237283550170180417389922188867891553073628041880992283774303876363322522506294251377979708421612902190902776424112036405186430999814634560418763098672398657742777167985403209221767221541133923806524961004484690562968101893378252713026244523497841666698300062250959573215004732575561726662956152862162376777336470652682231125665632270595412762975965678704932345783207833335756127760878105601710991632129750307643229990394495580745904798761013965388904615756892206781709323695619996728447089000427530968253665198618982890444271840059443566427179011481679581565971225193018314718117211409851659516305147634855102587236459662396113725503413861679067658969689858037914599064050088299795683713249814846873016118836209354490499085611877162707978100481013333636932987581602534680349938809258668810530361714973191801256733405199526273211110343530422309751464263165089098666407994072888804225971893601319394478623397035227025239356572498231327667407337359508198028820030864796817251521469323757349826682541672255500194375753126925665170606389789757992419354426206496703855088643156869174234849421824295622780466664753196845239702039265907084353373067130960491432751500296886186664098392981596699706945958775958973172506861309675676140153493997662507610017952522835699217452459922234710045520578579237127736989299427869105338385570056637935171236108522811449379155317984314983312149507814021235653987732359190710934984624156759847587640976332978901672757708837681382788107242703166937455324602199891731088124383021472678554317299549929617034401665038026632870470392152697766083754068727984843363706518778009691806686068385583543633157004263383897767060332968701594370305996985669381321838037256004389505896806587381081854608064535155947686961971854249503060533076130136001482524553824091893109823194329335445247487457221355871211742145611205667285754567357011843046374261441281456499304892912435893108939791742778350867907180245318055048731236990779189457744522831747193476699958093166155559114961095444716949208934882930837041842258889780792168265369605104270540844295432998420069942055706431517340792836330852758761916250888696952469079658321764163710974313120095956366401243559709636199803606602305508391935313299287084855714591807228684209865121615076741674824573961631598815973773347211418765872073647364347323229502974115070405050543219834222047331488552265346687199491831738980812358037009964709065804311374327461891441391681785436693403131327557129838825229047341455730880708034216590944369996236521752647334475168267916940932695773402304452195105539658812107238819119106396798418987794986657531123417381393311293275230924449659807004616532202684716451984268606174322971984498010776051915699922721852874871140596207764326513570087639697282340771542721089040579368772321098335501550866832628671096825264372302884364717669230731602467665867775510362524247884160911333627953210907642419354315665063462812537149492723976185164541426983093942686231698845585272367982954665246666987257946513415645503175424910035599210394794621558397224203338492414981564833436838191438538421294248104718687248895889898744395181780513110341083719892821619913852089658014324606863082603091415331258944484216090266495173982534572431850682566798193659868585436097874941639175145710305174977461813027352376203238451099630739739515210532063947168205727506971043422345659097610928746913622248289841563427278075234093215242519529096628877285740099006881107291261776575396217281168877895553281484580534224090945575241259186944906188674040857118706129554349097748526560099384883270184405662903571752041318437173247348211907205659886878491069485347127562346692553927914734803465657994440586131237341747121119705683143376651665688069023062899672401249121935356749612501542272504304961155417026726260193519599860498112953350453406021643571190867111140210648806739473955948789928528561089763306863342948239048262180265850246390256140798659410083718992698894994781147175938812407033985362261475920298186644735305530673453764851994682749229178400643821303576875965946333610776358624330823652693950947497308851543491604711927536054298208872572136129046023559289568435000642813088536185769238783594203493553176476833222802603549856553848237271979173382262444248108656639876575138448126530469991507291109425549442688042989505362913886338885376419347835700573908165855476119542419954249907980636584601452451692380087741334005390724889968253283627184411063165413177360864500039679368624903762105783637517634564077266897788511114362264142391740923367448538131796975963976273826769469679916019023476716280874802636919737981737178489034838890168967771828511173758614746473938047234236529746734659653059079665403109637326722168133197964317681106032408874002483856023287977888179330948294453430988576072065413121700325434616193504954466995304361215150857952100062301839669051095350112468131611442652565748219772861206776055587521768149203960372634809898006515271464448627784432121105471165964580066916411548064378324872999335245842268286997579816702592607156393531840119003827704473071736093845614705288033014999946472418829721120127014291020345809655154014215561731729735893766925437094013685747349793774095735813543786089470077484709364505457121698896752024327930038358209482439826324634164719104947984602540495859174924200511285920570153860166173426274151904516349451965626730832056063651584822551523591389698866507641266740866429404617964276285857837685857328828435751041530886848665685712396486760220267705834495382864470295082142029184140832990676226040445973002779198142228163713736865392716828978859600578331113316048623907290794708508201161662155766794264373614360608424973442471100860403794710262497037846875869142622525997687401445466054853928264329333622678273778684630574251401543155792326077936991075211822831657247120141784804962704795147342492073324732192486972353440207113642155583388234252370839318019149685260822643978765413447116131615548348124466832091539113251126091328369483446434281432648403509287980173016927745229157279711085312059979417853617769006415417791799299906535161315737314148728026062013764383225431666366695558837887094783115503124036130607289567496842373219100597065666561975925525122337700735409611473615146980264516743176030820708270731961173326735182527424458989049086597645246366758687391422047922278219260322846323663017241279985855990952288654434799822529720228613060520198697938607168249509578071873425202685290735915337537591919657517379030243266950147856106972375770573747324587583165610610007846759070909531837863062377756293694325262813346095614591233173099545206099622273549829870541362575852467637052693900307874281687141730594180930440121305461841177883582271140023050399767946393233443157675394622659597088412869055478091038991404400339984076286744123492738028056890598749942069908629343864069978899812597466837444173523757435101725616847421607988763769978910821259765191938025029660382383926040339135463474729081078659851019415056999549076547073406170733252069188569690564549780577966828025023704507796302563158485636327358402967742537394618426429051546796448123360144262915945769869410593508553243406071704938811937116429528678037251658517847362876411872752091098440657930542877453294733018771286091241534139163921300063711445861608586535497692627229168368549997495332245600859114317323263141489796722330475216176771992544300022429768634838650377553339193200224240137258752462557346912161528680043154282884471272027255935600737300073226023267480356125065413428579830418506440775360771949416784580095528669036962211021300981302306762376321479814410877500381568912434345313168529474937501078878148476623358985701043005781825496012718154516726185859122467529954463301590374389724470802297141198026502044540306863289027065248599618711482837424393857809846447831105620041279236298630891957233092212931599565544044153172123208532333416262938936546508722250123670515653107178325102519677094686112460701660922418125441524516735217028172855168899306684509156641216294219677718457996756687772236744071065166737847613485448932167900620028295442929201735154674805369014852302848277260911470869648040189466158228289319775060877163082280502412045626018871113844179268316137011272159933374184014837601210137022506410132052700406618778740313611430086559221503702554460459216572908718336280240876911104150723566608933565168415349932404343930302684480592432177238101683579621487742740132762665814331868392346077516747924979023022293787900816297288062984131870915980729808122203821029625237136248954389146523966928801652457108158310585334117649871195132535433223751175397293743376230013998598390276447516567139637731283069959331856372119255196515694664813734028847913931615047509963018166815151772036582822336479825372477572444921012513361408367005117786129032105679754781468618047969901407722823927169006641096599768564931420740511173762325059106739235621639212211058796477293298177860776246303949274156929494182283626495619092014623531856297234495164332189246408959615028910624718477650499945746133615084911173686010389860021138420235631470949552152690042732091377086683136284585155385668445465817849245398827322909465441368610460366078616795036402022450868035097643287041075093600251933231814893505324412584789664660326875788902228486071642646297059678038014896570424169243316624398233915756733505924978475733439342693142576410529744895582162576868127901981481270372213693138985641353530811678823900954727423131277706431245913831306495094769062694245019285491650431291540644516228673338689833734340517724622485485387201923616663329763438987396008470294196757244338172295483067489937658810364091226512681630624547235720198121872892980391464375250514702067413093284899135074863252387782990871175083284871303425120109959149947578996856042578103009115211269026848205604117688958830598843920769098090537825937094853980990455506133646191720947006026142158684082976807879434275138865304511266333932227332525810813900055890822568504333884533124223536595681506012914817466571718858961267379694018600789573207465706878595540604888791703830202220082746023424247106276386013704468003457034135311764320349669030789087182069466825750111194810086149534395496875933546293259541912236123087937644333002097079305804533747739133640047122080932239411394446704763161776438333472636908373134588010573521116066427259935830503013218196638209068107335214995979174747169752373284227099040746735099005057845250801125911115287323042348204723371240809592692516828643285865134168743528437522501792210865716509096335944011925585482941700402344799705239527413023008553412033244973748269087476578571190795847489781018379014251440312232343119397858563581192969246495072391541146560091311821468896194618504776877521083640294842803810561396459387844192165314011947149163369858489600229715011653384951460021445136115792142616873165773945746431102567468468305421789520076431152882885862891940488993467538234613722396161991482470605207719356698011419547114316031099593388521279853468527658987657740414842633759825167621926833373459581788184811920986414904251379078927758795811283157645398106047316388062519211982870297200391301068232275383665528623785966643771386509904365906647661140976329518681285713047310486884281501740822256318514340257875037770219610951944349919854487342856620285222639344818575807139505015841087347670233345364253386717489013913281751118949039522183235406794909817456781908662849885389499301043154414612494765832417314805335341057682709362448037944609169215477220061181065159710956928762200648341990105249233827292340669476047363838972298338915707790192299702480974717042237840460579282023197047270276881755168401030368780582382873176936208074368353866873923110556323601567757041247324185239347316704181382529973010185979570159033699102875402836097273049113999642950558869027148136788036505443407682670024278937007118718086406980132437054052152962819891841329581822841907735497752237928343686400433950824643255901309660335216821426984407343892403293991751235374469863291901418460481320468410187432490431938721384584983003033820212759346829025185367049502704394229228792974332752377935870166047540005779455302358754385666866496988781671232363441923733469310658683233876684283760720165450000554813356445543458722214240341940035417253800000141279554361210788867107180622603936305439844135096183656024677786318143552658292759623334174780866607265047484929781598432680843592185006268659473597602555080072243724179486178089118798548814306850276914284916158265618702737847498723405706542925268379344712753806294456940303452684317999409437512150972396101563570095811294779504736063506845835586940803234569157089740293845383593026699916249233759658385936679920296868174419643475694682647842951398337847785753252974949567336708033606862912485461616535849454891157976098987930987892599126070514175233295041006406104868912502790200708758398302164685896107550827012315103196550078913844282437934163067297070928765953504703919636411840047781957631735620745298794156050540614418711759637116166448669621585597076109523614321072453043099961636130240976683854786677450187935125840680073704901880643169593768284224183249350004007038672227369488198828311660452507628169479024415870568171281158571469709866972910127176040947439643445100952199419775093268579908856764209214783005090874499118200638059111258783811472806840649992696365375488890435590848170282611238893558297257954320108373695789181376043938052450955575994729007046999717394138312476312108445336738732439010981490544618641507978971358647043870586205984406050427991814867031316451489514654587727862157280373077749473529527166816642401705936314465163722645625161276037977382475873083371437655834536867157633329662042777517000677021297863988499817823856096344698718498154039148196895685146386069095827042156703196555451927832216498692523600430277330747146046026672485570395920736069448421819393402828138419630494814377910026450139988930736563871518388739410370271543494941959009687555064527814917683229658352213716157263777108567454478670799512883950570498937265671568901425176608235404862158507156934589313250144322273272321719102826893920665570602593336043998678004811015802717871406283046868542278278306594010813449921603506869166756397124756589638825165562081430927847793389850627032862183034033324885996014975067997384869138956287188434927083376549989791419518907472777003261101280807760518654116828973983307480981999012791571477403492252241614217319164925120044176087052842700152987707567657886935748981794046755950504115790281460778259978802362118725505568993408733097492144368694439095613518882575362376517732159577819037227847205518955252442746457321936903463980832361454239468751414229590164775164680954812246691874800118710283034798046172510301685528650671555141694465376085804186800153529066380420311690958590968932720474651784407354770628032134274598016130072776425025293694759759577133518780662971031226011472772559375825623168664965793262206035060585695897724716551222571239960844993678949328638565106854332800384192772542271977117587130483002838968505247207811649900191015049108574527833204350254084036061478985516200157220851579080463170913309765899959209685246974227906807181121385556612941718820088934963172086444127623078211550008977353268013251796538993711178180876911745562776008474857562930784325468508043286075392324277742525915170622843286125720564336014800305023858160099804781311384386937763821040357370380436205538409029238072710363610549611943739571657539970180246972050132933968292580502321999818563069901654755747248594827691696648636396857189085578895865666420404034450945125081873057539139293378665476266643407272306678363035223489799815474444282985855066769848903887322416092808755726123613237868410948214471942786989384007571698574252247232808633880895259520703292887175245746507770141028067473559672344061121702195263197872545141745258344969573508265270206885627312942980459364826264612543039422058300712602730366787637316167132576569166828171677421524333541729181751530498800896122189200388930999341844969547892566739551642891324609788554627005886681868042817692098785869859162723767450620387567948711047098634566681323906015940629677353909252687068405783162743524204434419269501848173147117931658912552432963836833468762967743314441377618915077513801216066294478224436470505507526039979442998683387413940253252187522980841981404379019871913554842949930752232249005537149241078732746475883722072580131464254852744699553635165280033411051618345542453499101012346580933422661890499587239332715096151945902037327540838785169045677831728632660008105386035779455839429319318605802608416658879907883460286960962766667173628624776315582866751529565095269366311964799973586041239534872622718582240458057852655075654310217316323258186996024694561633945776731555828150115910119411543090326483754971107643591566322578600608461360103076644682445060672152459544762697163217174539186666553917880917832386682253545916893075116989527612953690559191013882275780084330790747997479085150280430036372315698731876367233252442278931366518870338179623264960115532802166102770746745125331483302128305145171985245159226875512566350075816450097705597626408391908038102799342918225352807282419282323475525999380113053018128163274027589403698176219125085891713113697461604839416514903080754859495437309500271246113758286535611576193438930235515784987799596686446887070723007735725096185335231465937954734657507813840048790927309095057301780866876405750049063896271806510265917600932224822017372365250595931166148458471602189289349155143856164766672131375183558888549032033623534326405939614636838314825475690349944064888324621836668070040665985479261987857326942597298852233662077554087999746703556516007763966910432216372662002604226171174745048217178728995126734605779895770528417663734579766131077218029301735431849962423550924387245484710246138247189817803394455865547591482643730140540235862603995189440713599163835427572491962432982511509783110787352447204641333745509954913288924410136384564968872765251800263385714320070717821454683209067681823867398286695870321593951651093009365006305002501587154736928851780883870809254784309353234844809049949863124062572062662035370666793891516210209073505522557965295916259220226916037857801664826592000088164377040412502247300995113885989426870407514587632984542525295754279219945457531843899237414105582061621543436275206855858781644850423924697692619578535067380447718855748995800457834981700816478061321388141303097306998268886328099473491075390480707047774426318610036634762606643263486913894558685378095618082132873205765462831923068173237740216496222308251381797587597847020707433573818504590358227567028092183168788720264309942966322886470337341016974126449646155198056048516881708984308227086754248642668196084768483727112473643342045825897698088892078291003743657298351627131270086743101027813732528283066030901779210903396934104442456542645784204281956454735807955549296330838791570359646175361685459257251663003907245052087402822193964145455428268909706283528452090804436832358159085879360932788739238455471034747226895349562766227941824647385617502098431410230888911066267620835475739100342372986559002648107568744865650889936992267859937123803747303294960808133142510969938577971446077694754828565517046959030048264435614856415740844901057199906863073118407557467597699610781366383559376587729430995545761512895635116566538035284078175541635177933759919311850296591925088812460383039675754854132161084681776188437643318674609488472592763530553099548192989472112409555752995446494738627224936190012290806818984732568997296548648823859422735017958294764627400648085785538533669878143901808042507721001399001897621865871933207874586556642773647509057470955953754290494136520263184965032307830211689907880375273395158769265678863650278336787955230377344059804296648437735304062743525554373356278966192878880508382769271428419857446189752790863385721208212274235886307719746188941012677283100999099363893744957427446559217319214345419891712045600298154928638515557791406625130342165498782626038030659912865999163497075570704295575798591365135994724985426168382499574904243489033430590429516122780240041238382472985679041774796634190199949174881986363728932935966802965788679056625060890074539940028528848935164976081755575467813861564143125384455955750291562777033525362103900419595251441038045550090572603435321440893794872908658640362084564485354387117964873950382113638440647488256862903351829276375707536846041736134209745373964310468607092817779797589679317056463341820086149950724231603096041105967169369431734084129762229683981758073626431801960441186136788870046146946871137124289346581029354064888503600798180181267111089997422000095271123777504706547390668988476561762702698697664079232331661253898503632840221904435720041832933243521193648514919606997471931251707076232170479468252566332662982240428360231108312695234962380056251383203820467989526328168125090642021452495766049657160037916151593393579565652849588630515203121481803320201758934595412582802644153545302490626984572509493816444303148394412140073800114032045509766775232673733101668531406440618696743629517958154273729588785033018264638698015394193254899245994272962062053033490151365449856858650196623391027278904568763194233322888867355970241274697116370450758244419811009726312405414681643168813565885277893012888916919916147280319677569833677806579805285814680167867938946234330690872975393303946144920679052637156009910755674537999233788143069815720970992905787910875306048518894091142273895193465172521627266246337095104436893539890422269979619167943068096840425509467417488906694657293551234700820633853880786494051080902492936785141186911897701218658018365166629716726153683075622162493485449278501370514181451991442938312625303087164650460895498310972133462588829517810051106341197530099697762445789638573144677981795663544808990403957750036900032458928636165977468123626459312125821010796445073540293381845118676621292308096460511930077897463029854298190377317299787157995802758296118747250782620037483362376450150291413782315990729300359440081362078424551619440541332118451316307917891398738548268332193604659573658199118562603985202975351471634169348774201447047569793661156677645065415214353650818670520869509860353268214918560154894944656355849006056280554853391917882351521653147195586433643206595043088590060120086069748364556185859671536002600505163713041686238313048289874037433157338888722831485481303074329268361004780226648628336027181919319730290641549889615797212350309908906789594634077967526725278540693580687662942749254571768597424170034445626008960374819849817711373265252374449537977027432872587737030979267684843530342678265631385278712327261960925288255654070042104412445666192570933046828974507537802591144554013118964521884298633562884194818653304812900723468164256898859203330811236083149940653809937178621787072070578953280886857624757902070456312747559166042908447847732367384279021003052142404903218040942471853214073142872619672173347728514041294225488822944669938458405322460824436338823353807746602989835378484889669037563208970965981815533861635031191345095636440004064595351935277647233698891293393830999884791882345763691946160863009363687686212024825610152481468251088667444153182709078269226591279276541394566801147961485586747709137428092173043257966839420310322188562355671260174533736811384095970366119553784637522562431774689165314210011554257971017804302349706062209216380751922407313967446267000580541172662826840765998438915747123516552493920530321783599971117252218812229850167322462344015685729286334241745500403435316768280577684439285683557514020161720922635839464488798521098172772561967982736480467119375841884378104674550992278010210432052883408407409597066371703244557500989059161988015855503605994172593311585642573472506234783481612086474161757949696538061395935023129675231426016970470398279565474174203107206358570119184747644668281419054543028415077569984382212888747066356715394161197571392085300302307797389642842249868226780613802947811081389396110579320499358496830440413326326749449724059081378875400865934392384032948946344424772617489193813632434453050395134935291982403291604339408260414521275059214025593506988133355390706254675338342015265942811049505419169314159609986265858809506666621280993985388183081887858271736055611061469435769175640106483043771208184152620569902847598442158135443105483962337232456609370817091273644664918248040621624401331200954334091883927192783320783044077394519521826847427653590756352320658612546969699341218660660064664022214030352263317330604092401404512518378033989245322817825331758183944159359061975106500516342980767549003657786613551321521066981346541446550410910354193701902535897140853929230267973163116741205487040482589643387680795242901423141389982751932179675911613402338183594856312032262630046191582868632347863379302419228596596479800566881840167486887234595765746440481587248910482400908990142633834074653078002776367775503688532804536639192319532103771909440799625069801278941761330227604512374897212624734472503155944612150294090503166569037887113279094409093329701156808559752167117258380386367002011310264662158318078713416362414118276452880333005870596967353697286012687452379683325828003986729902894540500001624758469898024190175513351566910681710704135902318678317236679935656155981315144566725475451687571589866515931731533692575934818839750458412106726526628959858209998305359218452445432680878850646268317594216215313827108621897400369734955899226658523583651212333248156728195936666844693460923761265186203028484471581249910545005944869502314314332481657822080693931954566682185662376513102546870094678630931064720764388485640635670085444780540105438097838483388146703323836233841236303291135898827429747663969614149866278998420576289051421220777886850627585721558981063446688806396478911971043210898540957703693110968502765345865756107977974391772332183777489516900903073883451027644379523119908546044848233584990158911454610377888112324313156580544138456620416075803870679461943640174412124536434107383998309601427492509986458973378200776170593641868051737326942136215363834559889688944063950904117155994550192194064463931510500167788181129996567379134735116553113171499052349233583093215049163890044240488015120503451725452195415843732989356123300469679575159078620845926928802998724306671200609491038297393692169105958980049696118905451714811640471177747998036756433902474463575261128510653776378699454957209022005862943914388118189159564815708410421478507630342479594103903901484090318699643919602657361221312516362899535992722811614169531524728240326627375584120180567067319476548337720315849050879157323855544288000331160500693850198649235745528264536256853415103898494919959451405929601722113327597456272238382788741006483074272811696381734970094421696426298630835283802878642067910704201923384166892175991020183015943881122722981427926685775492065683370875805641569208926021404772810874932874203313528205379061932816773527831535971736721153512291734385725617420608839384774381623108285929521780110950658170197809149069495708713856168142195490203939569474253521092143471064187597454810394115736894715646406279935250546202101591584315786555053254056080250953086719355737097548765033045983390053293552619182190853360039012837272296808849094765032766079641553784190220912437568529869659268328626674262612480254037541730436567366486894981121156408739025193723888940659890243405142717821132173514817296863715385298457955905505381640301507308371980984418821582319663783461906123870797533169081720448596427299219766267536427965301775016426603491563400126572132312220801027819403229796031380070697384448809758774086108315496160199402006140272561185536712455007454035450186374264652186572254832774280251554681594710234462793052877297222661405533239238494287949463525084628183817053210111249633217354597101533960695018184824104723231749057410944787918493144368087029020399535868784994046468812677810419420377331556512654656204363026651123352022175535066332488316392190257910795453653820960172979903738466819360185609391112115112630203472816130969980664954430407821487048425238055538877068624300645400748065857063494666053279154934659004160926113509163714284489718314590305373294671186228176780759670435067664661605137608181503858742819533168894356574951338313437322841128581080286034475133132026044483196418990327311206477624764481213006720822387679441593759904384823228630739346931431053042578654834423749304004823895480513786352866786357918017660016844495809643391936536474000559059281777895380474397941520284100670948969967292925059336255778223218465796149977240714197813982476247715931997018795127045209094754244341936897334384782875464378819159240790094922689599768420712160461070889255897304271021800193399215213277246253824221980128469274115578136782932716421917077643375858046089267852478376564847444952995180255347042916422827828133395857651440559688746293411711263278815754651013424371470824311545108729220992387533990070339467202104784660194240216048388298720198776640257802267618718449415032130582991854431752137138861827203132295036358358856770896843374567738394587618434437091093449956550096450802771924992118710566067773081768519886263197128769023640387185029511038311906842877366983314135361289842131141089198045691922017344580804868080525020710892997113707343435291752480458503499411035205558329428829158818100000329751840048726520207581397066189194255615917395956481079568838550406549048978964976297551472650235633449359218482295126579329981705079848396174063687729127375683205338496344517908167314943843350595966923397755852633506865185967030767359121733917894381671920207376666100205073116616357681052151890530708305427626586729537098495918800442907286625078583547040399805099131378653284533642133485303061931358936461408815269181796556085437092484730750516418008606517414907862175216085443241566426050101935507345821003377808840123713526263647196224649889248125274598808165252484714624618497763211269618134527265494392892153334944983760466982991460205522708990693911016577611510575537601860710780798489662254952832086999580515216671743425897012471357096810238580280721969731657984121788750723534593631548965804111897394791877762925303214415201413499396848543347583320172416342782434493810891045665954885603444368998669127974054032401457781844119148657837980384854278971436234574222619185009379050239286799656572247997882130570836937785286742813249027233686370709725550398180133613375878440368425397736256202636897321447680235586343614843156640431925054263794762803267714800640272837007725236464446366010981752014289836809374227453626663390228007000721473396678991114416656175588256933534796562312275974937719733112583822821423606908729590323021696029342894028603440896655726131492978430476054898389394894096433791565154900083624425033615785644185883792265511675967223434768221936754929660548491834668803631083451912103525288452793869820413922144227142635740784255671903837624684941004478913396792996483102312370528577916742089791983016172094799685231872136850928070906884934171106067093467132486366424877972842720853582026659666258261913439161630125826164794357936536591242650110192343495449419347187334360919472905858893000855169546063851407674017617538911651833764306016826613331693832254632717727186618172882388483170782281961957186039917718024346163182074002271994506093848339032593412998378932318569919154183793390615393676074493637542622287525626015087641278927665368949227586973365186478092397749959141179198424512169234592801172771675289477426764863730757090990724505081441591416846076617537198638149987583868228368157363839341741695520986238766767307831635089994448322661001623987419576812245125642478488294762032058794271305778413617078563094736940004776775934471607467881676691871929846973947215199996751901970171528025603798441998694138604943025557068351883517544907605065480711154899879447870338387151456893683971211229635032392201479411803823388946777770043823918900485042341361239841049244778998645818575971276699417286760439928959582725651169736201198029770248866388503785794349970876667829298431253941744099169988792670219606302255430217207290925554486737473739881581768962164742176227452571407472351423307583834837635960737399672845161495816671130745439304303303482341259613589034804536563356220400268137067380292610175305872376726920614589897788540365559017868822794418119369493522543986858873330876928693707187501446208130814553257547510570287811038421432463470663456482725042623747443730567903822594598913028885245105373923702823413742675121855646008400986672795913942175311554498878369251153563412281097983364760283158137008823883347353702852796184815095745091409647509519412978103162667976928403071515452553625195610645825186214237919079745422249738700040525489772543243808810799745165731362440723941454129876102044197281589652592081248040684041969036289489583747365052122836747908151432748989944799322186510006449552384314259718042925413167771046709571452354223139017508374525324384336807078113625208870278257227909710594024822157758782340222578079485442504550218272889349874394303966851486982184011329192969391857948875526436786192692780295535541897196158904339473365540378342492760110031716547501808896203676821437438616668750889548081850688051536948670433505712998180111445698619046838643701384973654798719971786274055855166487648215931729597414457561752750195418542644111805442868345909262786914191686561668663524939881540647094884649881301592495040554573535638258760555110791470024329012443639526627847040393327563198293590016794732841887717953419502836742265799441651266037098479663426399056324938084498359066154376010379010268564929123487825212690004163020291665313709901940856653679594749650085706243807813988230919324178281930376323185353441056791579518314508827122337930243266855442725780117010666334171877222766121999283995025565556024515141776945599796327453747015594961990328166346667037451439484901348455213065813116425418262148987833849652422381176620758958952182362080651446596440351484376820956137281977936816810668807159062123130534230849541651246066107779292095138936202602482271578493029790959337682734805940609717122388876028935266962726952615991630467754954554351049020671532114264115431834572753483619685000759017141612944791121614371179324962431734756337974757102181851717042675780648058212935360906811689161369778789828293166331907135237324283391580040116226331147497402573634830575351008600440549139037182653936081862034241560346952675471532127356801807107465684393380657346316358864806656594343817455058702656758043095291895546768420187325948540769925029352409602729446421326470425716528447174734500454787420033357611650559900184514840492992384554500024870917216877601592209477314369943422703522332374051624963535797386989123635830162342507416957559975294550076726686004042117900757779396063524289448128766324093733734281756476168880832527015531295219097926755619072192394693713349925008484048153275135574838514096290411154207088645365712729220726499623319332180349313992357614528951336062627102423340484506365328725580934728563921391210562286745468120016531811261592649322589481064222702205135369048382163970983765556288641801633797002902207783611918495326619680247022235902902998857560989221388445454592099171390976704470963717194180943152394667675330458715634080456660914429666717814727876570984246672536140665196257335676244886986297332074140871084087006460165862174279488354448614121001609255698169932906430739959236916712324449034900335334485880651647336242228020015793509975936309138873317695731241979068291040123984557999487206516333168779896309115221801336824377505928507610887560393846538659837377327558126338502552807923135685064470921749519264570150924612251332382464907557717322017486696728797632743902895665066920810621999620262278686983218857701038125401006882292880082820301456137190740391244588926211861484191366662612206162213636850858371916274624756471014019264421966025389200028804430737930750545477797994760638956383541387135232819050042446584892408538054566335101911387829801537911245296833330045877446785043358139116392564610983981178830739468219555580489095755051770740112464881635481330137950698048092959192368870089586244403786994796025245460506916532867550574017493479616370841818516482988666674160682375089444725231888440724828594865996685422236273173382564672426444217078485146328992298762267942989112536454210112004066323644529788823104875241011302641480977574558524832759328411441486445596463554019794742464066282674794507111761576617595576197564232134920161784370315124908558138782855751500162999181752030578633481633352146064127087705038436334797388732711415580180755366631522696538861145856141964672116316442885897036749288310768033432894138723186764052828488902617644898287425532468775802343832818287305482450079919338757514453562029264824776131833621355384437390314635454825258634706635280434981257758255213307215891150982689214838110054565421076879803858590240058311893221757856865403448004858144010792330919260863545276192257447359060970007996075081364844471241586511757003226335014967314668288806779604393499414816006923301469190624305587967178642810702294748605361147399759890890233627858258491157889951475458512550181845934073091269829549119285507060701306196752904536671624726117506037566979749876073205837070069467343463840233534504087762151584133793863233051250212702959123992694150215111324982278431643158362593581644891960257013383941599896853321885734784315627538286922462110033119205772614104695759223304876657823486404018450568088085666161433327625261842828018186190685668550850873279779040630211758386257114289939059189141990847969139607486539689184945333967525180363184019515005119495406655161162025553300899594211428227883067294601202983116255481027371631243253671880644290977329467676433945533339018809694563630250033812383899008507464672022710014899450907107692094798302513984980829851238732267696500645040967038005958710025622842962693105387620538513946335855842477077482745498448570091274822753407843130072299877779427908106697390897834287893759039391710876354093215973365516096043158040628254454921114877645916957722146731781811511256336719747139362044185386671896263149192050026021743317413138831587622130344305094141584507025596402914667303885159717749599072278539401071800078319791436004294916427939436088785233078056054591670231674235341959321142299557941703430467350951967923348768244074775920530746521076913863270216787607032786361336303483761600765862506908133502481739663286237401378523606031409425556275857029357900590103856342817139503204284936598424479957653666465122887755931873254901741632723921642418198950744751438025884594834201222808750337542982151130212212306824122200230548587659893472591569772221010776106877998128233943228800005056720275426041716716317227932063646385434274375513575740162462270969157028948804726470390556716550535980646835984535819712906732054453159863467401223269673171973389534607416695569651249292059003193233207970940495036130232947705808736284614333962431175420454794949765923096848078847621671264144517092005281164649166767016738147644712851332634616308813209337236802462718683422371700916431139695746413746069366460995530647913529635139312584910238581598839425639902903324261282333338466322817073672650945915603900589852365263875035709968087625704359869692687563386020470790751435567767683352909985101848742195542525123571373905808951853940451675835616821782885406722808593860319210928070306408078460656907817935001016935584741061311659307829310705133559531157168910960968561002780045365265754209986523254652207367704266454091060170420052946950552960713622382452966862882143317427230441185271256018075193074395623219233658246245607052849178615438363055678514061175462700345008529530148456469831680175304811406059944005264038458221575824842311839158524662629415896735843508359095020838784040775405704195242048455808963789966329000651105676701293448438592048952086161491193938432280108700727950469158012368066052296138556935717902341211059269436591457899684121146596773968786095646752713542071630398592535594763998482771542605397377995129372446667731748393682810515962581553283194365472204019749226030777607117973424010905329518560739735860362935037305417359150144978650106968330626837824870660492994627626288179703224564815001611025104318667090555040815402433832812965385696880112611911663774388888862251840499777680024512239534137522823894549915728468319249998079724308943885595991314812396081892618960173075956824455590583387209019793123157818830934784158751277465298844054146176358112803259388519685217089045498849021433750221824668263769209566902066548736365483821637438853390854881496238068760116510425405067402687047022494077339059113234765076605549972102871977978402861610195787928973662438917904365132564632645787871290721757666619199964393850723726176685957148634485768512275507278715463262480415891795175932993733230392145940972121903969145761013084832810731213560036994676747092874464037295030730255734471332108968167139557594997728035177522140556036139956224248473411094796386996793015602443611075176934066961885127560239307690783476090190368805940576528562416218885554599290041691444560431210269718451568950929480968130381631737348644885453590012086130678938270757571353161584450838068299261876189568190973264310898107785155956073839691811678866496918504172677855243287903471669419908736316373201847863758721050437176803828165539554973978294347094479788024815376766297186826330492639516813969394942288094909846114936392071107903698126064851696388649135777467177414095003655953160977687888894471214153023572452530886948272479747121644615358681289154643880243328433701993578278009311044202393394940593630711188285529553692643262205412956945429345627063057904002876670581521252663526752494652513859136575236077151173593779265745767753250415923517741893778818980594302835041294274085790443591021333840789356992846572821954619890413707825903111482086515698303228834970032550991432552337698588569331783033706613311684512184430627132990626000080286616263614457150081969819448675033597543843861750712224537049334495228014220187447712433323365300406451116387731499996972133081859378629277793009349368612110562127839283055520555521066954365770286092757565846921981201401299263620010535259841399621180128060633674066000729701583007758527345956905546558640886495299508105075504783288361020044826349920973658589844525821326597823102626887625143564472632777672495432923905129282251070401413474850648006265091906594549403212134137201800837875088771430555568689586311238926958545842250822433784626700027123373764658151484908191723920332243494892367414107831449838903165737405062515497865573507377485667699166639913003581730530542527760838139351020988871631056988813523027706827909791784967510169717024446869178765958710264478520993765336418838100028538605021675548984474828177840244610579366746104643619935014802993894930381810532746643821640461925489290440028741023668794235303474070203123873605490661585575548505494526578185036840172991198483890824135145731802746393483613051119686551303402327795381271154062981956054906899405202275898586453535374230260504005071139799233332831323722061986279725638993950575123816610573849946630687448063017695871154708197976337433881853330894936541724796611179965342481730611261041200895242446088671217982455005930179063800796932076513181934582387313513371054834744505695261162316668060056910920393491572670892921919361994850928937016309136287362042567497176042811559704486246490193801849876848107100322990686508393678209361663384893353694864407780926713367056897065145526094353935322446897402485997895050276319162497791749400783960436647675358782121267471827921729747004059815958318751091426718984414701042184451056448909008110025232012810636077450229721804989189763821615376651295925832430474600332887688068978451877426788738264617812650271744112330335966723316194970091333673203191878088826745354884985276165064930634934488394992322128982371408680276217501203775297720274870323093337011042387510281070137309489159368530489549046512108216452214535405252252619385306235872472854372660843484804357936237891697072262587402973985228026826414554661782602639431790728911900499279460622701377164556849975491938502804911216111740721183797978409314905206553603013809924641744328157655489831845980180661276692251854866658005470453033243168343120808789849416789050378423745207618923360152631340838626563522943092755277225841845510948252187593586893963659633305600607804353144666881962390737265529187486091123374671794571046158266491607521629229667976279494920589006734922083060051762780428125181084918931394111655366415142496117740593850873870541035920511134041470316336892612628197800902077276522000135020398530030965805833053848846352557387956271382583044880011126904610627854389940576222384192525896985417565322715045340651731087130261268557080846790784563560535971325280358476285246316728978850712417296591013219327849636915502141726416357570750246786418157368295352143790894833856002628142011192972446417285836516094417302053012377950201883186704164260132588658083267997397424673505346067087157306637431979301245320749868543465697776840044127324787483230350912066002454008000586262512042247172254200413519483375996276865158045990104589006574465889515536206362866429649114035741550445497509399839481403202740826653405942278121927107927064215194634446504761752520423847248942479587457844018391786439537422759588996409427433899994085962204744915635744871700873701975963139759587838762439432489018182135227687462998064869556042974925158671377308906480410559391703741845770917980937687309902817675748304605757250640061994008047948985241955270316962802820708808313455970600771795107017277804319142684206807741380666279665938450602277192388176313051713115644801563711584372811885844206820037944758653519238681656576204469746069977699648378652639712204199917277280138349797216068006763255641827365911554176749857909437016104774327466200392292587863548542338819635940809917458137352692995487329890081921994726798457754931993212443303149184704359673547312137659517258116325028909694961727642703935831645039172614975361152855655142611327616914921132595193655279631688386253796869402821046396456459480975750697915379169071534121940636665314804867900284283268668370261663502440162242396783765795710826707855646345649060618154752925497135656958344237595947577393507578330888939820803598347961535108435649902538270406901519037107113827957095163407918039260970089116190835630924889417600720962240152665149158825153192184892768763390925471983134674122960244562795429081405938246475795987776787462218930956287713991331899938530374738700334834881998880585405818715008241736835699973531495149218200845558993099671505925877365299707765456762174354048513299179203280654773419529043791807461957647731267640823241571036207759311645600427215018107150712305272296776585134439667162507795472660512653143523892881189650762092567305671537061847112416701605228668542961795755380295976762052068356618923140455342039617657630491541730314996727808381183423419433474877599075442947904065838750849583556461935591002991290384013127647351544062584207793492682214374121873884168533356096820169264381111433493436329663697763490924636678451750110145806062465761373863629420182387361951720281214750024527160118116334687554747249616630699907945918787418700955597441178962057038749774554925466615891237318122326899105182524224959399937835959645945218869019739348541533876193947386039012142040746137789947712841329737386920911779612499316948624882491785007833758711607486157124627207461327094816788386819147932052133822654716163519844735024312306124691768728409837084652681399290276596780921600933548804885601831204324184789341404406408777330588115810769023461386551110044018532179344274522328131819303038132742509604751482907613375619233930934701556025985784699200141877300256372552608208268706760151192036263075247582419852299387186745345619349084204272383602765667443612330310267099728086084245996129479474592215901542999028783111133435382373753589498672923679452533709442237708950221346482176979319616619896609935608801015341838437493891765477065314335830884284327447782599449216000765803009984769342603147169988551263564010379453618599522292588909475587414758551301779919870970573796132136751403256464895824168954730594232230288355676186456722171374241805234549736378576208419299639342632136171642069008257491718120696391217210268628032521369232652958849373139836029105113891671862651804338676957927782533829623998263736955107850158625255174710258104146107042998791757082545229048370999900335192801787970317479272955738827982036888649849971442351998990717685055125877100010635988746023628428224362980265688605297201912510637235436847852107187722338504127441558777555077713875384669475463890884634536699358558637249763962614907589315153094694189543226427713592551885941243534735192124001793134881860932657339473498740011402942204130825005812900448979090106737252250856102949233881790827261496886195241803530169337522169931133678055114093382563841187503652392156963517640376988797115105248221368434356459549208555655278808473177589503067393208842340113425763270709430982022177974832220122851727785509322944279336991095014228306383950065621643364427972708017651127118729683533371216055667850178888230277115869794421965308201552515184121722631230984522572483061274263378163216497365047105853864997776280607808190128803023290956332094036979271521048981824302599561560067813710397082975376165557126783414693904351012828057299791011088152172903800088436720923727648089169715843675369979319248278833740533389334613225193931362327980223201081970963830865198738299954612311488883371935175057368250498784491996866825723606276484558077161917646128277768483619598655920626138345247052130326022907000103998066455585297221059511218328049024407917998744927761851536373800209468992441693159688356416563778892340448934389598456026774134666111190604588582172741586206284811406292527329195967332997320518489738284067346972766035821485284183816633267783502676697451234828264569904028995623754955104436638148322086125657772853580407248515308737817358785113817926815380682191923477511423176614241014465452828606901829863234650385510432143988401863736988421634534542455327953253403985673482138802891627006967607896134394649722663817978858913781264658045013554208159908822310214314193327865208433750344707330431507489549272731948894197310096902385631220353093994764397311211401490107899446424863185298635207101435978720776631687145689028655540135308490655394755594319701414847286396603241610327945255536370508324979295651732540544394461977983889447542030997768620309799675124316875499186899708165491161296116559358515130977130622278506614127842370157647462521358725603276777011155196543146179220650932456726506859822966898634591527391129991281453046129573544958928142954906229440219502972608632353266080317210048956205785663611764498644119121959500320114842390772611942374342491224391610934230428394318043414513939176160116406396371150771689478851951633429694726485738037887598038502687525398772402697699775773805024749208671297013316396829559829291783547506252129287090960330995174988009058866689416685227307713127346590294994026808159760395663738187644226940106634541494817409175928857324996441586725609064643874375614208216256879044211910208923693130125155185205941159603795505348473056824889071000673124210918519090431001010112804557573544989259380500061574966001014601196819829851416859677922219884934281655526309058947429075425269129105781652851119153476650821398756088399867018042189896016080262388748589247953413763282673251668590635929892545008604703341611942902721438565902602405894637686905108667960387088942258898063902831030932704249113222073989057499325386979317548893069436608243501244069788051275108001574401243759148040690944403944056193364964579674372580568650969747413751384474435681505232420533990245864161552147440455821412641803036707408127082010727001042387491864687900114189144725393161839535835952884587538866984209107640916402619310236037386988260062729034954403576724737180524546753838041633842521307362128993013798313175073939970846505815688875767688081012609854473250710559298351464338196040880734866760219185104695226581518758683766967912521061768910813568828915766450416103302299596755148321224447644212637895886765188106569821151726590046160495888860620057730868669849907896022780608703901229565441191221448683724763308068369714289163054297397170166838347143386818007009273665255948967968963882264173813389085241788656669009049463835443213021793996533837324251013500426264586632944446294087185895827986316947382125600545550195217564272445320396119218313586117104974190563000727071283077587894240419588490349971718757177164516201889608448690974445546982313578183904817758365118979839183584085818503074215938293663341654076933451752293148529805489764065870223274647782054415602516729659591459708371172188060508992423603532437560317273900969746497099462329275028043795873823481262926172907091283771331152485163485275189778302888986041468778531421129794921355463716861301852642594655819906802172835726407153219052499903094023916861099003338914584948340676255565020349942970831020998160850032779897723658912946585667655432230702372186892352380696124719128699669203629047495670465833852153108750603910613317855706871624137597979254147898542575527681812995195329998552097296141264139542215180074048733424106137016276701347745743915656856906433958952077223819165143082280716480453431798470327799386104642333568080750800701202483955737365638189932442373842780816492113402009220034805845095493556755516142811640991293194929301495926788960476493135248596558046895151765256265451541730402455517414437049045948727220321115884567183625318181571187039301899759680563808605550053305773200514559574795955846872374976229124995846353530839345444172788438452402603424114490577381133387997633845790318739939725492773665475625652878461705372463605887652706851607869506662572498502631779634620534137182942229855684929427652089968572171293334427051615715596656195524764728940713541390052778693063410007138457010682896110850275403538977542767853930118548447774628001766458574742042391663098883360796296319730977101552009355250568554266543641842430577107222269978909068858594726036757519259005846448694480228192889169706684011619766580136924821587367027883009537962217148332124742712147136019426055447729120569629036874464874882798693946378791593906492320100060351794199193552058582648203227767134503381415684770637938352064464115877151973687021278966545270584574794510152678339414259147299663398335493025652967047953951147684139309115558574739402702167531640089278822617828065041243444752470995936104071211250858510950964754303719635361935909088504942418318823992718793142056197409229306506784103345654892746386021147343586145585643099553234600312315469807244620695139757075021803736855993067160670360859869703045181602769386898534918983991853733270421409992774703900093371702346016904568052076641458637294571077976098479330313316598912925495228191390310269045362405759012006225100942806053631973731305772988192318167626816832002942958715849386519508171191597156559386340892569476376148436109595578069164296607611321948857260154950800272033839243462561285480950847758667443227633673429853519571033236984668860740615809037160248120071743045654856016694657230077592321782617255426560633140708061724714701346060015375316880071250351758208158768771984169211263912094981827341699381218743312411182949849379093781158556459025955048472879249072356155667623889903302950167796780793932367932199265820265466033020138678801618204140315606210279162743175411982368399105245516454681819189895054853069109349324821479941090291342171609343385360937116219482654847950412178820936926974828645359560921436034134403082507183211699327638622913506913559616839765239290994742297386164741504786671957107808827353796678771152555272069320128762897231153299771045046750210115069655382754765039053382390356821526386999033072242016089931034745333876953822866690105960942766499022712603402576092272897327736890261591587071813742862876206328262279357364036808629767946122331151282895329901931561730674072919068900060686541058943385895392790050179129454848992224070842459140462223521965966142864779230863574767168458205831530371081742843072306603202175028998473669707314195759570340044260131462235405828709643336925783481229820451716021103813437449108013072802109608606568849425004266656807319209327416828908065107986241806286084055212448551531056075409105623375375155702084755806966151152786391562953471113131028065667915636094731766048608831243293667645572597320945195992880013807093383681498990495791590781477517611943930238362974424550721139018835205799785675050167134482607897932472400559294539874348886369928833332850366039189190634777187265407425139332041976296894808190913900621128787219619920625823382403795999162374206366718887459792086023142305873279210915347480735649525264103840082749745583424955130004898332403230526868432486948103269917961784624811871730673043568727805803760058170454340275782012468679267927263380354961740323284569352521112349046384150044792304447871883205664024722024982082228970667953726747616312227969422312140790469150370544553021664879162965197614073940062030258649621778856878367636113045106562526786270824510472305703687966815468219508405615217462518950860001302470600570201881060930890073622816425336883681448094081445484515994481206570749088128323944231724130591487582293632059147410656417621418056692485805750272212989767206728614202648904424999437000278794157904720590182125877978816830213456804381169025980019728488626610616239161469390782543620284896674829958101805446474734228044315930164329072050817189558334060703938903394724010395439893647551420811381997095703448468285716940796785020678319241787187465034906745168532999877751901982730594164053459115223900262295313874936359191330638259291961737867835495109549527885534162667908104828975270423074615810886063722992287759110305906496742673946097207272314937953222794027634658595082174023043995580521352918469841558058203245096899625528731698895665375526055271483768404513177752400059808202491627432621063872715423095951662267472414490541439052304591883208961360162260473315537057344611010896899127664911171975618110560687928179773132355156121108568121070157545287327014348501031838892045894505129315114766842475608068261633460509354759497881373250465427281063014104436053026744799405060548890197088123414407947966506559641336712470062711409497202066954838028288669006476906957670596394639992824054583030145369836573875667049513680548957450794731708913566007108920944051429996829822208304848488519602003206772766422265176556266682641262964566604698480384197813200106797489101378419967228414099648020318742252661723079430658858659975639468837822114827480524129082832405586331084895413298158399219812924638591889266625001835086827649580647567211865343437310357911565478690665939345073617806051584152108599429491111672500631479169632643149228125432393792709486932218460645427763923685693580504806765496164345635939543721050231868315912265261142010893321985277331773996256320172924636185044234133909156132191466592940283915873178367086020904150838067753144547137505927308847944757902919224032368159324493408040648482117636722893160407538901299691467968057277517892190826033454741757082349134991741033400815807162996557219829897851362495936450661245447328468957427797435405484433483842643704779682411353941002109802206582187412096569392466072768494566907204390225577528526222488741993661160041009588581513716534819607800323164547539578643860150964698379755055654513807598087065438449178629942614874058388324013814397606321632039972841015575018051391405929762165286454862197087974721192401556295788990845505098254454185910882884649187965819051283840308597440942357075937904242075286480892913954895933893337230949642259658314942863291749263265054305857747301777557507864097447591411185333874391388973205598068981661301643724179999627596751025554070892946099427811741277822214061930356588625526764900319245185754733827315496038387282935495140998984762108221797750674330687328284258044961478646636564922201707363096237073002481048555962576197110393232128893976150641916901527471109563877127980391424245730784909619536030601299913869031833010329724106898834158181248751523887101461722626584483349962681692731057519045420256984816163742525514165451130996441536201098582129485380159007775758702439199459750422664832647705177925666084602660500875431197119556746027096732924628390000917119628138757830318228685695113539913017968547439023411254563052266303069212451827417104430322418058500536362094259734410962184252118530333926792942694631494160049216758007903254814529097572442442455737643733115244391371989985998488652273118859067249699680795405477555762120903628880969444343150938697634942952560628084497491554984621164761142975728238552497922982000002221114939678284147086699427131059216177747990583338264740983291891847654304933822536005031071547038876946830532581150718370012320923838879949927862999189592861337902525579163361704633902097922709540016197409082535183281823741723333268267744148443721330495065427942053198577518361581316199919719606661072090513285442798142143606226883983245586704149642143265748165354696751880059819390071283796669214492290488100769772188850545272469260493479050389034383821711903070803253742898225863571537975630120758284626358636081965203956892535977955777158354962097620765169911919103339843242693652839197280137691243922688778860796626197446371887063188414713934598720811282234676268809767537139690863014605996246805945851812703366699415524329646611379369047569355188394373283234858508789849261609763844784704604345991716167334904025361470845357288080689425130900777568311045082625162932969970165272992859630816810147684180111877747148160300401366751531015980523779917841807169572809398081739628806484284632026257844384394105480357269308933299276560975314134114164840682127463097320137205964940506097716052722304280661139424116434333663304797461092876919885880541975410723374473456063089596065725510198763325678561050566140866233053191193425378428040914334670180298347491232242670300980553117305790997774196970225413611276095248298266333581605336545570512818696865090923709151611289221804340791588912838411819972671829597370263106814365213647269102809990862514196056002565799564580366771985718492096733206222958979358754687194169541186828626824417216766097833780262537498757877790096765860410346615318867778575162163018593694554132691902018669769072267718104563200827466901130094080457788727837986402416928119540217431682937229638805931275958355796421663952944861775494092895248702858987843006488756310740699460625504233295525533931776597702582645554881616380358134657837266050075137135235764652367295951022680644381205336415529663115069510790981306218838565817519958014822880805416989642220149697899953877513583075255047420323139475321553206520771198119793058803804612084135274149721248144421286460006859655485328471556008307191425127778955427836821912004806707575249965459625201798452011799622459790090222508115209708025121408113390152752880555216455017389596462212614364702941167805705814298506713592943990698349156638022373723775666340240528577983150856526112924001195804144604392784487947062664352752074747678082004206081230275330779124523983310474290742100742250857139348843441585201665992487706154967025942100781689081791563074355833256039401658966703673086947662842937359627673643664180879725829185120298566886961685048909537710665059029509817331453891516759265771857466495407202867054400109331377651993735110700356321019796433431234661718446178867047733671916586638071513220162691261168406677850106208298944843135615276331977366785971543900528091686521951508047949103482902257918296127418475622214622465297641886061186790908346869756877105313265949772235709354445115365529305231136520769460027367370828146542631164147403497083784914084901178572741137328213203210814133173633899242445883647974998925384979051613060201177574058987545807665319161469194313333071556374454589814375527390664697010106602584732021837858079386703277026663606177209756432094309839962007536898444302593753375908465528371940799607052529196773527276452867221696307668093139634673012311213681399918356493639450392226718219267261857633689299179928348963045227889203747318489234364158189301600062598450915283235629720728766628417590429471988233154187930554471661790171633644282749708291415927965567805272970991908776996535053018426812776059113102272059033548388177520221268829701520654537374635914786188357591570256425467523676430034077206799726171853554129534022027767028071887371727903847846360037435120671348392110374186501463754884530281982116234889599202828400927182790396383883611711357295681153760136016312482885906372770254810017069630409326342306458980073769581746462239224582247386748699877567865860948502114264301434126963435781867640757164547103942702008486070824728875384227123943075147311194524712572485628214398796184526011083537808438153268230174924813841779467208416582695739523630970591109766277355770476539312366329146335229365350260857994144520162226883674497609336514266808288897754396296431159907982651382735444170016281859726873082315219994074642455017571509607825505974051015476335894055284769698012273026082703835762197505647434403782484482429214114505581435842002915113050624965903332378128417291329023481634750278832434876597797423762719472437098268965964425939219158729916562271416888903643318298838652279819851540352712248811062373559798712641906951031255113092392306269714031109189511537147923993990028602470151087749170331305351144171592605920602010678104448735314439822242940933716779163071820266890412298311365593329876743124784510199853695853265103653738167390497576798550632645066373951947073550690454408089882463363542507608297133530663921987123228932110355306981101773705266135393759609548412901447653140163693813717942507012834586455412131035428915608165821582380727534950270046874553816220193237550759578375643436663380188177811477051866699820472154171344178459895367754735115899289438949012702058345361146795012296608765737504427024621194174589508145920686250028694823113477128274157656447110425431365127935278655189985066024341240548671261068643500658617493303756679708444619214157045138321327038282952139483389446994649851089009979000815863017795938244159353984631874870819354070174345324127499866480666438661514981441099484481867349479277844715027446988365710105727544821081371819325484334470867658460649248259340870644242734174670036615980557018529733233339974026995429758983480109929838683932518479523215163063943936009236673030803333123121294050593336919301871958924926517759612985477144528903480510869852090728992371052737160864625491425234612893397642910285590636659666215310821625775709060034888073980021618301848227585161928258128866806954977602706337713913794264368735770773694390596895412967381023610769641045638289849906898172626778116326583786783942661403906158231293503558264717871679516420364604334677536318555610075294552464771133412674489224877491969375730340997003731461788659808700372783185265567905230617940193217362283345442465360443124592243578935418854075799142542935196627524493436274870634850712638362887708490761038597099183216544831756433292121551132758138633577632860027058697410721873992009161958803116592653884693120097909468927552097312597889171232958446590411360961139053026435816660218886629598346342227914855398919131968451204690270838949331885032106723689348367673698734606305351951767338711457788105359132673547779825429332353910950311125180378424373872656867572582616746560317777040045273929889537504105241690215355374230260057892147444029403738989452053002541985238546594115368238946746487467417862005622132200664638669227191918955858630439592409262383119209051320915884537337485520682279120359900763201400432715240012542243342592130143373088611068035005292371004525854476844957448182216384104464300060169198632917692789761360013985122970849724087403599434549950799609133630816066655795697070056930584194901087719614113507112515552214425968975266537498592925490045953895201213401292743822806095600844819317202353861977729897937213191609355190102186947718324504256248767337821066310443500283305774500570994822342209456941859133421067647624059843917663229454545147815710597246873631794141772564912821128486592996045847781234839773642557556905004751133431226315229320649067400952164166017521019286541336038872804444394723081409665512327985063060092044476147847964603738946507113402516573661511034080417343929432057466044963573704838598909487774109406372085128304050899415080803804855673448312019262922416922462049604567247524148883995871235267194221662411866290267290998781233311523802750333071933355481654585560374896892747807581260270838084671454086666606578365084982963882100017623572676462840106411268501860983711311940102185001058603234648454442250995043324877464485684609878979931921907099453798660076200632197617983518050368789124735079054617913974545014626526150553175923563145227285508735279369436084944200584455330925452717586615636479303513557632171760324560110831393883799252132010871591673074739080241345188913478506455725573974143907657475887462947100675915082537482495586999648365982272524342087095954823225911417813069600168531856209129487347865147818338423648920353264332167182669002671079256298366392703699139510701208471020005789301193744267691671935623348447026051042681777729316481872464300982984799437208135222742338659062089106361718196435661981299653679298394661054850179595490224163230487742462849967532519683970937621792223951503462471179832095148324348468056135866702370234073851139923551820833968364458575170240423479957592537062815927117004695250271745690232275591689804614846706584990145320726450484883096097767846939507478806612767774620318717891736945520041604453439066009999594834888636894760206597778030889410714926672866808875087869844728693209671807099507339392683778045903803754895144809912086148781270773015717167850775233140784197428842314002807951026946917432799279016004320620818044538818657717580089080645352529691889340064238643981223993206534667764398468635615661518585153043952980537983033165159508545493940005975327747699902711102598764240356899797064517135786589643061012344102752370267998018058499400274611702412082983651329009027816847411655334521516104266904204372555376328262098968077479835244118593327805787210475218886399664372939494097727747901348578119794321857086003185827444050876646937769771220396274285901817932357448322913786266378530881364950677459872565874032467045097758997952545792303222150195827239017322032165759843233705611693861655184016892989787389300860104850503414462386335274295198440035675917662529143237399325687000663283375676870634882356243532239285600148203245689577274365618209113552847877224738096896143888769681388856314374774253374093932833439912715488988023090326604007777241001679162239937416490864903586356305909824514063130041853856691477938470864288214147469140729240449747725909807842997958044385787546023462092105379701135170376969785803078140375917183007980632198930325651728279620127589185571905888409299556068152184280104663558585580653880818212071975517287334996882092479788870554011547878453532155127469064773704555480370831390729855249885528034366396551419849952123630218938684440903242478410020512287164888018847611547318135514397568380008498101976874355061114538873995901617004507400620700100052294898629404608506234167736384522590024217330896606845803522744115658224341063515028032717387536869971267428238510655151763729589218843161610762318765015886340298096201526817782882032032994312376921713935814089094399297733330370818882551056369050179085991236113428452333666085299090568129617252161156119862987727336463641321763708438855933904389015409828593092060861120012054429164073980868220492346394154663492125337291422023898555464653708136255857387694311782997359957637460582384894967820216421759741533033958367014748098620597751009373861006029817775264978221611803786339515375607656064353385826618829948261925086544641132531007323578144780407222661558685846700237571412699835481046704723447279980965771923564206880812663786951463806390529027114695798736752630322521607367830019282619801734256739450250319621501362858461676563645468680435490013181483479980669131820832680986991868021663746068716270533399861098489765859263562889239098673851180049056078382604255948224804495238735748771439607040379410317200550518799988848852678105828468212487147797988639183014955262833993799167248050862058537702354415053040474634925586487564285712712374811302588124388835701031391098135140201732263903524584268113745935156997169487707864291706490412335278323896332066948296642428213310654663501928850092560362232632843382620693862997631598942835126794365302541361961597000152561326969983680137338432515791686691499545059714386451615082303091909574975714721590721501317167567662514276541665229025086583007332807365480542353348649624018929835559226643533802431773267717686550880622722426900511247395153997709028984496993619313136570530171780361645119594530958996956533561553650097698776285663063765214725885312906550394628776140393350087324541559840929606729719716943058609717187318843028803241473886708488362968803235034229422721031562047719378323105472898022011233832823318382170444014430405379497898723241815632452836240999153729890465179144016565652836809187626519783728539271167881982625071268427693784961061050483699772485199225832946568577062606675536686319435257005209307534755330255061313590903592364390303331376580533234784605263627179803128269442478765824339901274593269702857879574914654360664242876893583764313941152083318429741027285296243760494697346698731294350026039037640637827648338246979025936155733590196989142717193045850709408947796692523958537657041283926577450841861441679037157177636473000676086956356208250843596345587227065655419509643698321126860527901876558257055006628894087556637153018102945531659530046323846093104184601975181191150023407116932902951664562583492970436179376897991721627258267798750617796486263563811974226650322140819853997526551440932779917314039836421529896008033171525111021950506019988399368948009342593154015986096482915553911512697200479311329880578430480164772989983735158387152136893102668224133314425570215117148888620533617006737668965736194016406385130357526634802344887110491842989834615782536582909885851235401221514219549999670124123179880924199181222936624911444325731379949873773846916432128027185969393885612962150830582492490267696366638285956001956151779854790746138192555408225509537778292960599004381329822002464805302354321363622939314931829693519674263578597296370570802354569431762306933607873849583132528192555285751316055828660808286237590843690224386864562120164896126669026405713582144637466546594886910588330085035198668741564467875205323207894928551186514327057278932081449592595646447501089104927803045406795868996163810117154193392338355868851002397618974994194035128495734959066929028535714375142801193497035283512419828706621999952913172018449487908144092991265938531537639362807665956454868561983394569038166694435644286248406519376553562365480980058634567740925693860579534816293956096181037908353881731498497538692986239592497815998580913609859807924493334491818922361073524097234033266761680798973340998758138498745915266301420168823873029115349046026958379882510996420032222474061591940063703350717872249347857612785259647218155266694848785158918118274425868203016989089917903162467729828054629580223142488294539522315243416903200517650965820117767204709323703727742799231220300020248672917632665806567793898842286885623478198028618721345487508907812764296757978640917490406478507589830656097958075785836481527394454210147932803674901364348449240494980438530933901627533045913840899610869137025644019418743118541923737631127715912593459258565223323184627884939292569855311445716423167888409220328805138551584260549987615166672242422732223014762826803815152346985968457933056640626550550459436439768685209064139539064746319918119729164476613209583179146647698884341901544895032397052312878113929279590540839392460102329306262572008460854291852022612792658135684110804057793140303644041820251371293427778536083275564334615582410572356226786777982876656609330383540226067125285025735789411687246957584922129152361179321071061893058451443273816224702869742969350841989355433747344583771260979201266962246999318861358159010101216877009321719216054948593934981635754193072688495678549989687569321884339400463691564784149396020664004505617670374199470513726136415528299546319250997567155059462315413746711141660996795769848956906429950179717336381167964884617874327059875139395104448803015981842455089329434863540645486424414175802112167151336554430404877394322869971413413874442961242666029663006787527975881152183127396764429672723428392161076830296326237146178966722685128205301448954658584641392252762697649222839898123239261272514531065334413165419683026570968110369474702694873967341514526159539476246813453834668185916465447605835958504356487993896939621623847660238606061533150575198714692445808531204259519714459891691103937110078335353887562813005998961425682177143298141134661932284478379723588862955768728804346575218492408247436830440553771373722223225247399770830344954481591990274075580549949052742560250205230805230815132302783320287627334713121037931835387499132133784686712020342213940288305343893674090559033746422422360077038218475413279964197737516146305014061402031162236731701185976648186579560712553424669699888650039477852909656722912346625844192758704173163272351119504524291017297576979077400882241060087645062524777322013313871747079677133049821701634402222798907641234470704201289013479933180392718628252856998296097144508153075343336164575525599967428094400884063524014891841592730194637230278972885914693877771417470537828242973200874514685968391940487975323422238412830402509848081811544847678869644285052608337968394155924892669665974135981825271347805105806822471732010095139409709665993537097508707991410861967416534212906163022730767639903953513217090684584914670190795402364275622183872270656848097463926012577465442538658363305266656118600953362595487015235568585857757775864079140522715777068667426918020171988383016064003856639998202626394621097103139492404738787219609479818372574911880497542279190327841812722049022071750841802380484589273104665997111519379676942007592022526642499654296621673987542319013871939050974508930869738548701613849546588489485750107597622277642630170790773692598768302462268219399275535067160320435520013603983548537033570099093210305505874494337262267076781532955908897373090868042821963287900159814380356728544677062754161049922949728129468280322275092073942316860694929338815443636783690962238832654576691816127506359358941637644353683068621610923255714593049607157214217707463242547965847343964212172095646520077620305602703610864666784170053704037777439699369506316595732863307106086747002828264573176163386066597466057954567940678504980972431364014917379958421582390676619188665372342021044178150128033432917223452228464368131975478956581284239737605916718601581540708255147218305275423831604679483175815596945499529508129389592745835130675628382359446751998196795757863289822142080138918693604127034171073216581846807103545170067841337880769771606823769228030278033422182067396685616707536375642791675692601523163429238504065109236928715228290319549812379824367468516889067052205130432016717261314154732605251085491116832746421161772161636633586959638938919890014676544735705547117822289253798684910197692183408913414059559927009543787813638033762474082548834984123648645016345586668792178012438861229208421353721195016775304497684368492456708994885862376733662947277417807285075565341873328380518541916578493696875412904440387752950556808584705051683276021135364688444044248188665585056695810916405132472269137729428232884841322789628770109465464602061919599159411801762661801186242524162443511273009686184929680806001058652847573123144782676591208530617424147189851393205884128486065437101380063569953547288147940200795333635057671987907519917247855996980334868845424969830074110432519189347067887525068496089993340221638966562356281121176864562738233544935398538629274352128321610802890100334187416712462618877707293351536328864035014244792797094276895160206992351350156648489059966287012725810770138467871542550081263495230815818254917291291963613641537450780865961624680176471400255854203069003291349733909467325712277500803746642144888767215210663579573880506892128172510740111127910785512287131920104150416137721144605726791905903986735602342294684298478870334583930982135713580497935720897250968150956537558906585225433082671830735016025660282370055488116897290937315184637926095456801223783314534276959699530656790296513684489179871657866247028351959672770457323825104486674562878985385163489593343909712991632102837276367136892884999233830889127248285307735144508841020913487235347352570723563598918930933178500193387938085444705862307098429666817958452466289102044950573665480715219497473218612390196719605377753876216661523467392433817500850778357095948557623886953310336324642878135948286912907678646401034840867491480984806352865398306644006506438478501194500241640618822633070254023923823857656284066174947629694003736813416689434608787543319934176707814945711277901100270751452322113501841117985552238232839843590175275301400118476237690465056384690595375708093256832317171410121115224899084413538664273463896938978046724012505878293369998963556653791393972725834997944125379902959920943150550897646110339892800005191518276825305939562647158516707815987466200337667806826930458033655101080267558211155595264402364258153831880912081456857765778323721258963340712609639441243017492695223343130508370756849073361158479641757614334738710206982440530350507870876932926886491559592634063783417093941851509469231573891788643643439374902016650103933932175142160575636592998765603228752288202464164817001733423625467033096517373535812260729452311943278871371834423955846416637737926668351597705477778317845489965009022992079075601166901037436810296870677287029673603585834743503830658214880576124963440344826680458301968233845317909222644336877729500458384792736070132195981914223582138486808561522781703566579449229975384774288853265462541723877416849706866059745198395583908453537806456581036941044398633779617667167834517819500888487063664550006257869039731247598942163345004945932147561540861521653180536558547798530620369292342620768338360232626283005267770367479856732727741254719541168600308570963580964217835251868157592955483507398852265600439842829520339209239551538181968588801132524262676447493769413445929125821578309237546648763345500248572544936078178851845730029342558071539201803870182547480161512632637544789581749797531402840115897206673848927192078763363921790023381282840614381908389317221603467801256037334331486687073099948308621467232913247778712734092461811151086408876943298251432390441319041853233617902764909538728906503249544900034030448370236286448349524864300130891580646482417741561320650567227021784160630081858789659101113595361875810548080557850667540029732089613087216476327864341560017761319036907498012146679564775778321669350252806333937835511835212969342543223668546375764718209000265754349994632441969451666237516764179645373069203095337803469001498519860268467405806694864440856898953902709221281855541462973815844916277596229352506997807231598363972257641439023459902936501137069245838211113447758949544382841167864406138717407111570894447287414937169077232306372183808214404632707249940587666612348563199165818046523406493949657007761997066079781065048074250053501924560633365326708134497215980623776921655009774689421158544226273864657860565962543457089485478680366511489604393310757521147009097503056771333575928743551309642610812230571654734580422055561732871749667044537998336849246770934194240466771484967535732827315278271023687806147336188683743627800781696034389797185172421802494763101767743974429541054562956883711371963555742055124477361948095054243137083661960899811963689222879151890626987867610109986148021627975453488910450965403941891448500948456169669507058298698037406735053350572494174929336245567993908130156634312834511597027588804065967054462726912582945357675229681552314079513302531898961365994254542855685334031141006533277035364085480363786439472053579896880259514769893620042293453281477945662628479916328992348117234708205770651829736469588494969699316544338304163519283697553280290578790944499604715544057606693293220491505292275030177208664593381604301523043230275825555511070133377872109751638530401226796290464312588122076834894560398986165147777268232871694655739530572689905771911489929695879620694288660015810540109874481565996278779172696062503403690584724957451590939671430299841755382153133643523497394325836303848558294446711656805110885274478318568153567342436978087773704671982257757379575927034236261448878341477988657503787483006425431304327892812303729909436246237935438866386067831460848068601304287558508118127764484945464024937220189946355951744412359872106763315160244732863237486902993607312292483084371467536412163629589146594456311038079492933606124312081457665951416485215976430582012923025409492987501290924058690969475757360351472610891572196228834548612962021197103061409640324416014347890648086575312039413563008697388118944152940517018061970409108171056628714350872544342806478472311137055081786456967309770563689001729481414453063717899064022908265966228033219372388738529488124411791258478651363834266112044544103379910767238763811210054902400162674651960942879921891332872162895957610653154194292368718993435797834714005898745093893256727302298807047410894540226821208579035587416423588723201428757131402379294568906524532677955082620365233259432731488204404298527386174637572175403032601493560357224436096620837819087911141748318182792315990492313428547129480315881968941183846749701534941684238240933253775974857679394047213196846204243807622289530880895719392403500161317033934563009391380651996505432685470301963368787623123932744811848486571319925755459133248194102368669939561792519173396524185278466696256785747338887734952770389644078684677594897185292419218734637590460098255396879967110964534119224225555461023786616921476520663455869634290193167842824256815083981360180637667911236356748690827805932780660465299794606666442888632604470540949893979410858212549393310715387162104418297667651519491564949986730936337039575950072332263449624878145873459052912029852608386007063346781792420705761780184994292461127650698708815984508568695947994469553584370461283854343585513780790274090717788794022282205737956182085924971404760538985975339352614961819618345325788604580717745556768648333897105230394186012557048867794129185648099971376720905264697099859330173064882227898778136587067508569474848115964807721200650941456511608679289287733482178503065773288526815402854281704047326211643287177434612518070451326932828602404843216970849234687880939327326451534926806641562295744377698586658358227557571607237526082844881758474682068352242881000168252612398963961303787718039918906106477764359032942960187571409914463295883399824183241161827171627575269554867896003178118274963347106799567399561537528151111059021269550651896495308196688017564476257987256555282600255260367670907676920305310612291216052617462421964465459158447099302471529915488226032784281120907952632585155118841706053068379546564722074152772113863307096456143788499118551193973912330631957666022575906260899048633671216659077593211142359460358901907842856979537144536679856754789295735734170698528240052210748849704078074344106125031625483414142480671182686830027263471704703441431448758239376788004621956941217953616277947546755989908822533757950046939433943985995893425843354212877530356773020851095204980986933107047700255223846864572985187860220321605506242725560710459152644501251699184765610349058089872989515313387908236629644000247834526438971246685444672213372764313584769989111491996784277197796741239901256205186083253258943474175107306056136531717435197017600310659802168313836605779107562477987658805528079119065970121525508284113046063153947434826276797666427706598063345498745287082912309921199671776534022947855714959294224469567517602265106752272324844846353234846836536292643305917481791988559686836818288921856496007682982686242045717194281477233082542576183256758727634231869379181875698489375139618029295418841916647890333588091031289494515970183807421885574185128710859793406223807760387536904148172033499981204439359073863228616807082684113975345262381267916641937437852154778989955133822679646122113140988477595084678754291002782530730377191366616255652861073623969482701021697799144216308250902428819848425497063810276426857507799030895796627619162609146747210445416380003633637936655082013587157264397135415581207322148139830587795105172989220856765264318933392960998398455209498781934780299827962307255785516677028859154179381064818777569926883196199661601401938670935372169405252654979103774288506978217491955289833384057430060060502887517304514546273808495367467263001212277132518535243623780600467859704638152400920764357437539334561557937306376219348306605922163556972099576546668916382727092913222419321801821803550916456644078132079413478683402596502990608313513769357680431245561810517991817476684384362408134087461894482175867448465482922657033714532073811643363972389384312072583495571990494798438558051442174051389702773210755645296713425362682583716730873543006948147415445625520675122996328658879540520941792510242475893449645538471949073483018954624566542724154964365992272345694975987840702326140679394217674106336201076934531752881397621106400199074472708003643403972568744240955343600171025351923054204647190434757425934028685849229255427398362252214064400224009334310989207704706817478994866186448443054994282690495447318201645715966255238190485467161597530354156315233421048074511926959077266719130841863151324690801320986541505367480004369013253448347022501806010782622484267361402916281388334911799037205935496340622425469014158580526886251151352106211778987373576649873538803703444947525010338493439630246441455015787128998472693048386037230170637081997439884852559444066323304508241435999742670982008033922130372707573328453772308869559766984860470534181754523011046178309822501891978233993762065210605279001337791734222792193574368171639098183410676066388566699195026295949656707621096486523774776061602535961932354371423327356861097948648071982162579970301235032709313745143185033209923630131662526014329260557640237034045779232088832540878223378046787664432680063468146782425902465591736348315142560873673244462687287763461888539200060118508444968717589694827420170494531677851040502095384044832896858091614931216435134605575929146996334502389290418728251801780179140875500839076496289625089082717795144253405484265290794004299492489671314994247785679328487017259054089230565672587817351541334719148067597650188127224651791215410252620254981039621540426139416152700882328609768877808432906115831932719117240051315097917076219317256024322430481610423185066414542832610524804615292646454865318622023878304815557833696347185113811330101151090324007952760726326761987740818151037719925512801968439340572959152646786310925128484438809723176862044115126274465381995269221285358685507337081788679059407876022712957900776876600676077437655501172915392515634589042065501685955382459268957702404452136008253979455109252028185536814512057887008188560132060787004791494880608231713860661654850561925787368215587966250317015839098446385817963774977860963698099989512598432698612706536476449030941945848866481436918297686313218047376720958503915730694662395743786852647872561609357747182203534396314592989306024416018085411136109457204249605085992781360987504860146089907368155335854141741719923300413998771989186805154683568187907723415340633899020031028900620706741963920635922398193278759044845074958796328258832707793486179661254622724205814696808795443337029834586501365651688144908044733016681220518107471856498823011228211610298821626889404177106359999385579625733424639570395759543928726194595892634211060240605925966175938604618775786871556152840518053513071023560330057879396026952757060948646118497589292569981751731273986152993606626512713053228039513321666939795663850358064878477444126595717579651302069194020429910690019660426759713298680558682055154848016731976732089071505357313016435359038564067275626229177372525295246925484780334490043595958833536607177003246170382658648231939344417981089699235401457909179097789076976549408199867266763822115662895658985688481979190089548120032158833298211425711508094398133107806120215294918688916298004596745934350592597016076214403274939784167502614733949098279185030914907079652928194641669583945311145236753898519388995541041172908401052571908139812698658323678505744280888179586558633414220543037956288154942682649176817703643891515544437214512094970083771811846847166371577380456285580256270008126300132832525364036794924178619770401976031082997082185286115262615162136865947063080695552863504572143545350833332973797668605503057627817131725356005015670197659977948585783726811349530241039399337555895318395023262307777274819798701018986172643941028668745457839103248554401777663635887579476276773368789300674339622172071262627885144479185227208762542102821258481259228241423596497635565799218442675028496610097406648511424758066899347780801283610269970847895292422950346204101022434676110054118384423408090878065076923745794078417496290760960305634790977773894992336250481636346224295824117734068510276877186933608799407338203412605642139363445209196213920156065446064597101106324258174483935836336730253844778082935397455645467622285756525928613016774671084247737495821679586055289934222172278994739040404051445715630425017087340622476449080373503911462259063527278362164031157186600452265408833259811076553064772430242761950026485059157742906541023115272029279872462989001270149958239346120655600971698477987630493977424105194427032732789205582228895592625891537776751916131787596563649890781910130098823496433409745647997695260977357848771726060189718354112117514941610242884514875698899713204559759825407545460103749291638892936307300502862386127422296768675073038192820862018845553485427393439964497667293955228922761811445969802723575066556643756597866480832938992866071960490710937282055832062660055809262933186874573810129688566817644781893738057040898771797029754173907251257337219987839459227697441079330923439890899836417127381161480489787012266316671279186054192151338344564576833934588641121730251732365531154108515746094969222867206939741279748237696227616513982963596981308670937608312702316427133332181075406590740679915743010276726997037296095756070267440834455337220359370129978683420159852166778341394257394177023868689270167317464117945011293076818139950659924018334012874721237903743183189926662501171812646471634322160311130974078273083431472899897445766158187020200620863022580468435804837213618955039231021616189508870089370685958811943020555481753526327245059808294796141557845718591546246221403257513858630854133530604768527785163886407196964458178543606388909511158082150123011322554702050914777879705386497445940841858177158697055517919892934375315025337228460364289203855609953734372241963725426192991939973404400426535769884945110618149861234808834063633715345009769925194979033026293045144489192296590557697228613829985707335077008089693427615841161299687975716589527596398604979817818073161934850966800003555505318312622338478278840249083543215887088199520284848317267871866405452011882704967972359999292346489049159035349573527796826981976175892689247747309250848368279536659710426408233510411930449088075483242117914321510359074474292626995924061670526930549407191413161338207328918009859152577992874213554585579616443744440368504332073914502688571860098386133546097394521402292274858568787422985124670789107046640285811540208087243897196011893647221736982567934667723642830852102007111371714803255163198540009051314630003223429124800627336967443079894509981292847410843927914031783973703885936767850993407301119143784158570066749840701277684310146078949011254675476911539308454025018556102308903199147523036506410588499460331849069215823005347700781781415243130849876200121664323395011551369568711161906986016660374839206558987801770404083459502915452226112996897427201431332263403343356201189364109923126916164223930694621419566434460972264604573301580765725357249265941828447350285208515815776637609721341322343784044435206052060460065598376751103406248884723091023095242447241542473180247166327229543684988709245018719554870781349394409683006506710112924771142074211985921897850111342187087420321800207639645467956671060617643308972945222626905645408990024592035386496324007707848859963278491297378832788773019442205303210796154441366006958396231730113196500915495774912420692462376084427095085241137018228593189189620929684991455046214195944698742521818856951875347107902421249181380205108373205605076809214892325103844597070664152322099407251934447165908778921160191411988347844815236428877702996302903466440622670852804173399601794899483439464292283049659959456637380338879462746201474733205354005393237353538600802947511294356014880157074613456217995122380416888310867124267866659120526387909928695477873582513888660175201705341499115832030963116840734980809291401532055069138781430608968003942195971971461508068378508127386816514823588534417695350323010247742628426155537296109464554980982602878256457590363493238616379663253937918278721140095698791474835513110498316545498202722184086783729657570884301020614439211773477010647981194754370778027329212046951009307902467686933389890699708206140535838311744252618974622222407659469119605501473166100064338144262937972324209290225158322407638223405974528639178233229275348365762113220807489710017484751738441471883526765075940787586765846734786857246921523970904033143369712411532359863289445152804416061830166607014752662340072512662462285942374654290804898860781055933265707539557987298495049536743077196971431657881618866020104814969288951627224168370316542344224116318533034439241462919244874380907067155510771235484922034153344859631557925073840569127457221819999333621417713887923355205346060924854195789045834264931036124240394120166962805306221500321443472944492358357655351006262573855521730867176708478139188664730220160474585729318489060474992219708043937486628247825162673082306707665791026103920021033081480243590710008738573172409411264767189708772828129350150961385278071935471887313121455783754304970381369858306044547708617520724306857199586681313788147929822922219436614637686521305895940079341909474157662503255073513210215502370704774518734049939776494159845642564963481563113134702958415084539387637787572317069894592155409818447398652396198110201598610764171618028413698495639162700441165589161162230011320515402847203784698940313488490162470578171808105835604980053867707148669262811316365170084666261283501416476504445038086357005943068911825194039376262381994562330247297594864165849571314795076007320646669809281068227417576695214774131371596069059626411272045224958115023533036156397202194101029355724573657104787282105504173764080999280761024736963149387388786147539738947438306968116698455016387968337617964194291190492574147763204846832800897275793434206960527896194851412619362271427417401889594649409501495668989307283768932948349861279338682676065762810872596262300669209840090043396191942738327551899660184169126009400293681638732665741146739150994554462100215192938142603146316832981301371176458759894522541623242596684959001839888723829776987727809506522692204898528128791162959823140771224552462310305368169296166515484938761325536600689972334233752275726472642619839019134827154563472168292433948072557487677473837162302108859551513470881461523242792132934752751138486923609792960208389618582829203565340110863510561707854968344055454388433232047304504760810314511225620342850043843060675909850881354907068613058473101083147936472814678715735889418792265560133487306252342718125066778760744038159932579592508355583144735445096407245356718542479924155016293527670877802333872322876800345083073988823673672379962253627715488952652809469081813969353838190692824794911662562679085509145501248349094327124267290133760220796560695787645985378388492762648868120923982835333404275149881958684155194940197705672157588847608623936543412107579079009576161287414378280969012463639733724667473952446765278972796911463312421060110324956276659214680996199164532488045878978723754032069821271122684921616554471389775580558552054442015398257868597879094854755622756876090330708111677558891934615190253403494840233945596734918397489797810106989960541148231459214442433616634166683352248484184716323855195349816854385556313281842556846480395871072158775518638090793908873991356784400530702896023159797548673607861635744560613362395759503589330825521878409848005480082963930991843626687357562956834237293886082478388125231396993042086697198330830579756374095425712174833974178705712918825034684157326995259823083403611100892082906848486393650369913353637112882075895953734405583048733521725261488148347369929427606476819853301726576222519726188925806462334818077869378387765838315241202470330280946676796124656999804412726441214640416934444234910280469772103769880052376339077647814886717095050927538053937422577830162736300401693822016016845412095297012969049802856976729926450024591241736999555521011214156011149901488394447913156477110790500713475450166279406532485237383729482768258520595010554151019749130204183657320507315434640330941771559295189035314108600122893989337453964419203433819147948177946527839899563093755165843884816795715260172810353465462146589610529564179075272582453726358029164123257576726262062824243564608251674171903608150934591500694915510737261810065866748133196751192268401717190713654553692275842626166896140316787840674282483926310352365961597312347933789364153804464620273648281923444064655230329865934014430389127303689338495437670770990734442438116412539017237441358413367132904136969042702569825303962900518973993816859186467450226706490828287570199737496591812500206976174806669895857987504294703293224195717870720152328448431538282148321211745674505067288364593062022105887916095122584440399168712989711257447348408710651391799833987046185399369757829366581921552286712656871969824398813477606149627499474277366514744126084780689360648248510502862696924020231521454243055530621759117644659768879686614088744552378423459141534956192380045519614424830916341322008269029484482314018522088571977387942935304098199333410093084300643006641106699771390799740889929053242730077041684702867547224933891332798910901253924324854714650264384660630687310959945898542928316715214988363373083490161780257155336659930216351242440372782530548526007836024617059458553953861035437988823983309217293645227741518943944260939966109203274037777281858826900903727842166383374836431196073884032674565448835103642852060605270417932760643006718455339936831299221515284024137062913883930228701984444390185585259054687025764041689537302747163920645769966003073371659769819770523711033749500918646790720897267759685271119597300646905605752908713154295676047322244297888727485903332037957037096345304283796584665463869215634578292124410452098108486190930189584441866872264183095708065058465990770311664849273454627996995837898584515222075471579970481741714706575967819998047121806888210809762057607484703274296553827587417265318981559947248801062875380618568496756712650369723056592014992651261313317909920907389560507637247612084542755334170567327023934948103444005130386394748526866523115007223040997303350947243466765970424254342085592024307097865911178299564931927761798454394685750595907755894219956805935431955462461069059959134015878125047032347341751935107072796763239695442929976183549584127762648034294327396614401928473899337318720564000931179124887579960017760958090406934747606186998584976827845479779637805363672168317861988096775691046228836303661092245242509879750498207620362029153473815827344123805478102538652375116641157661407488262664384668769749241266202973258845439730916328450563684486688210982564441697682040487643782014065362810073590847049194947212615148418718531098535393305900908201734535562571890895218689758770382634921799184513383685802046008861381767882851165822888987344107670684853213883588468071545630417861181118533827146964192634303563061478582387197176928479953293937938938604112699404022969434426233105397359453639347920337523301253487789361682445631733470628040736031745832810491700584980798579062161783910206428300706542192904295975203048982374259378671694527229719878383319571204990350100114151166902048128016927614525698439000602727846540211699343084238165537936485826672466785720232531466515408876095547332895196236454053458831453125277907263763163225307003063104320408214534353319883092440471544491727239308119039816927451125669501118178930021579207211836956978614720949989529501028886326614526435275836207698649270198365175846490326182983179187487811765053586051935227262813712491220967735870349169887158928704795478280993989317918007003331480179001927163003131966506512719090992390424665182534337494940467085556570318136980506842384626846421665447000122782121803850207652439730190115672994815630530909711339047398607569043289671175810097749210163793420571626405399961874474449296847916920425961172543427280017262683254329071245691669411797877512949966547219821001051634327206290677610322962890157450668896294566686969462195697117185612078935791826541287652240647486549312361918631746343191226321791428705598829878934108555362072146294269416123956234672984426210776071967629008142279670230732021737286528904049556783377625192791253817557707725448820829946987159740234583389107609363952101903495994240560435381644109551101429615778690333989410376086369190142204621217742692946314196533901792184915211537442947778273371388503905470811223488376542691367922941294568402361610090688604772394210072108574513168887770859864555734788248095653092168843984729196662326152858631072032327544306395102285538842462587087533861180411013449819236816571307709559292066129048101237021991907408382580186088719610805542046023082306220655444583085662620364439700214614268313923246923356627506440974487607041922446582021109118385882552195144259014821819225989746015392492125149719139460687543743497043620620553798018947846164222956087387387145978369560938715381968729878832907690453795780090815667101935782342210800238475886489942563604971756930597401943611204325659736887112233678935944071846080106347814018371550308773958230916479445166525799933998876908011542536798493144310768366520828834401009255166243512975781879377900234966094135508145678788645205902304224776008938709337915072930628180535733168542957146337528847145917969760933663489456632056808587547112109835664505783514540816726890367567479459799203435386404982477633152830205179131523811887105957119495601661801041542514023497146255421544081159273614823661376332210745975503142555558133496106836372309805382238523662444207095907722616505316575231814341762343132068273419770322386277834308940124431398236119796713845308103089427587741739410547333009838391534812067966626649213196432451040882875087167116029756477612755047933911940113349967222767969589492966475089613968304067471763498982299847056084483838367506543773048333582933805152763602929171933275826991206554567390550467205064250108383637241425493495543931262435438893866736628140040104112802869728939788051367433381839637648084273348611549029823439757240090119448813183874517438636340138863887401227538079261979358941835192881352037227600818208593069368954123074130726445955438204705029048585151316198709444912807802287015493488588820185173151214969145929595082841812270499775244584799804234556694313887601115300015127483647118848287073299610408463789576968389469091447184406063148401287779272985382631240263466405426441597514509156957928547386044870555599728349779058228022438420736852432580050802898911423012268909117505471696857172219896092703998027574321305836079869009159013228011942835556296153509269998651536965046883653227249519405796968898594290227755273517281388864762382487100811359710775248146768773528440410508679611128970098890744648329408809927004065582283465443152173747190122947723865008973603942136448193987046985241155206700677501668507321592874673780359037531900317511093392832073426938412715150362476178789277405583704517834724644237708503288410493122877881467459433361598239877211957771302824326320650662326030392172438924543863872995184061278525701611096582612115580709774733308178714010602563852021830027446752246186554459359692740708398159828007515296422606500563686289716326325849616466274239375695281331089983971692638935245659104659684579579609922907549987921488133252293097071451287908990584212202769589472995740322212766511689322788659030001996227170727077843335143055842745946303166344918909025937284488549749771715646974785365485127506720338900233357226844219107006710091216107835891986998773675398615661150881704062028179412414974789371591774101876848837374788227609379226349569031682475200851380483423484660872097583523392355544610822081335110642760553991067471426209292977153600127950415573779484684420690249838661993837174588954977044275900509051869673221279980692686291451057140939658044782918055988557791553422062388094639491349568139018270066921530077022424828301062183878024782108526693934643651391193805295501877802559743226375649833918899969194224164115066060301209035835079043189931286600344059707836674787065395612850249541980429884189627007375951248977911790368144827975537575550449076267779743156928797585751960232481344930509218291266672371136422187110505691484266814766145546797670322689605168342719449492983209091285624304745487355214889366870622594420500665693582115167668711078034300768188296619588217838592896796436116006223296635619395676709955360485348251580455594647346609282829927852125379127630225464285943008760609239415344536382228799549402667281816590730083505352754212354765711209941316430761599946075532053291990972159976983552094334118986965278701627206536688973070459326217491850674374727039998314337462835569467504336515045131967510184630395957497868351329390003778481686922489890577505691607486688250772632372364213846465030621690598671382513714943303825517618807484167812955464362028686085090341758841888926380027517604473293412219860462937166927226069789624175567246567039821190035560884259621645497197875463466337920638252073586019556682932975859359277905577011398577548881723568107161233516105912888209903720106464377478623533359258313655911559439355065270623623323642897355620021946210475968282061529119484090159508608064867189167373064181436855967890154072787535675900057469746979601968269967499036610961393687620462273621112646404440919256262064073855292215246918357132199016754548870557403774621578551772727534164531019389156476828278148714260538049560411974947056900062429369004255817742255870770170362287996211869521332343099709290300520724424825450943589337586875766030206221956030555476522304711267750484182722473988737206498881602870160393316228980673827812655209026124980176061353375505871259067107700519472287323126895139200993812279988267308146097633188217164289496537975369005232057208274125664068480843112477325936214115369982120047699678981620409450430840131753235909598763527270498845789635789494202598690006975326768487606670746780575791455867371610630157297693166658454138332105401104832297129880063202020643485243808183680646673761606792190471843766930837208163421803578531590316834510304186213305915722826364036524285822968879796034254678440356984157207781048777876721071558305349324518589664466784501319369953735455953177973489432570537484172805795126007623004297778613937397065381529726757570638748944548619741371376574812227171978542946652070317051941423971423217868561681700701568431884433101954865009129591013207630998537801896621622879132548131970787577488870132301510173118531021545615986383327795422278836805826493265106525070966473374136992962471422336093363253659453537207874456323348180872036969346315748735919225183863736584907425529984611374762894786156586878979492941122286205950914892815877418962523198984581422153454604059952460733868621617507858853528871551928989154383295349604969883722136309019212060708275066234543472735094245832055451365659189914907740221160187983656296769315931318326189465944193286193063557509695631007319292638663439953710451902221840287281119196099860097669039834279963168930767079602069563797997187276554827163495248251206889127995993267557483127395993766032818051825718763265340825116809839226973706777318692974180490715684687686782137742141314103418527669351397920037148812676610989904556755067137991691606273618732053832277118906531814163090784035123211476416654577270332779685170359315436180766455145774620362421942156386096033411087452848541079345592499370826117243995723192133410498744746057689318630561771362560700257932903669714433690520129444982717078515186831312346806756824292963643811366778212486913292749304235097416526333283465967327849564699326517044225878850494551089937497227300885102730505622907443396780499147499514429645300189240792179019309359076138693281403654709239587053464525309846025198788419638827632039288034290757503680616088011544345814036854214395942252413080366706685206305843255144446109898414057135358824453603347243368389707592983354298073816897159102299178723211426876084576930580483545833120116090338322888151447831145276672051123475045119441628339820208039797487892295527500376454714181557968435749015381878508382196229704747896999253904153853688740758219959195779620099653545843827528655083337142509822350811357421107310634999963986535180152004811155946360873932596865586130877570144045842887984234765977791438752988703826559850533352629063002289299001241897296949151899825072264356494373228112830463993276985554751207494991779528832014322863518215182773555999540345086470044602371402631706380460268892392728111424098455773178290986624318631211645499772945353399951568813920936961069397181655865879752313657242578748219726344610687399758965390630628045349131519806523547766191135770867527055674150734188863766380499035039326991141832221443839483831648691188312997351276283476355299074235794332989173226793632596530826714799616765792575475632714944666476822846562543196535660529127220428529879999582267252488306225557261994453148388484799915844468508970000914107106058571893012908223338698843204805669914363152679413063257494311343753491048366614125305317025188620131108708787216483045750012412234371627627946607901012261177843162855388885237216119100665466563041380018706490803885884028057261362214845589718277098967055018269474266583560877621873934585120483039158786374389740213841953207111008231067686279214361382632090031109778177770645503578194456891003000558224358510507033291027306010889720554950121160708684276102411439780520093481361233249555508032080432170853860908052210505714873104975626115997351151894802510522371608292651615038229905639205044688864921381714227077149505780090733090828143375024331120149342696250697732804934335593118321229426222184331201712314653838644401242999658418125157894195525926892181857369302089049920432733840474444289256645655693020056167176068639213210983064418043655663523027976964921888386612928978258849689274341240758220661820810493179352431237834750064213960597836672872613272927358233787009396307935601857678034945090926242746232079017746480857366068695054108694416718665871338846252143432563616809760225952584405095852750360151816501435145782489064446166137619553744673514366408856207688465418355945310213016192182276438935452320159278279867138665996296897230583268438312757453372260942620938853873281736694070375347079135675859319311068575889762057675452669690664778453336746284000132816629931773201196112026008001448321519409173481629026814683506087235125849192886312221921306723829039921494680945602398126107586074623491005331616348622548204928961908396159565662561236273151331538451607606094157552241499842099226549591096078135211413965962990303829088987502378032112756791989156519792933443164383536891411357770472406995323967287996736550954691419392124004701706576378457838380769715303780707548255917981755724772196001049432615476975353823095980772588674062375965937216219463304644798186567226799318271849389307585292530326133408104463149773689681014858475674860492030892473163827016037536635111147783833672725613619891990682321602409378342743074717733566252316308611413141896970154879154308732844022454271696088449791930936328753804668884565258982764013480394294888353505018116208088069674216814416044910372556059491505563561023578138661900982501017602190956872274474415509715044927834047529273457582508737972776822443257679610983182598099109009110762265273969825976695391734156825255959627273685660484128288775054575483703054432652241773563559585923535820661241162333090490414433614870199200606575344578629304783178455289181115485757167514260487501326115121099986156672129484321790637198713784444223563890405814617186045605505502351633054811200027891953498105357470191544668611542271964924547115766016926769647341115451146248503867103585916463452398424595543092298985193160787669698795189190863709990148632114468026726472810501024229648547929090124231613908636559846986306638011008240507526077315023000008277289405697942732486074339674266871171684037864359557025606498246170486678173602944047064876450653120992328853736289672567289965494811987638275906158674510053095381303170563634526462767487396468472453183464269152930518529880480314847599002073227288336101566118611422880626232632216927061227302715308475827317940140282152758313541942449891558496317300562247220377956496201673243006997193000761823543093061174878025491991995193205068648905509933959015082943761351740969021449702115173963474686114454873501219200052414241022769205840181647976313021192098533387968613646909338556814993147696362344337365795888250562095452527363416752699623326670496273886094059241050395290118882726750310682607383516038622063823779886070001939634644619725486732572720540591721521549641614261974097373117521434901766949756130518614940385203618383953584543282479068824721314413802559854350860065028348397302871202853110117695738692067667682857533483136099360172282716514601117005601380935952788297156663364180264059712224522164954864493170721406355095031437433778845733037724112825707929833137897399422870970140990025570018521013540333043146879170903078598704921450891780105267448161532193763348311387278311989906610844232374333432767401802735310595761082770484609918835149609369359493822137271944084143992698816223707862874025782630379234697748550487330107198927743348061209408215079760405611093063888388948328121933339899123135535071671385845876779834324523880393339253940786818501282484183683596355660339702858750058512720731995762890183823442317176129212352591150293641258767322102151151824663724712763075007028348032749095858081655589222775458317545174975133028784039394131743063311808785687874326162966038716272065697788263051510543211567279561135113148113515295479100831425287163849440204993802573096998284145764319396183605068877223656528450803914672036480355776357420918499357585173958033886712779121936792186425199190693858166370524856173419649213501077519980500878845628182547261858021850609300814928513717108825366753295028725117869286259650171472201296056665068282765113636768819095046121222814707414993551688952455864731271984744356560510547610137913007275828882780242623819650516536602984132789877756537856392815298266064058368660775293793805335750359493270244015967597908701629968590984485975587664997473745693269787771026154197814153604549221141718438759964129458465983457652607268512167889953927611666151998937785858132073576267767887765880770776929276678809713947735394694913814522387426289236013758998404284058336107316556007871850607987576494347234196690885088312532512833568138618273381162299819786348993294475930013292270610299626239183305908488009753552613291942638836654575170539698887445505659198753194500144211656594227080143981137928441062087122039241647819194942206385243136973047523469245087541161377494754950396623798238393942826883547813153785993229095775006323552889686874934883227612752643517892970063020228664619292709757605490272001243299303935650092500253283993314709119371227905605409133197944384128370038037581784454278065473832468853916647340907732677599430378483958883523797783659755515561616423640923554814137345775104438395781260534723276850355513588939776946966460551464661417337778076285751172150211853850110274628347647143336020382332657407761684865229860554758761273380322270292105451362007808096196151469741058204809681158272981148505016663825950411589021556123852077119740829535626846908446751201307073101129779218533096337745752889730134029359284984319180674329172508946689806804682467790419762580981740938987758228622287647021474572158403719169310691969578706780191604134064884949015519221663560055288243007711352262185149661927861618241471408983555705884316027906057156830097540425488915529591692812755813394544650774374495284503692092069235938144822631337884236431931770355684894096173920729536826429067007019014389532091146419442447264089748414493474313008967909635299165800060567181215428431973046452115773131962789429550981459282683155833758591070444965820905199372159223380247344726140967084820277587051686394740136094823522241024359273124239649289046719689634643540090203276594592398982546150411378029883416702038268867663120826875465513744880379665794589644569191188119223835890386825997885243928819513889466601586207538491145296537517334517564835007918798008057329609741588722394135922764376550052966348670159905193837268164618624659050276720200451649806100044801093269741437070039314911987253980533094917553124355028802798589208263743100471508518424793993425803934370910491310513179596360062380281965765150598420747804344364681624408794644472662531163662098713991390059244676584784077043256969429769613336431817983363545199411021307699243514871561662592196669771384847168555375094516769536151211941212690012567117797064155012133891773415482489255811965824186543157806804414191184388200616311506875965218893329069182647322427076091194772485121091890541869343934683478860762075562327200961523561664105489322625496546887325282086746097302395168824199473242816681429152955068170825915888816351288999712648398153376125180364067436998540743628481250188111430039616532301477089184748623823664362055422843830376711454898783696435584311464075704501449904821390110877962873927107481788687004062200088853102500739135442566678020083357016299168880464827322208421272360255485855040922419110953723241622436118870600758017786276962363225692850817202759289625899521944730243132387057747535642454078568805946920219947258070344280150279197404292555643038183370158086016489071620576341599118052588181370949469775497802086604428205408357574599119036026007727153221655274622596337568649312969550083510105234847292496650659892190239689989291626933947473033207981847381976219039170388098310277582848028236516376154977871575995771359707690614605108367829046261934523362999393122718879979516076275324604161037080369322761828891336845340880083610273241425100090702542942009887112375973486700818042569062964010747633849030859084031551180455761455066173627490963117542812723890067800684061791039395781762091978694581984156177925037644635695511288836688459016881983971401961693530188760280977262849679534587398647750817513227945527173645098838084922581212233558998497072533012737452325335986424447298238233531179158350476888348769485260568643956964117915642488227875279722328054047955920504922618074967866356245851781962292761819352745460940462646323217419687610137470828365528976467609132024372719941362191413727612738125205982340420982804998337744538476121649085812600399405319456846150884157858973700168680705805879795739508133898322417429221888545786353042360319170051688321434686098767524785294612031021890465256172858664897037858026253770180846998226191088067016206907665750179926260251513519013016875571126974949508820932371465217554158977461964319575629327886464137671929384312076356298112116144241523962290914403720438231010085375024687135570042124623292572337486242729549457050577696523896774995697110458250374152229123100748998062115209512338218052452326786929754301659279713374448068631071970663888121375494888703829173384151485072403315546380407072479655236253103219083701232254324520478536967164051899188269361562834820159251275289867033291540125315593072523313351572944244788202903287498498429170188202688819284597649767788856728940355041772520660783534446107170116449749640118997155540510036600288218733817964492797630644687069707935310767641997493453608130577396692704585719374972861814296217073633765590577759551978431205357023328604503550489232675531930590407050175127381350651886820107363963068042323942092101946624460588531037764794861434151508697231453523267543094309747533054283542575682674396157338632796176631782164453743996863345664137712385594320966149952126811135170778843813525635063607752523953048848167445993373063972563052687960405306942735908481239569061027812323630702249517359363368313108046876588139080651908164763443189850456236586218913431646691720420348395835333692538635324379452897599412843638861289571447612871015406083374938149563864590365702409682454772810652929048516742662611345632250179473548330595610889086903142728601250334948546137388118612663595062975882877285366622452418053268572625024553183964342725708746234336929808139712571542736583371247085633223106211998354124715739160816847613157506792118411553583872358324183605008059780179009296627651696797856945972149298470259814269972063826838017354596081204969723076248387102114332338155054792276644724199121682689862417972421918184282884772282769316042256071797819229167648154560971109301906128014928548473416614563455969785563027823373587231874511589823421115075932967198815693668292490598261295091611552741759744463600181204689187566571168966663997071089065101457108480135214475097287550383973148419200348686527267417171105122501800881463328616870720042442161306132103470162341249329670980397804489409900347590583119560842252620776436247302632862024662930923550286951088124014891158679774816386000004864534573906132883541135661195467989003120326774458991005605674578524474364110693437256091899395053389916461676328138575150273103763137220744116014999936703641183729758801387398149805663339269507992645909738989806381833546053024350443707788720195502814370288085948973847372211805923599653724326365871607935002615170152139510569612251862702840631635533355190558997237970048990154239830142735342997388641902456542224304158063447305348178380380514107671231347326887119448877922181926154867622157273369629502086692350121718794843965885157333032178329590419159936448302491444303559123514475803887270679775716779321936174836195562184307905299339655667258433913279039099913721851608889754886564011093469026952248738587107024949934920541631139934716916336901265916477426737630282043792140865280810616356976537748152843607110208777503657908179762227668046941307760647720492011991834737282669686578289553156170425573578701281240702681919655833045266486650403072899229045058996619380785194924425129358223823864197908244868071744903066433234516625305925803697545290729459937792262539271507408356170177174235067526933660580867734532693978103539849906473515882799156076541666293208779439978492621766308324025614476200078712545412548378404714055482298576492729808721677926460319835217387927830638422350481413842353592686354927186341691214523943277297646792759230173441646996347597003479588109297672633983053471588127667034376876701930243967437635679983892846174217923616043092246324274312564135446245797669175807835567423775081331266812472996807624975492456190498847368326478302148029317039209700930213155056857765412989309138266424568878013908619933024360238513467720874255701327763905731767188354220382850749457597174254646117422553837550068042478728332827573687326586286813747651407987310542756575380164904261753299259413726651866580202292894615973948364664478921761657629825138633703733446356085972569997419935369542996857218726305232736055101492303797373812780051240018065728597033062709699121414914783558687650132925755448858034276555515965003235950137817274856256135481131869670137422452011151795875757520583227751320463250362090356619716364806732390014530617281939804919476160043621694609741846906167745913483100008739978508639784373821340357185921278503990555503623487860413017888208751447647448544473752856912154733038539801085387468453216458031893877616910592780691514991587760508828874200437068112898784845573397568166878038226168647947155565526607325884158589904529171830806918325020862958095807079003442166918081429854691585368566350211106461378293954244288104464234066031948188909407663216000685025099175757366210955831774442439880456625129685708710456152087049057101092332848389322108974518629014366941304637634102166861545449018498110727508900739546825196090205486740377126215245406472883929441434922614505614222409318285977947186262446699293520151361432595094329453138833632650296500007507450497347451892352208588279674076299164617020080214326269494102513754366378241342525882686631565958740517475834248436676321427628103896938559762161505084653595312529856407369554278249914375075045554856035832576979246075637807899922786520627274770357460925003502558445604077880905816525137850317887903514565447750035785683820764199711429129798755142613815392754934213606455271923973279513546424684970196894106047007895921796755496597448179347808334115432954161147687628080494964030564690301718097995786096062433793379493963618329779624894417842435410357561864527778007343685561951989023801520371029030292097944787483526926049526653836348580731393104373924385161568473670715510580787785404942417213098430254703819349583928843548619005136933424852520319497780159323757242254185041703198644574461199390941750679667449726716018122742892701344853313068442549225618180118469470873014036321326861327978695167462786678350214245710783735562161777605807682935822436892484390325186025390454874953002927636859659615599729227729157796203511386715840468899961492099374038802175272875282170776632762967762308183875765292197323264980246426266103233780026036636436324491851736897506773816100096880073521109970683176753791592165132164845562068943004925878129357502741286275409624346070871256467622021481890809253494091096529206739382740204541603684125454415252204745818647769450932910304065528888248269068380544879689247758517644471346562042335089777672955959231652274509087229819007644438271791482095250879939162440830423173500918458137220689857184550538813665479628756102097113082689144415170789530248873571564854091957241843715472975792242713854310696828173112831144349344737550976978639054137986887651240217697566255941981618372935961444253090741657126408049116400781367590328702881233253789938912396851256541595010303009905430504499669636834868872125198190807333909885449001288221604921427919343026222465295267742141979174180547352537810583424545946687941330617906506350466155507521778354883401954626089683311572370775989801986948094674603281928149850766051963457734647079158226060348081279629321563299945408529039481378160816489923801597097977759193154020662106213486292797888007274093705912099480298965932568698924565075686472240518192110898718234714117905969191545824697234758489605031097986812219339829009997560676524287680373737778810783252557904992946093788944751193136998895666204596422286873967591859455066452861899107923481161419729632925634651321639066900464957159480676607836891852092661866547513608181232232052243520410049852180235628490405407084308650919249459410014287683450545659465709043999987588065100233060560571330205789041559433471256548585790837979717933064880927425700239506832790621491369101978224116835272689574759022398079976350952106717359901098484356747610784441097708921149570467076936107251716940900340922626761912620083831113234118089507913636819778403203709608716636496151481165021401086048675314367610577945053499245260131259396134149931898549449189241390570936215276634568249946313523080394124595320073046700693348100730428386448932391518434581225941463020243058712641443727793604109143525792981462702187689476343098334221383785502013215985858676009689817574518983245820120612057067918354169536062520852594718843514162138207832040770729466669495643001693928229546472952905937186724024781836773632014667920221345789132209666285384864061029274596100746487494834440548776222255976964616942228465722058554628449315309249349124817692089124892225904457577884734650812019968073947939724668598093527297059048371240834987489456077132937165613629114401235732607617681460306643222002889838107434493365929696500359787158277712786457162109862622052680751397327791297646297958630408813377385765439455234722430493106625628654881483105841534083378223828627655271923345727774662051779398564468604327283768228240058105057010484089450239031165075190975330572216805204781726593186958347326999430403797623446421626371672123300970511271278378405358304790112244200323802204021348543340150835825888427195625986831601662246071399840737945494987338960503369736114322254348517373929166563636689275572204076814624797670063975774516728334057792486203276919938521966821251066752017724392372946923083042086034531945738302756528527616982062685638631917455044970380661963303187387800455365132103174434430541700808584186064014429806102230056285080510081189138128274194496369900881211193570004526181116200421101488249417283587307225214126315842324613903609294500222571254570575285715478208105769992050424195156679409740396236618667633852548073136324887122805307215463512567133894980319304323008506787143584958385353691022601656655120679259843882677971639127575700094600812444825594333237547740845117327125490104646334879530261545200105850092882618749318290493312581561018601161731817086669181594424022981402682136143238894470260240464316354577667425480108606879516485020343859090152492172476055914315164637718593817334924845364265366361338362373667508865714414994277471380477203845735363104212915985019034011344157427033553370986782650874368800730692907577478163974506352151408772006034116572354522765403374524685199786012386451003550861074269829083186496928133087995653733362299004978932557578566293460347546567742995988200079700132746581596981590474167218466207676701864433145233142417481477825928120705423381532826438659009360183969967838460036927011607498805869452700206885646246009824379234544357315301067389012558442067042567240484662740724393654675131765653052276870842498503846051923126194683064173741483394711221932766552663980880578044917592883091569208497268839771068532106811628976964995709680997707550497701910307455312121557113834075340402895665750487553181568714479829648316098979281789941593614851967728888912029601621590417175958901588926077627842904461911781660122020853624210379776063241895041866888180904536874145926380588274223293977783327452102786735728995072959722804260533541995075815566558238631112248694501515155977145114395400655602006542498508601149911644304351273614215026770350593938794242337533709447832663543163041296095698355078824550571949295434118606815318020266069393217957626970903309274718125377758828777311039472601825797562095139179266152619708177230219433850216374755485041605286720708176529527358181262888026176310756602404729196863246314278024395334405900064746153436334560944459284951770711343799111760044524768285880788896196042742057701003738541269445731330704962875268648923895824999562880485640503151346972065395902060419276465860481057065432801160673343955370860901908622391041658702407475438722937245074814991975619465113579868784591843717905869209972005197572857667692533810871904831083581432595206680013469021357639159867031014106471768008224614415187762598155342707410097621757935684694168538982661736174700858638064974036847590830535603746874555685402808004523327873067694910563830603841793273388104752797257763766079868115922406154033910487418944815384523939343776756349326890340628630254631252700088137760451380465341428906235927129949084385717598545783123266501972668318971446806516340473897378825037673682079572656712229580661908090673391802910078444826106066905364798575861549101745793686000402078553222812380309066187391765860324322765267947670369924482482083095482040826876364455748466881232432448576234047350050421515541261410159493066722534978653504549640644187092609502019528987655277255408658335395629092757778185349769808916003181746861211772811600716164616194993837742930874662464742440231163323165814632630072730562603994729615513246590069057975208847997991379843339126343782130619084883072875559523873110152624741615689010800705184049838417692834817228752025007216507628853216844607992941003127838111982256178837831125103654245476387494140610832615406410617098424557434258073506608564717196976424498206771202858771245993362715172448243112290396130689318966579606070347525257386882968634766743961696707099605334464458366283513458297873869080566513034145911561850447423684190968233722340434045674043052845292693070435977232789568646425925578746832603070835721612129479622228068469134609016128882460836771639279403805455476619068728553050308356155564931304878502158930604981974986554349829631270075776725950548029817777545053020948819653049520306665205255103489308849174017328026865997577044953993212010853657549430340257940274566973652680488863968468370622991545150476302336958968096950299701119197246927608818524766304347325187435670167013398119665976328520062900922416497046717831812769540226385246808114134926476999215063483276359090900423165042111428121542506325590336855517631443779393363952116051674334383342876251467893972817864776038898216837375944112755096095276706203935601613268913122869965279855830552326052952078832464915054091714090047690725639205963716950134878180425697147243853588012460099670945108871149097835776053457724072566526822293106898617378346411892741352405861222031397805679035431420528558109746536108726476128281875588841653914818536882821359342371604455279448970843385252564246441084285798752981211027249984779396008912501396519204092439144830668358221633251097510029102573628127593479076687310792412987920415123363013040777048337697481425200547985337485910281554791914609123394406065301316675491593999173568558460605953595649287653364738169729021236970282296104455537791535734387509646116812149702253239901036770584386156537502663253245574090578788950014789041447646058157512001639781704666428854118015732911672809101211466801672316975601940155617988242058452420566226848769022957968881988113441532429298190053597580538583280126327659242495356475430242931455882165386322530117589282094622670040318540988615337165305884493106368597744589706659945516972959477156064939886194361720654016404550478782295195657304579971095272457573854524841692512295921277075899095259376003024347953795157235238192830444008597879794617295317504430911939243597361389776546884145630065980735947982254362301102848259700964328235627931237930797292053310165954228131724326721302406943003013885728412871232003110198282668030735252376209445124362202727775494437767349655038078731982081993606217240655245743297173846067697944968902411186016411156757936944386040050651088399141822771925242793975412628399724330681022535327168184881614690661472369250036652407451703707557561368787774707560673979640358777521761244473624103650638466878978825223620130171560156519192638027493479186706871326674137698261780575365855227040786092197011687873501975423593400647788654806832335720336877336488525659943157122628146264374951503313489618818851112246055368448217896004224121284628250229641278393211620813143065519766003683184622579376881765580844681689390118872459192224018968971646037400166576061524897321285817541495183384704639361042206156421299856513543288846312691273229012854612252619341125412859942360424582105883867612351286918363984041879152097141664059497643923162526485803343194827093899108700719738821421739794934206324352567563017389439081177239886266293420971075380787336537875763111378069097354235423220182274582054671992266890482252991978829426832344165629461297577158034516714260104851631086017545454402506108060371589078946630123102157689148968213853347233672200581684342442342369905550875063534027447992204831499889989817535853996371529777763259839283194136590448781702666812277322519404254074662448889189793018360583098345365064485821508755371736026696632653655896342638139499460319776486163437390519306364705352589226413302111021773525893741487803330799077988089922233548327255038537324310504836330086691126329221433572855800859614073838452643392706166124747125002579988621100845666951959190194235024918778473594923946400658469111807907889084001772440476132232214128503718955867778129328939483024028671143125606465150478111023888759633322380710414731793473586167604697003404346312642553403193949195619508378159060385283245635546036272212198628137766440201956913164662565647986249682082369949855784311986040660524951421089682496310837751180041092010331230663516413719678022579402201270199765557712962297488313369161993305558194515373104481718214099033196264323307039515454384659643661163521807388417023972611109904256827358071361632479494012152853603111501472045075529375101017473914762036885482904064177067891886562518589784907883898204486019110207410644878999256762832100709709240207721388316568687081440202271774630634422030039870163405286446969633218137469099945326632592154414398687423630718762990472431146849470892537456955574169049237987816894728296997042485456413530748879316335584699164224830696145498562011502922819569867429257746215566095702218059809805123595436328685387442838739770003488191475308633020554147167469408349597391129689643206614796354056942126505000299804758001979516962018252134040651231305007059743636300258497017922730389551565909885301868679809877886697941619761185012605909870390863036525344732626138018925140145091944534735003453514605932698787226887777918638608724283646775575984728327365159536329248467155865507719100700492888447263329272108698462704790159274360987444657602788129271769449308815120886206837457903888057061688136806506737349034125214848491552109942681532081386221310075961585097403282693888919398103277713084076884383654657236824120520287137538231276178638649273637469418035998148228468487642374828450582139455735967014960440554325984059535603039703237478803663098854185503580602867048752147183509373495197137167176337754578041987657811946988821468803974172416859553880033620384374313031446247621862436585379201330199431133318489256655891159609092125267613139292645844269025427210440652535312168697842276014592737882928541502259654353097542181263745872774529385684982739108620537512397661285632588220377871595180820339332801861988580170075768188623972386550402865367363861227458449336054909535649404897678716371962623776979905328835057520384918284057324615855679361429709032393233248303273761433309268123716896910669978056662575269582269747104551247605572168754341723652119158580337970425981740727155455674267216720198973166439323453785205130532103685583324431501492323329754131386374479886913735613507534242085899472480980751351077531899610341749397219626800428668101301008228100810582619550639355112545551260472333888132916588740715850749253542255630109141442459639934801247503497328665023890262565395592655450693123309099055470023019761270041920019918433760425232344211080530539903093373994112936641084060707804028938024443445539719164874081107830273784972846542761835792761143667027413308157376518644197479262430399816072486183405347761340630438027993283026480106683432720731047375908524128995602119190513717095689850692013554904103297096694190034149883800036442814776076112327407564014762813176949940222164003795960170345432634525504607030616530836087915133246406430846393591457835506361308210010912064953576126720199434593818933201094164994853102776267320461713562315518566503380065779420382787825070708602695453740843967343871008312725471926981170127318778177277117662298787929433061211047197099244099430297095418300950941898055189892211006854203574316371635422300222129585992687400386727564032553617492956628993062908913910796151358866413857035479407918776579726978303927268955417538935503734587013164138341886966521194848038864544876805487527073787174024940573949368400587364527277974897238828420161056844031242531510215953826055411382091184603234725603418166996114926466849207279301573011473346865442406817150670612776013677344689522758981870150476269216813005424523072857735664157980379443964852356594013735057065901988346931078494771474931404584260713141138360217113668178842754465465454722110521004904135040575876762993521915769838407871100483772474756229067334010316447685026464313611896418246644300245926991639942838558595936264764466040246612652810899363909559404578199325878170061548855136184772343674361956978436491014856753956490379351310004976191121825901215793571326444311840800509154579682299433188403461335056583928263114733322179360492986419643997897734881562290842842897267694997755824140417443847219518448456586380803853651491544209541517902334825771489117836614794178236819116951310393928400228912159618090096116669619092253290941949201645885665407751153974259650115131738079681719707076477727992521411938656945084562625435065383352849397594813289593897245809832677457450357526753068263270061968979614807920906530366764512376000140057554767542931070818757355276085797288365994388044157968065898920538569721700790804359551150237932029626355506776553336759964168200850165872813669322649702101127477306540443834130054417024426450997722595683284289604773927799719359495285620517522703160776164602659947142530379260847046450376428573816010889941349819738192275877972537525144383130276648746156426554821050260300574771623750081453459987793653455235955746480060058745254260037506935432049916170752393594579774973611309236613087526530553922981336213291227710926507616471395603772464011097474005882268807921691744103661033580300972018655326143326990499812128970869503418110975035585870025323653662906622690665197024874323800531413512936494137499531081596743113698922146632129125284040442941096836069751791584931859433157370295761359355172140851753204794446708074480213839596887927218825570654239464373337233119939591655826166276333959914778605363908374988539187511888977496930101927260334149657036565261000913179139111972007613024107457249856046809523149285207598182755155184819220002173102064244909152884727771667879696496075851230008580918169644302839636415446839428984936064033173504156415334052454218822469526826418512437379699669445210814553260446963157611488640638840878323986099019668631905174455042619914019248381478726583819150816893503050196408754045664761350755919291695780672780876038874048847377539124565097029777415177617230169854230206571493251539094418741539210608794342633283796039835646947149079140527980882715894721792866536283820205766821029337223181383274516665007007481632089975192963736441214305528246838528900871215401899201525506388434349522087535369283631551944822523421429333781361676846374959372882729845272948816317823082768676029015789332849622523613496892372257302313155199537699066228856610125563980074386787768772663595240439866355105753344363063291121439235235440166341388748221067448346866567859029142969923337486128562640168836382209287698626449857270420587187159088422013118451824347722464377987952212212496017285109597179385018041462339713156682369453057315931015598722874879542516024086320213803427654162645833867639728900526039620548186109988871878221209432221083633399599514928727796854276174753958756162661345269017849758803877458873933843720141501601215567051106307414157092422462289787446459648101915999078353996728907433105927945119356539506134432284959993743634694892618646318658915632870852012184375023578436792149440886743353260728867234707061903807360115471751733480477112296739316019053479198431090323294709183353628655751664408633390374760378983544613967768118036372179894412478018288383141683394705817333315527636228444167054972604605494083004321063983991285286991205854070749349493229464014373108890964800721463745895037688281868519126627128967016577068984295593134969961750132871269926035124014318462024707218984393442526563479017644895211843379201672653287639583005495206747027109234239304099685655030444438661805328530428144475690677059383236862539202187449737603997174691338938000625267008524287981411180491346624308072552203490058383100614461489863044138318246597728364452045973153615141352302598095103817462090992127911935150578511917107704067996746251366504518892867655171971642831147957278408833134921697847925566828520296491959794405197724945064722251967734780419883300670846740481269957997548872569858785319018560959025100905303696010131911355864695150964562321672753005043724271763817897413178228346383887433043882903122840489934503104463013558560628463173404769341627890588036267475208001249114789629894606367425933320139366122670107723546406554780296326408644369071755382622377538471272791752413669074760438819710782883638189218728344449758274680438174354205917401952432189832480199380247629776502963170185459081628074414235398434570295537800985907562223670303484481051192912781286948836369995394215014959844459205755995228017730340672193043193121378885048109319213821148965184985777600987213242887296880687096376054446745049836696043249529202699215336063013955615840931659742604841794769005987197297009871342352758798972393044277143612952634849109627560263972499770275962869746776018032025219668804317363643996588565105771971337251373909998930166219025703460688383197143136767961888849350970223930317901205897893969094134108895824548116622239046785351373032275356607856663080070974679358608802751679632612394791757557343262690600968405654265204368077502308399782057855020255080122569073947613317532961980888243526535329795812668154556871644025962719507080098621685160135177800861113165351294879206781532992965954350090170893270671755701374302590424120174897579922536846281184597965243261010281082548746261320452020941412737737303797386823077404555011729972570164075768295223145552451035274865899482252592611305766800693686630719243189400799268325346050450569496638788425483627832116591630414293781880305887846366802035015563643595771274367608339111900595902826680900698760638524574576854185877113821077745708046913800946870813606363868647141983185013361888606063642851210379402128406406090213788889168590886882168760130426457146221555996085293129226870067007991162491608183864057414898408512419407374559709700732393305320453144938149912791049230529695669690337480331843832217783456490120897587340563738356203851373016177389592918396324122842667012678021715162363681385328031192762211798567899936776521149844677788888160686349360559459799708922208917802337639192661865341259468534943820941595864492629984330091125439062852431556266575139112154807374808591371400604490258825337260564030009161349912216076651355752791281250014067234398336800643294223719955185216494231772334760030310900800345836763616381977170036238087448374434292638181295597577897293528138726557876126469528401190107833090279707410008162077388434048486030909427100445489316933987338919921285326230833070115941946915379666803775352484322955417758611246957980632544236819729354694148806031135664970912231298550987118855087430457681235762204812402762053063807885238642688517530760407864856843149775620892217387436038793515838582858696667026897194433043143907312931258004102097574027451911978682825100337767481893928500298616575000640533158857926608290061542029090180112525258601168415326289903219157568955632392462632821838647215208635101391278221634926586106450402722311566755680079064572466875283241616826082899006542749455826882632400149766742465105031926551645352768109713501180365199250716858841343199581646160755189775903917790702166647763478998031239455608510868543444652653015814166055455263749220300297669177862402602964178423846693283720028043009936464774614249372759877175367072084468865240596398122401289957107555591637058165085197239512491865737641977633347713576025982863531192062853294939401708415426536179994006046507284496792772574806170205925883200649376647157590174965455578444395201094919950548520501846848304170532480401961805057789573199027620569845667991050447772701935646846340608422051633995344332559591217955539228123140429702810684674159628664073632320853864265118167595225632636502982079765328351347523217053369042477529387592021645151396852697759686892673514321248292322090089919014409601212079969106828021577205149390683477613018256434520060718591739748205116425755625971430397304402768449374561135956850323641424530458120272421249837651795016141656679417099740263302888584127693629634600165040859620258353794584821664029632656346511264887266251677539178357082032341047100848304507841011973023108893770573153464021210172990907470328321978931715873200634765248121353557771138751515194294214786942586722990835863110347428285370086156715658532997586281280540178877561390424614161635244149452306485809662340050066054926177231832137083124893558564412714959021663857803768046630895221255431434045753587444358245487372567118443427669942480399780150724288499485985424876545485150807695579882434579899455587942578722495165275326618943966658998105835402504948617062098162372804273813679489004593301111204375835760008176679412854563837114505230980700488695426647643683439083463943252398822181482114469881473268660209473778350289716546886742647874288707486672486049161704025474241700297644712064060478148110564631250719261768296620279502578994453138837610640865022428115301750792292555714375050124321722204647406255672629120464034509722508333391161332554795607058026483559634552938957590697222682904956144755748915386262319602469064838000465534476150483854563317276373342117516753794175693059178088720105356598945604826733475745017849335008342471340280349047733767869748217944111104168836926900109581638763188253709307658043769366352129155122702838864857410764637304134835880838123304107145972545753385657899809793096896737056620868702938444877453691136243598071025138283634354083862769707349395355108450885456947450059490795878507305320185168156420231872852966561514517152707899396083813919021251715057775350396880049936677263247091239468793615334032767423117176406838547427140427624566408308679969997679503184406791697349811170627743728552372233932897863687006309426574781002621809988615871734492763588633305294874383612495787547671567409394946641737172559038773817859030590562149072347519234806058293663115651936715947230494747452682182774867557496558450094671221308505841302630792523208328837154752359050271754964126437354165464737962021518353959542298465971450645163367135806860723805074816584163027178294746143142438650341668865529334916265320943712442405104224207559022716156462698087960463655211170902189549802054736578414931776260836601956239399130118511824543432742361587674117846878383555854477457860994885368764308433265942865302252314249920308095894444384040959834698026531840150758576646429823667958952336019088598933864931600472504853422217110571648607955015386408305899755126847607441702102139202636379635137417976552080150818709538786018605624005907667713055114044935356102909936585105821913898428261684045780026436580590968556049089647298336207747807385309716465332725228767251802948698708064638590511125764980469111635874460976841853895158849644900643337965800149560554182541228322304384006633329074013078029838404164655606484966880271938727656934309258712025445585736654848089124696815812674689639646823765717945231683787897479353413367117883618340909860843967887535511873863722167533997787341884248943490239010705504046027529363890655481873074122031992109089956609879783890572474115098768879019139987946238505896719951830025935755984704990119135030798961224521112545780765457076674425323276418620684740841004211025548463630565551138475231498229118329114974070634854159859935286259438527041285890840506812404744274002471129802692652848684882965755189799518341042752796490606599189529981428745957902682955999250142930533863370961957862972862531901876486726257203106776683893299922874153527768715010916787205411605404546636800164565592959273659017036850434368004363316307023888497949768637576448538201519426395927001667936513993381038916871217290575485784918339720739349297567476723204266794505706619690674975958159614674560892094924041565749299391225928016160969748924840649998970960588681157668806740479852665936782149199322021235509462784962149912702512016926952788524364791317594895937010130611257542528099496894761927131596970743815692187644776141875586732200885736673000133165871695694157672173205776303299960514614241693579929356474544307325810267929960493119914834803486825147281461180197257473272329085378344584192978784604195977411058083077027834417226006245656634848999993829905676198246603319902153290735949880472047353745827864883489796020507847964049694393424583262201393970299318078624100767575719986077811117323012156942025411322865162098467355343045128800044616814067596424334547463349638438342325641623740919766220386065178736757405202856494380904595044187996642016576253286732580662516710275679636473978211608523527402675195425647001071792145566103215809415616338089084792141445943336312456842677420088782345481922831471788561240212113582052981297372246642445072224630596450708366140294472704762819618200512712824235226893065829230496023792631429665392541768148959247588911389849406074763591803288564020348160652488650760287068278713904244637905753413304532856845279868861593304000475146378393957651295445439108297765685875137049947756249868639521276709107387415394353624393249973479695359564281597872459837495085931484018246169222488817467775685315827535451385779318966007684984204672983514628917853258953885665724596145121381325927335378809885889774149698959246062408581175542763202376571103615478899077931771063196713242455374180439987345914348464959473440089924792394781296510969301308936749229716614687885001700231069779199361086742286584754834395930340889166389324540007637506565803429534039853776920052058137633198147841859023248585793478693680805928173590427495326224859760184848251039877390265194142006262198958411916054755543810972647722313643073567369333419018866395244617618858361846579895544124315016192042660254219678035296528582928227404117934108210491511823025026325933461456196269364206665472080016415299391797164206660955897754471748672451272450286627188709372574446460431968546975484817076435517042529205067895421530909278273275281727797744816274731778575597502339817430439108937527579247680720613927770380901257254073417459211262254851463995206249201780135300535314827102551905492890802214401461162076976537415597798849335226100510414595390022483149636721256522782393422707483289961054196438206559235639317476245059930413457129261163325020148488220019845764115005794874304079434898498898415959302491674303031763623148941304951237427320682173990366956276583800446786551780860614749654343649026061276226971615399764380821625450584696283908508008979054100021776297985267594546585456490217787107480825144713368844527944247877757090843916673713269779535586987511209313563332569522622741922438045026726920733481181196437882630856761035860950319215180554033599607329963923679843331315378792930083822532111295085379480759819462172102525205766293674422173700918700691443909077786672632425343848581978249859143338756900497304121412781728308889940004791648077171972789200441957965704530194663271802849006438927783665231758216211005698192906889811482216717322229703865508818669363628353602286697850114728921311902506964089410909061013394445571871818713771562948964384040005370574978308030586080365129840337665744973897171259099245107324186078548535987636350244189400135812207618700782412509345966779175688776458809917665891747537013430412925106332406612484846825088780622476187259466321359146657331181663399505289454718381119753459257238578334430272619694976886304031597695850541071495791597553390470092624180760234034046022441176350543145102297811606967458850385414528361752137708252026835560112321974423963089524958604105804085995020441157864501187798886459267150726736969158835938283561838843229130290995487965805971512967825265612092415005859658142487794336000079077456726064639382733935857393530282463794847419718591051844873717695816163441255318164173637325393651709418961072805966103965140837468374753075999824219926297649486300925801383805973011285158771161744418704724458065171040495525492692786233001155840142893228819182433808598305300015803388943204429370896474194749602958879738943048881957932296958506954745783523849414121951539246868539828082165690772984280311106551923130579813281206472896580108066815486217200136375093939930153488613286112367206630585005180190059793195095720052964723384325449758986810796009676161258618949343672549398278811329078697516552722368925875909445457913043352270113474951766193647712752008267699411967349588532454670853823511375873324502188996192544121892602190441529740420159965375708832015433814288931429490312398111130942135899634926537604886256324286277298755887424895186556067417493519604252505708890180848420107203427970635342641465872097067117829236285169987125581826014608577965045021644816895001309359072584023675867732255356276710050151325702533479792274519770249181179434572660822162455108456235318658135539232747204975465984245767077553067762345114631467332004413352207409530921322421999710241132014360587394484747930561706844442917878101204843761621577792431159622688294059034741134457600944218463071837031624570655090524390311853179930955244962107075676874009359447658251281813796386616739371133902112074179525536911628570317955451073595542922914254717719458368149294419552478451308423409745815863018718551231697241052373328781331033267754011185595428796668998776960643697207247619355439638145163934116550061705301143099942957217191527576444725793979784130277132974950719895704766337509510173248083497495678009494006168766853336750273014639516237514978381783064980811258985516549332017756090088390763366719061221635596693269921673874510823707456574261414825124272169538315980426839702702357946217841795285243001168323140158038786911585862279813136833271790949139506967289973461099823856548834711544525390024025315018765792430211956342744745267876408586618865686782960858182653245221276699691529054427202136064628749437680229998791795459993261383350740639098585281772746549125263481558972195908008933830534064707440058085817628693300018516681966492666535651806121439420829120327933495466336859071672355602447491313713601266451084419276572699797290852556241937681004887813594971980169767559744172971884224255906255058107327133744659874752982820542076055007912729665433525368435025507040616297680059556017581841215293953621947847085636330630340897351823586776881276842147763516858549541811887980863230522927464617653110711714508682182088116736035512491207462867828254050508705858270299653188610456133864430861797864670552845281326862285032615812110170309357309742821765139272801630456276145831145648534196645248901995748288390496907754892637353121309776231356397988719441722426459665663434567533585569990934306532334894893930385969807274420574591853192614095982871113673969318865575374275202949752092160148360599700780367130755383898249815070034300600574866766882428602733070115974131889348226296253892634556853159905319004441028808470931565625782906593232504806538381135600717720280801912302989729417477261457764856818949766597681454499150837260131901966759938898745654466597631331709081687577732164408287256873803213063618826353232233142182740080755916644575663978016950692390113643381889155756878831529298557977048145443959618115171298994645432094178103770403630196614203593474947549044468995231088449916581034508440038048396597822419026565737680829508831207566872370693590464708175252772711876004017518460894040487052940818262302570925779821037476570907667736758019928920125797665253717623840364870726530938298574240341785422743025845271755071735618552018886056833656870997806835610733795689534992936208216864611920671094162798765281166160862192346283420380424919963456535977406153027560676895096553928510347483739398701408997977065570260954001072674951700431661204703774269628888102745988124551068316377511215798589126133333924461968877075552575945533896338125465299408298861819304071738334982865064310788166020893676190163347928745889864178543230818164136665896245301616716191447968971205724700298108301640362104469400826567931397386235866337631716289951486030900529320649738636501690976461259420835707317989061727890049810987816438773409140925550247737560614275041142432554708864207490442609973634463031615098309194322837460645382880701127037542547591175778153489671009957881938676777374555040284158849931689434324802426110606157678052855316691928605627961171812095492833038755079800100120977443774341368115642288505467150590849919980182490653763112340290947970871587878926001538698896564115307750342774681310413950787338658122752274625869474610719736564395347387232044140076621429979118433176132601846837139533494973099169981231041251503698144514366408016090621073964835353234636262198604120466872881641529431334290968239384897849927300158329799437607252973458062877242532966704500015739308936460213158302139980491486414159993041482860250722346607590055207460582243631557769311912632120416749093973431617378221635738584015738889879894829651564321656191548464889264554136989924453978263860496314337483733148657009845721871302661227574829162241572193385275364693098934000485970928601077049992109158838972982737077627574758185448472162563981695800054138986644411397707802952399952960344095125620117506143635571487041297572746125053993099612998321987704661671016547589784711576538632628448626976183183136646781283399929853753773284987620964001566726941970482188449770497877297102269933427766152949567193878252923958668003823659637736065947828924474980548089638528412715352617816009482869115794306850601348567260901115580345705655656931071066775354728960834301871628003408690628086208679916169017311063993046140877256137105707592305414088089210385739940460284800547865882621148238799755258060034504485407835368803446768294957510415873784729279934507278468117081598241078966869339118553937169138280835952773479231391021800117719774570509467170185512616934932896028770174767196911435125471818513914227194825541015073437148326622810688138593674016965136921403009917095366746346214124585573308421488979509768688789377158930973045673323077499271594661105752433803624996039974384282564449570106293410504824657205767401977481843535875730546861537353237904352918810125021277986336942512988630868447077409405441530213294405059374818975594127733456023415484936185421559573414456173182366712936456568332274264678044801663954861787393577890882439489470436552438008954176081099521097338098077216650657409018336371323993635049453879203234786104910322485936142138354568001472103109855262139751214883577200911095588859328997140622286333879713597278572041700217910392256928007886110653748235595602776559277419859951825804247329906302766561577009630510692307737448255247955938454263131546977713016994399756987383535844343039189269295018886884808875225579969668865126628242094365321814995097985367394073023459681961462091385930092711004322931282519843910428311699723955192929996614879537634892414594014430291532749184879347320422733749081405361605659217217180156792630310594498094684751730385886039435277055633602633220313579321277776893181728067041494798022234246460340129995996991647916928492739662736945915253234826386860658074845580003065391032696695479751430470736946175387527827970431185698059980778377486761110268874097206034313095546117173758167512177287028404361690695597528023946030570606316659063403819477009576638562614790132889307293712306863005364123039348184174394070727960761383204375334571570605476046646104114965684369308494923680623283159784413041582782082297748870254997691044015307267486940342258948523396910725150859961207098282318885338919459026411168270564352432663679321747561587096668116209498644078634676315038689349946591629457804794822435059490018731749233739410469817088911583724836130236291288613202028393246303290571143974767966405087874338825763923094477138416666336660370633597564463475107560536745096222008842978302479101750209451350637051009735525468808277621853339806337761051666888484283485521208713361764600810016549243421360541721643542692384096579549230209270634087231329978508803457310477417138089803222269168413926375121472578603696458962042151587830209002540846599208155990839664120091763054822107056424139047830591064828231611359533389747522277647887018407619285719626373572802177905372108248460801894805714585956860357558773338336691047618279319403355212610952182033636716162760139946607087523691530046719835364956737399473357732078829231944508517159034165833660877918296757851262589101418589261578177697954584532191053841417135420467524915067664678378126226535121980182874349066998903106982096634652336432418751621477263108079972330433549871651770468764705333119795718188066420837608784708960580697015547521106421753094506009534381538711982838497349041734821919969691303967964868345096829880944253388197345701743658037845988542326961548697928920790112340312537013200839969740911157618042626783736208173859565316997035380321715786851630199173353838941540996062003589641967759252196331267935624064308192201821282998853004214127276992690464491645964020671307226795078079861432981536572107625000969961459291715488070154015036628790986073945816106640808765283892645364969579622167516136437189377470623716721214233011532152758362396560716727436259286210585456988807956942911688758614909789880950455431871867250746481830614203912517854902510937623606644066376839642474611151939686063959785526603326230099707193325883733525566239427144438498754583052973333281876614573044619384157863089691431410556774431115578366861316521018052745626299927150823844669025776499256110633877659411498812137667147609948981734633306600944743157654179639640014641917727339502740232313523902284135961641590019168372281637440857208874420602289346906325797323485100227888249068351351214176488924584973099063204859773530913092366191609091609420831428767605233792156917235158087289949101542469515946863023760491278714586074189894798481335917068536984982605299281955651440908969143508403080344300115383371720535344085142842213421605252118326934975387724634011393596729337603414024755016614162627727786582004571533760569727214589434394125749256451189221073400010898179534136787998634368221850986327551094597967111621800039048411579010425760366008013609620341367389148666401081597021330983728360816070108525364474699154882400879216186161742736819958229899133631697526996587141346758581661116927570442747513311046855804739451848127228709422565827692804678379430939521218316589821584799950905431467242330446505672333916265608202748039372113910681676595067411477922180828088738417798075077122169825140342374021913427670893057796149314414404494432900631358335906524450196410750329941172514547630332712404548075470337260444303539057470300302018500785999779706648903879613431025862674686501703585595925995928353111947967443684863199905954693638298325746026507793941928761208070054706389977328974637179198831594605823141557256018781716655887825944291621665160660930769285999899835144389095589749001144419747279725535191363942298049110867733843353064585751542996201325181794355822152629582350310093937138385214421650385059649968316806352416136362777800373599895440920928163175378333858137264236195571943299854058564107913733500736543375399042418194934750566208890347736113487420816469261134780039429094758229377150545209053524342341195560955760716201747626860556116603848231228584546917925239156040468851824545023706112849395200176718220043752156822695992340764217246208274191955775116499341588731549722842939341257768888102701422219171002811527967943758100052790708478936462953081032105167123778319902140185010120590664467002686032412580321797861944918078337040696997185108678789899248696445864739587008431964769402051183809128531050454917898334009980483320673309699982928796417345541437699006721529335767549334645216347797705226178738728995253134005005987746144014722928863125120735332874953874713937543218565876731523276043241955744817758169897402618377304501312989680966515349780239656694648396715106572498105885515334182004182034801243818670809356311174095991637659893490985670107274423848092325416375430924294067158597283005173092489117899580982809961925581958759716677560514345650228442014830646155652873944815831380514081916587496126201871115972366573407175630748307091745362351614631234732385353026068621637108987902742779214218402616367672176484346880502378300022329798092220954755535920117448161745505161313148873517967514519094531377073107849720885672724532230544152902018761598864737607651096090043982587244418062857468365494107450225350491352109390254846985820869128260679288751663628998325791529239836501345239518046295865637671001795786983960521984901431269999625765385996841367822909968879494149975847645609045820187095588921904072158685653352297214041026156237750022311146045749702777770785979024851961841546188226657695952889042497009236163592814484505683136748039602175324032535433915290636777960722579745901085238194753559700551718005296318664178962088003596439311543497289482397285243788466013976531051229794373553779199041493307906465929591959940503871679690354686927627720227109562834367261588582058672993439671669697836713591165588616262001706441215521679920639876510974586157240577594914644293826172781062735644027931601720134949853171150197428195138505803842806284565247649275490771880510841725892504415104316528912001363892194160778547987740176970997030896482524269829344351270979368178621414509140983357629122794603798981803539600656867774163610306791765690270346861744694100405057669927336172661923750374169244390107837166216826622545982681549020616674330306907093340274353037565469003771631716591630929934259955894541898527117657146367724724703794737571616954156952730239020960533109573801127462943863736385654372290839416624813195132643117004985428741209521272407442419447282991970722452271760017569612398630383360902866161340999243735477829252840499668908749436172546823475471035357934527403570140151633110696027785015442798274094229525893247780054291748999436662997778872380620729962381039899912876963982296458248695911590947477431469494795173977149777775694525316975438398685891427905298301324513195475097157233908981109702209700356430994679906436068858465663076263829781844822408350525869903656946409346734609780375071157034726273645546488773224485146916753237668057754677671375358767724610643147328382967469894242576635568535216990949606506309778336604518558039378137142244545073369208152261362732694854222752081168491070575916905599996042234085575529407276963545586026882817104770069113241186453563886588807549860747748853556536369154606918057967516270707452422410772793018163793020174671741126313419231505008727004223152309115776130939810247089337832844865938475234785803275578269144877396647472263269788622993811580299391352435770256477476239967009038933935476942079647182406317873706672976830359425333098910092591041565005872983038615354583359253688600633223849180785725333857517380439737779448542165320524839273342781802880055963835421185855083283065663303522990468609110134645187653849719575793480482554657108806177595003020521469168381425692768714496151286560080988612492266413352646273761520339148539608883496296583735464049803674255129796699999159277537460547922241576402666867713205387427666220007495039222347220034149657121875048310900674976364499685335657971664250824598232025008485722715386382446434004308483504101800455075552770518523316560602972915571989576285142020216148002459669652898533623765485294064196477418690638611166262042294050224002801527931049225187048156051935142044301331857309355308832007762958716931896687664284979000686587100671627883654901672479896489520445826202658071349263433770924015326095239833623298115337392881436222647264689591278101125354430265025509456704937965720558071647648979660659485953053930703784315349737623481883862704311405695587598580763332660157217842232226558000587684363044580379833650431127722505516624239599094055400233139945551007991346359953367208033628811988764628623219485900583673178924489913125514665665051464760881560294936019809593822436728722325351522420941634613640695021264924508633112428863862216921026962890025023471271707275640019474645701286884209466897957907089530960569022188789656883639028898952305758886632102891143010131399260051405157006214578748080942681182588657911057598775158889043455288103829817624252664635568863798971142631933796459373386964516389503718840165944983730165695648804667821000698010514938812225115340029036611248312616442211918710985682847058563193590744229266761447655953678438335984762009943340200852762970276548021459850959992653310092536219236512409565344055917830921452865132039322183527921810831673810528801488627471128198943294565189556878312448284620147506842554741754154092301662637248006961202889329179892449156511417434600085952975944837616171722409584732961037273479877550880440251216783589032779465872418176201537092651061706514039519137726168269517663634492679821384082732311900214772341452987715860520377075124653235280539145643632223152743311588673542650613183480549192598431303308080711574876492398911475248452787837404559014623186083626230729831470289286949515858242556205165492765519403216744965182779180605529278390745939892975028638269238937404974874478555929556106454695140284242642010763631222759084005550055105268897983222943946540984959553867166573368194633818786705319570246633369580741926029893166437774895495447873820247963241136226522598368824649511417141867576152735536965664360468693652759293660305441331560569191104499225688797113578812157548207148057305357029308069119954403403650382567308702344186977725637784407156331869627890775936845681253818195223018076941931126403778324394949021957926399323680693678598321984929601106582195216162800597725208631839651841332836787241698824605153606481314377433339786860616142417860441605729548432930999498032609855846006436210535146733091509152522914003380115929431902677837299549120484431118110061782754940411439752445128245598833718263736800129029662832572432745633549962688714463987408239154952135817229572203934788178118339249914759871457851493342689475286240975009630130465707403075345094989640442713913797658975858047379645307485229187698369032874039336211518796324764707715464889678717350683725168020663961437406945930630643946771410485327203056904414508027062660568548495665675034322628875253980927430219380607522869424157629729111009577933154435271035741078975167632749889659549965059271107284659130806812891255893741868362280230099188400101926017697674994442601757007025861913644158128502470286025003278396614631431232192928370128948290154622998615683419441660906787814830933409418221909473213200009385610003245197405692303219745246893146533523094485160921469232583827679522279527359119569094997837548249248605496930670541274300269705011914783925635383310363742172737767847194486867609406003431754460103692429370590533983546296394847208549407355809204680645504926124180159734652275953165037701814776883830903536239156523765093872129905162849039028086524307077935732301893447480482372460173410648064952481167350331084149464238135723850553380471221513458844797882026216089355646433188314185363649138774559942436343705759865147969837657293928402617889044419127617744888871027283439221497118074028191901713587918252409322359495836420740846986756429854791913052983770024142147335707113197551456789944330753355998622459432325138605901081512456061764106021022197406452023034232309670494347911806689080841996373232115201807231708071879284586745200388370823278048103650172292248689862128732821520019345863801659597532747594102356979075576721130901432749434252297700450197522412254445606093146049134906399068273284923051442976177992439197914498132901040252767693343826625695244975049302689158068300801521556039225890194050887276668192016010314097150641370734106409788662271270982613759919066384250099171344930262151880500692547671902377573727264244949939149492188772053066890202401464690664930984271374983135104248046184442512473081775419965461832018189219656783145349140117597265476850029359633097913842273171622250038078336624994707452024358113590582952886767671464428578801634787508476413688346723916080096070278465304976694160701685063891545483468404477638113169647743056200538412746974700204515336366571924970360548837667906295767388951863055985552060713221967137536757290107537814499964380996164029143180921201212749229009602964103595697720574548996923780040924483685409023688847122954205696368049209807236152866381351076575630088616510972174054202496005518983403907876759951511396992739543340409084638064214922145699921925915659035303436509466625120890805435974782591952717534168162418753847936721412288153010667924408689726201466034817558012332069926542327573729410971879217458260932552189051473141354089666625890637599768865421027522014101812441455348758472681383868462720661086568336402524224517799991038345660022277143105040746716417870191783921130439877526119649482010275820140019848526313992561865357002959259683258508748011215820140017254906192693351711591886079186839279079666448712654335542180265541860395530747843874083594573175024819138105631664053302684688321150327981147590724405166224894057278170067653866218940637703824796292259258355950412617745326718178718602257318380861933000773182336822010226068114101889142594497252788991453221842467948656423448483330051524531099321898345399564310969145298821124160492375264472662177013927180232797482969472392981031608894578473772343941182062019861709603322842171449402961165376062159846005081457573867302341424028869273604668964101268422557249846814802921756332810958177735281260753634065380145933778020933022468249146098377660820405318963376444426410199966313172529619701906986278709726671000913951683189655838432740687916124432390540622604379496506676561985053885117632237096539551044857428467927364152972057729979828178736577667336944752981724600995362425439754494128980414584637204857341454040221086011405371502912686864770075265276367692768072546800500028334508025443592229566488709874969840013484756271202100719136613408244445733162474982015089796118072885359007426114249893215238238872504883232804425210702721931895154343700875233545701444726525280976697498026458916004060843457208698471489423537786955758245988356829281169964593877484933450831638560627317735940891506346719096160037624722171748686467004721516633132083533463151264298009444351702201923110327036919561217670796626865633063300215460270040852114758378043503135905704928614241304212063960637220312465864135292715467472056900144378579183843935560188733452104776478557591094405038884601383871111298320486009400192855553558693473795729300946272750590620666994562988961230506955601305039053895506863316267506490609219965229872001818923143377850850952792869451187668378208099855540314082311017461035473873239388079113163406398680449101097994308323395920679106266781100459488252552790416010115942964429031895596416861845610611244743156771738927725382022599458550059990344528225964649017921719434868514783564127838124467291728201640275138496942450554575882963026351387066610090656066339503700957759922318908263950910977149589207108871333002815841415357676867431622629494721369795143879147240044809358072636702736274877289392207115974772190949494248111866756238168320112483986185773791747420850914940225600551243806409774694348807952827965590777879827502457208632793163626990764853660021889716273622170726385510095691613243781636672850727897097471455343842399785180723995468258813678023007323323684985771776363871311982457489228157029838124337818278479478091719120185151767349083976639394818199907790362442937217266827013111671243914441139093365868934513269450188707097417565222139855054678023445990859258839259435964531571437146055335251168831498674801524763899085918993886207346175328881548408059469773509730077185286403699881609583591016582929822000640674502380899701966077484537015075853914846719518775762695606159193938660165296137211366832066985741919270873276745598409947649610030826309885144421751743522863568222454511301814263634600422142846425494096055309994740877955744225893009075276043414079842526121699119578874019895989106530622225075637853847211282033204670592957941486105662250698097634352317325238856990032009084832649214643317574303586678542468310273848208536741865790199703514647393761966481997320885609191201358853438922556485029219940888070830170092321161533041080060267236211971645006945793886393810157955301597242598833285916179806356494930113480977824510110554423697677525633427072650130872556925342049709282676055850629707289603468058286328942946035813792947978369058828512290906400142842257968714844355539354124970896437525531553126653744905587198578699101052997365062020677041677400914850269256510311866564417542305471199040279088276731137036316460938676899053079315204664492639764698555694532720401737886460731955099491156400233540728637489105659832464499725052109448707343076687964904391526011585611267179359724009688592413079675773618361474256231591550515291187982254236554925475578795368813885492897379970691429660253280253710032352363297345504178303292002523029874685366953925932421806214423151230605375011561336547365300208659667609203267775725205310772359009615819992735377211865369619451104863867535072543699084567978979006472968273300412752652360765860179362971496811272417888021373533467071536778532895672486752590052396207234662421075302739846479748424404677070748933699627819654851046109632149852650591288247807806021322811432381755844938729767122861881091554099721579309813528345551372325537504435735774689292656525557591161611937162200840015775864983380737899856204269814382182751267409872643599857658063250839661704939082196755351654244856098581972338545588101195163467254808395614769180371866460395646775659476875831601416181630386129729357994543321542801451650746103632617376476957454926712330582974663297379478253921902005508987831650679915647822279894144785524687018773256013706055560767452784587762930326556061471668283820768380491279598252753547393177352807410588265946836802657636854439609161178621257656380218522315791595284608581703108606262693652660172752974925544957596100922432894815097772765473943884093928798192123036803600947845222528192541194356536450754501665523791288855063309686330093233581980557704271551831022142626727440305657722318457192604917541153142735549605660070861159350289176312791637842444006241241818057525471279460487344835913265104331383040395974881403458054775824073769539679455297616431035963549143723717150015620754603402281157448241691824045379142001521150724993316267429579707211352307922815744215036959110105591361425734989462565449015181261468837549137244897162332162517307052054800566693967647767848498436819848163317350020372490631526652830722342201642692411083004897789092251807159246136582204712112334809860167879808796936369144742987531642675875513435017544477289308298548198608312947514695148260700154370588039596924574061319768912813311963404998781885701644483247213020542340915003241394006556077339599333702551397353877236492513623821397254226734288411441790407789668004554784918713560360199535105701020864711718796616172077565881712622156054093291268899050797568393199199293640711610687510677310061792515629746751227879505870305277811560454860307145795885154847574330299779913867935796469493839133219802847074189226012276482772281023859290385036269492733938758446075059778824449664341621245727300123610524775040256315317786070558198988417760604313177915008407343221865349949531004963878717023924201455339869085582002428411852145697155541070215679187215871939067308514616119285381975520804961724803898483654198472307589892694298308087573642536317893180463994548250966459786852603321823744137559315988187674518045707828978560215687520981794734883874430729556683908789637085816113699202317925194488842544897293515825599842445218339565258524491616302241138224441094607325573352150071195288591271953937829621224937918000480235865217962564614485837674685425519246361854759835045904191919775917394268526648249358999240195476548328018296570427071662735667115496500233941368106449633608597655213315532368228109971914903047907771414068750232220816602882023445775171113376491379922859671052388947204008154588366271020869598512495496934841370886035879296098246144673511042718745635016827402817422819579070816606610940688577258091469876164673917207634776094297427632376423484880466469512826755377785395823236319322441059066239080808415836035959650853796028850638091733591451643618468843605383863012178162909469636024633899855140546946328298066970016178994935419796385708057847393274230143166165303173119753593287681955353337363252119114141159578331806373036708980340416112381653207081419722472976440840673480157450905414152496284442172941985363610642733533248178101366846932810874050288974218139451774404983517195306019390672802988032163925915806177385437418226145687508586458342635982598469614295570063136658450931592028296107118443904427817227076862243696357545506289311739566673608244692019806563550216730350364670459055368996418591953131005471733989158935604970364938326058328875090485263433332854252252877849470585291817849240907480385194734219849072253832343606056604233872013252257324941466912528835866546532558070843734928567627656723419902745582118085504186701654375623672559033158819322828108499955078365218753862500866750392420159818892515518857039036512376565812679150386353052928680212976525213742888919044568467532417307165604246006395211868283686295649681099286203050363755928777797408561505572427964810221988928659480444738908851644658106168603994295627697584973159968597330439611113061581116366566897969086303236513406914041073675942215447700503824504350526042665083629710011374416348901627177526328755533617878880096587331240355210835863240897730648475104908993958828168445928749161628227824479271803805643101824734205606919690942289758689008251900971278236568803665866933349943913481390984353921570661171867626986575716858161805042954520032388953524059019663791101267598082074274759169951252416740525102775395010054597777600011649683614675870589210739166872439451135995555550357099132975735941302426757304589277349215394892802971011596445371011704090729227635762846110353337744094173327933814584972740847477928372227680508854306848540373230889206488834182658358009532393655318568571319427809259082017535855589714397543327321255925932098425881544526691096985227853970755670365626360906357903347615922822006557420175835703725838881648096918732943295495254766391502344920781002125472103411748757232412020265049303280137254972389716171895346227063401246679375186648834173058887777213937080348720491967681869769579469615148679396715067484429633416052269249722947276667068572487744179981919396696338460527078724550755175894233531775460773189845297804401957739705115644399279275636782122585190255942664460580532069720333259736422088300466956644532512797881729016401090075763050612314077716135780683640257300990683570135899931226917988434801004561342512591976277161772813051431313361250504819535938025651242961483130416329435797689172325322429874275696299136362577531151972463060098661662968397404035167851740018250951318589747661988935686778636542374655227071851723358235300925084706996008508536734404828717271092574055475235828344257575651697267857806209784670869433004495985897771739504056853389025790443743016737576199420516551802771786955940701033709154085423115624772283483069267426901786988178994151951121371404863456399447412650733493545375055142311028068400148416373889393201436184151635648717866029547284878021157859996067861440243812927673106063649215847608793777244237710286451981635386585877778747849116944687556827843202537854868907069683788352150245795065965719087578782651671267660275193644782926978097776048310903063322544267510104906948801098444188833780908089686376881801440766193040517315324361648047749935022593089006333683984288824086248936333382473822111561676624348401808759369598141223260060887050810323638276101501769308168715647787826059080872500411791573988683128558554704595085467759141047092320021498661733821086033227599041476202170739504772913689230175431106992062801896197666995449813384439056609526073005622261095493446362385105932579067118039351916238158888249315670266723775489225668907679193890555057650526072722488323512066738117903853650765691478248764459181360219832185789057813063707577264562781900862205054494311799426141236144011083001035945176860613699673573760197522261793217248547342014867536798381630672166160151977666558486051165181487186558736294724403909479165695980648340800313694041542453262100679868125287618821944132319850704014723798189983022486230071733569189126635645810504197066284382150239606075409153017316176761191426055791546033743289169663685802758931355463198777818659209839022372563347743419958655732803153619016762499420524569898005275926395252595711530293828588895215750156930375841671631224125192355372002522172417631616595806111670409974846858672544871855178498110528679154016375809423841393298919301048091163043875689889797634272088692052826498495553876075412070490266874085541524486585495642138377291447081615449020450431970140037834177778413846427562454756185156538447881955365302167762643415141031644916952351720279908801848343782303245719392651513251840918344433291086733564486719294748880559916601465402727749440504068726980550507487703084573211292596602757987304788474220467483877263110196934110891107839705103489087428817894276611601482321324660169746837737825912968506038520138541802770528765039656046007751866249762637266668953127205423101858799992118649959408996923785634332951897611604808906774344920421486380569730743443149242874381163126873830406349538883632059375622569883014739222002630608554890089697933565619413264266987791783921575890664837663205855472084598204063492973716880838008824219285406941245993403700338127315794662816498009886561357108964419143308166946426252133175511196096351031114785766954077889810181834828511622692903696899379409544856852469989968734120206188816318036359932743160568410765707949064036163397051229222418442897528269296606734976369622948533980223652773718458151809209461944383577391785485553005441260744563870621623125682576988638193993043649657061689478109926404728680960110760109467403220366617344461998330334613824354431227023246461373306043245443427964831974454106393364841070253218883498627224493303387960268167863152823061822187322333908098571909130766944068383311490106246424556595944598418115175146723905814871769611264189723105304794496826850170277426850624886072601499910462677684229737837093337254689107207319488783225085340883252965609992332891407162379846586366091528047445729136053559065014614011135070883729806951924919699786651296423140224553057355744115538417223814132073015320325924445184719034528303076716064671879280944714530519890752120803576518271109211009869020000899047109323779985220842947062962934865018838594380444490189606597921609238913214659186637533010832334424785057589178427651984779654142345003044586653625063729648687267506434882615188580434460607361133969082785797903557785064565369397850218893890304967559090181106546152427290573277505544198560809300117089000971723472463767859285332040686655762011030177933371308504260310010845074153741022939285870699495072444534281718435693009068454557716051984695346363639544029318973956900114137116501836352182656097275499158594039315105824547125319634634078258179128294529140384379554232229798572704376814137705601117096273333067967374180625775720531548361035687270824102915745942081452966493628826047520492032847415429972978368800521972006035213063755366563454015379582966087151223894656940625320043327281954629177203683881693729702407836527876037759383244859619940572918259432183207760808474601742164163474591670298925055949351632697052010308212231514612275577842943366265261798839129250832982901318819435989213101481888308811858338922856606340312561296093495820068138652232870186537246706663551524928519335227898867325031038914901099297558212141575528960910269706518381140351838113138638293185622309897201944671234731154545856956208362449129090791341986041571043425978726678580581989465287121716328480494004739403234767078884981767678083400052950519647535090768942815801510411810191776997692649638608695456994379975684165309435591794557157680851107960596505142874321976855235689022740775287016444413051710861315719982291673991915618482600429534451962237346363800692743904087889567297546004729867362454953442375742850522619303029669773920275983448073199658933908742777707442828957891355958434372184342826567577301895662952631666141523058391308275153489209026681490467616342528918082395729005712017890156917256999076604257826470825459926561714039870194015802555234746918994153040182104616720836919952741559929849607275605457742497486935176078790015462909248230479776744263401999467497900744977748685805908747591271978834488676602894125479784431411589787865384420110807891825012365571064105597186997591128934525125200955727293217375169575671972046186702754933438760707762773445151230720209444569603558003037293024540036550040680770498552886235660598911871686450427368403271455668247553460619244299177344478469322088290874263384789423113066585883650504574974516517139785793342177318685387401940689545001677261395874588954463471996673473742135507100305538715880556747970613967202967630900668380928188661079871328268172281724393713205871223230571052937211805247781965523426257625182297020159789272110115133443308842974926183936518719684260167048343704243589028657897637670017991962394923073324268630914190652061700069753082485868853882948725437381285866395178138147473623187413716555509436920149503529240080072369215425285855474710244437604456890420582392452022606589648473936575577524283964292901977289587513268948092521522092376880487741202187371546278849976249729768883024405753832567084981802996953466679651902292031262628172326248770282911723782993862955005115880709613707124041095193579370797394487740448153038179169975879562510893983470471608064599835260061244253579859324233860189679993425437478385994599319725251127167419650516137157967037150974216540155784892734539871419644936524385501197260234194025184647354284983380293626628276178204182924554216192810532127682325881437492439318530560242987824493687332606453316638200084521043640479453651399601812289777296012923620640719767038855858382348044367961427601069031991316125787395986136894120251202666554157084566602863369344289284361583318424981241814494560014622821333456545931189256680167832363558865010503381665072268596145872738119819468210400795614349854951178585185215396055675445723092847969995848078920017058076792987083089937082558506814144166979720706698402033596948948270075617963658638550944805078943499402823348071241576222259378554492438629662932088132564383224239574172642771153906604129962371049455122009656689908024017873458807672613799519772580790807254316448170337026811440025404757894961259519681789783272074205029333612682285605206440884842205476880356775384169404520496234188311329269040483778700646284125358666717523517435789037788555046633666583461224401634736063397409305416926980649547551900655654926091220053337910006577544870899138997361322618441220253854914272650719477962730020691925627755277882825563088062352952931703745874883655261084882000025781463376350850326320945456019700647757430151402720151698258156133902144056188770234246481894620197571249034738656032825839826777950824520573458643689534064996228449990850662905945558214584693952248307606649866890530777231714024908878193117626400431006029592554171466505582048083028384819424992314471696546952666774413881588719533666647235216928410980283944785194760061701437096708173278033211999038941978176776288130271622470176559954441127670000072212356335264053623389120464275352907130236796149179609821162854617789007318587330259082810754440050786677154744238089856992406291674407699183135218528399101148781753758518064665660674977314202503547977653966741940793791524406271445232916680214202992554222300984787381204706385353353784631078552622675348293047270586136168593810363975060214397688334816621653152013495319709887092862431445741125441785567203914028166560209989458266013935748748934888891757383229630017577727376379053450690451486524602291311069427951672586972344027123897090184229164346363205444158485906647934162085806546264317797014770549039911721583334759527367341608119089696082340339254849742758421627236733718027680967314525698185219649004392653438225438882166958472741760093264858649274518985708106295582744854832774378107836649124913373807231737395500616297683612597176576146922659505312214640678016304351614510464581891761009370284900181320131652220015179608110518471369332882854480655404110227996611456092441408937217392746979160411994344875109621436591657835293169442967380146198818401568504161397483286754829157919656085417990769894844642433679558234334618184118995985952544564865388573573264879085234860079202403603454789606468550866271529886929585483319647747404613380545375120912599897678365155107540088707399697515346014354435738070193852872083027862307951751008579989607986838700160630686487664435250383344521023221634331598481165691278857130510625953300488616661009344623768683821710039949088546541501130782590326054650285004430103462940466965064237912104182817385808721506579307971653897187980122797551601481220341782576371225052601067965214941721492430771339462020355746654591226411158246378386503075931702308692783234742381199894636708286292688182079921218837282748124797878898457806045704282235011579039368111383849104442934083378632865329603946250026776512368107733727340910974425182528076389739863583567837513669256960599032498103732724608363013948618220301083356098089883856696541948654443877650246638660718384030038501116666689591170497106793268515752165247488044650316710881484976924380570846075117062043286524270705887628105076298734196421269582104139866036265865299885426517258094295817336244291598725072941745174540632291538919138126586936029030492118098794681278625698540982962600106578198484484711730447552036689133638662392755745370945383471556005505136678291042614816068920801971206822116203262002157697817880827233411962512804570278263191627489941417688880482223178811929819595925635304754989413171477485839711000700195502058586958830315749474240137614490347845835459829555213139334313058514564024418214446508087884597841648447311886426354168997237122902162515014487319643203008067988893150284572094476684066759218049666191325024515559464236696952980380434009159553284142282456622084536066375687394965180459204546029222330797807124930633172763961528858970267250750279349172072622908074385688362164826066997468293996429305859018218474847994870302180801847804755926409201017803097848485914745157135247429938240028984574111155500779408750096144680914740336996402118581170635775313792771241503545605603710305232947755389118546066866555824208646055033711739900239938948589307880654462787422330251374093660894815420104690510981853378959594952857117686019681844021298467607814792908902630385208239531909556026937152975143000792091758339496613886206070957358764102155826965410517255231845902925439277283580999234097692788007576992282655501465493292932169728742016210822846867979152450948433533005506126900936139273343214453124011527680015809038955987148622066423464736199712647475129232526975722860189916714873260916062723330406661915294634063202888600006300588624349783396896820727263241121448559493209166221833359867058884985634066904618211410906701475976490774143466211928935965588048166979507374430828092128504477757193049331010178701374748123176651429351520995790836958050239832784213349222300412617908380302819961823071158029721826014388924355261780785099551545506717638592541675101112410014523903792213447769347199322367634591343578926369099336222872506351476079517927316952994453403143309552398195188959755257808161269293042818826888281087892245721663524884522281819166177806108704210539617198000841887321391693754975625188030344962054621746405118470970256942394396397547995715514296881115027283003917451394143348721921515365174801698793213092499466612832339663062103429281599860515109682501559526694368225364356066587875084283832844592047280878660081659133015434507091193166553053854059616771181180931999219652722681257774657153954535062167779267561361182535761195055662747249040418266399106747664362323605580358957830486814049893373602982078919256630896753472015516669993092940076210330675746276722710541142475310755213407025267024075191350707382890300061920354624374754999186415578696325456349037126176200706291878534059875874427839140585404196299044207141703281524970449918421936917555554368052481208767673749240532421318490845022270913134593028441242675741934526703195191382585328634201421512937173663271807280436851146617558198113471617055940258314772948295060100806386309425932209400735623469958864380737714574157808118681423143525287145492754467217302294483806644128237862159976887052479021865272330371573280981764472451535058801447788057773716896761250480719521876078857092023815789564549960826720030097565000575810426929974153355123272026941153176147334280077748028209745379474383267743184792978037238205844173341423844292341295650733545385833529600373583443358751077249985311146152030294025391968191345317158039235268444203638101399444167116112251882896688347429806671390675025533380732796974408568001296394368960510420384067137724757001934710223872378489380412095646545160400003404726092695737804490118416362266456254908253236933253670491088373571758254279173255215053971772710088398705434195579811225700524548966180794850915081741071429106112407248922197130418669845540623542105171402262618078018686412307081394004244706366057612729554328781891947108543422390573036123292528843384364399083216923915810445340909688427643239090479462870811958375873035027807899218493649551728429615236527752191407807154973552069524086477336574632253449098712668831671339585818330002153243308524462523191706242770281671953543938204897330182538725484101749132654858426665333399077169302043854962845272643993235363789882789743491642989685019874635703997593101888489742410854535332520827765589614077259892260302657073517618697867582952508617371690537083839008545071018014424502589246445862905019402431557278685816414480598141189564735984649042702437580351036958774993880760130633697210533013016446097204220222238777697624149109669670229852429628627659521313134737324665430107067663875297983730662109152951464493947515310487548592921537660534645006978774678386036364169469840597952227911488085974434183102623604253145724332491225841020142087866551542690286494291278900148550426107212038730623437574556961545034583118950722832951317032732906978239619936153500175119608072310637067158991668725330863704995265951287710107718425195035642915066497598364814879752055010333279190572487291191664876227121882571196492654686113377135075121328447282143640006558611256027510069500317420214912478313990656649067953848524749055769277800330107135954097769167498206930378183064156504316214059309359776785034454328431999343857288134077905604630478471924727504998368595052755185455642750508786406541756955812106612647619477841671919442643317538008612012340855015596377456900392641099906114178704018381018371030610590662056010055470773545978546533218213193424093369848645481721537858789679259844842188228233878501849565833081954528481666043733707049311328254186269694538425808522118472043137796201028838964399305652621663124564019783052105140028544403263367787039654954315748619764968431559420310508548276307482306624425469827464169013201117385131138930564118921335623834740156439287525325833153539252358094957512125695886074061548135250241150553531456545846713179740164129253647472345419452474374483699697927463176594601651538424844284283303534737595686799837507043264948580347021197386317356129499692377410993724313646320588951803999068877832068711755569428533342613949964249429493461941988108511984700495131730239174275814823888999018144891583096122879531246423458502022272475111226124091293372038755882536684159118351860992809376633779816476900090113372536966992314315011255909127320294054178605876003027357525176050909695008157524901442888203006367757641812083617304823821101332217847343283559884580409852364711498166922263144120388354659875340346931854916250471883483398470629503066295765822367848504887263963508792834949637529378747227994477116674607682306329868626061397066924280681508383548771796027816844205795712802594453233648045677552342308529173861251296610493973417130342247652607158832866854290665791749133394843223182888177117396001312597028814482857762994805537282968624291358389709672099411992396659272279755963521942972767212828771530543912503513438503249168097016852424370895389820305067786566790160390836019139980204105727801000999405739992552353166417195174381037622615457183282683888000660843574488916882828189886897393207351589549104417855174279635681799905495641929109477902944823955871086203692005377565237488005719156160851672383569276862003848129809728220631614992620380294330784977741881569259898752047488433226602667866237439809695550470360626741116839325973043653237416251440166300229157065113064053798721538783315240528285518497324968015371963578878265662829557617467343897298574423797421050589322932379990066825020880216924349413105739087495714193669810391376881009945338660196105054793874070293212206674767762222677256438830503161557330489920335468284829833541940449107760077061073453028778885227731476073701670909967182887303701365892631796019494992518308226966302988098334478456641598039718842904329781241220973423514675352353377179537234997287019553033698498981153658896280412201332629187933982793243088044188992174660100220318748670496127267116729061044365335409039478028517300933695909014680272284086141163351681270044017347250847674448573352733582693855290516686822490017291845532184486888348638794675310686714689525762909758474597436405894702740252031484979091623510116589994789468982698118044648909435993684989050280348185118889244324089561515526112822163768696989548418664036546626101982582347695370473482152729526743260309363813955709319896652055153354199526398467509791736977137061410699975025249198310308173023207258220564009132841656679289878280206748155500949299858035149981252236783621058044124569440409447674805988798127169472488055655622039843879650894446160461840226147159254015360014187224225026465385273018224473217282240512655707315157046793812210161563243711782994319789558853178958756351489918377814411778858105472595420513729439917329062028827792191472719264823263838455665745558021745997812544509949999478308760888710470502872531603630460287697841413391010344942263381244622241552853647597559394188636607125015237557931794444327346884646732130269017962497873636257373546512694805014513046717495764867394331723545430620200496775929014497029684383407117432634425093384508685312054223161102542505016521647130496140395549876129853643490778681093349488195087584740059804420037637534570114871329176384468892252852970998123622656475834386766562414567746814079934974673172540367680504191133767804593678490111599311055672066325807474712371475434066418929711235753271624870100121001062986616242144002746243253549582422995487289762227206302366745551512790211780183856755879449449284434654684860886004426143243347197610159732724678468542403821730429444915533262802671737606996446447063716469101487725667054520682093933863151879293549569789578175709379087182926572405919029332347808577536911694827433515588282802450416162044689451958072056728684006775876591437421679354087988885692513687396534910412111071199097681675416204518174883965578430985961742851720633659003979148702645803092064187463095111571914721448949176930433846167471185859655036375110618946759407927018268680772850857596671390016517903438835051901617106561325294027930049552731657011395194479448284802363853185875549267777289373797609010543794359176143807733683094894309789856655497201500794975171648094115346449600377469340201845832733722293554762529619863988402855258866524857242033135818789324935299961776291805323458182525556450608530672538167025861379187954917292001277321460396755291577458837530066774054141748015836218182443819926290722405112123617780011067918003772644617643087583025134231327040992037278947745887617814294014685847955657628050048555038474093709034013390087034446744477326424481214539543901793993832415672373214408747313225316392960273355556083522325189740626485123849283130251143018914075282607389441102613195967378757128620496277239997586477915635104768534107886565655313027498015587553072425092492872764026504294109094421857383712727422198235679314036907798714703237328614821269270908031487235451304403594695318626569114808741559440825253046063802138865399383471575899591144496163760196137662470264129005626654470570780033956217254059529221831066451698558408695301408529123684833608095662625131081671732312266253444442251685206951669178669887482634929883687931592437782565097017607185260136879830436313112698616461334832458585804626332271192435800227496024086733373725846442914800141552153292464880962876621232957963299257414939335934130383335919837456143092797629367155374491280314153734380651119208879256093403523341692228697447029972667231116606302893021379345846139470577274727048222393680289885855996464435640959273047384191055716365410722017276082193863507413372822906387035138259339810359670387385727081867170350003830781703724481689996290610322811974361261586091517121495292543845654056908383265309673605606679183332878724180046949678167232146351962967772385985775275264896028169563824582963550352382870280448133915726301538803862388006688182511004414014881476119487896685644244527473037519818734965038431376534380837841744546844514048718680065026690494528082038426059385772124719860184783552697467452210715037068368061364985999509953098917975447353565474713892703126761738686568113130819644788263175117148127540474959593740933221125160737778629849464997211025110486839042104821662272479528652201234688793800546548686665041945570042632273506225402204379855180517184342785994359180318738467039515930710040864183670122924423521361380830810823592259936327734478517655521776521177444244269045976077300342051987485108094720412272149891305547066838076488374859106383665974647220345387899068681769956655429900268671054682308676344786349330510900706596264134071975242380910240645922041707679665162388199538600431624273476338363977022267761313487526379169532611683372996384402827134651963099631837623068328542050480501666446591993639105046922299050623230417478701546365135808312464448817377115865949225178225923844127252422583300995067444870025483887786469372298930743477846566779324180608605885956732352741001927947752638033640208060161812817807076040816451776346622230074892205190533246448624874135117875642696810129621781930903233503693912295058631640215088996616343837121446887526545876400680497572624163899797860874557498833782424021036551282966403581156759424318690087814085449802319049458143775584017051905660206174195633942034670732737866334952767433034840057855802995393501682705194088626911810271481858563413620724300171256138055851745323873115266871743960113358247532738135302827130251284601057345911698782518670162756915196324973110245740354777276488363265937954925931030389432296978355542073400432657767258843341021196718797565630846322081208136699607149566815698812996861361627085100725695718013366162722535063516443881226164874404826863593329318641664002869741386493615298788481114870449867854445994550556525841966653895491452469704361391499269290121364752898291415861123802121662816494943033407235295771433989533406811805175021083699184319613625207176183440213792997799296035546967892221625881067692348195392256223998720703100807065869770021772228083006950400802650156712692061311903999286584310738699012570674044264477481777474326636061912179174857554152052375758251692602720229877387967242400601490040231026993085970778300067171352700435283583273296539204678569375620293817927349492883539029405337538258253037571654478456207850991671391426243839815344476929966107911278270026810459817637982379554856362563838747149713561697792372255736586969883829010577333460941078044655301495018431643667728624813793111388997325095417142396696690125311320838331834778836003481383243034265223512219296660645982310092572190627163668496433095223654592107663399637374274171235478169719224873444745353235634270504609989187658036488010849567686555675408195925007054752210820862233926692605951140050687971856052091145014905186028873621108666277228607453059623270087870735032279844349770742302568334981617671598402465370636567890736992268691681589958353007419213923974170081984845503119807397746379202621304553161770753494993388232145859940905039497180134902822906689071057364373061342682775992552159277483995375393862824855535478444302696861391466825493174668507105475289008154471287135375427043038887176663413055505685024993533743821138462868267139659459003963088627785654028104900660701941987298785294392610497987499729837536188309809480682668845239704649296784062572945341929870424249971435606367945797589067740753142365901897509923248473706363025710433672556203000175944934838483267937897673296278515579203808827016973808409523480561119699600876953433790187972147400835320731820551044421295772339800266813275983834917974548864428486780809815908787946116221170660552231415319812856176955620563828567418754917486077162815104658046368603096001521465528237783836946846265366925003398082883740640217921413913963955648211209596730606008034745065044735523655340071554633040258894555700386510244757640893247526939938605080077571651494604307630904009187508373723385647039891218832529269761437586690599963639677228365003459150269346622319885947717090335238312223085026453625759563743476194200464621834177342155049117734170396384408557426257477182251488392758795204624062437658672148295276011532636140909275893020666437851617630596383357037699348705312348552548424308228418280514816933406679057927366022480706984976026722818151654351357226658790919345450875699212334875515346272643373062133214958491199075536240619836622888577278716937955550970679854223928859205048568078427840714471664713296440164989782203080455056159819697188229862017364376402982876778953807111352784905773872348544739273285392520393411387112827104224144012991278259582904615250216260719328886014365719337533448124701998555209076610848029606629129927174130521321544431070519733351041382721313044771341385660408802502944218175031703262167643929674544855248960226187364303400182782867807957394754382031593019573360983643645008044087705175469361564077050779719795951472187830199675350255044538371018706430596374961032910893712635679434617346619624275263510303786745313597815250042636844089084903934959149551514769908112421245448166578932171411495884783972441864524387954985264503501511099379196805698202398285497891452488626507057985241858949999049757749902736355345539863103917501767060256782025041942152734771364541572272770322791991147012030277734495103915869411403407565967800905478015757491626614279223636015662176703988218438141918756556663941092278001679317057400779280084008357654072587294707059062720919246864064523876131503275134880806575103104622565541997918331978756931341756923848412802653141213779465257069886160675126302648731617988342193518444102113083210841061248421591181921450658996824599461707994545410885906206956245679539723526681460978981917622866417479592833298694726027335071890153966092062988652439583864425527166873434796588996398435947135607832159687236620079934926003718133831558716149129970742613834638927025763721701985069480521584199242433665141623235284038125124619224875544227350218531461854846769601887016573875207071369269063127019761539691479719447614587010607863174101243171182578830309875764526470679496439323981814104216442482675713226299564584502775370639881557639426677765320226736780502750840093281519632917347270344025960697471502611466059190345750894705227166830859290243879107293033321321935202447318864143948449476899573075538261558695979214423002327392728181129738445378889033868829862138439822700214537366670452684066358456147740533231661792821901390129087295377104592822389739073588114780762055971182752791228610176650487081702166439266919629673481494446298358081976821864334835582934230630364827886461616069009588022492818390561876108002243895528438735645450342802254245251236518204576399730372145206951593041465805964490046972390209689355420273631636089935049043188424484229161109352148183132563795106513270261549601326910724224570204096951240108066613837746446694704804675371297072154239774784545964541166331976974651911942525508287654447885774041440742102802623458175764698608438714827170232319659717605860098479878835606660781959567813825559804280320652092091060023407147336047942237435692540777549962305880756265275152130543691910147030283976074055964313723189908834749247912925723290366673786453929324076726099960798582873251480688727219664648517280415206675463908684202126704232883665999743705217987405783596054534160097435332930145741650758410500564658492839167563195309182652845277680656764809119486935119874132912768773855574819449432350291161902938627798602819141489213676075541055742794856888925405325835073578162652218469035068264657078277627230442309660988686355141041239178191340715830043808932361609426696560749866956772499346854124185803539991906137181964230327638563604475007560196547260624765475284573795602497354864762903987011048127162819914873897134145329359178323723042398252614914076645326371231561968285850347114181123888298443881106516439643418817642874036988839456764878581444626322512732841687496634144658131170920524477420786725110418997851585913034112883623105790010764009506533388330120891621488079409591085431863187972703059172295247549621280832171097733738891112678826100226094419809989944408489973796939910950137131157437389546350954356151017247727876449144786036338947726570129314305393341682308979529392102351591457231728054190170973685935112651891953511327725304001820201157928730033446599673808313420830879830341828817090462148244476294079942391445823670670362501844147296352343121426372114692303441512410263917504783609848237328425038346891930909603650815567350687800122557103041439758491426549179359821772823680389800012642958708984546142602185548149495951251269531201167150994034257345688534867832282494647575672071963269699233886144375538335845962399090100444615942291040071737953405429788217531347211646671480596874046504550971059239889926283751455693857195672380661780620783672998180132715353631268545997122159639827097773622897405953351237295196674209902009604734599201201643105619359023470745344795495209347186650159624076918963932320939529741832928953126406370452001583185553834768633096219368133638826734942785238905527087794556142456867044317380942466982087693489263837647824710221740010659782692082545509097300747813832463521734924865532171422489950759717679073747950751324394849821552022538540195843602134230683291231884367202896656445629894654073297956245343754261948145637549654246600442426415001526583422334296631096087065730550066028465091277496034480355372601751760057079056890281852461250254533142516388776696601689169996657849516346748830628775285684505705199533853715215222744641738638574121115667186386826778057157553872737989860661908427558783552446357296777973483116305932448895744374849136980427592331895279030214222882799770041754112108890769325023084447541747269610110221441387848238386177876165669663145150229277410374754254489656290135911768620891104994098772084076701119638991995295018658459635987120327075061104060353645022374868713773669107789225213739876130248282703929331364250450584745937117603054558513034941927559402588765656267972838020057555066217115851456301045817667338848626104973105704477164549190481145357858181607329277866360305532071892703562397270168725681403137099199692909382056647398473100402880364341762016041137317930098190518293371373756663653137167581991921233802913189845092078466581191417310066574036538681662336729700681063075188711860271175353404423074419054873060678022851546345453118470915872623183264000576756661771810543805106283547900082102097605430872523719624669091718274042090478229114851330135824151753110589343671045332252400650180538455478051243295818740038121023685452590921728098300597582769753676838092571792955310490888233793111454663476490323374989299452703616401877406627986139858882663220719881611288995292843493979705861088455102897721053210864564223985904878743635237359988704991746148229968458073163469468233514219551774799072919952177707562737636136028280575293145742720159144690610284905613958737648010781813225573476085132666819234340289062723006948575662918010483024520576524111996454206274640445383874183426717400843171364574218769547219922605351774376710132984095672932338062086965273855243220009839216097999989523714765173854736948335111528187370230145377866612259820195937442694933944753925503758024472914293134596568485294958568824727975223411150904902454599835379059715920171367544357015496649286839159809151987653511764122914660712067075697021495803096589122818369057598635001909571634281908543281650430977122028027726634951023678680222081191673563586466478295435534775730736489121447081715094335071783287692309638281111722287960932717261752436418073072846170476100305700958193345969829540950893115314583820241208431405543350149835968046548828650751670062259483312586376073036586672214881816115333101015132846510891776087799935054440030975459485209230656650015278177706185006540554602842454519510809010149237136558019186101299934824236286666646519147442214086634096019391507721864735963194479273716137136191049238549093295626677059817797931263988372390069337817309901997711382755873231726420495678581755319592903611048559162453316863348737817504916174113054506984428021954664450499130655266872390137465789689245246312638253575365676179153703432042372172444317888064999456297757940353931527050784013493533591957286012144221424527328738816955675056382737731639400634638595296325559267744257783522389494940071969573403760338668496142643255845045875800776876229333559736704670103903263415423170583397316516158721758311511825897953256460784916382611510832793702299947384277719214257557505744151507350153369621277121628271401095171997920408323795248243458547769999609575449535354964557460512384706634841106114192363116192385366726811096427315896677040189406840592467142223920779641808818435530832994406264397997065371905347116322483234085501539241486296448761542998841847082461836040711128239326642630060286201927814306753972257861611021347056995118714363784632153845724565781428590284232389172848726761843114583042287054886521908378557225867595848901162271734286977656327400158110564109733229456729758977611395264749854354045786135307656926305106310060106307426518496340581454583660456262531446335728454005023240937540137526805349077915730392062375101824973965607005201666780301596881838398544665513397175738152096353602907574056257477345011161614624837032912889154196238844085419920011880433400017798254636880183585739050751092411485855299221764737063411052653169932272065367274427911703659038345434577506825810005771023456394437948203587741711421082850631258691502763023191108714430049305310593408611102039979364812909502761068100464919804329959953516991043762054537964736332780357838030978172842535052064420067102803661899927467923724392013775061895832485340171855970910711644769070281984104288513353133296079679721929819475913147443843447995338628469288833838339779093072154909542172050224340444313986769311920796644094877153881109571747375675384087829533616756454696363392389532775806909431593412193552001387275387117857988573063639107914809350067217237493182278521764998073838018151274374778765899691708541277922718920801737736829298986828860723710927275176458991467539956549414214553679309497141470986825765085627927259816884432263659331565003029479167445476087685731496572859109802460134678017385218136991859185155650327857842797211763573600912193708214985598402745817516261392255751210075308948734849769944899144712939898437611229423731923176308257468236330044055398598704834743167490775718441977525029444601610364394834441762815547023343829249478607022933078920631729995322998959926604982313958886231133102167518881972350201235114637757047251821229898831865951598829565857060179471337224710818217325343233356166081635869081433885747021604652760246114338959563786702561286951327590218608379138646021104955119339561533047909298439551052588983653052747051641868169535459848750034086509060922423317857598651299861273336052227589462265517837256664716708981874099052963571253712738313585073696451679178865897371078335236145148011663080198598116625482077189067777269618037089684801143281412053797641914293060423728883599298415859340348324412316903442095270803164038430003923892809793078210672948970057438721454554248962007456493442960554393243872862322882744838912287635677972366984732486901847684795205665157363788373003846475329606032915709794036046945476639117138580965780520456943459746818972912813927760148704402368494134297620803012686802910516746818961956521368259772297994623727235306652249850703991034311827929874545479822812448995980916936472086339194106769374059848035856735083373057840115027034709252544357446439346385630109489090582941522251990915198476687265194936572376552427321653342117586642565117682559901728769945663980078274589283872193503995082873339970843838564673641356672241556545342317527899703117343533438074450304995001552986417245739602355260285973042930304823409936869108118309009547956742976277739803673494084359394289096104114883352387534749990428759937499408890014420553573930578455633155204598564033439666454361302419442248806901027610492734577430116653625661739335759373855165741223109812399405149550536067610510618222484885465193774945698230396924284397961950873557266361797336022837796268544703222192760772950160126535826780590012717127356387365827924265027628902940641798886745109958352231759448664373363882981537366735149361367556967360843732757185629788556425089339588551537636354365576842974023131441282881979894283237102262300535558144042037575128458827786035031792751892493758894352859877930682898990509908157329286005101682531089033096042226764174004221391400193080356864083090830704257626793471564328767683095982242637375132888681519438457733805821893108342933890738078585102129063707728428598707793037095111663404772743793827941380809475794314151867947575228022637523456523963359118723360521938952686377018413566893632050586622718370624941350226413599257661118542714107302098623177720272863771714776028317812392920064876226368989316719952787562121290999776573712900468463963127172988733790885245113904852644407166813199849094841832822405327966388123651762032438124108330345505939572205173092218531137853246814641488032788386254066989697691091333803033895343440873570232167879120135557413024180423581074449673389736642322863093317421653460154946550338630879009390609988516385908990191577092683859960196458616466098599822356800448376956644855394989884303742625488018456596883220181498078106227142440887800656427521530230295856611436890693522398839427153825064130209617609518512951768243844872620908850022454840483130466333255289386719886236465157483193972982998149607932868810706876428961182417545116337414885713221934307476537521985262577606434576409933104388059623627258788131015966130846130743091411565665591042376222850543196405815334178687432472479247169095188481612605507591884352699395966461477881051535058291939123474908033446028529397593364434443299912355820596247749020876168303507909377443651362306222110191379730032908020005624817121843669205330999384369502782852725776862470702998287375553438696619552355175004169657482837570274081641141528907791773092775337984855150099118519238257319991434984046940801246929940285581857260269253278505489947716187239227528702571137405858775366034177757956298024544552377711394258219431859029137755704634102840529945446679980581890753988992071460380841524458353660664833442101596395436148842355740553710030718896857960447055836988770716899640766679343203959592636054971648582399354165873979686592703065182944027200644069388108100826743626163976646756034380190494639759142886756823909211736806989231502888732806168217647207027425061184376966430500046140115528159492051822336933357362141392613319760013418682062261252589968131124612073435395541654758369124951277429355574841848168950789677530692657326958729615911471289196462234808491748929429489045484618772644037996226220142163744559957955698324392369121698682649251336803677703345988400091725517209366410641649568764919523126115383241034856154825250246993148747808273793987807497689851424824696016812047135178262187217643291817997100898366849102128278096814969342668197142385591659230854958469755227490336448902636000162893359357361367126282376710149763915582008475790477501629245470023915599243291870150795312154427822383823829503124872415845695241077560362736138865084389136717950638357702112130698983149109320096838837993922082324829128580860655222104861318772864102510120631464364470972978161083747935719264770068296892015539037658055120541682807991291690925090085471094566538064223588038937835380937573759551141111091737630983840784991781999674710652467847500834083440849363666526468838085816417020328272588070129681193038834115771185147987612429287847207736156359748340438478935550730706214559745166387045019073509237355889215332062907766929554001749704584478185575502237195135107517080639243435373298528115257372785532507048511919625191403699110682170781551348116632276716692348685300667573358870968967755400228981792378870950643991137493316466949557640717323288449872377913010980653632867867501257866863617680875443981408756578613856863711930920090954458166438856472846199126965620790498173562459665036434641493555147640726131302084848094566881807220202477734573329707324995463225249294739537860147129450253965180814844077035877042702974934549380730999861132546500976625270396374806949732090046367272333717004655209243615581440761945985705272902677879393871108301673561749595354433399984664892039913215185298544278107302200605930950243122881767834600225915809191476672412105723482401249218111961421859121540905125372510267000886827747941752101867256587928901500222677513253637126257086358233060666166006572726628779721071393717758635618881554638975497543603507068751558024005882454032838386978273730048757445978425475462844962548375314176709998916947521441113941706693050069651214045096927185117201426899101243472373195452675696022643456412527784868984492730063719862171568069314767491611810248167795279136166663357341453181470331799934338361633320905969228733427530082693269257148874462795779734893988762546390244436028344601076704267138387509468977492535585984953170595265082471079317351281255098795243453070986298795239962353152294159410468713042469476852650393611187328032476055474053184032057496949414830140189720698005235069196411495381044163923893900492296629192202926068786206440413923717382720054846900806134786424060019013594566843104397337488304314654360231360985890304759866953711267578951236532773528683754568404892402763981821858493282865069586189799975534951063277315139914619819296269318077362184501408346099538586078396683521609500077172484720846671471866229088542273002948829276439660877539014469654574279021457645679795793540717800730979674922365690473238872005769325496807460905766037332573094959392177888461746096278146804858092783148450609209247237573869159830639550854421733214995352141874107599000630749442066168262574608846896451365982327616944739909407577030125025929377854964572206217307683049593143074706009721809197578157437325293865295906958474416378183865403754764261420453171723987364997441382765563644065959333031049974927721664429229972968703000751716755331087170830680640996244790242503306245990939655088276890189429013757976680657689431905042993455450203475723450431226863858841752421989316992948620756662300823490487093083062909857540360600548004368871595201526075435841615862009060193412805215645246327470126473043069015345514485621212201367917151676009171081046349044934185454357596131397823179912861269044193597041711050201367634912785011355479461612747766527541907579608820096355501974424627242955256913245099404869518224981083417342727531255081343254160380790919251430130317514707027269714501713356694542538265105697927582640923829676598624735310898599013017518518323101711247169532012521663463705993957568650640489040586320233791486522410005138226066749724674629902613634747480684076479187600586699391125190479085576414153714221684887406754057747991261399159001794282288221124889546854154202302725663620545552079464554426368947764998648895125407897969505515352230731131888055029527396139447674047715027651329287554379171241850888676131642287039510813676772890598787572337619691801857313624737997572478386021103898301266957356102925789694534380127463341941084323018844108010868215045273669800068080038720364806742905899042674839266272116397165481327257690750398029052781552606159925499014200847858212202815652842862681021010045293148060941775234102489967948777954093059428408038205493285341877114536974798608247923255667015474871232104316798278905282117649556742698957638281493976309543682879625154791835177998592106405569232267391792921223054090936424456171433620122212369689927114390938480105094100968333065270609586080013261608969788404274635604075304991256077007291952114527107188341521521208877717546057278861960347287821372997928283325115420148434635024864250756035321969265765932444702300112418924847588019487486811541149691787368416053026903129041949731789533379551535113469161230113752920542269787959319979244037195125089067080289862788346083865714629016013438908525548602440579111962873624018223833723453616192097888184231118354076593572212078013819874764020915839671434346867135496004486944756057824244362054729390766468141127106028055573504958088730526062327562888929374986574971935399701358777233229577059464598265174106453075997494378798116145125509498301821760624899828909163875604386226878959472080790973380903073634938006906172691350714381125218190475721060185331713188956043059204612459273551791644697963924451414248268145972106866357432298294278586276524186186562184913113228596173591666000535664896437652910591682838095562816375384482830177809990434454282569594034775403499080659514144027136816073955366392427318657253044744511797183674175214936586928079089141129641638712042173484948222351794633655157793459144091970659802615697362066081780890666896459980965560468242892344686390774937360388938279598439101442854890005584596390005045171177033899553859890030278658490729806839691641299673092885573827765938138912802339155408425366279558050107066590244205182279178014155221129426587617605412960173376662190772787135859380782216678038287259068646001867902822717620043965087849922047549413565828201657123148714026032807233021925210537239025775938256774721144446987949977657226832868765138771006272285867360765160424368819279524618194014088832589606837738854949817048597696438078009431771197718279619945815737598803686278698194628857805074988237237357558169190627084660988362480473537474297447202479933757214060516590741956702314083845282343267133422683187334328681588087985338600402889482937201550764900051556323228073269169166767649992896099848886603522535607891298958373803627358900418036454644500072642201056602870454265602259079608244052400797372186494426887512104484207778083918861899861735052397906953613345134254669891026675932497640224722901550440561864754214903189965621442886566741424783303312035706966150154786483613288995207534099408785741369535183303613250118565706352605754208701987740657301734697258274451541549256562285221422275747955811797470199226801067608496579093875538873733147314860166934027050771334400634487853239973196010023657352167192254958877579841699556132100260358654164898475237845045018945582905547772530373831269213863307878197827535695004398201377699663147962272881154592180232444030931434565774122305196832251866426186643416896229134540396050638986371709080652754132838720389053927024230648754470890781033758954153008507697325619047048583566195821562883219384730212028994257473255041534188384647176374206810337805601842836758644848222096494479559890094452287452037503194547703494549393429768563164361758785703485569665332354749693881084175752145550148094768106760584742797034576707578354927727798392904697166956679881831497676251431181598364132492368895684029115098888829145570727199377670894477947750875957499597054352504014313194115818028645553222603746419907474493957814491640514739964830631670117338166578799686120402809625337563206757279740177550106736876926876711723138306310073617552586801944022747040747209506797070537213839269758708835616115289845768225437391532985240517131616476090776974876115408176774794221037596768456281730651980711122323415381940983746775824003189647018892898763015397369445316959741132182665591168133554999263935068459496033304583139341608426957918746724334098573649661916947963472315943663275197771317682670949109962223801292813134926380658720936343575476503565251957393076168608621478240101093340564012266083940852503745015359523869344314912479450475559474547654976887388033331935298643403460788457042988231600373504423674500731304992316963698296348479725947491500685636906122293759515740227870418081752165681825616585510489103240226535872790156720601168187312951326762404420762822690631845523856299982707715042680330922211565643053389264458280255591425569967348330851202039444245711724601797296703246385372596254099004822247713032415934258621865614044802208419924842731754784592240433061409088194019771377565190939842998300579229047754363370980934031604874579013894972439731564624820227215952420644928453199333268761418226538705999446472898147298411444556682065109218407048676750471706740849718413183565748806305515468569050745981161760438787816311658493483623916636980237917045982764936025352139735482476760235905933397569946341860819902118309880695140390128255645775907580176632877680649017932030693190462688562753422568502426854345795179309672429924350826231124150708170092476405525589427117901819041644811499599185412917929692747377418161533283283462521037410992604295367133189591685724081232327092503858274698403931641290416228248254070580224745738659769762143548091648749981285731534670490455272418910536168976497293570715175868014369840204578609399827621776687967094347086287074594795309828853081296741306662247403147196974119133173037306654555491729551129641349591601445348834986412067500744910472272723356641595674996431163510139595410499312459760485676907078701762128157192947235388120837433236193246942674984913917889271430697087891953332551399593229000002057666159999977237511312627918665711718433307660541489762297893024003181649766118441097122793439342617534638597897985162091676431195006125386555093849576600459897805733947785943241072032865556501189390506083944501793290010486490849175139437625575829705519060584314850917079277049456886847770196801313510371511573366177459450988053872319994524647910115558062621707990543973257879251249566907395285422807672321887353158242755589913185338763344393637639067558658270521939605936260708337023890324463686416328807547391061336190132391519542988006861786884332040312478856599469416981930161449511489994316017077700947471508110643274755236774470247579423300288629969001167454312538546212206521116990847494116836439956762656800609130674301951247644122803861640056826231107125866383484439698326796076079260824677234620490744704931015868817558071356051789021449116448758813645493791261365290773010334856446380804324401332091936566297313739057164428448668333197355660429042793510571914893122877957110160075095649535081013789023109878142582360404346926380920553540605170648900009690803370402704177675371136067576094339699793906347468523452602774306803887271092130839275858805127025488052668684281600618282206253514106040984248655998101373724370100455768071352463150793924428317277155679179461004894860732234854819470908990276355392574611207050494668190645333802995143039321658571630645210143772977146922815426510690577681108899160984760490112927943942266791391026971123525955017579932158527900230689656396283436821616574644782293340589765037095972723907057951938110207609082169448105579698414416497592974974811699614400569018223616200528275515388500239234313541100423635868184302639946730907713430446576166783839180528082676306644696619622152289901182497565938712497731090640356965680964654393327194197181623260911860768355061836573265533774200036357718379205564693849222785751598990369392926323340892294754168837444200746072656450846981824307701739350447451071903812294433947238761793619895817789394118889648329901903711191435847568777573738616304965012525268976829096678387963069167990986834387807066851514613028213251195652204787081215377675315834109974789306749898845985032806565366735497659545057105545997886058553586278819715000445371884479250993608895810830855926754200260931059542045144953481306588824573474961174374726601936763507794822271160790661792165974803231105697712665535148771493093725736250633827479399194069880036346083558681036924037667156672426032273760272919569465432977326949023582232367207291733589435161014358210899113955129803530640095628853328189858800907245378315724938995797260310075045015318261154892175237544516200367229448523162197815985816993909804366369688496428857012104174378548438217346330309651995863202223872538135182112072630132307364436558307214675889617044361961132275000969083216761457849913948874153200143595432649999852854763615216607159601607057589383683228913162127023328971075025856084022850807019146860373288660968890476007709134327537404844354919905347122318612134566345556443926728059133599612038253753684251975813732572501914550402965521662082111937447012880378590908908758078609835668345985111234154842960396546281862634132791889240308526486372582543961474542865156768740920766206117195985402877725548515285633527516565617301051411694726589700102167751117712158890961777308839493084540997835533958333106318512171412735375034514552475521585919042812444547651250656800862751843187288609682938139393866115056874722600347171009736319245727979919336281579703298198553208748982778872318259245581649190776219448851231858088619109638991756589358480735076074159508229241382235168370853580951977009422877218804008463435440375284198039887851827255077334661291213773850709052211101173467158820819559565679093034465823936332786663428261034810112599957798989913116352913231417400422970601797018374061418127893487457306218111136785861975011698992800890893983545281634578755115911334943001570053297856093211916539293125925967394400600479020456081924484282955466101439769820719096499619895798989433696451618626279228107679235152768212020545779691873149227451655798277427791365479986043784805986970437033843156769544608082402912141472289438671378382707909362374202399715562234834821654820020247592032882441850506615135193212093304744501327427237812434770615782268686478708020844512434538416328529112328720082381317645891991039976968489230526188229007168941894212029527436933385831195226382420286040876859757388687073600943361101036770763397424143684282315195146474581351551190991307618444315688360347611655241167865737172062614823310511917970613428987114118159644188835841888819766783712533270780508963293523182171198758983392663816134186291116527156498198041853360166387918095046591859628923500904613566381995681690608877730743363785268446643951155075015931408273105497820952184022874127568065755331942833420243184515285738072147530615182034276020124308458370495524164606190064901127284144907827227545220379418350542728549832497796088375247015894525309729810139009886195031322560007923671582867794446717516058802905580066917370729142829724612955684529632727817692172806208331695212548166292232080988527342162342566350332534900431751024237658951475134814442409182276770615366523724901202507372521309575580100165831782015197034931647106882968054267199844552720338927698545053203523452015758440080000989319199769559035327358926837853390433702991171183175682819729788048515665313509490421098258434208127687558053007157528210819942114244745617269162958355156929220279171480428218954915094983602895294970571118698226075306191319875434110154349483418572168993312893793979930811132497995148765035992894942324738863089452364847749785926062515403739213325985149493174606753513676166967896853601011683650175841861126523693947219332663224041880471236700071059939853723835282845827622535834876554309081395193106283753170019574998376679240208193257193722323409141109075489044946727489703567177565273562811484768149966015341119714740100762428792196843168441587823804079730981193272745760192429557195192759861280146319934563887930897088866989317590566943673220453628794946443671142723757130154600554627479576214580594613633479190459086028284456959186651854260418659368363260487696038129972931968340173806954137862272084479472852499020482449461571607047018777198446150054805633343918907837724198285122183515964938986308727516614288508623190324095647356372646259862985355418032014852472393912399882497609594472851149448125621312752132046842304133708380728548864557339498374106817583355522986026823498229044249391941623876033491558648939231805981769577089604862721267297200671780441807916672304265258051236030651833101323043407019489525795724313979493345259859020376030291382314198052821907496558748973633147190658251474580574484711662704747688623513593844950677867913568754964000979113311847587212492680892560508036147756717597588815754096571044071840682005895374407125536432574182929478667551071285197183324981113083648675012401989192424372706616942067108022903901572631360805325577442223390951813705277713420237619018669424649892832243193227662589731526659688463714632439891795251122639959177336344096230665256200499894487910446721683481733100616550030777327163312863048607399098117566175922709824219017898919510674266762565262419013787922916798927953634070214055938164410366178246629952648994541382439675058507925703918944241015796015638422303609797535853735222995200136317434337233084621219893629704932410559680467647801496219514337140626358086974161309960550528255329717556793184149130635401185539252145596237938379831394912732388049286073415094837449007225415270174580408090436746183616546318266328563715687245407231118421855946380084688512075235990278107872849099192042373441034087901665060902418938182858897037523520980471724225511120398818106736184230270206849672242903025324724209315144688405399772458818988026707685976574630561300573085482675772581100766265985621541045181662350977421191397235883425384766590588787130658731335543119249594801815892333150743504660802409862117372896336194446148005901528405153967361806499165612697609789547400313619371201589831001567067067002405144242926301361787596778488560797349377473076936173127676699857141019003993129411068492257105534113565799840143235186159620008904601195994884380424998407515606868334010043537122767514545982804622918094208454756507294125442885446234668031704293735412329891312422585780672743571751746367099454927686824039591715678577530328807999568531750630801302136630435724561303231893703720303405934539247901143848939664213226252713955734934745185038338026834359690982564604304789879675158110622862355202236541378111366761086793233647326056412496808702725082572911551625274303790189681432593449667073294865227024538057227564701948333607411197770078407341107328364856570747049253004507485833275004103882652242109255231581102131980471507073398515936580894184222903804350816432666995528246807340272762735507928622670854509261501494047276930601475969666233858911247678843348313223155439345295770174532815951006649507543283911891225166412460006182213384684259091416118326271177759984027722497395861263698296359809784712104147331502097348845300663975652159779106763230929776574841477558154247064197662904064987054598153940679449569684452297086235926985525594641950586164360996556065859241915462428100451599082904977368669594379407264672975550133500431412626099380298063948993708226028938439368506281642230310695449458049996498220143064126791747340179889911868235949899908885340540236115026340766782622999375097329172157192614218923702503771213067685618020460955329207105067068087658600084564909833564126358828635812908692722121796998270384332908663706609682002796677284174561813290151305659054320869022525116914266590311141705544797924296193832185466546596565843273943500054537617701302830762317472577267761183835009155915519207579145889118258362275081780879529533203383351616358687286894699228803110222128419030392891723525535941244554094822383541765728087722805663521043511688173392969096405257544437793484717664082929311628912983640917131451702949589060437157961697794807436109180464177933952330222363117606925021401786373883804026440784915723045426157174411893755341163992626946519183778946666487052142564662519304420981039918452851460602360740183877913888636390997764516720798544555325967898128314498651318603536163911706706245808993242038089436805709890902310284150446637581580716412399796833864151583391005780141021475550310224398551031134849331245524048427753206253696327838631179913829686279476572386928431890913190159424942475186553496247265463289879372201479055642732176497189777514630432386334413796449297192454569436030698080756838488028767148118021004120326262242722234313030083618456742602314824275854456634496407891430091034536589809101112523334688820546195888212420213728008795471621721666796726851854394632293303669841405616180052502523089426042276075927381787481085475851609721305111212238695316486533865920111761456951879520532725827180807570692069876058718221234622652507195995020518119856714821852159949305032423047983447343223463564048668301234457894189274853552379856556409264599950112465711926797023839312541288572539215490149207436023358866333666200319291168672205777781675749523592719476664480619492753606055211840639310751114352149441080208441184587502739962909370206858646979072707878558361345966732142467546617668939544544029561249034196129935814402675396199379168127118727275392964824978618421530058417448964788440592107077527588352143374515078763819239669552751744362811274726846543553980074518389782255082594885980796049800953897925497222948118850641613581138026923843623455493208164466959554336532964884600729562920203698526599497954762790075129543159005900530511215174781210031307514394725860078627894567591247796721368977001031185250756185273110592962587468574461731439815893209669453446462956561690617625963675797524438565679029467694154976841313893485896781020706629482978791567204142206131003069940963702060183756929203320352133967061381295006730195581825418998101417314795496989104179511579056754469627333198013899668849020022693858004447783676932716829612909078198266990212744935174664742312783742052122428423498374347014971035444342458309058056253606712329489435510198397339088311476740928053302325796551279359250210486049498130101598596520747757303723636010556498042585806640957461340590249842646753182727438690085260068493998289152160536160680547382313498174012792431204635846398182168381498786919389013688264277182380226704986652748859490277368674302144371487109575465911047621320787929348168561542915711731075039375806441974701837928402700291646395526218839627983725145837063158398135972613401486515890244580233439143208331476039546388469606916500128292404188930803925869496001763835565415353032984036766565332756074212437517953619115475472740782016810451786451449758894829922123790139180294088606589280432235866924523871556907628019659126004920926617088562257481697194567738754942121451812369598050190024542332939003379072421893409955141831927263432145595856818793027994069745300365971150240087282466846861451503050322282497743230357695497973843137230880861502636340385578146716842810333033494150920558208779349807475467038225840932770477076351950299643081244305909911830228477849532250181230244436241316458152499042525028437018053521669792934093049938100080087294412478486108878760669200861103691112181229534920683858116960736778417576746297228812414073215004236359839587494942161088986597475904602721639423429610400316800612236334803478092967464586751423723912379620973273961080036874098721553631982111341860305717985230347303109568816051326477980892389148450086945579019680137782766501639095639386603184020373270570796065931341986803029784092903999690810580739808241279726718317418110636769399781527363159860588859310544927818243423174346441598996546538214346861646701180254048840406164590089018633471507665552614922339059203106845214920078261996648194939444739584022423705131434514126235314410543261754119337467036224950360617088421953387831296487123315129353416283333869533664666808047594339542517227219585367751056585285201317335958923244849768352777375933146866787352645163255999017309252165079023729902309260353916773279607534170709045828132580936039649992937469779937596173381430187148273412586682612542334160663762594538055668245073950383065539788301830344445570863842061579617713326352842751911573180783547130164050961827085220642461468791599595970108374104184897723363720640795412327716025917748391294357480798733944685975203138367107428153829669945807062260269969029892196208370659140834648021608587274762741424801065390721770624435176816930648583141385337395951848363585369541128461145822754040188358983699704749113789462801216674522988647076789448255044363110832086836050205008172187228826707061495737223416622626004917457265938271500539132446968342725499018609540242257232469692532002515117799640648844681870664969370862278972011861509963738229343828006899515112188882744547862958014085792858246808025373898844869257453429833013032242150186043666886779038785204259482996991852591392503922184022439728581479358431877833555032398836521216452067925910929199544770382158368702313774694996948938522225947998483682201485957167535222204241870413972373866299822826594109494562923213671750648412216857550641945746393904160675245597404977366229948266324844984191305666756965606545579515193539878933062431744702005922042030078793819291369743250712607024859320605877551878989228988556906302975221790183382971110715735925342278739239818747529918048376006193710108868131878853113417431529501542931042292786092246841442805445441698595611156976906383451639582900203053602122598263747194842736943286616861014480008284765225616951404447961751811489735855342480366018210421785842383285026933493791343468652552608781670106978198628307735485348440817228744114614993762399373305258833723215566562981120729254527663125145854564011463372377108539802947386548512909892687667671614821134482092521396483056443130191600859406299648540150429046516479918082723370717169366993875333353962130944436796283911573952256244910735140973564430488698163651822903367151942671549595711091386344785547557159710752889760062119323219037878707825616076480649031950622046286294075754898865129678707086832411243939534867507203453252327747438115022817008046003655238492417694420768485177925927886679220676917046885536712794486056997718655696908630886124698481404569050070216507969083158792992452049427005337786649860277237841426723698514051739566832440094422886984936730180427761747995131897607523919063767067100816291618072031516143339130985751391363893563480887334375812443006242427966324890110576827859022289597595567300594058486465118310601474749241842828641961453604593233244198903664043788588907908910978707474483315656290748052831507610129427918741358247790160417183758565674790765008853505006914235173466705492579793027926292068640888186795494721941812561276957548315486024454576456790310765123594104782790414115882289404650471728482352907960574164632044762783234562486221954892814218609602322745483707770137252302809489797594963743004904376080936221118064037146872596543841945384710786429941853227297896757099223858925659395947959339083911648342769735884684602346996010700651108733603749180265111666671638121543313466663883970653817422810380781824180517054846484147392043570360059830633649840959575504287318238113387821905266604462233401547987615223645262007877920449170209416944345201615032127272418916791298233799431070384290180016849682134316466675975851649449457449840074988818260652403973406464890866839628699675960841972111161893191160347853125479380730543140614617517708679334354683603861368695333669071875178807579817498008748380036424491223642793917928055631450589083274872938092095910755731130591362968234301267578738816924643810464625860821448586408484146486444461485275234000607543138495898449604656348153653642451250012161926575878210583961795613501585035902536380406265159921896084941534198656322598998720523108253115891721707530629569652375914092687938738548403925789770421871964783693949026737387337722985478525024601908639898983797807639208410918770308110181014617504272945208322612043248432972229109587185054309295183700143784521620862730035329665152346942050141995269154409787463000754928041428194280936432601448843898111734742090175404061668198609204880439263797667760314997033387104185486016017069310679208437363005680584829685095232254163961730442376605904144158573579344597397022138824199875880346494847917372765727119438649364414580026202411287015561333616043973343174890413747255970788873947636398649697530525418825433416197224452881427405911285435744249079875883172495604584532667719509766518750864640470267797747123169278467074496965089864733905714874962062709445122251234786754897282585282017975759852477010901375223845812881360298259151344298896949110566703501952712525433000368033340392155503870863239798999965038898169342526025590916454088119405607540228480637599668733363171279804029330580730268580268615025948794503605307337004304038638791252110590404368520504066825424056770103139746192664218255624113255137932783215491348772727261470427536212416047909438595118324291062341686814997431553596799124485646079388811732759091832461940373604784623725199074156389335424907772474182900585188736966335309255452792456115423875046057116031304293924887803790107252896434901364729959123965265128836303467169932235061372798423930853643210298775136507647780874028101771435174881665580644789541524436902391973186294614742681175919439187979170425828976271969959056173298274324950862102855447599810823616489737334593194338137796170427481575936216027642438720054558110629445534735385757448218811614849526299240495999239237545982554803486137595820210327600565467758458911753681760957490400300755692299549068872194335730254191541229231059136932660403235908202234837973974478797629070828441380865573002760263464976825548731140942177890492908845569961729129871964410524558690783821694555118697125878330109618656408913125850667716748650527940254974513959394625862810445398409951490208204306911540070536112273290570489378715143477375305012536709141263199552628143478751071208759992686592352648595033412326269367289716739039641748888127508814392071265006749832637704216375405769199474689869718693471004644135652431986936167478989444639814382825969260665597618288270014307403602676733171083551611594976378020699636386450407814024370449136466614379168412218817303831560214203365222847446810562414434808519302776299724040001935945954038565385652381532418961920879126359827134634805283909524355405459778960314909404112083128239827538144453927749996228201726668885634952564847379284048176607480343755076901813971856665033606270410550825020126727762433489723372327074845511583794038042263262193513993798473798009113375150201041833146652610704736405612049113157160053279516821827530226399088895422070892967347237935438663552086493570413194245964242812032562376318849713921445476564403891285414246193240832421826127550188683996362346438450398383486137611217504878932678720587815810993497103316777141451936953707132015129834771208582996156069004162505456416270403507715075655571248342263921996219125951838700424409575017466446219121178780697978846083239135318762516734214911738194729517195878802862534638262349191352745851487886271028990983294267005634510316664904912150474603857803084393740671604189473300626255176500077246758703552151464439051650607699354709690196975977473143599340122729216158433933615228471877558599370672843731981188318645077647581834368918217376162514679732501230788010987280270739052227831001925731256887030553875820501919784154031140781507659017283736426085689308731369955055138069914393297055193560348060750882911868790526362195569059876929242797916203331862571443593521248126136923278100305456522026137998766727367764627807296613866675177052807060326710887715548160329657805461537034912142099671393079671580756284342891888890076681527426096759555041879289675025297761765161564813960831849156909043259481917168549411407584772101392262682593879728820758865624749820611675055645655716242378976183896629958948682008351905738497195105262577504553163094380077298844855343209594286079519415755126515365083663241878364610218214027090655418133461148852751751612571724288084056888139360753748119152913754283022066560340621004844532255635193535521288020407673046297178266400453634719369015433663514691142737544234537326780886076055228161417361900666274798884777321232096674136994007331926698544043809157911665363421301170551960315990766743541738781058745491542944360716608817658095204590483572868862181393371641078065175032918582419649035845964459426478649263232476927990462365497517711882874259517769116781144509657982067984023175714409352599937160483683893781923051239872797474314251146383989831190452400902224492321025035630640385478827438560503331411490147643484872356913866154898661275354327618937392272034199990553242298764941327902350031076685947652944095444224010615202735201594107155450449600358506860563583194867039355795720469290325133618332678543376738890523618443310315303313833538344317586351873732639691020628317713192450162119667827379355823545877607387980715959440470780480226822888638402130212105032329572538160502102659252418312010923401331901239085839681927584805953515246313572902809787379417681736366747959857046573183368129723955516714890739481456964010545609684143077135216942657514706601898714400147674966232709407808812549976439515141228659337211261201933038519188351755098753709138266519688640058556071734744099895241843642616918579156553968628643476069012601053379491268253965929407418303667480726380011836288437848648118868209458142949086512726772817230999931284024502436925861565275979218396177567382408914764797381311934871811589895391519137128278022579175280788911559131924074381628904076563487625552031394956060625430418125447528444855379699927088346262350245144805037393846641069916022149787353258025295886526558215777577299979550669722946136844373090785524090899585916935892725231437796855411246780415925245030805976736517338803220971581790426083670434980975076309247191146730831519049628492417516055939996207344356854274773758598156304702953475064454568391338723028476205451455557444603553872550042568512725502513012391029147192965095074980333280560925965572247975495723644165113125864252208274962200011098552960434370712633004484591510075723781921581560861400575577023051477790553449588521398184427455317990991631724742157871442286639725731670955927230958746060165426926840359399696355387680420325652907754270739790230773048029801495319251278969977367214130276020105102653941690882536877792973807849223801294569164788322294463699028688625761749047229435203859191461800660749203489204898258906730395363391516273422199206228229293396352264860033636795492629818991260393513491008888735312696584088653203004137609226164401881953577883416932444989873527096156015805918614551811684234837839161857074052396395671104627643587307078360741756447415867246059492643211722729891093112568790524261166583038106335419950790669530582390201501735039388693653904618703850291256093489715086337517525266446369844707326226592230591663118111490309300957573190801228918130377236394046720064176993502296919606592478428581376967257003450017971544269410001949133487667745717388268041096262445889598316722518325018344933981352592338604320209610671058062351775255962944285480720691522638366547953559532854144925410120872226340558518464780868406461234047209429833121827589413570284768126925633269540434111564966713911375702472998894514756264611740288471951755037893978078317681385686545214040187743088129568099878988317673778831362562161605108210089396707107353432355298723693216581511332022850437545658995929851281560502540270824057061061251506351151460499095222738484412868477629232558911359531464199468653361642684712563293499451987680090645802904796523655431981280391021798861117616928257665026449520133798445914737528321810270677594166218137408515902435134756789813239026883728571389643234173499556769849170770931084560754289059978308706710442986947872182144144622764008676923572969462488923478545806778520101348893607759883272000701783804514754106923411373522883117871132505136085823816173714452241604909540041232519069639695525026368304207571938530717208286894168574842346570226486945153379824187227078991299154492315101633308559484537434398743163805399425425961480090939225883905695895871722333876241054963745147143871760089217218131543308451812064586631264227017199962466879670833216095513603548108837036187986114997635930170833721686830446177290334880744565775421086504712938088153706178409279589258404621193473393700938917560567916642869387017132448756157839260209521304265426232590648118796186525942375060528840594884996157886647299736755351047391748526932784988152274448592574986308266391231348631048377835234157260923183017986062197504466211903073805320911835966651051362194317772837105201365595853668302629988451478826440881455723527069649555626446498651648642435950089271702020728113918816417203405270846406484366339428941740735609310627993822804498063352975524781629033913702305442579029589149562071566538343989854656686907987589486960563248150289359892167495085594245869549548817208431838238707093792798446635601556033155012351802928957133249769431861476357740878361795148109072163977589183461028583554193284086730777196705997141998700678630355610612301287176445258298419802667906509778036331137317197453608645479953372022441788008614396969354632718150055051904074969169093972724730598182562702322693361571785130486666448128829710437488777184548694010346363667801233494680899979871605695670483864229154478688802731314483281881271226156527230382523547260422200710757760121135140310881153840769158403942432572036200159718332297442522051179873678017130370276292859488494367069124014841194227836087308996506969251156528733781940029172244979198090562952700478261383790416020251720481442185789376266947806293416340870096600085318409209280848071060326998772005585523822519671324650827282715176849291156499420110670551726153404991695758163101171929858399441688315857754262120727497940828628254977515608091736388132011625615799919981637625620818710354142446165444954147242459289105709947688756244757516766676319453667204358458356347619812113786087371851962269650029052178472611128926933496451762280251109916470733640965352249100509683217430388064303017932733939157540695586224736375224315452757892278972119710637157139616763812648470654476575303765052168619012106953724924359797298277694142597743703692631920392441718358514023141716123572214688436999457114385611804973711651628741954387695052853627821424815746854925704494864504987494300114432373838362940462775187910093658549273661180627967975996325366912741527495208475626436095324280029707941629791633317405954580760991217748081112608593073495394574685832489877333141453435012832717691523509301814852137507793718945626809149268454358392387487800283529791930540642629163693497467318808151063685174552493644713389981320428833055788999669281542016284837005530998243880924689654017632077041809665914599131495606886309854936221735893334631817395235489946100994245934070644945051344821551229134029896924948661145528565296595064539285512207560894447720362550234225186275105075780451054072644386615890876371227059837006960962446329751061573789605934725166031189237911172247268121628339647669389746775532846173511662000116328821934426344474465097685611204790570390781581574968916392584472606497516343786703097669631445614040691244070805410368165125472843165881130511370144819001342844270641053437750136288585887759350873275783578279859011407501102939977540584016587566852797182072603484713555571689640450434940782571060810453104841427095645397078304698065027992164646771897919915052018737660424756006700662247881566109419765469428919924737817768856573460409729383722229860834081017754641707062461249161296620021887120378193231582730609812792367785307749636299815549453667874198003997352188897330320027883246521994856409393758577917771223390142681628933878475697384564984703671421374930905546268552666082139217977169092827396152656911915650494082078064168714012219712861023862223811013346281918861830044802994272463022440953397226319657965327038067709849749299615060754982980793682892853588673276769287118507189642833773714254559719518663072098373986026616431095724802940380654536490459036829039025256362504335864192633716254707148259168850055405502497042290423456390772430440178804969494727679571586096303833002302731203080706662929629725405115867027745048148988126997070376647517090573781219242630682445032949359380132169914547097032742257340788021430988934299666720267222042662835609404749015590347558566480950844052187824308947462423629102928391109354502072365829149842484558470619339185653258103286623374317667297350903811917613609502400884312266664130332855025860539676651035589210366046047689237745989274589035771359890825085093772924813865259367831153387833324382822495208086354962731896528087476691936737859698235950699286061721951892741729959082334684849023131108047142157965790635958885082353177229927160049126241982001871488422922238610313947466278817117677051361242873938018665281702510365539483333153435345026802454565886655337837009475732346557190008674953058000735261880284510086107406862773853192883506428421138924042339893024356807563659870562958451652317577194386013462141534365720619437018793829441003959434562716238717610634732153359860586721118958745046228678383117362644700510822224768587352315024466481134223434970641197478513368502461269113217706836674156116520150101696131481565729079081656151552995174605058219354163878720453034400102587347531967915100472868446035270602060058363699720164263551988399286869106652568499405141649846570805286558820601713551169915568524552028278362060421390278705009930312720436074028519209704425724777651269656126516964280997054819198158632042618382962585863098413068014117580256808303690997109239283645230015916712379775837171614723786241564203428427420120713528528121785824552425634316506633180031454127673959921050583003288497841481774377068987418524930907185972983033658947647190965665814016927124176124857625723561995490265065599102305668811330900153923402189658963541437700129395703765969722157181758320111767217527888366602207868560622435939669668011862208435469921209019236024779086276121066036395381461493162001990114670285186918565606054490934366650486520433937949858144058353785872519068229548581214898418929686360319540739649766371555092169752133803849846730397949811968000926671624832749943403582352295089498678469228264516148482650834575494409616284045436555217854976562261883669851043703597474007654428787246970458872960975938771966081896766683911781886040428405323929967174052940792784769884945546426153115565728506753477436891271187210752481962391555472441935366104203443071608322728421155067337042583619035006562687378761332487333042084201714705133901046368627132334642796476894257656297294082206622669193480484610430732899757339659508953266882022727229574691481342367209748822246815302702111710697603168995281467241397032600261724339134237967279404272958812740547877765371182889431653992672886467208813439253364510244139172508291423833454912906941671115446193460868331901489918438934094266925206290247048425102838652997454274354584902540500628013055533664170280212761228753844639722278103147158657226213129346501156645712328118761700353436065933324973524457867298720099163802731063859034232865667601832488541421439396810800056083317403064269511714676041209473322226923188036695845225715147636799745761539142271132830993123688366736057613127832504873604168123469351449434750456255022165303867382865633385555869439577444235379740277349750547578810091844587019864158520519562645972726596918522583246979369871990911889292575662214406664058582794096853042047143712873694218219535422225876885177072131002354254682622894942740993949080005987080509615795811543057588414276110416572912132065682876229313081972672937715680787656288330656239551744493528980568810117423159428812235251051149620859518401563678641997919804927755473372434924833675037158582901164222689239554849389571576526857457431569168878081554867637296960173315713640720443591044648751626976740719221004286906953095319494364293783653302328003995510160184431669958737612562991266521952568482257977516377116966629742985974842292058451774227797060243983275839200938496600610645467370327198928063441249099992361634181645723244702298375783456590980681837988263061035899508520367632365367829499016695289310774445604969146166864237148454171801074673913812833527107837039834265379392788589778180187120146934924989186883745246151149561076399086970158429338029696768517815821866894857542662504886404976882978683287163349590307685640347063816236935574536880508603627441220945105664828200669116394021104068810429403911318692071951084638243359106942353713388145658115466996321914114174461968036272316126469881573799188393445946971284935904049668713465309190572412176779535522339080860060181007625338245866284293856205916829713897874487977697107702568441966683348235330313110090936007051729475336147974965368806297498590005474520059129458163386676815722947344789506063034983120505073208276335810073470063890847187062379869822857332821922675294288393897647491299513079705356668279364802010105020071099551545996576099715196919598453991999732451431109577124191615253369499521754642673341316641953222951324522561066337419343108115444169819027457030937209542741190397578266745953610366299729988000098656153957146864186801283267774692169502290042903212450934830401591237986143445385024994814855805244935359564501922950797487740527347926835259997099049947851179015455624440598660568465594897557191748929870890291587993335576977064098069456559978667607383564401949133364708415329878546821876088177518251090548763422392667575723062016017119485040937776214333636685203698231845355048634329337821050662132185045999171099129773509395868053770029341561213394691762511664680146800535837227076336888812634094903746993206323029755213922739606827665431644182026986922389739247290668785372772808686921898886269720307903212204708636261806971358421085120451088638664682592317546403964851871320745838736388962351360735001207779450669682890119360960701545657767304302520892365102655718551319128782904003195584749936321170609220727865018584749431298786944158729464269730855465357129577319997420440891873539126760660370045536254638600777642538233699294351256326771190729510326694029985424493996450098750057461487831743529469349851316494067325501529337433163231849127154300435439042484826894262512824318352573966160616598733018923311436491189440860111800988226380058891544019537570721340223184250031259774658055978913943818666239009394248545116010306272758154642359054148972562042349490939672233265355272193959786836155400956090641902777026939329526013763199488855761345914293311644310747838200497685577677748876324577527936566831108791350110335308824872471428731938976747202726096985442590784488491588836887353750409888510016948680512938372601066795023945628487554005419930520746788820298083421719471905122954175071810906812965526072426928254319133766085684810719170088387699364974882456587398062139221499312963998862414701355964371080781578550149514950370387779569435307630369351457046131256817274674579825175938773592856304451448603155157692684965168026218967758464907373650925134034943618678164960338690475519198203940607045037355399825092151303932832722418438086794852572771247956416996319086242840456740753928557147773285149796404816321486076280291698488175583836719371720596317962890447890156742650090705155715328276018056079103430728657934872727999673718892764391086875510118607015265904727137311801699864900713517127147718073239471300265092584204059905191469564932910129921089797741486997426050999727171054131382352805826266982780153300430681298300826887184684162093556822718476210889431051300670174296019173165464836584220874105773508764971518983558668635006474057150006095294409953113411224078294996274847306325675615909295829814672203161935627644156497249847452767581291833184609166407337646691116210767116610349698800732762016427513497160229225957261218520596466429903896336509449158709610331874684169582481329474200531621407727545939891922649420218123539119409342819491594061109300728704850139568489272437305243383702793293177759549109765763666828057327868955040512735888872693313624555566655292514148235550509217230290385367279238729458321511471403068988314383600740186570786629801531950944844070824369679999838503481321849830654271251232657250894159562616728815860273267687130663241234282172128796502054403034596421230417505290863143506669408569462481777690883184431896948959642921598385205079122739175527354288216281836604223420505874079168895219835258246036700278975274588253893148350115218036294047535423125738226708310124235097000844740828952884736651067684376303039041645480851947211157063963751362244025734726330298716353764986723836366521644243747511753475092796725903157125034316151343288465150113222084879815306542802678059134994616590211139600277757348976908226077121963819218215122299999168354418763883266400613161665383657019654837728634470105280924732622510570133643146570226556016827639203561023999044003510708594675117277834257770469916431104227904721449555797999391162293255424076236802066166681719519068435895966123673256499241025602384953294343615781677287355109670514677914488595151477562034487404345492799031664148767414121480800786645659416565508804090116690871574129924471419245471090580738001719735922359034198142655292372029931483675704536331120161610130146860341945209691586917651366187605354175063926215069026162972422353011102118810947722923481880047697190928560168782591469125851286115533776679092116376568880275458832760514231206724838034740281843931676349705234364987161960766920513054750538905351433092170405578755519504362529243688170634568492627169768841853103170387861466420182105884860769440890844475179843678486933214775215751138853759503208690035390566304309189917098958464149189456742929035588258815869949135902917224720928137090828102577737250880558059303372044708895441175263935215344285283738418817935164737512440550824445343922519251285108377974746071480469051202216150976650912821494866882549057550927968688121937401857525586597241809883449998279261243903803210790666423947728562231372504156875471122185598069202601930507613202547000917324206737463193062040047730394929706749529394208228678132903527031523143245365016935612302893719755061179957289591858753655600505550773350511615120664800116681475906294332253274678232971689532429665161588690280723770375378765194511346423903604325085069786294721626237581886574295149085816712448625140561526341365410344856793606265950446372322922941319447520276555795016999979739999334143160708125426619832641084892331027268171991929761424890716809100546290584529098303891100908878252804527429446662212812858322021148099812573488371799518728610098417858988869924180329457078065966426838789698190860198272798032765548130763293623585774231217909250304853048361596730069425641271459774092510530447698155369914803392716898975498606593135310318746109219277093549910260735614393744090807401121368771038651181906356013279328996047731210009823371386325149450926528986886798331025965865519952355883226552520941091042970141167544598067764619411581944994318435245211716518873205094645599678250128955493585952248191928413512956856129107480162134393885238981081833264520435594447033109248313834798956128980109098270537392630737040450012874738321799038146187645171915566906195395980203921533954013781323232378509571311418911092239086737176135892513081265500213077174974468480578816742861146945602034279494393505360514055240567979722329293690084608742267238192654484309921073060180327255058731674842171822311650147257442412590104959734326945577987968459341262514082948656169398255242457452406243129937355174189741079548574257832756848365167757624554816845946037991582476487858060758897480719031174645091404120311763207148388153698854209329425226601614206083264952966350790382466541312554891861524663690712962914261454652168237337786576168230049044119059396844831700689218267658128742211699706380724173499418350607092534014019272059662130961650585084064848444673140057353887986144822580443651562947042158756070247057974836824715087555081919528454539277093779468220915600316417475069783719813276929413073425998762442246672860183226196740097928381106401487965899046695289947511409732617332943417766367775803843152386452129858850525659818938099050949367959250644938695403293926219162076408694334674380670669396452320456057106704147531116308851922931542802053373519588993742685604975453803571337245605802346306654676960749214500645539212767718858203500322166271221128933833392462552758981697325370104843534268491190890604446585734163636719261533850974889512635570023214178924311388740157170924897386558014709866896844652792543296435283586794608705147145378066162186717360737921639240590560856434466404971862532219063317990084045383200553166720526733308469919450004389623081553090878544973001118465782355765503278981370514825806997215145056356167767420290644214430446862905225617432886376949528847322125232882836983941962073309907139029811620470870393368741633962883207328084000343668155863899925482741465518129888827510371252171346310531649805343259036915893030167941988501712570342700170356767981102418291048123819455371801203073692448526149889293293553355950037190364023660417707840237718815308311067882806425099604911505042307647823462858994890261735531235810114364952674298920096647827250193942176687336849210770499264537965050130817687293851093971350235198219832183407761188223762448594902365716900587288829298000890190470038157971884893567593028224845747004016361594805156824889801479573752857973679793114811682189520134092300567560939838483116999945631650497936102074566596493052661058005799258214562682290896529764887885095228265203974402659804176636682910603128688350994740131507230500487325141977877089846344000365894204946103297775787593657150829601265132695148518557293894183805136817903056406928619896573789117669665822891757885739062726568498526515701138902000906305988134414264699145076374583094842764701788791027767555694195045074131058800904981026606227544074522142113863037566180967254934571059332024679593350598346167934820831498041189979812734796643898152623743251918806555796812148421114234030676309686773789104518370811689887190795987645282389100053871944634682849865831477593078095791981344153711830741150058233224388604533167612608014264839707382996135020587499949793028363185172026775129804979879754610073711870790070904368815379904317467586410855451859152677480146871302807168685233679472973522719572174536992130781182372486415666804014517164774213867278511777292693770706318648773096865077488672578338589203845712551522460901772828971862322207224963316179847178945749372798408332946661969294204407446881619906035162228289815964712830381349368341343748170756914927456880914763921440708519953218298297379820942901338134824827407187544082353038512395249248346340063543227555638183416426277003777059803047562199842338084297419020906076633024066319832198905318206157098612273748009319350758718238584247688961036628770682324834737529018856734612592851552738366662886399004167307337886602611829426938101504021921116649477041732331888275274732877204288311392011547270766353782171327484156720247219004205912206569017059436453086613286362893626394045549973916048952643544447966970525922951752502364255174115841128150491768414388592426772753947712798409668931403005353496162418114181971794954204615531997195810416797446652896439267778155240774359523775452593331614009176527241786346454676415425864950605077645923871668307290768723226516917971074090323151870682380692863304869595112278748361942422224575778664592988338867281140448444619263669003395163051560113978407118920407550946425408552825173885067785057591267851618449326640280845735629196944346925601286060388892472177607376565855132554655572479474251647857467506418647482865134776370622990831876936249660636362342317436226061951853941981027968482595204214635386539438887457889174054255489062124331131347171590265339109448127552423141950802402198969687326062063317225331940515852977423689491175065481335365351560561044265221161017212794815754752121375110668800894093353019724142100022354353296652427151040431923779128196916627044922897409845752907439238522767605411793488331511364378859987412379584231309947659025914404742348067848868044897200077259882131945943565796980010895490548947377283947608448388202003091269856777536167973896136753880485481092768279159235342668334016418817164434987201566909941067802814582976792981006986744052596725902578076662267864400920511202729401831733808784551058803505521104628260910773268826471083042656494834841590860628736089493886765940234295823558112155293017617703639352204303878498418426518928809371991057865006692588066216701678125978863865427030762463894764147922206163581816017249301260137288530672235547850309679599267275706740106008229175679589372372271981842056144692118815590831708702797892942258718707836348078314827385223350789310899271828775321097521174523027935888494180956895714522021149074929492151472813924751463159083998199443830027743855822969440529070281881796406905861673530711414282895976267596378789030636611504315949591028936252365909907117648716351599983111152253578244818463495177808942809986336772524392927406269328627438827397912141307961609899389631433176469978766276674018691883812457655961266887668861817809478917767286152542046191493451561968200923085277144392495829188956327216057026234648862282594755654069717229818018847153947571923099952832342265683495032004296760055472445341585778121659621997670720766019908590366779713030456479990949014688586754167544556693328407159932603271574289867179461434377247429954565454219359773058766548709096873695192653384404858183241232223844481607339769598480870357778480643666893117580505253536209930035106077131766456567017084414060553011786935475639961601472273712631179773084528024957210409267970031443542351877567935546016764469858272621892894473391468088198919971880172052700977301038946583435228650715050018382759766202635682487014939339361889869651937135835276612819886004375476470051432552674960696767424926657747919956360199756791708731989989311030668820132421081711865985138929068434488417929591766148691197096810207539938944662690734815311643132751286574711243733418533068844859007224422247885649420498668801343340005816736036790780810218084148977425703246006673329570791217017176411011086376756034340435502844337789625025274007048577389081397201607508285070698260657314015882097886570524415495320327639934447458929786056227598095336707142185144741755453656391195611807316918041485409381938464966195064845855853271740284546289230920684396391604471220521042100824477899363165213716157008144642273525345810538414373080568732005932205593189152498841956954614416892258785093179091785578211149843941685690359028057119542841568997342485355679150613241347522123237699109019098786540051705379436475636015849218082586179998423120930332294576230657923342631934109002444742750843639666774185924525734807630023476978582714310310467797705904710658864093722905963507201240136141826847909234815396656010230797273605923076238040256430268618063951668686668067163782740441510114565776552210992024226714726473268540923090607586087149513059487858871128361412673835856282307218868934901963794144382718692601445569837764158397714494985171433514196514595079986833291686174930704246324657890958888255107354980779899261521481513110512285440323701972175573530061798625926167970046241356540786295082220122651424971545238798948519712461596713943310502717114031557165462197444343039676299160756049774065715316151568351788732565488848435772409318744570958476771971052421216531663419402592245330612787189888040110997151401344687412035380428532942379997861057039538419544518803687984114597846067275580160492556071869591807188540912831278507254968273979726930786926406586541645714277196339052130727045346715775816076301772988073268780051350031589495151141042165854541725710090017039285174880366371614211526339769991723796578611017439668006974729377882294099764050240364643837474655312763848960266369309680723670892439590597413897811277818756889470047503649685898891631936762920274334025986193593499374832226586421849627756623061789451725384922086084511784250700061849199980412570658093839777417723884856953174040222437984311258239091872812857099274083031656243882127018489957302063082240412331162625614493242322160916607208260726405591664463067407416494234881945811029199179512016660043104533144556767168676681861900091845552075488306828028612187400314699968338944900248627657933455943928910469979419936042856620586099858180497932928008645133457458499388880643149933896663664791867023343152388279577019395624527360481229610959413383649220409225574255175700712087618265540237259794832233432987694965155420100144915993128524769017612174288638474669314783234016728555629497667049171314747301915190846475607150123654905242593423073730589470246096198409252823591526013659268884185827818830481761772743521358555467247686870200361997021709172052974549567429719959499130214676444530908079882578559090856699085331896947999967816708315429378128947377025726964610902790247741375948913360376061709289061481344317271399244289817717181624577844743645308103458783116773403808763811217864382283613471338329424010701178616262963308957530400489937857119406745879871584929975070514380816552516906318847554935853903261458214462213139564653765523829092462106715185904366907930791408747870778121973744998444456345375549391510253869026404689208093837177875313606265521250839592625267479797082349103412644099703316382851873585232045969315431020347053585048936298474478622338606145627756549375172197871413947524543402588724419078428022424792574945173113327270615156215024402252188711553134828464536026671066267954472068743004494726799930633384985601862554832433627834473016818707559815582911735497737672527485204667050947814751082302872964832637908092938383314512144696402631784040870460891769607518002541575017790620217460328373567933395225009905713534950208849577195663575803122684742290886944452528678674148866032471717791858016767397091244165333604331580127465282076313941429311630829224200375324850755280567481714500923760110577134512733871131026324944447732096379778999773778555730934611912973594624331033168570597799500374127553256147270557688773082088076519217524978736080916039660280027068728015036561496762958054613829722285287660576888669911104855646453182288028561232177459260428001758563107150492791712412149025270451269787427342701245233010599490804311388556039839968556811319009397794646566106627693175155507102382133078597174291434547122407519673376084841022054490976806728051023378745750100163158001612446562796001389167212518427900013506082031101893899989091345687240477702286762611656365120784301565244899291120574641334253580720957886191614963731740980812818780633188156441725263874750888631525679748907083938459882012198754821016683702748998247276433439924101869943111975613650507292818321444705086177708875186375452276031334286708135122571068450615600444143418571529392495469598542128399628400597307251604460861469222331417114434604297360465458022050461941664037599895048407901878997186343572309135612935902613694772501911126375347605102093429692835490459031458375780645303747195647588754494087030951583400876990671799069563763191957562086117909923255705748963444455249225952314811017845434426380394214241470505801933306272981981477495863221191510144370575771615175732832508318371988444063698944181427570387783498380793809323352887247236235257476757502332040482326769482607669225017144522311315127879359484494179264373334082313642470135795149367914711680346492536097413856865298211499379342543006412164710068525800835893294158194614901014578938726854230173995910260085066661844453115846014546313150279820260897986230579207023443441051024431953870657562442900719295750415633725436683950309972428745465960091676164137763868204448928848915316292593882703873117726088708116343039996420546914711275329836003596718804845567773393705753010816446499490163761247362110690976691282251808711628035389062176293704411516094525952390578676952130693751961265392052621162655426666385589417443568596886702122486939710208142722560970703092835305694778298178694305486137397545656804377970643524231654886866817334699291575158836925668428036405496310333460046012132425548775483829822924705446470800552221432631712752881502092540901621192458499219880802227001638506596773599554930627505936022060763583602489568583899228442957137099571741474023422085557541855259188596307575738096673179091076739026586722441035699778428494095013721423344013779481883687605273697562114009961014754790273045134264768423147564701208887788849843892471074349242729383034067218039991098640010712233623874212616612482792764380552331535176188715615210018491969530567388765242105250453473875995618503723225348102958625924822228308121347870483412755317696687739660474292798939950793727834001671794087732696472488645263462051844854580449556022941235630033800021760075452792799140484128474304297223865882118893605744985233840769321870121883698070447857087781368746844745111491376565209572537183336310495220641733909668987663802037522622630291060856559241941749336909934560558973253525847392595394720977993221091893961758341806063187111788239125499366486908890389572231151538400269049728026443102975475108957250159820689905036337093446910581273399041938995122062429693722890672470651688871026670390797466188794512189801533780674417130180428960647468607452652599094919643787081147244524352993285513477874036870881601885117585405828624717642265773273227364590602886036788957718359067743638661124070175198346805617078363593012044984106729678571298120546019059822862972530909768896115991243775595633386006609429994322436552882731108499772297389624652428235845743904957221109126131192250631846257525450022045748771011853847992483539954339072009029488045766484039355940320945618253934624660031246547804277892346141884458763356987855078022399535263385392149749537105804215660200589420632297891126413654404486029191145760293407436175402784144397381951437227303236240733346645130825999070429747024907938580481360468599399764653711893834155488321362601597717841428275139680280295158310589872304644326880840757531116016009087865100053170491124255704554932000057372758989952301748964927356256641390195202997747744827377901594478407718719370047110726009984996925529273907490430505447020065689922794731911291826241325331971961859052006283695946480659128939425852483405771949649902682933152639612100856195826356339728699586178879111604379057943402297232741225268901244387978835977815024253880165321569672574990263342607332087239716532772997320090825953674897405785227623426080985611283000584657810498622425944346281233554807646436068391922030718830611198564050943443697785751273314416043578489896063594945027606880924561438973962630701413780078206890436171083424039351553847914574846199871552813044780262554021529566684663504722689060368799962527475851664149786569490972436908020286872622661793123837320691439764520172857398118148654802406250959985227484830584222526762696621634304344390849767185692621680648571859413750932697505684786050683689290258882759754227203133244355139631978121901841310151020208620568751072562805797590575732333278081355070448293175340801083708762666719621220668677925640866579821707606702964896409490522512589792422193092832464302038984591980830645752826787690591822312718132769312007059557500564523583362133814194370565180743577185905163926398973148788621033556135596425153199361382709015448966801214204625483318305572532647643127867219056894557376865090305436738579612695554852292758288474583810624969301124831291813447956823179921859403029707883701139733172613719229303783505966317720938960351412922100547667606362589751217544530393992498086987177465145652473033113037040198426199091872479154968501437422983346381710458219489935670407241072887922377900785556675587758657977817752484401064510418698470061017122078125066938558683518399322606940685899314989711335450069790883335836418197997578001024998389459742014584879594899937365006690662600804634781683618371848612004305167766682982226957561192470915916496658209236225814384618507012179804343433538602856158476697191456522548521881457289338945885442496185664004344144046571438646846057241451854998019312228010765699036513366817661461703249621489607942492526399535776094471439658641125168399413891270243015225153727418085253777673211528865844579771446259729489066939603738258759049685420792218520769053592192809798558753290085321162236731798791537216422599384645518110755116794636908310714966770457220959362125305803068612439955656867926615349218364677571175514881450579807459328723000968461626227322823191711562676629907991769958461186445611035226452653220229237140675442350876808754574414222135045704878410054155214249514428859568117479537246524551853287386519847862247118534046461244661563957013554816901794271332080297683840110278952323854089370280833659637212675767886356858324037135705312419632955091496712183701850923897165817878157382683521798322251557566955451060190770795752847738025896086948383447781373412729764354932250794379147659084537051911457354785024348667003735547779762980535856903013036801666855065887320280404388928284448246090391617141823442956059358209143254434006828182674444376113705509855724529792851269568433000049885916490570099562971139723329439837621046522775125212493607790547530271459104779520606283481482193182382411408417062205407938831087994114940233927165556981058552065635931841431791925640814649063614379071989104261986497144781497535884277269853719147958831350131342523794619316930412283674198695430470610791280730083810484194868945667768967409899404735933451417692899568665599879065073361241028743683300222626598067707398883650033009751813782478693616078651278435565266293553397405195034666854825250008363575228651924608491382499452643911330904405385679210828094312131389392188399527363427740366872019240562428027122540106806031661228132069978033653392013032403519347262259800799255288542003466149702039214044709896849665791059540511967208250066907167626082799609757656472561012987619969755267659821217902854740795707255189062106008708696077413644459129453167539814860397011706254101770654108006323488584402225480092410374644594754275072617255719716070253310666130105901075561943550044404185435095987947235814406278015229789347850581675218622655005327948196412442520213033483938923108230334534546159788201160067707123504355023390812757029303813758933250995831290303738415947272856628066612208277343932031487294385601978522025615298237184902693859870653328205963110341229640469635742738161458966082396072363342396332749925073409622628286449525193035955622756418388843565581327704893998472862246212481598586891597209921689828000104730011022981799215486497809698236844727180654236669135084121377105123440019855583567670429423276530686758189159498806207821218501126063141265942054607678885538958061656198466045081918115882189910904080002202866699796384320417316659752114559983465215347099105753711511714723602730146685000922812565687328503957322227652784427197680206431247125108320898809863943632730033769902866471372905818897528660463414164722704742297433007924155576480963536876464773922094338567358785035418948573625572337958799520581885792286424646031154519742505706982574687882004004635023297271198274082055677471948357460438591625201008229705596337690474267134605219138667199057403650225026710624684758904738001708978636794485314200417530778066986185818280505500082336328697319728798337651342361040891329595739716284959072509364469338392419532528684275284432413885075057128965179451319310564862481110714645390838437855785345653485492405878341503379572839280062213914203664196419958381806331122688902787599238948939388516230982039898180290189965509639720221512838382846106296080812453102257433480240177838265797895181567999213152806588933948979576872983546536105350327229031300431549053403428715440236859722280659865596253080897431847359687003237486926320155144957652264293243271879208382303731104117512184634771637092264874114293776272722497939696987154248842029161602979354854102705456461240435853141860399892294120335346240405757086193317286846700670316596447394966550794572891974631429824044818355622624781455659877982817678321059676200597486384373644880431407790817787974875037444340748817415508508055919459911449230262833499823206922378105912544543713565555377714558523524801636459801122235041385028443320210423093403250079330535750211934041419497682347668103835312911554921715046975729683190169724995509739178430866587004320448522989552286247034246315431057514156427391660540929460631137708761100472009918657837957610584458763553308309542840697211027184626899378136598298718970015540324483737829387034273588800354147091947508073165470169687636099906067178063816142057792806501383399575671227055994349577896806023772023587390710712422730711316289428071798289192740673300724702163311090823276272474229993766782131249172027260956125725486723145603815307591003484246312372495836792992129276360224198573148889333351828404610488498162483315422157924779211241326707505181238115665778543814842443184003075116402457519302981704743791778169520905349747370186782275344387094352171603395509999500160652641882007896967509578090535430774163463786376883070393282401210453243192646659947046138115322999137041998659943245670867008455435279260533309435197724813621371680259714430339753309461277131883052834153113290513283823224276753163746460693734486778792216860175081384780239865265710298058075218310635573045070949457334047439763521875900422208479752729027079103751700665261866830182407227813483253486786371895897275932339840205843001258936160801475914642895588729866132961179242318280536619482057058811010041867009753501310688159423333645619927842772736902432360749202931429756216331608515424087217397165031007913128385128799900909833367319626437953824362970348877297634096886745261951509591315676704901241921589987940342621741710232243608872276473895858731082308880087314785672651193666254503023233557278812912418918800904699023682116997389591788700326979732903437652508210215492439249488690192001286797055867798653049569213407040079496709032266876794063457397469791451174111573537257677122714669354451954656713313075422161251067598387350470428010587983166501240902123534197389698459656001249506866013336362692230051595883054780998912698304248061181387488021120915378086435653167293673873891049582342881052663051806857574473560308726277820975349680651596732060949107631664077851001604846907576531954872909005053883359474434860401992885977824022690483068366731855944298185968395475260078232600386851735804359264818742944169809799795701116755275503319292992132120316697821208882560575295227325186439806956990936442942755379638331257434497114507364161989062860912259763155632841539155908568338678389314530971545391798576827081722382805469073681616625288302081099737096705910027882164377621235285862496196226235720939091975722291880815162948235852791013487140656617366752982959546506720419319114127070395934930620912866782828379927328553070944982345418256470382995930295503851533337080755926649789300303856640902784410951696504099775206200797761996136999669030900567420017552130045317227923947613342953415618993016306711514957065580239131722022372469394352388637361663956777897263442770834211843468306379275695488409648944476489208112192745357547311066878922744969546002124960757552210838725647915091984982302139089695847833232549718880725064208081118656826105421801988375313646510166041468259775477343815673571413454303177759288684259102654290274011456564612453014014667526016772129597132888789715242303352037547929044532211282384161668644326935069436812518608181401941715420928518159189360033526892797573947497877672528481085709252697693571884634297360219479991554209006578590831528121378950571793742569095009121044262360062544085431559411642458522121856682802550455233665421491244824780293056803599365573477791519741658734932761979569868649389572757814946428089105498779206639102794576953216662284555928180024619483028654328699698578629461406757010418649578119585937847323323336339521219215312096501172057610913546271964024462034847718298411339464835719240720927900142599561375550561582712797665743324760208073564165818235192959246463891259053165136508831689042617094384247353086731894322068400774781112901172845484157681298799104304832939446775196600187889486401279960129740073586532334431425847198725541246368731408221568984145292728034228120195402621370084350354502526129064505403784516592503336414759194490204308545784404806800404898220786892442780765480481483029614415077068141300451738329859213513870026275708308254088764902459889210003239109628797396731324586307712002209854759663155146130562777425296923989080779866354708212078114156470496242537400316272830555190717784064577444280178237536113931908140898102526146118774147739371268880092366054479297096877267336648932287332891446081704221428608577433328445565711113221909249177089671469581187805525809665951592535582709684272801015343959053000216123977678586123025694925986151055220840115181588803074854272271913576186424589602105470158635349611342176844586901626564895728398957455323680338786451200223707346564598975892771944595291035144773594205591492803983531808182586004639191886159576643149865087551959661467076050163912768586285561893872893590968721596435805993976199247055598678347761130126236844893562839441995109977207960727994324417673218846213010928816021588648919315369872204397519079831904144653114172550028050506768397242384668414403886933328584072607807936610205668695699099795652418585334471681005301446005730895551033603192436719673807438670239057536924120607815652624752706140834908995206430228837276390795902040483522003281527495801723176066872432818706766837817253648508998054327727978894569503388577032358407932904907373150174685900292208032690978498229248473410083432632964943867290953500013644586493012989310069759048300991132840717825793229190964906312367767342014633375793991469319978423168965668551378761088391391624321682413158831541816894424670659900543430392897600473346712331967859961056949778636635737075489651232726220040255302165444828920544681630994363773059758253031812078941520041363748156600740157869681027341494273991154891669409376117198104191226612954197315440121954975361329583569399694422282244174832650909583607965666078980437353884664643179439123737329112878363460708690457439655267850474265339819364143708498413077880415290010467785051008826851493398238338736018400510711808046690125709789317169868751166571385686957222063797458464749097353909404378365575856484301334195041103669940003655671719024782899553936181078855882347796204485506722196993724385298610993468000961438665588685134935053199410419931947207849500590580279117578766965069580483265081044137693339446134822413669122581622990076480927804361478994245000007044842970146146415976582097163958744518019844070367041748277765380101017524517505645221732277980289844110717419496264056224838889769726241306842560313872605780285487183083102119113567431987608580182678954222484014162728798736252657516780266520639880243593798306565310235465304830552105957990644010115013818890530833974130017458849672694023898483917399257464782877051611140415664235719654936869420010654383586768432394737520022464611705546817927468090390111142742690153994920650524175451736227620509500490736113927676969874733428608802095487917134713334098412443928463441559741075555048425426855911401276759277555716970395523729279036116275255775573840949779153145600075457868931253352934307293517614647456539389254268568853382266736575765024257029595272065875363465910986394660428648235092535627612673016686628903429816098425834251285276191246690798905827620958028720228838859943256238351303968317877228356546137622450251089811035515161853562328468671511038845258378369265679973083734778354774133769779695011229020603031185122207730088752238435644386287058934176273103295441566570781948342565440938184700091564009684638426819790207978881800156746081925031777844468287025711497379736532468723681879146730058461114862530594712446150625573768076189060423159989660498094750257502075661660016575470389642459769202639473284586153794101814226135438979390866876701283081827635336032578695253785240577219479943272940998426601309326562352304783476285346068297606026305370815079282426382063350684145084459082165752976971819404355797294119855063369407344134190221281963968293041851273984905708917532019116090869735869050904349635896724691228108121023650110851486561793688661270029267672629929478827156689012097642131171293405008829290318641558894421945940483074100424471798595920214283277736573081171989690342377790725196412343282608276966946495504253216483168495082479705709421393993089300692681853304633614228372426198579831202204567246768040185663917341786142838287575705137035967402378800520120389131451145695637548020952578583372709915905822973488780750929809934753715710105372323824738666539533457061118382200473569517942332283330224910555603040718262166764303102843525291108521907066462619635151147761935593758972601165060467124625628201098717140594535285075293026347667192940764177988443030116524819710979255697295931512865376678594893343180151390776271253631413646622616215164868886286693294455349948021307479570553158546865070484627527994198146698008859334031635412592506471935349663621042176468042292512026312779874630669368740471160499988287172906788039891135731567486720731224307068227679124566597014114905863104977359133678352334301723939178886470338852799909946212707170336755382652748387954209005089246253752044983055612099589869375650461252767219449691350312878786846068587109332182529928780047019815591166708032237180705987571706725882775816704689595405566684851684524657202017674315985275358164754003359226255708288735307796551292563410528937671776871000442134573675898389658272027224144616646446842859322382312733174481402157187377781871449240046649604290294510640128085655093327084681898762847179795749970714828535196499452679362775697744853259705623082507940483605167805760528241435306455786811190727745486239241350961631791442297867922467054164265026964766060448286018494202461470456458311478755129001546069996405784138189128105846693933638627084569153774100520353322552678338822598109450834448487845719795142309883284944571491514188937997740258452431617691539215123920626518456897673434482403867471722999160315892998216588871775369799908128219430337653971715368916092239129054344608536426153541484988802266945136843840945013325804840407319131506209878599451133050997324204338578485873462106327943197878770227584350281057366098851433553569224300801178051170451206399345895180891627123461324128666510047481666669399701439447581440719767819210149330530197228514871789383672022560724039500508404754000394373144413677620994617783689249038932816843869632811597682770591999829685363701263784029983744908630509957376178392619162714700543465243720368793232602739458964802689208754526356354766916987688016565483199999706626211251113429076522671752285841039037650875916866949476816877314440097050869863183217969405109985010318432957949518674110060706563653970527889853545343702242734431775927903328828320128793200399307984035346672993322609638699800576994120455293132317121429267879690882729710255855423436228596599170269087940895721659698123516742805586052980862972588587928790781981304044332345307706143284843529768786760203472009245075492887249158105205415290162885487363227674281105988141482617191716596239242351394375622884128899725048286012731285784172317836333082145742269072261458219499596921734928793267861996156746122680763755790092420003958135584273209558216276737025679569607667738490281992182109373597971832784780164218013750448403165054230649021938834375038429500705498024324394917838838226700307708979241036450072229266202642031088283072197588384762588799620218319477860154525712148294633173907445253321990003467369057632391956452750451937037126219337151872400640498829053917728656906610130278763049451702591429042619490903614980141433404112279830232644055308851222761373720446725835769699995683726016884829813116671056012025160598844671251898134732768528459239008407669644658992469159058033176912745184194006434575237349018815512224703803475890907322669499643723692035471015553678364511038754556139928872360106475417833481516183302562223122134711475365142937667607382906094142076642470675330079666669439828430579421959901243007683894874308734857197317529298388979041751099222198794902680866409231904105838230744231312170740701351363449546998042953293935165927569275019127266634522625276599032322755836929760383673839280330560010004641430230955096811531119060465697986793418061225292444555046470320494865922861945081896323351923970980969532468156333091807308791109784494791712410795745716726229732350455974229043671284377057287598158470665607451467208876324772935842880516256866990414388143676837962805605549850036547270034090942428409490533202074362934995440697259593589801906813483272096433894516984914513328613588244444513341933211212253124160203777076201607507882103955279991269304400202109189636607530215074502067445353782792800412911288315168987844248806710426924221655411069131180890083408997376753338087455573333992150103572913520749979017566061264468627116441508869169721111591759880927593757867611000395676327678306696970570607843820531509088265162873058380301065029633376372123697897056179837446179422338118414096154128206996436439888361831022710089682498442256285556401589882676766076552792548339705538889814361446281443279238819305339376490055877386308830570546232875148205829890410983325715272667477187098372316377787606749302166984514990013696240134441590958816707639547405934837934368301550196934113545265102492109987929837660061294855175551688913608386045098794637101256218842647669718218790748625071042605673156175696260390246787870250500361942952735430643577129191035515923047617676770362841812291223954816938872192870322077425802161203355409836077338572907831071634921078215739205589537637528498377857261930346867777586130583169227325907247642325297365719518616660205335143095204124508537269701253610755666087001085722109134990743165160523148676851751116910164673396423278917360308793967736154249821772747419853694441452993198324344966687214902052515353784063136669205425878082955379553423160667895740264738719102542760602971834608878463229489443079117694511210249736235167910491672192857781042808443916979102180460339134830721761017745307112375651843726419389365577425738030169624390510918420856372785760808628030632108116340251629556191447774445362093452878132215068557610792498342561753086727583140761816544207546463867026237683787980349229600279192411074154576803821354381059972034845921763384936234596070464590104066408749063490244944916505522733832113054181583181091306725802042763100169054639370800314503808194355981342002611985561260920155693113806554628482257156764453134186800069411490814651068827125973950152657253001363782796813975240486802741467502254931137209213724472170143079769844472233911015398014758985225426080352680616599360361285470872069448580978781114173202225545716003509740235060506912086379769654499825230251769323887323864958682655058938968682917235049757122474536114152527018157782344835548470173252013562711629797750048060793933048842347961457416141380956367734378754951351997797495152701053928457971627538102707396902969858272355762692657981483379727074022226150091693899363859102924154595576176694150974321252299411300518438270639983932400496566581403437574719503034309514599045523221214673978514663768168256816133999127211354831146220151644180388016356572062873815220423739361303942281793820397999170086621129954623794476857487633052259601882513865416612847307972630281557528821650040181415329656857844081387896357423884723966059811364501244959624119617320731398840262430895947833355033917689142128551661229528745156532758210725362404400817952317997312674792577627147441822465795709626344110133686380678605352887156387618307371696473286854641779303902135790778528700939552651274291239649115949954523916772137160168906325850482615847780418890171661605679749289529458430976772330376346736618850108656315988376382540383771912854243315118295419127394165635618434127773687730878708248623962854768961611457196019824819539435517839820928917500545658558291715000161307297060899016254957127413826475423945297919655515585975750720183856148492014594259809675842997200497741102196213514902422295789900358190322381630710393251091763775109761375148970100124194170412690805192824780114567783953866492776372401796745133466141191184651951572363807911115630965889227931523011222502122774590736884243989804744735282035793618009866301554414212167347886659055967461146610865475587525971063030221291314520590176169773848505902605311083465445584013355115838395011810976879686176971552332549317421249491070220056226346308512950410724985030858937569779478638476928641058581515428200346303009039671982059932186366319908945563073029685459204303268472462892149789566728612571132056535947619339947281535760285792476393873641127206557286953402443139169410101646050931044385304497438686659330963422135423392168882526205426117125142248502441333457532331086216895671321239702631386801493805578212799890910510643845107757100959786218278908125046815536422593257641426394740024402502578841109863195558095284344560964702803439363712412983932027202222562182618892113825724245090687209590148511771158195356777893954213546224490532436086632697475314535481361570719154072370020066426443842748010556179158898480154150730648983453145359068943746244902330311539226274556878755628965429935387540043854866667510367803311511055361735387474808577502901202879094844023506493556340237224973235645339999295364293019385319301612150529176428983529362646132578565888123856242165413187730642309358212066489580127120785152443163609327746665853534760665580627201502602039803194482434011391158693865017904301473875495974609948329664732466972207861282564133659581393847945666473796787450959636183668625024504089416398529250535395577366279413166003064245614655669180649738927069761514291426902085565751161860388175874278956853153769573862680076103880770017935684283884476171690570500292547424853387161460704377510868279911301781073906212610264545609236027612766529175670340701979751758015983874294279761378714263357673878283915847201086899183269214444665212451787716424703359436648209976257649272742775335215222120354376646339456971652706761271751329023447392991199194690174547438326229585078860023301281204906095351630587821702498372317331701866080931350047903738130197394873245976989817057649919577433386375458864067192574037176978513325534994603510322138705912247641105124193567764444980671610775352400240688574260466561717747242753783380770267942821608153615919649220710046346604644360926302020342226195355692441472609315339899804361330858647588319002538396922545243256094691011221805497851690249637283156593999301136019840132233027943962009792128670540640939202252920744571458486698311985377617940912366199292539134918025778947685843040139690992479492561878917125677588653371905291664839502907428550614623799236084427497130494384691835461237077991907953795346065103770559535449432097339834803450454343721019606069224294557406542063881420441666023703497788653152079451783333598510803550319244857692157671965053142237910117575871100226434086399575531210896488302558315779946738146686320120093168927954694050865549290800872506953246017143095580563897172946796962824752830086425169738094514885610583919359232916306353242507227375136637517948145870525604773376989747891565738200741368228478865003417754841254683178799428498472682570346385467324789688185804919828597938902977259338680097758786747720003244022446478943792863785063127902304003456223495281228644066457931306873119499455007116885561359965222003407147477943652973171746885086529641929430528766966885270957383014539642945042236865350846280743178928659791027350514990237113905384305470228003339441693157496931833921465945381980746835417629925599980545084328173659804433793577094750407069325858075465145526717033371183342398879929629388431644762152851476332912791069100972702843878459495956267539802631997414741620745052207093213143963394718182238274900501163086120269864288364122211893215482154599282839319473088647952713284111799887381249700909100733532776597279993947447870691248962912899471388965199764489533108541038203017191202088940890131522970918994980589864068347534807596922529724344798194418575977585083756053667806687582929822263715656155364617801872128816827642171156377290019898521414629985342957939229852026655170635416961611525781445380149188153632667998648114528394934138688013918106091807938289126910619352221465844883367657021611583404008531962050057658324868304139473719497517867879250891528565055084768603289091464903546246761386628055481422423570687800360302744376054493593677467627381240212199734862438788660465883555484373127444141285759600196502385075712863243481325532969532761880284729756025798888137782561916659673856440796620414673401948447564084848295185873930874384791950902804603722001401967698983839637839498297989125623647634299692671094299032394297663878641909308192438311167616482899433065340069058859061542780333996654046123603478165670209795554585032233557830281169607910085516826050197198689499279737777843076963559614601508049118359338872539883486278010058642462761541274214464790362243218118933365662270793037055963478275004551291503945300206872051970007554239355662406800516042692112815743425843102491554892127158130791566075650693672098167911145978471942521197714724879563083438048911629190288004391360147365297392980754359660195093986060823844675299498531560522410644354347380902793569437595910086013212830009352751335324673567097268124860674163885195744548858141371112892924924914648857412436062419194643184753892318003529059615610770867648815396326947225032227576314220103485502898984188608298913847269075826332777545706103011216995881204896445702187606418759922599581648610299374115593148994284753379068469460291190966435931614362529566361021355380205646696648103864911883972977770791422603739260534864822587188960102707369985521780057757104518105860400192176882000074805746502368557149475259518619128943271685964876965783659746934292920713582362175284731646036151553982805049347767639786511110627814829552065278132830144004726929973068912952591069292227659510518701742724104534372465029177863967337413765152298252916917933712458174501432831534946546662246422817893583041481733760553639918623793787257411520183378986173665050445325429280407064715215091111139564439178638412832211893071272248889180538086482072389056506424627797373783774096434462395364106377418466042581882830290198933364650472747490572203981798309387302456233637820050845044385697937783530200167325900216735219034546957566266034837223953085856052243859585512350295252630275921262150720223163312557068774414771394193777285245376549440980321234252518777519675502867598946830951530393273190791340417385533235007659230110420849563619998196341001424248416565243203439261219500800614114690069857885605613500720743589228931470259084369103410533509941732092164333051633844390452839315695718238091602613487117990906904069549534916109458712419239495542947407441936385407446544363189963170813398630673530463727113897675663264963191380544766631932487767232225570431405701233566467632316219554701092832822763954760125332418997789601207563439036449293718828139429503816605200989849725666086927562408546920242084574826906401213269367594538382851831306460784766850078085967032068082643344928598619618381240276997701200475708871756375598394273715912597885826008262625194988946182523015343758024745611661312744145857348266421773729731911021660908730854427487588343210697031104880803870470456512105715102430076681914954543459821631141082301299942532020453541054814272583876623283038836963327560387944203002135824751132200797020262115909523371023296664976737705979382497802560100009682801367373601028469609019665522006160480285686867088020368871396989278597363239730619400923212764393924190982841540084449000054979382612143495594536092543880896002597064970348698708365717594149228479955307024537911201832352319530048092163207022926833513347011291913921756675517338449857652293487168619280276526048280186806435111381607452021979710364877150814519597507507480742515240835811582691792604879161919959691234719963903993390416179235201276913301501150192369135683551953924905128032174574253689299243115612731644141813589141601318065628997151627554210856225503329954831123250496182870111976597123035851288666871959601101948916384227231466504868583939328581387272602677895591452230769388578364252390084234832270970117328225019672117623777160814254673663230935240621560540074917320441322357859952924857735043698673605440333261007042389312818893740617711795940226174176637617371370145064397311296930284116916354168370319423237221825637231112277492840581049061168344353822570726770295617292812269078258451924915018327375734569106125306089088411336310750747812083489729192168970928481024115326499772410171580685627627114554259189284856583398319668164461783209812495983870223974138122214005566816957328327315574140700938986139745817587160246132745742216871235659843350007358104905357679157881689372260194523541600458263380076247380926592353960250632390653658770033221991118239139228340937431891624421455531025112682947922693825016292484798265320222054929498522899442143482565474292172738484700837906489640114476058622788934930257481107514388959027080535172759301367546063808598558981311075928162211429626852812843961192495977583132676995090046176014696874157351721098444525848940408016969676107712358419452531374758118418859564717840650957662950944915813053752978227191795781190701606785976548435584555607529325834996802164355624890009946983385720702824495645165434965612193848981519756654735543688358279782390460107089404940119497490093867051975420314288422177529617521486465846964858079487233805060981766131213335077046726917324583796931970501331365196802146595172629737119525445363198637019588729557687387236576626138125780305183995122918104074412274339051974327898994374869146742118840425278979192313241849345111879176276475923202645063206265185726840381104574757875376033942380802178879437627883176561719435339581171272671005096974073934953827667331655871029432787887060573683531035108734130786454661939551443293198553984904733215597790571497455291880044048344728292515664068084088278597369728419194739196157329632607147351079253653138308155922641495875104092370368722872230482368818982914987914303385545223006149098563235588156739937428554959701729867893172239822897981191407152129957431481367650356934031089547753264647143638297244991504276690476003139101811532260374509805411709471335086914679877089225435541199431454843517457813823684903450383457468724064374001607058463303947391053813760680957106701963103302299120134635213634872404446915092927988508950677647068515669392372432523000567702062648849422424838317933147273487486510985442973241115259892811113768000744714399511597457317145932531268158744446233264911061356937086876640235440180634110472584705769810435602271809874080848336519704947241009497343314473557569464387084485701187050054167130556979941211993931991431248202721832949787142509965136957801085376491898415477062301274775656455604855915559964844502712613516657312256154573323386968954165667442346128422988416436661111951198267995344555987548252563877234534658065821144249096856438184549587781920367235248678645213451839395947572210386432958323593017993344083654133204511631753279357003797824111625627430791845067517002471964008427518150826090538697315692178011056152067963662597623279606441630884860096213550979781633175576294589585350337187510129563606809914413621990873919654862034937203767178688516027498827976301117470031069488349345276522539580108138150539917870448861454725145719527638367079078279555944976266773430020704000976706547613477352470808460455982028171826521848302602506142401202900392650374101560027071759912026058185927591126145463076825927831030363968467499014970357583735222294625829084273836342714111264778324574381630680724607642169337320728259389045795426367685130434734545429389048551825777925526233636162348549546697663531623498557848011503803897058500070921890701854862977957444429521879845841663588043493562253943784446484673783853459035247146474110195622263134430815575116587857819289343735367573697069150465626067446068632428688661653504089815102450721955905043662854714322089690312493951225343395279208709745081504898384468850501283869396990556268505261822577465697666108936849431547636780168979172573772828590494766400016446661568012599371684876430152520624521973392167625479571310198909578586236163481448757832180175725201168798859669700233238095423138268956269996120822877554658699922726504189487145488104288316885396899320681250261380905792065944601932295978366482478260224739542820402359667656706027403266830436391460945675585655445305416510516610853430533774637150201938260356185596643183295485206010737042982929352570363233005714862407368956556921569333485744811268832273446448639886815010107820323284300166538483989671059854425355688205793701125244494759397292587217083066342936438247794989287687025326142547527520675286800444801729212969975850529204182116804213565373295323356763004593377923975128641751743735217358084703178229428411568802607668602240544407240940604549627019191264170062638745512972666055614346980350838013871110831585260406938679493688577952891889352989776208876393798974414933631547569626860393487735054728153261481275111394105314882400326450631208200485638522457817178632991498784631025568218118379517031733900969431271675118700697932637607666304370480338066800898587577711369175801682748546203119488219112322663871911064161034205362651990556788164148815436504443460655161799640631885714351417533234166718766658923919148116300368223472761520347079786816677780720524907543806446288372446179742737918943793611154171896801338855300541520712378618728108759048425750985046526563046805196628450859303732732002901498201828722022365540258244955110796462867414866002682915458823492615808866043167306502455795663732664154714088873530314815340631274464358912306123192835314458651252213758959634410510631689703272298403013998640240566263229447379015453639439735444495109942434960180614887037157219591777094077573370444275074583608736185998379253148274871008784812813097650309174741901860399176661234641682012471642233888926009953792712911925822863175986037910722313806204729880893837018975151918759889804769799396742929823056381013893079956763932572678240500982617819984223949943493480949713760970701702116439395801944380435404500381668691118348119753840312127854242852880427955679117995964806632642455501844545162434180461935860214185265643401273932741087415028612931249070705536170001362899990921866194031408581449619754553973059169608517145780864740592024757289709173959724995238483852046980675556944826115341271495988817367975524412610758717780405286117821347313134566634085501378927402933681261251584368516547330758332716587539086665611642958171791553757456319044106267650280760396658216957868937373578112300639791464693122796045238604012641959266315388222171501122251079247440643195203701741101591723823150882737876512042601468846746366685878452932653597265107483105160430826274276718406957119796633217941522061743585411725063177055199457548452558677368308162027041746303453984365053622005629725239564360755170427493552355021836232710424178560508055939903229442283625214180041967881703754680784997413271637745625366255548817301238503454287634703369683029971052057877276001495666268381055846946965050610452827286970082886378320011569239710337420889563010278064314337040430487203797028992330562922229820412237732752022142279325869590413782769790451023010480224560854141042985184838758599275019746152014228322015601204727975047474284040525077486324781468756027983501494289616425140767078339749146892193943792248104531885037135417213599287596157078897385492828456448248809507582306797437911811200817320757189293993161157641668837231395856476783407222534573660467578858950086485753265359841494004838844365016399466523192743227240654952164382282041326305665130046281426958161932958823217296302395008211168814714569037647676330626406605827725336547369810749648328606931145063279901161162236424575747084787516501478005750041212504097365826522720596588125505815797130730606902810558960320264769309831279125194708640667865179827305514069756048035717169153083990235963765622453339206104784056330967182088632693188122669748947102172108220740895563196609497086758648369739658344247321057238475514374435311932316766096325259326805451698944557987037403820157095592359523701647238699850798140575709386478542411163928359661547465342782570495597644348679764162259345366756235569954297507633902358570042093430950573953860307700402037090864294246863440076837720390516129197419240446321652633152179151126220100607213600896410670588946386171312866015857031799951075838105418398028771081815276627342814818624717685984567397052512006871302794013824123937024191293006907831073892745871714994550342231068426621802124656359914396796353885486399934650054558446185738609407432231275724845185024251508362544102664315449846163471443632003410300412321195854907613704159233289334254517630772374474413170389097445865606066355774710767232441710930587695900275454272514079614940983854963052837554344316962120011423731080015693224454952606992378036454936119439558491081131613362141574555794641455261531347154343774471783483601336564045982024662702486989049431921426714530637417823023110588418847682518668147075674644006597243926244764582761118668768891596018410530220143751693452519134329255868307445472333688279197960250263766112734411268448237090893363031220167425639425410445368393633874232797128610163652787705723074126143034872352074210793134788389466897299250666495236118117585886111613623897840383572317231890295188611218343614417798586806386788191765044424527848037721006112622974989475334236625795640444939057868215430588031849979213600989163299303228729441368485866500547589134800464880025067750105680427671034680237042009978142081735114074712598206785110523472240614551318934163702950768498440059467088441317380084519975888751837475883724838056389252171734062080965788143346215045455516859889695536512096555146682102442498340994784783711252936062845579922987167073437790003623285725634361107856642829285033616291130402187008801167764139063907175156001114631544257131783152046211160039233440338234663068713429307626318091064912506402477315489001563683552888283229705643408263329464158914578468929454448939492874499460038321189459243165296004202231492264009405761425277263946464483775426251032364331023512291802995210505823372612431901249467484413735402774785334137636514990628657934812492843509991762430033159436420140488813303285777239676293373661561002377807474665501920412090459183639540658429620998996517253406199939297954259471511486299235618969897191385526066987906862661472132055770467837808450770595357616765111578975181542907653734225622134724955903068164640404236325437104217932125712798718924048417852787075256259753549496681183214042135292719487968874358399263614476296332947325514730696239325997839194311338402826491893668678955512771247825919574134160243907200462090425573225668945752403968406270367315739586395044434374700431903214512788883709371161423901855140405449460348691784181379564409299093834579104742999416098164939681170756131690141607328584257367660159117226991834362134866658103774747634939345716103678041828926126067607030440223376039121702474917573871878419636661793340878468370106215286534008864980353338958274441465856742608137095854866808104216820982407830178864820894866752950661901208656531168961308062712270069133828801171427320484436103692250421913306368348499096081400195255594396329252898962788903272969397216986579780656068247415446558741187434140763210708092796559173950649288085310643190480057526650576575026270783715711186185237888302675605982065165871294649629385537619564299559218870746744242500312203762308246004056316412083737620182847775058242733306822800704917607448073385677128449593192523636239498193436467594723272895749520735771869344206154772047961205282410380920437018349269115476423935172795341898611232862713611171472614906322361238676548051306052596342231534733209432244717118471549624096825508647711232244153866725335340743825842363773612831338384771894668238201582972041552082279537084290850297932374973136963852364398376930045333785025406604707493920468811874764167613438114679438235421940765435291699888927706010081874463831954908333151285774632296304642110599884745522184559214935058189250169905372198084869665202002149237712941664231162178880784510962176881655363172939809309350119555213592103502166041954640918086764011230933165782707620465933102421863273203171828352026011701087734357113486845517320304966272537124945726336540343612717796105242454098961203260451268250451530198314687381263832629710466206614476182206162900305598718296439117318989038842517444664138914532259201500343204652150089760512979949931787902751282398374800641099583492801823996103006200401090893868280219420044962698441922152082380737741806933365828339733223950074917709839101070969216961570808800854939957612485694141241320443526943009328079965262439256068266215699893623492110606049138079167428010873620762847402764693731271033716533454955527065920992101776524212947529230452386325890028513080388991671299255759275221368571815596135584283281265957718230432678036307675184018515209127231861731032323705693008658033359370355070342291374723758580515383900083816307292791628864852883071517665765721709668758251850115106861046528245931287658693484463837983273247030724817063390033962356401615752023856829522914983114246436407408048198421052245978784043440184084704440788805230959908564713544980521450623710872712296133043610598816621599065701827929658003580271218661620806399191919362661560993174082466509104642574264582558151857332082605399977263884418079948231934248565412214350760687998626561228936033333149692967053995439125988516298520135197850131313583027647423205976026635783348748492824157942348356959715624433957995515054896510057712134488836677165902564947349012555519020853084939057788250181314625964857670810241586367451778435465313676893212760835226975315651492517195230484629193605975833705865241359404456346259730050881183744341000647577940845042884706992784962808825892281707045604453572138484130707582688110101341041420912792151896047920867349137445629101683199679943658114617489071941601213125239383944024423834202304082299317970909033653090831738354350763748342810419803896590063414173318307576876407258404415157568727648796616918654292005927417486501404803478237731298282306157599006711951921352004998276165882744921355139001823227418566894872723898275139510686981166586824806673512968219841112989513330136482017574177763066806981476800449170189864112443172611584718231162665903647074478756530130998428131302313711622222322841953623316051788490591088839919230931368919287903986566358863470841401540572364120725776236704391668771803117975085472672703813258180792351321265822606595362286125834989168858297874387762196890963427473870559757888886230552280520060514687821316001098787001140560059458225484751367534787376632404702735876446987686668348195222068000947792388512332776839012487027721229640695119325607672583210141525437525375244237294179302110999364346027167459710520642084157946337871898305296103883808579593632151461655129531974238320313396458235580556401811931225692334508673741318347252859459717864555330689886751558977284233564280281673098329369424841642135040882273519616237296276678530830811593288937083782653838937774814774066741984695486475324525791697317158352836131255494089849726860286674856726302594923159744294769457011040477559109223807226222676453629890150488119143811936898741807771336005133582894288468674112233046897927189601525280479079925100567676716194897837552981758316329655240441019485272096501438165445003823894711670253540799090307489953571431230115730220137265884336235518918722865411590794680482635423042211686866181909787758367981649967773075074308936454913310686189175478417728462440104983619416738445927557597416856566846408148698337592767517630609685676885304163141889353823231256187224787419511526160467742227915220745471908897770512725451706201966036888028983407882095676333151331856419786818473401632850314211867871126581954711058808553733420212025561764311045505593287689640952607092347982466107887988719313032792797031745675397229576305284309967478611241316178946483618349816004127878475647989059175540776976115172034219480586796929418856600613823807776779709160066606658094615556390949056565553298165540203081732017114328363268584715206944993128370855455547350191600127833549189304931135902885892658467541641534023069135510980005155456349607000948960540091478532157801581912362614459816523459583440896208118026052998256603260776793726897610954848293221941107858684264971954383666316259182852549988498642182780167764976902723968423309961512300903026675421034697467369159301538054826111491284723775769689197034505122206471006787667029867134002010475164871592533399561875838734209820190809180348887443107506270770823685331467846354002188227186378278173373703988922446806485778761928692660288303292115216941083443169223108682734810670897704500414202850726590253137802234820989797796930490654885128495796319819915230385877413297934024922557406934032312493473424843242371304381577139861164508078068900842712426818124380886966786465806235183347902315050504681006937440833971057882901558683404235598416744231664794767828336831607263960456175845411349065448370242821843455545439510072192877512734911802006222223933400275142367448996173895393461005718382413912964361001906256504523133883769095074603404149597680145563016430067887834726095332691383443266932860523131934895725888276072785295049296086898939692118875637212060617225256940598634774599740880979234165162303796511414606270593745192590074809767723677924626906686113899658335930094074958917705046813503742742555345950036107231629939601826820198511451112344752853810644109034502318544054547400033229869346060649823268430993580129409461708444708278191517331116476555231387892973782314204819293966594881657705922221410364081720968023246774118349992425109879637121090010297354254907951390458045725715339861234764791254602697954212244636250288187559421562459651490055150852792915529402089688105123408655422158763222710670965158784872217695415805233722496156308698224133128590749876278891250961631277380701260531020400868191516711643281671415528448569429320779373407372386336294603161810920434163123323391023675760337052660998839778365543059551567165345515186279498418824524754640397413941892778037768739185068501012388186909607583187413223870337153200307227987876705912898798178896601264030677927865325824702147582622433312453949851180407383485794220442891579187586210747608894920308698314493831714033601843542998627129045423125017492770131494319413277789696199067973454847384204758976032888258423759033991434009577369721165081494874868880403181146468511623145283881854452259982837744341744674509917699809261364844908140288661286959513505168106292507342804990301377803361536693215687799585458701184807753520154715145568969051758336990758287551289124629926491614759199439676751844032676262915396975911767187590300043148760061686410036466888831201502221659183878590928054764204091900664994731024836607233991116450666312466668481750174929055361227215332599834851691041911787405799620274881441298592914652173798544324127743392006647251956773889102724190468729802326487432998178997618459410303221314675532855856623083926710593950243379431903337637727330529512925415440890166840540343328847275198072356138738247505411069946363872104602673713066214622005441930334517913370293140161855010593217314020732815377067497954288819677978220198889386169525745966599217989246367712174435139556331510690806543762189540580687336445017264590794435134289476820366807196518702740261452087062984479347914191308250486304378905338418813445543981245532963703680638639816265040590531907022175278802886440891779469956045364816770869262027177024344567796384545053180440139820865444876183429791397789602639369395810970176484206133988129752039272042548316133426586714057691772031022105782944753639987158558562711221485194104150817321763257373880620177579567573917958280282654369543128975721718262447265000087332989023977963683195305160029309006183116967918657094202277527918467711569798334812722878354314254479119968779572961887472329300688783303246553492466500143410811034576841009673106309569918784699204694754099932562794504626258697458423140782747594393007443831662371931433185859708675324053639848540764395387391688423568066538493742982967184305771550216712866872165455452685546766418601606759504007772793691040420842356863088001619568714331291901257769860217931020185415746767283926977969819215315295059355858614717612836228605283810893285936667604445935945726122233701730128388424372367744225348550237674076813774341971804562586457305974018943590333818658316934742014263139138049642654401666719565006398767655086475744502713659673313103910875090069592319355695211821490808678407765131868026201556465413115751288848686532780450567383146056654248742470236708708430110411553444626773451652322538765309622721520840153962073363371717760859629449561080074284404013820527482527517180447722561898453306346588139341558283374408242260849608481875837783347328568172908549191204116373874329039696316784450293299842806794729135199288550272149081319250521376386966950471218692111002807028643376447023455710466166347367512387196945600614479140128496717513547941310193227208084896839667795701184188682885224133367920097089431487582502380354866812281603824663377613653942230628030784517152392106277169759097744268304200671867013750676231178475392982236254560033099595526856220372033525145871061295053395996278925384600971028213957800795529426374413372591264588056642130936520805682022458152800549350013985197984474547925799419487592461444015697247892206776325901694721244380244579962779367616791381367797202201389677757180025035732703435754529754906901236462034047764761463745886980486187247879083330224680112553116396385260661717683013333893798837331368686198041657131042332695790768291130294746070975509725921478649718168823094169941197577955474481605912759898471178715140249127032568032472492888144139045477505849612999458157241889512297639873261952573059874904701488794515841683047683534384873711822826675383471691528730177858031677044528157468303157972046998439649064862338249543798604402224121636086295406788165629547087421438153986050672975110781775710599635984508382558364665032156726578618082688565236701423794671258253199484713217389943059767810904040332718683893827095886103785472402418074562720082582966424947496420028810052617848489205092964256312379963190918258011321459651967377403574046836881311845534962221542380537673292291936240862405343720367212727160370981610259334275843488532326949078178178444251727646131282067750455687793328758787001810973325836601239844374596268801337880053961364779606496100408687858276386622918074960369664428425749109018340850566664333603454752615468334271771590377682654155089824600130872168819391979645919650079218573992695199629169859766831279200564236945630779173069511413118703276538300704481220305628232561178299419523589535627104635581059390031827544699966768456521012124870741286036463900482169158178410327487967757621522975715090268523843973387775462371311516181925404196648662808133234833738077051494599032628938301405183198133165681681779377217421096397080414982240809531008212246592575230478353139572820420611228060857334267876115404393904401601426594517216782632673971057476460182212402441451011855619245326399688931130789352295027021797037430876002101450195783688627183779101379384817683217878924372966192781595238225546821169076374272475456735097094895840545766048247831654058434186785082992649159981413011618098078189899394774326365275238226903275184814346527612328623545259815012693581243087711760189757308692717629085847452479502386061259414584329144572471005772586975911707281278576858562556465992580039414695076598776194070932505620747782633769843713871405470835074593599691544782367304402982219942626663227871278610368102830555493226284446488647695799391211756469737991433187954396818636703348967486052306183260797809074939067677614046856014893343513334121586625855562452375721435444620782010597822160750634985765823809019623989311874881147848401394862033196678616315652415381531130169753483885154978850708166955036579226247230631479597941157439954315697263061120216354933668987165272397977211422279979362349535392748842794455673882639208557929017470783101716891203620702745590026552560096654145575163919645425862392330988212520825436645573325731331664548570109160889804401521418067790698772898149790976505532887425541676226521330422629914957527529368665489737755405770114768776544915085022097173201431286256600404206379437753074770557024159147809346696068442449717240539206812179989786633982424157921227611053023562312247673180783725267767241531222201884745397660190081324868669471626372224749867551790862718136370106124723477554035302424659976188984548499852919187752265084756357244675129433090804777989513944614280093444748743197008279917430665784891920220405881942154435704745143686701291959509240915135805790623467644650847320113383254411675229474297724796399516729884437052911680530816281063611216166282016855248511530665401439617687617586131791082210884143706210840410682921415104837741164287194299883545040379322912713238194064730001550603100902982133100621800320696744742953482285699780799932322329944162799245742989607815591008201959705191227641884240610808942115146001316570099377871371075497597843495951405520832322102457084275415929206339484283990036768544251828628523313952586060329814779119255372799187890421812842525237467060913127600035848011081757436779488462916171710327307934011712329676045606936545156601200501566613601646361240963269602249039142069100054456354346943508227376894115887216801799430078037069979427016863502711850055010679206891013963733619905583060752849640039218738153438221127905162710282018161845225595852572928959437244052357648071240895939772569927431167087840004118106928196271584382390313192359194793739003551691652404867707480427308577398612101588569435096846180377873479371053938100178335527112396774819537180539633077497607585771353918239662648933739240046723883093616390521255996993306859138647403224057014067194016373899728937137213144248612113439274996332709141853207832231486262724040765765922159740538392440127193858295366839438320050473906249874548351415855109827229238842441915043445466342218607522278599666264622023387630290034417119543653270141470765232706057089117290224107715687934402365723454061641655664694908029502796470084561979818657751894068250773195836000010236310618244780359684255960139344699501681171329160536903470588110515626923549433910135098865566455385267142161399972001200248853737887934143751495325183600426999487661803398400950523644950678157402296689739608253511011234413657141970239468636157134464129392066682060495600741885852556691980926125313244806007801206731428033551759860916729666397161201049126820086663389191573803503577267866029410660449531824475923549367567657260798357714702758964679138776108358508791729592758604413900776899301618408716533007889280439100762414112697889375469582672639214046773145668617278879106640049039417197511556240365096101626065529648831366114899260778432679273695456299358459115330735429627796559577363758428285010721845721983676562828662735486558492918413234070181675571081157743948482021832356847217240326100240400572331474725915379678358904589266750349470115810253133268051547742136616223808018817434964985015074525329742156740057685683365082165311310411423520540612458347793395633536119261209129173728153058713008952152418074976748095980508766611942203524913526867137531985466741286765071691744253931550745562384268974233332164184447391923820195916947397924030130468608846501577596544777454718389681191867385220867122585464239109896511706385573776615056440250455980493318128807375376685103389106352585699877124161272919848984321775477029841613928427222645635195271971854812034046642897870919040418505838378882924256775098759323054820721967331661715826971680514439931059427924769048820734208301196904248845778474738626345446694333710903019271901017313806371706250555291736191398637174996868840966161427026297300838535443792019898944094453779119163699679129000029192158251493215079355043279160618882845646581224845775066122876435176725025687623070327842498608505398317372621127839521097339782901411036365632872389431190799903395728685915161835431634606929909569672315896541320818960072714931724963707600244114664451043258484530055724858894526106286740196328647948079084744943861376133799754020115486881411705976797629376177409487779509469579923279920866101416026049956221305361183899402020587286083087058414204518387857151316799957508262132761942046912048058527210240317956156742721395207286956069601840146784737665179595800903835816910453330867689425805094267094684225963886036754845261133484885295784121447548070503178166655903219276090616540133009829649141212810907315330077770908969609242613527853908307672890084965208888020027083530864671570446109064244031169785025258205178824688459912671305396838861111305314036490388176251641579251086791979885857216924324078821319655236949162339084501630337723664833404141356285946103312886218675241055996027053009360003547770372610101340957356998294111732703214253280254021116032981285374578859475479185507254796273267565757967260730072002477264743416761140635900276724677120100570385785988780198840216957597629950054883774088578869683884875089452991820262066232487192068868269037352937302328416130592232013823555285764253077097521581123711700997606071815805129491463793656281400127598631912246877427108022548183705814498617394744674342258627050029855370145117946815609835275988368802861005035014689933633210544916638905490960452698318351156729637919858705737466488076148345776272782580283285144700423298097626586698900523812800191902192078466696222664803555904579333912017303113887288017818442818006920071278985121463997026574751859079021538203313333935300383339109978613689697570076626910009674830962473362981496520360799554199061858687208564752141284209914714653506867900913505745117854526712193033266583126201195453357446892305795415215520813463795182077369937387901870474434156270369733895449304745576112480609750311285581624677724756011378439237583687289755540047174543241701264184370990660172808016653145109580903315455389517570111484200458214727601685506662531129422793863976344037150558437463309793035879156121086781668685289947330261620135402575581140739846265099127347345313092941324221506383065444756308604710122472402180626410985987840145602239376178287241814643320397200150149422445901914724613580767333532892220541790022345821935705156615633684371906262582743467214216987016142233204374386004352535934842643358440969392551776410144731770199866930792303519277174584856636808675048806192380566679927650769978884294804237523436058362572930269789023503693564092071398713233042026564691334992883826260578154484156193252105130273089977117799810156780559268911389164443526007161615794934206384717133601360470519309008718032065443700229700649607278534486903841490912465187298398892995369297784141171838727008174277982100409323732067417302313915602990866304904381894509375864290266376403156157102219296901984712150722870693976672086210331537302218633836521978689616236618369066016916557247476747072510256512833634412905103776674315778556487627817049609692198101128202904185192181161067722722234507552848924466884149977524478129912864799849331778194950840237712735371525775276431692145658216580007974187582749673728389456032872307141318284655940018760731619567568289458933454494460260807327918447791322818185545299257708418995984198202218025935408597611057219791421893025258680779493441528954076039680632013836025105455483839878746717188887170714916341415595317039757520314357000125756692800507890483315400902273654888961106231397169235990904503754096415604992791102895677098439947313815436409793716792375226169093176059707588167484543901756052364962381840782668575157794431952064366716514873336580776749910579237699233941235011240230963377194610896019284025443576567318851998515934699030003288272585648525852672231041739420509538232758058305707242923924438217580048410245899121819730057890571990419902854073962852433283611818674542247167735510367664761051170128657997661398683472462460450682921159393898325237580601224969129837378923470196230957499899936545876422210218488827521221952064325987611315242440201254810940281003196306381437753751570800512715779463346317884877594727358663686324298808442204249392668088074416155378301302673318066469833937167701606687210504043462860995681238523220282683240485316631300678895052637315107536004071277089043776535942625263106113341604732255883657437155312642300335127525465123012392995444557351076945338729783648099375247961051187014608000010214301131699982072579887120489435573558456655666935272270113705961253113347495953313476532619656161499250987172093945958014961193006503605411194487308305475460922039122115503324503647342447750250948261097828117759097980119544485556565936474219209208748919084798316311461584208765541837877443450104505690842362881471530918258441983806693359315586941559512689625936925771993401467815918954895473625178070002289826409404359231361259992618521691305982136306135307148340003225182776627677916388544684091669907735512947331533080595820862073874404863920798046190523982013577657620605210672270473973587843840776882309183070026500002177906635986119612925773951639178560173400512395953822771606291474096593956802848317148186228399187950483643623566303268202990449440862526571256464599723102125292867370014294316841706751555122041575337624706982819974199669696326031415732525862497214672430069318696455744582331533076308882728937011143443910985427612424741707766558351105049709427116026612266844589100317779074314089186116712738666375324606400843802575027659499361329907739518768572866162553487019293353659025345256047778433191542163091889891430066792473052427077910037704339879558922314183876826579597196377737457621631675547285543055153719869915266325902809118966730748828908808329457124682993948725445373981470510321716006074223089579075003084078655566016532877781004226858259826037263243395414405846312134238854254659188854742809206393643634511294672313031616492103896774940329955771900022684819968100477475158564504372240644987318992563848470745027227129459696947637359981755245048781888310843366098564063916265641560729003718169310109846519783478258463058409684786707948742581736621161969305381349652612508877584143703231904092140510927277761821295551907257428364895008988935748290056185418290265479974496916970778284939109037427837672614177292100925053895992872766228309641492062316790252185662043022118969595863959647681923676103081133356943638101195594419446736438377412125488032698423918651575418822566145968468351531225565483726340620598032588486657538748640702820118594342118950974970362744214369689813640471331246316701464339459372334688476841116714804419073189166904970327237042458462046076721497324843545422728908406454473632412527276970880667083071073323012126253772360892760578910291949379601216138502823806078433717980188599083530994879473915736516638001415441057766194532879875069892910901183100141100415803378512354071164771846671710527448174151784060264236718285451609251985888792827954724031694722851724811241724807227268722340911935342730506046348298744383805513586023827841617534127436220721981250267173672038508728016200768431734627452224649321285701155677615269680423677435190414828537848123434553144547127425510863932633882906672342875352625429987618327096351240634589164706114160418732114034938849573978927019277493639797602152773535699163600953253793304597252160064804922627933635577617289942006301550210855482597393176011017885529135620275326150572309698705449277575693250180208648943629414986997318419070606029593290033459449452578089323373678583434679724543202825019320472647920859030570708125714021065336773055634506549570847185123897638156926326558732206930958753443536385362462133217432324219322188786297039335175781499866848994115707037407173921894569625579983992590497355854997221675376275896671266061764700571785381528720354213689535816043193212642423148618258256918857582821169814385927322388238325032795161518644266649463958169526686841267365297543962436461923162070511683413880530628965069577235275681316420586164072979934688396093660306364566537537829425333430308334001793268145662439094646235690908205380817960787581062393373587839594160274109630643091616208812117698970815407546629659034191532216893020675960067644237710163672223710515743514399122997100418053314958439481760595256694266916946029753252387387966364937007333591782649905154861757526220522132859231316915725169711968181683118109775436581559829471568288962368810628629955042743750390085813249171909034433311918196196580625489717369683263517401900888328051002458300476965159250123116970107814081135406532245805083136339477989966158359280307838889000922660215088173247362680858378190054355556671426187113911835625308307018805231775727774034043271747421837361785431715061699052384891376916909607821662442779063886510704184128986533878070274670933816664412393600959602424410576002486167017896848535990749968328728464408749926615820114488216023190006727626655028994072611352809443199073923264503202608112951426708502016104293299681707124197646814553233077650330551045869697023922858531663597315621668033379003575357869723471100199718519564847037662031575762936427779336311780034757612993674887049121421998211198224787043978925170202737667082244026891091816676160072530472128575323324035242298137035529230961090023203622823194634974357258220853638279962414921694606168239608960697711288120469979315342835983185523668133992868854772359034139393057864510446287047491432275274621653251764569137145104231346628552710596757299351831983791960842371335556892609878129584817172410293388158968916835048201515664511368346899215589841829218013856254785384750498358397879881458480383593665131221706654284439634625182114114839911993857130845746012465902993969219412818841860208156579448272489751969807049067796231958343949730938835501374580886102713100845085242341167547168149516134565427490133857835811049978382922247458955022542838429506106841631797803940595696422403103254320352728013029162383822248447230350989522340232464435691717563781351995928096093380829761626838369373624297514691512182799053207858155336031602499998702967261044866828238892922982130837203210315322350489352161402877444727455518569095341209356530993852953461250830590650031602069860041431456598459483217221582023976434866146515044196734808952582286673227694252335631401936760174269165828245811329120839580052385225538013092538639223494596363665964912433865614231217298366842581580951613051034423725045367565584115018465491090738924553421675632842315664790981277931994535189102434201270065119726536550614444488319277290350842441839048196362496667839140449801353325285436067689836801400934855021377768573927808058846009033690861172086337066179096034224311504814485346140509623878462309816608884402215228373899198795089553161528931949770152689795220442302183844582670017175454047196189979543747457494416050676560277914518899688577036475934348986585473231545339756406767695976249959510291731421036565695360904234080701122588123032185326046778077928681739342238277479613105280242234964768666456241972656690424005576076771244725282293336941434432160537003832416835143167889463421646189520642478889594381739272609005995989406279196300478657174999160251500392598525573461101632001507920426276136701139424606879001843876400817814774950743612945318522148017738918354688701629530050581767511747219795765909456460447137407505148237166249617874991887586654899274218221606215385238274066236634354109651187274391258729385099778841659869870361349776705670424060779141780608417512737883113723731844200876251128732246340293057075631192630376191711530125851470831000492980481670398451057081335752807346765155720508131843544110453198082788417306967077891769502518329457128773388075115348874375753734912487087779055125672354735541188446515446950541825427838523698579840234969037873969547883665116175105669069273700068888357359438039055905788043656144227446067235808568989242776819778531673110214164390257423665537216004213920947345980176077389148960350683022608436440171116043453435767367940079012442562161496238417166101116874094696398779455026838925724822822674834529939206215636263336283818106188322732790773981769437418519288647247035796653142097151755542897729846565131254955657230614432096759582771360113401052444033186078733577324925458130563159820101959370774147247733560005434892899620890477054644534360284456984815420019108233787618810759557063220517800104543046133737315422423217072930082050034157505460751455054702460354372256354532884114275976078279990046816264363269590112388327164851989310231626581524196903945240524934653589094963047986148763316668291079624478469346631525464017047724487693845641344113254095838026490064597448507206260010577728505424761392011006922574402202268500997379417348802178033787855497233910039253886437906262202799868429681238781028051099765805352193040556134137803727717292362075786614166510538891099168826501039292686771553283428744856998352788596430243003837470045994218480115442913825408296315203009392560356565008572341573531460650940517366666067428915304711530660023445129087675825632258127450888883185810735298585260739519903161863216746575729973414420074620094620426171125033937908687559901300617237945181136914855310860802979227406080166581133039357805418838757842170112757267383037868436240149571915379310795834491671423428476533428348351555287411777436241113499907308313093724372596074937255810439281216797006603362922852284745915839558656609779859828657855109340822456497647869373577112488571076311904843043805546805338493738745517644864586212323580887982238966512507157883628930660820308832185044892156139216504524646266750190952613531104114132296388688221631203094188714648683669021569091361783676478192769532411247578729941500185822182261417702493870777312244594847662822489736359173185909457700981312723077233035263163281834837278812861971313396017468618216618151239924618397602083681456654409048235248092144289050593703696206974538650429826639199704952517166672023827136286288207571619075760171864144605771787564307378808081111673845264345764237075958783756509680055417445546558433073562595583432859872587765804273749378393120834451599354734905854547846211901982523872788577175489745328634461396360722945011057122597002140378204234811937094918042440180242431847479545208473648323312741142035429580494081858490406104202745946731724640330661351636524303453292320717704548225039868617641388435974377596869029345151958433723928727113256129444529538266994443210261435590375004189085867713739084995800109861707462223050997731469748614538288263488915822072766038089618508297685182679588731993685232074591771406270518216256862141805853939976118887147494556029640833885683028900435873706503298024527082365857366505119634036346421848303884480780786612880189809346135005163286746865871463213751217732300259988110764316589488581356182118413217550950463930498727126924250225223491324353517466406210636522839441667797112518705211117843619591126327987860420347752771191538009374682251530994000692581104770294352321801145128600942842364491931340413300803581819384531412113229359073547485683000475642570120708144766470166979080817639954902634485893458641723098729601262747714338150352706725177406120791209091476790256450951851477955942406307847699545082938297559674972103271360996508710919035953772287760774693274290365394058036971525571875852945048710236262363716204734850814175307796503503489490064240867202612914157091308476937813971806119842097000560416971668269069094114227691642247837080964215665720465593234253370698316855520869557231904918333127355355559649246902431075831562600850301261734231802724552487670047137338784789918778846962810114664121396160823527135265195435508511466628459864812125919281539351709059441238235165729272727002981297723241952437290275522459932570761852791270105474436081321261022092048727571981874675992413187246500179156375327849568161733305089206117160568555153563390245344693293972259311876100509563004210806597020891238322863672099089981632826624282278094919163726732473372546982345365254376603088105008969025984757371791469875961618527207241053213446052267036527096925072674111362680280357644206520822947381410669622081138317363727228295712927473614532299096933280253191880081869659613908161865374034087209361484843243795272814541183073055836447828849684730043808592157515947906101714429595954811191614544274903133334858983519013291191002853339091676505413672760726412908258521048539564340688401073807973698309511839835224191474077148565892136896659898112407838484421834867472805468120361110910102417907432495870368737613016667662200824005395364369211270404076012923247119246771023151796521131219107144788640094653185909594780823403288513132746795223504631402590830525479573890802247157082230105232940401648198045020476852081944582661932418973127190917709609860651078374636806276440916406820431463872620931176263504212916892109391834958454930505210707571027237261338985706510386016598807006013913699387111224022985907659731611371963887820155619573165314618241767584368340397519349842364154708454242783762971848957245553832094875819880891173784992131360016018282455559994177874677741350219808814001804702083264979754286063032936818217100685922524461835086996917221996682423719833969572262681663703429543978292971952809757614119666279848688971534550063527980178130260259547050890655255093334645159316729488293411350649500982587666016159923371119339626423185055112024649384070374026699610442606899541762692230439336846850672205315099470177290533822581650093354503916845818745223704787124612536813386746966871568314508318708150659030807042624406904202856329508274946550588608204516376109320163275868166504317797214578498078916142494190622173308924485854789504237445934577964763015428481669738824712616345897241398405779880039053008093141150122519519411544719162518608445807875346322575776504885224876171403566409049310161836543683378147742374162850226929611753446915804145675591693045932176167484902991908323541718477259360061776813517166339605535897001603297419133359001049602401721661064378972663129870626400199648980736929875288658097204927200318955805401270050224664695172658152088544891662392200670442473584209324607052585141737747438519903851184170289529765946515364269954185860097679269662859756447449823911046117842103305526559333031261999886095103926290877245593952243966652402855268571024116480224484631457281522700868851409490742766858798036731011624421946142788576126833510450541858777044304395333702852524600663795505383960366460082097040924901095074699500723941385844184771387259472860996428949238863008121537342508269921942619486270805732592038119583381939061494079719378690829112054497679779406127903792072676136484237241823247771173985448118732257362495828845820880615667057786158256905496197793242984321173059350984153307544035460518650467327298747198996435850470383135934839790139988831275654940736761931440336143569866103552681490838753735228150434775193598433756253018968671723056100921369566768310111088106229443298768797201836107172383237704652640090251762297168629348966592358310455017314986559215579400079330262881027346998476531057974703425341823087837988809473428662905846600023243034343698171018222680960713583064130205977109816291561172742799029053990388334677623932191239721618088504641368042503661089194051173890202412258899715730265233718688450801021781676998252745522887878939687808505511895789410322247829969715744870636748282475906499237361714566905656998892035874008220299947032927301855378344406779054805939939897781970153183566398977178769547059786593734564479052456137450322114236048768293655344668825409223796955011258023524722085130869691450403182366977537023370475732650631846010036451618792801885532760100995086014055321726418817730503576747411522594659634834071656407909591527646565658542079682976535506996878942484386190137486523917856038782474023864930974015270908357274901087028061827608153333379314976460727411091536080024462452281262792427429964671841203057535871620209003116786473987908706505916364127312232581363816120358661317627819104690983474187465033403681887883855186683125780305050871078437269692297180687836767121487774242775385353056408822146499850330240098292012360560377574266870882987375967024923091245882189172623173317022745139930868105896869895588370621795975467818319241064552865008902588088895252593607700399613154468208339024480847627656884914884489712556026252331551384266865240868310548285978997761304817311946235786742325458003597105228459088882654667627551482638647600991094509218176685117551927768049544053042985325454948754446453856984187131139463971241065040208130039686162889201461103292267715706496987806762264337056102583658014909198570776355094471382651143526558360930252704534915783098271433344884081609719658674126845578379689022158852037816389664129219493595943638273382088821816905192997204512517827530195854763896388476755568271823877931017297858880257094630902302851092192872352975212408775185015626091397256112577500376625298263932821721709409150343514154627810229596225215645513299739116678598319104316681829727859351314506214607008293664754181912551169960504207514621364297303313417429148500678659449559090912854773097249842114699174089370017387551174852953585916861187738093887004084735371261074160449530630268452004367314043013064739752551203615447128620371736273561600896571974800913445668062717260248232450464588035974356324863395677510134027141971706784077594886235953386864242272579229286047820739782250289747971323818545297006242286289637064322195239591753977078226647698286604368193732294299339949296098105560003265993776094326226374630762221650555943836273818563212736076454783383895049875371118550655740758157699997910013424785434291507399101081839040609457520989573252839689768707831803537106698192699585887817029237151638947228763357270076682004027109525667273314513909479025268232451353837471715356238251546538731516399765375639621622683587663218656036345433415150895151233310560398937061316372833796367197185509400168517157269170097645820006282942910074431328048517675322844540435162078871434448602232195496705701066191155349254327994177828660864237927444726013479276165750077300740095961736621918981004758247557560869665812529079149535757676690453157318880457686720854856832197997647840774679686682608792396822357705321755148835020043323686096638064506436068877406850802984507675582364191975787674966895452660145416980180728947231013173223489750606984946792242555522224401109439751352318352538720733740783833157257149032451781720759213933577795324528154813117078523756087980138401652585355097002940811178223209929511034351983926318365947758644437909628978093586148087961952023600240672089190147534716124769686002800692315189996787017073033457458779359222116371812844613880101019223006768418414497738076318506606653607030516630719391957933019736257962009816839779610024997808804188588317241445951002897897066969522168178357975173789670195913700178386883202171781988857485540238967559659702102450602041149598350279889728736320530376605016744062838574321959833990343547674108807891015235778075872200960819947994738927353683940513713522483457800287361558899320554384348050551856596077216675732079410829851282155684116798584216548928570540163615253473194624010934027838784340133803594126872451950658245608046724149175016853889162339063093816055860820562386812941910522082116130032097321042277646659692238503499920750055293580662874867967742994713432878335771904017550888094706072270807872734768492770917217412567383363328188331567963229991584889720253557897987167492044126710443779787141653909808699878874766847826436731513790146744646047849918474615310479700546027776920390935347096156670480748722701017151739531914703053294427597294002013859833998884776593426291145899377161453322112743480565064319405981748412864278156666708622108772423113129916966756986650538975321447838122930654509280459320277764516263609626379528537782431141609974929364148156316976908180808463618634286491283318909071126335949340293035279119834164187397590869972433237083564251533354426119140953222613457361092168438548298593077076003612609962637837857542139713604138537292472680401787424235968932382912456609164618849216258949960536806192136117158746530517792979797310822411742508707609378251977121223801419914392289389970671469809395071282741226476554755863087104879721319989370453481571615014337333542087218762222667790908031197523432008645441103061499568329797959716557944789053947233715515336343609639857680138889089198507010322243655677214498471318186149077350854380622935546730158236667529237153471280421041129436757505654878740817523143552733989778687930175927220044362828282714945391109250058379399084425593578466349686741916502826773310610816873365867497402347521428221661675443136068838495607662891654345318243461514183189913854970926335916756647943234235463531619456306682487486087489751523436012430381250690292334911056053126514374736073787358353812587451255277616033884484246697695871915299281211359867086844596751780052545060681014587106494509762576585711184880844520869703525679995786932068018491607418721300063223991997065372703646478566726843872629998418578292428672320893362094646840279041103414793958872270789405037181768781864782180458142236211148329006504208337676355053070103610768378456785518721930969320895545731809848470702495860107824843948204699436756540535196958023302550618471420022483960501685387284909080940323616079985798412612412202287395243039379023501338885217683537097368220428880572594349579096179865840297693550933488552608165292134544915370490410830429882010805127976831734103993040218132981475949271933372412137003807535043619951058275528348801140918238167107574145625471525473815422658076566696794815080317342232216847934170723818518019855834158480126755653332805392376828913457001736877801519037218197882453015985124188663287992699595861089896492888493830767146267437656564356224344075535857738449441679396119711055517471337209783843539886466301185467621311299130038316105141128411185406446763994728657153890818070238468590308775168315529927583727924022791280240465805755821786973945755889479456373051637983653042955231559272679493916863822619411893927857265113483198837280325600080753046880577340096712201889488168847051714229438767349063797705708369395933538551019601801951841105277012535189474007396793975831298152745572072826077129777140673392673324165778983413844143011088333116699892303984839594579314937678776999069450740667209547552134188125751448014044831592705646809338314866985779257129604607170549487131127455940013245793311251015148608952268007679898108202244057384802388690443368940299168448323875979911930526768974580260566159963781526089391797945189599285803409088838348928377465921234459583655805649921795061979754871389747751678563312988322091876334751364121925605774660189283085613952016683102774832192258198030603952373602347200497711847014517680008295073997913837743768614588660207685477014294720245130681898993411187499971267604668973434732165279576623402310963457636071376359178602598868260889592371416267840639336729754294773299646213487292233087922848531492482300634845633112119165279504103147262780099399551648944770511459729865171753215157034344185203539430354794067611172590239535745020492229560480395835482202747331390104574226685455787244434828604241776292395459317057631226982109639772005342552248363944676765782509374293487172571061285507834933658800016920105536703486350018999145692240776711251927272537521067587730525689861320771688138775428188183366205731979292884978568745819115302639475061542493917425003108624032327973756260448639054340592405652727096909420213998523890126241480056357151854383982929734995638855895834709745910328072500023851832554322326266818786325332196025909536889331180211947284806528534782554445785455842706388292871742310920713886849669184775084685722354622987078811637321238610602204065845315416943929754519682972657775700240859785845546240137189435525469221515447354782102298412845123477074577593488293523533598575237218294386847366444453500755265829295483233590222627457621679924911372224788062832826555341624573182540336178003066792367093643718097195121460850094173573948128859208027314649262484856736018473026465870749542779781200542476012896873135556046381833458329561360487121291205318765230402297568157368481318254603730526617655651802383090196998094645551589501889499463542592592531013092695777210029445093949079811327809955113891456247534040497622503845888823257967040696192095624160829602663106274155633089960720480199775128444693262816813917429252656184807776071284855460148768824130700314934219885283106717765578641512203034963810329624971451247288872422857433573617629692649353020831457783123611254282651295922397557181309946483617071449524541534291927541446660298727751299591189290213668918695631287670020727022412363757687198728867304371400451902464969842283159902782366321364564815212347687205221303344512247188344807653092313063826472367365389649336241813384444785605736676349985918095344954629472457780244056246081913399397634695472806059166211562262019759493187004712108339381792862809225215405074556080004598891231538920625424981870355272432812739021418726103839295559307279317706450268535545135795859270624524477161283138611594652413708247037803769900467279896817434382564678768810706378013576371131399343213578710538465971009961395829450333583038463867966219895059844572894314669373261392430547800886000616236597850398385645142666697572192803557764355639554417271369776409774251223434851571859450949119675435394955173857296636158369094056973240195176233416121304153228617491365999140796928933129606807311613929684185418768408729716970844330863677712568074232801382484289389270282564829023018504007881449365619386130665710450170723289016620752931288482155480644290951835563027500378484923105709936903170520232899592977642828766987892114412216549114269876614243793687846849108533746803669094031625941133910796013985540538382934967512886308430616275388919247742492520785962103059461087931019682746891356459033975342240950475473344425796975837482186339073617983869688751251852399679457890447219188650408740143658790775941074425434121608173403174852266240687675522143386649250139991996379935047137579102260045747296471468802643463793006068510020630333554040277805173950186246695244892758492908302737058859057855343154309576645080427932468598914913266285323055922646884483155320095608455712787619048287966312704435107619650663664110445049651844610449504945693977805501749221696801556035083060354578130237964196945976544409248783219242585959192253773248945471025050982219644799563880395631495126186486212174198818586061169366613133311200529112418714488948623241316963729447760844324913472854871030058596115777894326240983445737071748457014216075041821870185459585494791249670463160694962400296304501562669560819998074600882515101180981462528162797185641889991665139891608833493015882074166398181849887429475135631986316587125757020747930581419114412893970946145331771829393039817587140618926033128143835101111850873056709217036015809752344378554981126781104996522898542087380189796855908933181795951172673784485089920855450743055461969462333434798838288289165730669050681265990208940157114671760390270713172303922180850125299342343284029432196156611702225567830851941036027166118909215286562960527026666497238077051209942882004384123188249792520591764267066514841050350273271235367526969363120956629080238925326085221299251820428586121307799181976539547463871719272162623045011853338831587928479586567252360269588840554356447889039131387101781695716278575136654724651388874195816423217177218595482684409863964405440860487082245474483041841731070177472316312433191122290414346479825481187540441862040166095911317839022689107173016586226019981011716145030618314537790881619250298726802310637971231242954344393393274998090575785426051679710199914672274804492118371279517328966410048591820054394032017652837152254088321914366333404270137054829558478493799215160950892151830683633702893281080261222689691565799852075990460672526198136487230779726996780826511878369984799387048777551100785225592425578322684492796005125439130380874773844101040175719135469202753796194718590440985628020853465991981321119394600519677620269220850113885363347851670468405822726144771519161270345643020035453370718812462594218960505757361788270064595992780498111412832879379579176741218778565935705501279990960455643127291776266891596918009481611605330998662847697369039064396014828207301474775508034277554637210884884433923716630602142164039749863591590523466581716500072410141467087198539016672342829559758922232979450107527766511177804294337166724852186990304168151729294174703911907083000654007597661703972256582604019095469344974128580909568001319601719483977766488703842646371439883564607550909385050206187095397009543159834355708277802889435210381156755342570521163774814110919698433636145175676790923607149852898471675346086694213350861189874882609825206483252065500680563098847523920126334333534731440345317387044561893054778439884128226221991035405351458019172967118524686037088541682613202868879902372373329766688101214041021720634639950117022904255162095690480915905969927013276252745806190977365278332624658372896611563075569310454958586645608526803897372984994777249239246348340883262605520214307831824335881365847853786578777411191949472975065543178054540872128665925587038221633548038365448410597156982511107286312332362163757061809723005957365169652899032944276756320758330384390201527887012960330035704228803845240483241482786256895094281042567228042463619138515693286409442068943498242188489145428968921490637848756655861153817454580848885381189833480555123908687012854058393025410899017658107929787914769345239949200328876943521406085950410022827583503649321678369294064227263503524673422848094889359871427828202664316483107088437525576245150494411093778061391718840669960962480649180668058821553603292866144913697068216183405034472257372291636192359691750059593083394075584342508354318318251105535696215528852364095972782679158403106028101436477827050750765449513470814482955111583114753136153915953796091428611501162136956657978581968194098320876833759580868816823087749016734233960412727627220106036438194200796525921080481160034458529975537069368933610677748345910405740091273107156177066488811149504455780844781219458550879350115892273644322202985704168554821952776054760950139392868103224636114588058285113579202515787778302555158389873351861156948522117649737036882938502998359579245383060182191250235090755760078308944384427455014093597518935601041212909718583916212902534696979470158692995690352028349157844189219243743224445229090385010712364485039531109392088712785666725555354843729192745934208938233660084624468313496377938750003047947566590274546934345870680897747765194331104457400917454299402276465236692220590732010600631812842174238913640425981884607308875939291283827691095292421657538849640751792363853387658298270464993352450709043773865070736186232068194092033029046213916813611907719726429301171562876927666883665756578754025223953755177744809360215128758808786567056134661857472379168966856580810117196170148478665980274611563612563505370390676404041630615507988968436096044100451752182374308070223236650226345837882918912309462976186546439820796903082074362804671652394170998102375283179213482476136136253088623935211044133251711028390941656420534201240100889072069805447568800126920815410214640863288745970735367026911543200225158636071257800639426610087695638218370682680779499923456266468856327599295766360704597755981805458566999964735014550080618484987132277771831529012398264045606555265941167750173446318926198005077456966210342627163714448999191795948707414028791501637270788956397685889092314613947007123283895712998253162919881586498026037105724472382177678862330322841537217760003338114153926254679111372296507665185268864002188973625125799100305867229084012999053877467908303152080472269791602345550215771348128602540392258402903563495912410917585273867722413745625748138248806168335386051916663125493548538757715314738202068936361163591859937759920774697123566087456981027383256174077638673746455877026292109916917192057891426729137168248620702987832369430619816407439333351781638536003636414379493112036097398380205437984764618247321831291140640667162531785962694995492350336039618454041542542835974599059367120577654286142787149221729348389120337183193220491405614291812249908173944176518200723322224578178648698915538028872909072140314735644404819237545738759446191095148494754704565321353590919680506579864724361743468898820350322181286607699245273164537319745764824878959537237367498014426372225886214946443857693848827871361434950077101937016387074629854747416215532137839446111445717056540334391233288513181801079701546818597443996182144221910022496729765390828304306992467677167135569244362400640356527148174929415071628244322787486256220681846425134546051536573840586480061957761416430218755263987112368451819164649088466300003480836738524631732950210745755285525933051379507242219906105113817293944415502484332179687654353119295635521323665819581826433970259269648463883151183319310391207099905031731744992945293353317606315125192252490568060813236421623829771543807203122975516408668056334208449837951365831125476289135295052614414627159084931096816466692827173837494618630274911452310929799082780817641012046370651589990405453278292164835478060324354047084556307315949043450895530023451870598749206455274804312643808024999637669570693304280625638021055391585737582991993751598984945438906879251116144853855527417631945670869713887338433298185158165817272470534167587730951036409001040599925110896072495046339421982527479891138859804501111284741947019288450805923973364123988594968472169192788732158243052506800057205740554466026370222888789342552287841678736722128615674591579157510789364293489732177975703896839149364456114797689317090104346676421524330964714399179606514494573237098912181283085912006113574973929416205941673070465280693983944086498863254485753964790318029636013752322959829460844497388919637073917831081035541189816848861540663890247624467334794706046323667814439812921940632992603348682086960052079378626470769473394784871908300937689695760006637569230683435338314950135978849700948316441758360234896972713239195037316598204272225342729186609748638613902204494246658909319783573911657752022799567537971215947254536580362822880971174025384373937209873300044997571686281850331605820237277212366916567740603224138210759144440108350641096630873249513809355991766960884792956606148720122370632639095397542133733913634476664231655269126823165920547145855073646140722274087361244292356043759365796839575294589248394831457373315268347225085891783749266224688258832916083732747835565807052499649352228349718372485570769654299665296385212723969618115452213875464105550947244971671230915584137901280813851213266402657462915509401946082990033679700851284365068317161099442240721860840683503298693174296475807663989375493205467346412602039358448199165437750745498789415497927796731015913843341263242869330786404765418675589145904436405880749902186917295919513764042055304749458178676599024615374313911012670618311420115938042088064228352473105569734461489471529226841220419786172199663392511378990311988890094950007144822374372261442685413140842025662158713574398566496132111031854260509025283185987623363473031163223474529127151674606973028063151859885902304431322326395347851284684756060332396646558786060708353170746318496027410306468309456951477491348944569417014745864932819063897325209180862503607878518745297417164103203818439760463357717821074231207707527337972966238636136993392877716252047895658356236547686129646820188536285390323429755537077754096883823921972517336554988570865830387280497450338612448963596397793670426630931980119064809938462223331365891679806347056116252309006274996803872211037012972660722893487708436474052598836924302210978870150606505527629573402541813980472627527034761396490561505905471418503520526380175640369515373753864529473253019495616440767384731895570092424168665996946055195259283817572442320600688964426084744217507157748005533929673063764084885328876471161827376007995115500585653865929573923588265667709551674730426488844037216383454306806176450062580937798623774467835616715463871987979903537840875684074058818277554657179906085943975914442310034016045511275130139204929559355546207416962682076524290899366982960183424070089854973323804599869346097154312925072440248029693614656474040044285365811823817395502669345888992234979352526246683471564215698194441156241189268775942309214930079771402379010264131056489122161860209653335934900019381096818766419398251232758826666299622122062260889068652082867198500430340083168879622439892643615487141802349873714684365410185044783550957034280535016501526033799816354432573732112080666444614985163343802174813500822940433202721598333458792553379037122997414216988284644668822049489451461538004318702500277314345332763351995973593212550035595716706617736615617516807173361941752490469324789315283302585508636444467907762071980551415737330852460616049257684008812486678497748930459326078651455992959002248919849611483459879887990597669799081670420279534892473076227238735557899658780499366991612297502649342823726139677540895790537801811023999620224608736551888157644763745262937813321720182963699145050919851655554905650201122658221715606613233614320135983749587357258967460268489227801331871214346541691358530483982018192091260420485643586870363068589886041233530064284163001504927846890974898639473880848122636033673865325738023283926835466353937532429574371235393210150772972830532117657995183148291860817566588565247453293812629122156500752910057484624803197136617898151741830729169948051428090581184735809156168746097017053073104400251961562776030611942458323225913581071682882535978473461863112035589315917885064679553930929547265280726080157034591717099488363602450000396238809399009674305878091713608147855018519687347455731272352874290121366793403622783258361410141554823951017880905765856614110224030782220382147645251699257197545866713533806291229108438231242288038250752463798989595404228560103519994655372542958500539286097779685041647801276260048277166279871616057488096168908188526592739929038145850245372622686963265495947907730098913904746222615285908922546013147778310365030226807553346474976534224031163211417159694566654120064787588897997862277437136015173911779421432759708610055909793039596531434614701027644232240528970059888974095101055957518530476793718050366250532522140458078095440255546432859346077759599446552851700117939502598093466623970435573216838510403048013011353779685358510238221818310981195399277219957876992227515628158858018133168060659093281546964565127278054575656359804864117904919918678180918169110430689706974614705011015906777692489059168590720682494910877221956483283187096046711329351748554277402058281026970397088563380981368619731734403320363299599957822371185182193680483644178452667288320447418209342137569114929768436068162895215242237618636500849704331740064381357061686152756052645667647454381902707570282663528269203004682835418694199973599293663829361651336617784460276146697792486765487756858754442620147362000092781405027046918001166397667561554075138082170692795457245037845153931019579901032737078504329351018504744483662062592721116926446402204918070184604343306594265811901092339049310999627482983868890451315063892683107194216063163200877081461254208917115247277020221428716982010607466338214959967071877719688848885263600963149215117563374635917036530544543234584405303368454884811486978102134115123413944336581609180533231923717445240401274292552068380617228987626244756994872613607434104056296618508294507159995282258619499479811237818101608366207445785922256477944858705085801794428362316794828704595629286590787246396399170230734913992402145197219356098314663171006645785672671982720371360784823751233117565735181946167730230637636504024563485345526703661256531303719203822715034384665026232991743732292537021207993797946482927972565389042387007378093594584317509711981729555241485869901887807915757795598063434675730808005952221361458359751871285573998918050131763539005896595691903129244863848098103129931003938438986874149608129882627232929013474694167858179184164430154670866459853478809297412707699388895679651658172214980824761845448116083444321497829897125721256526911141009214680729638784808831755873744092800079231432736411558490640561607665937179701290088074497043102261851404784439340910267093317307047398423743618420619853667810955385297166587185762671676061525843382788720301782242830650467469968600722831621199088239083448515656937223873133288943067295892146937073065358379744796048357967508150793761889059610488832377764434749307688269780944541865763731818293393352007492789931354166215292947149764926428362274275774196028203570472810712458402473790004119535778050990122037415213390759110006770286608126781707570134106776710160817795789741325767609513571099189630940913688420234537668244789160736053669706247839711751779354578828557117831581710001149285465460786478465407140449619556742798341857337383955495861893888071176261295120632933876595940017248220495802172706826955578891631574345823639005266393414425821356881216771962178812116829739632614606817572601888912705483098247608303076027630760571373711067059992281637778861920293832940517049672468825350799326860224028512821024111799589416793061704866207453824993369744392614153653887332210326421699699431003637643419566842610126455436737818058435018933786698790713575155663294825589364522163995309059728520744581134620365506951414204142545775297286123440870015561361352294452256071725329429157974874854362102423141224184182306265606576194378087832949643636213433989589248416258834142651391668509488467323453007279121594623309337371445619867179621506825848856167391743884041560664994878834083846985839639638027430038358753827593362143926501746928470764982418859144870926311569781841119739779395998422626943976758222267540928818441379263619090779185942132934730623754341379081403256450233213219267767600547414571268780737741499432907931710290277718522929529891508127583697209236844341295002329322917072212238132000898833543784838955264293945460768012094379181905221708791582386749909485710654252066013272536606718169368631262355458528528217032761021880853931066636804498698033162092444111190193747487825063749495056125119259657443025594753673658438421796161180611369156341603717156895000231755789747500249924001451105883499634312521747871826417810169932948222125609973730238880430554602733087734425845311182394638422614671262361755631252603825564456280047263116973224205860490354609886973628142664718436830363919681094942338927845961858111870803436802917530033353896870057913702339319585559356740478478953298527765506562407786182728191878028883187703159257488844010290842947435060334011713214705113674157183631821202459005007990834089109278822526141516537874517265866747554941169932103721687657181434495042797510693175059958133571535254672103931956470559067432789091383166965844305001345843382331321778250214481690543387250983530032269936661741894171457254336909633980820575762799018948901579719021048787318549577410502351940023882373814505380956162613496963630017608984444798054769946539741502230096379899435119496566294550122545736003123863926672477329356844261053770388356767333153549141599624828591829594313311587522064253524119220143887631901636124373712232230588966983709752736721436861697048690394791422966706505105365768054723922043018086153886148957382506091617085718405971078595228237136077113163801520306445565721864917740276393843757290409289422397330355552236435733057193481224355501058354489476874987306767962738846886435215738496473964435907569491575559271177713900460135651928244026703072535199785085719537787038620141598240014045329699792401650683506695159223221691511493375814875230809415056766447450882781849959258107108403330617673369990086333055027272588268975948077512117848033958627150779283121702001926122907998669832451110268758447415791769848811427560698528808568516580531330349391425521911265763136310045626916277212951267618972214310970540775118712480258345559520995338429803096889324857199365525404874165806306928955778559635435437529744185737218246181479175927275613650214053280220853612817131313376678015805043905432257014246874194753119762009513166001877138032125010656842911823999238701414305091588767948034629104057845386962808286120145198589752281096029973537362198878071465959787519541177974692994202333210230776150279879795754682034149089603989823124532833598340019898823374022040075769869750711165366814277002396583843330237950861191249359896240810837721136269816458121162340601014995051332193758301322596150218254250771042985150119719568550585376923942805897718317441169887615419832085419732814938597947484796371492096386643387101438994719102657850191256308490244787316590583507652522938649402157799031924824432961314854886251088472471429964726369627744467041210151077092959860890461977313136690234233346977188940807173958587713531664748917903293606424200733354132749250886383578698398413781092541316109868242659791921030075686794327435614182496640648836083560314948299898946716724367284982596960057338907669267182334779181205395140556243622966116041464869331063365709641701336919426841002682561755289148449942776095441454791104507434101189456487268884594982268044308463470444663794131005776086580712100927631644289753848539209597789821514429650817326246206332476423472049485211823281991797778217233011023023208102599745017959128754363545729700661465827805648766733212933680500330069250893839452755932721329808818842108377744320389108542277149069563732621251867238635142714413869397968062619428793027592634047464023650989882448015302022785488126119875350255950133058223120995571900640079203898046208037550631543289484621059083145755613181712591813760551724893758452655185127733507663166722812990753368032909756389380995903216270353751303936769222492681343746047323179075911571210344097538987251734670070525266792498641606303307026415519452427046454568360809565890374214857726314284019573884750717336451720919180588922842322621054788293385203941637312161817390192659471113163137208620561239051686332437912005608258576977845875848724291866555381823779203913814425126446845481426619588860850532207231763155519797985571852335412157742916937810175366106978883594426958396633926288434215914244963823015019814432537852637153842502602422214550081431900182011674647873098396987706765426466350709867758738212755520682642206187838008439273021495994227197071119116578025404173885777504562883451522376975506378047279798093437864949167075451994234093286661360535479929489307030964141931157392838599036923813446548973539330066250169943057227360818592436946000595236304596445596379796268466027694082283140675422898294286306372653747828161799908439181090151469664692313007261969987379885908683030064947096343435646299749135000350908249584878511343759366641151463293421786309682111432768615146404784119420898192631561993812221950818484552179238679338263631519694644405030533102743193298528873618426265905076467640136569080676395025043225635897946665954000320288697613648408964102221714953544666533985150983980744729203699984039231285373034985176358970393560156616535183759159023258128624083616511606712995393486836059661913918495999281893834065837630596533447374496948190145357975266645955278565922779460894489001053096723817679061824751382063259920817911848744266994790089153641887658729059976001578758969818134314064885296344845184616728104626273716508063892515493826900455163894335361340669019399291867930113943676072786049289594316886375220397243331230073089288129231751245132208738722379420377975691848642458995967151319980886550271967561721256223317038605881900076832103253716036096837656905268270169172793646450713507447827472499100118933334158302621401176693267746022987020296295856028269678042342719498770161791904691549104372511504384893807979202634474242512384335407881855562071443876976024324819038245112678504073556441541267944229155352091853021518273674492180468635206487391710957336818969460016141164045569154930287638347111698362046228540232813974625167689754531501601685214941678053240854289188948627184484605503422994281704088347346753929173090585847383911848865583677369122040121298044899294859089370754705099146033291265412116376030673697551316205030446528972294701294667862804454518093667885945455450867792635269685601602685371185084001737628517443795291156516731781530973846833821974811676562225275204558305957840355779969227359551596765861696380380818910222011445579152193656025942090539575421408736606093704029229829218382994930790393577225110007294594572873028866478761251856807603811006122755759577427071709968784875798486806894909434933790863831354737464291121123971401481042985086177255017403557658015691201426367880879786387150435004802224089170988113774053334450806437673732079808421137100650754586519187099000905026822497306743448086451697862716786291539606329971904328480926770601328639868304876463527275411069362130241370008669719559346903434997841577457734506507433060442550440967536740906253888513208604205193618501577786038722779588109545384084462567372971735086570890174019655959509165539149248427592981581547447084049410053252105740153796074787339367962985069956888048385865524360865602782827353456923802948282238520407322833366015117008219733092683576769462536195753603311287595145258367083699275660575300272078414115826110882344859801491009582588222562685207101681570765346687434926737635102954401588827507792232017818143571186222810249682609240309473839458943931307973061748101080723286739282178980755682165753106500856966598299793465672886390451669876931611938244072211780247350167355787985023951058631723874103228878901012448914250241683716190389292822940004071795279649795783127681333489413176220484673669419368845102986219576050885594185898481111449444509179308252727137243726419032433854665836263048074981856136562308603338844922021893746296344361590019418389137755575256540295191061436864559515137414164982177362917673764900839058435540080035048824524424030999763499020019806890316665450511960025365460505931621159175623783101734445089760621447680800404497405528288468243467673357482648970121511178974336079317456725978800550329621554826159004489281826788161124622677089048628075297467414076047144700083518942137796160603674271552579734463299770275883594994730497828583534136203758947693534452988290509115193610613369666184464722837235227242440888032976051317973145524445338451399315814908720694333172478529701168504605510667752331262919600478168861338667095751381736763916692093946971537567515937474278882420606598524733772578257916787305006372202784723884028195258277649494518159901572658214335481726621638455825428851620125803704809598087879946281357691371237108186172441837587550083175670129787539059776394847360596029701141088537172203024305181385894569354473656550990255240519270301027383092801392953105043319831994452347010561413915511253822582917741370408852314613482989119973597146154897275056922908327570469035317917560137669101155155038552874923596431465900557524362659733243653428775850961860596108541979414957091455050613065031446016724397708057893321081615534214746928313201732135820227719974071686403659027728601789470864098770715921203245862147076706979446535843185934539352348833586454633656851457358880137206900327324040435669939646669850068099365960422719792591571874084545088067510862817985826191120106381594909420018841783581970749037576947945327070410826979906955004334606935148242374266089819896757592117267658401244206394358531520157790242546555241728658998463773097884142709134603129080400677003369455758329451542070342278549151029952923172831802036859451649984280653913223859047225406267089422717603804180963242138143287494818535523043126380863424509935846390757130944961317434683334959176903733253830094237636591525106467502013696402421093714135137701781814054366831492837861632531799974502887524984754678548780672839099504282275299320588280384870746923297106683894608223346758458834664089142912188911306279158246735057300274058892911491287714606053610320367159728353876409978274147256735108493520765846911809164128199413739080870196730708058295498109764742294794107503222595987127495568514130493094792082098887520052897528493349862215903951687444186060652629511990285482155004279849161418523604909755605247116341971000309670769633105310942945438612006418534683758970710732485149299821980919877260327318855449941290027328832179758512159060584755821524748862611435801993075739075499486879887378136665179324906957649043012253684868111513540214324704464888473441343042403002450137420663466877914732444587265563603526212805325737726215833017591544954271084229183096025065903580043130294429037579504337023990242581396875555643692028777166416395089854540480003108035655581971794424135045750135268593573935318976533996884685901190416517215221301476809732073784764929869144701346745764694304414967161469433677142671511860736203991637164371940631495137954136160062268962765879456186609919216359505407913004411684297741824143851902036378618418591461714806281136448783039376743474163840485503455924044437701101214845501386191861677325836458811841062552581171511589867282828701394199307165293757644237291032289697535110737898936700298584146868003888165113308029780326096266466613331487285230883878158476598351788149897379363940588107725727996428236813428065128341603735680006068595878487186253655095781587279485457853253376502829624538608928600121156998033439475085693940363732773542473202876673913609101526801854880339313260360609795416540427164526510122324969674056099528579402785214234314311375895837983023355262394740351221362049335920582723194581690621038589867914333484479689949863292094390638536552514485100155742674908197412033420129651412741171105982699164042144337390898014261218290741346414739684722527821940694616367788776858319297545960314330039548399319017296067268627518977648624795375426231807377857782822607720078969651465544551787392239156874575056320326152095680013498003783241685785351429117738020635583714348570321193840793940080077143826402412502494043165494804236353878367679734749131877694909348797243601674180077610087490186930771806540884818669781922962978052811150580641611823445687191466257137761468257766952846262405039188188913186874495709810259301863223275660975361313827319902458917035917306204452698790798724019345886991195769174107710831219482975435419786474368652717926938969468429041215299328766592470690304500362528880839937551097464234516116122683963205189057368704862571791094946987272876186706603751361513480410547007421233821025950786701858021161381470469943244544959757161946423465660582048734313298974364420480827510075858045445397528777123520616491319914754575204067878476837910214932501368929021806436241847176290631328464364925154018398729932423703552828021322035502379557770233032032464847884643712070486821998099265505526263488137006548255440694258496049451949391312810426893077777366527003683807697259680289963448886977752174518814764232136383323454872763048846519538019241768527172054583687934002180134683547462076592256375676503934043519071305835010949335831780592946022878829219712245521407721834968661816834256248916215880527110760948285058580964133713959666246437820907635589306382413377745608469496768735715752843204191085904282747358568631451812161893225945452418932764523864917647707019355426319147427204475177861491919644547502639950070241721971455828124750322113677066186632150434286885750822892333543392831680953344047098915201515010650993974302750629736426528204354363923399574383092217803903065046638459633024846708176700136019404816345188649739632105983293938177991491441168306199634328808578767206925652335826382721606604578702371219902932171463760728694346016678040982931689910306486833101683873016631291830874112853587946537296528642268847573419700426741080473635975698195618688800566707947387964513652632233150614166569814267554599433730270361423551181422840608787243603590403986949619400387823757912134415107656390334294839939916042792295418228067866917385083992027822097228627969159831968601336689245958316976307254797858305743889039623734230045704208659514714410408814477408371553653009002726013130989952095728682318088600449338829893446967964642291045997688724343720835772458452183986325575141405276404211217578245850237856298275542768729578353611393537040142352102135537498339918873203567738216613176565094501559629494321614488591056015728899707442224660996965424792631562692656629887534975336009353384504219320195006275891463383987989979450573296690828277402973642842595655748139150448197774523915376780393934779501620606271489560933806429154550371750827043764142469488346930476584863128601085846770744444734142734078032142464130309650288077874771198668029320307846963625744068253623138743594281361750646071903710356060012325901129554148560641777905997909440279668342551470884927055226052083398252703905260981308059188735081502401424509656247866959932029984903889060724523712268660055947970106091634718101466575315546608294485241276924760124037052684653848385802323563863504859170862260785350204229225800218513681878019670341027925237185721507048088614710368925491318142054541861311109040719850527754918555072567045078455345758863095946292397070840629203554684709632026500735715345131941396319635739168227682633216860014625938233317296734451147959889642795990201728651887355036428285940528825165110396195783506561436719205934196998454263529986743027340506814639764045747795481398250341370802095250108154968683811019168303874975252551638554447901642697986373433040887713632120729427202775920208290762327136801714976013094859792579273704939101213014369605639778895426832003888152703758186631871143187225134297846010377767718148849528665561346207527049784177570121484993894784779581686173037140501957191717525395631753845678640415577333828296615961105743254782791486354988497596763657436884628686291952187029286461880367349733083119355712578503723835142056565471360121288538255206659164452520069221453424654768569411182157291818331798106120562871360910366240205830920347435683431973912620564497243541464519342422148741150547996632940730761438100074929531486908435437147260387591860412433086039055910846229080847045547534531762432414566936869975255209944457333442679732705477977925627100760338037488260955522173015248479595435311042767062034206496456896385175985933939907683009139805876651003463824252814220440360378885903788040444909197151356987765810340615828015852282565281092134593465324912099240326522856381713569597999100738104246101524751025181964696610790652508375708685435633337225454716377023566027157772620393017315793757960946167624894160961778220816822325744888301898086166957509114417786181460580821454847579636246149416517901524728364481956929065037256909529186665457694763608960078489338548372589552174488757152552018618035635246557424965689201891241437094617266095654442507862630166921305843588267725879360715866393184622559525774298596332212986880986365746314079809490731522007633569023692539445129253036846561594750399561963552078567307458991661388122649511393319086552903922701748492759859373547424270110081967192738463927250548636276866223441321695368652497834099115897034726577877454092751485854442032934201395420926910476074679892669955728444980741263583530742124147664519150405244735215475542497037385437804471881989609304390216169470507251512748823653091780979707928831536123018848524752005593510365110288511025609265670011931101260339773511580110828041962606942020668587836856886511276862856811736311950621934083432890267071536996900517773222949403691702691045710638942063682625475975189753841828504981762520876504121404776211060594201172164546492903939720124663875726777924633485766423084853160342165997657549123179970657678876053931012601968721400184853293935905227278894693963550449086876032488487370847557635646588639865154883085049439106104414771953651933619664647255059451949417006510730973390293553588101940330441708184872657106751978280580745330037400448837739421391328469085705599339504091055155229799154642249055710021238797998032458882034349560527924320026454479770004889855697363781266134573379982734497985554577802767241952196909203321599930780225040933106804721758141951383580983246706934453646435905499225447686270137298662669326235577464890304875968290443815070388444320544133176194888769443066038436215007283605902438574796909248989468694995486475707821656271560413555772270977472430496259563643591776529727157309509750024843068903122030641879404816577644712730923467280096788697959112551134512671599556977585745041440006199826241229236375428213495311363041500512787024516225526909737016934971770427668210412710198096870628741222487445640876957732149547192495650472444970867411028998494256626815051940135142417182564357061460725909105313590502341630721677396100149992494238153825667323616284055043471246857076250953192533311636121788760590542078146885794732231636365984015656668002670670707234701867320573361825598093583094084591542290438661643730339747120047633609847342260170181843833813338079390023999610814898301183026455339793284109606036063620359785027350117810959506093008398316707706945831617687044411461520091679550751454796447366602169156392987402415213723821360912897324032697982237093404994911891643816972340342345375598507502759323073454894200372990097003291084791129371929507816071859874563099502164548128473909071491850530812835060828088754136257796413336700538523356881646798591784188361718680088374921916911486370794273247078152282208198935927784812701944855219861437173870089576065485165581519348236839715632158807040600469067945367678513723670850206566359847480407031540978050557096492044022733007281587363051414754035010408135932226075967433198322027267856518085320555569219302298014013153287408330899390248165648495725609350870138837337527383282923975137537014654569935726084389358679853681410521592486455473344017697387001859295612211460651806859564863560639999259350592487688067855011756316419682942881811040590258777631708233765591122336852844530149848674048586683747624299921577490630088591063839544382870783237168467525602760770780713701545300742915575454972609132928588082007385597559707693575634047380120966893778049902812157043585750589683547626346435151532471165648407327238515609220753882006478802191960813746919874724980327483436695296005148580697731099296809048502179576884805095254424945450552632273457113516975838949298892256034673701013634895085915277340798389979874054214991104022604607111202028909211357351692771045212566749973833853322982287018501603579972685609183784533763055261366352278024707005285152040641165607489218183641426446817003196317382204291358228429617845175962428212871668595434373724377526610065912816279616124450282277194377207246507363662672504237977844215596691172444301180874609466520613783047572836845104119392001649690776559875477790863972318005238029322534354088456744891594249921659842467910807646036979978412113435249584044528053133752096533993666142322780156596917541992009530633934806636220301845984626616305132205933484575504834113422718823271828083799474924945353507971993837435074829945112115322948061361837966722804517644021102124911367661659488195284637897976172219032757300441687567929140423199920378880733955883132971134498672180356392343926725330477841568381177239127020621811381199132589582137940178491355249729181825329104491073152494603847575507743288772596150343422740008633665917177634191373145023234718274163343986088458820180333613797363309519196063481729278271889881141898122442827838728611683951951754218277332495512955030742468931449491734173222218019962891373820412752586233108131688472047471540872859768061768774132567926502149221622675372925036298401439893496479082371598418373424165918978240985137601441316509204813243901727247092902122307355060020768239462691008174833702103040393969170564431131966765100001336586987676398888616186262848803820204198513438880181192998977440656304288722550745884727633028417183500993496213393185856632684354651392095347039252374095249085525276042475175946273583010848321703003225691535402592016725871964957595085220594291917409599630592483671062304558218504326332251370943456358819644532333703000780131885622460575279285869691040589713166968949782409618408249042485541969562843791385703308392442127771857388997682424754341891967628795011285290782479577956223255136327123903723957482539757654653459568202921098146348568904595897995338544768983572582045806607451987673121803919794724969843987043918374372465512817941246251608188190942009622125505767150846686316435818634304488968774890389391224676663597396836305515607664509144415809484622353953241818133667512001482831983392209211606406010626075047536781493975879315055153507215795147498945342086005977372165391745423385835165101282013452844960836953677933151461446284825517040069675879787001457299531664689875165426235495154838155689363351062447355512928272882306648236190322854181906191714015274757740134187075537781338307063421372621858906531006748033233206988504887630368502479762615240069624780350373917332260805766491297254982309131399233813274238665458597802227343514597022083493217753945247070096772625204297455581912792563240453703671240084852516385256327785434285888692637153471727610729687268426902479727201003748667891716993612940491817422199721421789535313191742790162096838308326519513532618626598271409453771315413712161213531379155477311629230033984763112137612041600001021069468139907232157322793092881655809671853657694265090681819473605564490110556260306801729847976824616601914746783900829418602342415221071814749512062082671400170057855420318494646252484641381644023994198984621205878053054122334611477062833788621307553843311404410606243742074357268497629469043618993402586851250857742181377689455128737134043470711634818898505356113534510660891725086581386366492841061216560659357252685745675493439930953703441486484124084987887335393695548247273346345416949556719642162351660392822664868429413400909016892426736482947843980393438747185849259715036006092538833167895633471269192684255585961136133786320869299993534751436308831361406882958409794193388203377280191780049672905285005343794547571195029462701062695843156868198226263904191121926578711143067850549594675653983824103482512229080855345976466862066936868840508898480896988487571785559101571720101726838341628828885955266002748652401782108616450506001009090778290982897258998605180092672271231848388847688558042690644601645305172952382868983443192726023311884612245891479485663527377909431324182633234616222780012700093190355439286392848650798604970781088660449993866286563571277661310318491050471977194895901889013472242204469652849718048985391293182363909306150849549844743618810674535948262395863934934624065373417951264117929933423117784022381364805891789174067780380926139028380031932013372372417883202698482252318785523536676224439629589003162613647583222945404370035253426369125742970541715783749353774142556924352681637658530977239586016626470849960474166197621816210217372956807000067333931161396336258161838904199798662283050728404503064296689330456024930053579202357911689773168773334579209761893561491985144108204280774649355537900965370777755176686158716648221990024227279213337329455168611819304875447630087790413608483315170532120684940045502252148149970632887995445164421659466384942328188062415700456855070871844618517784764853380350467498134881846672479145174812206586261934509086876716269624091243878602679319515440211991442078453051923729531797397875594473448754947708260537923572833891218126614451938766371868520797940993495788908426899234120264183252649006627721704101826117847014449518860134650732599832584894188716588684799849984261322747920476170497966867449390052950763061953691702098354924046064108470558426562634541855628397934493153181352811032570318331364876222937482954319279180602375204473905339502260270247138984122743721583611477466714794196219664990206934490275013227778543272913568222973987544065179178031972736395337192437609722191399141499222657788606026615004545750568564683460907946577226591714939561327256496284413613331257431095284263937920309107286714660364643647734571886596021202856533516093933265514136582206389071430958188987831717305102799046220000220386793391346810173508976415539858650116286528444794170237063239085486958031436326923236099873685407618513361305596156420782161427261009078090097840300389355723558804968660189011008225243433713843818826497195245346290838499929921182441157236724895990019555652010685110038879784289583801194723308036355048749180437568826447820594229583483630894259380049876934508205400842013325312142364147237053607137621545446289073925581999931866314310900275614267453470434484686912228387078329168507806105619699077739130114817196521650276619047424914151282563983361306552914287825039669600081454563517899654132345496468608430460035031720582309208201902799343520677356420583891824369008644855984890735218252165919048118906624939373775819146527189133798421750593437295330901948308180028668779251881546710191637957486708313043750234560694109144677043333590965531961108775086705795371706572506665762363839997589556496489518123142700095085423231756080244361682582863094760802195943220816331283573585122105448599673654940294739531883287041425329524466060738932121261685535316794587189345582010668625109658108767288823595855163131862342295177887043527144418554731817715007092974207128936947147484735957137983302709483260129825620378154570197893994586205126330451038054089439446178573480631325939870034047401906442572327667483501530977845351207619009454046523660260807328481383093524943863245947330668809221498093542524357115174392049673757434253280220769104968133820868326197183789420496961089591054607424983365432845147522310041133774434283843510596525307397834713171586418176937964639008453839393048929172336364580126976135610061087552616406295415449964188912452400589277502865633921890051393895621070036341285993931204783320391076505594932281417275052237771544352168016301118904761669775493893456888560346235029014164712686471503410069897194414703708777904034827995887407706611184110080668376858201566094512050760195704233073501165374691681226297316386933686110321618149368718980310959014974751996554321057835736490179372635838633047588517281115496825630502934161631074211993921848915654841247857790678806717262269753553178761090032114289691470244851052433929572320686120405450741250992557480223552986168124710071450324574350299624318834991031486550064744156781557185538724854710054233449898776068266685019585090716547837450511449487755219095256006924980621151534785253045533077450514792672068148260449209839556323274706320526183150961592622034123625641078045397868216369571216665232051937623511146982848273198562534608310174002570690161358915673336481357324986108543894013282761422744011810965916086962700230452612211628882979627700618761103968207175185040768580548524616264676285156435212615158580773372488038889963370167626006500238549429771133194474946514608170216944321057872795827300631905944647505811934900708149662030717370932241094242619695350097540067841199125311492401967566211195200430716099951166539385698412230339786863430379886731174531504050447670364121834185042147361290883763003959743753332029812381103160549876710329142034813763211833055485657870387808852363858835435452674983466098839772975872730094396683619592157572639579215200554298133924164727277167393144999191170161682172913141224221540194350727982034325899941719662664634663659993425770594610704008928507525412830052255131187097140870421010741218784711224277445777701439356934061298981468840166734818070344732125242367015763629669700916423506369352804629293323413845846149561442102647899422109467216684891946833921723367395183698066304232435739782500477436144390946562807283723361028161200332289613697141748864667177006592894351737998589127702903070086173586317467461972887519386061294344071565676559149814818759353085598813514967312514292241649200914839079310647845457364458598155083602647650284399477537531178527105949375495627288835027833755317779552924382073210490798961603572749631757877830205925900541443829876867657678803895384978918379453872422360515531928783621002394652865282964791148781145533986486524272876844860017399857401646371546332526546051704452463601429690345384705715365905842036779270426049739101867750583585424027738545195702702777217785432498310927893758991763751329685166908115015009703811678151243802535559721971214804943078257257563177677809212476530786740122527180964884592119112573817327431795277644463898194771209448831182965909901215780271083688946614785676094468585616039457567945010730365724229358829021427947984231728275887273374740258115263808079615105273296786878450693384730518265691378838611969015873676418344049100164791566890279335275153813347645411687370453562186008115350284766437264012322464463371830029518510598653824776084189764563178000160925375975535713325624068373437297156071395131158204179158858629525322113952798235796549372168717608902455344803356315200471825731896129918805378809614993183528583109801675927590240717537735031187813106375929863182725668274036955687093424625220289748131390137061375862557857610863354691580214232743101917904271060906260678090601833523514303666595781466099729635031964520830239672474805520999548305409499916776897061799970173697650888935702263746763530345956530555128873447841860808253175012580349241554583126740146939914559091303090814438329860793513115968189142400942216328690418489416730978771021655756681015993317027945713732647328650885809877918073655800482273800494159312522569237144854858988665064532490656088751030799197562137693066979952331428942378529323744239306874322602117385769100069341639368167966840148225331316090658130619517903815592285091221333164756046973787142451392133238448770409193043739536710972453503229391323269311207286840778167911358563958795693440396786669366052113570989483028780287688677321899641218508873837306812553691267748750045939919848916658333629428694401601586631661479619031857626052796155740469445537311689625025963187194649430995687684567412715884534177530030577072530072229978013698825652064325877108341385720579102313722052641072318849558350803230474711862326473904819831519049427002339599021360769131132935421884240159856866596136883552758862357153647673338155090262060118063505479886762244145827369340757298527326688373915344652432881067602374998912132312214823936461822998923966746092999639935234752843195939091841978602688576733907364419889516806657815662527080838065688667427326742520093150949681171697566107228305172536919518238095784279875133347729434795179541869389876071609993503275637297416440749747084771860940047367329268281634865650820980217116303903275750703628625541234037114571731478537154179970376756551180218021725134247923110757180562264876472447123961233096264710321625616359330325107878732208181864672382339006871326069988401291889138999953402552641070953499532756296140712339001415677468555509415730333647790728882728940348945627319039927427867564472775691999534923061661692789950280650750465000086708909545885005481328776356379407957848285489760338788409019716044423115019513725963031397154181207316186326694485614914261894458100490760142187995709026997563820837864967550002720857898331935720488657502910448555337984990325226866775619282182130216404487601503167523595519849152596424645152219962327403916931029604096163806652637174575631651448605606087476807144728963670070571245565927210194311808927920276860670774458791123113967650462097900846196236960573134549194708149313824783722729295953020047924565406746774207471206013801517776351219438603430616563099396373896770204429480447841811510548772707408241191923149795538299764998367735860278797442615338088221933507391428329397553787250474908985543126501401608082443512587937614111524065302001828167032801120022814341212715564750461038255211191046306982590088940265889503517241210806344584472213376005239448222443156363276497406930991847027098282746552643597183353576786266049953352368260389426145886888743770024292295950916088445595636209409764044635684345766254985326551419220638569590483138507334666307473051539007214244103819302003869547342255905262668951120683676858626894095459498075402213524533506632911007377575600244008597500723728458865659878005392871708979882507079938921344406489338401479712600843154034608489995328749158894299170645865106212435225793616833161069763538285164372790240316104372181328761160468991261442397649056956518169565829592920379910042027419927138582330992545537233973109886949962410496749730601928976553125383876411857975143187958257564997425412965866509867689555883413287408340799659664048528253977379968295173146637859447131007994720561888860179303318353891881682839620284595873034079761640855954395045107910442868317056666160985107396736041170748579799045221060765925381120112575490839405870557430091405658805648706934359957839032683356106241498544747618182957389769735910757610808149285236928092996486431557719705407649365426680993040658053569497068777748698740289106614546426138264443992189100067630844447215330811164332284190556252777065177482360400346025813130233142283854142147889257087418168970876548440564421343930845768018262207419585371591357893067380113019181682312100912083924368862072214414910269865187291861586477904437125211975835024041402703185132824455446497946373186456188049437803790842691545779602402618105510976755397633026465978138068638021717462556307111222929338796733702425411875031669995198191509451684971691472243976348938277753794939750447195645097803104351824067256205430886850862533006069288674267185174328520117431068048516032920051794232045586950059388101577620324361089408986142364953557759482636230753638372316704328029225616553759077902538423852929509106677711279590118523589045150823018768915323234512248638210301208509150281927899805848776526159548505694431520816856392350833416301909224267368904693807393424907718225191694125278861937226334862663779407117680256021113080006756421058186468861055360188248760327684298761075253081180576424792316080319225853456314665245884773733083155519509971429961593104672044659423097381686003626109033635342699228101957515560290288328646330628139579854593375527908417437596508598024251338429284984874596704414630477852734322347335286790908537302161565744966894002579340648316592249902279392120369056631731436233611831400895958528639590022531712586632091888214957927037649088125400529008310320572860526460038439073724117255213104391391970655542689360201003582940399913221406059055868410673424797054435151346653101531412836643399214724447533317098069837320351099145243373159235625141542518350352972557660339750622803590281287542978705372848382765265924854045124884021377377563438715587901914177244065458664188530512878693967328636919686672176586529572278021899716676742852855599699320101468616323825990985217660803151021190909355819966908051317299529841363153727614971140516515903386266130856201086464425910925834232068347760287847424356090643384365279379685363822595883170500127797080211603538068912315075280661003262623865557160914999265987155122620651323140446306101499170850601520393162003868483161253345314867759748172060626870477320346095519899610576751493678454492243897456235185650391559226974430958235380919751175258812064131385734372338621049823729350338965308152116779503612525047062476788751602447683105711711799982105701490581172522794338292434410570432436749446147637488326504021908133684810063304999356974569988117206302312766577411090783770431657143838185799565220730174702596271743289565068287157289073642717330131815424332876041320101478299115290623763358386801137578496923577798355837321704215419089116549504072897836194159617417079393834140044808554038394712217427422474851045236202314068144392573298474213612897066897427144439115456112039570704885567046084533683998081331723004959027538605067612638968292192691712621133175672818186969139367906358586985305718556288271840294588103007973760630349543859355225201534556548756228634056464588323942306194039575648516594786857063262134109033537918159507286419570975399567846850345061229683747161388726145521450222933560458333748208877633398288633482887092626617839224336044374636655973308129950512222862108211658220031480332297853683997518184608216321175940386597255761789585032790152395385351408967507854940003616600278116277877499394594488180684520665722055959147417734991782553035062991051911716701436839711378181354997129560056744503899684625430681970442021612765920051296028273519323249552635566967733648183978355357124570367725921830550116277893830488982030561249929628170962685734669698861929259202802452977458346734401990174416475389334886885221616077859294565155964345344696014128602656405395485220226925646661986617705648282972380699765009450773953790737101457088318542274071131723192695769492997726387528362782787822453274059044936622343565511595537643439279585929660520325027944773459601493278260669851068274326081780819339250011138727467164752393168864905968601765236432142562830551578802277808478262794675055639552149247716699958201229201291161304656842641497989676029250516148064251047821669743552352523637736299302128296964047811104555771321313456655007683588523200289008436540381043699830319737658217419544015742898892333616097404930761425808333271055640021872806290674974935896643427864722955051785442192190927864939879467397811527889332461723939595907936279823350538014282502295894120313656347135196503850633473268873734997667267955347414560572696102149980895351146746209266231532499838697542886598530515654320490214847412875417743424511147663627007623333613407611669276782243579837565852248263151414655069116174292193067319098235523886811289255464953203722828607464168421702272433849167719716933085872536176319864391985473776873279250248527117074074458030486631905731558612508849594519303360578250797778388656554402988487596369667273678397692805956831182082138927046178295454267971832666907907476651918161373109237677441101931711321048347457468687230772436894102318983465747857756607712543063685972291411862878827293161529830306398812209148288308752117869795026690053284356635526744556522903332337138525213339854060354096157789375651060870733939445432863432019277208578958334563420903391749189225122379125075347720547151679304068728565609395494082669212260016555512931827164993611960266099837210925460169295250277399866939734884744446159695772793936871079045909462495581485841323263097884913534531354182105311819509025306369814776513342448807054968605840613341994932207656410779610104836654244556607169477453823864237809686822009316012296632304053032272053178610235347853140891868232543008840742391651737896001019631965940122406915614990785835173249196738662754909761240910920430777997268962199861384793864151378002989541342370034319778916400558703122808011806662057446696985086980116984143550034735005025666942745378454201497542594552564490913557839700786157771592256465722248235461511857447723912947872825107150514475212173155734755571182046396309246608621423683791010577690173062266687158816442003522597422248625451446242375874216327033152369093282678664178727768214218781486998071113512095447111464871006983695248474556448240995203759335983896962874876736181879094959869526286238978461049307383928861367205950440283127700717122494046665841754672125222102627313281283958465408478411357301160351762132334656816051725050657099088653953417425581992834355207915343341454971889057575066456240402618184294066382041185040421630917216390899568457768942282324298201007400938062765544705564083739230546628714146882073383771380257341013228769953217521584607346231859086648118100604446945170711313495456715308073209962422619117202758844604105820934536056191890710799184621350091964155574773405174152745321658714758144572761633771790126329482187158735226020786761321608917144320454906285627812768483575865317390660921752208877922195713650814286989861808225594409482514339361353967262192780091343752331126532500881845288041320330207161960704827783652495340112852926938923233585465989090379659252757561224076661831014294346303502779199856064096158433626205610815560344155096876582684576158388050106593015611423831755365591426755444700921322910535795766073309329960189814195097819618983779844047421203577173653186958386583188009361900952476902368114512560698375765041037373954467934789914701428626886802318630691651193129339734279663775477375177971038824097819029018337093630280006983038942575104835849471224792801309147045310741106530072992725162467591440286875717079321705885197044263687854257639853716624536984270858817197299011745139589736547667826410221557992917578059316846655543912095472634669517145681277352943898543951153074307186941726309924124027010487249993962488518054087386013637490488946089754289166937318312223871349758343424448241132901760948719729917918867695685010487943393331548245874882751376222527741787499989538774316069719409032310257821766047614945578817171729146443166092735444847114252609789103540112752373528999950781303232707158458004095827017016008056725256334417994689969104474359345457714563799900264143071543495742447913877268873873824851543001130266356395281568269661839071113019823268788144874029821937275049908684237556323457838423591818440759745542002826525622903820438302020241633238770958002683373168922377039457796318383331424491029787289484769168602983708742891187419207745524251163355790298677284307462197043058755436905569729108105083365020716404619330882918655708103436128609524482330988151810333453163904471325219722323337618543077102281070935498851707306685736503947553033357491826693205437628863577804647408983014991071672651036337303649393033043831325722427850467296474057835657819838266855263113727116175845822397356054129203341562827008726769767644294930066466949346354161252658902155609584128567879932336368810422088464807122429686137878660839013278988044344482987305281615943866262363202880035655342523863566700684162165969134476451744327240796647666878444500721066561967903832602578478626258443754056394421383718198933404074814585845341807460200651943916528553361109239552432486162627516050150757800791623752989311555609169350479273037186472537497763134749244747285634662433291753626404965031207699281255874677660134593027087637316077197887036899928728390472006223754527704981415765329258469052307359272752078539175265811568416757086970155303198123401558015163350493471231989975043198877882329312693539125513730972856901612168982863493707213857780238897602939621327473404831871992944329949571699676263712685553399703875375172751123310245448768104292004100239013854616191242892358069659813272770306329684286020242233686105331738279947284024497534618128976006401979653527888026533233179202319583841820240025938688422851397231873162645138522640017169432810294941593537171782450989736443543313948562868278597765663307495728208961725267267813028250732350002667835443274608006848526554867708945229785994978328836153117021284871655326123167135514462031701071099928732680864112245071047855466228272399981874538379890725419143599613953775728258931534171017871016835345634245292898864851314480907627523314505431904804153238078834274842970286148764507826634399639145020643522157529695945593853293972567194752464934412788492111408718427633694763012313196848845622330329458382439025620235294539348586622321273784422255194788015128421912892437145192189191710262549811619500970151340570762457151189296578517353173336487615905219623053395485553054230675499809365841090648646135578269660256344414207876713858152328873409155515752530406171595839466735266080774190579686923385318188908285968158204692936021682253957844760117741500550480695797195487092486617563613984720983459499338460475743241616713844463453451369621191389944940202436589412306489784649220292831627657933544232443168839880470434981677321173279475648983051229547907908793687936402429299547029572854276035159485224531812002133272631222251112385191580502779775786316411548786336542647074138805985541500349780339312047955764220832568964392292387056314287470129992746176257734745653836531027923205703969597582937067175459847633513362723077419558440562745021695834453564794289712028336497560722256637947466352623189826115080893469151618430237819070615304873580727741829442572492772126054209848412711929074239452821044458314104117302717277735902584340158547133736364246171748784066209996221970761269506885941507786219337116804257892850928217600663010197186275498440813316842310221542809081654954650716564644849989912083063367568899754496867765749177345382417277195847547379888249949706491764939735657779454975843250859363560441276428132307886212705441813951452188814447680432263252901134176716230435056159225937491915170560281382475922989958652928928565700708526503451243841405568421092926383704204306795747498231763482114657260879033925665371532713472956350582909476780603427008039442658627658212126436123363765642915828558572968527498240941780194235237369297206370908016341881349772065695449017199053446788649089476851402675894225126109282963253221212831492155041531338485551810052038870436311192712023942392487168306187586771033948246841500681994759971462087638272011601692413995796939331922318418960802023619277175923992507071259898880639335343327882583608680679224948456183232497594704351184820937332524383702703025596876031785806579982668255786533758672624020176903776849028151816220603859806324702398702927053935263789318929264346334762739428203661992801571166429580520760883295435121698952199157969129240141952477791353619994427417838285788295865270815315199616284026848687789763464286633297687477477484728307923799418353054953085788137553857256993487767125805439070331640772751136065655424052284987913258939599263064031049642135400404509537783822328011992612915618671180408438269961050860094018700515691420782329694980748913685230686351832463345680071299401566017777141464520994006727976908276495346189463721508718632688304079836436529650842953257222528930165056072230376090751473756967758186204089794469121027538823904053325852196032436151014676542345053109290224070981074284724091422525370492943848625649282071018157945723034397292655876973541378281252470122019517306407170570775120572463568047918481765819415104249717818536321140910596780945531356209289289786913511139302555695936376661605418101982970239835585101810775764617793950363192811957179124721832306702343284887861003755310247133257917069724799128959990278992629666911791858076126568738589487779922539364388159687837231280934764448679951389836306795540930559958544172736457404943733657243402315100678381368679210780806500230684563910180171605152369768959118781158592839412419512470348661767380164277042468416068157642053082990108746030501303317581805311986053154268948781573893686635195553899050163701629483141352796033742011177898537244198632979841097575007697654980665126759019387643727596624010592627152988758194432956490914664398322427846056743845817365139606859102328768381559019798311654397289777849331624349996524910122966443490813067619980544722314507814501376939873105253671944069880966259794740092150971595505565073909036870676862145973415355655971062329141402980145939396421116973591809895246625764583522190265729797361834528342365435777851923799735978146726592317596853663231951670504510711949933012764787449748665521390045327729597468854260246129537937036931609198383097560608116448714698681022955152523300517425305260154420452048725545267036727359474867969074239322428394768575813753412869190461845702661999202497511205855096035641078235909606759540054248238488593117057168760330402823291764644521928756618478289509089770253940031439042707457864239566471025272127242822222000106705580923017873214032843009885541195922879056185559628143622259872219932015293496922252899155210007959148871985120886045718712815580841847097972897509132797885808763665384617623476939063381569221160158173382770022041750577591149626171758963321397571627092941505765577806072762841569767153572826783101460034030883752428316088558575004732668933517661808858669780786087927155628246362641477226401665497333471073827447547662529303015976526250655341491003845551289004198189219070135090822135885034424936436274664247889517825598049519977294861281914511911188969428071684757629245011727802762485912173249346336547367374532476781002855233844124027535372488032159725889052758290341379540511549069265598628648261040717746483814157552530676331007276089786655922965852580040857148936524700259674619960668730898493545630076203091178924517059250948189626278928718271242433486488188798755158141290632132626451445571495595324838323222483031226715994321020830204416878239911389746994804663925202164808302530011240083225888366013795873217899440342759546339321583857808449099862048633333948390712031041480023051222115362848691255115048533113068145508740824613536902779669798510838754869023694693011861364652569479367854632245898117313969473713091408644366028428652097336331227240759271567108469798465327383910120774416178359746560477276828651974126235697494713402821846013336305126154631508070336382667401469979157339771210675392917266270993493764416815293025359423057824972598891571823074348177131205257433410376351298232802454162665673564912457775117136463509010338679292024916918029813659759469708578267648824622374926811936925901296427539093922441471346061086522653382975162140900912480451220984517626361240169598743837435767807283624885345815109457482052832893378430440304063682684957486271961166639956056882301726006620245552444488832453200835668574610639678900984877181316868202269632438818653611711053167805376429144969827030165064280804847347308241010695346395461150442310490672918647046056875578600650611202115789597969429470597552527036390353555517956154862944643159199782991789269727911940069751610662397228975293931725154677124104689922933160028730423728969482259129150226212214274106307991672884673684148437183909939871969321941319657451833657567148220088852658658675309460544062467672063195214349502896664703367647063272932410138487171969218564720922484872193026675966743973978658725532435318916422725786786002099272164517386833623254601030069656479642797324253523340116978900177272049975375594580212571736149354441724018869989188185373160974674860995685874582603829155229810701273488777240165394882435810109205344356945681952548549934120136420572718342019427613473008702555489272457029327258359618678985057398189922930121412546586795468829863220204335591292107151235372958554942386804114690670646935316999219432459994730563401945026614078246330678830200012465208728647940558432135477713589749250083605826916584410078393294945696768123774314672329596969880071398876907499315805384801937750121953732813360750703298986413004724923630665310405334866901497064553418889784118541395937010454323712931974865249734253147277142179094369470923006216205650271454872258480402014129413353956636067719231802659384592585431432453806943216723461256759917000384831354717926149667624891070890785623273423249276230681101542293216712629361127388515076671300567744477217225483260930813181832254963539684480811469207406921796820906079328172677334065825913555373741814041813605468075472284663648999078283215655258667554271673004806665879801128947647832256461487684593049267679422145809762546699508417461529658881857729019560164769910431673973207640987675361496141402160966469756731416795673422548399060373146090953956271493837076135187080767826473793036597470352425620013559218334079613632335416211284478967569615274703337886858175940554099745361928930097934306547679924855249908415455184653959105943095365179732508035031639394748624966278197370321412039453754157664489648168468738447027366486269031532400799174805429282736468549111428099123124815642044779080119413856918585017980254638738382667798623187696977374832611913166067918773859937040601689774053359006033640395526080951453847643782519395696214369565553414106707429647841050450937698082630807014360774307313930856714112816791961996644604855832719872226709682242275528429841506407845103320616992332606558828734147395636657076554251179289095367773716145258086717503241885132966713473287542531989708878422432789979698372860238495000014982736943057364997395223180860696966477193623112364319728127098487002719032688896791990540601553171655238152139782928326188028056649859640741133903841733555100697552463722870276724345266497087334233645328296140021741644232862663608315461225549661319150523458986317820636925671570150226333061909156015566853918680578721666042849202851227799223698869021724371993859702941188057198617211968208216684696355470023361027412388963146355366887732191713991049889087063598421354964114916755213074835401425112661609726168702477049777350030395053670627207327942459874896863986002511985298596386100164994529472037019995762655267292126914501603488364788681609371260808976613989306647509198159053066381642015235910771179745873082578671410106423119405464397537351475104253972840528267921301255302846666886297519217985652926740796679070596179690391376273248263770557611164628616574296107122888084865267092629873551414233189721209544707656843051424623321428250283530404071999062422772279007749854755683462329099344029969568054745964015267591752843989848199954472294183702804401758605276186555746060167777653441484165361981634430655322154812474497584799428251225320209420655729256044650883374728699045855908898678242793013517556634993232757978038117882217096745103607855797995805755965756747720823134948878992746512626215732110732181744792338309949646330337147170033834693712005886686565577943707948333326699758076000986396319768887623012961658408876498366994047944989928781304391918588501022046890624993434751190379031569859742604232797774731064399218761587772609474853747048432390510821423846671992885829200960380189688647332143228756334977649973132232279653769352889638496330716385680709946653305606150805905110265817378208597482472954003347278678758454565278508765020093363050774701556643845864928576487893763324875998629612421544893784502642570953758521928738825032273932064302485610136900331236654435990810930300468820130961318254772637039481027642392598832250401963340082380963760818029326657756982253438949538246145330019283895183518193727448807458630758126776029254872507438959295742288917411315396586837528273422193264348453890890921551917451421113874834584926192814667973615424748898998902110278788653632601901794445953463939777576603289723011654732571081356133716253103177064690129599524841939587907458426890874046215075038539431060602447417646022114707593980227499320362369418159123663020194242745893070663139673097592953278911623810493426160090786593831606998589271859795133609145793857383862845072457223590335294609346156932183656184743045098567405557444823818383407003980877213076308421835748076424999742312630902168866201566905227997607686703435930028961015413689934319822675964043923344862483230774598115099634885685494353946708402506365638593173555084038146452390468990095241966985815355279361521977732758108428333877730628329245363156563012222336694243991276419930563418891720751104435526416960510917888806209746619131004715039139528843760275343020598537964630607523222252764670805296456230318420543705905195141178319880940299928906268177751748419552761936041081528899686866020587599903733273513167320540836724501260223848802610894018994338473629456350727639379404620327403799489508417484683885337002551926103555669327001409509624565115210463576250830278533485599725834782769590441991542658265008789433396664697984828417774421906479716532979508569660341880454995884632163642668426935944182471011690443702028545863309098620251805959629053031937159196952306453737461755947051492163351828965703570793073505153795966844920551322802542568821125665653842918299730575441785970192961009150577178181105121654143788401893130773679501127335533086829825490813235716688261872631109201722336736556348349447546384973638216614154771549353882060132130644378795752480067809914794466709692341538501182328113289581176149621715111734180183039872806448053387542340285947968892327544561616486049311982051677822804819073962520435804572346220940205862469376309242919835874292764169646153421747164581617770230278929059587608628253771943415088853996925847504824811049246026722328377044012947965650253819753450989308188192545303693767341827612342334428157854280081071892380125229422156006139177354172247086429437385364643007413189316499422925156248818267127584177016390911801019410402671731094356435433681161008518513165304022757998833667862622169256594639247518277719097593515530747826261504479543047260409120882105040841546667929297927163373533284446367187435460669713301205407462983581883859849374508718039984864868609289217054148766546968000687417711137256820097847826561806055077666433241876077750420867950493462248250902913204080271863707939915693514667117523114271656276785000816835028638834871827636249145299780854999984108548532272789588178925003388334590323679240634181708030270704501213061837010572487448273610144903661898607656615499951643915722988994151133005875056877698204398234730824229424189374702232102410673761681439116591873263302539550271597323522406295147525031872395612025629109257484404600197834166529015675415549958495389446291553560342974553024017718674168014385081548685114880295840051012406281531789837851917681913236476047512457578808207782607511498149291035864536064685603421301626186175077370064877345877924152084739760386034239076853784688330373527383661743507183513436187335538733043329095822847437246361686477439931176123201568694165499573057552202967493434631425106328937525144387162211073862948027743828882369858367022873599744588580636354008660433501992280761194716002535230445708594633794565855625779272442736497541877244608171140379209536082431378183876085002115231785734494534199862999140639696317631516726476762485767338231418608110940704770206787449442725835543728994276705303339100501763499902498166348185751028444731114954502037205489894528029946637063080985021408857207389125839615741198894415463365334201914974455358408914097167411535314805681643005974017271200655425570069617935902220617783083859648506469675315228700788193966117421291057067382557686248474680829377827757375878780374728853392304277420307625605115693152184199467310773568070506822036070273534405833750569816715658346966222292797124753005522721028816564469037884872564526026184893618361309133220448865296965168369728990585934282324902592345011828009909736382530661498058014942559944299203528891396670231697108560574190603817962942091613546765504135144799774733055251736194114814111397684923297643223757730631355136021434862059495307560094598963085269592150944830651889478522231565840284474524127992887517765366217711109492710326976343294890882927232987735147951658546463678173497769339874879431431768827896058752378349642112669205080538713437054137489036801346715815672709239169602467790289211815234297141003526106174719739942013715926897593141734208155281492485240637505781730969644491923054022752487385528125143909210435349182950166672120304244109450168494372305771824865045150252150150980657876949113858132848005112630652705449199270232742088482970371673821053946208927984304589521760973987198037058298902002927396589857201551929378704358545028423247770953389508688249700835814824555227910994045939359491542378020299460934704343677537333769536374835101758248493721232415201165933111052412347857391221555866129688478469149391040668517140437741222468360072040236495078037207099294591596575085355264961022164519024908317663388581479326302833531523437505933796284462529858558299622306467590932296586988791906385497010968071476095126469867838285820670977303007278551839013184529167118136685519126863816258499781749629900559825288659508636560206363733888251806819568238924922143768646850754219797980757633613335324481474449772854431451447737833461326783453694266272586868721951037381473002456743451674665245100296912438771542649148894750912628269648142732126654820450500844899051815211606936692651770648235169269305549468563175311499777469900014498748980789536397001038329857687480336350605722417551283299797172389291340272037909619865608816927670861930517526297650870893725572724436597022099815148763396719329600026125154425207222885822815034062159298070725534080264549135326654355540436641437406112666699366439837632373334901017327330433347585044063340325461431811200712092730332796195313715798662921880039242375475575930923166737334690511885854542718380236651962802029157237528960793932488633554584015585009921388686960432750300542899055219851494067659683965989258562658408893575025184460097133369272382698378671812264359962230245054609233126794665814848142462519455951356582380756575858063319691449050368365121246796146693228581674237491289157286246621716116449580657634537447233611066455601505288844633061124427173036912238625213251811520640701867551282352238387597625303090082446548584225063620994466032756520449894758583637979237113128254905258919192342129862811036416554607663935926355313862434349842033131658219876578335704174904060659724991538926706245743136483778205030891624956879432725569805520502223523066445476702773269693248903202802258936348277009271686248514713109290564964248227169504002789620500744335477103811902571664031944701589460296828484893376963050517234102426880456462040643923353820759019891417441411705425819662982992955469611494889495540276945616324470458908852742379166071179530374084768767999744472843535697203774707427657184788710918809669692138941810356732552202905060939428412432043054144096158317818385311517850654061763183246331063506415949875494041331558675386933955319932343550101847448521391391372309512907426965048236659058125443617746489067489694641808292890015234428996591042467567980611616543984572534335048593673140349709164171333595495071481489385114190562499058036992918005225196866108509229988869094748921324145602807958440213677781010733443285020336445289044557391206224586614954092294144100420331702436796765640281778624271304952486084210838173944171395194862842167765001788170808626620648152361032361149080292239841637222859177738339474890761675734672837737083692463866172951356537774119846349039039748532984126651072905829282146435773527495166584301386805416672688364954945341473275563121023814138819254025654265363046928268031355862802656058631049665337778243183780521887194796282156586202015640909552513730930280852809661481764620327607602561901982252953082793977570568088866404687602199531040255179659753763830354495955627470437047653490873821515497256096678350623217151540957021972471548424315561383963044120772508727087262314041659162201389069771173959830938274216577867190089822108025040382680549782333250296058234205111592767761596904522732867529204892727375258682221572257325077421885870674192121853642443014970053006362800555878531643273699141382947579252380745004290548429384662758342954975440616856657937145764383359677506182804975733225717451864744849846564334361309214747023031327857548591272409444320056491785273285439426748463013171260142834951557370384480912684583894424760995378929451646202401549603832509137470114210676609725889271503405047439323740193574266262823066970281986190318001352256051798168828649457386183064220033795759106824885000272250308077106394363063135930069361695701590113721326386189963528205686346629007569249239753782481280823648144221158827918632350804614291625550772025576325558845968890491490659079389553909482641384898687018069371086600043313925567670808997346728880046237900622560078090000936643118284523776099793758268336789589850569363298092434214630668843145329683991020947758922545555963078407005715220634606059922031483199206996016635239229697127528092173489784438595043751759191036273445691847212982373056138402703533117259448383924037288903266896816202724036341708974469858902377619727759493315932767551476007920806247705764030725994238254433746019518981445460282301104333302435139169901646213169153504993584008567469102915547479531165074934198855008558830534502388186934325188284000304135409870905225270037510069829213653165882594826691003980764517521070207114035671205462384650013522383045621853682953874750024822334970810602053676056142291719493887682794233986333804140134763941886221480142735292358662017919157526936942100213443289523440099841214330505289281601043912207591058301107366561773796382275881626414495584269677320093480056348680317788898865061712717254094598646754096341439992485331456108753742676003028659688618917523597072462163955919382835264090229119995240649465757184578732033628024838048503566331717231564750562413749380454100774865496962116265798193161878471228633996156289518312855715861151981913888652589863066442745260733888024647415174107074147233396077997329995072786453658457974462510909469104327817020337879337002297332649612436388606896370015950835488702409996663350248511083289646403832696607260653977229299090059516227740280623101069631182856081520921579547808302457873429782549776880872809934162044340145422458365817139141632295234035365711506561282996180459754018928412362254227456405871048741450622876930853391748435146096324548847048448879788581726176223738150753966840744244101185158421875067627434622646799428029043252926137861689811515579432752740457700804522068035077421591921811454017215721998591941824437872496141188581516339642712005404571635882630240757595174582021958718679646323590442644916055547242459948785960459097908223987384962579234225856896607734880698374365279164608362746039255209819432189541754040621273617935795844642392828344583489874271124831665233871977420504298551583081303978441217977902605876269347569377190625674194670930071885396180596127123740728748666880218496866102307526697324223334392212616327197222210229254029895509191543621197418666161046572059799371031957724780494475041515829918816163290932937709828131267991673266882114579544587403479188189762951356439144806910309643711830837458000135651332616610380433715192824961606998515520484724627731622555324136249410522621108421866112467200524737917975444824066023487638525801678593265751830234170106299298124567542006695256401429761016959129176076602903775899366844459424518623825783689854123917133629758911274489598550619710601780689459086235823559089345295642252558535119882769295522440231029561053928456820998032500045594183560842572293930077347405911238093266710981029759678014785589719152365362891993107714125436487583987778709572300271434459247287109120023236681400372500385833506414699319923411993500879611678003404020453703534176935134305056738630537817178005990994974970197337634764372713976053653531148187475386283963577118939805864316869323043136771165013766319145330627458020977838307525358042590799950072773776378738563206558030211495121293674905186059026531062955774863710723607348521075115307880543026734392535493636619747230782530593627566642686978660091684221594369737898774398485773996116602340213159727152103228054665489608118824900300357368204427172937329856499495576560187644743641468847353741608059261629348435001342601819108308650862375097899971704219117733436685818014428712033909936699064235132340620453738869948478203232925936422538815126148834584906510376733267543922109973655328643056392402008778335050338553073927565969432593251182415636077159472831026953029421865234492759422264900225874576357857177840904676522196122275990618092318194027972164589177966822503388291682303130718460533495376911540994169826996084799949109726833697796732683160879954873404732229212799805485631883565784776427799309588170199514528213096471086112976041884603240680782673045040790289302616698442939037174893169151676211538809282359856677572147160010123250553124602671175630071699427677425307435053919557241597019375302741483321966306507746568842153367423756241509201434430551118630456818026808655206082079255783148794182108604782083884023787643123845743908116918463467302151729936894155812122336436374526324575483936740457005268554263093500268433302514569005424214265636618899655428722180218570556400310745764816678831054228131443031817449418770631217063413039590170409765518733617908748928176255388187994579672177501381577194797414245356777375884511917969615710650331761138736801099259716802407435164739682003850506371754424005646140054241415205611508791752956281539541660536966093455985480016305299661431490785354938226883574282468194680193998713863500440954158172224244028887439649186366050610913561484659822386907434009057124189086212842320662122840163384329184961944750471309916127892696180574540878678655075173318192245192081868735822592370913070178174146361506874226957873366080358397502812179466749697767021561471596695274596505627207898240431896241387946734074515113737485888768705008113035584460213773809430372758120137906301604565067144853526261102602823066957549080369688779769086228698525724123122914181893832622610336703170493249728792225398797962686533190177716165846121349279474125834206198670916793957972089183883767904248376984040893534835398564682437363720734436672033906959205129262618750310476585017186190963599837878385442810026951396135589104835157525276300606540509023930627637407683783003463254889898193742843593906143278267795883734674641594114799955943753043036829090983376847318204018968365596202720044032515914543323873820278460333826059176786948506047066856158383274149667778677973726009883491801012275938440699131998158526874064549672987635483829480644730124195162765229993699222798034031234705585101411318926138552434525071478203265604461345686951963397778163661576276781418896856115891139767915582236640264313520969172085361248806794381272860072146083851128877707265307948067202366966769125657312121531069226659262672085127629721730146379840788589420373977753709439067430447251512814490301462929325360250158409787087592233626763933661901912065189702415863681654570269351229309758297906589575889240675044303896004188565628778136568639496910738092151365387254735076248986950794290310124594963833432699195445371632427096194536377217417811718061646370868609341359609463716981553051742541308038056025769632386420899204192720387572075306984627686318386597424129492592390706391639623562668188430725053557112298781643371093159676274811931772713377369720569185466019271035949516730449304547618771040718401021027515000282012188592449208444091580420038935485582516097661557692288972722646669632986912770629571558675896351543042926810316514571074218356591763737813257531541053174786540102615433300543137608016135006080025193786050311935991108654615736617570194128824725563485743898456048966470016289012321153445262250428016550984865851400144388033039407284460671791708023400214402734227658071054588240062421106611744918809060578863227819887951735454215738335740230900734751672840968973815719961648236047211900679382181280170816255446389598656503440340770884095307465926122388065122841637634266171186135951709553578871032570878763136761362033282595617321893491136634571262029628904639426693888227142083116971393879642585610579250666586916741503520999127074702350906332181043982283516369463462582683167262354982164339386002611401401770843947864694366639261919281315406714683203594065918552715615252101434490948356477570930874146329937092987379125043912503413566569739427741585366936865004435777351025478583273355297323703507530856187138998470771324897640832739633207289191213782200166470411629084585694464360827831304548905000580059377173277087831794686491526248279398744940735844417152142954955546289479616743485509736478788366276038045990558891645138006232756486007686248892554761829188760661631195236629963324881298196623533824501136145069471569276365981996130918605592699617252169014374695835849246335811344440607668639706722496843936020150040095788649227707225585828716964883280322936978222462090939690171684114619844830977313453551265648583492855471337247089163550594495936876265133847957326152367994566235447469497370566796754257904473542150339064712359130784424987767011235323891738285212743637820621207880441211567468859791710017039319935813101792219408825701064492237054806999822002990627947597219709409793735135053859164779909633660742789178195276318705438612474117652461358677537536295703963788131950275471386124705233364425642919605494033535425030137455530509099498125215458980309331388262080484291828368224344391429798938129167606380403583566229267994879689253841104941283958139006218448067264876179049414901784719460854322242853926795692856135299776105412870227922072616043370511598810507334176421114325686357652876611895547774141140195380845595650245286314370160613580700066173098352761017209993006969724243943821172506366823718993935919821931301876802949994313816408899570379673327336937257965948174829222384679985687121029543977892408601939788042289886473077431901470583626756864361913383306508604582551819008489382815143768337556332840519255004987721015430944483229367372474143027241027811428914460352528815714175138557659957572954143513820507647138751952359073186317327926696504413490910020528653440359795714329484429081117791937931379378699294027394391324208890349310855736669681170634476471380444699952329097615978137987693238770312288560824425886651188059371516642174151098114977600705360172637456618193371825218375449088098531057324038078659355040830726913101305378083324625644454739985308696217431238576178852374619141002483749382328275758686356029234928652684370495123099146261070759980943757923896495345381247930944619286321032677144071236268927576577640429591486237740904461211583312124046348053176544206680972626593465642575287671840156057536058354941892965228558163979549824088750425850201137582979246458339183205310165743571948851771387286506477146055315227605776174341303115590556187467717198205163850218054669712326796233822067934367753473342574035318226800539511281011575896301252828452575331277663363096181698979474045877193858949018585718480127923404675949683018230198022184657691639291419303795535646463838640654466597859224191868335015811909088494525763209432500017378599598102227197412785847754878664508269248630766356330693345797436652909665241527016163462740603517003139912178079553849360454893957047131661221322576994551851652020268483934907684662298341874294069998080855729359331161883076444545645833182601683823606869451383347021218246675703256055391203192573745778125783384963541551220011510624440725945850485278735162992086875857429993978328250187837090112150371921556112546810643987245036675190406337476281895792688576740565156846819984124464328342739547513608298041908008959043642937772829753031689520647768134261779895456321133411605884522282598663724671121177602768805320214635458926643514948248126238769193118526012088824071450490425466880376800179769699221114500202581815433178061004982302601181047577493080697696354562198258034986878048040817360600498716035551683978984799189313872291082445984070236627170626794337456860036953138228251070425564395134896276090101865583678224184277531787608266366789552453656456718864886507760938667655120981331754978232131310376056310763365621180593989204272200398139435446498952095731986820438879008303618756136832816636395123386659584700269983068143274020931597841894216540051952871899284460445532826250550467787195568428674091788352451867919279454630123331069003682616858730688421324635737890923840186404933695723606961807612972395546908220730677526752835035095704127088482910875477586696969824254225634102270018247782154895087521835786984654685600193489723852352149460219319336481431605221058980806625972628743797252926075350850604634155596932579593026539455643537641825150595944567061981995973381550826751191492809317971344743079840669988836015890203246019007211434105100044346219292939979613253072385149241081435860200279015786051041901698789522222170428295473703160016207755773362078843067377759134896260369740470416690571316074253956519726268880091346342484381866163082183380240297536353603414780315394995363146575799920771013362542371412899534044121733788525265383871968611291765072517424523713521612041273638173847851685407406816934603596402068865804579096524611027027963025205884897669699119632568632618255962741771941808385663140042914386561759398921871567747917509885464179994070220417734248438008046870008633167418853304467129650150844983102055788866075563568353122008644339106500713839388212040723954741249689844826976466101703113043006761067365441974391445335772926160634682369106570614043296929416142982041482404145387328118892483003850981627697091217994396743443615247867860907000944486627640646964348152828704077274235794043780389625242907288582097082231111737355235755094689386390271617980319651176583843835400425392287323550861399822470140633072340146080894373798128953304289664542647490130553683289567955293594635492996725692642401905921585439752725460364813184684010830360474567829395594452475529794748150254976518250195036681682866234063240652911332944864913765539630032013311533309442190117216867143565979250809239618149427651476251423319798315056742117674303038137872660060709997159236006569998490369366298528543485775812550920052086595741330059369231672309453746327824199273701676909430834069568440907435015718975546439130736400999778745084982674799005751254955596306982476805755336694847623567516869249787038759089730062555489161697375434625486178330900348176661585345705369355377753989267138836656920214925606327305672346822378403065696023334347889337664079196888034688598627948469113551161270000974591866239338038720281739399925255975556520375900312698776696504533419899460082875136083751617180998761440567061430392220917730203278381463059945608132083260546981066335374101333636810536430687885019822378995434608789280688755889952438708715641339205050614823450742296334312890514745165201640621672014110695590089052758201377031165915721122434312791496688205111396548266428655713454667855546762538721441474431179177492562133979016007299224440226968972986623830668041884572083085774761532339313926073771159228540884415208701906944765122902356938448885882486435888335885634169414579879336664033987175843215877625970042279901613944223734642799097569104253622597055095981590621121236612191190464153483529258711062178870469378476129211121319347558668804981122555789449505415663953628809656644050775834145812375469111696479835741631496851379666415300332498509717165230251199501129478984270479922960342465625883239766892059766295946157323023948340753463312040584830241508646189714190008888528434207006845409713862032773774262646239844926315821194102812879495763066349965696915263437388998488178591019987096453271593644582249453807981321698725373677030733760853913515450285184666547468618746729085562145887344539688264848641755147852730323439873641675028540816392143429300287221969439951912018252557771825018961783973330730709742804262074665100243147463681719195294461913245578693407223544549501469144377476662252917051616120148416232159893337664128056231387633674332705403409353122658924624753594081959808797563072504828228722585117490143634403394842967586225399035307866635243983730880951917882613212562341237261801209227226866011728641714037066367867575875023005075301963632189712951730129640172121792679469778496925307394881789955343487056025305506409287381997173962187846702806963052249080733808656498389032960403270533746995090999567697051222770980395980599634985808446839465344194650629966672676986276423977818991793946416130345314612679611948560387972564294396436438846866565605518941138425889362099391825337765425196237362476015192922985949120186383864427772226670645382642970404102365935188728041946123568651252354071119750646178629249110872246688961924482646880471914002810634416987152940657158751568204579693478228165384042173118194367094988694428185872865386008784204762570150962036427123954618411295000885932091673162335607997018899401205260851075389561958420105679437094350048872630389406449916184015343605969694647568754282381388750116708403263407591967663200987145974661271809749680051784864973304583999642231924139673456145129808124707419203951089152971143713170678109298904971993672518123646444939722157172780787578147036000495555990309665301101918930798321169731012670904788793472959894573869727953747965855627708413584881809348821520273664089021634119973363395292763533051380806839173243083331369798315052760849985931065536144027056738072297283386306862642669481124759006039048704693185552182271210782488542298932918371203076936906366995995887009075802627192457907880682636165764453799303688114266686716396943953998280477350452981535991462183919734681581238827172208261100114453603971716892855365579510534294835548761862770585577205505926619925082761940419294175090784202347263300000052426725675940471899707462677389285171883589260793791456023549230648018669140479546256107115433479954935054089592228928360346396761132598882053218283512950687876066618291147393008969966371220838108862089815007093822976738431662456303282614882918606316722036098602104804458895845679528332327998519419721474712802917772083446746401414432709919275905751038699945545077712013608476207478607018904655568941745747584465852754884327230922648296024161810394815824442948426680977731858684426469648194517891155489075727151733741315408386601836426425214369990147748673026255851396780722169087790068811277975902302395955782615396141624831553871206558372928288947154057714773214742683997257271071206637357379860169616645491080092597533705227903946846387836004891141825060011605642159086431764928981695472000867440472767766540814685652068186148388481512322446055170201143720225145320657920359676092930222469194677933127656276519081112092923898266388914521876618118440526502442139730794780207608950109983602737239021469080691441918205516494795710493990999373057419261148600019867117802597376300457367565634258958647586584723857796929980018151987715314258956614178736988868825190272729255380227451609703717230569019148953962498579993965977264299009479806501818499920458789485749784749486676312582661647963520696205687879680404915563398181654921113395495834535410132566865877004740533047158832708937554257565985243740351968542926340954094007097022515545704325142956807761457755463986893571841638686696532119248044766593516531017522481567986872862129658822652953520955292566912308088986793763208500221159831887365658644987812916883687783913645405075626492383614304493685484419927807152096834105534774083486219963022027806631896179011565650180357933795802509315080539573598254505549771535338328417793803676341565336060979432796076026646177788584425188225041230465950774017428520480332911814106810792199808366532532126478841132603318491379981990261677994696433329012117818909305264123936280135612126009081075509453346897119683270861162143219602870332384765382091505155231419535140905137019962832912457666668278336228059395886079636047585425645469975855764610641601133680304387526992731550578955209806368019744931915759343092885232109956777018320897549935241866875698400669307333087330505742923709003225386067622943707778298517559345930685495573276402702698261868545747854970564653075933331234923429502709666874158168217791670811913198375129589083473918112576480313377647785908897947725042185057015550163363249719827694014124552299643714432251498273043048215011715602415564417714238246277788713248709761406780483273201979996237269048635698247571207680226718464945482503632109854685566854818040801244940027550351004902048404396691651528465058421482100979110933798641677677141074878596083236138309346238984820747206314217536709314875167126230963917988398142823271745984829663464940611146667794368219356036474542943624864404024896830384931617449755344819144047302348062815307364230480008048220973867048049774520215004819046202964701870045130329808328421866158539840012131122100241390086164417509081078989080187994851582668379472382995613067079249434248971677713025763267159792324623698520348703524509326509833612343594556267136142581331754784200115339914863334412572661396785188621585492807543204105586263800741173444032778454661418979943300023424422550113124203031263512500843331477986120368380239704712528313942803387739349508862409276189323805494225297266637458261979303921532766892352694335423639033470786699468577225791851572453778367621400608757065827809811323588689878271105849919206844141977473918514524711921751442970951375439182937122907557995836053590041660948557880676306410499806322412168380972710479963627408198092893567402973102895178066253098684751739971876959457114037740244800122922093558224264502637439241020927258845338968074901954888348056918976868166317364744812207011808726565162874943436802373394391309244800805390918587499215455574480642297149249569403814522212290676015737574631116541303886011264741510118852022414472474306112799921658953189991169233655199984152074606383056075838313167298204054674280536788447645470437914408160814319128603811288081337499360543556420209728571384582118021941807046983860899459783953600531871682832428039733814129472149402357560419105354505646167000825653252117741121654983695098166562146002139724136070242091983690596593057143402110316373018662621419512384346742730584119561854834430321986204217425417102669368293394755290633318377205180047640816148666403777966018716615051930540445206974084444660578005182449817100946747714582872793371733569120384751099971303322160558058334883161828380545029578181192180665144659186586131654474003366476204535690275896795812479137912769502094771290078910839799072567618532739917363367191483348767403707756787596446991384973214464888746227131178890123157677260417270454831301828352396673753753983022647644581524041385650069961635654567658018698883589249651254230823345306408544874304762079449618312773988716676886893413294190144915682308579899120089701086684197282203219953530026046900499313756947713553079672266575305992563124490430411053045422658104554296076908257485323131431545694697263061975674620827551703046757688087305078029467554575064063292914983846192920011722345939312509119709110691512225626731577705585826786876091273932733630829383042693333192179304908119689769134594045846007049547926407221551555109432232637277320486762357073095300351469507556497018680018654748469100926175863603389402730736642250051118123374818551771132250102053169116657903854686038773598368139661090308024353029301792227940343511661496723056253145910750941839341932761278158300910675076104177275082424340612802899824714691798171348542746767634702114314519663871029111385146483131246294590782109341516745076305851489527054196925495866511218573632190403001426167152551559204001526120915949379092667253255685812777548551313746263758777144523376972827466136051353192246403096814460987674923092587668973315125258265891172239626092966786726809558187552078833293831169563530851786840722169465732064650587462656989602787916271326604667291184171472257236445582568763217147507229622380438837408744654899054692526807550805278203980121588249247396810473576167467131216958428025460542562542907734522807545401963857110335233655037773507702631033139439715648793242198652509565144479189031550287291310499757808789557107787083534667931342393255864745287207551928337152673413041134826391900872820600370349695652003938840551196137335031484900401356033989720161610308693630480064122708067082849467387068020550699158913657958972410934393637719188340478546836357547322081200673594734213725663967509826737338086238257574182376143970543842697004876513848182412150570871190970569280438585830730792483130404708935541155780407163600270515365268644589800537438383827878151388069040180836048342175867400293726770284755010190346434961642015270012105443192108671873964520530854487753197667349405101675522236809505591930721760299591184182840336450913935400882559457053433421872936927068808210294033217443318220584733327698623961056661496715113801816924991724628669203134253660383888854956973979819100335788830447548607807113296286352179688903166837898279700623082894302514987597309998434383815808930285299111036381501369308599258008029234807060558771043219804661175071777716103672800829839035146360158772457607848088963757757364165537641541064068328559042060947758047912171201189327166724094810582785190304538435971215951041466267580882897297374712764294807061105251840103361042792938655381916667520360027225002371639328998616665997910147615126904210101452664808040784433055881169711753436764877206072680913151410205772619542193414972178978141394559517621804621728188890300192814654549189286283834566132363154672892478591736588744407803497205732570180865507801355459130448811179388805319272587192892773415357254868205248222851929794890356115822100579871862499418232783931413720767786320347834664085866315782834877781604966824685613572958712929783636869299902101845637221624761220605149067969386474971780423303243751805036332807979775848850109372726238908265256407361148695535513262003872035404956890706041879856352794587549536736265302378200401350228415287513601721428353907280550057528691167761037546466317816802340482435014147836530107836303095053540278069924964106346739603770832646744737786435933738234664703639180232891230820059941679388723737603682442686675437499813897386669407401653410023283403255233939265733916402380194311016586321517298088842245613662876445038479050609876824813388749588685800589625269415624190373043437790078465801823868710656498221716248679049164667677351849895321642732472562913928678950656167862406229392451201353275485948246741768427054853873861200597305353095460057527859805257878045696960951234323686997869432819680758837507334701963231266567677222531670666920507200722666312623031508097050880547143588574665740565645488124899621112112074794590983551138292635001977872687787676078715266144037346963733073105062494378785603259085037895385947487627946444036683642310915587276326372968666556818587336767033727722613456956601857008170627164381040436501025189799817721217270694442629351151525486922745479711542883532899939908904187753671163031572866537999547933691940681996753936487641205934291440528784559155271862439017071354808060692310946877757390723939743516260776514404043960821219170878072407187726883346632535797643413625646717326340995159888492632330111209098910980550846930495060458296504654863392579926031660286847264637290337896067077560163154113598847989918848196880069125505159541147707261809579060495010252741742224609766798370989805504666336166841565443564682217918959129547108765895873547469605423052503364919624943198026164967112887562548288917201160653101978334098127694637089627131305905101141804063530548250045801043670261080558130622890010488789317340126000770721980584217125889726214817748118876813429327280230160668700107986692706754470801940879665364734128727875133536297302202206360724603266923710637755461641751696142702294214466534220762479030277145473826075421129690469449892762452511773237512989969132840388856347708319318203681194086405058672344616460020488922211088989416316016177767922960652454975639649172136342570503140228317711115776089320147041063428150146858736082798127290889116006632517735311317618274160299147593680007294632298366574778562323463877957599646246407983758918265216858322661099389475028930030359111396722017444276778615741996573662101525006626771119449069822051887515407416059482797086627056282100774343929072483249982848603091981330716678641182240710996862417843368031444839867344181014723919395022979948443231453706624599911893297323062547501141163178543519950306001936833656861026583487405913627473915775913393844249362751680665711168244674403434136497772987846627669635278266987535204128446664356268099024489747642402337882624602566419389471998818755010629255706751063545089087906219943185116244102043833080355608336725256461642964826552496723461839629450878474247349744384401560642070670696799845452813445071737779113118059038618457059783442122820109504439715850297599281463313171226299749705226368211373564238427999816973764566146228996818776595649628976636550459438889659560738796242193147462570677920774470048865542571068421772477599170349060412275305184224133927190739986475223490533887614136725750080570595648013220692683239171851442756017144536107887120791113747962536721513735521252795646755530389355011926901848607280906982814137237930710713369809244498659745275281547452686445973085644924602967984935503559490404091200546751145322772364941506026950200065348023941467352564742865291556460861013455405943750876959595093275024753936272138217330232196408431053601865870342665097186981981425856273355218490181260832375328481283770432889244701189903477250232802133119074883610845469469423022463439138796861565992334062871651197625343949229880398455307139009092636819040970697843727086255593968653879519755699106935620612056057277728798714965937878774174007280816280376506020132583414079177879719907259931306607827326059714214125029551712169642116196151529132470914266327230572681974638479399731203712423274134678600428392353640299526895902222616655815093200251231321598937893394325495817100276924797208066714130633825426101449225414432017353210698270395744257780178519386991639681682238274603392513504692405266459920500420082702359712103524164002858769451001325834547605652567125221795321645589972989219863548842479802614705041072496067824041548540092042866270227225388015878560027964416163060633950016007160167153312946694947690292383461702665140466158550977967077227479607140968854607853602115852912556469244386154533879497323381526132869866785560382303256982002886778883229409836629696122305358876646587753886773593619473349908930013126855202421249341358739334059737922501566776702880787252033196798136987105394129476520165894110103715924623723861161821586524359694745886990324259289980805805512572713945161596472085228161060475449100243922815905185527338817552409617501162927947498027109441939549600951195493305981408109444641280422699770378600546743971605513851760290034131073907638912771624652453956151943154418042094198503024417966507070168747451136828600465685921981373046701771971470866023876872282569293115673859623818370041752633194926014644670063668493800551030140685262446460892713308845810721459336471754508831217956579182203131067591496577609585720114476535880822946346193362307117544079304275048151767314976010952949235072426323298681431145329757249553214257572567598915527129937982100967914073883789969529730573133391230240427564557136955974026880467092330024315493099891415305580783827431397489404217647672381365224492731597597251462571757898293002660334874815351481020416932304570712441694451887357816603263912241217648968503653746053085449740492018862608673436121149199176296995228321838257832677713775838417837706866388758164886214491320584205349554051666448182532839855504361884371266696205490169595837170337176835913195636885952378273736777858201892623757254042346303647942038282517338223376827350794221544203241979916563844065869361982735936656021148023369319858312094738803714657272763279436864781248371628693944836925945334892581651025899956939499201595345124929436074278275234359295307006742218502339325872679532102363142989447992970033416525151386652371133654441126799690888153877294461425558141183814331525491648899586714128456116503123517442770582070311890194628792943293113474101346177774957352236763486490733152252380858331707289843969460364527964506474996194279685692419902309409367253755420596091052295469012237214378688377147533178711662539759277421422780775005786608228313412354120634781557097627621994359994472230862967404789037467040018556622919755355022339820604452404857627062610385758459729860401336538889450194382298991017558724058811474359997364504938134769715963426733552765256322317995643740719177049254801948471886114535470699961449952368386628612158168650114893558779377286492836379448367950590620295901326060945564350137456327503279565293026083022032465193437203562416717138522196064488001286793526455305812070383380987716291523725040935962481661504011858634058698201081108881309182846673090732760931724060862106978329732294890326702992696878950611885140997701185493251973650123083079355228960027377993308241045633974879176841329830571319686767988151585680486644134562757077568236345551295783075100020611269318529001523333915615614152731090421164470313089746213088767503586475226251391154758345985947121411926219667189916570712649346036567430241737279673597103139460414545853335962181369780126943616866260407024228781623018586426521087131147528087785493323040606672053304287545498967002268868253019281207400397551170081171466150553411551395095872233266450493254425227211441187540123710223252829317540288283935443529243503897027004130447812774234924109618601430798857424576760872085686872431197190033075874242716842905667540044901773977891644204012499165882225041123725163595503270774969219355194975297550638392562078344826190534428192207030538435015223242631213726072939404504717667627142925284963911278062009213010827846805337505697491879187736132163365999811917087255561279414490473565261953163207749389741717439681491700132450906873812204751771166562702369125965730917868703718172722055258895481738222254076361555423980576671279938455281785115645007353145591117532392496146983465668034824181312781013245686741681569697482018382550958487683189819014156349431686485541161749958570674481833450853188241889696602050064705411864968727915341233941616094439676385735978515557848481951573969346272540805109691752521049468006401060241033289648746063491578509648439963409996229490116364292541657585795831176094815387126012268698105164638763870025582416637148093049848392021311117929597458976867137117213899180284978919116395666033926538736024643085342621697494042653024015313331753831875707015149071867786232397389467998139533190541830651790476588971483931059041890243087971679613003749945980369401552430596533941618954739014903359572025015522445141231966940994612773274685915455860439409904963072396244815439579185039704976570952918762442933881702133573757857915644948424403229955614878941573950135785492285222199152177936989397889034639472554981488275861806036517623025761537471559804762347009694455023607516185837883705137429507901831239492310503214743247014455017825390043889440016578238315046268235593742787150745431564412785493569006354359455901808999410931030413693678453189843113248976457413518164181239479427199500333339263543695669081601440792909578554716081309272238940043886697331114168270491915309297037899164799372034285483712866244254758812711308836738895899833520064992045473152035822730432108487627912321314340689962182218575332895388545789500919940210364118558779595297797717434793873478238844766997856282728894502660156750694161767296383677093574653547369869364646646309151165127075092230452892181812366807973554066214370796783067753351215346576136665839331577774168290281501481976122990476963665140209091650633942590260975070335101400113052670379900523944920385065868255176405327034261846049341632806756118782026783622811989835757826765045553574424352532235051045815108952915903885461905959906357548858353746631737055024818359496371865287611815495895366856306892985633631166169079882712008422560748976085916522309759342906841106540680163449361324496331698630128761784672290382332619829769011167502931418184198314794644750952485240269607971243403201207912356465742369171332781302194433271335473148735559891496611310624984732879076930580776650053764294393376213729766212046719856272717427790881020903805394893449850621811784710109386348052584175338985321417281772383448512608118462337298699025409159075984338311518819238042159641398123813802162960913392710118583406324905292076940718112267423434659001150701959946389598488733319629597770270872028607822190748510833275080691547243014828942558425747117555055738970256004749303469302885018877324113688943481475942298069903600606143130944335728045338663511935456725233263510681291339520830867661543951956200328435266426807260357716739938755123676916095790485480577405188671957576303193877564060674022315215403517805155152882155086848603911108191742369400109198626445953474850553214302987366294524513721362706102069595796928080887070969939797178694512920758991153214375983129066887448078830787091757386906117250896582243705995043487492157949062197679832112547102843388004594810379756912181792830064585426845225669249948971697292539007620614259371674916568803002043311422965245124996707989319491402947736015770891506219665939308030941123053018936123734195365347530775660674624351992761199967179611989629710747783410526422629487511841147231241014302721325157767798522643253540931771159052714231376243637605705806128527181187521313102045231753186702769709994551953689954834871480631524393648687376690405352313009845319735385543572675582721314505747299267942472976376555700173518811490688570939728497060944062824735331055909358931595973595523203235617493874121812595018395762350840350847704372210515554639664634539920959616979513018482998563334425276938412849377817878735456177860322909535592462829417148623508964357904093464341216029751423792539449755766385890638221459925306052980174696198645599973878627895367649422086995019751740384375963214819457988666819665181076800973935164355586342512900055568186194031648871003881359561478051531226505545582063621084508689580779002681433777376265637685515788181923694663799365190764054173831976971608392962526347987303858113225068876834436008003160624642735190872292824342146864199185697973866178214096070277930204113460644687764474895101359013452483091645348810913529733516279149473313839190037477890703162644590263359698002368657529680277759560297078602999144277773890341286245872992787894918697469866793217130145661308008055920398923370869529476198450711518163431198605586421163391370418574359129660052334726154361519355260616248179460129536413080626751863900858700324609776805987814735335890247447199319282528950902376693661643862434036408366661036517338413637210166650372597644935844984356159723954083759782627421300589414257276010193189210364266922046391913363962037707740014692458551247291973274721340770176736520485691087611325255142933355401398030817905594179123848199489217243945141783315543497556464610582590182503434327284856624443660217439873990783613112395210349525291024051904516530645993667957031701702457732950115066333760460214797489197743228473798954211130875207931274675952456875153602659413202545353849419853009982919767403228442871050096593550430145468014571539668529481245167332365995948738578740366773013861872374217197546683863636896948594321587505374077508547234317063019698873140827338264725367536029714904651559543772710882937847488088914904147156343355140776306699603513743109467231035367138326385549596609019682134413228614743152824809730310960122922902928500083061177405035019095133912892430837048293381574807634904673070532092251983678813333561664202945720049104839194592476052538013249359424840999070110795614926280468936638649563243533412613061652731703721656823376455226194782805286182758175275301632175992463470529635042004331425499069754002993087662476471214999219019004623068996630294797105527579989474347790042334065293342240655277034156378336870865442440793964107110234900728738689942609881464679385905299643564549857786672978370706065985258285881842142413542622125287257449561851099615487446798003923332674747663075191751280957837975050643521805686059206093335112229348327287812148793757626838926886147203875157681915552991040888019632644244438102538932030925580725928174019867241562305791662136190057495792371779266691710490717243374446879313559598543046955090906008327559785702090575525874394044265492720233161193514527964727967683519870863751301589958402019630939651871433891327728668487694654681220609477431941416864347840638230801738676568877531445542455900260431453700608966074947310795237335840954692652589464123792509596747279706123996809055329925522645245320819020176588702001901058757425756912841569406278285232425790078439257795420993390111062251960805896821755856698908645274519724508632427406459410770699573013117567080522114388981086567784778128058457434116369232794246854541985963185017902185985991578751523284932438309500239972094751960812006839404320044540145786266562710581923479559283183089678278924235397532864334836140200837741751446287860624695908224793112098922977032743364185212133624970234892560518974521311188953712612307637549463019352123730702220685936766577815400886647146545742409927215637987913987758645095235400687856334940174988569779528733616132048089294298618762199659601898081738471510875619317813871172873379243351076729657177641610512846229364524895735228109507234988902986333554776868985276314763331992893176980104955457370244733864067618258635666049841034498909298483258754452534545789675958633005554296070152574139599391890363155306896847720169577628767709999602842919045739574123006765178412438936441339102478006638575696548924366294844631930795229784597403785620706305415175470470544656301573783288966916536706573213558482338447606511593302388346797517873273677978573766179017546356620218862580048073485107697873390619409786683769187184622209831484881696828244015671508331124631053405641669518278357068218653192603818537788170225352253001653917982892169452836309377794904315054780372338499651739210303778327046404218244586497860044859671758499818140006508712109503223754245667162709824448451108451242260165228939487677923136908514595533356344560261346349021219940523362000533508370861835918119726050347534324329394042095106265359134860434282725440528712840256895771470500346287588699104472676783209903922995010262131479299772571163192204951011871513993640427158493190140209523854654474116333534777110666064939065256210969362117729342787162793188088759992864478303809003909803460362733955094755824838727561551422936927783850435117904299985097906732832859655981034439109234679608727990409532047984491266690818506267412265512453596544475210695283309188196531866587906726819018714366961652407477912320442750004373064140715566977167063358380776011987853165971595046039617968405721317121384311981635751905090824243641999751015100515309613060076602027941484743891508357045557401377071444809300398056616614719134775834512059024783966389312754684276883966817426988118076977400515203281725417262670231883368450199248800294678125573027214078512152028403292582139107478671932375263853205083609548527525308266566419238266644335712028953416110008948918548571054512037170166882626387860493407221351106733517068602399091648915487083494123627336831022126526315556927806687998782679018106635877125285498338009037678879209510840128276374247353809474506481256112369439421658617737112643948276140528044199367241265234167839327564985056340626759098949570641679952441351382994493011779976248510086761773821289950349103449272315680772919177768000364074751449686214676783658818725964706654783502283712189408209539748389982756809452822525726271501403932607577248301365027593992509586245419721951722124311568961985640284893688981851322371487520747594869425018943311240749638703895174127977909964656900217507424298773309884009744573913701690246298978983768950646272136402851597260796763613375771515205895996377039082263940830925058261270839377827610684465861221877126478120109198974379449118396302379378773196437385178721637413718350351287661123325451107651703568555147695040236127663658965496076415588291179852095513316246297650862004367371054489011269653062027259172985113218699107977402938891833902465261727036906502401460412629764878971370278513184890430847914002135972959646823803268425654402756489411704873503687001302160461034638894874575152578943174310188826560887713259672922567798590046457156970409532464699594500147192352767220055624049166110055001674634419163397244102559249283080839904842284592902375237113295975379060052921763974751342290934793393742085316761680307838191690388685238726402693460288364310259045459953858686953759438534173049336000192425740572244352305313466486645536726917728197766323388268583254191931382940810970578614612657816164922811163284963675234220200354629080817605255903236927926312739754066162277975964414556114896275163886753457815070931458560378558027488719090490160490745057832352951339729797597157626547136765447245257884226196777307852835101243314195529812984310714933807075975270717550012185154508434417369806745092122365350744486947446190062965196195960519399062576961183266625773632923301060556399873590747985406379817081314876281928159180998559346908302175488189961169496488171188423852149319739623282346644405742205406442284831892380544949666990328320711326715432262752862251613593205782675655618837042225449898847472258956155232150298148675038756011228700838789761384005364936926899670628833597561879575604997662499589938923713290272139033885054881946511521642466112251852653842674111612941938812560147907652438869393291645341966598328082735987064055905722337658792788566836111186624313875094392248009885901252491366400222380863631046876471555012932433138492665941394021782515794581266737100904036197816036491620070276739310029769086380449263746066746043931558497546412504609304066478766841673196099640016249282598572147158992443130286133380556717189714269534535533829377252681805891364263411221771048236485879584666996651727330740067137505804571273804203428883552465467858531337798987373157910762755116591687799712240759351509542159377411842080698077991527193841725509739978822147011165907512116279927631842435272832746892972486068564370553121441291728621699779329976995192425797378000748106246567001423850168366991152564652752453982094695391548693673078375595422296791209879183168223252169239266451742423974037394046651128078043346345926154882389565707419272625084504453286418815276728606262552188966180942546523542256764917857786715670903463950550870949914541507454872026840381977729825851269848919504017405617988005810632122556636272203661122333941009892848121202884348910877691904390102382600083418536150447664867866293171710932453865993895773304797252984355794349236815134285361974234962606757884811380772340633881357029718186603593041330952637075721838197809265915775254139540443945558182027311054046978596889474202781061820992311131025102983127376995721025717981653909530480400019545402939620546747797526975776680464812747366763778888795629845426400256495852306948645479263687093835426879843935666195055215741456997595733972102017329335868571843588517995547673719163152770559962301102584059559857943214272801054808534472428253619584199744013744990582593385072259598509896600893229489063975508987479522067679661458445744842145790833523907981175601894843407813984397646972691159403435325804325113468669212746367688969044588622184893552019064020047664779094067520037355475649823303146700472737741516838198194757705986034465545034368760128109153868947120098378552663122961058816650880253217894152838028983294242125394456081940431929855776043719720412790785950778631266306944517471597890654799714638924764654156391408271030461822684283531910820656445426398602694259722422356345291200354939592215325471205762546273090854681042500276298198938791218757170961362135011402896651973867009728151382907506027465742183401973499291663303356894902941170934946851504713291134232423050020461056501145598982814952542285207322849457390924817311605171978060988260492929546606023228093865829049622597487739807220498688533146877490127592424788714464708080359893085688171849504585301076360546300214954679437805983995269046704276747508332949402242638601165116783279961888385049823927776925999536744910038437362821659251353806762546810079694457755718321861174199361477284021140685959963027603549674317442431860688767819327240656592256469308995489772725021520822791096254562286024933532285991413359252846655350834674064859355391007527366097019936830028267914117629589034709775118986673374818166057543001566032998607118288115897480745893216201972828167696884576684010717413618027403915592035865716091575322139795762115770967086148099929384115197575459255841370530577231397344634034900099427729936193072409115278620472631594850383651264405635622728189164512930256107947523859167885707128075419586331301515744730497566560654516181049655986242049908496494422816813528327826251742311401774761419187605184563587053437617341414754532930384699600088025602221817251639123004799550785547039192154961352371144421668622208074752432534352788705576963958592354002716953990425736968984272455014305296395271097382589042038458354407646798485944145391128482060449179116455594797676593839974219354338833863383725195974300112490451212523643497295331206210281386083187260211746584632942224030988276237823709918527869725407355046008722903813530303772877635657279272885084895702846061893327392029772545020084664581279519531443793233340172790890575636785088983117715701624132180186125085640068146606327016262089894155772119875515069790847286682087256515015821798747084773906929458773031349533731388975212973624668498059509339074801663035173634563229309549355150416641750001544394814873021892380656420161757888217734506132172095513268355500944037697897667846031512392179151887854566313907823183003212752112841462474528168011591532619644949350055837167959309455375932525054653083185717596115505657171216230331501805260098271008671412806994941897945568964099851627213334950232774506328022069077897826009062131138468101565867850367810088265585507814148974633134227248649212647621435779750197413225630412378031029512475612863127751093753691957542305732665797576998904102730477717941058405757360626261449696949239308325422172069757693621684875525333981578448915765656240038535954450696433340567648273627258881779015003474870988765591751334136451705823060402577750551564525087500800728781300228787955479107141084596051915551512363526921568581237029899460452195107981866287649216817139473714348517465682709542973625112941361546736851907647649939166615612265805087358526055889468826515053727657753876956398919463208026931502157398587123108870741394459231481029868439432109688328242208038357105630097113429727009597247106769008802336775023807318000258596089016837044994205573507723734337134923663619791179379647568489725572135132390971912765361812938376864971815245556430330285592909858228824784133796432223275478163299673641124466785474000578744377836875956555220667964619594603714140103198971531350244730645818558476900998258491358294206374646178976397345966547557277638177714578849165581899651741718971894453275715869165829409121641991971426612291473757577912732908539337225552836339645814033974209674022096301789453754467072014622940261763189235345944139586502473356705355720116217549810238683316244079571121112422457883965201620103401129876522728664322997150267573129476851861981817576281023831187001755649050169552934993977739688368427356385007023386456893042413609877616084934309327545539905133121042076724766450826492856372801434049831670594453804160809511380647181801528253244392136465933408899046636358687262226001900236409747654769251792002337559014027625896478723983147524579119669990826582270049978751665542827409969506452981242094704231744360959864025324826783535110175813234768821610144481481760706882019948271211600716134876762244976923881999672069302415999162744165785585906586035619983086254650286733967941514203783956108812006180526516164870852168889277761109870710982660581166481030659324692391873976693816861203468088324358725226629298569006377596068118128780373003498088050628635396331915434755261652984994401755197091560593426488744063366294025150995800237843502905384409379699136303693441066307389476585826137328819144220699226400901355984101043392460873652712081926345760628118760122485502201167392194480174026961950725187298750214849572353893553631770885373047902199436235844004258470244018184610117791707329571708512601019824790683513487714900431274684702356761233954285698925588893655680382566201149565462229985442189524876709884502768434190615978433511410158004555919483053693450649935158754274127980398005907319982567177445845757014120524309012981663263540568625556546248745130298962521802970084791382030987185826311856260660059913988058551242043642788713741085016412226068415377324362038525469855081460765510934752069211720336334268583193620166659072167718079822000135753124739812015211762539458509691960814294978508074779828208702685305736035041109000674155994315216545072826414821748730329273762179665484665317111149861204745103493512001774310465920382203543811210828836805244539978002140284841248610940030533716166780196171333719828553488577994057612091441079178499691374878096680423580102623996262143010116976811804453842572036265688254559774602448799707795626502833236225895482987146927805410622997560445850500922270624697175291906517602278509295404146069256066591998037411965954488706896605468250594955708497296778082472906986262513218867872028904004315929686088932267967655181478216637401671535157463652196287744694491652063041106441674503470285477623624719312222905362018461770345188054266417730547064792320988583876270504362603910537981094047573590340312038161976570253045364530182104324245144587952723080922121094888487877360853194532404290383279815974272140743644498707835600690164159441296554621673545523708075703563785808947813793163070407589034295217546887007101091438251386809740405627300130940469793680439977909463313001464771990724129747926537634127299374085019872281708170365991365330278675247342439461996463109555999326024282766526911966289186654177344486665320369530375841329517490925339730575056093649766888677327468790633869486401972845512868519912740155975052610093392207265081939163055442967772530712244479913804062316007609648919719276302778117446027505474111672231816526388944649207450189804146450450929960229543777296112853993553524479001733588715084559623943223551517043973781584795649292043370188107968099966962787492748489640376317831796629300967084033550694988727939414833203379930397410162293473066776558954088091785323867863816981674841254847411890106992555801306870077055131760441868657927631867434971208101165583590438616838165566627252868396061924556059029861196454917702843621997279225832036642382535649777230025836137918451105709147050222348434940867131351294609895226118711163379197898665114090106403075253558274186844231632248676472572011294058141145875074134548823335771588152093802791776712355642105308215918362247397243770304636421292196275418007122986529536228671527799799259292309607655238540963473142580452232629659924989968356717528870912492160542069525892962149309250103748969697909055543873760342911394748492768245453955377098693798037591568872847201505595863850981973559445801848071418835438320468798851405169416279955842715343762814438466134484844100775865354862957454108068374814767858910059281180899667855194670262798733909525195742033491612158469613410736604048922056682921834287688551030685148936908922603616844897681054263681920622165547342868633113364058981571141017992065389051230280085084401192376324726586542493257676728188327574619470743231080495514867755450345911191840249096072076121504026442344791431744645130267339541444377077304898084995985628940085127675272188328784605868815889189774321027056595614353098566149421247336777807810332171737837012523011423830291326085285397922137665490230442841328063871056548593212278677393221196214277724109350662307659313097487990127123004051002805031450187924161510093018866170255832974167519864621682842126704695464250491322448024228292630758031861323200719663440812388169950010417195769067508424571816805854508889553921996875040579337002133071299034411023795415134909928647706281305397607338298206740021986241859942957044215805282511112599590262396785046757150645260093650331829198037693675353510739233811537794842378292823751124785120549621167723071052168737218824303793046991666755946031174430530650224206015981764411575750282042318328692573394696688530840219507296116301434391206643895323389353257828549434308221063432960641731255720288577980870433094122311764058544323478732590788100526584786571478299777183389717726450684841254960698399627088945699258724987415266342051220560414390215358829892881376219988566984296503483803381079757820189079198444697785477519080699339154845000479807509226142917767838887483171419382121197971883987999610080366021346490930563581821112364531326410212090040908333201206017737192299330263870659018168065029062425053361193311166435304601545240509239580294699233537570318724190269018850151895686512318490108347980408569400464055556262114803514734367256858024236157452242598804727642761248446484432032564589064014058437381468186435242515735461990887116258998855606740673779748100933951484315951497130120654975028812855149477806666605402378279901813550688213159543732189276214183184353142146911617099388304417243081662374745327000767855088400062021254404713615952439567362286985867840289910638540593745872588652683594077739655152074884102714803189722256112222342658348493593354124079694015015695693878125090050048413839130883546165510209755361955479985183098973344887592264555342935933503166160702669462832935505224438400145719734228030472833569009732514572677725306453065038546483537715402719870924717054315524884077361090920776733740520744613215425033155569152864915986812469857911577058477255200307347663243369147692347994275705838564973122602647137806494765902310749184439369538251398016716374112273743608000703639930250974084514042022763146204850245379035233767979990123003810583277191621038863491037006332381933090201200905469136403167893000385087787711799148759229902519157268451263654498751811164012084346815301882928250332381978658288387639791630186524170762700195647623475077118374236664491231012893795477707650070315865982910962745150788476333956293807134577486086018222743390941974255567634823791313695046685350572021340795933770459656329413481869132244828436951399742317126111022429767679806043017662262512822030401539073363731050807890919850999906420864190490863722704822402767239679515067370204491588790751250071467075045561990046416829893401892256827934223343271811912113877904743244142242038779712941019467753687998043112465496368784677820294957114837518938271944068800053573163659159967927166000248478026462569538217620048406362326233250522074725012674623776903891410275692884101035450722777396628209178953659537087133308152366308538456779696760083331034807621156813357470220304865193121494144031103067832396667672918554984742180782046032756231023369608854353768429324921678009800725783958716041948440832988140449090953396360002599459775646701115143746497741918568189112119882135710454967456734037240371887945925363934009985988902569735934876629907665931304636244482071224207723844807190785395490662962727650634223239989462839414179186430709248022460007938693296206081637741390671685615014704376235446865893631921180831894423903184975488543386318123950022649147399573911113155492926570768834897298923333672669329190167913671679026690756258517137086164986031396448858818723281719375806035501724141408910456510570659097092084707805754030296302829985202405372740894442810017426975151983565369778289281201090487351482620538998784782949147317953483878210291192432747898393323456312591261790795783067478912490559876733414022522734538014457491312434267065183534039908607035350267587839912474738576553780268418633305778650294389474012203067248627599188800223445123342132928334998084522327341091103136377229940443356414423890185621674183982712991625256935693666722712076335149816932204974159446040085573794702977518129711683133383893112315628754633043070518800375360905670136739183600155658913488135749920650742155849193194990882038897419178320406722724416738094065595733956480045435175413367555494963031807048276802159791947923142407425399289776537236404641948309795863585416260828546462224638925870772920841186626569283411204767737700089855524453263795567868567737443779835519976378220302627853301825524860150500745442549759700079574966134365134236129601408455023859189358742332423244883955038227546938777841562088836376743665902583644724116143265001634871990535709653806759696292467711108595112308053605809528900569655167148633428834848915025467570408517433402434904999408127030522476155140585347970217559032458588129807961131976964589288750441862824874195127570748231448656263889795817725860258003815090598305982312099883942484485466544699638902840084687263420704456639816648543709085687000721334218563266680364963500543637301394478913670576593514143068943059745948479071373567395217438506277714620652340752149321751126878553256693570939290924093446779804981103219198111835636857760330536120537364157041905691884721389374484711448172208090836103954233212338477008073406449404059965410192814304699793667384354199795040595286452546701186322938504331886195891854763791614525391136352354025032847670363435704163048458187011774055355397031913360167698242441281153205806070430299778303982876418993896790890123360792657760515465038011408585731466047642273085362481261233392731312884617443170053565675135446420289080799746427608168316661660289020434935957250800140336108889403675433085388067613228499231854664192598698099879574627417913280897885813891148765516316656585439954111587223948424380122779541831675444641008920148318378654636224799879578145630367548435578235743073468190434463459259819563642890821616823288386709146998469228452354144577607873256157174653024833684035262703462112196890884656216792288966759326879466696218127601143043355787244959763867984189072425674742813512503669665175445613459229282770974479876205594435883709062197774236687294951355614008574338241401197690774585945342943769790271109003917763339504519187928931084909174399165042077121190489526653450736368496631659670337576183509307273624075782032714746459113313292655178685413754468595686443229199845173272383447582069672209580542888370264415624765103467776372750356677932362565401585278420873163301110988878329878072020088641381670397058549746262482297672542299502103081148950954932624536067974773525931223307294580244752965525712595843563372727138108700121542953614136524689506637738978138363892227427502498088844905233035556844886935687334614675889327604906870306784704548285833854011734509205102282468052984680598005598030649231777160100183936570131326383478134904702995732400956053583897278282378580810045949425104093659549857394045443550504038246046754992477688368733788954617525587536131642351082433536184821689160438595961644823988458281712661188319580574730971020908241213071730791835348063733164287847581409257041871516956385176269939083611797796395302933534574906442083207662115365484841065883081844026077254635689436404997376768346554976360183230881261432642546290999994044366122656134395893608511424739546563734400906108514501109477368925045065399922201895131139112280927437057714709209249283803870595730585596671930334594644184358787741471164176176107399273247460406408474643400997203823027514351047644725430733309249227471153931339851495434704164164734922230647384212510253179712616087001474427347438392994110983273938425010318598740091339391256618285556399281847190168572790893553149930591076971799914634260010262877447546077782931925110564812974640805968453858037412916250572972045514241139404712451296754645987276213759804047323645232030976690312560090632838876761405031340441309975152277413131529145850473310991494878850796254182453126377874254406526268918205452801209432424128057892262300734376379094003511085031662419574245647487250455967738406601259615283585039976219787658178388297563778219721368300197713593397233766958636260397418042463141187676503892884643479521242591516376417250233986125725040267489173518814424148111482037540076497288105499548288679349176547787772805326353284845515595056193691436108754213227313366673271868845468875082798888705696565891180373763744643360630285829386908919596774346332356160578734300756375336378373349170268345429842590225643060734548979483110994135296299293391778343687795681639022645048795986845274533516170500581317156306766100872947713481433079004370627357780323200093399835559160807269811428007071137996079817643187347978565924745643489713977255061486691708035618580893798360968821382930553417005328529995609745951133373384457606740138691183464950418821771290983955451473738289145842122257976392556381247424936918646330309096067509410263337853728346746068740341847695062388518596792917649911745596522859837873599690811315790874397645662016497680737197282897864989192144120890349842421801389031349954221950804808506902874447646344573090278755338205276225065806485203862821128597606360239286723400016735046271993177765396325779137723078471890725028460043828659362187760334824905524374131663496962556556305227770749753134796338961156226029502337978737410162021107482151309570545791257333145031169883826485721255964495390151884705632284085576965779043062286823648610753201379892583346504797772870552891054700314769535866252474957725992193463610322772813962725455412804605172024478568829895801059382794879988614703800345143532064966255449634330779716195251082368391930352179385489721527258324436589372285648368804642284131340397018630171547599567007756338917178847048792559381549219289354668489650147275650622791470045027166186758148305575733270021791604164979884589654014969046651556091537215568045137999334558063584727982172172731434204479050991310616913901399152599379490319302693350273994420081382038423392446713792158427228461151743669122654545029095957428609218426699794528285333095225120686018394952326092416082309382609748805102004089750391924444286215044566207964476947212634392042435131024451775896157793480703609272567897709113418645090533718093246509251496513258534292097326685683775458957087205999378297901421595003530483057934376112393287967544398947614296489705917348076246806373833750068978971672741628406049279477796928133206482897848001112789269515076364234984906783189854492229637120797035804850117297406359853650844438766268699510695618317915050099514976362497798186551203374439709089131078022317565923752206304833820018664922443083517659188384080714347393307952944754174943354638209066541708408397660084448143857346137250923054554430450441043063417648068392619263251253445504792338266993203717389498676658325797477500219514353593278715576584957435794655662344792103910287321140167668994217883308511564606534307676655071160211110101538045600779702136992240900916539896420374893593585902833272377189190416315651779623982351467827967704298904756963634567204025639882878398956545154374488045626669949318141506196644101551794422740192493643366575911340747485650704315099656401089228903325914612022039828065041590358259608849391428038534266035611380650822686166437149769534057149560996169924992240199763892233891431334604636176515337970545588436162712921538668933829461413335968481470299175173448831462861868212399837145185927537851834888970162822251569073613902408069078565660563769422632724142855483477938359615146829132986343697806277564860294815064323060778557599086843382767626270230172355038914989881039543008585789306438979981526963910215529362143551293572529947301122373861609051707816462053983588284769393493160254490744355162692367691539620738374638866556590429478738094389392471450671709376799194410555921003113332955608421555550305525926024767484986773103069295659535224408896767355243375838112421637859153160968420011991353846968500481058904560316247993441793487750380116868629890146994086065195932985755140790786778610536916938871176464524920867683272452270166615639589297075670554551420205291393204469369894586437444260123596131419488799013783538378577606331186883607587751975363557033263369231792111042762524349389579977816811585280953949544649071166822875890499451094130641312056052608542111588583197410974988709398499719932381128953949554385680200019673094277656015826934470166640711851698734430404826749770945936273081788724834968870530119318125394001401248981982545230314742662887535883132689801172807177888921460024553608416344225432754882637259766189274501000755984144857557278919169019970342444050529363606685874760621130440499064929241461160581016888805217659424599761806438480090303762374949972374867991424491102867652207885784021637649232008148837379147486275518883983151881774227228843164523966584517176790408439110765939660721811333279071245918695488042256248985366793375383771450668975407735792864890122860449967697703590464328802319285271571254248723146595833942919523134653154253562661271629729988287633800312251479591289139459632211051840566200634074179720201728503984660343193986543653446556874714703235793176881535386947072272277581450157688128432261915611764742381292167238415638727201731902291657672340197702650883373179906221527121485223908026523836562753483384438475462593289114525530323643673522870738347114843045670247948355387881219210024879704562949985700782897974022358969845640135344102427659100274286332328762125030835212354097914088184623593102402719008395567806623279955334815300696393606796235275548890180225465474916323710242249432240133438295602947636412178792796758277514748919136328163784978636210670781781553739720514599226906380599131824360553544175071709846465420697878864586123783655763403543660134615330009432478805728826986675474204830008810765556236190162978409646447947957113729532564587855635927911189944471185664743167723240165795111122740746503763390751565130407485380554429997596703003756777839206594694611065873395087174567260940835969532665822548569901237638490086755795623553211039982402132678767020113661426047011547799876259891780133289509813403586753871909275825484978032372689452694691502486958377112583146241978902395327830927458812883865984137616984851099454973458494977724945396378482714939419704184380682253425501432534612141862907313037620944799033421837280464085612106465545642462045455420256876503428952081555073178727535841182536134915136537840737135841440035487236878852294294191420872177931681015610820784619167527876217376862058294024000228266023727216729326255279561622943431687298136575716364608570028836214889985429427753436334807035235414413837492232049056337464876644643986726508125712854261388995442653875349772968744330411459837936756619909758421303415949119215909331558954299331482401824647225313077492142586256884771342409923238532036504055577807781519354629181611367985350390722336233544406314465697375961832978907540045844806325877108401427693685549371566691887119714301077966141873482245701536380509422649120510328991136852504458319389208743868812751239124590849566568349380044997644308324668805099211183819687459535989588718032341633187518876864894850758148090183902600757952146940291188101808593327626688370648278487342132411261165180289696087395195285039516202699130814663242228286838801848846323869870783644789893023957033104530969611938267168404086955482643418655663388220905220037379207772845437602944252828751645268448795412052541531964995418228293709190849172929143359312559464910837557162603850709160802743819882286389231425203423162584745547825675219654009848961306642963075120907460779785321601842629037416964600034737565613630518737442910819485753428325701929331010825420122769032980644078255575791318347211807681535012067526724069882775133003579546793430734765503085567757140993166494039047990682807784267380276638739214236468963391309646889868101844401487999329659423442842147038590147484068023487803463484365044525529473341722140349861772239689788679156400659069507912409709245888323075901598138295923059496758949446663424315606856576163647845250732231585373815451387137851920977217163399679702545619011889043381428715411678330838581839008621401654430844837225367775648284521666283794186753985234656246174113197984444819045741092826889549723999642534775793355029203831681463808395539958423829128201853365498396430465444466217958808784759268620335094489869262204448779405678353202290061867349296554745421506981161955784163845988218359832542902561700264096316840047186803046827362705915024066467161067240377222981460880193910033311472452845423389622744129586717912766702573873890877492325709762577142540785447052850358934296951108131178109091817451405230696140648229010490401515967956798175692566777305910715802227707681227229244916751313223360528157077747412199062002803843429100054347475379135302099721398600682967991643556490054294355330786698730617672943542878617651199852873011041953638414952286091229914402631353125424592209235074250771913109332802890091019291784481970150597926966885910163493994017459710040085316750251546776485113678181208949884194140966476148008944264521757304348532407516113716134011227691399851651059331749209738582731877579431698932306887768584576540137651591260510949106351289299005580275277859956154448449405299043405099994908119005998789613515903585947502798800366279855728331906286293062758838501934411005781765194569600459223004600643747686011851845524385807564137544655139682195933153949015837512543452258309702314374447178204444444531840264221226804240963623526631206950615655287601412319644977194579488859344780280796455517731074495752817425668087168675457540628812535179459393147176050620229335340627055003768305557537556432889913145846271444339177637279322855372352205395752973936241733998369369642946529401326439547883598074609762870995424454980173366220854632317191610022077915086868434458574240659667567909585218402789991946281721976803248200864956843474909077354002791118516033147898031059755784915144638735242083462986631675329486112521976440708113645996347120554242700883835266015643061476627083503121268250407445901511092503050008602489347729691480220341255417794143373803473172968100701286143005524458768399495681936277802313341809614393492374316838179229633264783612906113471403960042554550873015885126299968991873377523939800604042534242814621648216576466496641639887602290674607988338161597605064865553187809627003247100403290483307781654377266199076592257727359367643536131919916161122931793867306601685859928094516452317360158152462118048665814881114427395058411888110587099405876120990103297833992411324103312838206256642068331337412829154166537742697411411201428506083554825010238612441898997754574588415851729499365700113207385806380823640446701801462047941221651496541716919413504823101354542797870817031598539043575595895439051627134609347469356554429012116680645464584165642967702891336377501671904835395962201069004612222378632499383592117243429153526185887158922556328262953330175985467487748390227040006762112545002389985550576393547397070688615503874951976866091179274402028756298727445566549121961874192302424578820695093349284830777631312607529330994234116203723772666277658003253912322458931175153538579337883740735304236731724739831994982506829371506609750842620363938505163280297971563436084331060003009623232208720961172751643130297203633939785415905236240521592419293373744786042252264184302722136592297115895637010615047319900016782457683132653813491961072852570996832954663871713042480157194980122145032067287583413447178287842593569504096918984873485580744853712430163479137494801963138090496715202301641360111025212509745870850779338933105552651812410388763224296783601718770606438475776911614065703620061264235387304953547680359613963443497011079412667297037488961675179035991583363055725729028129989069748663978602128444049125669403175478728142148270046249129198712559184487704748158346848157756993101787008932981726836619668187420457327028594331317741347035902734156049363622495753614870423118542929069752259620378913233600443302051315508536188823634211032256341759577971624045313725084285586601438342836679940662747900311555103570032356056252116316185371182776619266188740314715868481545712202751368106904513757000163187280786125728017222939539003128122420095793913304772126832270298912747657553168320835144357033051886057694769082845475212320963474972024178140099311596520683161943771229899113303816829195714723882862603635108775432811274333978171549921691647247713826836547383833277777458621834498799531099114810657739821278902886637679217186961608000803697837675667120176301630043795008075269242475833104201396493424356167062730239350049818131996614901029052120243723370999629107900589710085594031609682218473648693126217709599691446419017628507910932988112624512214873992519025684886741608720653576541350725905454935741957522270129181886857620192791246572718219096235999323641337314049197382563871702429142684742007983985316558372824457640861480664945075945444840756474249959483267970381197539349605064948983111753536318972569179630733516974199162377313862577246428832293994070664237597141970706708758460569414351276756720723313766928912136593988024049818698338833870472496226763618295953750994794695788027059348407607756083422067913167848088159516024061364722800406500847435914248320180797865100102994280687220586135748431416202665997830001410655435777122478216925727943153695736520319705005181168186299702148727061593060489544516395176641787288144357371856646237883706812862084719121313810489939947169689415092246745635312955391203597103673260410876725024625391500273960675362592751832528527525780787995540231205615003429526579571617817226414227135958408021471098216637408882101143480109266552557280893371287715904355823410872716381706061628102049044891084053821850871310826492769508761598835018770771544266175347107530689740855956620455484232451948441935534897706471184140244217102849439022468220051578994898898283132461103460968649251132582618119992769836245672489713168678512147355753081449671873920025348848513584472801274076984898674931819782871433892693696331706750976879506960258014141470842586196411447929083567318750206590767049562102365408441814724295720910865241366791258065649113509342720230622777207783190609519565998506505982981693407117907787956217507482860783081833048072703524032104179016493389535188412465441299742345801393331274294614004595429870457448637576994375067534550042943649078340548199354893282990732038278326153843200598366799900422285056820389870202073115282316570599224979733236774494043459248239747438072305653774944751564543289508004144213097614460940762065281867695628523993269042735408093274905093115652020952667509264959907384512808858200264551241878721792441436617672765235775427466532182144263221739232195913291906777206609343007942949870484594278605084499231362024411914071166253051031216587814291333539187269589400726655809261002900148454284234370198135660482149831164163592648339236783522369930865284025161170884396435056586073809857374546373178675412105297441188739804345642600371005016295003832085491021756523669184121307482151588939972728133680558591237389687120074301480960535537865082457433699979469788708498605220903613840515744540452212005601829212849185033242091392065825802167423601629074280502453182663740745791264592139368489670439587452054471533559050680495474082745321655611039703319171583990388007449994360355175739148628001528123132702099442122136552975296521494757049819518401624594017193523014453998129367493233353744479838371294521152289047848861965462238863434331215027102627672574710672454873792174976893279352495517173650313537030393411978677593674857824799181488572005828216775552217345914769039726679586074270880703266242450624749356425072837427559783746800614573363070742969940097488367582005016328650672292698531364095706123197174665893726836348897162858001200946779081024431873035376520206387053937723070742637389956934775112352154360393859290812900942292366472430796497120997721467421927224136683984174065961198423809158181067077783510466206240655266266921344629760937761159923090736925834816225264134429458896843531841679249479321147712045328878768750943674938887435240925493682007073155652122610615811631940133253690944285610838006754851522990399412155872793297314458501749140186309072753913524448651801937805873672600612380475848547241148065067396697141422035812981529600396962431706641827577174587069777637133890789359025708742197700970950966774936280510285653669598965314486571593750167801185050674413912908893295416843171709745225349427372500910236954452182944499125764976622637122048259130812493415799146999481120832659372419159000293912164610081907722178368870371652496100000245653916811791798666259681102623611587068415459375989092421498072312708326628820147593654018814769898068328581485784976256779821809986709416323739203319645305370672285419078034247791643170428343864804794250531093433965192064801904094921066455613544900852109977411883727438635850912118335792545161059961387772909874689527674284441089984488327220931215232803900560648134184554105868272422428695147433844811484855652224810932409259570940607656909256245653194760093933720225611876345017296798489010740107643672499695667805592714444465609224692749407276324034498271131482685032275072026035876746890622712621245866395013633693267819100271177259135292318577945282767529674894370417696415210542535645985984905873717821334730352876535202064586667172467707707566291404440271569953808969504179745393487118234193645870941378489360724139337785217514005416709057423116181880198112622789793104528001608855546530194586999366289076876313025886475066237622616291951382463883472222639277434049588371142747592450765052999748096681766715990064830575705257704367642957240189782148289184623370999471687163520932004993264026363969251383948114511528165755456637831044612449979838035157991406706072736749787747724978180119293413244755721226437507930756984041025901728834598545275701465471187782507222540454204803962394696767090405670305792086424202199153839334819429278701533284959300322820714479658966383915033972240990452482312777257388537151576812165132891248764555216215974647507191261407111047088979135504167831872350667725921313626447196579776293478951325215808213191616304783484834207832883673763429917584386828684677956826355916259039939525443128044262763054371706612110846947915081963101407672788706351730382037130129116071135938256296054568191398895535233584993845585454125171578663540122550925469327024499510024044368451249025328812423568455711017522564862495720158614138978555509841831092841880791667004423960644148911631956763389389210565105675913680986109287408652449675329873854077344281679410658150649688308707861583449665755617988148715546769256519093429489193422175003704154777653491064759819564467768711505487680116235402753704927605798794824099577625935628902784758541228921429261446518310420753828683399828459005507925327548285128245712505681622757691729256680198829190262116991293124751113202909311747226241965363937031652264423317608670178352739656211122141614946830738097229787989462620858698581156255734788430311451162752479232643593194166792062343742552041555642895547036653131383681089153306314545116252875386019901423189436592373672978678762611151092576871235354694825635743714873165037165309519682348682450427664921559611565640387751930985958829970398877562869399340787686363078022468197553695700835090985068002459427224790287106555102712507513692710610572763057018041019333718283281228384197983293384150354700766717756449580401998082732964055524680641268742818854582216553111531389062663566237011316645518934220421308409917050524188913739414165411052971446926141129888812248001971054991384227061140463503443055335366012917361452178724905259646723595206990862357847564518587984188512237083069500258910713452961897332105064229551065683077627568532140349070147067666969049138736982331388367693004255890694566770699467706762367778840511026718185657373300231390946648896279510034191768597265239278285995192289899197968370748130321448218463023028725793509491482510070252618900764890400041781493025309792315173406947660207915868378091725703405425701877711426591755818828855529367829191923583176225609287609197217864217577857220536915554076032113221646950831294376488645230838715436923783163645290579302235948340831211236339075076631638527925531859966857523227665164057351273328666493056536887270017673973587155648502142066830472161284620585200396891823373734765789682987055370478709815486056663225549145033870835610682530533659370681298915766948229518146101225390770542684745249147687858341176210251488278749638821959804097516341219030494837934453535841596986094679173282281427132933694669912411967760197088448457588044637548482103198664014608281636102188212883426945964562994059377450591458156592448020089067663890130033635164103928430597404009629785111471466814784177814559033939293182612495174611543201754453347232510424190304840867074456939979628763171247658024325776760938411812580185668505594942610693837418545488598080325847014564322310676743128684529192939425088795521893479848664489593594047690799204175637201838486164227862477816487650558836182342240543681524347794064274502178598278352978409085200999950587618800615362188717382838732137169305820291391447691997796620819185574197821394188789904490135159858588562386529018940907492386578142150101361333948922523237377123709652519184624687785677015896227941260186447048246086056639144480183595448959270513364847016525685181645954515691329607062574741643034674584327297206221532517297434897376920953974412289065042140781287982401006307993595780438487089876284686818611399025334776541127722669483392220132367053569453325398561023482678130666212583137884062221949415152469860824820905184268791935540248136252931245766412911084391616282211667139444116293630573329539818379225933441600556068350164765332672134375618294486360342483347722331513004240968846129555978365787981824720735647527210104718219838443797366335728663167119396926253427164135051828691698238665297376539944490554115382642906420043040702561882064718569432488597868888913235782656780407242339705027169676719753290314314626452080899078709237930660760692121802996011459391645726317310577537508520485618035111464997557526060011749182052340393409353299128551775713472708059920508219060597672565817799858328410776898904896988157033258460716379858427252228524285322722393481558507175823599610733807772927308131069162528703373796039387590043926333297580556984459442190271337069454440321124747783542051590065402812363300346510504490852296047312867903299595121097923506179932759333000849080087789815918888692193341135067140590698567946061686643225668606446668579951087977924223620531081697150991290662396167666898447086204714321940136174820317633818615051498902113961519841570510925026800137297289216680491630244743902995326133158907651091196798059433543668061550649187232080637132110963500695186396041332828142260640123434588047749491457875251016291071751816217570377795173526126985992199420322136652414705430209322434255462700914706395764884890977636924961424448308687251508996816562548921588263607336764355728142809859320726540827493937410653992760263322493166221084036617557785392524574896174477494844481705914377285570992143921152500961368805856835965954491474352204578385902836260420503702232506730907464616302009855685151428722192865154131630952993989474179008358949272614579251257103073920189117643465399235087962683942982056592394834492214041730646194469685986068028119531319090871807009426482341969774550781019540533425181588668128768071478413697928229054029847502753101520345287065404334290914101034302132498383815761767914540277726143884280861467175462890989472832482698998306294234278832355742102241176999504438874711358746622737032429345059389484059538911727043849247204988367504856400660209526625203881628912328415089481413668805979953956459540867625864593192440063565402433717492782207402309393388097775623669462693190917683901165441638310030090032730474236233562791113061991825163474881178188381822793860024386366553467500601063721534341892079059985232978513257569204009653820078508399982178443757202458332578943122909587233248502058346836605579402837230115590592291945535772719133187744989605898437335913345261195306997438946243080161322410729226086046921046207993954859657144502913251262515363908540422352492492705585110436825103698403424315968149009381098049742407829469460203331025493751295990857639205234402048856808422951393688532987965189349782175440145331030316804004116219331749578234388876253790262780316012205386180472221443454106424977469761903348828240186541544218668792493398314923633748623596895221496898884090112774113116160428690017351521890881236410685736955658708499675427813388063495108263743187761971078106637807850059860439391891449454331438208108772334976412186632105159870255743869775479257293727551654079105529169956913996180371626899330083531918326711769346610923638056482759205477833603621822644928258554634316538339670896354467234961636639763912457229961271649619134855975960296404213513977729172447836887091610615425740350830899255411845337799016180894993287621432467309367510091857052052732544224130750838167026984680649087977757409129236387393750347556022952095728173544734361107375974847095016114086140199098073973221884278748328227438048078031893672654053843406803097325060588189368698441791547634840349015560349362029187498781153182160242248079472101793941510378783526146477343375566176752588008674621659381753821462724863309643264152730993466444114739589840404644132599549342824409088555276234684478106793298320934696187008879414186442140402989443408844146983086989874918855729024711871762528528597787737034474169199726818976088757629033051657053402952021409180966837789111607494170108489428299960512261833921688946250782938276497216741544578571406763013707345156059453564024135407468169229355331853671047031332278802194074700356920574315574737235791089691235089866856342778456993369914511918080562083127516646521460345843597447769483724975469858728112812490424403504371882198984070999977169398440829594379235940884904828939511362623843274866136062836593163470127263232685916953463044439371096683910899677694367580557540333199863252865929862372431271605797236972037869221247399707957660780718562182005545224539230751768381633310710322941824259475076445109772044097097843568372359833781840225920644602178984431393907306017196879528447938154958379874889301131568113314203841524273363182428702007581708943391049779555866241783371518034249998322102063382082720102598750140497723887912251140786150881011698143428461349047308257488360647614614473578025870774076927721881203542261327639236834288678945433688433325130872734074423919092289779742313411567614747807235950488019351019253338797067257652140180443602345408664677884247729108130607099967340710201422194410398689218683161215272686984661718730408096005166292139921219471126304099575093513009904307791810395122752427397531732402005298741892356590222931856508148355102795918038063011438326282227167196691665407866589499599080165522555486068918006728316908176765115855000735140970969151825548143895485070722715900669656536244331745000694507835560968337373992116831220678795267366207727424498238851693276131587959025686545891608003037463280603772612318894025778545069563686837018505964218007737342134808217068841320085617101555500008204742002243373940318605621355398542516529795036111742974438908775164700151999514062703361283374958650047807342540203349741418676090510853803505655927742155938025452498437643154638031217026813489910073211753038592238798821111392157480426196206264599400645513707144653400697500719993238370087269542441212008099553910767125618723755083224733016625385905675022111418061878389266294963013907035988552480918132458562238261870961024739340934201516664983640432346831059536148330597343563757044730636597101048403161105330387704760435533880146007851811383392552397612631878733458454799949800900736762572017285109858369199210334911573523420361029408340821556770949259477667224266394326604839242940346245729689195974968159711662789938876897305342083013877642646775011084527466706374242778267641260928049374922815484914516326155685309926477811782903652890070028903504299572696627014217804704076158683674146397574825415844043462420983786375608467497944576307559175426456735192265450065061714662616975296782005887914815908730475088114711619270377221369400558076232517721673280584240059934157201649002974382324170351069682006450468682482221982546523420935631141820031862840977311427440174172191209061940740104496956515406580017989766836375532425147231749528282436596402842039892543355808497951911765913391308677187693993751155236415854455222295770103433010353620909766540609115184639778347891893576781039815868770306906938957278704799237294781805878725413108762284407929742394990747596428141595771887177669720324759371063707776293030763782943953760142451381903007024215190924612530766035417179725371644953415437615462100853776410683912177624836219841345479566219572888579514349437681787884500106837838736774604772364592075260076104485428429831955100242056004436273479053351324360771007266219450042538381417594498003834631338196178201505242732037067752520828911326644206237122997702543416718093558402838959897055062554956709535771264936959466740966996525122329463728950870693249612286428550595140837524071138155266970730613541437038163112504301953861638061230415419726737704488325177312298312208008821201460343259170653518080609503293026641409873378509920121675353124373459553220974399901493993097834688567425526360038075999476883497328442525245329382174244135429238074879024439275477389080398216588666875250808344150455062047116621084010991607933929273513925465275292400711479687640441636489301004660810875958911332600867124912908393715308538015816478244203530315467559581158881771765121121371010345262901612056416437497771427950830542164759033422404856133567597672932816701287462169379956619896514366751272200308879629445987614527591525492612468389347793555573435946262536372240774576293787695750064969554804021825112464703780055825884267724998108954398144315054547961546952848815989402214620872100074305116787927040835971056159950506895125803606578806738657615138143474303746800760498114510884187237367558351859716364209647187436148422889120784866125274046964142281099559460191341250444264156386069181899665644391431471920262880409244802272491253617695554957111937805944985507861622945038598950889101406016872715037848327324266836584248384165108539997892693592372094648101455647796606031576362644495501037140827896290827707070207249508435382531431511926559679669831490667168110908969976298148137753748592219012921312425248953599507402959554380854162321864607947430663503801324414202911270983733991630123158851550000125519989143640399213913879396557968362306741631527814155417871737906338672830684771117767743080620196289068398210679067098635709146077626733008655975907578711041212324813334600670092896934090144372602920972358252858162974636994841758833749500923465544428281123191215132435090893761245841300608744883998666601803539142103981718988197817412267730463436891861308619166406616350173954695007859980773081276187061705953494701751607777750685546223447564425866849869825035623709000549684963740726915011262780675488883121630766141050058596497421014337392328795511994803343063680167076571598198130494660255486410517042990035934539369568193069210827916744691176767969796400085859763834566296282329188425710509241174116662072862892752623454889676716545457714992064690048443606486133929341547494891373375234322817083552070832757720588306838646883033126055553507610881503564758925276283201579066977374961871220974276011996588650418813632428336891366340384708356577020913883192114842437813332119775181165322639210822455042463402148671534017487738270065263503654370893508122250457118020545460859653703273529907937999446926294190454759434318933241460931989944093842951875073468664476154989541066682967434655953912072342172774046872913119606451489907216742033307220335525529900973944181966780545200980277503290352100295132591486563642503312615246637774050864946805014684481805520597325737708128500405178370033462491846160274784091966605958619031902899821344420163358596875187566711927312707755780534421474911868829028330611015745282603859203203611403717406352242858195086854797891037275096706173377566346447245092815821685818099877679518240942722627612624413922660214184093317142406833496469003204521657213173838377288938244063897048134792267767432438980322367040260651990142652234769856807809495280751584798157349454837046492087753070113041030211501162765969220505611987223587640901234858420596482802133764404269640031996623637383103144012304939462693772331775671976261348984924878618942512023575812975209351284863543399292378709283763224900626777779198215954057671640979213921436426115054444399084944377892920470740694870907613388956272438031539780889679174936611361943816372340895733576630916996536586986940865664293339034334775929812309595290152705017608470462679937152542180166162821828422543036339389321439086593401179173422491791011520265392904698066336146352091303615153190210577197711988646056341194700911888421406372833717202096563640416156664317608043813352451645369810970368015524009986899627183268467299148555801768045020519110914424312118698103954534686406528990765007693228346103837006489356903268780462029013833276267174151161425149299833901114830165753855142857440643954060445566194755753867198234281687634929139444264769643084195227272588278752835834255525713318706163998299408470583740843282882044085605693291935133488959474878485200626074809083955336030412748481205039824291494487617640809131030948627124471197647044146200941530646915551593518045356949042128871262510197726008935279660470267936675007376569055201273774826407240959934427351186508283972249310600073532647638009748855445617060630286562453104882892805676208951971800191873116961954237015463756585574697607412505400397986174860907307119457776096907037735479372266718737407912233658740510533536649263666840775123039201051669801766000417153303860477653581796286664517186564431222220664369760032022321464049568923185357032905744588087737126669598393960655394013648327083724540199684776834919837357733895489293670702438913254991712115635635587659462931275527257672558946861209771606467229759829577992879661347803093820653858598079032866601440648156116747959899977640155480625355408722359470809286240964010675171146050204796572405232867924507156584690647266069333274925697705885575134024139721986455180989995446955583836962161381049834291040987032476436803247871124569583435906582225206731336560094161757358645519052942781198041654581192646044407199125197637662768013902982040001911902279580828533683967981424801813170739644423321575275014082665492465063292548713984134527247949765691393427209366770107252938670620888668911493596199899312785653968465935526147418709976055397877420092735027606533413507478229738468266594009435484355433347577212842809902131327418829767397365328460389520471802417743489849078469512441719294892054605003215966690928986024990351170193737930375346989468957594100692120879747469702965784156793626862531328836508740849269602341566692580221837222837883584758743938130985598517060028520040742878922344801261105752188731657675693187530328915762513500572105522300769487072120920646524916536905215225518365960297555006193598582972442196049951371072100140608757606502128622206305447119445439650098698186860714254467199818351475241041661480260159490663661482731846058749684472333382728204299365000672752020856459773493131153148777532228984308904270196178540489544022510633045199535322982193986188606271536014368281158909849333440680534343623704859128137925895811081669769930491357243868249448366106851531996975498573369217830000758992335847681932810212957777676947162474303489109563707951041380414531827843070003101567975783118121873784189808277000774687207665747092403330277785164658334285855695765021682457267656711818076982115020626184012177568441513437714021090649875917395375904303776892719687889478982797872767111200865898485574138695051212598362564761913652277833132697811527874384368007357075162814556565659275470675390160600364256081868652195236301851670779192626451268041626777174569604069157068585178664811802241150108039154917803611007526734744590479231302883292473730093294069855760580386063838450006294717029297149127507063410089471777894696765708742172034740514487120220434097112072872633095915613847150604748608547436704659719683612641423713700721843486795106495655758763671417091286838508324530115324534202436951728496513878590444620493742534848523092485883252065572776929277495295781999625699575614955246204777007823177658598478166028874649214524067872606275393569428634257948816049562075591891620653911353777466356403854278181126707303477859525199905606733572799847753141651977190048272574238730349874752385714129582059747095746267299655566934272029207416652742074962361378296208461758733444785297216813782391093498418545741272496673297593380911462216880616824785630166405086135873992302794182142720515768107151188855323945837567394344066196427768173179036661957879703882283297278514614564622710548631337400618309835052203812095528512780643269676734841792567482032658911640084157445226817396999236311848308706549607351452709561256957678278331885432933355712836767458587647076876421990097376587826745953489219956998544756862495078055509382467544580731620207937345091429623626314146490168406743379163963127516876184806333264412903026579724726220597533003477598161847212290090199720783320889439851188072732874466199245466529414846249085698356612292488166524568513329432001228197249442209381668657471753806695430046499409157950696073222166340303866883450202210664627472044442886945742876754450570707047257754194249546924989786548811751434116460345509426946652277834427044356423302237249082368858075086605577259106186318850121782468631626544294656251736216226439565543985072573980062997857554252632731243739181851273455623676802816910576212620789966202269223994617785546049218432310264300502046005529152481655443235745762616887177075477592513051206253338921403845632347345555171503316046071558346175627143485837485416077295787184509299815624808181159539174338987488894195669560777710176742093508750586734946566548310805693728488001902498982670216088852183617256621651635577984570467769510298385415530159740061796636391157731553607137171028521621780887365076537046839123472905526382793252115807211541999082065786230049616709779924694376787532512879912296563517237405264469852018036739909090084496190361832455934288403038800548049954385517486283217970088581218926869827994493955176854325557954209206242468038452826797929889810175720997136924642625692268475593684468879120068411171158843947149853997627375588781801507466318261485710874194058027103558972030580691991247308590187248844030863250737679680845804604732269420396828838716279131508527059760389196853684189918842804041835816573122999191255273160826940551511127542092555622467375201980344039856883019290581324194891934787727511177033746578601445939851879122469155438941224635351109105344708190988054582130998143590140906287484214319309637503471783111799153233157322603517762194412064835170474981556384125908332957232032648255581314763619912886182861867068659454924358755037752933792999452880481003162768032122460608924332129683110565128615941669931058611517418754319882507585144681643539872275118956342130296824304403110374907509203644286050822370468965988260289405766802097144681724520337419011232655540199722398507497999451776557299921848337377070536692350474730095761989600755496457844120358869169858106460622754935736502769541572174637325367070096206420849000450291592379712277539302394314305769883084195887557269876309023222393215325182800569964677352331324201223705101709388230945603122934407092467310492747990963241287917165772280038519230533373225072842989444372716106941328197587207537665102961443987380291656893549617678110170039749147906139211231942615960038746739989897505964141225684147145108866376553888114780336984965855734315016147489296504631912643369306986450437361216988519153993105177954632274427667805710469196852773643847098525621640891080037321441734650819872680996696021037091331290991683087483291550034465799906639475530182048272159296910710719810193181779738687136146706610350553966733653773637302899979152030703702764519438209317199564122086612906823564582723687377414273162537275396313140568707723148145905856537203226580475889202000742975540325966784982658887011259436000995012074302624115918925200888372626063968354343910356244058907931938587176543686214259443310122318273541352887473274639934958216849095495415475141051597469383565707308420068501348198664148062188612956641790927092567157187902051245146173616691169447308049126699594199894298922838181565573543017875764922507105112087535475097124001144591305613910642952409990393108653849720440899574486621457496601441057784639442008351375999226817101253473352733224917557718356725339269271682699851839769639515405978431587481896313319574520011651232662438801678532107541495421931772350795760049709416054588474518655605971053375101138174838194135848859737128812508585826163625202721523574090187648569329484691556008466778168294022162603352323907923965963392311772489418005576056915832226321775656414221183645895927075521456501410913366967498468517871068112190821311308871098143633936447307271755627777603702320874531102912152760493932243368183048126312464830708886505502971210529198446173916176123188078177686742192764291269216851218505497023890438370369343657398889088123943620036826813503143502231824657871887864948305089931495865959411821845508129787673544769276447348342819429449402095365173626213067328684787589626266953221557172912946588448693955038285552957210869842777652090396931210255896163017245177749830699141083111424574451957567740399594438469728570367972310071866563599883857290262673125568450190506644511509258491718381497886494645293188040504922634121451764970592466862112698835899682316476651264054632489273643843352875615994609444368438998437028375722692449628681838380386440728375765419825041641286398964171159323125743434791511999422586985757899504165605085229767113979335761690875063198287899684252977481479263566933115879298068071327348035499822047304151793468169686611121164082588865958988625553808633054431348651674525415847832643733318235807620421357951070832509643058985828118092079645199988038672575144978914289922563121034549867180908797246142851606049728035605617328194276039320987930761986363762593249854463133793148143663015366717832949295305579636195880531306293627044554755044434317839460186076886132634013059508751585149564338246664876480446946732951450306625562571025162913725047113501290845253636870219270256791123266656753919348870996229022795735698297391070835261406942146245692219023405142870311163536255251312770366364216781584944621166408278710179171581379977577901345706993617978229082834814758074011981868735461053499382807818870212612780788109885097018046138247158239487985768356937183762932557486908066675813544995560182290448530043192249216507112982387063306510737552608926104271650141668296118187330809485598839809626057388739112406349834450470924138373675818057708001347175619698633414766895956512455081414192968041966284755275589398985203552447724256437307837686974185422032526278547717272950090813413714996888786787665620955598267065172837848082457918180846029069781472997884888734245513608467361748472643887843822192331983517892206453497673078465123454154487127716039909050868411612762916889101075257177947580935021563320686586095305883532720663399571825098539387380267350737592010644784508022594156136357595578710531459470486574146410118609553940413973755666807544533941513175626493206991584929974402604704870430274395562316470837721246954535714045128299348866394078809368239779978946354877641919071897140936658261011033585926694792785993314848694645890014258041126525175639143282779859179046173001397364117094597056943772751215541023508665961749652799620549102604453998822201853321211371227392033965504049454980342916908140309210662568121268741896893537583170844434330072134567212963777581113375505664193836850220472065280523586474141851774371386394366947200621629533877888292522876007371213261294630532513943119738762322946734303779216450197336272281754844275458483045397493676326549568842469555942170497211471498299044934533606580235942830808135752918726696565716868478984242605392976593142024938188026743799171072883634291788254016272631932171892593238138050570843302873580731816511336457269079141411144198018569614306027992700019409185830863346022397900513073778006919038001681340856639007262027855662372580171230705297848797608257157537689073215530505019421003360997051573281998159158313283762027486212411823987688714602567672066922995092312039357254011980630399046492489099547890498402438631228874426085596677421735391680916457633412172885802134471248228889795777221753552971541699794477299674897525187409231601227252024140002400261326329393318813721675662167904087010492323956879422158477808098339250467094523035986393063847409803724307270414604223838969440893456572222606144180003358006540770932519571758636999172703169379527608555822788235916979630936834967710097189869753688101701213151873622582475773993536047417543046638884355948601182540419929353043990789795392401683268917979210595724713540444364798537887230870304488341111653792948466596323525806703077886572628176159410259462103695051082065539112305529461414933363066146284186164165585239547002763529736187441465020884006750551542280839881352862184921235034766297120941284525839260426183913520541392656201053823422610854858907994922940188219571879289893864292973221953687722244872845823513686370880615561050517479329732866112531264446101042299853018589865889611370394686939678720164057087558930922485388408210831746284801805843203621207351485359543167359156020378729808160957897644335057907100690134577811082479383707172335105315350396431570579591514845170157014305268410915665532263125123163889758076523917531862214347360023174975469248494068079267671697295036899061927548342715324556543503099762228333107175989770700123509139496885718007776803766445351355352459755287435756825184884711146696253096207294757142255488371235127619478682110265161922457766723983577001891102700528015138775799021849548493631993797361763335822670169323171570321172437264124574088666317888623163309063954113203203373821417635200589398894125054980520869381669232379435379630918431769914108300843621954625806834136529377483574007151609782200404012244650407387687350705547309138633891889529099663804841706261959746283781362296014166079844122540978656205023691109239228818030418345583844634593740600645755375143570847481729132552655110494611418213369635711590998163813673531038173909530277512223832931342618367984256259838970616951855518304185021362856753928473521763044290463250754704826347725974849981244898883252725562589936596366255223259339616559914177968192870392222503800345680943024800669799250256565446678959135709269020621131386471085561941373435855966762739503836677019497174203738287831910248595694494677244090248008094924529536842707603488434056233773500611131385210986195220916058934625661157720219996352071418404321787831153323740488488810140265196720758677871153729563583224361586709488538226913005742465322317056532027424151088473855980512320265324640466483351974990002460325699831618375088060954219597905206698421202161114293339069124365081302641381845812138616054073528574076458590588602841464746673089199695879034977802705344999984537826261546868237414113997668629343562785130936633156749439572070797205191516627659894811271466008198406071820521261375141501873640030543394261761018405472234177021627070372782728994732699520635394894483244383291692430123106428320872494364911168252504274005256534818814395086547920678091450689531669714486637596702487087640734697905880836235786664502122035819398550173491904798110295161564893438902003094911253450159230674442696081557261937594955250423909984065516233527545931948880402981994911986655081697505365872059220377751784773305773996881391636367795386080104405174398943284532686078601514907277535664712414348983793864499482522686373525232973439618030124059010035837643282372617367967017962873001422517580237942667529932423237114546530877406628798538265734347851135978123742823618171742218225964391236108067344962937356967979183194112033375694612157213794693535714022463082346960389093813698224131860286123141496826811975608371601642206692463916663835849961204411102485209555269265919323632328143919425270955235368751406189645651902127321161367917943935886216329040143719196894484775230129929547121992039043505105018955804804473363990786945740254973020937026092457672846483902290603421119328193959779822153799943031670724828476652432205064608936280623785341709635033977373125424109926074505916215849807573384698144436022156632632981688000927674375189981696525914210703753054452701549411211600493768645346204736419217439970079561910498780957221214990840167815545489340488819467495381503940429954575479761533139922970031957631554140399881846547186536451006883321275003362322719932360581633755927764360184241771165230217558386618216538838930861476498879589550578547401831403040729021904619052078928194962806042360215907850840473086214960169097060281484555306502810769560407309265697731015745652152965569071494217690538296470883634902720143571072286648823759662832288972941492164767244580541266182672097799365442165722698317270053180177879082134351858299178505367790123644645571765813535591259452843059166761665485402234288415963763946646299455471333625070991725293587357227208285351727752385576561258140555467887140867908104373142427985365423468800919293689945829069929611313250707420459459286543797448184560606720262391392145200152462788595386266747077904393189955918376349360841183736630076264476825477256107116567709959168086945298315459142927107663354709016509679466468816027088219356832998404219577534407979132086223483512294771340194948854070160306839354174555945155774307160379671474272554313138038577678223645746058348014285225960327857998384164164848153281050543945881577685923867263373925190448120536159875474297275673994186034181108109739202678932477852550430868966864570253607976294276110653050990881605948408657285778817018114442488568659417756555772828975983191781639092985955218338553822335483910641081879619837154871937180569709337621069486725072731033590497880496287389344208512541685594730252887108623443994848710558602296770660585133078746790459990938041910547787155831031853006768546308816652559714042809409479242457445770198665946533409836347757257225400053583302599168936160325900173214630713884668669568874697171709710949847594729334412673532263051573479505305518639393303066685058696271509941785173949531362750581818869819563727256801769584350528842841101879958358523286355748278808741298163069500160710679389462477727879680702002235052629731376745682445762850992119764517961608790139031054347715996392581144439627065239645446550462751709829026981078676584309743671576268052265133004694417552078542018782411462253134877967227604591421766084848731386103404172074889871218526305585868614459348476970580573031281154562118273113741084719301731604311624771157185353796326102551142415810096555162743356523485074688422591783543047236868820926841994604089454415944168856418256915232101599746512196972129282683168088521356771361187735249898864027567829292721986481817510426693724723008031073375790070572933199980289139300017916887517143980475699829712972623643044109238890242557574893258626245688039519974481109209697661676056085715606234488209802178295627914591665940426822210005853723555819447228534718450831639071967223643580859873563877308234331187792461388632214715816477817531351570343231651445125313382938322160932717445762638629051889906876577186681592004780402665236361225859330847562279796366292945153056357795342740812883324919439536205603025466152220513912554667310200879346213152259463505798883875956234449575946598216963993795453557128610236893671368914193359587434399463043046826545809716474792908134478893105497148889639780250401068294950318898305158455824471984137950235383012182550749021279317362723520766930372282750627307534164944983652121105530603862499574793089021314309471331433315747284345728094586802144337672558967268919404700464815416602736698715612758051268781212102369833512727610065687741738205185389922343882943604516022064318755448189003468252930512316036222869762918304022054224986804674763139575673275021335613775039842179188076272761131817105112503680551992828045528747624454815172445521145093650237473737789459530817298300574018345184819151363494359700105742484144740322057433976048062973894401405123818329692486370697687477390586370253306798363812657357688652209210950238634908132112214230608042118173857341126047789525152876571103842922354107217992642741191795416970073392683791831519934854273356029745058164826160961996774576685211142065961274900083328553124846497175997114126022063568342148987552376916433530201984929699423831988736685662475440331770680616746491470604178089772646261466114645576754690706060155057255390279504305345062935906775312715630953552968591740149540777076317481628825634618507210487827715677947474611322586226327506088640496643497096812576696728588851830741179726431600371364246232665353928576686116217732246263760837406323654536800214572601423162979436602173061565516724428402137644261395804408699285448790921730608248079307380179939250862312086047423161357335132995132039807639105205808957069892950210876620152639948859766062260529534468013259238505828828867703869073578584719663535129832046331973973354361489260467217551734007029142715602694100859165973052782439192761365218946090670672015376269424861173671580958857170777291329138172279195901269351118798999999527471523119888625389441362394522545072746201762831937605505911054147131214552314727026279294215533683898288260595615687239739942665704293467434345046896852127490700364628846857706838400044134640315723322329144454953019657612530545649922986887328063565671388624344544025046474320469099620227144758053616008348257980187138055600378971951531163633243863803942226020796299389255427633261688798033564596759091690442536646636526298417229058214100450097589401620934487007430907780501720321111374506992195834918909603012032075913127541196594839556039644414883473581309110965468307541145643278824750815646705083241143655254806480584600390256959987081681456331982318710287187829683717175443714996846825478323021284507194458610108768113802292533223743440750444822689436836173627688809535937431749242209019955071813661994610785409188449053974135121472038549421971591242259089857556096802366110986896345146002647156185819779538650898265694716897004093684178361858608204642627610697016015005928193333234392524767248680484364504013247071220470613477193622254721651450060653915423395640646354866998875801831087527626523906797881822683480462271516514185739703626044351354219704760433495607471883647571227160040184470958382373985798289886548358395066679814416497907777340485753657861569985880391361618192618876167213763007076136714826997385448260204507863833487760658565387223064089151512986378732382798348573740881829899575373820927453334742775665943615416625234315591171675979081368312184179415414773232921919709518588885022301932990162947400349683529637098512288238348957807128365614626639707648548460753113233546525334751692491865526876215254661083392142540119168746672042750193291224367503966779126114055413222062811553429657683595287064073580387493156545628291541370124016800950967783741188435101795258371589515670590044724183642370662982850583027024023144912828597174618793576543264650311738929507023327839519301506631209216274957935321236572343159846926127342278393033729583928888747150008084492557496577616117360262550355918517333405643804128696324810877306397452044308249722468147352094927131596685054753342144209515662728408873430893556983449611293418811832151172953409304034882404978492514256996221934491564335726025916713094655772056681498636399803268475013141198030951787680888240197020660888813726671819139992838507598611528822974516513881993000188233133446120647536527926767087608887502147451899756967630492835595066232054763782966033581724406345119460006405223535974741951833944131163092024214046886508349978330242774133497743278910285351601261885406647200900793146286700604511535503943319166207306896249722461736127977852314154904402230049123100146216248594046662758941852181917185491059907731592339075495276993305163840450203857585057842943447390729533516314276283638242470858089701614090681074962070105746856559620834622252533074074384477976446334831056047065855729697381757372867657907759092258500025211422081025404250673317278434933123979048147815379905676159192038399048359351681415283268745292142990953726590596949764992225119730122299703819542889940017370182772650776022132255256725106252478475387368186090999169038875053539703137036145249865467646962580289434003700728715642468616607151632241741050676045887772254899932394640626953652449891352943749965167742178644814173336970261206667602715820743935264824679756235723743632651135123400701756762420818006934054367845818656291166426823956122843261889805627306274929625667759091717790160742774826299854753198681007402953405401249904764813939526217209428978237323879450257536983009669631755849896196302709740208427632264435087332883580376095359499967126067306561133057004239445842328960381794773849138374125335921212288238067151913427306326508768207358668482626793277967730368447187925314564109523446071480250940927099519380795274731712895272581621311570644868136491962314316583549058967969993329676559703347642220857419263370196575911147484907852023209756467440552203366347608552887493441500972045769522863421961000775921931534743184476832912811399686915557566926371947667296642766816146147686901355146064664461398434482591997141006005152455293660613075537216636950357538161506415270791963471764820839070705846231925413371548934770011972037807480403081497354429754227096773265632389343994327930594960883122639043017014325064604816719969409081433268116551817437820934577556123654548592804157478843722064453722425008205664045339171569192685296931277325148484002318820541711708846099164183756688432182981794643051155481358616581772015859481362244882903013974417081085853359844631688493192024121952330014638279811754506872293786616847805955349942228264440265769195770148464243425806983521131884887873742540588940317469994743013353344590783893673441237124861242182398540123308319280746313333958545912002751958584118849965980184202329464008718445516010128416413118706074277906486740885975033971778258667837036425037959596443233354862551221027628937660347334827152169418165145783816769737284471262782548730369803838952460146108658979876005253016804972616220848481897836393044396357844182651779303125921519630416870857404955827329602498254021181459447091788020921159729847294297072349011666094800194795608799859263086322720741332616547719515815548772357967345423497496539995635234705268009069794279753749027913083589621524860316411165411447808969730928042564555538235117670972641404878469035668126899951176131204783783759185703035696409955963950592388503057625204844215919921686565613098366587541095741051711286159731191536345043090416327741485740370040364263634467219542076349554159782882793033757980820449514279882497076446954965315104038420096598077894942768853755970796918440126310365360256815925879139362880384887418108632625120436747775486549559099616149604127266540943704646991355854265558105525635517537155695759515003621947249394374413280566695408757189406988135841844791136389721899790309205177709541945240585694352978762666310015751277862114753694453162646231302258168012975618757688929302070329266395364038854606567130121004833541746793394931689765467045919281324785572000064660488884557992585233792139963329538500850020635051001793559865839568848633528051368181615317845620802776229642465045927571504604550821601367906095832189752796511257811886426051063991048310154580166115286728570168693308809939216975928746190009360128232857572275657442808691781728647624890347554637388138139505227258577640578809453234756878245033593944054451357455524364271000637223521079153289613355014406694484756270111472735256666567161935472057914434366326441527009151382329288617240345771717709132941299328517534778346779520313569701360084683220340584815120265901952114204725653428099961364312050173110729188211115650921422513397986008594746620844534632298734772266871746456464757218986195642714405026263079706021453545893563019031932205371682285165336234166658409481917414041862704259590845479552878621428898434002074773281106728066552496014990111261609929598860418994176310824746612970015856318728392096992865722906923873329178981768975719050529496565160756760743708507716434831700022257186863659899752226268446780258279150662481174088149478023540783859448096760916658460035429948416147586333891131711925192746066744735015225113469434209067188638291713976092217827121032910488485373308548884509285349470053429112311067818592835477655406098688842616137599134304284872743595470036803119978870693166225767166025998158889806736557617818534147700184973136191000477805807658043672118983720338887963298811557466642786364043345036740501246764254657745297140285206539645715352540255405389472826242714379821359927953271547960236315411681953799750851303470256380098776831854628344025516278457525318964020404872560070266557784615602831437037657682142053215995710691521837172820307736886236220409585571317942937702577486477023633480702077521727483851324817497766603831208672888888770082074895898748365107755035392436658318951112565423869273478750276201153970021351962429458437303018043143533398880175820552997914482419359548310587661829764122998177308946837077080383217953283728597369638526733989068817384855779960627054281284657679401323407460788764417346528108345243368155815654280300419052758450739752610810030360760643556801566234214448501848162348161228697707728188852801756812889492744435494739510410850534098691197577728158782625168899348433432404256581903122685536981886106332379137112261122591368436743562032595656222342006030203843397953639463523452365037301763487449908152486276011217947261407803186972953510631184338286017837531122229346036451654436403550275146429330937552750320040805368345235010845459267962160538192813125459960718772957088009811749120440972656667748503610030445148436367001098453387448939411011464313300362425997223052134862071209101175981048441457695063730235849258656140492559140932842751351874555300508172267300162759752749214674149319437301479041101706823280484713906060848111028312442781386939268459389217234840822271601578385585700044448778505066301326655523864154188674349083615382713980694871951599851954998015158723073851318636108815989657610444595824605900791665909547547634764926364079725913511008268547260809812500513219127918226061479179016839715770529604070492269394096962288501400144670823443304388246393462895158435182257590105956439847770927543948331622719225285179706586239495899929365901572148293745592773481347836567835037825244459592219269609545003359474381307528590416921842980194161771220885027948941563566525542906394913053960466167151339131296076709038329969614267046666450315441176414668256526982536649461868229513144170065310139421920850107665452320896791736577092220121968651245284478074481399721114858852242094306210791193385503954000835579898620920715465380054605447212395802417557942531199417234481854851900095436457477831422715175437952440719673677301619152067734948505787133608437808558196405488159967561848959813803383429094968220669032169134955926397236498997948361639498942356378754228234779738234739282464266163626667981748534753588921388826363485908152782008971336514794731530253515836485087352037967230577561554434688217155869858819719627662695073319147590046042349826771855817564642899802439617856668455373008480036785650360257618612467124251013388288355431260797508758266299855231089900567268570083791615063726139289702019233747001785081061412105428903964959976248505812164487416594170786647005746732153220356958606281881041333511394763405339204990684071105754906581200377841010707793073978885596698488803394309280277535724698787231596373812236043762615223055817908474207821337157939040760875516923393944540940320061122243847006772298033509430384092306029812541995359820562221142616658385788015250627622609315972415540444903712107333774595084560063488428834597811181921634180518358128065173111449830676331404367445708148842011599926320193541067253978953988750793865132661148889140750713638381160170120220215161815912408780984793673700004410149756550806157655613783961206246679263054363411397170127221212415028283575458378456796297824242756304196914306037803676169874069788829221904812036484644680180448166965063706164941654152741171945143157519703413717549259399379493388636322767903259115147812519889423501543553495636290354174325996069911134865159503015484920276990182308061627594424760341209736477726227293548353562672954558927693260106825448586850976686306863698571707913450543729069933098182735125924211486271756330199835050689686970504579735941540237734464436489798163920994994615284381573771176680659824656163847513071151921969058058584131622040852185354228992449340929674860768522312989028096422890068665116866801267139002906163524361766511052558376076256765822493077059937045944954220018362845130016132706148428199704418932941266632349566596069553298727969139612617209055205564531173681224644983723740084322732349830772732696179682320671005191110458817225411537622430872366128477029455592318178344609147409329110187001621349499523565450653558042069352226748264780916302048445971257769802134169696717386305616728580217287001119580697351764445244124767668092780291511943700890107798031840579689487143102265823041943184500081398435213552380290621551001341762815202653001017334706065520372329341087833834492574412337642778947088044571665813935085550887482539527896960288876779439969810413528308545433945122715923445637738174102823484103643527064600862958421341253085703035299634864966276897931278663766284677941535979268836922329077194479502515573926245499851835507140279973178329407757046850267948503744858270466604971125965005278065728343678860693011021821168728783851461428552254946973720526338151805968779382788285146748105846060820975523341301279046241145518038657929527273738816208336188085284003406465348086088281329281034007640472410380078634370564754710554133217029287937750214673357810120802285050756963761065325439171319560768193263067482070127048633775657087213966432494774444889591023178531535042339535821916055555760527100416403192900684830748015012376743451562680973054043632668166067331324056223665742642975510364003363324113380964830149104338621329660370047726626359242389451402434742739951872269005372391117377818204281529401848361980303909780453709732548430360603403358113171550739949218310086384489862308111255600236678787201715938464878585112791832031974021531712110117690758387313558359186282148012016432736376218287748652686859861762501166420728555689185947876425476054907522012642623310275624949463102025453796588736356508193359983735005188778542361275762366247416625611848031640685481516774682383137391471346418683872810056916262098046695295105433527285532772195720487617880772664877136546072819368930472309955009276511107443237993305356696950424254670207540808269751869634944654500495695282713403989676993141529290996274132383289826964898739739034991768362139497638581101033453687121838119013534652161094131602187348626523429947583947741923567448903590928053429057683851298074780518728176960361946304870569929490432423389398152892910937395046062683394929419528422356731738209236557547664383272682788020748953810642256991625020255130120105585972194429432660761050418709305580190967211570515474820166749514892566014729986462800325675345588219852628542759061785492784092717824793546259646617860619061876456273190908961157500359966805155804766851183020057820570248072859919784728878925518619201002480448990888093738563242525246050953664466663489131845373237824493469942875322028995871792206452712616509074704264405606414654936445317765608861329163179178917296672727409619504886860562140666348479060858769788611873551338290473073656321200995796594950236698298771758066625457420922804670087177031230860616866744467705784687860064146376515386209572100999879947565920396562976861937167060727846036456820443581176719867585258609438947520317180137283608642073076428457635974775968753323344568021282390665992031866513285807430313110753234551810056195651839500305213549872812925259247877466858369665723884064162618105649891180650053132448284249875226503230732195274346641449972358181713556903628954368888769327266150832476808575055492305835493193873792188604072009356297893828990820809120088578281500983111451288409085387744983576225401853618107531745130524655095261174937080089386957167778139893888139865196698865676235782355875193579742938545216482805413259232586082293881001482609377081790810872453336770852034532472696314826684577776145858614853280893508493055967077319927283310765583338414915564997023901494276104647436780057122628592764827511214175178992514698549761868148038303278338935302191294019766446681713564911126723983759226382010424827122749848222957682645462814561748803484971039804605251451962273889088990399716776517418929342342453386121693659272699020187745108163972788684418988601122236990110684237438517778332304095109165330438686151387858959134511011942647674649642822092856261277259577921882118348046783199314829592280161788342608848934167604260231902673662277190089046051054989413825275901559748511785025777825486689084882065970596804420766370660021260692039198487669613140583012001141381204924598791259575764290106313879286095373680780491429150665799877397866723503561446054800296948444227611144604921635679627304355511115729754062057740447428677495854700809717254660844134330266590847000082709400310910672244872497067687969426697474845755485027700172605715916415104903142674724351913668826769193543501084619764928566857454537701513322223497235593326146543015938025323595484810200620092308518953793776381291749924451107755150202919727968341446606083201641811153912546618533722297836631666896869021138883756181494074150878836379798387886007636588310598949333059954735740501894810475046646528888214997288977065192618408439179870267630327327708775066041051648318340126919580085794381969249750690495251753416867330235153485742400449491430082888055426154401082538007233114324689151244906660850279633676820479499479860768117411268175655029407266674301028581837787666675745249574688846195859271321092741153781947562621468712836902558137827161693249049000090154021896383347617542884270781051874343989499235835439509727071023844604883339061742658146425811598888157589513667231449770967853246622132679165424715079593699474024855983038569517109161809522093342581115868514575736940498423718188312027400109643443842972297177748843872271699108086773423382055146054246957505483673484698458989805044128171884705251673867214865237267928649089737536851062366754442638514373695604030494905817877492430624995120865589444951751491239968341742098298838315850663575158677476882085745047894787348862663364571172884873701227049415975590161731584250183999208667476810891092752396926881169728181301740747332583623359342349335853016446677630079626277662127501459052541125475552774010312263381896537034802011890792526144588421251301194760014389890740704465818641354195397108304668852466806987261972662396233629724304698023945580353543344641321952412337261907265049979613065983104185167816775716845347929012485838936742301339447800281094711467590040523542861533760445354351017750360632498774351363607493583825660967532259053551747205333884652913156772166918782263657476118866936697464152963637375524238555472065961163924849268663312640243899363045186032877742118228585054725074585681454427297969019548324391226628741203376588092902671929917974450312982634295328867513397335361380687358803857352528481587691652646306679449993941052176578597031605553510647250786221980903708510334985824630562541886458974887448749369611706465346707341109748072308547397925065443029541746259131177777939994060417046420891389818486867502113153172615255784664655427688168083122463774161569375722916549202386574578197637361807986438412850982517286224669717320590570822273233354800974724065141260347468749170884682958021091941485760096116181894699703970851950203285602529546462688294222658938594420550920122484243329930360542286342583223430807590684694099425168615029157749063346339397525197036044329970829487100243098802154116563672333089496541762114168040326285341038376122512136682968353828621864705300471340258703781153839150725818106406983457116420649760033685870753897217077803577527214697102031369335756216281157005575861342261290138416886587083202776906694264279703763741109561365444495149265574754808653063078916812596128322291480356969618147799926538374709123754499052072063394420381811650944989655719471045346854230039049741398906566447314613645752715449135532610973965136520420473439180902053812525446154203681108542733025894335206740753118967056691623752784941418597899295302735211248861912987514401885219366619190188035984042527015907974022493904804822348494414668298417790392614316604433807809246686962006703991889416464038000920482010952745857171541523487423109488194067902106803981117790483432253620634705340763953930868381094807489522215612846553766168750404064129777924953279083015427497975616734070640258247970472707402278523951429865945910858037456436195628566513254098481859543634913133526319674046320174284397062190559695280993363324362610128073820096117334692941101112409400560033741392451833719244926683246828978477808280197244109693905138382913781939679287380458855518396936206704391022187277356793618645710108936988861492324646834034831759369741814802034571533618688670711696235681301915403282368760489633575653676782165615827935139742337899691618600979279209636304690997219372235570035485156249736267879626791092968952308481804762999130554065387321985334222159916036727789133321031674663462308294967259255594533698810942109557731998099448847052265866566325258870143676596867147728144285195954979069873319623358997360156690728449596161460227465038082205361201321340740983722014605130023000852013885999394779445947023673035009255718901789205578144526860584100712452685689576408447117410543316427144525352696708966605974311831707831075638048014744555825654725218703675724805543295194741610309098717190413669611661344656654098433883855365953463346364365767648029355357017140557845080013323687406567717143794562366073534379234242277830850028383277887657349522678408322680049787304858802959986562639220338544501869332400341156833658697448165163312931474910557316017383003338299794699999511796748543885434485992205208907573910307931290423604227671108691082628456612520294957193703511183671801883778466520286376903190102515228928236195837716814625903929317291406591096173261904613656266380321380641585023736424776468701270930649081901010296716154335677569988990711041836987619822998578539856335712649005483026610183910901192454176043437476122916276784926660773104790469435932106196803830416025863518557011724251859315189279521852874839584634540573553710142343667860730610308001966914535628192334314107377693493097179570999985568059721784671099855548651769078003321777083775537690713818048423203514908491708400854305578589659010758805214656134873477500997826525160786217799165701171821866512494771274023444451842029568860521930776061510229618391399546230592327561349191730661319530803387830290353379991730344531053894390477058439454855255261511209603690183722633380144340681592600917014158741968398133919240811623911871106339895602292943119420119099654597268008104637814391267902334821979169039333965472422534506302825003635969434313650591269904196559721034105881359906940929166316081547771598091891665564039982377764402492163748019198471044123647087137338183267163726309068874409178220380111295974905243939868460946884675104116664492599846755636376315106399492771966339769006293388815821613417152305042709323418538274422942218976406092112311885855263472162399928862448702347031027862037082679735128029568664649966857594960086557764734462657984849845187246713904235492196225762818787134213131594486269264694339813368153574266076470741470025951000039420868600030520761292052117076205769448238133554595841858512311051648209821435184884937372346625709413680825858155268143839475759415650773251151731065989822072389468219704735845027261389057781323126271038936116520191052010425751952313466821931966236051114810321517570085216274676406566480428432658688591612812037282735955786573086489602397581819037002251399327578724065368862803652791381406696788664316697813075274794223692025508584428434526091412158135968880286700512470005120302145758461830085194388803734102198163295473370464383116168434265637529501430439841474083396609436177223196621472639952221904496834610391944769144068142681363102036954369715109129101506663463711216946822571000185444834976618557213075727449845624178963299144446125938782592177488866680595272816596392095658264513473839960587581046717799128897665293853191904654049238146394619991170013319045656009503936005868112825737128040091098730644985502870923519990708460870362604859375260884415798776091250765404640637481658152093979982886905918205622822601988671761474711385662985835720710223570595000313510922821912064488612735595130083365189040862964094935344441155280457065034262981144315358138019270734565424069614523474436575830537063471534343415565931180709800226747214276553809725577452795531130599467171005540839226403279593752807097398452844302790652512556684002721179558349123066611966247802917684342386425072961983173665814889846055030250085123390691192173643537352581883219877073004806404579741537224478246909081090036867755288175219084159593032901643722375243964638749892367254548758469932650470550265533833924256472635114840813740596200175504244963956920391767012059594438857267076226823739558594127227832807754632802532541309003323351608281334323030191233109739194461631797458676263756635813609874946414183172257884261832433800351515302884733689482186234958134859215115772284266228640426779896031647269441207385149306988551689595405223316069532980339228618225619470479902841033914505549489715045569338072599663430598950015459151734243268440334651755707264047862088296864755755255513581706839393680012668028735502454570718825609331410194536963491925450051970426524406732289256585877609208328959807747304877860930218826963020683181054170814259175783322176297210725398870293389274190555139635715125663202297180841984693831432747620294637118541139185322641828560036661878331622850455323833255603853009478757414579143527095032250095290399591368573202141846818841323510853728757428663731702630637679098226847203684906840848541365690530386306744862990841890832354808658353478015546297765169437085640036242509602245847188985613686407611858687189449243474754466102959036353160508428617454845160821434994038062427444330883076360749092621599661863890729471480294584553321095222696932683798303344117135783572359235058175949361437032821023282620399235843609407501901839092378802348262719277345473853784463945290969786242377714368826684922721756873012297481288435716267156890373366704793857920959481850865593370901910241589939532977925151552266104396227853726020034838500643824068190054412240019633325866978962942210373558613614143199732837017934997843273468170838738040352258004337597003272785184911836843587439699805455920685076018298823066422368854402935202213578200464434060078770152643224151918209006234612605108247832587891974548032925329529967265017178469350612248548185494873237915166714620383851195006999490319540226191063587658666865938486881910412739107702702265917743867311109024157880030051200707418504007938403654220341489959246111272953242809300459956827535188233685622286619219743414390372265082458149340180033031203779827448431312284465423527008770999857905692061133779734283026556617697689349066791767144503635472630401199936714357826943810936754498714438471502916362022079244715731041127029972159029986710796722594858741191185396780438654000293443503493003367078868227113212173320051129423147538396637867292195161478544352216033054701892324476744608337608801061864968442302303921298328694997624719685831162695509292333562741452362852679598061474824599444112372845184420441213266718107867216679119733618606191486325366624291596948002207325770048434261063886517921847704207202180414932437675630125847548323075193938637890622697348487374901129333171347244484018606871373584656457856129142348601542202948442060068546638986404474328917460010438487662301444701563884700152521291560148812251957482562238235936577183828916674175154071396794752681432886529145385353110892255303344685144305013710653671693669701408555861366407965229090240569136535757466504815986358849439557694818456381108722118738397858163758370634318123605653102746883933572865870096304719444856117693631186588045574245574313790038664429279111581487747837543971448783300170964284679837922537534289045621884155716274081316650148607004121178328623238453274063737959161154995673247966151211209982055359636509375142717133140711625206509469962770529093063282503165061602788511603862722329909383051572399654730653489258352580260544573176712819703958977117604146245857920025170540221944822550181786082492362327175506908789698047804043913494625481812359890817557544958976508203784035266537772152553470514086387929870582855178553305944057131097522739251790996402666411645847649640197732760427956209203451891072114155268446754429147776664064672117567130996172735035389449751214970019701730361866910126912227924951036055535161225562475611406406285054400268086483408992192344192045944614032527007170393418604360361181954083033170750645823623461698456971159511950580656056559935071625731135835308994875717344800522108203792926970731280088289459699089869540705026304950257982972772725427889931339554472806387258104936943709841874642000234992790981382083976259657102583097236672061483887106601582525511377721662431146077489051383405796511530827901997138096863043665054192156447797539994204645008747912906430531436786942662667466756045546745512638781989257277101792863100699292697389814700009848421719237377716649881375014679413457050961249549190847459652135689124773637636131452839497937295275191125429489280617521721093393921404123134325277747948819784076733236063955877087687775727711593182443040843724048713810713021798194764793707842610296920007110189817258642441396075246055343033253789501953662409054354179238144736432622127443656866967547297179768631863903885385396123786597802941262435253698703466791167235555710839279468793030941571559078269476019756809784175349167043594545024691724466844775837467559718674421664006768352036642289374154197852657476620386403352492430712977761421969760142757496221012935020129039143358434579478174422244528502464531919733925919057321344412397989505914617665348141672217409858458719130016801950689082481664754272696590961684533031311625118496783800721148102603928036723255382189117295995288024519594256350864207583141542912781529195506978452074440522169159911772400884532258890200644281000251621149674206884304915521781955601304222567787646741909426726768759324528122169480651046779872285963400122201165509380146713816607248307852742134962044597517334269226235102678974791278128573183681399787822364120328766849977196941671609412894125506472855119990184465093037128560372802347961803902257496166471268232777794063545376707714494943309284449826113845278657471204211278764004107841641503682615702580631656663062592897561570537214607039141720200059657779349210065957527992522001297102974749955632123730587660779943285780643662914501788249665949923954866969556506468631848401765242000668210649775165597388174470300355698445627729067295211291857930516879839187774087651906786889844374861676876849712802275325505664808528229230035575899638531765722516992721251770218525087010236749818426238135254378075575592631793210126890692910141742551604197584268510895225005765983231017104468645167077934833931280875954733498697446588825238651053321862782788821035632644874393841444412692040314954689656724116288816679988674510956762784279498657438807554296584098530744812036347549081946079607187314842419848718689835667923702920043242337888676927958209685484828227304649952007127070715672974500627798046456715961901439562209547374389521314672272923123143672907874814878391912566558054135021900343113680817238580482624392597578955524326101528695861475032006552589146688048585918825365511159116496627767806676509342702326916602212817609578877289783572856492608877384265085846982872087314961957663130365956930121575209339754967562860692886021911794980414017941118288733477955866998442901547906487430909214443459075129614904808025025977657187137729447014971655690999835296939527188845270623981459413947519204244077283291688259250077557739978529803830203792059015885456552163058122042108657592666081385187365232128550611013926844961634485631237969472449756708276660913737513860237699697617360150086822823628606985368578135735536212169113753622776726539095360781513693612680936822545054346546089847694246041327387175348593351730667853304532100038124332337459396835452797565256506643501169007555584366956793272519688998360087286796982657381881001299615437626531096004555203636977282979641052997486254887324927874051435833593263854609294317139335687790846820425737972263051901273951505361955210523079964398506481222176246632795377949542603054237631916735256439280557368770157794808947474499332996483861847445316380765799972798373864014102156421275821629568377023162452178729981590364352613777649362988669276847267157967156679042330669204970806007206195033034050019733808775395377378700852380040331177905163274835220334725453311419546466937564498514149454319351007843364708146738050874392957563367120754011590088339851619295525864852141681604234598634146153599302951893632932817196524704999052139259855201086004202919369446043910971045263575482780037399133656492471671667678409618080291157237542166945002909393983903929923422557440632983110333880014214063312022706632603657756146196860920867559736557887501507694732027996643308128355267594451311765013585977886709480907726416986646014814232920617557970603208316828709589794923256895207705694123446604963368833258202629152638881453132467290503952641636177276236498727985000067159372097979929360334013554697084730683709243614583986842876875500809687291616626309663231625645914687657495992670885241211865652277598026567524275317582302134912610456634467243219798407455013843834383452885266862676271372539276036566858950012925260461856312477005366461320518776466297149993384809136043303881326874386877093004056743521536058787730875275086006232512801402882114443303132830832422822960731681440471980914758754447651211315950373850184994141933591453765681881410910530348479968947635318776272089248317128218150860514902290454036556920346209477508238346197714650838821288534233595067697377070765889300446178919408442227965561368976303171762980443717611384810087546738881039810836513199466571680135748103844161579146588620964030908786263097055585355339010199185682067435153028368550512923440701135941248346976730189485998787309020730310325682693483825160148803623792000596355216816627185601863916552383798597204728050000873557116795421274708499695763896406890133553602146666515457345979894638640430016644461957865088793810388260485745873639973381772752835879327288444673218491154720042290211147391252730643064701160626086576907478417061436817075685581021694662820872964029219396422342842743329998925004961651731958161510694295284086775842363437011779202321798497448151370582405062512491688203323229865262044715747603966126014388561598623960602407161152048036981195757808701663900705937674483299348348751984065171165761923963152431765769838024107225361225051238720866205644458016265127888648885079862142045019251869880930837633159314864405549579506755797091164136302361523093298067129443954015739341267226475847629969052612217667656797282760216093446883355837007510747652009342004723112198198080517680571224425354071872714311835820550739055560889554110207317132739623005462288564940639853703530809882003804478820488298144676691047888870648907249550246311225143807871549241103276462417892623875581376816944864589516712746865893533288250664905841819235476741525011525888717791345843591575730932323911827300367545660989986182627878183853221109916485257172098846235666606655289563806457916763166181593512448013466043796495114168692948498312748932449042430308823575943530513034926122287117411503410488506115039295299502184230202733252042640193496405033275645439205699322016163309469693137377371724433463213082771903375564830522674151067748894113160716588491022829657067934429682306837329912752102596788774105687394734338774618844879844249877966395242288309479759561202715440967508572623774155139719701541840194024706044740103858902113662490378417114691116528132926843000404604069287137237842545567973519163717321003045814820957555972542913100235041074786765562521187534384827428751386496513216736355186487969644688575555633385025042489347596045332118360488352995861200268321277588032921514749504112006689168518271753719971559344792754603080804750329055876438441467374367715093110110517514674490144256299321519045859789668788782973885903052091690970847923117620744163711551454802164953221633924181106246204431458418081312314635659102885288189859614714658833740865555531111965102434481437848784187236204997339031675626489964239620123566436538489934393413364557910949796667312888827639025162650965235831901714928489965215853424742042813642131370743116979418348273987460634303649884188776842537841219744997732699325622829812182230541322650884300572111871946420088035319661664878395756771808194807837419121209278725217913885276991361250870269131443080335921364748760762565027991473087237733319035892401314849495454713133478319433211246842017237500384217462499951068900578087109133859879994147103438540338991974296813780591584900168967621429931081097507323471908643000506923007503433172070830347892536121274525561535661006790089374425235202296562828728594276185595781753622019884480592170631957182076960150022869577552460568859714682694967587827782095469178587396000176524549902326255058029862157155912415662065198762783214819162772202570975471668270506319697007057888711048098863604541737708306192074207000508257242240140516684055588311843067908492892163562107304507070446630084360952241588411754927205567925698984230126947159503574480233773805405321906180207909507264538219814463049468424833227210378543742231064068732662967123970886594996998996425654859286886075078826562996482415579662179732676329732773948321697578640464310778442154619925193655949854966978207280992797186521808576580250107290083129125587218675458842124389168226209899888904975744757919235032943822706165013975159611572288704537493319184819476932296905280262377427422922751043720807639446737370719088347424428005089087776309252215609560312101059863282281569541330772852023303608476806182679763129087320591745040860929421248341209794588890583207115641427725390986547364773496671973849751911176343070040564403172563500463018018300591304503999555952302966460867180384790274463711920629948604334673673813927138119765325892099662955530340505206694095498978591665493302088193719130234245871153707355155203551658494276313470732864056349579619202727586065476809608912097716672007633076043757674623766979865521315665778766509631863699064106323586515513457561363127588542704219943056691254887683805364720744443298132296321358056100730530018495237111791668627425769393248840643851526876856213864174818282388337524868520929429515864823151711931794532465851135596307332433845578377054128546324045607976028665771716835422328233090223797223606708636474841843346454529320062822617393515857096407876403608670947269663145741886217748623129756100814072569906301070863307892603601743609371282468010388285965626775710199022760255599097459935521614207291362074409755739613462688237773497458496691979748729099541739989226108992613802499010759637831752227750701574836434626488599493383120505928935903396180517127705820765984307410405431051286472734258387291228395772599313043839683838137999804101364899300709380741667260176481885771655374892163498022994854032919975646346044393744100535237315657328361877730593116817845678048712547323122169679534978979734214173537359635157525113986682471676875662854990553616691398175871654257579317204206866716825765217156668422336986268284598088201177340138405476070023276853053958565609678402187533157279326027913562429719331118159106646410977634065116530005795944645454474027940581018329532630608684748300225989513562564726415869815953600843404196297831661008651139805652958925471855022473510725907940099944592122980804831122975691541176084185268173988780237687495241487556744020427311441815298835933173109164899821162594709085951547314579067347480224265035884660387025481379742003362409795064275441265096302334718066823474565330457419471463234187832610640965968626228220556623186724157029636046773336701367606928048872566432816425502798641078240481186351430156364767205449667572215052582708668900282141925455015310998040721014056132556091694364868127468866248453043342301985330386156835147950735135678179106811415857107364894272219259509323360544558168906024291442642852548671137461037181521375843532956249482966816123623988596669313043329038742497177192398910224444657362940007495558683924273656516627872117690544175312058227127217450243569144213670638304402276889479028578286415472606613424896979435786991312861298945864608518710630777074733433440149940812166638835613684742535090882206343618236625542083754125749752074147602409144334698534862098319467581983096335348775770014163568297352599754028970068481204077606312520649842247088882890584141237723891101904176807159855541281104320427311483587439688111524440465142223310253504468225711875944905499000917471097766694101052554027912885128815863114410465065827377283254791120462287178022589412183180258729234675076952119559186872291335902960749454946923829616744340827520371979235090469778396543349307714134781280178097582655424778004125856328031589559793729014018550657504195569980280556944222262427826432608131197522338715177407079284547098378021512654518001451506885021119556677927129073363161464942463251715391469470761391492439696513318579612060419390097583258901514602330390183640952043457979785748734092879721206608710108957486216277223471635201518917578774002171938681801222043815058490852680920442366484180540714263824611701973054550456784395482275301316834338260060752207210084477930748608447893328463481029171186176172141742943145075245037764346301792311350751667800428445902380749360101929997600790623126878058436691671268263865815992601852974135509920486610271793226574260410855860983022344413198224255336431911343623602395273275062946793183872498104946377639333391112525950312443028472334002138769359060171884456380210760765027643731183503353857680957914692987575411158568944870949153337569101981860842993128701711140538324434191738685356399149226126826754532343991578560997721347599203334131415752363350944088484299532848061753887368509241868930574875350764907716921616809680296035501184941756542538692340347124884891537147023113797997800528272376513894114430804915407350261710827756410429245450685801037317238485618268473836021208874507248342899556378192799708541121632264314080205726143311299766367745121596976879532612576163686074018652837963842540484078307323418285198267616987025316810100548251388018283157647109563050022258009982855767856770625573740495036499251062518987979115730329829644529480397972812349209883833548906371804071942904406954887258806236197798393205126874041030759345820612376645476177780153879780893011042483849580557545068884056567098796107427715879749761487674695175471969827576934525904882981011638695253287939007740275500469619475805799461236170458815811789400876748216784581692773365196594604546066093012521653051877805595349486708391584510375026012381789501906574394596826115085122638806323082456203380283845140798249983448610163525670430748621534995584472436301036149282383228826106030156828277721105107955131967659636884515885115814767846337905102963322823008264242095369604934663944563482052930431523504575772929170483420626263329731794429942527803455680279016277518389387323160817778253452763863229387853578602746797259851677464344007021810365302653709478308111883756690442389008933732128305615583111792456952433344027639602578334748609952925502388482498043203479699736127695819860663684974871000598486710200267371117741731801735112604134554671169114059168066216071680685213331560912247979829668328261232028374287123622010817706750179050049355824511320843034469438461561194470070261483701525214350692366213077185946119323431293070278134075926198560093126375421429295112054244409901872799957163190431283318461823701910322207184429741068874033978124306297738376015544802390434618193830608425253238353816212175065106942294089483796000356454038783146280418586143655719059713561180391346026872968737711970086740755995496352095950746409911257549680414128722271086869944991171441615349874952623661285700351500966727832768098421686437996229188181099853364650986421103633724410152352464620402667604204460238709358291157266717053590047123446095829987074368608412626740995747061820120079919448575122723031802750510914217176058558977987218228987984053111977289780362707533945293192708551151972485775930701514354022787412454298372568961620741390538491526220173888046041365836251277703824067500521766221893050975265855935208357869611020774438252328304061977466419756046445328035199973426892469734651808023166299505484831816737206015508000001468554854909953391736781231687773412191026804320931081902774665731606022577931028516821265358055849046780522312957241128220931549257998225599398099484413342338081767881351195622018998006293539933238092230122265990746145128373862195130559586636241573348163202533687959882284325004491686425339574340509114007501477319952438408079343161857338506253338740381597487192745991759199089428426395733618830994456387735833017473447093490442404806554542468862388814409448511238558669060143548317592086722471454092179837807127412184271270934223815799488407044540593776426277580512659300849585762967023554101793802370918461186281314216571191510259098088446296782797054476956982968171635168448186760036493002223299796460566504906875630019413307323689095872379693048132396365263626601819677939186940019168594513526186277618807094498852990232996163125210559397748943738356596558295593363792801962367058509174989045542904943155013081875146180502828420461191295532693294545153544303877933694935769236788696762375813913894044482945230731660396851068035723002519950864307438442960968509482295893774576850028470319968570958022701167310601526470366030370771325017163408636958362949312533937538722086161173130975037855797212214203848816105973875249004989427912503841612228327745400076057878302310339154088493769740544099123939502656954153604271819092907557770698043083402339654617703430338021276745494461286119762182307924411040359726926685464476729008771545975800364007336549066276183315179239206098365622831013540767988086925850592070827321545370027020483305785266180858382118047939928242651505793605968245861466597923699452069849122616895169553823998511310850525595183133613377389584916589627215638296199329014629073235103732732875948682392195131540420794506504100774762467744181185254015045266758079300355978202853929221264465387662951339207077033003570994058842195869285848805363879101173588554953898327716625017051493994475089886512385075733295976939175472761020871961519608464869775145075128957539177104828849273691172828473750096313916401010928864564118061324120385963720682934454566330953970201433071856755506877598621807031308796014966999401878478416666369504816203562377896310438565585525300647508274463159031489237831375671282054078826917964160163021531666255696522061418349311129293287090800666446030098492394514963383623521236013802786211982730145262806339412824640808009548149732949732376952718176085468314932960191921324550756097857764790934397949450646481583404171175112339256309029097378357566140967991071385352547565308908536208400746035114022489050407955583471778131923641985088267733053832265563759887602094639421650029741522344656440411108711281612057798581175515375388148282998641908769366973234774455903630180326635535340769448895906286773394682191182707712577792194405221349976472105918809907989955316091230060946706923201043819172212322132066633362113518181344070136343449826493735746596622930138136218761883721852857466312490673658102949486859163616455034998690301103667767995406218925136185594231481643967810162245063140284398974018725887634270978233430341266536679551832266562997540463128231926576849846890360614700430329688448382337403602177263887501036533834817600374651465183115782904920705647985314775640727795611251742734307927171147589793451384837382202142336743960014782426289782392205909276971353837348241951815835411263374349820317237871162229221813629342529177093443937983317338710067160339482624523632930611469669280704184330820296915455443065008311701015758392959354558522162295710060986685926097452340387121425403604819189253202724453643517795108900850037580792625768224649985150324020905326419798850680453136087083909956040566962067334160473921020363838687592348395817478352767283058495654918410428843480714798119441727064081818522220978304912659056069842669642687498193703471816393702059513493116711516957025291400871626278539935802788164321479759803445629097798832418190457905213086637740355945957456659811144646731452481884740901164538170012839427000359210877910069480932610882238984547431867700005073376600593290437498965158689363988651955512619004426136632810579070256653996876048211442872391686392369497289782388813379983781725898676600543548076224631225736255128319968427051368119652189120886738314705030584064637981505166580732051857832053280996104383282870376775972302560583981833229765085679741616002523915601127583495881925808619298533212735533441965048478811863066757205010393566781989067983079896619231086150961058205853327082721845572197602204835242134064937478580439285391486744770405044857433022905816749707382346424246020101850056553909492701625820130202163244190144685482924943493889324509064645959002585012642413089394993935640053722746860808357104999680738699585477456438550822290990104199967178927203890642953807686685245190654680102106007497845531219577770363820133237379643675171540451342034178407475640732285834285616530567331933924496913974615992711987891935901315669387441094995905857097305341237905233870168257059366220794805394431361420461941247907474586632434492108847967720601897321810833047263755481658078890976257230886571155259349441207159028764959505780619174772683736794985323257994576596371587991494373015633444685949342076777839518382336229541184885760531093623269127302972531082544546846729892584782256165473861533773299558486680518189295471312244439754853739608813642742287331222849300838075246181476150482186307658832885781968788357768985037938611179175167726658205041150569902099285928129635842060579714834819717266945082329741339722250802039776690883824863029904343426722859867562920147219174883840813119526745238813681452752422032134756209048705591655369494872029321296947216715644678430867570888363203798866017047179174210755359739713163104533315123666214848130433566454224526059093634852478139228724701484287309662232706926765104920536532003614225660999872864457188310364751632275924544145897812145994702087309778659747215393025570979940173529711622345269629442668480987881015901199858894594311252968275730692888145005751999835980154008939962274910488160053646238928513817886888566260025919725798920712103233509517222933803724848667168208354238416026494680876239300973487013343572752312171910668266261925121556371467944710816064812077876814500123940506218678135348826401902324841023045711728295558452672444374652806935899402935526792816929443895948768072630733690806397877937660000574162655485786145201978573008214749693417103343765251003298674803448206763533408378423274038098204869351362982629626510461281156150939906778600375951631217043383106682309515196079773299728572991284443717458036792673860464375969247168150578056804161208877098899857089770049214985111922627159507300341805638908506228571150651277697447246687634773246084769936286885465604833441621255551214795920678480618850399100021005399433404735996704262869692127708299870398680161900740998109966033659904794738837751320123132766178663857961088560816006979182717810800578295967342942004226665959216556541148923570148900840735477637216733946593443183900712415491113270005958205655756566293638923536066791032647147962825754594370650031712560733125687618564285024194860982725551313793282605729834041449351969713087263488007232098329081232663361175178289218655500466877232492177868299397294133044584891097741064222053867385925386891288473900797675796301057973756248571394669921477097943140691874231218662886715074192321942532467638964149826026753569026963075439891412736420076545190777163335201775414791682311419562391935318561840316276562065493439405820341100888707356283955310934001312495474034633691275251577375556688777725950426790879992049653768559234993461544706501425538215547315704413598407528171957756969775736951081732410525934261706311898271456246557848799554181560954833516516594972495989936191306619283132038359358622626782646679096051108630022102380393816722821400934483028137547021035848620775541638768885317918511341721243818849120987524853174095639838291920420009225512874366850735061111053793304727131204056205811309217242037902877681287607721674952398577072667396058403285782917770914032234727255750801301201912545855352107173218012554454128859486826378453479614046755838517557341862093634911786794148283201972203005910837254755945761072722455931115504295283101884375048488253983015945959476013553462786323573033258926101648789477428369482506626865234976323687345845723235693094746769834139741879497349869082994686365526439015446441109787468558467761620246765304792152774667579336700709066495816961564536811204297908291006457030624778532628492221109859232939190967628170895092946700937126410478241563960044933279886570274747435499777287012519630564805184468515671020571224650456073905670602103135807768149836619668534520596770965550387370524960328716821365586216612200552397873228259836517354179432962805234965428319069536306550909264293730708810441445583264132603291026889128858264429489311149863839379229173794747054694418213274785413665278285803817973628230966485205776065697441701742587878950419504497269828596329596451031926918376255008389979798036079392009393530629927749512690007467903838612348865472856752446694366805979991130550685838666187120100133999396754047610142385141296649069507131811261755154012610062964167944081457852125720264283714812989109704164014051798785761460108783097208999320701321715018430276451042730032936268415290687370793067075281102210861379524702370920399171231312886457149353139710765048977413809000448606457157937411816162424720274084662932667596594656685436521672172613597043813667445133499890296022335441782331119041648882114221222557832118860245652266767449275965865786722130587184425314333252393601640424082794558982036357277392079222533215949509979144200197847046124015970375680365105776364091106536610496849065354491167309269714090581781082748041895516047812638057796142425674672989125281715671054655488932067461199451664440934652161291719701072887700530769032153265287438035545923479709493841015179704212048198150987239916462151356497545057025891372148350101266831431724270971906634049399929860464821931315717937593699952422580734072971900296728434089433774029017964139671099031913538924221955310095762008605771225988913277898469962081655389477095502432674464212421914301661594143771214903080879654670629560431784371318860823451368486625111205809806613686873819096964795039015690960487494190675516286005603251326918673320912285528344727425455732499407073718846886676236762434487845595167234077647764118646865810889572936555183281878163963666733229754624327987774612723476219293453224331862043743289208949368670613062954253517953594201635067773194098860216019486980427591342796622748468252087859315305536286189194994031251222219540585714514562027148305272144983893198526883590641879864587091567134718794921244055918568680761672424999322325318942390212825018423020280217249738969933444468180684505005877247383367617520713644891547982772057886561689280483354042185247167638467682380899790876123379778693663474537700228656103820999965091797481634515684228956039789469754342673412255246709921015027050520324123341528198868434722903840196610112787278212574808492464452783103036698413570697683169268129936049721301945027816013733902473135536478572565381222691876354219367707855277835334589071497091261863603748135189947912159670210160686279687033773917849427524318752656567550896426654463850446514547560136814897166390137116639474787314627081047149988749405446594245764260361335979612704932982028568339404716569401224671536434151737522219433845923009110733159604409091669395572220882130346088225176134908232509401944972242726538320495814362750960688928677547427024710749636493569063968392416346680172352832738702263539789428340799067553216204924724903294985580721108403116642661074049365943150200431537246368233380810918243195855237551674305428316325937671831615098337115505172322605653176250265590587686039943696133254112029846504990720747686839891777653319606381555132089278366694598033240265073283591520758430296234044881776898482333935758478219167379666252164659127659601416529805190206781052804672373199682962064814581675896446256040270166198832040656880408007753147830496183451665534899688789877555316176918698637606185389006722095699571684260227805252750654232512267289734808770274210146232019338926425411786687523365075953814328225614462815471529810898299825223171568959378117403721574663488398189020475820130301406855829657140570678096936884531020355212156631613246755451049695509325614810690231280517177301823882637235279547039143919103793471797045889341860247308563267501982236818676506796367571284338440344050460400287635049422045973597430038470962697180273163947199366898862573520469651713051324540725351567807126774487106175316061887171275368482993750240070450306328115700088076137200844406074420462752138940154067159244950211189729149739129327846124536940125010988695449660590697883493259203702648747949124757118928444103750698044324924207429933197748352424311548596143949781994319048473915448881965749726460311419250518442747408417058529192674301737875715237518429612641083230733928965364050452365996472515350615339351578757311727798806463201942699982762496090057639655933006125543277336152359251651075233315096878119272939115202757584064690092865328482829594147018098006683677917930430187772060774269578278597602194177201893032947108095569076193402857576193986864264676404426472735343262906659420309665798629017776187144325952292759488183480685236790449947604640657981637534274848227708429375167103376297611267232002155386063492388972972041515603221635635710068408402156777435750888541425579978776224736461998790136484849936078765982494689110354560348546393481584358343207993498808684484715879297677989654270493820728700302404238561749376680457289713383607470709304694011576120821232149107913786525020523303126226751860683688854951786472265261937420755578905600501473160900232570526496044306584200080567421608250673735547427315795603728868199856804299677512282206996522252458858300943307355003400651304305176328571421914611486986834167484672824705741832245573023111426093114773313623692455373226015303000257553646666526408968186253068972598615239481112109382239753913027303897416788845209889424845658209974983729955587046428473784313988803703451700848281148599070933069791959984060602716851826168523118447010586638522419310869787235529818302315204643932587302624504962820863531093052045658581756383188376562225006846950701157022381280260589371343133223842810179274277195526460330417500382007490752840705226733795303831518078453812456347201816090566939494472798104907848180093929317747070348838633036993293356013493003800259862285101474462592206132581779145904860926022051542712532607195088451005197952954376171982061143838431046124849453389606539137812124300965847094747485870113062219952015382313020477437452597889853925203958776891362719962389167636161171432138417760913950908803101741128942147751134763163923780008094694491408591981615326752773444912663476472193215170391610867434034783183476994730618779630494161925418744920862589489290034174328858000456339479729200233498586514191431651270129404436578602839574858485738477619872945860684234779856182577033004715628115797449513033425449034830344836148093319032226320019934928266074006082244032280404058838116403541685344348571592972378359802885621028499700895418390089631904605307174604804317707471736972822378421852822698380784231751583194277790006829355208969752759265336686731921994280907074773934910304573665174754600288919188258675512617241883270159913828341629599842306179679031629778219088642708030491785057993512016914032014781100377112399637859774582506611164620140182497148762746466550186647226553026327700835245529226286092768230485208204644662079004378619359313754129339625066946677059948755882745810331109367579444953832973888417060580044438760061702712226043884216506063677233270497808971504132828016166007367699925494637080658942678318742516451537000651761800433782932232829381555333229808105616356466871804296370769240217752082247211525067807041155853320360772668940039717461578010296047591792560617114750002806954369126906224100689824630069428548526772500614381132009160607577718297114477155806593747924300642758015501668426016355373341272382625801178257481102561307146381257716420170607394619991076271983341882236844789084717129766190433958471385054858049411600591707288677523016733849637138942379274295528497308044265052254367183736371367879960728686011177269290381586232164694470170654773615583563013568078157171909065634466616840036814505230417529166971211457199986202231851879499162634033387978045679363741136865886013523013431464304763825813623575900928536285271845629996691985881720718615217688713025054723703872126413449977697296447223224185558786631145679487266501695272212574339935494804796601136751153375153064654875561923874545713816329039568210190967825913040058688182467114397464005447525807992927730398664660455736745127088877997238828464310736969135165835284047138607070964729545700909436626977218962750440256609487312852942131633271721523507692336503383151432524533403935368067705979436962120494853976882407401042090186651591957667952078718783481834940563699383116587873950824112990978153367228272064355997770553225696068424986913437709186313507615492763481209038049956855634288161087406029770270692276087677658046149546826566698154892273654101648240170985524220145244811006138211101680134032811731434686606404248487169284568881870440072885079780972195007647498213601460916096676587989666381617722193611283840693047736878188046336170743813857504277247551015712160235892166931040840191045207410346698217562259009798959727578801327913734062947886594321481085119672142046067695166354031009694010937031875262418143256355975968579142322585575176245448693306977800441143564725416271732367619648282870697499733722383850550304011176360328575327593355961815076641627764278758133258544422326752597321941011886428122730073109169074751623466350691654388992005514338989480055694969829963958098381613324125187572053648401653288028310256372219090359906434192375671150079861085676310290205522598608663399921367060682882116929023807425414462677371073252930296399261516790830632510821827820985229196180869298808665959086817579566633431489980608700915678222472820290625343485033106329039411931299214718659998656435233385644308967821499825756704317574940030322765622050226990134667844477419752071237402931951459487058786030457659379320493051897471543596407310768046412970652447503466283768373474001200815117687838156968067811589819944489534779690697017713567177117612975760785091514299925180789842814790214561419946821703256192355525502239002699581443477453889138909627306851390074852941951761600877001214722686846525941402739602441705666412227380635015578218587778442906888117292918140283066665139593270380903772760115188876952670677020307813081905851060652270473113451965609719353817737633471845263552379005383534878617285627140807280112605576251088652168667487788717266077072819636407550166842983703388998417921498434302672598781579900579273930115519659363860812158060061473515990475773212212665517689550976085965971249818749792736759044299222748423250993258558802565064890958675613092509038728356783641601405654512213689571776297570602152107358994176714957096205243177192633963098370734625419236627045164886117769915924857820727583999627220673329906310132865550214882741233705574269713224048260799977240925135583272578595875406332968057002154969454273833803882877475263498155292551441381693897953209842322879416711380528342912132056602245570594968880415279477242756576278224038416316448274016028895563088038737077106382935826706739375298567505052623871611259983193274923860630507505997513898232426313360356968122732733703069898398804964588665558822760265019870028872216635011845762168639654174785208085352684831999092241127410468494022712387733067369195689239127815655726792586828674088573507055599844021758749910103366695283790132061796617571632221669860545755756463720875644919221851116295942098990856389662864115126838769345474662327923450820432125080508045003192084760111961962709688582278402136002801837734566424067607401331445069705417952663842231214276924837606902414674474361258055403909049422418518168727056940080640309388354111546678834680726885650185658133283541532303049654732416405417046063807068718277536512610120369548107697154520780102050032644836262610022505910699323013125939469359415885472705213862784624672210391903175451365322965228479455787515761306111216957063826788639987753163332010664476405793923175174434193177156445446640448602457765457444745302063554000810046406191504809947698262685896077586791586492552920259916758653395789522697228812021117286079756189504764076112941498328716194827363939937630389124176413629397525369387533990476144870736065140453220852087125945937252667239046270956894237297746018148082595370721970132457775701377573688538818457878359294457762028566833081585029888643573600376844142771546459125846092973373607801518156173835847140640874290593766288597443664290995863504422576737871022759875753741305566237396608274068848200349944515242866422150691293302982352467768517520320847289862992603693551632482580019126341237833177904738704291405876216421926833721707583282891443975963735046222442751855163478499760237988722799769989919669691535680442799197501556180490752078483123866937477050690009066209039457697759623211368308393789701936233278538569118602167341068809562390110275036014979300195329065348063423206071508749828922011363535934343686310961309574391102932670106375368708680035057357263399528954219185310939190678997620806299565786815500450215470590667697178333310025939459414230626906857258107040482708505166664664362586317240322894438563527594292724189979865586056214325583990201158363881032116109073845741133816045117895339143057979363586273173372747094153617493193827120135872542556608336724743401521520181647858398276035464146601137843753968963173415230605141648493575248669211177909061502139657020881285073027255411541031417820056973040875421733237742321804951759332091354785056689513680352532147284792682089630598566983642045817375656705662494879880414328671536017620894557886289792027698694703275714050299449462025696759166407141304626904423410108273299283399316590661220217746788208883714832463364980007680310783741154845505687539690808043568257443697600685407591001414778266755887496717057630220008096720532818518676290439433429027965979914486164039260021879004082446426543626831035337980960724321769700809606244822098248706104480561484970854168416455930488118307904785135685733230881356051581847825551383700054180232370645999924480922877286302622176632073691924888123325073732198187228497202008667303915259963228202719814425395599564319045460602771635488105151356902842244876584538095060487993303623696847799844681295765881424404138401117394652038832068842151098550819383700303900958711373821729566847234071803710663368859571039574440842521387091055751238405758997051673957667049473345638622111563920054614733770747859810551146433454458116334527800465450579987526619849651351700341805792512592579182713593830924481039031859146513964025959292509413663822691511412238473736162479492607462832104843613595054071699200188496980721122797918687425913810196797451555241225476986755447920257273883997795432610389138440686238898692897652673060225442426450262483783641762797054807554282820856735377526914950566906804544362143308459221118467631236435536483951877019493471857839694006787737831656458827449351647670257612818275155772302867110738947814962325385500830799712901370312495521740323324661808165111612626173611840318121926573901969551131542068704070823937382226491897619772254844320520019009276001541442912720982895031557452725993008971322072334322717502489230346808419457793535262811781927618942974343777499660150131141058526781444263080022198923691473079255160112200208040411333876407812634366787784390664536644824981615321983883080077108486257963790406301807872689223626546594356210468711890104391914164607119790032738950281793495721563652984412442302543908793162719539539378228157757547381828449401480688483340338587482854412440171542254201101525613658434089281938726531728920458473753576979701829804663728024800202546555262659205510527695343616860229270029420627422493830540306441561064496219266795009230911521894228916914255202083185182996287876866786555324277990945742315488846891616474304613208999339078538987333389960221009884127950354238992067832358346347088504209686933200774061541392836648539829391565862187632373177309339101919470122664825693081508616302038125686998463142388013587077770553249494213757030331069869156208723237435197561004364200113309908179881282899695471996229364969757463722546835002247271858949481870769494234812561839965668810237199865285607018297401781688595216996928937989564402848060994679406324189984766991748733360650048636870930904555589454065181549257421238181466696334732651547549438917942436838264420397646894821782962472470381342624197602322026960985092349310481127168408369060195001313842905421823608329497559280252288686882655434807562626621026588047390530383474944745950421719280525390631907794365374267521845888127212064906859225169101964117762452157031144816590662094383286298866636879921686391754161614243445101795138848508716911976541781480572525790863209235467074541354025896805203806322356696472447717692842952240024647396316285942448109858895060123051090365644227565818853108177719096106721708357442638663059243165394833167141011737139857387963705181133466224392555970430316377250438971724590289289734560966246522679445239225083512296161570437564890296905809242570510454154026591989560156168718090346594766548747698053935338543297464549135328458436935458484667498967805792817901130814233059959694225846396448656438293843279799243057756910176520477018954408889291522284003909780377660663188780678078935137514081712170709506217928832221012747506532641654826469511722582608812083565168812502993374450227405520190240066941753006084413371629128218474433304570079547060090933471520180881130894311225144704245770944432742721127610870173546898631662194654829342191666181888052917791115897348823638507435617711292748713551514601833686181772181451127000707226640054010017993154297634591127712174656424940965861465844893193045280028830679697747022908642419883388658385717112722334684747323207352085983516900971160088928759038452319473047861612627273263335908210217765176329718297352611049528314433893693055051698596523604589269177085940984722827728379526771252093400885146220978583495155706201808729346576835059622053659865970412174213922377923015309019042478308917198812145137612817423084396027636742165154499859195365204416822252441320988871625968778704437648396404606062961932758724914154580614819881516308445218057575425957063149437638121769566668648034431692831838008166123774785321880211249161420198493550384385416904024299812846790754855397085315268215005158975343935661585046375450364295954777713373867795355902245105535770714777163806965383910557192927784419529379650195422337651359592520073159695820716791524491696261656871620582630827917012412617614465145861157768721625251503859668095270386914077080055664558623623414140738709513342818690780196392129599619645918600570210118992451413873366330416301186217274167202210101211393796589092403191038604713023052157572890480446854749785611864577994303564612728541684739893091113704237589690704097877032717766454938386670054048857915286953397272931547129145289487660924812778845277790151975670643417434734591464373390782192309984001848968174497823451135382088236041568130839459458291298107118195097364621400219188856057945799233436483859834701624508021528463468929503894635003281981584367090535485649921755425792854981123430686469308440657439672847146954013198957107944476771762784452363519013907377494527920469959553388252956871017791709201974832387996951494668311594933051818389976633617452525017776586341826910960386914097018284599850545866398565562431552305915470090805333603928168546196585907382675084035737008960818998730782429740752571912357178617225599232994123508793471332348225252738025593011471533492973558226251265280118262679705177113097223199237662368106722320830572650327626195146743074276275985197641311549519573749896607956350000751432015346417699307818039510546603779310993198449153976272670172792086630095104356552611812292599989134764203376870255165980314246470510587409255687014558411781230914660533279294208355634925219239713362484813854109972357958108646839072662624162664985766106970762375820958209781173260865085953314111286905521945636023973097980870393355117002859219113494011333459096745678281967648106129740237347726687607053355096242659978475387761922529899934581571791969063892716912735562067098364816116544192859883867855401260330271469057138564142825208352150271108943417763828776981755438322342018407637641550748206094069396779836609068637534279499200784479086450001299787473260517310972013199569026078629160487923723751673118730979790006348879289530028314001679786702795149910184351388201924005328226455973977551241065317732513101704278439565752264643914622801124788692556325880125865613166540422849307335770934448129851752728452089672718446788693290367762973951481810771874395951723387243036852383192985070513164084049796509947718946211580078542353127785023841094868594777143254925992317494121189476566827478339406124785057443414883596019448616611036105390867199899504638597911120731030171926718850815967251927315013778177192201102450749801809608549845244945193469665162454108991354162506788119945464565437632169571218741987016152414541843021797402510234233471466402780533357606935923452714516090678545250843252395938103161771216697584027440744940529344237223261604483962058034697617100091975951986705713909453912465819762713425413838495544517523664939776391088198273293210093319202811724262810656707230938204002629567226607715389436084714427927324806223352782386229536019490323698401736295493275262015010027392542491861468820071410831121143477187714908115212795374352384854706165880191875645439775259762562715991835807536285536788193330703944574209223479389322903694153956694233766402347749808244924545037350303324806053209353353796250956822900966795137275428611119563631076914704584756088925568081797530570140831441867394771592405036861260338335704450545820756482015010943914618781221036851616442605288730159885074727584203753485766587757257726012169792195841231978762572031890180573756115118348887341810976209116412602679058397805736916149925992827846242151118309033331728735062314528280662320730146161148372662949703355945400189172997064688999140113254781595886613794995647787355132401597775028883010461876986196947464306533992624577398269830822871969280358174112836919156079261158511742993814994997700437741384053149048042647155947267102798146340125977517415106780378288681209894588430468059031064415397040304855673710770886998114197611073006811123478981474698819909638948501758519987109808417125991188656567726468267249066848228548839389134498183786376580481011840596194101700284010525617778399472726051822739234170045097452616313734120793463820907497931174842657412379873978711721190513935770141038779811507006435588047370037910611549863437011619848564772883916406965505371467091568075173751005318126184306231297309818628791496762122237065059537587504685078482109645925317680049676987428870463510880289135668726440559862021074414343079921843072691574428059324587011123336774036970812624643955106289928738093873350822932741176833716474744946885482555034423427280603472307491618317885881025915292682916881390105145536341876635777041126650350260299222299782653376116622195804776095679213808630377857327394465174915361308160098660608062559441743950850558883859354602732428828553111331519602432399642905653566245921290012834158051295660196971435510110680981202126073994663086929508646607729323631076957381875681701576692798505410883372070133833317388306679924732141107012177480516672325073332830627259801117076214788583730728144249984991426137793634598973407516536156035768985464428367936170091806481261735283051735852330552801321332069668540704944310936195417695565884268187511492453329941155096724561933928239982070871316438552950892111202451567164257168773058814742282182479831379649433238892749957428690620536205321303777574967244650794966894421469824724184130062856213245217510571799407867358496503037745914317445083378770271067211165725470764950452201295915006531018126850705719955921856084400525130149349557345086662254507619932577825269651972993491394962707882394391854863128547167395166916832538565278568660218599857765346223850251287327021765824446442777993434388575476016298455896577010471731539560268390299975946105906689190023947711400467400679990994096857615403915744445627686313231834130143831317684773177750782832162193544050467684192297423015212634084607485174466410284379565454512388802467165313540904987771848416276540092136424453413223240088570782577187582417034272025167103679966129770532433508707546027841403826908709550531593428843540781284400658764594248870387158300290076873820155414499931911659087963433821946371377935608737666808246055293170378317210023444727274726496472762190897205206515707947915696255964560985210334567447308816173065089413688735950074196978091814483286237678350413426364593583297419483498169561531328861607341659766427104978611802671470968416634668157596492290301162359097385483247436493751410378881401658677550701364259921322370895882032883311165740856799530261316380215415202037593746342687099431391125396539686651186750656246358211291999407182461677676962365608321113107460049775713135014535704369267975601136402593367617283606655944393155012736120995682736546112287277058150360328507134082076548104700086770148610800668452598468510222154593065549996874207185438833488376078226894690480777736012119741280367445672426846801306192006459004404141598352805561354358624460973632356323949761422954200941601403754185764996422318626536145127457848446611122106479786866966209747409736227056203379887721638630115317032519576453730140470424646315980121453928220265742990855680513628986063718968827875732996070211129224338241874336156563418388842267517005312026902471719646552854794110398362125629664565689450122006423253965445575802668201649365101807056907146680073696125951025637476686990423160513565619832884439599784831150813513940019993205458008636733690306762202926718716237468793163759980995651692179429071931958582765919440951103235071802439000044832602105242275500686713677211770938395733362671648296141915265873383268021153181233314657488689356177374188033948612402172971268069388522081685840525171886291197466653043510713336745340197583371077338177838926585078221746720412089289917290153955899093953749516001254498368646239396253545097426578138608223791370174959699022661918384358391380320604279895942585099670507726506688049174362988371724173232338469882177838446478817039597049307541775467250233168713648882806918090583829241432144887167493963635295466946989586276808877284689878614106179336444135688723842742212329639652634758356289963055657300727250841604377880693342359508012434624097411605369532359022887420532799823600633014669641305653925442998590864538725580871721835764384161246041942310255987138687231705874652782291460897895101648308758226125839666324374314476650494238749549570160383906965718016741204981702048491506294809843651435514620888593553499209488389420324062357301670605904658966087226934950098783957341393127952369719119884765631137579059005102783001755730742275200833284630394259637922969046197284125033036140628927419189565140938336478133769702267371366197759724514108231430386067667557585253995917275155814457430966965852593342314274531750879004748598505202495553760879250203098995140984108388572276843051932537358083672779507485328181822683166711615736224940586603516036636509418038674705267135201363826295235941092395779386668101623959711392396671269616137188814954346917318395653727742036684390332759670866580961295653909508353951512577398394374924400313086537040207378976242898914928868799983354723445997022076053343225045367070279324646697818093768835437147005014998465492564057597207295521044291120950828072219082476775626716098147616852695400642969145263142755471631321196636644386882863588381365474186076021707070683944627398541993870258997873831266927516131506032271143949942144295034924620624027422877923067329642594275248558684760799637430851901832460601631561315728169783668257168008903366162286288412591659318336078515996369274363978412137395479492412260265190373438418826800295115673190875192251130016015996567929276682707082744951321623372377415554024802089832832762655601117939676425519826731562115403106691951103684186119225824062292740291386065436908231383710803814763201101961433407424629342846389446230855976378561723694166029711357439384394045034002554337484346202456739410186687593439773895538666705298941039474059246696956178973266903761283853928506563206980905485350021689205575912659391223443437564422776307992899819119694400998626226876195537531412663661683335467238622783242301872163787029081591808433038884388008448720703159673416486656737349002584826291496429893721053490798581546226555490276149318135687957695701423669517092544496477117675006499179031875543314176903006425672673343230929126637793101847313551637824896052419730699190792009442136418832228207070781807833937434529902077333851274196061769907188146715607670622803731743551483544878196908727726178012479952367984929529416364370870850938960901373812037436886381646015038038823231961390815583268373987348677485305206320786548434941557495330391447437508750499300914236603045708601668851926052930628503636390622459149374234866450222999688675265371883609367127870601117295212323524811874010348440521419333349978733196091630496063318008485697568020030400528790093620985337846839794993569230862825546920073894507503626664374489942387808770745479818440734218881957487242553669891653278248333975533989555208023739069328839385757359473730755498167594298791865075569559179150523035632740097871291349307433312111729503628981538511361285404171651129110967051116975740185401358840568401200985985538934368262428203427351483577715663350349176964642195079761417504364028331731110396765136860445979280029206061304003881023095845869303625155380150484452624254683742566008299689641448192757646168127808269798230808282480608248250612402214236240217560534819282927775951227531640360906206446156933469339772752201356622953381103565240712118702758705422771490451327750186390638358192753903078933639718959322198959367957553355144324611212189187348296551084424590933552520571389350016546415563782183954525934061858545702163370480337594966172973787396252595252425185148549802110516008205793230822870387015515264553546823719000691356231617451063873374564283334619874336122469272455673728697791064116324995136505910701871697383902161986835732668297534602095487189595865354660625571632404060168438345258627684868881892975711272463376983430580166920748555836925903640459661135120593856329772755124577891850185511006358997981848902766779080520241254541515344789877610730411755478954968981433908934066953115617896402110806890088312036217545532244942311930538241862513218698994855582919015167186033515253464283762355503097858577815958667513589805024954486977239580577275118016532675585236422493963387676514759095347695132361988570510416082215899161851547076105922309222945263034098837730550952764414392978567308495751833136766103133136210573853107368257516566992597271554324453299638866835373022989240688275710405920643701613743299414890357361631769969212684553850274488146345717657901000346881063842845177834992631346452733888742554407500350577248180079452292881798925759160382909277923037654698823654548327817693724548887258440507443010848364141520616495606054035997722563381861444387165875315624360783632647548660442058339654406852469853400188708901263046915177479213368354976094735452827221351343939307838911621396625976842551186903705584431861814849002245150408456381363672380921154940445150197003576627863656374917504450032135565869151327327969688012273847347808608540611385287785334233120582625211856032247832647155151057966760497468256097346173038290473054629699142842048621786930820897120389122719811790459465367164410342006892976027414155102755538864372601800532833737197619769170556337984593233028137037459013100212509600929172030173134041882393975392983958447481021002211751776911261205551154849455051831121017728750150096780010278229573294790787853627746017745854760515434385375920950840179572741453087615479401186886490556065667125964624838952687860282984087182560669836549021367516516334865747372358714085665966962360470113610839552760334675896704085605278146860032081949397866380892505636742187408383459812032464981720160334470751835883691854417597518178928790039291660639202873808190671852962104073285496053310397222231873486838325444637221089118073625675251830910271426859767458877938369007687824564712224623579137519418149980904353970192502265689342553168247580585449894662162249011801218882596838836275139560542025045676122800095352166224465935575980030156413837073235859641183988266955109777012261329721074174785655752686245074582732858861919082911547405117308846376807993510047708600936367691635175872694923191251784759979305938199361392482481124528854931982476536749768335763819948559540461750662893175744067582798604015919954450754400129258981224486025827017079517028223471026401072297324252340894902576489083192109919794403175377564826033542829934606534386374741972149292698286356406946249606185096128599789034446329406491520363744619981645833032448801165204080613614180361846811960970915051126748955035973888631012442308079553273618798757465360391330019754015993233197729029832830933329761562646328530738290147911599551963554234028712752615308878131375957999956588637369232052533428265359339174934701971803006995048423096957875467811869216267383781082060415409880622926532545252311902578664231304292241502102552713611252155048122940373048501146539410259449551959353360414610785298858071732978803483110520552205801109633544632394789990827014858496198963105618303294570333142906066689971372013937019492695963148558208585766651872930588242725550584596058424670264272551000510189181792871139903333891680176106245319325304550582628192386986013709458741792109061868440427658650082114614360547504717600851277883396686279286245822917232799345197654179427631824162715671110015779403857555819060218393030600179430790659877367439421690606433067148427638533273780718589612413570728775297070084620212788036761816731830782567879918678204845659352406298321399738760399660533775648038103813804690076596313535954052020039597364121425319305008498312661237691109549658412355779958563671144055055136336121997872399360177729193324559943514750458841329834032791476730989483921073144052245487405132321519623950728294004388421073770747594729359013012104423168304776603128799320678401970908150103976405588452486849126144726850996959025826986079200961497008620244780032743816326359654875463375689315005182188909471312360121839726393539669403541834780689284415633099927802001083207806431616339984933787644676045891848218758577841784137389137852906321451720499891381355769227889705977081474224648654887823814941840580045832818187030505621986321347444652493813806790444745730085026510620014335216486292137265059450541191024247322194877390412023477886600662557277223529285888503611830678564084718645179130124125189561844023454922716592857090673281379980844257195443599298005019837332467943118004546651284380819573542842768961185686896603144579255833853267228175481058541944472048738627040648239373618931923265383568313956217645695563670671872911767124785661095694439532331127823278830339256236183434144240892153634535273520109069248643625749877219554116461016295946266015666039483490074339568213489413732442876485234534786343268427055843317872854599156837052940248525303992134356010930150452189331432480137990623066432762039464986427052435065851709997417855542354242733544528681931793927569201253313096192830237646088335554556140524400419739503317290732889221225474647957231901143019913820426760829029980149221799713957478266486376071666212750331466095266986714877699294878272971320397257603573219383020509332171724495819886335418000808407600436858677813372750384851565618182026970980534558859151321426419468641538787169372154760854750551383079323781174407117141132057913998280710091682240418528934638216630938127933649393849569546656698949871457235042445719561977145164112570875071898223016198359729260895789201076037398463982427747043089661820069875297948606796695961325441646932082746036280107343302691147009131180871384402261399484016255783791848745431943015648269459675486766410679446795322009099993234181449409018988792004490558788774657203386697047581107747452171780401622986761370961843109604079002684024439875466789534785421494404096633565753106763474070022362344671983389897719752547615282824250713572465167184552065798246259349035077985847893393969610804728380672358464957324508616796040152042488898199127566482779937237408236686310963683958986411982359653152125457135265279806061102864703019326094148669855057770921509317067948751009121024769984183063977822420311697662896949339819782973052984350425280690046198077250129564209507520415423216127890584553514648109413889386487141001141522456322510979647132526112112505903591707258194762489547176266804210612117844456875163742997962537069622701767547031315640096297575634556620344348433417230182553059857849165456620229434748509042751027792442306135221512826082969497141102007747622032600947609579355444076474707496628168847387745820273822534081111605867281342091756984720708225977504572804673583726069892067128043844462558659277490443119733184277194476528548522750375321098190276957028932586851464315559274256302397118464000282850356705945621192616154127107164215063772040725338944848815913337270930138313781419379047779955630183838227540341997381510164810929600768806838198959763709428920434483554267315525580186616932480161567604645670201283718007574217991122914506266784037597987530785148175744838042398344789373679345662670939946802524034200826390193191265105818553706657253330297653132195068480660405000225289142769780724383528477698856182547758781962079552003467022077050606519247610522170592926460018591860275097255964109638208217772187678590560433079080117725556679251967928968153276589110632847324628870055075764302804753919313040370259243615335060364793183920788650240739156222418222613346744713947931317390507000034726046827372563464881024898384854414861177625835001410011993203442209634644513434919579323636834195474269877267049231472291731917656052806765332512932553234894056692235011432627848970305800661443346266612031748374526400316858064488103401619038177275360421249989213239363940513537149342096581577594310902687884981749989830295637991706777906214582428557075415116780162691002713788280317154241906220270924758320356627983334642088196545583370316645369416232114500395002670314975721702386513250590399269328371269317293929630471584476232128850841816021072297006513265584925138368117956768924552549863885624421305493179231330551383666923306075531951061485381461157309879184497467170222198965811403771466084427985205615825841817785385245171353327095361287405385342243419294132738626714906174313811927771142090545401049692398858283574976244187129584317699547407925061741185230145330107001411554723686199459098345322394699566664173228523563078736205202276644945734545867910557526224117509540995132313828302580112897838731817831554501165369028035045917236462275849117120236805308012941902167810291542750056660819553542299242254284789485894364772494844763416351671792136385708219150934944016686948830773092037380064312536966157097958450582216590638964942555517216378281636317649195484645367819559372258352438894506504559442939071045942879100466121116000099522007099493399996247170393761833121288698207341073708532058071642073024775035590322008722426912564686578054947168156512533115056466797975825935186956990619478091755429736785072080705804943838890914684813675054823016193612343755982616574781849699970521582244984393829270726182956828324720360803030114472822786914078813703885609779894879821756003363884226736604683855023805028457005146831013099305194120174035735262915965794487056453087402698187570462125100887052777066692059096166361169822852625181309343935980382716906082013858435300105571462713657992929700617536724026936997713013211965750214085297000421146251292174449470078862976736060907646947866431482567900091109201952984489008451930007062759272518676185154187503220499811357823330518578994260395272478818102472596224923518458563017898701197620296952663142496312028889744813603302171219494697685190198046333468092597407366969558010842820519576709589119773525167268804013418984975489794181291118537975581445559048431935238087899078833479058590728083766487135813171153617178999766415638817797009923379196798776592179936308285489550698904698784469051402678549682991181619011780912779437587311322591667934332032493590432024085737509628057409871091338462256871366483709858091283910410901486697048882586691154668257305862900825070680243948945987004377324798871628302881112106413968316324110310605439882684230559824512128052208137208753709221628717541875800783916349506910787992706749329112414929425126037133119619753409010601414318984414228154544460564922354679195852640451684841348952657197709597253313091157381684304072525500953315451417867826257075935973578007063717855659035533495571931242233034960264606809656717118232837684708442339693116139276056578103028640255262183498506372367672861324792450311181058690514249197658879848843566955649669114789614322533367666246484407024549153275818038682593424488813422021873188034646724966502968201091166701123206887862257131435052289468548518778475323294647240073883328865105695081678518959251085176241852220134644453967911495444728823836451489374321499277185749935991789027790218427474126523914027692760406313162855902517277697069140348522816529032325347163742881272395567374242799051081091072996825413907242225715828905610170774742999273753624369648724263827040052475840170770408948646814303604729237264744110770501308314439073582610379200432218120069832192657860637959836672495619692901704837943405467037461850641720005014172131933074573565499129959986223164555712976797093919815754688993075520917801495678607665921144122039650075437745011431973204525717891800564976486760077632930044053193691386000926254039936172406201487324930989632146310094632435520397678485518005413748257071024981103178728977398556185728685893603082188124331670701660593162854175327234093479668029578746764613600811802959158182362248577155007101827611445651705574144415736786774475845804646126963216835698383634175260291419557515836477685663503502239288576159730908167029497440911458444466307191649384687224294853553050141989605550142309197106661759135874070700623634685434008019581498834587215880013741045938223994808829786057699606457686088063249505428528870017038933374233360478169549613794350339900876245474902080070405811842487505276512365871766178946424328295978786992436861123910457554783628805569682782207419180408771725045437911800835021046175066991212683583006015684316425562564465503143548383758564492632192085816621579305877369163768844686681750361747707281928879156736546198882515110491901531346600433566211648290033451595793355478452745024959929550833742465276375300084415764232190270388650848311349031516585950078282710386143004634022470997164822148991397042797473509760135992752380824517363190010516600668017260519399874885301102702802040742045359185456735433855845927728486131018086437366241993488892801720180283750406856717253772921794460036459822028897732627910277793116915560490124680991300727076727133059867285358969339523524034842507155082704893319686537488179625984850784526088330259037981160314532844391851458966463712780273464177688981969926438299755318352970068284215038694594612479723761775841470988859564963744481839610349639728316228133388330224678224137529321319562453783214982303168790095251192958530191195402025722887073023610072835475183746799095373077208307103891760533477499080066599922468797187371560769441178238363588196553190192549208120143473040809766340440650807127942149325684100491146775586784941094876092527311947926620611965347521134061103969922944264478991438545330485258549863910812659843295967030151956627051233575369530892952970568567042264325972550511006714680013714339685193739461204876585210770555044666366250992594784906643015862679035855976089391246237947754020868657384613219990914786554960459546059415098067481400933182065775137854226612186071219872551582577408363436394323189362358015268692479241067424564096956111188166875148060959876613458330910693074250421494712322418955458887894199159893941962146295516557390660161727618844667461978882525005015784171873176839108571879743156642548347222932776088863861661687588267369235930469193114301424488352067517234524941542614997442468791325818991702177567411781820186172890288950073975558088704537264106420264521592302510544278803369055466347907693880517500359793770786291882859109365114707762242003560552270924532203928267724257026070769231943568309740302761642938520456108269226110021231991941928370877898871757176011470292850514778626837173290537744976226617738578193309817484487136326465495043811203111433645043045687541302117791740653966673624553924050718542810923107722676008117211468881307258773271258936827184291168592480321002004444294266213635923377531986671487727802034769945886725315886586760116437001744169416323355983426274410340791861620845252461273581744486927437653302659221530862372493460149154419222472199877442423139343191240673668372398780576535172726707878727808388882698627739481140192456553000937086162488402255960079290884176136752170114397815238974094967891307075194368963599366888462165256626822815310176368492388878138981455150548464017621703214440916441722978435020455138357497965161430393275927221913003601214217110451073564413701819246698388728710775946283553165537948777698583782979107582074965153201252555930558189796286780920405286448454501354960376654658945572758677859569839210896907279637592898807743330973197961189772078225688113895273015865622223963356785303018262591414337601459827914155351019352806742037615307179617676559353286633285900774462609703497658157194281648124532490107075561737707407004257142314378834626466773703573061172509931565351280260271991481166082606143506899544212399675546632246097222174309707990564417881563298749720481241088596582080919862715985679498343457100800266310111845844232348421478785120181803499485764069513739280156440428254607598285612885749572841021900328547992422592068239881364035088398086486103664573030914119419403816956998609250833634972313261512421411872523711894599722308581132105712237908673563568658820574847554639398071020833916084937693691959928767654774375370578278492878576562374124894475442222725185456175966506090700407278529327157579802341277890319428625187346616799989887045227806599285633228798914235410515294130244806247140921600982681771505862080495618553823027238897905638522000442552905316941343497434377125677970405021284422766156760029535387350483420559209465339256518641339827613278827082296788005975916011355476343490508350452071100606510141163367669170660368573939550078256615908217136129804558904694642776443980490664574367264598972350569730146084028288908771867190445715426339419883722553449194561827662474418367895469720998708686710502840010324074752862694040683068646679978018758451263386833944298293988981518442353988194903643372684270916627267952220942327237828858298546974633004328033777696714239726043658453009237937514514357957010465195079550347262042494129573585964330722220655902441671043039971973317975395038417659790864668812219702527464133533623856591364048079220995520351166690119169938268147285092029347907430811631962525588357414916745812469805017073975037811634252832473156983168607603887328790864930273426174556197976564841688406032245084150883656974302614012268147678464446678072727934021916425717641493548334599504483544672481932132812455518435618465222034895459660820942554111553000639798702556295123100442204440055058690125738814309687652619414778042753421399962623044754544643576266633925302340900417635692522849919946527206671947814474578764695242544684440368094469871265772370383571655141612712190496818598811911191787062132171420505662812708193433521698951977182888095356319143693017073295781704406610071536711183457060708717710314458565302369313520296314307238762302527884150352291536537297580785584250755724525261184438555577147764077161677677582358107222415902335705238869873712296906186022219075870046473097130359860946057890049890946383283972056479548702006376334860128970711037467967197646289163554793530337167779788025183820723329340440193360419543661911326812232534832600002232814328606454716666464557814430178207974887851694236144545594947584604942762576468866541241519105177181896765862806985063026698594449145988729133667685672449740968341418689138196559952649771643582971605062460047300626703270669610534141706788920751087302764805117789897008503404529577333296598531895260137922983406186043724774276316918914299924182018247333430629131112271889456504197804530353416480105472416233869622750716105677448482226170859215018705176838310864056019928471395255696752443250581067759556911692030583801726704167052450954299319598567667688293205308675010192136361240482559593736020186995199140955428946884912815127467290102734413432076742023373348340732324073851483331490373648834733139777629200233775218702742771281640026422484704420025013972404913540383658424242745564662836728068435300588856027209315613542210773299486049042455292523947747198857585875356577382181884731858911698798099479447576164633769816954903269350659439437494604417398106896965585006047909203521956079130930019691517743451495718418553267398510420126336101384651032291440955997999474374998991943676918450748765732845870790425160256824368411329712418020870765764206467599375988855402171252407350751065951268949743803706891896266325521943718669219544227479038501479894158441131006820213839449667918555549958749241488881299613667454776968232169106796697676136306535540857841260522651594563274766197925077807150874244430760066678555290657623968703630132337049472994045575327882203720354295658474403639046500956874582153709733624535696168755503496686409748879815337580276853788867863025123790822175804621398569096314964653732018585965994273656245223760771976459566166565827221402921586608702191500489723064455325965421174793789956760250747533861686154370535567522758080798098913193142024083521005504343222346275296228123396770920547596573314961974191494536218840021881162710999274064715843162647825522398722699843618629673923251062790189111807748076198529401379035451049319277505027665564419085967841579003344641580261960920956403262169412701952067082420675410343629844849620953256042989932532183474434218225544214041419124691625455160303384079281584516903085719585015138001750023497203243461262556894118784168550510536195997360335802125818098315770184029030722000025852068889337710711883290006217711257470472132144957290889209520267346210257255402068314031566845490195891571083578206812884663286427088737599943143934655261024493202107149037174220088209796802297152658552348207211767880396381311563790400516655760544236100954334804212302861976340270298364157239538204160380887613884446000508324186152135457195698344093091664316930885711284843117509306156579739008781727001222262516026526864620727798886153187054474492018111552294120775721216322094727055311849650930086171663939877402375781401203796132763015848617014859372394892191425149687112260883250441564695407386267327438112815957372045396742089271809710670927031119085542709695020732999809992661985980606497712540408444051666170282577618242764171840149516961292305155212000165887683105990831690524843488755879011934982499759520911237837436847962738065028490049020883992390589715901032727846404596786800494346199349172232051845115363259527893306727705342162614737477008595568388998464923853089133820737685624335025117151194546722305288883187178438617486431260157490008319594689682909262413394245865924798664588382012196717033256409026968673276908256793222384148115695791927310343696058219981144006156914747268214648233166416116452246076885111506119932782020634666588865251400021928882150070594741293538117184058706041310688823296316506158512466093033148912162129776459363654882364982669092933678099054700380381006713823343215505609696454898121009299054545117015727846041669248842292552237060007726920352916877145475011997175441941708211261719323392648765423665718809852342854516416371547101545964637949549415009330235123272515153565775227639573073109522261094115106785766371892829650766251332420201492780431371188854303617426580344964231835478344474123081010791731646306596705209051915931095513605998129704355518692752179328579238862076981072872619636153439571449939387620924508647150101637608935040250938698367176797990944262152139943993596794707250234136271494404070082766832705116418188545917550103180768899779118398946343307657951227992207951701093063424300419454967896579234071676593217674709736128170629321499954332646608138989654344041313847025585328293594653786727294664471392092704775785562012669828368193700447782233895077730948671656241926727953214653260413655535779275294653353955293014889330522352520472728036603965177597850396243010566694656278089577106220291092535356420007725928269262292781017234967637061193463205440345305375155990037323047547336449319878349305787377639665389054810508917350533714780401885899156003668742087305309404147672303266380007304471997274702730766236914867395492796980166912170315839852600008667838505587968802664631216574070722591906060476549694220341610728909925857340324864601108748631044427390400344962808614081867992447380570704528951230823042728128655754025085674607601580338500386882253441026424696371463511297614117588436494774950899628575398095102426376375436234755683315847666296226268293195086783039724902503354707120786238915255774577190429132494026285297605634991864756000561454994007149053748211893969522053438942845245724428361491435350208767823312503092919192810411652609419633312207826273443182560748860888255027730976215457635374278762345044429622944334232725602541932014953939899192164964125127092340938057965467358764417495380618059827192495200750478338613784730367117240191465151385953385698769789721082159158412246804104695210513223515667945744528553087230450595431451855429674936793812358759667323181559078244063752947005292668820417780494340993198456581890046376524641214930250862685502060350602237467098747532728416251147448257997060556085349920816296411429998862467553955791081572476003500582814929014767718753506181784633855737345461760748780477945740632982319278429963031816108501092431684120371264336124010671467634473284163002665004860247659886963813573721218068155009155680421007515558094452662210905131916862389497722110089257154916976912708575737372002762442186921550796650640061273935935573004671933814521433020556382029933914275432561600776598762348904829831744354115273333434708949355936909883981859157373203397340273925941870308573323933304034831238431483090854902830802921532385960083367339351389492417357409523745257863387537970289928916642920136266752662046705019228386627773039343136692007288427450820792772066469420094391231025965564177218265614461777671571135468243563774593588499056922706018129583492470495949119899043600041550835631608939332287328126964709675235975738435629051157291984156130353044461591369931893611722764040232652751797918506274719634499007123913616711156005311523429222562289717557614043480449212243024721441388800374363884927544849026385625910355094924541930607529099744416231154354401417658938191071967211989158666213471932182331639047399521243954449805138720247749874472539827450795637631651951267359219205451403204464692319383738889503823707951754441573562066335588730364552149891776283730331278492661499303950970268084927093354694909402695823099704924392097620469550555569471455691667203149560117489432748055303344291338386369529458460310151333672101592946451905821134197366080501024369235963622452961310672196568650429585439813820826987824242149324875899518686318421802819226572811828222694801080402028313971596978827624698613441052051470935729469853039780072018729489179260509229504302003622893920870173372635334228563928424442231610080938209170165993875677068457269941082587955215346619654397852360056222985940291571263620775880144518105321170147860117826837295973289672203526267762526744152148505447181258796282576967290671549399682703711640474031206859925391925703267683962326072142847381400912141243846904534517382456325570850177376876117281551258800200667328218873612764282859396381520854438077137740443725059696617828534155290048528414941329872870758020589826796617396553189894352289598847211226684661390078695744565876532971405591912328079288526380878380317580939698923203307872093284227318190448225880918095177943796882979285419436551559682815663732946797174806904763602107501900267933854888502197178156434924498322654694232929078769838918063679902445685120308606555667807321601649902479780575889399251206322065116893636010274773601092235866001152828159224470548044680208290365443171370932304608207353389194169797608870773835019633235018848802102655040969256745652546466256422291672392646778573825899249929987425499882349105537666813579337570388961895821301774441725773064330903780247151653499086083268700534020967457250964043175763961498227812545747231750934129279785045300720301850938322442247693607906206698168052174042980361796329459102700762983663636315559004974043668598959363854557677255110854206844813957266944351093975589082860173503882371758664516729233141425115358869429843686022736740991143341846168061286722670884417162851268343402247962598628360785556450702467761213764384657500334747155147306101862495539302331599844384833102182474093987953111083236238072453144499090346633104389198169738240554312863620133073384527040831557331027115037376140994858039571091658156172969998937756487582803700199925883219361791366057347234507533985807487740797923877422970974206547587370587461672349704145807648123559081523372708388284412503253577438452534940486380545559372710205715765070589900914083262916797740293798759742613018209978555337651441198088669585531120897680681513160978184735216062222365480651472166236314001321885274306891774132860878268775029802472614666835475865085922569377166527215571089552295976095026838743784942041012817051438254473922259944985532023621071318366505027204056113663774273480404217729242521210337924812562648416814879688708005760172782710261568683848229986344067607569630726463822437324677502605692773707993428085744137243248892928151384310879942060705067388235359437580403005979108126638261679878949007770425910338785544408345829215618012379110045910117716440993010707945223591668417732021195263579470040492128230276955208981840490328735040747201337787208276846824045692830372282199076965823055310578207623744833027831921757378887930011250641635324987167130146365792646852571751718801935051424294256855552663917074058044361573069954162501751329275367029924801743497023396563964004603491649279052296081373068354419796927027869893383968977722197055753905284741432433301037259065600334899332135235252945292170728101211966486050216308573337750925345863480540923663837821452985712097347845145985074198711602687172493671788578559651256968104261342547748762407736718469343955871883179529966788237295176400382222164638411816717203206125364213660671018304169467330018707470249680465081785176423068310566387584420759271709467090667911864673299716621882846763670300131299623942846952329521954321970558438984343759344165022376004177654888190803680099252111758259468068392791104682261688115569098847014030244788487366734448062288217453497752359867337518642822601918772706360653606092633232939405630301514689623878646957892467351462661505604233683630100082345405985305678488913142629759207104910949162573974663422129314191904538558439485614242553821050648672100506491809769414744596602849939385522226129152778604722389757129200146297767789851205806175669604507907182997579599817098033405259061721466676807941359751099969065545421759183420140473504241780370276072959593553047411304157184141737013997148321940711145226121959414737555423109547088926320278402640043102709780201865856540148216994493091092186667201197024299433847608827295792132008053632365398549659229454458958687322258812654269178576521812738490035881589457162582966215072145764634773204149470268947251042983466730231710804591119197242047506333527163919058893715874990912443422583464306711191287367499800984751373576952857973471397262371096071761333457349778279268103916771760269330715131559090436066108879929858693535868866041810585600921414965374519795292144824243880335866103389618505238259338317599405432869754126289874545135886616064358712903088357057772877772719356221099417555557853775313524798051361927194908437692705981942492999583272956723532441520264983924599465328368419070607501267593723120582423824171393856135898906111566732968525824665182721505203916006053405698497217767019506886480851705072799615848988230280432089046643667737027649834210665831716046920653846390609277030558147123893733215721503736575235184763941880029316925340979869658388990918176244096240469957436905168884446447034423972731824282782186045215790312143629792057439162080195721622395732674646713799664322975014706649971245617730305784063292655348829633981582388018499227536444070674639241208485270861124728066648214812923787578335356432666403354576529182471059207646720488660625065115169502288986140413739222476474616589374682539745853701330487972459179587849522342609519056141821861527741113761497832915325311214565356759382535431616243906014926327304638689963541605411621615917034375150255192100359168658913035179538896059401414626063635620694385067828106214127011828041839336159787198997709831674369818333461153886025667174668040966446937417250158608959738842603902530909509286584427900652497443108568860994977277907383591228519947305001317255419915174435068042343627116377741141914960320900257930100217861062139497484086443693075122205157764902285617263476521850209324514207201470526262449803541464280977531782569745977082243105312149877968857572940082993655419541729490129672825887997310610535725671290496543541946592871439720703365814463902169835346350544132681815304158164745589979096807568976221174324276197096656122850058894459121147565958181561888756945297493007328121719531105222464156694833768030501007139769824062335668533527031633759587413229132253392291937061506848758131077093525992261813531919791835028361995330775413782170283558295988943341781777352254432620948109760684662238082233499433252441706545268717523341299782303954525169105626573385762286443049493192399561554700617369593304462246569779691351618665695694768035626713270972552803198905299467144718361771202354749181874695405071776509312812570433238561961606842715036488404427499360721583140003119430908520215919753053577599146989547543227049682221375463208622837368716042269509182456801935930862365568895301024616236360517244855978228612992809625445513148532344089198106167459697243421875696506636778561316003074832754403946283948240140957710368495024934022425000921344739058622276017424038570701245243135578034250439323064639896631470508543385910871660774419840336886016729118705655363999937158453399459317292610512168837886171520379249425870831686856118290246004134836276639865655322251559220058739998958955347629176046040426555760526975086782579399933859614497891858974021794367943775463374057902090985883494473785289935088227471897278337047230909497975743739401476784158020988844795361867489509264539456737065239114841253982897272836897047013632958523883454372716575398006496001892015906275048726246403387632946302917534913438184616332128435713380726989998953703808806298451316458680988129403817587026838291181991514009688445977987837747928302012060137878513936977107772320433078786971938464679542087946491609356926977066179863870721796867804531712131227836365778836661364467945443107983313008649321007902034636456731870115303943415641587698833191565445284839211473497850417770609107631624939960143030741915057987548444088289293428090702871884226201121235222778182769871248802332352808072312775898810097892123472003910037706668368099929094082856798938113675900792858318828512679201533226799226351903529888070650734761030263115271277313576722113346271141911724091775201236014374524206433007985589966713912239313535002232714728119568388095178366433736507134217683754601166650399324013540580339226265119018542182917004237433559362313775476055666194659547607200789284355441177269582914806106270942654593553160439328319235561935826002116730059500071426164081970720909093365092836046148323908315926921548237883017705539407115453286081474157525347161052516243183436118631256510255936588686698465860800851923456880572055915921527355453308470264860530774705128958068321050208469556551099438003915997155409471405652906476334431325665075032261662169925596422151652015726808770236496193527664196494107260578902706721653437734634481110367442664698315867493144487993943233153089966103598095816444392345410616940513816760945433807149857659175749189686520251108206720054882236367973513068503397663330156334683399781319820729239775748738079438677082644990960300007524574765084899115909322763814904965001873223907594147413643562715971324348620319496910464100049426837274062371897349702664484442558834725630609774415839323807216182799188942047412175819715230749097365057033013838824686690544333933317912128929651387122502391678536197587370635355524206194406892995897040094004597837004569216895925570535102945319626192617005672866177332234893492414692835418600730690613646430300386225413409111341001936286219666752051550557598186930588316171060139135549427928390850278501421480616915144143284815058348196134849485054582065569165251999559885158951300740766414853249983448661179430105688952820649263695476243699968909624976463490119891345629614085555973308577735874225777432942924148851811629560424364396096658585543882500561797510034094120041231945973917926755385449842697731316622754637716391633157926489450582976077018682827316313415776427989873453860126429104199843050829056428521497908105813245189786190044504805012571637949731144490532636261018056771635049384142593657674480981665838840192191468233539259033951880221629960516833017631692253297905980647150524129206550546405720900776814060718697635368813208250154751877684792097260165029856437783072799603463098230496121402564381917742493034869062625448076445958576895426482557760592900121108362489864603669212860842100540289908782127261534260220237312133376112890155083259080479617247138851775729089873458948420037292011369481252505826153277717505930467444503813380935097483341862382349450343692175538924951174452546027101011934954778668488515442331870867302513122474733204051603079145564409777805264887731472808219361417696891166987795985650253861954032720448027087362484373775927034406196585139971731083016130896744292174039821320253133422077866453666457956297840844429363973189276979939984433234062678949524810920909535119584667427219762680891261011468792075421369461710417995846448119455884095402900845918953012101712233456186638345225438113625179032053691817106959250429665611812640454659197048993615178205770494894441564030843119109737089804688858689909210089859267699645550033451662440362553924946524441326443193622166437966839210114226858041155886634035028111744587366559512569709012453803331101397220061128040388117905947103981985433583358882245691402795935681390757543274802842845708803086430938527353105435521134523430796669912812699542211251952554344610454469765412935309936745717933726279762962784591549786880985797663260623982570611602917931395381015979243477963329438478857584067293352251896027110514728412040078873990845444862920745256847927125725051823302041333610405686931598552829543387017801414984193510559138043632191590791634607519995724634844239038411974440276805022261364537466198802582212992517856924340771142349983080112247704410557140336932250828326967569437540354771049460927384166192615656137989480552638600826035921274754605590352400597196456750971498983244103225240400125053106740062215721151683649659968049336298988715623198631232946088884136221195429808896246293462144566847444637839811344091165621670670271906494862048665207226134813025261732271139984264672703996845201587161273598064129350397457556687182539080490958080029990437166709275674052712831987580451021088869658501339613141770033954027217490923076705220041904133145706171380010488725265115348506935710160372490013599998861029273541751491927270697758604553449897727450677436768583368158222635226374026777349665361555881104888681220485028973429525846262647741816097416585156516190680532347444745345094950549609970739920155713060822608425052024728499927332813279027020790947533226469692186913318444106672645280396371838059151441103603258736485631107607888804330017164494786694668162471940297608058066966546596099657005200347417501161677898342331850257188940749285519181039231270937030043043363285216687724614085020386461404155615441402787735731582931680986366899579779220965823037575685789666041924126222615667358798984106092621643019388785191101036383944339447403479040841829826335825261842162469926254461958644412998853928621588583286691626192458969268905477080946896295544356585956195493113467652573137771775400522774787502756437931760920242804391054437739507301854648541484339329257364005576046029272537762753415789806582081009764944781624199660751368472741666408674390183649798845420942451687315216747340959517186594850916056568019787474935956282573016497189253119619115545886698512227629802009735088433927990750629996709721432451160163623121110927364151096200386582445989876515968757405581794355455737306284912593823773564250102838851250803028334876496113704838345926691198721887480679843775432029300183564804070742552984717504498351788341737148929812386690386235537829284290890124191843758106220237044183554123845973190197008844150031169090778174541678447559163210946292706328510905603077673680844955766906614563074322637690646734883694203478267698925972661657614557007705871396567955235376062209686342455739499796119669499191372683374245275015675876664167792558648730402659060250511773947262527191978934453725637836356824094664766957850980292319688173427044923427638635749973307473924043556786526439656724981385486132375985296322673570883350464598090443000866021740542030090081857229409021672720172465857796750307147210273338555878161269509496444448408979084668211174593459255372537363440276462559594621814545714277521969779307323626469380493981972654495913762191978853271902513898722888615562852515974744533971360336590068958605721669596244256648501695807006719469819430185917575332384281860899993576059419194619256179545848842969194272565427039775038541207303850174123137766414912859079574974993853979250930755015074063458749155512644302478538262396698492105838941223183592119417001917678313343392825691139543900982359768318048032105229802548639577936051791946327907708796991116643732363243805907494862329284966646129528176102304053757324326719953343180976471612612294507386516228185092414304955948628473778598050776382142848391597053906339342720002784990861302607631059174966648289911741235513329050162239317362096646254007634010478636678010383655874216063292598602324272335864472322935139928000100778773338315583290796067144206334529668605199235056813800272414698641034195173556711412436715254061624456142532838472716360456322882631256051607287033441012779602874187519663231130767439225046410952964740766249049480207882473317556638935918846679653203049012832127174974366471944657208277009746276048819732312388460673300771164782956611983945672919928009532378495560470001443548396660738821701845804571840411203142340189818761811843313714843247796404037728516891309254688221069900093746287740391888750274094202896690309502389380159855550110476462205234272107624964038164733979731632923856229968417272573729072954544227443137126486115488795990499521040910602318333835495845766384239002011150617215243821227983179904944054740131649191950492336144039870117948460310945870275078474964862888213486673715842129330437715648963909935110843479189396434746788049087495029940969644219615848680721234595097579491639122742771170172468384197270211627557676697053336452930979180797113644785803411909114283697844546970330840929800420117178413863654422311552286750039119266973149953883954311439624639271235769784434654702504327332288764273909579130218961108477327597267113970403345201763962159645492982804423435854641394463011781188928487224486465141476087537953512110035723827342813295028609876204419421572857500090313797300620159525037526451113329770796715072544010619023649576932394301839770495425086401019869342235681521253331064113713050740931884437026918997046102535635514238358601049722098990165979263812484854413849450938739071566799789178776489590331333508550872101438863905259559059165372396116814145579062196672491049230117704044775171006411529786314174225891379327326313736699465586106566529866427656902773886858294100105914753983567636722600969129889228179373477146006878487387462555783192968055726344477651124757780751729171525317250826808566743260945333771902132266582535525925709348545114752288526184119917909714632749565139085550048399047603141512450557357977232443552762974378009141746277470185080720556942655587011280624357994422657393566299794839178259799148953894605373750554834394276206568205521381811179031196937700603799376490105361901097781206445619727631640799285371131360201128059329949103065911560564151340154401699151009752881664593762910137455874166146572886282597414631234245678187153298497271191419137329085169512743984724524481121447809018559654818458656518464679464558325108570229051423120430204698636818107616532971454458703083812828863781759942883043669490415100614609097128054770925846658541785010642760265077675617138234036304762896710252243065817160226169148976903772824770951670321478919492983330790582399583149580932448159166409009349076675725436213593402245771374676383992701530108631022777505014793478856624094031063970195553053468117700578149161970505153270912554959801966329431388065387868681548945283295471873020214644473890818237707102243666543118399778710803697595602035762429253315617164404832617153775335928246528024762780610205438301678816778454596042597957238835924071278509086439938884807535205166479613476632115901654355906559476589936115405803695110380155550410838593200838043886375074820900709029070340552566748152368445320431677808988475052903766702716086699926976192535685697011579520834687385615251647312979807448613395893609329195441750378250318544845191667955408432886528786037372352068130607343884350416746813733339123834694196313998938962880521557709001132096741109291202494417921009380173200107256021442182129745136344416235545018324414557382108628959836279831365691696708923068511439734571039518947522768095688418913043591686797362062522696433463470901541543826671989222258885517711722565845685356146409007952754561942370958015074776879857235783016659486614628698915510220564437186294000327611008974070218382684990729711207557812986988933974810652454581323465406073496639616937386962491549562726728441789461788965130434825090479590394370119506308829426135772010354707216779443887393474089376768867533994861218929883703855248167014505994704473597347227263489648832627447588897348562900812541143922857471306385359498669541101676684535740199211723998217319008308256295529984970830922547299176557878115953961909198824994423336442022605256436315438599874006840461446738098411023178438022510332768200041586938893827108238644419973423324889540728551599446416344135283831108449993354711580517977763004347822419597732367128085541455307661037154769656636469005399846191762855381449925210230336692057999314411278390853169847110072141914470094243097045856443837605074846695376135341705367053972367812470893519578663296224841751190800979082194799709387015452450626388042121904597438353713121754428774741130864174580418952181699973504098277639162449642884339046984947607337565210536888757122079483025207837250589893190082203384493744771235025574536974339159763289023676827816883908643669342229862401127170261326807289909867703864500265489239747105379852555341921262350745034025834325984588888741993925618376346053049898849718031364350449583454750168015894864353548584154846079570637762420163579143908827038536044684502809089257737951462684172579523621015962368649042781335254182180674071069221485048819453695907710092203662150168606276694294490379821430329016646022916911375847862333579560115697159494204188896411956663812982075443344133422631986940292554120081481330735960401150942201395545728326112232135053169925716088377016007588199713908327923365058792436757614285250053464407619047754282084081206589531442281487684523677417339902826217626001536121911593296760751184222470153818840980441673787377738538553636981693232960265532755879146457578760736630640374404213807165024666122586436223584282743073252303105467237015608820604166404679839309033365019158217249573307329797568708634254009954900439068418981629654178229744921898061587457006963547613606853621662691092536688823606492915216060801014582582422262393093486293056977657697982081387576170829461191299816687390347561791017184410777373590953255157890548980101307552994048170500994256110155681037934472759712786698557760096161184084679016841096789817566956285933888788785087815560507074152102953206079487111585077792854359847943960501429893187062474242604889818824512576020839034202840710681102240795833907415757281646962337090695339024516322463979868910871165785441168498164273111675938174052562367233980562838532043512455314142578697632467210439281764005124466734315484450167675564520614736347939402298471934758861247321742409045344765716311314769556071981128055170183492112930725290510556600909373720119299613260485074106868773662707619521584070208573928541364779832804838870544070342429980317925759919826755701910410635651528178388988824064027662485682410712425335563906135535884289109351108282931981990337647661855168201908068831853847662931483799052227441869555700310162924346354445648802104784843812115280177895560758903274571696671057975459392925374216552781306240456015064623417118926918954592439542450280949202022404752020980705644155448113673687595690623475104098548325105620832312970376399879469599900415521738826084599015821348264290785314765167473761646100546974924538253233163031580888691166048204098688383914923366835431872407027083210661008299798628920876362877158263179576605693796799078100575516652315276949464846301803388055616799525090545657059291045815645418394798300010441901273363416847717669100389666653817295902144882788581434965991406926279316900725643610976939627937004304907036387148510066383531969668045265593230380822770714453783223164629248503716769099920092917952682956565098066731803813227543459828280665980124092388349255795059250071759952927050886456998430415812265392356256476022993994834818957668401224953155378807353457078388597098239264502029386071835735631060031375154946732731869566768041883832433795494343200902615214663417694348117649308529729071900303752995565762365183038690595159257782358608287108944509633659968414195460088027153453467374135454484046546414986300637126068071516843704340817556590084445932575813904449227960424767412897434676573634711935824401089710359146100528829402847792286590196377312369322389177179805713557010407339813555658722157598048778756076424213919737297657608030862294609180203401992126826900277124630031050754469071899878032951005018522477631508000596804712789618674273753013401257172206558266122531033879955895316099070862907680026536795565276523366492387152677988195601931278868789369313962581768517357854042368849937183852626407247612905233384455023752759021308183986433675379418375884450818310886184267415444842768513659443641516643513206112873021196152015373119456119668510171051594763273857991778140414915806788911544730875971013698081508785999211563667353185259506673114903646298204514931010539967703684113015812834536684698982832773848068359370318289466542236930141189897629360493461993935522344166175772972051097423484277242793976633368474195887538942085351154225187322934691368570026243462356747336399040727480470335915680816646846076190483253041626748195496468477980352561361828776626199433454283879013847769115129051219385595578982522107220737434276076119305047244788326003369656805997897725917434183184972487651330445482450247433167181454783353614942635772437753638419717208575513879341737389682870498284911045231377086386231945746018559753876053450283491335781834640507066844303091393456219775311865094554113250467788143803579481366431103172877656279516159662720583245138124345839581103911378474485336217266330411583328747495905816868557100939232313045605519572209125121800049058161317514339193067257372464838915469817892747587042128125863035151140468540934908245163080518321799344487673695412859173827182901078527178041463155156332191257484516009774425683991434897188626606952753191073376509699776607104720229854541051924933018199187192913314973199513145216998290457347579787581591147399252367569708790071552185577706022312249885372441741395326131077191430881819608687295763944165555875735816790078960783930344572885086935970321303741837532185408826550497033378032167566311489223260912920063252702449118944750771331032251619624607177963978760012544539880660258529313448673606107445393206683681160297766954647872770858444289206204603217216860260704553863076792880968276755871640405592061260217525787845329856575554272059016467878149146002766242615729354436304642599875149438219290786759214730524629983622785203419871385203835483808885493449423664831232344559216812207705753621955381368087034565393063108337117656426410270284329249076150855807972967395284064477307515966391010065352684245314757768730473798998661746055457079836765483774451196304417973256872087177370786087775280712339006604067844635138586680855378615141229477174124719271446659152081567186530335079081620956042781392027641244762222249539583328222677648805510543060985580865090197637690873320961583418152196233516064987657877666939492032641659444970187029877356868319983687240395042082908968573554568832953577804114420151560699613966115014284456577634111286769060519702427796036078619373633477771721240846899708468583351418760708574748963599764830676031924769492742361686250460366663191540533310152409695166396635986833434017571906705503614812344308009089048538635862256103913560923225761411552117491312585148235636653907562142638262314931830026835857922899848877653604583109723308985156805374086631708909864587784027978674713554298226020197877404261294266418896214949732239154554899205898004880446732371636597241441683483243522817125035027058010748344809926946899600182625667490501335297085713325384527503100444733913779018956793676749744697411552687310815663408598620071561285417878378772680725611675450319137244401767316480493348266042073209450425601082523678009455066169701569353027090954246639051216742742711278348157640490201629310788494072493954761393009360752179975966355874091081011490079527086931659234280879265051673709635380349546498206282867903983810125921266654963982398039874741821120469919946835915913833150676281331091872435304696748468951379444459755353718489735853478561525346106900664924486269031007173341924870479791576481846347810803865644940365785042629834711044307899264512920878646114261594898579416883288464602401994108465447701822776668970347780416461931160739275674910450803453726764237504833136443674390628317202338897808243295393904688428968820745518467112469796926861396838506119808965545873165766846425155923671943214807863243268625777336131778569675448805877460334328231888238884006818718330237021708162671385062587168255622379306038187582122723468214410005532360434162117444926964124355125054525717899060800802571384205963627481628312106659831550601694800517594939556836091636856216640813088214968276151833024006256429973940592959916730642003033111564945105877522847827292554510779777606844051117418601479068927554276888894009263118624491276653004818404153155527478207750891003484514842962021740838598061837004079827041962840766939954324999278626703010380630326259780205284003754184544941454845124049348465992794090300322235925361995074158025366297250131848878058963955402616993373998136793545560472982206115226555515162306114266783666174508895349064008871256596015342998531746515837831367666203389875361403127886469951688752884820646909046348515447338420709174717437726694533753195846665795583374055744135887199730139019652543337543566602255650225047410987068079996353643033526607443493054061755261846073615943008916524742853107541870509077264582258991089674407916736347976294971260934716743543492731106607157752700129279432970627907565662041446411337156395844783458285501519620685818195208104838137445350603419768305723935005719427458314489462617014042052202882919276176725115523342192300703045360848337011107504840434788951888670435289972349856371178573001577419682267333542620861952193016334062476431122395811624824836882831378655953611486872872099009121245498849577555391031636073359593796884922274280068196506959026001194876999248526182417953098957728712283598742556112688847246314626597541644196214797874703203535105135627310120838168131234632523498393922105285786283267552954091810853638237634314956883564142165461882139559353930488559276144748839649119645850507074277354025680512361323011195389933485111668405052316804740003477869189161654221479348205066772236028722805676637024327553432040757079614350179369136396104059092005992171571671267804837248495339987267054735893696077004377971589258505484742161175478713545780179986154966191914497343296737652360068899074160294184726555759632441585916420464744830306972721300269894562421356331463174724016114050391446173193823948563405297159413201296910370800018572029746885497534157447654676566775683504545972811477307097663381179649233187318813216227716572841573984211206936186046769999675770492161182188519901052167609044238870556063382269818694915027393647720188464670393331211519932158372064797088738101885558294659000912111803798897048706631375061908899813648903786473309584809858299411265062694661657539601350267484039504749010421385365579083127491201595053333706885785334293476854368950788684204814951857712801678101960682546885542060104160727546468315543429694718722352219970582432286052608902306549957269826537732850106460590609217847283576329649318765227827144474838382038200003707730960606101409075044203508363066861197849312867873836820881454538929463807561438868562292749397476553604941214906791056901596262925781006871439387934139650284591981617449754836990216643930232679453867762577833079182433709303552441436741591450006713666390720054946821439040095165339427319562192853671184701340758494206052986856628363982124390961207757967950950601813100818685876814081523060483912846739191173136148201868317010676257066525620842747843887316065925342642097288023400646407422705716340592835057040256785002755392860127716831071490527552694083908115118266248842319625759771580144388556135047552137210483278003022006707086352211190876355415483246881830122946286725854814542491894151834590748181733174239262828217750967440887760765589069664016752098478227729121933045740386314836055132041860248870457054693596274528013470889661778247009264318884146179378373316342895022610807705381391398243108643787380214942359255848749772957118511668213120701539327322484374230245025674690845244777161635195528057970030228806580178555993646630498880937670290710951315050553402557142536541021723564134205113543067931314827314425916990411519180065144723472540900405839217941432137369804608519569734933940692796505770981717642898157697766984592542025874771903517384551763124855109740451478046206376692426727707160421615640861412639703139132735741855170072188962413799408266226533706172010012090591916199522361995071464976246196631174797618949950895636876129494504832882122354228724171508729758472243944671915245900769708673309593857663774196075076218678414019772377213235261521976235119058192965989451760236484419483386900695705264306030095648925530512487886654170384383293707211245078579000123184732043063196945103254527402287051685418513480761372506049094405683437340570776365063464682329649635310070558412905033635823914316000638161445105277462520651938330327586066101328653179722866934319033663607391068098433010552919029683971907123404072499139255479915514428185337525261485780256530829947909945673041389835735708307207084202137692843240102766616010952623773909617423103921400997390824318100491314663976728156767109122950931017822890676472600270707703806510492151163219921723972477719083231474177480546472937322471233445369442062186076049286514230533955230363299135491407566587600310271425027835711551235332679979770553251712154632506234667783474990782927765996972591690661200391746088149915186228631373218440412270472107089360195811272667386941198878514841828629748396174497491590381199280342748342091605454892080641706736678670959255158187251129066128574340243958793732052454382388592685077793072650513692147072638419529073884319183690127686103316333451125274644423544175514917948723652662185235608835488470084346735934443462787997396723360225852434262614593766409247135905225767794129173784462276640443088402066990332415376560306074906316961675479747140173940067280228552401559555148852851554404292157195249329633758373205441715015320867105843836174187752703463480512685121579176788187844374043269328664060781677593837773053131226400399816447015208537804898870397719509835933105710115279285392827783098650103614645641261561950985373035432434030689925276990597135827282717478336882471868659826933296620547386667935069615648321231167426351098703025327470848805053699270134721530815009672268818418913817036992349104573359171787570641623324148844876514912345170759759156201013199254677728520948264294023355958262855804916435769727993277052892079192354091897853680780930617872039107211559523364284789863603114526842183417844836710398959362253943382191819529902108963695615158438658249829518074116921077671793486426388671823289123503521411065259971081191005985362988175779935714655264114576661571376606427441606970052636139229436499216568689709307340555725041617000451997082239849975832351043626130121299888019404997280686798019569197547741342723265379398760563392680753876774873708028499482794168661111568224947407375135542548460193455533697429906779719842100681437188932840352077844271638333405876880200232208684572058279264356754580493175846387639862355568076130292135861671960630585915301124333331931687537262280324027841579228237430401330338352481606184694438223819398215949076831619958226758108078978919684699475731603636485712987925802001250980480934068391389865240963756102720187574511130843174852187012075280832590667378552862490796213964394020804077504275677336806880038392441802907272287564060523266748088280216319703529694994615728203633861855123483616351100059386555079336913775665651365633015230591396567561645261595711458721978528601277975914619802580228644307693507707786933478490024630000816023350470073820547361296518147184422286178086861752043243157055121726388216671512132649894808188844969119697462062356327933628839479769770097992626905390756432909664308056033607903876928315360021504986128934890381131524593803071631218478661661928800561900802576706516716344678294235955459292280893865145899812655330113387138800080736580553373875325033930873055592838760735628183345538035179230130139570181781133665431657596302982474251041985129293316238686335101953700610526326701654750291319697760835553881373179396197736110476105070417921439609336712133158841027649750884589900763225025084691833053592793897187579738145632975213110508656103265258650128701295282879997038914638322763575973023350772487968689646568772489844713752392825471294634340679927172916637538414372657174478754649214864935679024630882548615357157942535035563257857638853820025506699390758252352293766894580181138799789448649239961660432386242401410989520601411360100184939953342293905701618041168533347724193502490984542840921130744011049125817706213058094665027884165185644982905330169718105049305824040351247754148094121790705071346012311241212188991738158774702372709171230890247581921359256657953908204291878048848277055865203894814866851355305313718530775036827224412069814863861092679474313284318071076661853540810046109048175061937587341235704377487684532198639128166190442639680936662371857390014326512076214233504133259200385465590815525265708963229918709384366493737464743047889683888285799061076974857702101312125201666234529403114224647206899953100909301779583661996017489580722257841501797212233374777273453966411850686880241673787849792316462902621093955007909464287156007206775289622692340296294242181109617626878359604109482020231877884620918403098980966223148929929993922894127456044290116622336885245061575694275425209522590208616479870047901287010472103523865361283266626799517157078045207460231700503096683442895870278922459704787031165925070486929571931817140527816562291703227272435952397838578194866694395077584863080669003803045080198665339995770901885330024312069140216222248771272392617504088608707866987201685105668133235378775449730449941616805927282273203771984807843629125050928512907643477081897118123906873366970215951210869558555355720094935001809371479690845004249647675316344900735744197630621908949173469314307320411816155361879436454721409734203116462744079765304916611414002746048477389623840031131329709237447963940460856706309048451301518794048714357823745436879484267597739052125714898610955447638452523460635385924497324203679464188946425974831004800568532587597353696208921343537409262795761143008570676512777451703201262375750349067188149396690951841297795828522245287794990072709475608488352356356943976310538258422896070046049341825333328181575005557734929154604276225705048032085947691999080555274286866226887402866620502920450639989734191965255132926101538321493751138380485098346665798248915520335601066664798592556158036136806146180209728404841972989154590504612852811281734592625083659756691292064801250477199303264367771679462233622061159317604950330419342339111748539620699279251146884991364703428280487256384021330054843951753550011815541892666826129560739408649460949063687984900939274766331068441821491554234446388138274673463678987791397189729743586569922597837716121569654938551268849485911082102912146332798533492057304439622814158942568939433574076776432295017767775901925011108433639474691710185411273134435005951232616230226427635856010702688548017071412159153420126010428607177967641619870400723424571594806521666843211981921126332332637676125885811212996760076372193837997043929722604549302165879938714605843925512603775091044629119621826643454301206277362787756203929038866480421316515465404159998530551397228333868974616245946647414335926468668146010960819718952818464362810824062757100284467165769302043781492023934489685853358362401917470592227249912894826298297131955303223004084047854241909921200078843267638692822277689606174237683128219370382616608463938310680507646530772344047196215549249797684711249419129430587668321597351121647410227985685290386196557187413414942881843870991921177705758635549777570328285518564550129158400321523886604648159161079906648170780520164504205845310649673422123967429719875726174001437362780440385388237758831034450029972323598924372992216301921247201743978708031811352777839980998367925326662809249986488378483683852409754263098547226573183494890646713954413123894498486131892853905201400049630070203192292977106857289712133254682261864625420870009893628481370462514446562608601331817588896337530295947948751876811005386271949816469941168311433097248021874983006823813983260013805299537310930427036728603006190458350820957254634727298558908118377586209106286563066963256949774204163805876273254832027259158308382061949747081862626731373565609582850189369219389740605730950244198477771663607352815632940449010413894912475484269820778783638798014125698229453955311566181357035041468727104680424796505839445566934368202108154685842419222470884158625891212709261345014076639229453969550618567516858883700137514603482454236318779676979469419312483796837363217985776576161237501143362463432322661281885579966778470919372505428917264242857972793459729074873213178713798689355898255649526703699158812385535057413727518043707624305805514864282631447849072824104842401612882361617064090903531598812031800384420711831641868802703354475988465985586450167863732447456877426745263543223602775913856171229592493131662458262181174158513074767547092975591567857862587061073497218796919551288874990496210404826458571908381845570067940881795156349455752997556809020683827943995666196700764613459672386238174496100711045219975581907823995549585245305809319196286448257638686901680453102569925430594302385105645803520128993400931940381903462008633844772017709644253607829244483471273782888469775821196042272831778684744040029682360574190031632216212741425940629300226154524892329886680989903959592002103579762670434507325092420419440062463562499862768569287230094062011212749971433307959769354443004793756889855416451324996005634501889192237757301140914433334510476521056028767786468666266143751981132708242772594361696421908841619563100374061033137087709554979240484048887725087581098194279505380338080438931020886611751273358324723980965023913675613641768309703221230286489306929264808112265984980399162431949437401712573960341024103857221828725065146191515848863586367749336512181193112531268991262597822068044496163612592122766939318668767329567122813772256555032039140563586638395369840961380285769861695164348276045093084407634845464065081685695583332546496751086251704532642138863181560457969912479226149177898942882888504416486503469310678251834261127715678273309169830487059524023574590901794118327047807301853811294139649396249860099193849813710240930871037476257907754820664739826928487256650697702180518563748440869992275086046897953344592250690170122690359537787960486442048446759500886913187661777048825409307905470289407858436253751689802208143883152293630394931821694126678641191056135290999902396541869211270099756831817537952198281339265999134092222145701088150729912027687329925712380195738121052769935888391342566139859216641390906261160688074867040212489076748102526649921487049831501265164261368020536104358987927668434922160296707606539189562179832954120347847422122866799184061670102942600079784334500451676574538971337335946139740376103268751742092132946890720023014709716418031728085755887756828677985388666540301020944125060724380765175392094067116056240251024304387499485351867155494330474068558298206304532084973624251337455660887532493439543801356295203001239300906241722463476745522993362509365061759897860091438599407974851212201694137198761768088295561298201984597533679171547056991053634453614431199935228131566052236345532388023981213758946012450205031593721843948645115189427772064058294300295904933124436781981322922576729685122603416866640965699098963357805321645835272172481979514632771210649703663209579138684144360495567495910035357687480572144316072576938869161196729061248119648813380139933555296144275685203074122935738595295529853827748926407489159474925385081203160161779127008260604284240464137088256511923473494342785545127272296400947681947724053243003853650360535730970911017431732397550634418414394927791495846190412323125452353584460774693662193315995150730902740437165181693296174793792479140067619579367174938226728139790167208974776820112006729597135525761853800464611083011724296283958995163995164255426735740359691717261298765017659781813006684322815257185080977320412831861309134647742458808916686682840829642968904280826756591595237153880377231272837789655619096057027346138323279321729450030353399419082028062761238392598904528706863319489399880729115689604954075155381371225683922440365222476231133973372384441675565533563166216522751412032678924346436380777700175663478692583412108419427528169023832728306371335912571612793308959149152238153325938923876337945827079460211818807964379314651921227860416839229872198482700952740864042578955758052146226089397375413816836775392505900074575396137305780587338908789346270338776912132582644640265011509826798816350134506736167849155385279797288963300797483996568024992806035370981277585757897734124641635145515252445459712486447602593246101673818490225739327189425941173572050123463227543509615473588899595627763446996816275322207090411365406671141884452910564798976031677958853091147922144045638557074274017686874509945137633762779927328961572296749739107671036407508572806034167363044686187638946839760986613340082661139883128638823753913799926742705901716554558370033302186924638257024045529232114823979327269816505515470335571829870004687943276850049115793358864623426816850967631565771695529320151145118319188974513690882092311364628691235042034627740225654817787729924079785993878886692927914479890750323629987708988323754182140791376289797041917343734375123141431846427925775607684978510593541562241327808683582759873842871869280158681020036194807654617515645077700890942043911726321154577558431409541505459115440892268361721678501521534550304864296289840790594668897246109414194582483841386919971066438098394256682883485015857696177378488210251572040545072253990707539986045489220285641523051921521523687653060162111663061336953674913880774073782887357731605571790945276662307947298917701645917039470249752331221139337989207248177320128071794147421682519364149417202906878224197985307850126208744997695948591198192836800050808263775609840760139599710918434397795968410561083342457378497323011773213305160852173425679377973893946855946317182623738457389983741050684549584955755291019252294225380606425963654643438598771763386358336162179468857071407621889909446736756960682216989645155772646527112024654983078089319705443641540601682264079863010218815269629829359144684014774057731790643887797898858026431415355807364125622329398196774399381934427339958262075134660931321652448203692342840698499861958540612161089869420803416803351249590310527093307948372582428105059661063843695341577888422636911781048437571053625596670825049105070767894651004909956123492071403325341467693767293200731554403641731723384828336705733680472089401647297263055729870622598679916976497734168902247300926003827252175152292048736094981004301783882514102570634177730205780054164333545464827146167586348091853212330490142766998861572387180722438015668845010697394855903462685719566332987010714191453733626196394642213376542841198338216172914053470924831567886762153557332835378968652844253684580295981230073146194770087874743048363174189892509357562576197812562909418721825431606926297442937989402372120297506238019305675778728214808564008260249433746818618867901467386337557648486509837929878147031376076139758630106728333311657483416612898878235845957735991585895812351639823143908178181584433786142240928873418619721238104920430840960750021089997257310165736471385742053741375349068812158978319117053541249193119149029528776308314326245473668458532956788916734117343020098171446253757210623913964315636587906253406167010189495353025112299794159297744588056073597860618574789036555915250726471159086054523769868426125215090714046905040754369696956603029343865537449751183564807820191526654606825462880103181519109779586608647544144381412446002016795043917856836127280424017923548266457129966226913723569842862898944665179491075796049579929404144275880982453967462946464659416938271433090942504679265018476338259419239446191652662608787489619695371707290440048781294403891185559127894125453791317723636840827906612560609817947504085599833178179219078404279633054402481044345769125672584778266294665729774129868874159678541262236886924824702175275319967819888065452856285034788638271211138183402954665770929861393599219262473838949348885742668820414325914641457287456092027115941107525977743265057403405555116900254498326819096739684984100653589683356550162002154643323564753231207128849219725170391278182967521182271546898452313544949320633444767897262641573147521699864609144793692757177031509342188382252145092058009272903547069337315214234890375988366691053685210788474777874495137915990353192778806972293247780502616225829453090594888636443681856864082565790911921427563005554290141695815382856843109724099082275076201178899778023008561270238426736479572835535844222338021915898932936000613496462916989076651085574960503123378726015833233595513881676756096513126903075317712676247589391826899597280591810343899469213154585251662173165910168492799565074812898432691266869951208733201483265580484882144364541635938418985902457404670135475995224675099524748327419914296465304111432214772455675012994495852223352324660625757555258648066866939995642597720020275213336394567629143365546011376109256288659305640280915881727644181509164045797114959214984930906020348994462597115886188063808942536493404867849987477913288385233269601228548761509115498128471174283341139726055101996266869569675937486104802129712372756560924461277077529804445697701814363745093966069295311273231413710168252561621174937677896405828338918353234395267614491216422400613389145996318241627005502743737845204138851399780946162631336776564755327260185403925443569776407405918110420451600192999547201196272594243004727143650656720407983573786242008146610216725857490435368397439389562287557652789069587093083484789274352163278393571648290071307879834029382185108273628292237075636823923770292083539030504915710697821010582959348384425307656075652876226688891976969936112116865914138054114532588374671665976137373364020342983448257421523534852568819468178447243084079854125260352199927319826993158971299108040232074904420228308113924374610585498459057513256844626563777777905802238349570826035266060731711599111380774547659537934917124567797477732363204498207600988093035127985652501270486135325831775427331546984539560411219033343329426176043302798417843253012555049045092134617132764401085359110218667611769294447095743848657628329566979063222307102458073062961061976839923731104739062678164030465868104181567327626384576648691799458324678741565332529711289457717421762959109247146546158777635901488043840372891598544255684246566946017087279613497820885059086740892179790868323397702074144562843233173406359247720328905909607324500017179344562182884524838592094124393052251154618374814717645338175397624960717791834313052163590593297527952728653704214542937952634328387552305041308279153583106247261870357038273257256416616185956334010079719131643511022797721435156603382136615106095322988934088445873947758535085866500980005611218912847671527270852793060888545388092903335844622774068179416169386731187727808816110374381499498441024399328083280083905034728460162050780804320214652820938644018783832396148869075916402405435041683965108828788260759664460010512040817736239341499539469135700205193359807151112453344208785370371911998687814555348451265610809848874910105922417458731850835427800658600734604870645657431354689027021794979841763979553520799696603937654712233258378128522109573285221699410913855751154459129154073814482126516318278250048073295508580230959694413381786519147573326410927476637170979649929898768718928995704844533095317941064372514869834009792784611540368053824587788653302729652006583383881039655978270262223950602451604472732501951738561058220950705496091448883075986911126525163597854176427874373101287747267449334918650723298813784352577626470227242849072854113270633924398750676589599283144640338017040101863044897396801075823005555627099209578133657163645991146281727763157428532587106890193812332340603956991567389880821225684755063308608094139862129730757516929378393232593857919765200696631098672289149507707358970751830590770741317506918364480351902792384524096038743959702201886110682218813340659999498405650775368648416659731323130250563545367921101744825538621590671887219651780987712944345720494514953206977248718241735589107909707696853111432362199054827117366089261776684164164897162607757892744123700007818722334935472730279750661607994511570125968820203616408436548357349126184177173225073029934036355898738159122591935040598956419819346681060214555570788711546185178990911302778635038808277151244551271798967250560770106963304290232394410373054515485676915236005269559449757417151976799961196485097748144506337745714305349445186236427334685495529489925311490301628915712783128995595086566311117052967909230161758732416239880480410902906990365439857965675969236753302538768750901193146628003568198081002877431860653578229738983590634541358227030687375250294034338082526554661169359966023070292954841083921152991913913185470343879415099605747136186440157651314895310123594459042220536557762410638663328010175606010072716684452359638767677228169869859239388522272955645871664454397686415020807777294530873094610452396586873624484182389775906239550450609713061836031251224065563199736386643879830064024526100255190778297372271150281386318617351894498172181409063362567614484586370838647117292437010951121737138833139925789285399906078565983505687510812980425203660123431743436683230921235322805383332441180033999935956607007237063638766887633733664950883757314416574310774183918321106906351877032554851983879280498238297459288479459706435082104497172908152223678106623940644771844645894643113046249941956550922613516822348051046796397300015479165262903810577470511061603472631083262975856923332831749070128019547254680754040402474383716823990408936055204150021116271914175249460006269419425373129757560654214372814421042043449381797937933789158009737810105633351078867368910005058022368329321371903150747047638363287456694284013664684163629597692014004229176549523075182746608379285294365226175516969017979068341087113700883352748386686346884718656105210117958407001597114325536929519641868073723921358179477308976942893684048782941288618309404388099481011712117644162742457582950364787532104710186836680127359129150075814107272369536136574119144594880233079374172534379753827251199330941291705331616974630364328085368335330972227064538791124103002794237114474268106306623584204681556406337211129717776075615222951102380793572580065903002799686435771239958959689356541815941952330962818597866095252972669434146470756289551992788369483751317269274911500687238928424453179648187098711680549653001359412454328643532076201912830855876032276956615778737442461577771590801064201301353093816021986763803654798273248729418469567166280274197710896769975198017028073521389549161470252372460679016828952724312246899410519868302740819017188406755644281339516091373321007332390996181591589625353716466877388956350462738370266706855078959139671324328733540843218944525537529725262879753541999718741246980320340306887531293425574809461290067655280249252382056976592513022482814892085102167487434903191130045794291387483632981812262223050473004849535748481462071217635420701354063623227839967700817751247127088953840571726688529482847465895891071899521012291396032289326592996906421461573094173578059229255956322270997877250559703376354753078762025135852791821114782972305577285286996121425036692356707824196049010148599439000355906854373572782971174483814792512620775732380223918795006253246538951018698042796253945128612347321244950738448375576277553797477769727820117713286618459929916023708810349082838870796109351819777023484036241643162111511730651838641041457186307726484726333575644063432995910775184276062092453511479106745297744047972910194638904110111969691294733372041394601209025457779378157634272049323327171807496414934594627020180008669126739385925265331111492566110245353833354324002343548855405920753671724772025911742469861605534661590448648023475191730981296830104928197484639328512284862926202847693852361889309172399684069596614676597135264946488895042606612072194604053988455320427853450645978807215881727451275958353741946762734734455654697981037901887346330255329884948696271730355173569540503920568912351247203992260968688024860793366327257603099085861187793588988141079119214725089567295346955870687594497099918062077854981188292683879992481860992902113242664086324260380954230181794265971857064194601282933353932349110507595779656454183288038625411023408147892516089038086738089530728413108935166297905461000690067307471308790768997210422571669956482133895538548558492178073239351218350106030612642479230513660868802732342749334610023054279104046171570042577025860162360050063490790825745257754922826662799551868258147424184006822543507606737036938099902196449367088076704352636237481651750079741336702585985466779840296692532870020028578657404266353546972793698263659629606251131833889461707526817514038988975991276373355202892964339876540687143304393544647034137735370169442267749692674604244817429116240879035175632600424123093025829892781214391491191367113174881987091805817755338275871698445060901952661104224496774778376533558231897324133469905424906156061002810129599988699337498992566456774407988055083086413589206910131553843205540011871434248022708950467420243330089258978661581745960969198663982054024939984325205300889689526852858417189586420875616772350541967174154548033161967484399668325095210272765482229559870106165729035608616229586135203893986447007944480456037688847408758607960744317704814207853146746203193455346098376802971026635637811707455074310784336220783509129827719078559184058669849230620168253443774073469499374476664072618434661978254188959262205696153192711344101112502639887068755137592314545470114842613343561625810221048517020044079231542998576542329855069910651809707528283620860061398289358094930914126243486849331941744590342971293302651113864177959718893802569405212245399213240432123180259562002918280932517416286843589708068435172856611505761472971447389992707691385878798365019406812813589402904605779295079917879679856578462996021628515417662597843356372238326263929811686025400194063465793981721356695819751502817442183358590158440469661128742785448529131949049409747023070082561746278470810909349471798672128478596996572546183798534136546356434110342389090407333431567442954813230273477723635890196497746584704491090034153353110307857592259650052419464162847317161874728686767641558937039429531333029274592697631408875719811963804990123030761521884705565245346892677256563363143723760311297917165158489780875593396010355938673802932815754577227200173608912292545806812799838477961710473612159504180963514268884039577368725106917428461257632666429894643501038004621474255249063692209436377974122399485912307276802563134345939739002750955694913140059964496727675627505648075423337735584750669829246823655398873046355637783553218104286425227021970793256367527570498085509073472651164148486069981583149366077248674371988175752901576536162321694023987801541909616354622708459281114731759192286744952319151688571341513673590692477589079165810292832699107514186931355813874765831089437846116845502704863958162270813440615032725824150210889558592753988660290304292430439967798834012020931183145190111938405379964763401678993859294682414135489891490834077683327321816473671620444086971606276256888261792983768640408620702029659568903133929172410345634687636598892468213652440991517493256175808692745447785540468328947558935201329917474377115196476436570305939462539155907861387255565725856315353220320827275809439260804097916183907987889235916722683938238917925195800991132674376256945727870330720557766825454111285544316154878382360868019194771405654037741942236684566072391786004607923278908199000039580878238600984861716372700684861919836873630681705965101996071494808024446281187680698825852086052457050531608818034479865538996950026684795786546807702663600990194144461415219822445079085517691320347078521315687951832751706667073471707690325482139151844360532743808066157388225968859094745057897703299727918868578308111528198711504582730165538593406358970641324341924731402109642674591695096915032135592972175974722585994391256301406861327006610442036068776090732689437088345044511341017175812804422510929677514323181147353484245833521444889259832879490159847048892675675002893660651477277614625100107787777877600257243184621869792253570643656362430279743072623993064773204197672258743692476728177314813253739263585297946259879217844981601002507336219582563224282418354487003428164765390539993452366119847243751597883150162821529394633161959832296422326062982140350039129336990758933226917391878955623655919418149260185598473499513545102436309084951389498766900353554290927323043106242897467396039778996962869255366498669951794196755339838874544217119619130008782368986941027472878934707278681599122051405713341014118135637392187330827202904107785772402196097055337784880540999857428006501942218349276022945363433238465758915826607690723613206660374856485544807553421770136664057868628839836719431585817154680705656218569007216716902582494146050543709810397275614807264649911443361997189227489193463347096057918009350019445515775400978336086939355285435767609487689391072175851626241508956247059110467925728367941305155034333591416837067829937051462477157034332428012250213040132845042558508581845062436034936718327793406420090613347441107852636322712974578396785651307550172623053356078286737846123793582882108057167632416371892534586982856547302489185097085358168351597925980454334913098821097736134805797842844974315491263385017802680710216667796247729511324868787780427938937548669686090268916282292940441934061624841250060607905933895744523576481404946993076085100627352467434149022181920377419715150133244309145452036818522851294912086770767705585187773250146956991551676817210908991581537007534260636287331030853788695632991276420840326088188544807954986658038747160611080990757889644031462684295157188442755340887852361071240428898616216390370034106724937338130357267386310481602470180674146384556601568170718862696896151642625336237469197243246447359064583204782547311718751194608449207689574388918210479763757550364951294224385674403273574248374488255306355673206478446475927149394334443063992493695880235753072054735497935047332408973607460935661436345888787363552789342969895270796886533665622641726610930612532621048381951425530006700848744266125011148545720490081281994266389607092385791207690477731717564406613803621226474652462923839078198868096370755472439192148942488238802854658282129602380295048441521456489576642489838164175917586478490668889144563637619704153949238978759755722414699440197282432992287752314905689482065682932900718582029879095260256644441086893507690188551470205281770334151364328626141139092993074761904096117540399813009897856076817765078031949853644502944372286481456915096266051375256328203234545931965540080274155080875833488206637647164451928602846142055680475169574563709861470613647607249115396643608498407006022832857774150915599104706196760331297758236304609157162527707866253205431198330402780440143944422622922236090430370887023323390850919715727775825104957241969209616945107158649809346538236245019462136256148002675441529179249291191379585771693278442481940605552660221402341639552917479926582048385534375945461669318829149073789416299560124825158981498341421725606371184473811523080473465908951950367101167797866117677705479948610741917372017425758300721741489682535873851480755417065809250925265204501875108621443819623290765307883864133264449557088144437909549362380676153162385543721307847098739987271254086257290444041349540472410643454541037990810659044482530273676785399197782470480441715782055918935500943895743215809546016760349560130811642868979371115805976329191613785749550079814202963141107366563143635852910202841027918975114858824306248771181793899214604545156644220038538659489580465260541477096461214809304639708803474876864605661061533549231261912539321148220137321898082619555383763777007766575604628983684655047311749169413780667888375511618632134109744596710940923330527021922637497971883528089018234902737919815515829339152342505405238986645923974007609062677742396182573768844113803766620762473478487139147723623528539626660162142508078776039371927265178392176159842689514438936870741880575017261822013052836448278017443815220734039603483949910405424369553449768178613183143720249537539678681423539702551806607080896575904112116824772018546102008429100403846890120289053674941565362902732156338502689138179645286330748482316571686453204832355877159889156916327712893049092880706154317989225242245715739726792177312424483208152819085530887759404129556535649990403971466911587735465506351801769405920199432215219811016029617683645909448060395290699677193836980427089461619156177016059472926985867443219647008073598327587980266474761372094823879274180548167369655129585835998098738089159699040827384054757516522442701640827689147611510683948208315412469915356641130556580115845385067538798624434037322044041272638765114997827724500478948231989727003152277279980596282095108633787316548229784996605018834021252917416709130610019463266199191038358297588413911314480244542388933716518123155270788760371996947970952735172373344796031960908035209688261623185816264108442171047154197922066846081182495035594505862875826270734914754855365477658634536789791467710359744758297139122080404703093090693989668832906666237493236755328379103525584288538126007900071040598607253722118815336246413083420685424479635956824244969293029174397269469424477065942831871334356242367372626463228693373261094600328967299374883608477031915516209673426634014068998983000536009429146417995368567809603553516139938727407269585441860787045535062630406769091228686363745774303812658539242010704084695255409419388991314383757986599061571118782611296384419326967241426894212820730882913509449084258762259490934199823663780553569177069704343349169464387525886253934624753739261309266394744194914759666020518221087393182165126310227822097422665472783416160459085102614721180110612186694908037516463031781484804550449581499738033639217201171185952533476037709391095091757368968182787806519462503266105238820342270080927385114194715492410601331462261453402181125858316826987287349542739727184143002358448313583262451628765946758194851188332468843702815186683844670241199762373536762791121682969659223267981981564075345051624081395116126570434880829399235840730620352955216406458903520369798416525415233279231705806110704128247239531056511121442803877243484465109363930093626014208557941397545400193613685302386241165048401277771154932812892288740792787128768599044290240531730632060625003845384152352820249009095038455549559012200714593173371786367733058221737019858266641875187255035581851981944101083790686388096012166170782668077118029766557536531845542572284181868689119877227391629698780794409077772558841744268807400338216081992410164399930402629692281906424452073453404928950098085999608855603913791478743846584396378870882712300653998844790896362402579378904835458631400841615153165815305930543459371539534504524600852649426945786272244088258244282800673871758740349331678466566475240226369900220158534096991818213697544642878279946387019775905116099366984568160105733345601335520631182669584307107914508840241586318737986606384256531716443070029254914913859126891373272019257358222873079521174592512091186219651537091154289975320961098386166375662545612876218544200276586904493979050006053325230223022052892619884771301682290616888338221586861553932674368706538143144082832806834540537970534762916123075134138289238082896588041563266086447962460045980423334616994085653163523767512398919345535535339004512267830154026152204896549008150626866725235809228244264783841518458212462545350237685110282750167077398975486609532553364235633385302798807674458278126924217322412613720736879348480466690259656100123875770131023606149905630319344699737416011702190998698091406644764631825728099973181481950529032351164365457911121497791781461911301608851574885730644662159733054352434671964024833466556742560928989985491747755828179283868022726274937397017304293371089732504359378482555673013975369595659563390871517888759197271096162052890263710519968114880842058108631528692457681754686015092000829935174757991562393619376533594265240056734310063331948405495154883373071083898961190935097456711059777962858587683953958637312637579991942735352441029305209214726243736219948784078957848650680571598450276746751228265156514693072543457472303404687368714478899321671238769432145676780705950269777154505527223561873806296772863561947759659060429594826209647285934134472659430365303469092310302568945106678866426463879507365758331711848628420014211379503789333480175635118441999597825170957639777419731514130751324730033356595846833041430682121913793491823577240474186492608981861225236518725503493353982814399196473879255947452468466505047499249323399142180360107581958500345760608970410119406325850688032224658686109070513304037692962265230152155513527904081733416069999165984274687042792316211124071162254867169176226832366782911485174247209789993860710834092670009306324258361391147639336570132465264122516301980431687945332204306996850062966299823571536843784395236684658860682592005531055073742836125751192968824869266065168177787690366308917115118377887399524419543916330392615521405365039235296286585187402361989135343390858882327345174302390307313681296603980271279909301008586769419403404234684975156481428318017398637238058564966341359728293143255987703280018398586695581813523427456367124631454058122034747415667676330550266701282942224293472850731086699121544172467070150205358462790471210493721597482574133664440666427909545649036535027173102218811995467342092584472736519374163170366523467730211923500703351425169213028498278780111759817205843927460571291917695426841825858573836440184715964722834789417612319486610715816139156091035516405329233638651490665976919927534216167945390461791757830938315353340602555640095545373344238829985451735861481999961059926972150127024564287214229813420057419068599368759161899899539001442022672262145794562336736801347110539723132964045722994066572622443658473966170999430083024507025950085092350090546630280420172786079084525873152099806929817572941687362054083526658233893875741393782308619230480143090883532531188268663023311464799961818166906712978175953527941993807300351784455982080115641497897810466559173531875104128517496155380850567398284491042743124267103835395824339150553869290438682004776654467188032532599314218129162226566740234735939109346093074051545695353256969459141762995121084079856896587906254240145405967339383925196648398885358555519012789306054406598883314035609659571113375308903070985670942792739611787039588673189792269849543316965711605815269401619824832383088923998636765288722179446938005887073555767232013990520829651103293162790481627155329586880760206983033043246970008199609281026634647295346853456482107484157072446328205586231380282942272220910032877968711137087468197617183601619285133664695303080838174144227349260622940622040090602765250158270334702835055348850115174199476077560016188894228618565384523031262371235221857874404436036841662690394560370395860831946007071349151260433243383056619114285518716780833950588793955195177019950018471750969709349597566764330156485267468756339409998265619377982880019518636163713235965385231724350319009419805986876798919766801700334427561053710317465383162860409613381925256354770944913040651736674797061625627991251739120416941546979778311312509946330441697026400744795081688936068574236357388174772931912437238852738205012541289342343149986833808806760889217220963160511535553437016381366345473020858082874150929240627047675785693600881140644906889642205735452395432261413661093948750615590572301182378815858830360273647310051264946753950384586848458715793452049521270903558799257463895420836132187213024052549590427841656376892704163038147349938423152563561981914278482067887819876406267174130821181845991554266849240605667748561058249698741334051263094854209611191551488875455030999081015327213511090771587205739174552499803788814025064069969449863239411564782421799010273523688738191862402595997307772247821851564441941720112191095630596837118010878904962642063125604162052945566498035304395442826197757184844942160517255383700856287813519195518464641522845342749162831088786295588485809807773444929958244641805814885538387259582417072693182714626770347877902804295587209794168075423214988428783483848701827203140778906105856117024887505641974055395445555344447138679533103926376453104641271614374673896014083813048443417780421166124151802120251325473023515666550231514419353755048403057522332592806593409423671348918952547237532927136098626292359069397652725106190854164701056604328220480560326409116368195203996787326942986393500310891871265361296144144444663184445615026213179992072504738104633126335549464300994701473289156803688517813595175067812553915859482736365367500759404110818571200737696578749170078926193474418543939195363941516569479893124031744496732215069421485880198668822281003295524583373996833246632284220464209675534302668467994671787764547620103621053931412444153688628041376916423358628557982950506663523989803985672348837090162383287394089941533757586105472880279087910061288342905202607065120775374292325556115871522298841063577308044558205128507438173141233353188702913779234941765054063391895641849810870213019358157309887256729733022400023609132974483303142739827039518353700230582548500719874728964183985133559660643092468935041608012227750633987819921438124413804867699877973644203704708041401515385607215171753098583779494832597431326223853107213643986819619919173213654191494955868152980937953444097169265684004054307196127732782181529327029463460016287573992502213303938065178057305136354361390444472320026999854579504518221404375640697401744290526111453231218483851458567989746198530031949846600203261798156956862962624053934729455381330651914165135870113418442639806325823998808782592110680202110437750590680180249593305338121506183290037319712773402566492730796482872526781606169284187473018689211713479357029793831968693003035929831869726785045025576442077492020592178275736985654575381234731666733689365096006325741119271934113638044893493462053380507564661025890014297832342151244228618230011758163963246204653036325307549257667923124199386599905082166030206086315821805034341601252957417843010681601187063834568342667078552298553539500559408752985397159316140596954718821759664647616058128601820461798343561555319236989138818565457198145658960482998649011980694918666703128483600784016120932005794154477677643971610457071333015896303154685159603271301461815363463282103201906753558962309974939706873267251387812125836461888343477431630516594098659327796387332404712096738419619484587530671045595560055225755895131325403363768427434273695932691822510249297600263949652080736222077784047280158229909969747612078424980788622676735624179536766501633492675291083954403759418019361890148081121792033557650428251258863941287500008772774912331986492784025425183438860036605555799542037933365852106249969683243107766018590450644426954883398229959022850140904045748228063528244071661137236073812311806631944804374373392142501614533414598674921895887257003445990962087607501992412172389824239591842985490617385422852653235198073371141869936043755670390946955687191905855073028844527229453430498750778777285900280284727951207629454535711209137341357866622331721050252274325406123366289752060050598271013422202368871361880600988546206230003637715523136231641724945563410948401624804339834942160740584314243792910297167401533968656075729319369588219709879638607815000133272844499559858212767540163180999313579459141442556424848402422224625394463192501229812168745984689304983306427049570158697120132513361363421657442538337857103633357594568804087670933834645671099493073278928306985751510680703343355430440463118666187757420705712267120099255655771499482305599471310607950359776549379020908869669552957217289550450298577191527143104299209711083878918739367470886757450131651799639199422301092087253514041630634090439877306329088552878531483053299047897425087986943982019720434068611079242744493414019493824521223743861695358941717496531693421294637064407040780994838570605099515985954826316193191648034182343888902578744577853989146662827581749998284545971306727331768785193254844751823884099076439150239375453783972018556198192129435308130543141794666064993688210331048463556314480853333979314760546850714113429313804902141458172032331247584555118849861580084944518252634844276867553329338120189452019353186397846099792887923932380353740534961360370710777049398808721080356955002154134680465683815483802769997747815434880390960070377867983454750304630971698667819196437220075656995446471216800110775485681744565516308846354149416768195376001228865253489867818255613706499464355584770357259666846797902316749767653135411183987510455717460950655849358764224562173513580079599847463647804997253365339713237399324042469775233893152975396884277929611848295991137425325530458542394987994726797789848007258644767291160241207877732367914142758485216321966044062979524532517758722450367306848101645095647250829152931754808339165178511997995928416247544721573392045618574821126854607971311817447919560057842621700218822336170506837453182207491108093662755039827032479686195677656865902557778002628737090199846165567144873562460852332060538119261697376233723573445433205397678409418428375948886647998435830963483119756940308770339504681546810949695388071842818052672351046472352792626925595074004995263834561036183389713593458862000457424853347193944575801980177234280210854698043559736432340422908474610327697947314064463459557446556377268867516997185585408591731082532493898362810576230941766674500133701395213896061334798459912806718580562127186936172780911216777155635818575742184780540506082101097876166847731864743408699796935536669290591595934724458945488870861136982190500032531154401267528328568985135593610353214777426861792777015444320942993877489007099161757941673706911085951421370648030650866093821776056973466565570619261315825580253675159554049690867385926624905076370940883094306600244969350808699406357408907203757406121167511807555347778627555747132916120551947766476907097629000217458203073686838765436816493709695571136864829184713471920984021764956905644335294476439891134090722604950579339442195856993721274101879136101338170041129418266804539837564815010327870708656286157229907515023204823589687062432733982047704476979210941796879338458114600172023184739264609300877030707845894015273155162193649954236263740369169116210323501636889970480516535986471620124774538615541001860395537486605276815540201234253540416564803453142552630528669024043439925628679532886777043589164330041292554631488537486053515821345176128905758889621119806580675515281064016924934196518933059703508404750436448076656676662230616785990247151210676691734373796278510099062181921520251430606954428692159291222593553405246046369790370648625201287804648354655845653474100703389294756114064599525093103697925783221243245085291430518797750609801127698901494859304041652363252118868516166420331801558978019996598626485903235358288851745340582041595798015955511329734819798301883638442307625771258519631519196604360572344722395462459989194680704873617073436659235170320105180892153712441178611026179346715550653341503475192394924016236809036846685693659876409653500089715525683680326351953015441973805177188192959014350917082277498325097845830912755280534077180280250504497036521972426905932372118104029179345446761175581875431873002260975450103255041873767903160284700046061717624908144669580871310336800963188952799443814359972175899143942896172368017508053970600112856621096611920261659998855278418742235278253718484018016129293555162340434456857547275874964496851074466895352901214291482147095514902809681714231073229745328366422593693885923053772329236586987942044762669035141924913867290430214946741977300298867394117570665118754425879754221997222167598437134949701407268480051890695129296728166318685594731055008847427810596840971880375762058879636103964291699020771375325073650183544794870354420408585711753535596299241759555593156403730701109697256704967433411691086306916481741351244631977916575797865882407947851089149463352561631017117034092541652328919269470952804562301026888799210457800698278324978796138797324236735560121080696975959795900541986129238697816944482631073015332668154233854733318255292981195813452193876231642592193583074512190348260049698427161846380094407834436529634202328516285099819740558959478405926148350812103244497674415425762127654451094427727580945115854736294486189676699202170370825559144414812005171115530991240882635938373102794293303046689696755152439809873047308108261166797821672456555032482650732860505606413143270770822357865369348881133197237872697435692989588401220835302473015441959817625024521718199261934695945134100186613470760027263974003692530282030009723220452239297888036328353418462746395168867111210624519117820925876276693134772895096395591521005586000003783382789838920655715958206119497359347934483846067461801639534415018375196177464679502043504114943120416605624654376528135018347609787656203611260008777553121038918982177830725831571456382583747787279494092663749425308800883586176187553556332703072240355373819542217541785040458154681371597188556569361760817941128366383054771913952732874438424289403926312429230661765530606551923272571942279155964546587385660815636785727933619688206543133287398777083073547313003186461741041234005390342236209722772802897281479554530170478628999699972142567849004914979258799554119000235763520838941231288965561201788788368929401759948864793453989904673518126316476536888697139938675505497124717944057486404544153601057063895653108239977504649230976716857685126093512267748018021748536096437167842613067676718345438034626341052618668121011997135356253808775834612307777482042097032822088787803223704063400668354305434018608940578884660470201388607452633302631216988218622383619326138658345965121639749167089584954117570394402047726838944754088208221887870349901462816816023250998315110541317842301464004060176411485656638978002668388682200007952989166271672667890254092141180111912881635011421218373706761398197911205273728891625953921565980260957413206859517438480315596433112809906472170663871125146890062771250592261132518868038989710294006666771941129957892420453091813761628801188909242149389061431407462341206953197105580687346149964481503353670316821658279863655445135156641617946193684243480941166263464975729063846998926400238161237421438757846558569989772246120245771563403539877547157789316030762870011162957324029695932327739394354984403646016203927265033146597449982958968818456421138953366626014787820271522821264290052964046177902102678386961284295515928008916534142288923621439365535363520645809508844454633932853667635193906195365833119026754336087658161348911623695319291033664518552987141223695615330051954583995812057337581309328920198559145939709817242309720313731116410848597693177850278223833132401175449027704274126615224915136237076894311955348136309663096446561749834093393882138723859717699072677628907624194120184710339817052197104371526676356691068511740004279706443867182814035455642525575786622166527205342832080811244087299196395507061068716836019545701221480838234600759199899836138890917323347299089991526142805075109756587527327921267336752367895043256503689596279715309602148057103866052948167552580685134059551441280434019549607448375724709830566738086831700284017683366086580427761924551646902093425534674580944984607584520402127166576982922351481622480327841493351096898618392814584425634555079256403297517299725813702733648047919636879433894430505379556569028932656413871790650679748929468581626809448895945579195574560763308195482603683371388239355561313178636813771863907116515051787961782964905285189851199743629238922669910865610085169792251354520990285686627321356279191982432154035908077851120060556199487790559110866739854698018695035933944833409317990602089428415466725295146610724009968429864853180538264761714419857624448639322389334062729588554530851861715515693865469434561922470189372677861980468884014492467015855187872683735146224759693339696195723357754468788651027499378397812555950999683380384412599670997860391254957631089852854894639553672462035361772482270499209343529094102363628427005122788194741481930820248831190980939157991275335386109463227610021632203706610877137862459936256484647652480335484534068593444281055154479969343643903759473684831697396092793375347007124384355888127915047921118177444985599517546659988734938864373433331792586718489528935725924095387284266655520901525255084448721809989704769018720863472577210310337843825446266065607317421551648949151677483074578449279943873990903363218416171027487480750821284788726672354880612594225261570639003988086138336142288483571169231167053966005327555662268008684339712614578254847686765685124321492489544981658067155732967823537646056374452165579012240491723445112919869003109854420137620149772080475219205933748159473354675113067842767715489164278261718896968709439207493597178963952869932613818674549627855637292442286652125076805462165506874698960793955737908092166824641553050758927150306865173720468491578259496849566498407260521360091006093512069853637348874812513021080399528387107706766041621641002363174826753575672537385208925499797505668329116731855242162258313915000303338373780421744002798965203684127365030777141153314052702820214963040408046340805672180812802175519959581924825855052271903496109058195979092243753693442837712799132516833907227308089210867486162932760826281977512160242185570437467521040318788632883679951470594384682033492453645103161648966181520595527348887797929071224572890033046362189950998003195962606508228870884893312460446879652800724695210737035370514993772824110090981532413521623753623487454068473778507506024698504229984518501537489270409061076322762340044384776464604706045366581459633684588781783440420185218091546072419064978052252835843955881271692361259119232886412433059139294360946944682531339758413396009114074506546418019976529913613150032340773795065204162643364061175532057971977194628134657547301152492243123267206492719419852084980785837606307712754464347399795520422869170049126445283084110350619979197780128649235253152724681921368247271506010551981679773282499312019571750091159395580061553790595054245992038967192231466724515202284725218706948602249714495957668968362113991595513224352684276580509671650684255159116362625558771514811336069355337533777960112621807445361173537013951676186045292896456901185636406864930094368306928506246151579200704983994184094361584109358445424096214594419917967277038569002865264901673943387797498250754124482364430314871062973368168230280984893621606927088412767685943145425199961917295471401435770083085943807397605768653470504442221533673113873843971674702420356497729109548526074996754761468903701675487570287424367633644765370777300956874339952284760673701122176793421014958945607179542584943387092097606828597521122194788327068891707802547288569815641928926936013220008297974640167419342376275872589369332648128051539066466940744056870076191362934293933793734296241562059292201319637696742980005225203744092394435060078059215222172474489764094868112185904926542384055859682615339083469980203067476130233048099275652836471706623401871552399259450145070182421610521787628587200324000941229289531167980800229575603440520912794214561151939446817813082943703752602826510276536054184511686316317411592990505570221022504384870962062871671987843015276004374745690342222075687659732249168171612784618989037915614555266840703623045105019347991655142283942908705459597337977120188927091437965267218222777102221824235536689604895591629186969387475082155287402958161201046117090477196113093796198060661709755274656595222804739263132509814746444652554265636446138835673017147443718614243795136233580165347552248871356028063529476704672909144309993532037395603745341259125743733113967670452287135743869530656697349989751626196880158442763032141759681985263689972682506822667774276478974710980660701685291122311528950388875486416922426453969274869746443695475140211332078462409681054169657158577347645471859744788048649889042777721552367297185976031207553557068755829494301330125269318094895213106557670125252896340789495410795519418525954277512261821270857397629656154143405489876743855271826902930451092531221928263947124311197051975305033932502282466630206618132557276580153279976336207553310082965007430934903266586354395272108680063961127162570526871768951894344811043567199916667918004657771387342524243881397268950897881651277985427920100150865039345767057561026356500930519543399740435433025610467495942245125428081598530475220377265505761716898292016529672800687664371763079067630770304687106658948113417788527116736827196934087726927379225113490918760856839206555278053935050525404396933593883320540747176592527873420215389573329894142552410139078645271056044591819235449388650566236439192584972933647966749458961925107939723946008332496781114621012542941968920812074074830463666243145349497467564362670664413668683124755718456857891018370356185629624121474133415864109338268120030631012432822088395567556099636690325191668004673721839628256929066257971019743996816855588329022140731661002469407539684033657951061312681664576333093489676498148530446054822260624041885820885816291413253618910524844307430714902516064311658095971761690596372310623336523862196669876997452375790069419102992408551066234438997232592747220309117818517295731945108954252223144778746005105587651925777697946122908526301620107702107547891519433564270096253583303487052638406415130298540013704571182606714410648486893546711848519013329804202187408786562399209851811281219222181226268287440181087321055477022431248894936390010551501616830949674240802142823409134629947932074649385952526805151782110812468427559088875670072545524476318955770652382892995468649352670116478605349598171089965908658524948223585765324186683838961426266739956722644366197011778485603147583812460247085591302738406323015074498165772790417051385264787355225001367989048330646303485308487919607048738374753392799316650016888104043089263362825275315117575581407023038523177477432572024696190545561922755379471211844879623746696512321060983841850570749165893083136866916954338876124700534071271464615419093864819990980049736273606678535390772745135396382388827541615628912641344029446195831760030598434798304372592095737625597481759434642830095029088254739535793113031156963674536330565897810030915692103657390373026101036518796790837245180461291704248440130806531478981314053105135005591035458610701739962289568945310072406140801935485893140385005970076348132648726575630596965940820399090272813087530279195868293922350197447619904479414838163431705799715468023104063439905488569899045212024449834981031427412414116288928779412662850701745079512269991024111418583638490304620013133514829635997743379494508906625150016298556915475569449587663783173468689109111235784803584823522492151008322470454328819777775755972816153189797683773642319022410736247128273084965571153832212477160960860656518131113417829761504423312490995263576029466948911960711387448122758298171210937830209920463894796189984294635810029664421144842509487453386218620578087427177375348932870062326721851859323672161128670211013369454477702186789873228926942214299250329150048323085535700433026540623002135314330189077551654840836770158283395417686414402491280127983699682988106647969314365346681873906190629899519781968111620659859690131600385376155752479610013539091238349216584202630275543076086734608775325233215617876266685633372860570834235227079463557225861576532449416024913311352584993597201017478932017068709937291998524531016521434247186964514198942425300661170127644303782391664456229790983657876270877501974515439375980673941176196530102867288522606139277636963558313599693475798422682111572490709634181243785703777029171099098399407067838634707159421934876916794271459464177271804531001274330240670846548029402899246016010966276601453248852485536747590995237763168435283842988894139713490077984702846515520297835795392462582371670152568876757822227330483036461125563337774335072747486521444190810390716660038080273387954607340913070458934883342965960513686035589185923979718770168270710647160783780764110025766109264076787728139082577904822452647946028620672060379235805782915630957796789008313280417429917442212259195809463954858095357117303422457131011705675058598170170567694052428003309933945301952136993914410071293971913438691826296509362800864318709517014869710018886306948599676954246336154653025829574593178590976635687251153739741674915776372997257171361755060290218432508331515995068950376345686469604920624303977361345387856598216120737895536421913943541599333775265261503402033727380064543035414871847512243416821027101762719757952219016657239036586319725223788437812641906718817743300676357244364496033715301500376089713831111108736457126030389118995598671091740096973068548834882063955092084532551758238493684421567612908314389077168147999312534892556137100737358888650727492276950988334272662155616223642091688716321735842829196975453681493447893964487758297496165458247997156432146287916483577650028406937646752401549240561374011074658192141492914683394588834031215710291731932616903278807113506228561428647977861291202448042638652239143769655044660393598130128953238556158299798678596875000779890851456829025763864579445855017189223163296630684676099907953166300325078047190647453229831367988211140899342762599448032895880244344631571495459936115319514356157260279677560341408489742613962732100826223679418933631707604921180070382233244462186547799360474331957168751448251557312775217692922265248535794433262282323601889732513345698852996532684067182730864975328185158829168292422665821371816592266795779961079512761958384291149570612013839694231172162686170722361036359858008724613868479719844597828443438843322928963342399107582239110246678794911442495744050674350041702468834932787878844344298230959616398660618810882917157387746566430283393714474651693832624818504569959156394175236190070934136861785814991080238470908893333353656122744884004278878950352558343392580449182209833356341126487103657157106111659770595516422191225389881161237849960557275819982849349458691711275690352748130671841171000805233397092870360554774057671264283589418185611789733901131169812553510546308860562911388891024942931226600154090620627434180758728930506085736616673285573857594785925482458539671537950886655935230021567906193236174196609545387024508809390850023658790368098464252452616474787673709532638900097869907109489884914687604078781087717122139204669503271129023984453643755837089879057123152358115629083543461964560092378700039360648394170822824880156874406665658576004800532472232999932605708639914643832642742158362570537079388271553881729914353672748476325140805960436763942693215484257289773254642831538000909315729057712253412956070736610401947150335229472346560239300222889505289338664960161307586397231576426578384822590152615641748052916875543913757889965962997131101489231795988202888859919825535579304755172758725210590662690408063438105406926045728713155756572954268056178547617032578488598380499021683676026879519130990056518488258329594609931125757514409194762695236806383346588688946321651761601961304728240748431751321246209097997689380807509070107172567508380055278866736429226535776254961212972227986072813978126107975054777648565637130770674714885347182339199984126324954733649085428959801760003426429164117384543621097585478640328111189173596067471386221082327054253028406601228626240536873167291203336213460220283396778569022521056072745128398959436225207410192624961435413832725024457899092033215332520570828580561729380603620424671054326768586010013041736739895467527070754861200165952345823174481983972267524763604651649210388730291412871442397070700738246661929869760842126271822024724678489033962192888042267293855864433567658528157743268090935599133223984668377273137614760749911621636079123188890045641821579042536543381390202693411382027834376754492793830496449947591010305045762650924791976530213825497043238676386194168916800042868540589201429463133435626872941629762212410109254657786754588754510244249918966813486394116311550222641639274338221570127864340433474353251857647856946490589234386323393337886137399566051841342340780348216964879296583630440892056875410270417729350407540838064524801052943650624695299813437006994096426228510509569874923480750092808930429751541666978596853455668604650390478205099559168841391541622241474398892939388582287120521367389507823078048096021035053414555328118109568825433574188371329942680596828008864965364945362075753702210278383342790337452402111649704398934530783106959753193711077994707574876952788725777609516103422837814113991745993862258728837085344071685689678594374441700766432984050519484525933725462654469440236734768615854467121124469839444918022373910207253407700876665727461644491449615976894375060527343496652556266980829877395690066684777216516172870210197402552430871804318435567154313671409632702196463873894202190952363936973014537069374890333158144345218123839058522042996921949122451926806689815302828960616557498076202572174489338671746478921218299979408179795614336972312751545218302637557117538792611195072786201616301863831909256324532702347336037975915750206986702516728896367948069081849581712785331540425547912962176785837108843157583559881115878881446269977507300544762015283758248513584782541127801110583161971409784677722197967864307625071920697595270140445130543679157724527922228773622695489452518330670647906178820389741987666423201458850175806245842078859798649417550223280583561869161802139176443286657177192774916225645279248331873848294771206461760805785519092987083282605061668758589954748130697646327958797267213874688506254575523257786154659811095447456316410911696353171952229253019158368075406371072292446790427721305466910454591450531131467364581033142387584481517290446983584803230227297759436736919561692077514004701663407085077644495916353058334398952474192548871900165115064109141446198145195364485701343790528184518393991669222459720828015460361628763278476203187805455760687913088431388405024825798006122104333019044649262586764914889750864673247980520260464958961690331738286658206417691193941918290482362314109269082047190648131193340182129310628351503769135114900968765019551736195369091583895226824353419760240307228049607021514410333751082465999121561387745092375845920141790611985058997338956503551120075712314926900977729873512065610235840041491768986218164116217192119138925729802207022046078877272120925401514282888679149485534054568537075656669937401218930720079541714334208009984936990948933480673361123213977246702640210948035261814745895005731007606031217607952772881583149497084406145937792177356660956727837009378689054125333621701490811951238567267070660793454009369188584654242978777274471629559573242615042538738468505818094569076325619079847228040770517211100300388477602736790857104083951010860159912836059445486349136892352891331554934571532670101033679340005225281275318824668001853185066759911047579706657405971607978312442987890949893267923601315890687952569289108670126883002184910632548028158226553273800139837382522928568753011675492281583806957386236595832698383308253492086106134438219186193475263169567452902962295401569215931242619530081433204623350243307199270427231973741582243060599338784838640631623265883743470472720913911569545656513528326855157423011282218455234593251736206492214933339803322009966923032426057014001063213227512661375982875018265579415424125089532918018650932735158525832336848309693719937382317398761304468397546389120915131251922452406456917190277831947490668886456342422686043695552233107050709300400239600805322732945773424421090745931239382090776279759053112625604407552080685996401945895205262582578149673087382881958351613850905565588744378235700614624386180869115789252556977393487962509128907323030524614130425082106036855581236784932666146143855073618167194276640214575662717759916715079949961979066425337442370681989504808143691119531749827941197801731461716931173848090017951809227945453810440096578175366837430136766074164215579291550713808895143579035732215333018171584795200442197546482641167703349179847800580800806977333757824649614238596580021911303187568867475678434347052263562369923995405684482973919253499941661825190233724986738233206003419065451824388745968634629289905250633828712318151492933631389762300370352407360600450315474288174115729776972960390188575113630871797999061644271744849227624499524083511326754852664327950635652126541689479393717781447023644289822136307155833011497165780776843014202647997671213025946231765685469700774389943870530924232216795876630896673335193984954167605733028931371754499401180697797602537933495988945914156722787598197344716988320168401954256866964115147913461209224559668037831853877055767642885967843978301840245627631385955725910497372106878974421433586916949920227526982359969218644094777813242818108902655680966007047399625593543465670350062472516714306603520580339217723985236004112517904382574435068489163243679102914938366403709410302185187353751063225474815049561742542459714851471736972995288326029988312375040399271205038835112406563549559439026062117566550236221324594777972684131976280478623848443221329966362896307145973460428235415606712615599274290903538927121124906918439580300555746215948251672390625531046900319502889564161074186788852219374956718997520607115351898419137975691648290961963290466176974857107458131292838462562777816428470910461210260971186570620003183984412338767306616050112566823625580485686394414078447589964461678709653782532059813934069687529229796889575241351317572226472567886880742799779494512401552342599681281056731667522955683281993017743743877778319640719050968663354112425796228334401077644625804529030594864405073558002032116894044289414809394575993732958922760920142778290949174172568043585789162783958317855995250567182370993400226455141172280314899585076914235041801727316601579444687183453321536852167166314852826572025243657499195591021533237660283542207392101575033930377040310420021203116327943924357781874372256718271406737860165275466115916418768675947737975262021226024864335140019277203442773075176893181931683969164682427169734265859950609182479605484448312047697852313949952090572925612272599775416795379115526405029369026375986825112025624449065755489885187251303392530573741152160010563433054382972096555968322973457211600081293237521769673703694398225773471779220048412495845683320466383660764720319891761915673339921797182538965884133959038812721976640908330598953920768261969217762801591601339359064301406169479942081946953591538559930763556453099460468897168757584192247000131007958264216869718450738594434135674632795992828238924761929686075507469479803999680152718876698898381517327252555000574249326415731316236319555516435869389843676111148120469417087456204633912652786415632424332325178165224069517606873862302245499968482006910159037616654714373988096814209339221326057010155493992237218978143922372012814479914906875254609797244420025335415493246932797432337656709638754790855321550455786220774595818731807141041100596097388344694382075998335298896384453255402592619394867250383879149187656921025578742873220008475584027442129680488041629396712607148353221769989623932349688626534759838671107314081167621662459298122038830848244686974574220354240213604589187735401049957986478901301544999171771235376221531650824754309528681654548875749198903276963276757764609559931971012880813578817258203784672605723868371859473557341774942904684792957036037525353100996808392122108230473141272684587986849244992295086180045878076033612597332450927126566184043241621197221477459159084462762389195291566120706186447305838215492078883051192095307569626869025133816862612108305263531025504127695153566926096564463571038138201209312507518681532205673201988688583472544310269911389093021073743279711444298112416908568217994223649214992365418238136271316066486007245177510741716592575333248292590699998785806958883215140630368847519228436615380548666705923102665971694334073623613957590561599561756428739148846547033628990098865461222919349591234405627066870582157256991381089627720762932606455793343951309783271537097603109342006455497518608805205496788069660583966983686356313731672104613056869276562376785242733300085808200228908305890953224785422362970712837948784718790371741425535861015793566557791757951022803079439044183672636875821631724271005743197753010465003828932922701119150541035392330134528798447374102084887170091549295303776381099915974194828812258769607993771843532876480545156146944134666681810543729847439182103955230462313406373208081970230950539111324785799942927532679964872462033007371691306736441481014812485862836451180284639045079477549514736144627105451944141072911808341905451099992980791363857860777167820284904859725247563180959780079845639607206537869978733426911656932515796882136969381577501145708632183309785239570192717402790706069026253900748350446480344406895369985853299568349092375375209685575036973959249646687630487706006892138546493078987713796318460280532840383038382517031881367016842758577428036618926696471716419977124711326329120840831419121943948900567154114366309339911945447094131199568961996115883473704627998463459399721073902310219810341196841017478510923449672537780034842281601917437427569113437990553193154699421546955653047609532786178081832235396556790256374790545743567198880640410054099922635931332661487628226154411078940729019790129653652208940779495553632107677753423580514671158976593420998783288407217228964259166986986639030915561394227880755661222209537945398943569455612201712933418822441036143624438693262926729031210147161315405286337689585710286037178108738807141661976338796445328025256145940551018087549267518691034788566807780892093302720462672740587566605624917998895973447410497057566220893933923213726876228142505602867963265440640289507765996093695799022748722282867320668575318935665989439653283764684100537421518834318176431871411943314641055268991558629880788353180956905698693388210866907852123423991278186966493224927299649478325341574717392803104957058702112237864519334027529871229662025487364701475434418812854642424709679192818297152019108758052136130891911769079440258369201356113840941614890729169982732205965474679460925385412964876381296653546793858221376088422066586594853480420133865089849601563513880322647415865655304156301905706472118366494287061595327068539738371822856087715334797216099037179478466876851052467523613823364963834912501930218123703511295263484137721503529056273941769541494547860265814065607369870581754822226314479930121097257481336406227064431710863685338911924833396263179264483438462823704500251766715144231760219969023586330829813669439817283008353201146714840637435808032046536897456371836202691925924974478945827254005818773155018078070210241704759865968775741117069834569711675785101056291107164217917238632943917357375029449311328045788544596069850443063104079416667932550468723745150693786362242862163555948517670373241405584701380209865023191919954545660511285694325411424329402055465785758560468235941046499215971830622464241013556640790730730289132136757797220733329371690893562653923660658339438175293381470401958653680031256298626333264398229297438296778647714684535904873628451475180027316700134150111169838553333333942319571890678084036383325681223303049886349193549695235374556754596980085237385612794353785577579199548621757751468023890639432303654043105883563326787863084913783252071005010907199369604445024949641090847635605715158922667481624834476031721478038140681479632899117205194244294234863490186867686045835524419388809057106171117625532352423240585852607540083036281843699491129828564211422726513719082673839674528941989554435310207384269469030855008651716356814174818424058892740640995908883178298248022491293925633902724990217566748042874680914208382332865434162105701505089642650691602681140520897518394079373830150221118244016925881714806883591965043046651733000082883636399251422386698277320745009169095648066818798491605667945501638426618553277508189931112480520585949452788808252510446445910865410243565435403879127427585814976426532864098958716806869103857865604120524711358490621057619263719962927292353864475018585115899894579260164771307839265111167870599067562081299135231094152121284578169395035389536720255973631180652119266629256923761549844156064448775530177188650771500846942118314933408633836017208317076400331788400938891909347955248007688204367241958008229680168625595423964816237852236974068870294726810447389803904878540245246580160588912469654124288635002041236194766212184996534246187722029771583373668799967903867299300006802016941977856885719114842500222226900073070501069034979964412329182572343205474220443749592049221306703757767414143908665748430016209424404095857257446878735812066221113484881828714973459790827040939930752453539570430388144355593066553505943539430631080862579154096673682060848616966631724612613771708145334429268239541188284286257832132439889016495314548047990903510217792581505889189715317299668568047053881793193516846831080486951780845928045135786055678293943298437681283048785889760229982810087950817582467001202523203930122335468769695274537612653465443612332795562609384793239004140043664310431923812914745957474540635636833052676915131290498092343606553981520583445380477382736753765798572867521686574164258557345521048898721776921257317542720965260365397992033900919928676643978363337725434408748530437090220724604266457234960155696878972248070698476721604326803670550941384106557325383472379213565451223728562203190199062246538798154332246310403157401807161614146339301296610683571100600931364495869700835358738062200187920418404137706189024774263605128698427211314726575475566297318805479363457638490428930027671449910636225624901498878057024317145124979880524665124176214039868794323448138946139492833134180122325708009807155226157592122601066058908435512416654341850876321340707581049611794198664974025499512936444412312906158530150392655857011731466973735528287215255350403250937539819039615851499317640127476278228894293931106217992928054238163013942198344340173364410212462691558104250158829446854109367012621547598202620937423147673266288486497927699363834204999730126176676936471225855753785118505848372284587873694071082019501947243473771539082554082454254163812490023419107581717424368927046954816773037208197610945754545627542042369499755802263666027203875985141672800504522850293793287504925823420981219294939715636068853788100203109265300123783223060256931814401501172126873361790961427374798909613791955873838859374174961627758795107705707485830900632018261852115309950578575325614059262255411734222917712628264376433018963270333101883702811995928372865774449764064110841449135092202386002874796121034906401290836148784757101537593155190677436782810398953371119838072616984799127370857327858503397809305425722699620565518397408772924024840593634563413951853841200036749104069778046836436970319539137687698591074987847610238838199057528463621183886485905173561895647483949862601048775812860684984439560382629903037419172427499028596599984288293585333098401812639152776067625239464557366813803541484021816874656304475889039924087671577437511104698454344734628160171563567430771603028345781685021926561671521259307573155668856325324780654018567560058234837411951040573933452970176948624864512893182455269880600180012864850043863347659168980926809046197259942393519707440334241198378376337314476659966870193744750674634720291672570495229366531796044549268922714226802031346212408245392579646473032542728429737387148726971493664527142112069000701591994867777772299668598836120232377677571609411849275202765464368221377242119320226973312504135313946457078367842896133012899866445061673602334690266180811317775594329685254198435748816718205569031385724586703239093772664177190626710612493228985380635131126849877820724286559036140659294521779965124326901663276790835411498461556277986276317622390574656404367069057697909677046407394612596793446796321791782997381251208441391175841408626497995915894482810367592322499939269645422276010541249756026673803585307846521244073497164550182169814810281334795933954251706666712617461582028413700240560453615558494649401486548585537827623047245154149435837130058580447418502725335390180809539539377360322262380677461377132114619353348111162259672640903736182821078435306582889583012850654242109435477236812312738885049799187373841392714370518120670277713639123931597764213360865134225742591216331288720123207075716653244501491398921285431750631253927286010583555223782047978113724306078390491317694699888436558461815481731712431342590174894884037613991225105501783405537775375994132615638837345504018439883384019678969166307262171833152330130315078842121111149589877930908168647992382815276604279473850224700387486477019810564511964558404891517471023695622489891997300014655416050087727724405110448949723747700630599955750680950946861244864273097481133970789114615008595922742884595884007182331687980167735501721209100217782326005495461787206717599283533563773543566738150197850442690826922699524008259183801443353514055256460633024901166528385188029979567195481996663819508006077133738842607638348261476502757649188880348512431607255995022550441555673762563443229211943294243312595520092077593635461590345603185457400897702605087040167485746678510599778144224536847496026766939564157209799646552770621086908384604730703165585933885616156379561956644196228436949201299533447098714848263999688246921775680344770874540678568151434402464675724225684889353974132999315520968640216309638350384388434462383343637002342696854168131461685029046977748755370011271715414674520050122800861733487386698260649415483143284198986647980172360641734384721727420921403291038106051700477071539937555637941908651804329028745281810379038601573907396752452732632447542968128785787782624173193652980417006689317708040942648936369368069564225814114242430516576861150016315715201789895207303539996044207723079239737771449086287777613987121585613740712488150850305978049380509753309152449114136720737630362410003299322665752555407253360929459119832318360927349626398179376409481778429139469817426771394967314012735622844308740047684691180942096486527256227779946996333707591280397927010210424616949012686120714411997189696993611300227868131906864204778669024496104755182572000503333560120183392092597224783752745800385758580128731156924739714515255003262670691084517309444276879612254491801911174698406004533198986679477917377630693165758714639904002284443062480796996932929585057372482488128593018827394013866832993233013745934790308241801863527753402883461443848884787044058992140764232025223826399972344500843406982996790486168916825412415630367144967881989939541599091871479481533536227749525850459853940137437049875975001433027688915980909488755584448532129432351891682932515978293244717095356237174281463758462497212888227988235183102734739032400475520827451504767881190324204347749829282220374912305902249568945700871323225822429533004077722922940240615691479223227852212876240460501538533594737550279230269768306034858945743651101460028017833688022027802553918025403208235693591031973146191372804677879976827842728009812287260533192450386677450344018557131748785241460866940377240135467307998703461554996385385448109116479476745505281448511928738816751884999677112929688034099710661882969261463033001881905169566817097843305726660536836994224171766124332182222836802259339525729597009042596186279223853791931447910468326959906966674944556521879770975060924494981243015103141803026955181331125918682009634129034932548720678646203454586393471224093616525604014025937092392819995699732623847338779592520656436446204914647040558834365541090487780424639896998280376993285677599006503658771982636131519414054207029973246303132905318639223298560881137828028434845353509308481408818895341904489873117278925181494848404242803900851489971766393663195797459425952515111580123026486302057787776325297369183337611110800753254268130571082320762599725177129880016822103269496152828283293489414671759165644497183025545710372300477909054482934685845764530015579335449635200436888613170987642202795926515027548222017617335382034199842828598900981339637892261211676415618523670842385745284676208040398823842979119347648852307988123028513036979402543895691730339805077072800571207758706905097841151857677438524675788137546448827853747245432227720244792345938984946011741715316852016370309178289552171175154890152077142502341421359185761923686847095455390802864647629524749026873271744465970340632082376759483248413874920639571827411699878953112762358404120164090766537307615231283013905141502826021703689532459287601789192625086317727652347537275346161680601572589412544875093057092478875002237440439882297017680787095747540642507130447969191492450169739527588227942344863029726503800172856218439556638493727186091898182292110287346101211262519020361310396295905543183559080342750882812825374977844950461922626164742419335629911558609078934131825423835887530021880142388380800455283230979732346030576318427864810959397246645241250821430328830353252951049427777036779493119041985877928559068364267109480568193617981246537818109823965712098562447411098162733767477564108063429766588796322186413647639283036882784985426250074333139340158379504527176851191552739735838159170160279231419926336363152730350672016444227238048895473111377359877958823009077876236982095854916196862477837340358319060012247560388374003607163643001345897472936942721961549273840985384759283408372466770702217524230632935818513009414892723605130721055439522621509612783212439401812710935221399667232352943215235702046362900696944928152632511452318512912580835957483260768138157941248485298878763021130770145750846336493211993707404461946586985856559157759525338547399204731152793203387303513512685367679630678273505884806042390838046071618206522905434301042526418332642060306469929352611447984590482390559992811550197772035399987164223622240202465492416721534860865140374379492243418274768244753479149173232067711866883948597984947169759153502757135878277827808225141554423276599731244133270569037134637192594356918514010536313592583631227609202132322366123806953845328484056837325811862938127434144544684573788750140072578072519830904884333657121854503549060707030605235655535899489416598826146540945047986024066264766337632737555284386788056979300347359856503700459988200706639159486943787285182886745620840146792060295632847118110738205654960857161911213484158004035911191768230816878345619657176106113086560882949567718942113488421860724427861348131953506191030508673601696583064690239706134231650281256524616464866430930059718882134479130361946669370184490262597190233766426645763460959542616885199729720846203611283121327572126390278527383799902223957521547353033966070180447365195716646325192832333588428486703075352711548781515018254491023495649339154425933260320841232594345075817876324653024669397149155028120911271847061032750652524781826499025314190734850727497172651003131554236794880972060891496214751839506600118622744170567298113283783826795367751246386896290879339266770706718740742732985746639594161194581550800799550333175439734253902210499420928312082514847804906211537368780789680801570981499380555346495405975039063706857938404011974809326127768158610441330954601764124998679514305012085743320257452609318529393112744531231921687694957510857960581736086724927802285066957858322558245859300053231932696835488170495665989394198566667226823829036592295992204118540718199858196146011329912736529728205238763244091762067432994017982521469658521522827671482065633512530191684559090679601215849092560452578001836488556680159479137351790831277636431656142943894334842661948559193544782583112107361657072548677712036231919666167593429061721741173418641448868827737333298215026873285693876861830960434076803558369239000148601589481152784504459108821914521094373143160164345193986221044299357290682412641941547211547531650760118771734639440460956019715855870249575026940936194615858334543714247296663813185114165443237472950304854817664944631199794570448986645796213911985658242886269954012478123882139222337608284670813813371975033433832399073084477290417020650693978767452167915104645973536715610620045658311153264199287991771949038623019131595772747068237115339902356415280560227812341667185327511354023566513039714744192418549877024506293221330870540231429515019896691074722967785220579504195194318697021481018015028676731656443278347889560601964082081654991388579278460932425870993322833931732592612158564243411106583512375076722110848000445211547466784794008466012177368968780612115123128796001755404367944762509492749173642359361260889550886764039140482864455894668434800350518471195507762382185341397437004833193478445241261468880506245664295483072057263158225733449647278857594284406685048847560159123879586606120094058171950144231587128399110384446299331011985078997787120851391373082675031811837889147621751919367206961421801948897722971449891834824640117959413536031698881327947291414199234482700407599764676658718500900968311431180098881851573331865938232848187057725765708128778014724911067183674063736042450970607216967018422081604003516077327577476948090885204789590388846209675972124746604238344452504129676548202716799381511728769612489769314249896413977832802329777912051131659366627863523963498556192219316589702938957744677601438764138668019534081915013823241176827048175130266979087133187981341980461879577804376869478273641455914092704051615009704064947982062429817277924310848235848221357365799118239814984202700331957332260228630048453648941265832346620270360313165403814476622405280422687781030864115904155982721975397964031842564113156925265546570672233720381679515830873860161042990205477305305155366344718847169214424627814476330639703979621959834033690559656498250584986007816785353303565934331425968319136914300612316325563883148481114668315922671296122718438567867073886786427262036040998855694973569655082558125044125889513776560090817266998813564428418977722607541622326094221448320299281445608182818231627408357709472718414002985168460983650581153168690372983188153776360733054365815063843131353756065667932676471236760331308048368047879210411553072901211007553704019085866795486134672798150486337185750288163738840738700080243060644672681762487076547388145303391718452005131572336005255114958291552373851036253873421275808789411414306601146688411242156325424486030236586112629901894767737753885221388208058153759295779255799550161159564824080820076684063073030350732473624123133762668119733411301682808096102582465836960037938583540895491167190214562601012137053782093168393572547743273171138616671159527397943299111474708047598941389656479095546583534957744419608666916016269637548606874002313698043026904037518124300329769822686398299940334871429205320017202626115631775392827809201136815149988359954347690145369037811662343731994162291620675418437783621603253883813100154944073093511172162764270360739382930371535472160451773389778899914397432504156894960240973267135224099505420846289610672360117191433627130303975678577421333095077556742385019786502671978371705256575863044449119927099563042267126636387521656096228523780544832263478887969607791391962847634242016716895681120296610389771289041185922746818550096010822342177558844920825456871827809745491347147382815629610026056550335258695522340230452651645784882973175052400494404960319626208577655025729584253653963834251903289124978088983431310202506562387845950619573840837382271460042533152428611219759995577180438585265266561912077072270244185779197308955362482000196605915295749855629675531745348204979227893794491029013750538778292709699551528152352118227093632103129647686715947259375122588323592141400069277760876944865605559086509078217752800515602978140090980956027534052700058933716108919652219642493290707043528679618219623381021953735004940126017687299039142475852967642367545161877790368617013522404693629950515251512920491096024661988687002865805809290399258615464379016065398978731659411380018114243769596349340149008850689686144438760412511911702757123284527742159433445841197078926971315943065400051430782466792306515913801292067620111994396077257411414360744510550039516905631545151676609903054849036428712018020416041751768886208883900779159728781264357552860025332911591975278714030328577322840426745661316742806673948855677229179344951833895916690330520875551537334213334919596940935842113451486560316643449039357452104456936815070387116752623853950993609706523186807230883325399369792838869748164016458768939780738633559761248548157838324328947167840168858198397341763887011317743780860896509293165991330380359316210603971459412636823624653118527759612643452692989166387890185087233498917255069838111220885236025074092176783045374964566589559651710244215811343784841805560342665441557067906213575316216264158912452959474954307404499746461463011579702106335772054788648535358412599599573116115008499294022468157003169105832212024444018492487392692264176961221406666902259254212314238950954179453250940354663569091956971472300165930064816469409544964358311185601475334150144165909355800259808875352883918724340444002839932295727755919999209962048807106114347623574429897649639746822796242995971947969117859160712455417596054297138516379306389786298311539823321520982591011054762490817790220556756157046745992242453136122750336741055541079595712606810680129197163745327334799939945230111854972442341572779229885562014265793918925455136905091242164768130144543732919841337957456655450887485263966966430225554389074792191861891539479039377821522951679457749565556716198519765424012923894354873999048521281251382939406978075552648895780211251224782233496141918365257970833836404135457452826289601001426195718032075365423119236706816462914094458332288627961227358809335559512718065633481144332828424389531289951327460818520835945790618657473359184716658923235812568054238889310531738552305500768895366537618543901263375877549860483870777429623319070503881830776223646822211872055398496376632434889305246208594024072440572284789944510997861667197980408204942219272664135073796597230344662799151534750668222294636484516712834737233371692221513024290438731607611235815943305856679761886422047543293761879406265336362566957517183997730963715313275806484960302150290205881861533319387995095107554980079705925452372570297528425264816894620497592624059697847367830504101853523337425527013782208677701174355786350446673462347375706452326676683411570728354580965937645593055264053063826753129728103078626648861181934548917082455552882545145390909441870693611512238815626788643423205107847802957570283616745790938045632373614767733943503310815593332952079225676370644194455942859602866188389300628226907772515236253870773498533889076952809948961999842809776537586873121816931810045067724625436608454869157830373412901304357679687348702353504029684988536513938429755025820115998610268202665358310206725755910958498292335908831673559365012666969636934545466885424648486215258357050094379023758012166021629823719617090031163957440238921476503583140290088054019133674382630202402054746360691864659758131494881601873051635538194845609378546856634882044185623695748633542462324590860015230760063246114652611320230889369052338269484422440660449430189686365581275601117996427342304176317312128601587286897798114534855115677656783470121946305399615292806685068728065872860212196586340579413344289093119408113630877551511453645902292303501477197461217115333551925663524092414442653761473103926264863194387862492672390338861938592274817485243123091101473470189737216260662559052700349304044086011351955259296364535693578675598172692289140348374755178358884976030345379580716845596820696563254265353856731931617864327559906540225157688694618525909610164185618516755341382936098563784842476559752587551911888655409291211014929444987736762630734627629274649040188626446020761828053115939922924629946604815876902122685983091646162331883187804170657506178177041663544521223526770363028767237891483915273740408248343440280040679410353737333413543923283786587932769440175292620718566545957684017567489103785430867301237653179874870630998142453706421582656392406529534462903953078322931632977354023781381465187163714037207130539045081218950611591751699116503695094767021705603248193427867846438757029123261472102325712046042600650201598695816723796548054422425209185951693807450815702022970378868681380057352944300613387866220673368154001820714525606474437582372255202716347295775123928935430088200531825487948134008627619557807761282721978990341413159706334339666883704335078347142844161501950090200952084059287784769735032499890014095108824511157932040917017011882970202288654242055720123070958990935607006053852085620925469862359258040080850135687070269603930486412593572433586853242276107501796503058582071288566983689281578644669620132830997548385800206913219348529124657050745496241417440454206711031096594832581961968842203381145793143873070975258793629899718183931292011535507268851909314169940441657069508389709066431279918773576912644289232891597762789216293200243956933162648054123976853358391307743322687100050013353549048284911652694046091775771115265335515215992924458406538126926232362086523465737713720783495262681411104826664003489000285451155028855742908790274902870527419916179255259066727538938868331052444633379149378945643127809127168912668816783328072274195273032293049312752284960127981554493995812614778764249401723438530361060351191425206076497290884910114128613733867270715193429979812221707257437899854883512640263850490512527714675762425061896369521028577314974127707550375793101957721326264462937172134870541160790095901704083950825929963813234164201634803874257582749315211390033284264379044248343948150149258940060559729398879059698661262430539055513706487100884614711732566650741186634578528009618045162310273168709925075208365635953386471443684336981108758561414179812660234802096274952105053792036816839061178910188054736928454832598386117416584112047589349563276975524562431285172516103017191636778437845128398507946627004116924662997554332179777301855687332002221329515984613412057536371833540004064420296078535578185349708120309078816192625494829087311078775952444229465280132708757802184444820511989156345657799771238275432639673640663124438504950537932277940589806964241316046385927881178214791851994777631653299345889821557956905717749307770464181825690064006524385234769723764419713589899176976625210828912788489327455993015898898239439704781363362891477160182605969076769984957299719195428329673485133544143571309957371159110681774251158879985932518590215643850490261867252352237340166875525912852214799897047850938142683272951161223675983429761943779170367405331944770745227817642566186435474941051900698499606963984493488390121582230266121045811092928454915578732741172287008444409611311021254779063489555470115055267400417723888850170810638312677490393918027364361054730013576028082878765378182971759600728979929634930924329976412724859523927504710145791456216448285658125463645211156564203860432303889464542152636203859582046277953760954964895930337760163460890373596666053973261773080530333707115363013124536698446126502155421064263613372405269517092854605729480942583484523535238533865349233750089426272632102485934837710151058696272552258773608957466285220427454479361521086366398918845613750354697722450988256845344777050542319963972668942383652491811818414964430679854826829928943906140796091328037245961819005590158794504927984815303496202620966097224436976577882713966016831859843293785891517020860141216925529275882533367872249507541745761273811711879889066639061263428880720840679026112046700594793696044362012413421803073023524669778663966967985786136352021955172974134720653259510417311204726962520483432366506133107782837247420322542690376901047845359527734941989679760594832163330109899741091588297921114567637222896142644822506555021613851585515342729246079240134837342558057154205137674123816594313343108039212487905329623925243173134911973946268588647843543227536152435735561333060327295222735665473894967658610358506969543223024610272620726074196462406904928709469583894067954353646429233732320656004485654951843156801027398149891270382323085650958341022859452156834457913310322906367726571922172387110219793065676596824160607671429051434682505717943211383162100074289398650804548557576404109172959671664338813586763562444443203184599529213542725463772318651046345234547974905350253220445028686474314910836594158904029313301078557416792569185060931312368311069872020273238395911415876546026490561504367809857641434470148515875099432022534182709108659888525026720437074651502634533514051629165501240849902969746305556728030483383944584239220079999838750034395575061677187238509946068532442730759171416535462360227821386937979415771790482117728795907313753207388890185945142678852817882171605922197834936821884937490736763455401807976466098188082236464986013319275085854019179163997097620009494424926995088935135325012275077768260950955697167654879406095095142740278529983118044206074034831029091145625965897916343705340305749922169947742575697588897104578314534920845092132736958800665122950193483624195563453496216457734466083641199304144122292357544996506509770089637001388278357698253874637586698638975460396630486251396589616825994802201037841576476268852524807374914050201257177282476353173263008424980592011617006331736574180779062108185305928919462353038079652874716393620607120926438400234175325964629808426909849897710184094102490731846930322524455063130640651576800890346243302311625565541717039441907066735496964343933261963647399943328604700556555055355692582918238873933281590663580532615632305816319777314125773591536183077224857997087444950121744294104801706576039965971862157039560132833996122398624249551554501424545947324399619318429537774681389905612175901924864792705167456959213484968449948213048282530078801684619807034316973056544115241959054657595113046336124624561360598389665682929451614154963370202465460926838302623399347824580039974514192904677285744918786734231358941522392193612086482504480021203736201146513409547759111873168861359716666024343779249299653796172773587868981152860096876234634124851938909793010303701967405795553870514431610946311961569157686533677320935614452559839367981081599410668266672240162668517032382806763413898186506927906600422825356337646368932177798646197652437395825939506468266743197027339131052420172775949456460240495722250984418280445002672773156713013067075960240817347744551817145271377494478457899618253932704207891755670317595957442436619920593621528013176951193515325771438285873802461177827133534584083821926434900338467023389882561548727451051418692271892312246000349905589974224807625315891568415330731514389578397481561835892728245163276124638073786780512010926465350446983434919188917639153280632441893809029387451006711078150400045526466453583894323877490627007070432075344328723980837364670089799534072252489942899072571701467575415156141705358328373636067074083895022324774203888714272232280345868474141953839046842455380481162298514702624736214897788561806941316440204823085129862442914204111864416230462659102577097560826701617825400808261282697359656425035066790972950918141770861133984266466373431134019481752315355693458025987923086085351236956050775043728049099657384776722160419951880677982551570656406867569901179473788934785367197839594774495085602273581498564700238561592800328136715012211054030583318056942229977321217765037677083639484371294226423489981489092698081742157245325248314406468368661029050433159963485801843045019168351451647470706207615555872134374406008062247156778240061186616750588517595305991670042430057505628013272188001669172443602755837073201005810910331233883631555614589731964975240483240569881307806390571118859025800415889061545987382038972374939283040506080444066122550733108431806663917722052252954160579782766866385178529761490436746137492542841724658412690907788384427502502370512464982287599589437831348207952971828172517226400926578009896881879188849854432142692067804526373804587138634370855291491514113539920015437234003285923791434981959486532643719560588718542943241966797692288767701923025346803133861074298268806958451108424057563353797764300412019068271830794437226793867317354868787333251852440717108779512344573193026224700486399014358914352948789884228135149273213001876337628452938813794258167230459463310091276359665934705318062601117044525522574617452360567440218615048118665724112244330585470421068851991760674515775737957017744833487767836907599728589395619073696148295360191479690568375100728864191049929138034472489710528234625901891894308688785733541230081401569563028229012851062534130759630031088805093413961688421510829003084443294130984906982120656019522785456756084740323371872963858706561112511005030884175199202441017370202041407310400218871892809215996581660711706329601369598255656890335059519987042143093971374354884911289567905757464608167056148647730742462038624987049564215197361368178715628255680749846062775312081422528524523119937944863593040099032893837119461275354851333812630911162969862338640005135376802065022946155942698190352485511942034960221499384083256789829524640247106899060180525808539527614315793044794638313736800546643861862068580113094094302652295800539894130406463327549438084730920901116880154196174565224883437593232916000328149378894145920431394543065020972273428788308493072633703452262986069294648366421064624003016117909750379344444664926013490857136703062600894549907097622720684704932097402085459892697430069248104079358305533718997517831695259232309820377203562825699837593855712906605831025213229030826474101914855712678649238921454149492211633698516180501618590381751547068052241024671492785605069381784830446889148650261252174616296864318502270995257182800107049064191888898528028047759559990178645233650958461972432449107555387861358264181193873468038973579134718947115150481145838668188717514689819193607834296072144049862340891474832302570615319164745176182455268705964783991038577410077852025133561555357212238525576449600520206081285519025077530056377571236630243028245520680168657689320943914918474411258572281816218319276931801947079585758284118160956228830274911020854578029414498961819870357852750438301580359612068130097579132781053016157061176646762430858879081469822915743852832712132023841728265369493898289114231845319615774833900668399865596405131702491841321939325534623559704676070920070764841887349731755492581652003300259885676506291853135972419074054831306758911667777125566670642012126874306384219018330438296108843282556726777190230752993118360929379659016373864750045942507725603701713893007368695807981619168635677693668376017415097693426549399076887212097584519999740971246538094217042982853709819552862215229595424208863860882241241365685287592532622350680596694024403129821285656103812537755476779653175913777746170146159940390760007484033041020667223163825748995037715414931326839564822088729594573108126028044568802967877959067153526076519275816951137181174937886277613969680655104966810195489635107132747884388775702268725368445164131133533472713361206966445713681598591542096967424030582477476394111010649089722739578761889323583519684850126576394968056831647957509110838411634205405519105996452224123171357613589732795506984359203678481392230913531203548608950937460493452172889232305603320909503974487786653827656602812495964271037956645357775641861692079467561250397705331475309912184924110339206942049253593441455579012342442413363676378233462479687126818539490612918069922707147909968293668781590826611582907905180702701894713796937921943498940257086766497397910530865077923260559416236027235417743639184595775254294800293792260292033863455178055486556160920785890378335012415845956085721627298269951077216693368615038930287974110911399411031337454754905014906673387252944299859808727661555224183754471827626190201007687165549094038535625566868033110420989070349731488215080759229846588544645726758687633537964825741352243282565940286160019602918780845595589103782398628301760313160255254706335204952388642283618987017547979470999479721272142193889761985136862750003582897395005440068239889892585248691582380001629795690655558031937482696429109537051577574346612535932829530894126343123127117462498006326721526706320372453240163235794188317733978694872525412784186131153992839309342130328394699824910397474761498450803796253523418878488405044545190483106029423613994615529098456910949216606660501387940643891659865691458427566620604165581152257812281842682336004045751942829237379557910083377057415251757806700659686474596046475908492934985517490226872323137073748594204137802702163536325805511731851912590264081858637222980249176430571209647067729846025734380587343572934418803607875239564761060448623328609445519914070813310201391210830398902140736534742692691732197184046273368928397855803035476620422413560029526415506514180047258796791987503115068052943897674243664506002770049844717142651782935139053997929767540882146854093606800055699480684150390447056127701629415635347655298202506573876476030164788639217993969973474757252097622349632069964490861416889392753055231174608552075158978558614791815496035322474045748137116442820520942200151427112772985926267201825998810041117061494113425959746375390085100535386944904665877083125618696997642221759851820625387801864538553296579831283679379316440643743299561120694422997286543044277162139427987007796026534550804274439334392179698237996555480942120455196223803687741353335535588950853313937635654746048605093331532404318690155726387950690968675869204914603103357707190245757961608256824020764579832880712497627912761838796527994649947345651582572159285544859869350281920800113731445162389774690254028737711564294737056352346536807387115210769535492788515468557039198240944071050509725296311284698285495822034392678025311205087257057748749199768357047418799871085463823923213691360338992970452097482714675506548699790238655378420734788088780868274634779496991633335516889490195846908519029737665066882611347013020404008883191762259404913438712833105692735092911015736738392838335682749599156664015572283349104820200482454849388396973850546744151632682973430283100155604872939338685680491091023026892808215240169899569127890742081974869209707593525984287333304131615572314328132754722588052530820582241171671973406246188290653894827253206522320166956147573120891253458061851442788778646951703793120467027416667791179731375226702954711895742610309225294967231967101069844557170520946935975575385378399417853031272045460003817421507904527050490844092556754842839978043335247908192692595341558487138461714026134896078272605635984642138715897579742063697802246527514450260948187615459210590239958142457038559729175842440971789170599391819011514226863991033365354304974687566968535448898758835080165060121901950963223334545725488090280384713567542204440311843226014486906996596903909605794820440288857089966046354010292360241655163001392261923236150435745836466514609515977684169151111383233139588862683343723902763936916842240842604853694295534306991398553963937751213220824339735945096162133460314072740765218670093202619255144119515471897265015401947484212273941106203277495901158914028328234662453801103548702598211264231760629891320737617830866253141190873900419765025254572896876291333660763196081123366398975916821587914907870692913262246458273230601166420701253946141183273733017538065815741681977243564146054170321128355660908231647914436328231535433368923587571102160925669427572323930998186153685667887363668077360237331825784083389883596562512166261527413732454354019111365041324024155175026320969810495326611492654506682723737239163179777727887867411561192049140351963553543215777193263329941267217107905280648839165014898996713806028452369553048007495316541702138678311221443642793121429023918014690248280745617622765235002533948884055693611047092676346479837854607786028118182686465956997117868460829023179733853338061109857082617282154313327602912193912354703812314310922966216954406723716464046681945369590605052589982131728333462340458015459098397098357862301104417758403098300379109882134205289998859442920843658987318448166719251771344135643017607695834120752196246816609660339077838395934087731265796560267432362649376282498356714346678654107010232125977844202483829883391547778407437787257778745147464883385290370378988902715775187927180921242257209702993883863414527671165749332225596757649189308819603287769644015263928765988320573127901825744617501134209593641625872423011598518223090923621577383255032948043464084367697356153824157622368199294785715298870583959369357256501386141135934710376049125385780432919787260715937183658322774654235282582024381879294632520115112389119611713757889227482196586766797952216396472602455880296599561823637063242307652206690424728963542274025950899032336599724867114268695433809952384376263900272271118702653532544273359559949231513177601353173980148843054162205502883661872861944871334743671789233848410277785740914596683008763575562945154353238769493866733961248628715775680390288396680700711982888253749955246211967808096938101909502245386481530528823799341663961550739962724172204602812691645458901493271097579813878031313276481721914663599639492252060525309745090484929696875599636662971043194448276892101659511019520695643561397539481045423671580293954615195375600515665407273327256822710424866556274424308629759802080919341391594603288217188850244724564398550828981542594609698468062470040753060989447795898049774480899902325235645941425697123520298280481650103180124636909249991979286211946246451911481191850016021593032551315736554575746415414819442523408368827080579226151707678204652459802830388589757174549844595597796509854297932317544330781264019064592091193175382180941432120126301390641111562267085013299103712306290542889524839749994240303326266993457666178901433799987057118803932658080335306074562739964705668480728995146033534503764140710462475836278834831325224138521891193291197590212955809033330137568034649932328783887280117774670677600468367938708231378897823218344106694786353581478434195224065075654246148139081086882400624964435216786425598685664334714413421243473724039038537528798199451488547466388270705024101007782269969491270402530032438209960034503332544658403645647295619946606985286304690565389972231188796226071932686351345543088743708881726528125536235356795695114937646962615368176547182451113820303363865253006531115028175215593004288384986095874426668139950347140365084611710809518348725993856262687327640951797781294380561756728002312672883547859528653865685772413176049033363584278555400832316489194958925771730431810938789674262017661090713541345967854868578735058767386287623042899707576690043743373545998367886957069822648839910580250418764911579165321712608661965385119629001449572359597064558520296191521861704272290935880546530685249258024541110234916673947153600751515637366805694559298113807490416518799752628684940783797096412129299167054497709205685351237397536250735169388329214093316489578568880350967553989339889560272765782139393377776796816142790373647255179724253207959377322454839239888126503755110558261813146590476442231695383811186270312357048567872329666425053353352886695700619627139728829690905315868503197319448434802912849628041593200503523502337546853194448661837317269628657810278474686423029798230247525432779485542108902283794154165152371618317424265209244216259176867165293778816913895096419142532660307626623251420792649223237285120365810399611677664346573283838049408498068721361274119875882664512310088787749673013513350716638488570332276037735586475067873892574177544713134970489891658733495956133883258048104325248039206783490345530428783599793382755162945501907787699955819081959895357794592673683521641800374108615400526717089431736031154402620913745589514844106623967679803747139337768728990746952504517060193102105391418879286796475190814407206439983047815074223799868475600954790374791805931295452416064470289545838671188491602815891440723683931687858808145204370083517639803519067318004064018206341084748739277696100964097809745334320553656299574056901888681672972427167260264395668052090236557883863112986682383170089046458418596245829152479848907079914121178501556453108363997956407987612614160557704389166792152086094820363386374269819179577391251600116561176312937111122204280595206728449282797984734063853363743306601106776542138432755521838314793422929194884201069547443449423559283962403203973157375766130731912619795809862298036728692222980631309092540358081431322881867244005812758003749724790453288991112151975629411288234128129926041045595135483183444272726327546903895135501315774184845354083904502294174228406453520024224910680692376467223279147338283026457700070540216170742321090327574034035033827932537459585073860885494025906690843525749849708651410590148874153078760392854536051646896616789403343038843549008331199140094257771024609789099946006007459913969044165200033819613829950581903278171178429568920018089600619262155725508046126857648532405333569621478820806965580318080753099665153485665082773434498124457329046655092111174835775319510569221633763114171952357362177955692586085720634497728374991710690991069433171059572192682192362590157901234068083919051150103854560770017201246091594678563945544050779108593205420735680794980539343974369349056152403000077786932147880241836333558949918921916612531832267855686613974448735966414843402363052161406679475003772222028669842735241099037166026454254245311942404790350041822337941339370185048930531754211452375307732022966108375039767289757331936234341976808510198698090422160758541365694967552527771383320877919525429080092437029571006826078483007929537977879285987311895018351640492702029835833768354247651666370341447602039834455806206682475661486959619344166105828929296859220946495197042200527871381717492002498586806054588995891126697667652739587016179018710449323766631993679313493500757384243914457488668230310377806444335221049945089223023656063905431177308527993820528049409025673598136656979221612056873257094076282176158316095405197077754725904402611816216429046148826745761498802854190626828229623936750518842280358162561064605495759382116019107912091347004325290414837090026156610303543550999479126243856045278183512376879495386575682256319875745860245167268791962851773467803909039991332073705285162632392392562942465788871161765164998962366055923399041705424462272405937860380486993851695956562549400024778656514119082681114905184709554276654039284348820014360977955015768211478540130921402565814576852082866059166405077433334372281551641090227378098870258995534743658535430630309334419729836228870158604459771980460619305103810524207522628774496774164084344807342948092927151971475745413659965833656914154965323257471070664151055559000485947904401462972818140399539856654812888153366984443472468345604292306640248930912385502913511343116298679481274823232027507601399697669203208219336907794131582924428379311848021865546775794254357049717910324339670082823079509800111683766227552235110731149770894530907535345540720235282882623557156038832957720790523356028920727182364868652054757548564645015936627290140802029304345409678544420946353054467686582578480362592341184971534931471398287556606107276619900650233255493803162516256681250271168891253725132149801524604253387846745141522827513187701054074749893120683295491184989656454128043900431509239087766814915087159297419045083949530029049869469278896874942786197043033027319974405222342734558023096891505671263127523679444706037938127895159698122847770563162505728768799822624286483841119096408127228656565651446661713877195748913328148443216649492940644343003499578794651334327157314757922245773932894010624980366324159991264633774665068612884356484570118193000999954968994029341232130277837689144458897403938920184799153794858906172127857844690705177059899180011174624501884067859491257515502918691927457446495848663431371878686981666318493772899960041225826961792422936024630434045913758590108068594894053811037677707358933308197692843227945473052072756625376560125453455263166634512377508124805200921006745849203014548253251331407026895936765161606759407459929585098636338351785631734110880456823376372670220715603621275986058564339364961998155588692107149148607036053705382194969984370424019097832777290186553522164600839384212665872845446307132062567926309016226076935845889343583304350760117431917397318475669851693007196372989810243193744579697505270170193133779609853853761538007011543560427765589105126587343950103306599958459985443430151156152500779019565637810579950541015138096841588638845090526650523608043128066808882321077352500342007387104773450804422515090649332890238362025323679429136355773003831897286918702374299767812994361336315809276543948328109135954715778110078861248467219859656536482232855373377478868822133473813620396959139130623557575774893695334622731063242990281128240716876563337164445104178559023888231702378844743120964773345208438814147656111613381001990171796148853349401086573798281149559146957560902973210862674077688549303068250301787118847249497277095423302688512967882245760348246444312114594288359887533504206706519152674513617620646114359810331126752961768613682092229069554752021714295193310259990923203021313396662166416441487899459193496699147183225911007021295817983871679800984016127795339018774595705015134140887569522764231161921669218627396921527511107375908249698429439785190263299899419501966790134619962066834883794909127785013852855232408619630655774429690219955303686480487828026723060166888928200464618766786938788674561370238589937816358654152669571892324046927745506878907141262178130317314947189712883013670443280898863865230400997739073748487937854668085998077008207688594373531485521341349321378798857477722340059211030951144144694611332621654332819281208133896939870799125156474584472475680967344735934224755992359557060925752659706718314872095783759067356826208812914115295555823037766210409082718436045554576025631388392671209735949841873929790834281865336954103327765540237595523991861120244545749984146870491029347427915964106977556990829083564451591120206318333006349310290248201841035873542561122553371108434267264007926205838852105557207740978447761473430617231755867677344894172940469162966806968082924652957333920153948187702508601634488434857311617001102514710141386115749516064436333300654220510923041702579462870962597814265724075558513904463467811041475252600901289550577570997179301823611169857942649892376810674250969178136699689866601590714121952622869992709366619282526236950967022774846533303146824663144313525692247186519005906951354393278672348985133015910958716110569730366607270985166706701243465943186102706464861232543935159763772508771700097527991044993083338194265332870330664859496977160575730325622144242072987649596666243647289237390721431815998430726730980911645729959800013420530566852926705532558780585906617978792842581618097870140993163730999856687087224690268724176874978260467643393816097914805271994561416055823244376523601213252053734780666890407065736945752966491534960155977899550448803383827578873584935864891443928073420608573013397148638135885716962010593376211345980549629261766591016108892948270975228129263687571237606402597802011357943752391890989858784889501757825000259500571184442064237404463958582240793851841336373043555135004779738320117527060788416939582023284911751533164297991485756128791365236647850324504298984401132918935788385515515385810328909062323443410611871045699088073933873299718003236408013967905823858621029662674603973483540995109641427577363500810645352357145216945368248159021824669875031509770439988166069101353066549782156858823018054735269778211101562629301658228711086510278909611149455021173175314999341611615661890523363170113712597205467734100197854806165876332328234720458615007905393957834491914473466529634006686009487557257897969876328222630573058575999036609736998392183662265561848828137745318709787883969259658593434420904986254835411471752340805386855083314483938280038361414093874983546836329104073658934782385852280975582706887688607362380756497137488399903327041959815559894019676596439862791819477233472000492641060691948357720070767655363484063608702402196956788985535811323613756114978119778972575764421221966777932148939013432122333360143777283651674463165515222631492450565223712211988775345593842827589812978164198928456426122655758878109520629443392333495424710807939559055144972250149278655327139848348269453291744784863538578491702605829415022933559081237795031348447090344352261537588917298318113358096147494414727540785817321793191700281690227320609912637436287870489221973720491818155704252157291175746729933614045812017061474590029794832468302555342407793729957098452939624061258376831099321643122323868006922791237706472926454036258963016132605336337595946197628348478941004189805383603928809292248376491198809153907721798858480932645703763002468370069512859860026885007074855958202519427474667980942989743201565334878397779318911555990979511316436051386000199746442925152361625705337888748280464435522295432645377262926746884475771322836300973958153970479118904638011439952564291439058989677702759404511518048490992106421491635764741835482578030305231990747595429960872401053172972093996426550621065453611525842310498813428818833121377142102545868688022491969383832236435973238281559604999593382868115843185206075480577019048206917853443658421104147551047651220660863792703035278624601689784879406336602498896253761183472609568596548641682038510133222373322299113018366019929660234545459798382811836721910600610043681697554500472807116987165798780364356147837205007205554541995897008794168749874025210329480126451161473744491981334064793603784998188406315587012169287836551489043003191484526361004609080246215401911373965565868353718431079993692464873926549241319920074613447502779517486595295612635693603605454678092880491919641837000796535819375800839560424341562787498941137849733558705709903158404381361999431782200948775900811458516772915493218479436691524773606984233314126672514070677803686891384525660397651613715491216998485456929276951609353522220547250322877316541244562489312679237751704394121287547224663113327399796948911513108656366863935097377649360138624438315380786470262310204888882796640891182776732847246698565769418810998270703282219888619167784180306192192199198512159312904983702147686198949453394182576671070985112545080044745724433339791160512265331781328446217889636919962078451930708289426056961882138611504556809041596533354923213116984298181506559886260792546305185590673518936023550608605307055078066649568920207083353697190907332912541584904750817577261510011428096783558462604438385012775285856924685467832089226977238563655217961385510447973081323080253750426628298442916925628041067136859854828420507126982265807798111021448489480549179223951951220828877000003067447732615681883325383060246846906512511280114899660551840401707741559434886458117349789142505583463148166277429160832158379281858572763891891672701649347912516047716327573834511856740611583415142167155437944487114488241264150589911028066403781792300243910391554782408665925802365001381686526652706212435647636273891871956031004898350662074152998668822122617119110195652717620985664355569173717375053069055611328161309824570222504136789086425762357029641050880270052436880018428586874344023012158323740781132002102939852214983614094214819750383721433804565266149448669407821670520581444091913964904061881995905065387469354479777256104591614168960725036876888509580136680995383532005387203756023155369368544631595190112921663319329149133758219726487500458222217089536783140544438999445194279113862532086406988598862225970880228164055607826092062426585390334902556415835875775140405302444047136272234838660022500936760858980578393017712600805355888548841257052608835363697228860715329015494876374644959610450854006664416705067834993981164398434004516979562561785980312055658583813655967275275696466131896401304876631208235499211304294136316289757433636176145338921848571259653836320312721557142357306492971168930348927083978209286561121172447183285899245871343579486030247855610117469500915309393258168104324861961364830330979754847741751106123257007678619017951457042214568547453516288510036526145504471709902705522887763010537115402592553200908920417332130535980231014210403993901202475230825268678247203359539158299013454050581347172614644188582620008756887841367598118665301966684175422077893851215469151923727338601612001121255768118157111190861483847445998509788082910858002958233556165465335953307570560230048887702290207793442151889617402380634714846568314332150269317955227932627391691903224602724799883072392657116184032101989623357169712026954269762299179806096617529167181148681085308104547271434012260804764598053768806462490417518827052387881025790686448334176619672569784416282565835344332454196307134539707938938209226611888173601254338425021382004684961170213542710491815744087128810115798512438778796224964675120521863717840531303850025974328360679470190000452548672304347083568604730906190760148954144336977272654719662974281415835519396183385174767578061078455179384635453579023693427494370759912844185709600151086802762926059913394782462848365442725724563602259041761884577445067892559150223944167261413900060349590044046033976034161593731755898979844010598929071512865137102899023838356601106758836533614523900109884647359367607305069024486311889040408109788306455340880857927416982035089500782490930708984681543647268432780686006740949351826716323865989243191290220330526446470882560702176360197559327983467754450460380603910722117167931008171681681038528642511572074244128652997710062744876996019597392600019610807718129836426438178088377027464765772933550774880632917022463072302053818683138364591164719827813255947845077085802882784782112658988186663974642772624133279875409613894687244885728448872637586815014515341632374742865216258687292924383004217837543884734020419329756840723083379786446142161076768523462556786932682516039561682746035939265572838500910906639322545754455361517794969563878733524638988357923569637940634048219236041302598309551184682684548477260238915077870454285761837224383135991657459443598013861613678877151911950583197824302927349329495414324104253667364532013664682297296918635968420446805580057613085318769079817263195051469583517868813572146714623802305443802940102104739612559735620639787892087291394171137553011340073763291685902460559188862512771753888395972129768807240224207675949033953773219775392720502385556690604710145019421446933454126771878201405762020236035700777871691144727109869999436387319293166848770359774426947896086724093763526687506840496013099456517970402041259561473171452226783907106749141210900728766725972108360262480738483125696002058628675460430819266586988331821315077773842775982274351415228009084533105696935113625310030046405670250335818868719791166420893219191609321369921616364560853263166683895159577176736461410979825639581951110614662917106584183771829823625587755639356160620699731050145754708137275157160690282810833757763232695076480547263199763241211032765900826813251694383165226222862716946008244107862125790732254564847481047355518356672345904978477578618531858047197966403993851144966846449292863599603289451700187403168915106064760631433795214503925413192682957922992643987935051623295105996259779495656985173908752235554781652175654755283769410805451056489297468410943439345503332131649749830407286949934620040878478035801329394758781294086092582542426709570608904019607778024719309777908467076293828848840225733972410021240063432903893011847369523626938847180328342201533953313524852894511520915298988112461034096406604172204232757747810775942163877792371125990059630461896444197389908972075624009605159251560739646419602791086329203686359581014491940698862930111451589526191476883112071732996776485333406422051643125800912275008247840812040001596868844183517441232917137056718784913623527039073440158982076989293741784591125062402854973829992407889518379801803131022902140242888179954129398584566361852136845558272337611075760097283019524062486791152988385853180462030972296240189088435721662185687887919143203792156806521541769238647961004081195487030385525051250393389722812573501113910495628949420279129045323833963212076373115197072361864132737864223633420237599303679840946389135696155051354282432013904166002247783631483051751413230044954186474078565665544912465814777230366260110682723837634328032356583981505006313753700910462662790987650226622208522119159900006333397374157379336011895682277460413182906635749774810987180520302600032960404356456778129863702383803469550315922519947956614001767504907304514993511134025758593026868682717948337853598679282023152296899009312102087528821138603420636414278649316782384516730416486853701862392693568686082487207156180445849237609119242695610138431808824330296180909758330490229449671544529537501257037593066765202739089641768266479585864621816167701346264595342614779256940478596187540429759119509577081760341145097734321076984852447812817873025017993338174405228522762141928220734799079537342103901430946898783320138297167657133486360060612904553201692630909108249284327810821974013816216617504347505903661376954502609493922064942056011337293933871684426041694409133573211383324934545862221133697019947293938350914804049278688947282815997650126884374310968046373984334384716233608687327817926503761938632254115341986391624008575143320205401176830166131739623551594305353127321214310218599374432849905459867652993058483354802347017493884708341206671751685131515704570466605663446683510060661181061539038143899302294892453903259676052204229398112962027027146062184839242972535327038401768355726562749095628770823972636326417289759456025996452373055159759325495811529796747743211173139984606903220109278715387055622452619397115360464250248384980067465224732683991378278185800976718225998420213374740005358350048214965747965999558967730747525816270843320553137579146510829132631061418193698789376160527217371223199632705592017335081352877665301302070239234159443076526936882126450872559707141996186700223876056919669170244579868165639759188666304956754505961879974702663499672452936168357606248549947355922475249541834569796209079846279097818000620715805894743599870232071667757261681012702074282072443021528513617147079976253745285859954740716558487110456203068253277115168904666790573773729680813205604194066925862985075246613546771943493443241699361713710783612511084444221094394399072721129310889929852114788798463006277264988295356496398006127162513873195718996539978327133359083364783076208665389938064635509862126808759030472063834297757531426137204087399981031659988139263359408805279435666508274737323752002950107694167772151788551717908749189747386552021882985174617187884575773038443992464219550885964170318692793859952315989805212755780850726101079626407937867829438112937806828020465164007701658697977868636588500248865289529466704374871886053263553481781733433944995709419747242743310653952381341591385716851621087048513158549122730147269652653870034778041195826396216946087366293450927073034092583014667958367700333240434589798118670140058519271302400234815819373237322778502343044420373612580867912616804887453702149094195092174208806752737200667677264555914441217028748567294498768855314447808699798139816239299144332217322124669116285885340816189727566978482800709662530628846235214734188692115675435764996813134194316575092569512009247340827218777195893130994182618610839782256655852814268263759781622814957130516893695834773781582573326450961075257447555055251386481718701522923063141383905916795373985701440140620351097151348717528412983605795559037707529674768495374223077923145743624001557003294300913768540187073030542506615081376160301903230369870622187704954331048085763671799005369428796961789193527699683553215921502314499544484043109201501272122941380737753097943802364481150735813333263123615225548252134282277830490189131851697803668776105646458869217313133238199542065891984000669898524544711459732337852077901779846751116263301107110307875799548925023601683785663629262555701063392184860747975732775375625022731461757186390709147021226412940202873239179842168983744999953791436410773499475445731351981884288681687263096522256824351037557254334517762659997233191427216736686907024082607049666034685712566869590564285589982787146843686110046918215148167114755154079657054640843403170598975512745047476583689223721246608073477314214555211307928424194481391466288233642555923484582470097936208775223790192787526272046872214292870240630928884070730884867111619468503077354979074499613675015053446904308603553125207432351127335717789117532666875884299500306617145891109025084326038866192143810379540632345119860742795591579575959768846623944450875027442740187649262699265028949422146231687556622759704949269894786441737206628449525983856093228707789149595700588200646021414141332894489798527586752683502829798995182358939065733495865596586055603528678136036617259094739294410631132667403710266239544876042574419353885991797416193477021937838951242989970859850533697020136487998862223439088506516911085697362994771552040145820062941779650598899605158888610274951068813253915277944735476794200573683549512317375152270235939615030859933436838710215878795630465426087648164500181305740690954160807320141479540429819199032439307493224051039734947602945989823423812792952262971184437771469339596700179398019206793939106277939653096580910857804349179664992022237471333319919128480121954562428679331896074443061712573106091806255563792980957044221027355587226271424814041076231109626767964232162308789394765025388211406408709150787126973269023101268846079288182650611206902926553929594531713802646650930835652878518294114697721681449354811908893213041052698451614422215325667336408314650882918178670600555792706334337878216337932202936164286608383892426520425451033087321096880201168344848097456468048391901384803213965754845585792261342105033056012915299333411901817080223623117646336459609828565538752024250268953617769486809696716778474422487878243574719776600280465777402868330656833257985409449780461280917518270185434020717056119271767101099451044497484093104297214595125924063593812186817125316191742528719661294228332642278789919078547242159984126549940389398744940753240754007347478999023813654882141881320599186599003848566243038634549222306922233061975603872106921329531742841258326544215229905899782555897198551364427658517371497643580718289065935337423884665735145025216185847351826383068996949289164452513991742108583729119341407620047248788385500847546494621652212370984416776358858052469065486599621606710595117331477188899273107236351906412114367901535842980539944987714324707135859843113448812536905349049917700652890666436463549790556413966044436632896980165515137078243981837141806312577527957209948039666365946794948494507129652021213935400756033804834802754527287554252686082954372011653475856670970057830863842501853036374181062058021388492429531999064444941516147739186851227385558345627259465762385310153927455224386132777890770697677266672046024251806675128669775782267697181507028834846398334928315360841583026425033487754857775843932037858050100221062537088690454558437414853291637409724324357015810742920573466674265078694904323084499135301189064374066931168363914493098761797501535192232271330180280492600946307485577822337188357684198351323441810537337355841095672750985920931690134389120442764630314024125264340089706611168375451979648482408240647621050903486089941354298252159941222153326112964973134335722001865156782447407004050086378476373218813969729544429029852084669550142682974463230569829795725396168278495141335341175177337608231776061838485860671020519839659572263029433901875871236890880465798952705753824021960471731319448779565860983321380595298552341186949306001179787181549554967202653367574651563247845325918399313293385091781109741720625150691106470575087411238238078186030992394673130648739023141391900590875029084335626503184406528206020570955192671971154432403467715997965554958148410945690985326972592172920967585314515715283423316173421625797869795206188327751939960807273252356983163461917665225671483515190638529927472867314897183976018413437854627572174790095471342755626196540480632967557903793539620471279264044273870788182147564871437755845724462987842505924140369949932098665028307390000530695852884624358858985178471170076916942968889951842357507631381698524023169149499658193553676141869367760034329507126837609486815266376234978412047175582221630561620888582864304575854590506698764929233158811006626445876422343018148349850554358013748766284664800378839649290772935834310256577459061190096719312395267110475372523792526399337395081946016964521035744926580763635260477939001294486439323726319361994999604802743452128318089831891826321746151350315559012442708916274700503454443620164210886286970657232081797204000001632206616997275970080258451277003454738088200888900901651485842622490486507026533765650975836973008422599520498365885632722482801154113307414045965827920161511447914573796903115195823912823075584444569367153602933953096320647814202459075099452100526366473631018308679543978058433964909553950209808681239914776915011033233074965019442331913357198796868943273717454952999745572521825523959767125875154855617610719435832021186156999750723630091525645415469472227986634761382934528544239377654776522680994650210336438693900127832242730300721281694541834200022232639771511696382326775208528148888031590963349828922885999371101556822393866386440831530565022777709790919959707510185772536204789093027370380670046072557527151019312669056870723648792180306406405188824664513183426036712648163065418176485574431440848334839973602227116152185650680025949547817120815126799335564569634814355198265507480550881356221967425856988112956220166570987312035468234019431886257857351665898138606877621326870337357676451184950977160895605538683885558497751034612890019374507765082584739173304360608080308782268800297920745918328347657034553532431420116336777901795183548138164568881496696193902176022194014334097317128106944869846819449946828698294002059379593740376974494929482321805363757856860456019106063367467413256482405132271515760613635893763470335268252691927800636509244409000543754562488874798355834915163928436820068094998059738898298620222480295319255303991311848337245772455392662336965015206485355003973610756548064144225200634255813041880450811316327772817198453512339647698632044119790055296676393791458808835072264158278987907300438143406984383046244881803707483444342748591501344109904853949407544014007557989640633578668075951493502416075535650868772668775112554062578507193362691290365070191408328311628245584475381924208776475272823036443058627035674801332182580955141340825792890324933553432486938839980324691347244780968059628047407653189592967112253970620199471038250221526763542184256070990063296106651769611055161872566088465591326033727633128085541183421645303052635908212779990645595669304948130552599805657099390652873178948125825926284548426219656697873850813276032041917385219392426545410292431493219905335295658650910134784927348948689813613495749645642556762821007094821126231747669339671009913956502126137167053809918769947450873856342845502728660101887378622775441793765733598605942425032004971831139069002501608332038755973598590387975963489280425656421908179360565507822428026961138233283610899169789922839776122023206959258457080483177551714939410020743248869609580925896773039269198827799695079011531647936552486775646951174120470409475359055128043123168027130886406209936515937017245627832444215663807679692008795937978472877706131594515279466576019360158644806792805152890191169365378707960138439855584967760689662470952978572802220142026799089902567110373356077519545906834374968908063752791504588252279796396354552030941990718089919146899920158025890579727353727603454058140253452309232924616562900776514457000890097157915535410766958713080123075308374074456745673717662903715947085315986330267023689896793650803231084919084018251129132654038996312887010408293149553418787667255562448585232174975322828031760706552729838698370209964506800027223955818551199848638252970010607434349343178541969717545685359201996468223719582760525228337217145609312990305398076258869474112305544933775058727538182315331795127662655122372136879725934089460708355661157602291643558941952739799898636237892861955768485811852717371885219414904150061254059897063522182933623786951586646425414894611917015614051945110868428915503677598809638302495356180515890113521225876150303773491867802007933526567702343625689363436182486110620518239381480708732965445416080576289421954753275529097416584499886245534695928899371373171078763243430310766141801216842072271759445686572146325009874133687941010808683376440042275029843445453399872014928281384534175753586115008450384757568836982130156639925321394358932692026057584686455027389481833604647999146790693169001566880443075606977357664793056839901336565970901332818035406752304231285651358682241984323050214316476809454231600599298031800597552227688696179962234689861325908524374349335165489980108851400320324640340642143048186762764931889191224904569290138857813590855276082468308683464592590096540247431157533916131298797369119610160652230979141778917656753155952148578548700459029819644400505899735041015926030633124096494035407263549580183710382143580281290882943891100617401303685402470223371518203750450223015417069422219224572738516468397412902333916075913870016161722922019297947109411688673816151436735407614238503440626599385526132937464254605770055393079653312806081814109994393363747471356222980287918876067300869994243187157026243130018811626111563288001116302164139780893797010149141970649357093626297835465328636975991037661296779012317258746061728456572347814574297365397627440365182372228912572229812779982329859338890542846175937721122381953226866042606715743568288608831144661797710441493652674635041228930438999397953337817420036558359370407252304839407604111534355341284892242481028548729923120046922611286669391719464340449921425097319870492045588458746874653352837114383847831767323025962663529385846557220166140009895579915313494803815281441166443429827795619456813144497691611531194731515545134236255838663081631481676548779676632632520745584321938136099890231451103550399641318151934445995028964849858308604771235399256297084933240564351320683255607035062695941349784350037526152438025348029817870278317852706964645024998298167954991751995574814994229889015797066579056266555311919336228021423673823900468163091266847396531540747664115661583030543788988804351658872257393871746506363792279697206653849712526546521550595748765903085455195178466209549031864045649932160565819685142282069216275788649510551489486002598635769344304460093360042548977492594471498785432003149745205132506507254706410361804621654963975752970397841336386424262830674637388531605714454932116868971161207124227826508601853680219864070633996575099960928950887116695320475469692170820606793494616080866516507200060894367703584499138747724126613762206540423806616964210501231163682052699012611720340730195001925622193147438326866064475387474809695737843982748336145210375892380992802896439784703931469815488352116289142889303323744561246924999999540248730454385899004531012341437518975507730367564379965880288589268728433707058961178790868380369383355323473783397411429282470451384375121164556494383963963776525173907147924122321090613692929406557279724183321377390121607953050726589635531148995265289945677869057618251309329822911788747387697437565462948839190697426547007776045440856429110801100141790464549020480118144286279680961345838936358324192622877728250590443716624839944401804453745062030296616372869438945889402046788183634392038523940227562446778443719527818485800120833447890368636459501056841554070237615251557298416737348857251279003757497363507538543107499662579476539991255652559642307678227884243874051053198589662153897340803744078899785660298855943720441436727229381965546185594166996342813272545381129563819100693084795230806309852635923792543882403817663069986090617412722590058343373303239814157519561533356393779090495848047224721733053092957617381155587982268118231270738596771766939775389658669867454322631139363207820534690079902323877105690179553771983136326787195786995881089987666942914218244881257985950817003782122681513743112336346536744184799393964075411514287787470230918985662778802935192539206989608208843276606684448793288355597272872162087597611987603881445220836946075470908224767125834121510639747969234987247460311795539909197291032280205988302756577797765837722898289980466174915065569684911739505797505989001008906438392286785476825257130721243540205507395440484868091276898667010203330955125599545702789087668736429976053364325980590075123890577990809055477094670110537868514426067101993683228874805214065050991685787318926797698487915881046413172177824034786105194682403739892746212687144871624157313097543002497425052372878511393430133892350057479429251530260452739310294028899300646297968493244605386497145674650629146553177139935699440617303232833898701211370689707728805156354307603228568059403079969446805344312129402372935804661427479953483695241957583988456238823859671541583300948031402955757629159341999671445864727445602897599318534589121925204114477797716048728961114925909097029525614801356626725221896047608346756423543373824209946743441710656890577639692034057478956948229270500872433041368255611750165507677721240056806197711845166894481955120634025223580972112588794562362888057612880487145166370511497622237058457089359638612728601661525966960850597462608195598726172045290380207835211456097978613687437078991664234913514524069366748687857428851359630469358256610434776335401584386086423507508574992698698675023461845270723209315573265349770495722063103528482153357043186226696448231155537780121878236245845581867962315432822779286699377304903812793664136228629779919265978252773566649052869362858324773010775825070153791020031019293681054432861873491399720979436572050773083487399823849022599893483706761850669505909968769738565919733499877056186771233770052881324229952443738991175303501007323905691843951029548823993757354882374404814662923729255566527134074663959091854815638277849719209683129204030986576274394071432179493068040279347404401965540771811034274965140905666017908103923550431860364115215339857085636027006857052739219421031985089190319421061100912693249040977729132994474136342265221889045371199945135132910585381644332952862588540683940038413419706824698131787130205161464127427730162984413244006483380633890808139202052452629459467686015527065080141783437850128634236154660340217206041958435583347372803731247076084373221104727334537838731559722342488567471045369018920720793139353119357521455053544171237403279702457335150745998404629699404183089600728671245084049605282048756969981656316046300933155347518630979002588581491897931923828722790772171220703859706764686720465259494593751483680667566630715009958111521380760489326511650605973858889414345269719999714296434087098962423110098847612308923271699589002017479561887595978497623481935565842651928559178333479747181894293652588937756850818996770635903369301386189675922393875798022180438445561841095918179066118092581662240535603986701572437142658000953721999072442853210664512390550340587447991026968551704162743089211977705437108388092808458878060750349207463487603243664670479049579040782903710427418053734539943272951713707464203041385623334783719569530490618363550335492436301948969204970913417129184297756939252233921116832514869890176480450208573269244677512776815320554145251037834288208456464586867399736347219339728819849219180112941115651925975803479477959656434428238271572194681725695002693701051046351282536496029619724969754438357257407715488216759053779528981795641984135061449635618578283530901562980031027085114537867859226075657232565301234235339400820771240941968184433174647531126255816384846625479813951524059346865133974651709388947637924390487125285383577315065332593073705851251749031223528105558607813050677413974868124802520195990046152927210531781764001159750484670886049227118517267877624718554507184533957509580711543776529006219794545777156959927278182264526211117126072967945412341906369958602435923312066100012804605015336747505560476826557092734746015262310117260227536141400326457230799696119045879310153105918829748019918535627310909033006828585619007123434075464074869446330409634763309607515996106917447487289822361777090919738897732721023761206372704104632055429983380586338553880014288048935592087100126338289880117151827481673402466021396467446750352119108785752096867489417115988772560809352193192512585662240755546200184777300715827293947010774024858472674287472913785988506317942057283088734161466241385659240683693369980940190142885504648585490961652741668342183910197143451094433665601120858309351730996823880232552921840167779400537589500555079662491095474099013009823720169652571801157249153941765081000665455160630718191954302586492591774955868621600770209257811681317109767177718193094713139819771126537622148140351821193936758980514217657000235424843353856363630631039323189041259226243820476729212774911537336294998590415910380857955122093030041728555584614549308978763245967950589831050015575529601792933701509844512232311726435263639601319205870173725008520914738391205901411112143276213856649377590940552993171592075502233339687976054697430612144694833295644783601957655325005325378248147256825402995712795780534423492708293392005395389991367066088755081827223767366843235182347351102175087948821885541124864467818016520313751655464386109692414897365630017244801390187071895922205067080331576678127862579135706270392957225751147427675802082911275832923952176194409550354718142034865514277831961836197022932989101550925610528918206054070829749300303954049076077775985417213093210607136809918855438948030854977614445044170239164092559637113027367086865103913905512820249227723460812621422299832341035826329433609833660980869549329092483111736887769099639950081207287474208351920486519172175993348966153539727344263598980870455746941583515399440083762438739886210218140091366462989562647739981175436111924083961494651355514312751634691451394298325689055323984228635574278255188669560248944749031416477613749130942832469237766862461888481551901320460829814927542006439939311836032674868846471216190654728679834931871032983620009748005995563911090159581252807546023084484666672750837125656170334818383697912127720503030093874742334006251208002967045254604286024836109487219581869642751182781297082065873010920218374708656333255993271730084247371309153272509109133111847760382574250116367546051821142530453134043328514508839327289672462826988923849339086907666617394106929746821565423223147644432344412374518932151777714265864835424693842116032110603406229540774611810979199558955492305985296593115510889261178096595081440511415057619358981496380636714134392776883184194576076136132117038179375152839763477190496875463053041181958601719425024653164076348779407962832656769219239224675936024877978055722931090528172645898192485294988176328890614806099785247976355135913408139699861297107704543240542985484482129276097536929719526723903059076814789057447806738683597993729823438744031360975924664868996771726909444466332602267864051311357448056858179953215682031898657298502707594143157410183003124831915343184897462296096013593675062213647928558012380550266646960707090248107707133979901323219056783231989967555958308292676504797458116632081493207336089918559294532277047415393276077584066486523784537105480272041276726879066623801520645363889562966301234322068275697840437208982306305065887526728886254638962765640986094284864966217902544774212816336813919039956258186227170235983258547407663135497157892068835333687696762093136289453533998985959547607709273891611257547835245646870082084160223674356535671360481159829727078071360907458929999727741294468567263925109045474775081258635762373374098884444307393891376208554780904860705982690952811168320531713589785818174503798483831137267494229679995570528205203994506864489297002526040908341783548170962839616323611202819645267007783512867663435318961726798562872154949303543941063864496977701429292135179215844448180950769138400669870585298449819986488388727860631432556280774762301858497344998943427093345762051761660169141750332542367544301060415811705864110419223676846924475848224662710203022745166669465472418010890198757598948940777786143501974073099434524512040823097719517105301946897611196490535111901072881547376770518337110245247430811272222464032526216102440438523398137639493414759595204078481090833382537426330728214809531530998975704958092054337525672909443686462014178926752980331371785067641071456988081807886635985411206203570109825529375071162065625647009065050080856298198009124324297484874462939244659985359759549537966770742672353467436959557034196383679388503775000168794753220003336432728019599006882812404951062643257512861507811505295169274911172575723657465485499627599205663843352417120530464842253281786395747549353497069371943528674036196641254568799077287127151619327625855451852979451150760389981987310508680804625608329853665195697059040518727648145166165624327701973244076408087695536922704005612222679527650514292932151580296791582485808265300867625439353120238443196832644118034503310483950636253080614986843637062364437577446406227534804520951850639133709873217736528663167318492852335770740929131153913338938165917034423025595402768199499837038433510418704995891831608169730269909500898335786850127570056559565062765983769668448151970577005596245427055673937916158963041150435390366535547962276062928827888830986816721857405912294842454683887075409837016261803965195712715161269552547426755017527456242762328879570715455423191509027790097828116928146960632863297645576937230996618767796312029375830934001756336279127446474118140026132603762765198368928636868770182804067826485744333083195163741981858389082152769649903895925969560303366926558301049762485471414323900718770989610516774770746656181833704976128970865866120866415400585100369928629172480476424184490897672403158216757709547462574647026160638459619316488790087942812877751177738171158008451317796601501473186980611285559598821627157060648985520393469180358929770218259180640302251791474761050138430988706857743257509864762231484492398784245964882688496175979402238040453883795680329535594813838207318218818502759601600779767897244095866090003331269956917492048696099685820774607312241000344045343153923307390438691397151404311714951577999007316444109561534702289017124872729560959669312632405817756628793754752044023051189057708610818986024734025250710727158040311989777284572151520507883545840378740641959662629492694908754555484388768752569119766110135238500855370919970033976342147970623841372251212490594451464990507810409860238003245713802006004081227802778479449330938385359310038551432127101539411712657966015968374275411316079377551466426430538364005820011902182983123725615978945694835195432613965673039103302737556330314487169268078427184486439842284317736949646080457190985505968234157114747710695813522472552320640117193853208403102790796908163760376245686292178572908561836558410857741427786288277050407465172297448606132857521927371067838768010141021828391698238245729403346116737580478712272180081087025929742241253288963825720713246900173761018405574114751235164519852497121778615344532631049394327358107814303144860005772319512465467348706445465856475998728552301014447118724525089720173198504375823244931317094868965911529673010350862413462858634088643043212810613621207064777111041909712179947630199008903746797773483398605469699440121945571356881497867082555939242712603422788733566067660400829957384954283455790551139981792367947803387483931766945369631400061071832497121813003158122522517891566523723347110152460992798505660468088958120113911335244398522265948957064368809926020980403834559765586215236199711558929580481430101501861595440649419690500700977340847746313044931394989913266215253982715623371419709268267466907988006517248285376782267553332632642726002729249004959037377010700495071011511769075993179579516962845885445314672137096243646904591471601073773094361829258112384688797698558126741228321101944765696104342878497593856295572540771726398800829721630859489196352909269919467459100131182632524748445952173053577788348069732978054859334309568267102861987659263496721390924830865550906408773427473129604795106014848254828495333040038896762518458063581729004646197587712485676980923168257162105753312048613808505346059430156723970720091066295252457867496858770310022847286453517420331880927727433076677911829195263714660452550736532227629690139811453913070514015534905676415526048958926698687778100878432266465286028036275128800548792903450908730692822628931025292155128847265941127002465137192496299948178538730737053860939433800905997242709071998392159366246276887897755946277065805701860577869245691232267163783809617076189549450612646550971568062259423187829593435576892494313303613228615991542222833670220951807922125767185432152410428119636196105277849687144215225191191315053517025913237543299626057594958683543728734251992878508361757109514565772692339905513083715082285627239769766731596233752134938648387409301390401968302919940518527998718133344967764110585057923694737855005417983887152702216616068164603078500949105798661506973232910507195557665143588386439819006585298858981118356590715758742567123207171634920679170366988879214130989903789651617963875989444352406070311320877910140921403023571016629062221691438829951689299703821053992014482752056274380128414460576260084455586869599202011682858323303324522955040976883065600226608428926692543814347967900213759399762195277043030643241661749953090070267140113899936053135976353122663297753128606332255826570016282445605349575866878186091052429385772644351013162812348715960100594031288176720766580179244497695849076711561139261280673257024607786183722355174248033918655451234256718818647515197527531249807127379915805880257654996134736199403666370568187001077251409772234995311264030012052174724324335165257802136051844843296478162980630480408594544344813556770801237976009898218542980482658472951378889614032584584920730259512831084916709776099810702616484597453526293698992149458270380770803326610725603013360915622680348702989073748906960401326122257533078326054779333461490857209612077574101618652275804388977716166607711255163071874368385578341603505926571382150053147605370698148112830381106660916435826560417647864629489258923085544931957486734580192175643910804927390952666928991995033415388428790973622212068902523803280187378647558289238775366255558984324224559055108425537866383235236866395725020242832974831137960349459508522341286372503656904414409559028111329207306945758314071587738959867891284561681491721190890580823006939444201239965199766765949642843169753747442208369581616800518467743398028615784563092434901049289531342334481965070501548439663247061058827963173825728900730391022464497736914017085089027922165332111047243489129773552053319324594490985222633396185993065676161080719673625192658220309912504164279164087145135797942121882898445417758493682290035896851577254532149637556441203881451406308790720619809431762887199737834455460802954920385490295597050960009182193416440875471446426500746317572652870010732412592813002932483892974287294275335573622538152127776626490046030464149651475718954970332648919888303229083475510351044770840498959988852944193257839627974795407557503368018748361839278841630228452257700526970730542466168914535563064624323234311794517755980571998974408384313336991777321581605553890917412741956668233395387171976842542758841963983005741766385660706980211510404691573049516501337629719009083296155542181789933881430768917803043989937355593397037846382998546930045227592589279418225284215057611996953364359542895704119699391881344434634561423728129273774648804900044396370889092432014173126993217123503317674095669657311912377508931827024749156122066422430313886082177990362071353978829746992386709925762125918266610568956974562151332657232177548157311534495346251967593472837657647637586742188215347966556811860281888325658894214157906475270124909905475009225029714749047600590708367473430188026121141403503566009940888606427488789115734944222916245624315572810938689523277464043236068688458788949896563010548280806980677367700559425004681948119638111263573065629996454731766663065000817712296848514021599562297251974271024917723058945590505061729172196156174844706745036796283980126549125125150117097962955442242600875178583224005155452668367370226555398608258252311247629374529552759623446007188287115203979800445779101642744296613345448029311972486971895035052145153474567580269066591191164586668102872530055080409546168494041813040005954594859696903541747299914153272002699506650174660636321502531413255261495556491723747232292375639150161560650925644174508426716767021464319786822098572400910085052676239971813366439149445103419128910583744130863581181056675540385155482464772506495614421340669680916537101420983727434558218565568027078752936338638737948498826337331588354967637666555449196685751041389892672469662422803572610491740653275067893060194526969360748721034279312989145165915089393324305875208630998538861793929548140456397577060720286680412733112445533562318107857667439550685452198504512985635659663877763953931153192326304687859982301175745878151235798901274136226117977422835698412816678600530958767633456619412075467492674413337117150199644170031553727409794327024709397690912430339211451316560920877233578763079281590390509644227370116731573276544441101572318811800402998847031819309444892235420381518032192063113457749923101370511425963866997607043004049388519548420308207150830014875267135256103056298749680486555405020467660365123998202136947436764535732536367742877454537567293386635284241048298941569594404239552064765960277649048032033134910918844528969308485377885525588474925017916429118353895921784821930211147339783866929406149596168716162919286966139309003197931724661275888252517742589591393648993129850092474800664718729424227068797743925386042280743305943754387627750334329843682580854925030510017037724930703608137348056879990023021352391423393237733180135926270677817442731506659465039392255635047247002289727182913880900169749844790828872510992436880541312371135121498914451378487418518525958049196335161489829347800304695180367416449212703836473995838949772656597043665278502298524445033417434231652677895779729665660572574626575661197031942327000000659000995647758300847636438721892851231439127905297539081343035929121678161683190446530784939558019723028728400780970777209773185042586366374469749752247938852420667527388692161209243439936466261232913492673266062699396548613213604962854339036614092784391544599522231322474161839805151122143070936699112537471789952627448985381664796078702411693068485095078738687097851086718317004321416643676044511255080164933027616376901620950670177058641521182906014194028937745110056933729831027905348645384290710326497602502424212667464627028167581029607514558836275099627650545614952406109889316496150663103085490039489981008966085719596429533409579083492578290580392060629320488740868962854596650451396547409288089673897218940543471499195464737937908552959242394885760400844259402035403354083922785635367623916121111324345411686013533400477520675470050177405486211703576199123046087497714775829688583850160728488304970168064032262571789615029329316639005833348564591220635645415003610101733977959713869588475491445135789995328824447372685073850847160299633557427328557566067677282416312934827147022894563914372785021020022175984427040713544423412438018999701259854135306847844096081528243082900187338978912858998359433614637902837678357011064808741013248863938349396777363597676905614104272788445282562248138666901351584402541471800136543983555060873989308081989968288329375610061237057525265553236992201825514328766640209334813513692047901264823970924926085579967026441611474604454106079630229275370882433770993779460321876031154855465857464389568548175759217154372138307246905944806108778364274116958620192327109411158866392546347771645958940009442570506144474087722986937756636968129444211463096432653843155582948161749836390406607327612892474775051968472289399355648781004514820893117946384165346673579546998453596388855099565649233644521251259540296735545993506896103507692209537620961380021784939628685657659953400702827307175910211114993742923169786290221642278812884891739220092516720498570231528144651339860893088286211643829193605371485126062752247692460140189691256305506892260212475397173384729650070220845678138093497771550467998252738937237321458855079511416877390305652843594073064416136417629533478904553999493276062456817654707748533183151308219494210666702716955926919270623139153162643307925597786134301650263875634732283394788283329100027105820258316581874318116166451646083607981584159781927398108269698373896530638367322967297709339965879830408374384596701903429998563207394179142111597342857522366278236722888028178074294712665907276635338004035000106313095563911061873363090413388674169253842885474987702875177064446685983962885358473512449724804723767895994913145708700279814286102706888289595176628585486790950865455311675059706474814344377126060579982905488666963477653676412031765158831364691224013338323481459056343898401653518154903283280555616192029303483672699812289591647741336296654356288022202042645752717169978918526155722790105567178691028494529054870136059690140192985896700093367348505339197326437889620946705945096800067665979465681183031744705139341991170402437416304453289879784849253349335696616056886374530805994826893369669359615600926090970312450037880399608765209367186803959806177180905286394707369424433202726454552317349698321765650301377829612260143672754029698452289435691213362878680696736721266283226556500472309257124485844828115909951203106509116891622536132174476479633944162201385828688305612767291818355142516421942499286021161825745293282237559542197973701622847274908748563460553006676875289617670870187131265758573121135688251296072710793880358951243478824174786407054935151693789657945726910782840525434286479214197266233358162962985705132096823411865227787440830202861021034785899947516442018487533063141731183350758607184236025488565053581033779369661994267503147949683184059924658301467075332959332372874427492045614540500057639337603205479448578943068225374727495452203931355263922953068644284597876721042154529302516974766503787520130154561976683029905477335658005548866233340370797610830694463920473200196382637467888236232409450056181598432761860967384949980947519907082173947674258265653135510559836730629134487877187673737224743200475286703457831381757532645250178245683963809624950464370847667807660128376434450304883146499197587119211861521798280984783833442627977038391225466055326118169428491993903088957456888503173783326221383053561741049860531888781350522804786465536878846335889468948551443025953371718344846467355865754061017821319712023945152908975823944275053817922478434374482231222212709774652915401171135615352289048404369573622803787694273209559575714606523677134632718769068879979178485784220959719752889399036444706241801766829104222081009178897167398225137944871522237467571705423655791864529029969653223380024100467639810323658670719096477793964332550824019848960606005550523703347394330204780667462230696729643081839625468257012065972945929833651020095935186465017084133088964860696366134020541351122013891370176361605989047403996444539242208358059852825176359159295803611419001119468072885457681214834401822739574018106229998556668265845869531765178805919001629275951273215862888368392693068493621860202383941286947257361864046392419523488772233597849639221226058621718088343203635585468903246501226961526120531735638790625786992804826971673492757631943764517130722451780319493438953462925909031107170633497712182019028894878757099806629445039005187979518685072737688916620272579751541237114701864513616114239631481422885274042096250036041362137577012305537327152532620032473426403409007314708633786033745841153510256341585422599803455472305153371816829646649749800212385727917964238478858442583991979046909701560319751203210259689091363346073618153920045754851729573504158709642205368384356228023735471341132107718058494103682047410101274660904097044526320211415803366286833412126861541708031967512900974089795405656997033333127202275694616347974199753030116769018818184781854253857939548370463367710107692892333833117355662699785505794327976821954450769777307137157958360120414586222824226152935478781591902756684302158261368548621847306221528756658586053849458465726858284799812134469641398982745644226056587556326225523886857926530733808456033334406975501237988297723894328009573364432533687720012675859889141008071582324237460790478242588888504686069556313182341847450646165625241826270140347230535871456743177310601081595664571373693932389872697484266981452049485791457472437241581699002901529753084316820007752055965430902894850344748379501621980058796031502523082483170966455277279069763666640673863859880606740176410416595203854221490305004788844052069174571523219197622572151140181938871877925600094955964498575136889163267365252903197270625850389743470779592461720729243307440352508182201889267657027779024148661046565665779646253088827489440308769822609639227673308314862437035093564393445784639481025291043163820313894821391008144257083726138796558306001298590267541708827368250474721451040712202976299771581139167661645557348731118698155563956419583057750400396026565147067552882784676433595569145926633762179562706798076101562225499315428849143915933337156014188974211933133523104507239867839013662483233634948538025965864263787480341639412284404980922899055589547591908572438282369658193044417743719910366189411078245067130570950601930206975988370144062110697476785131031469993649247119370047686193379081074949076769172583357242215858268958183816888063089858971658732332594075037419844857082793702662778041193750935796361013329131328954787544169167097848074350740180540396376142318428249144890347063889887149036128824588573567716296662886745505026224587131446904303875867725514650724751735943781753295955270828686506826579974996392072825228032585419958332534862422443588376073492923156663898680807859698981345596010746310751817745049303024074944807406946270620050325157457764029285495558094893310996750496517878980041917474483466633676414364800945951886401342024216355326944873097873122164309961141683426130748150569338020206942336062027801435339853945274522138626350111111018329731281414922017081436374438743336010711309883827508384227023302826320955612643192047262239987042096017858322547428325649570402829851727631309989988020464422313528275490566964933121221232890463462667958398546912404701372215680454281953045989250706647003942832436858384239432242750660999512237927170156632744903124666120854198704140442956070539394625445360816173259669683289350901325254248088484599959227476606735796234213656745270458264165598229750113372820246222601652259124913551575826527168013234354975843978596011263206450253839605796943738020797859180516651349470880517213145599789166347800746091014784580600620695888975203602414441431211468081088267200456125917074189586340210253089835887215610130386385793985612323575148178134078374760659856829528290316477539965587859255252051234334980891336931629230894625997147052479960910690637656633483839342914935359362958072725862561352615220342058413118556213577777918717221530504291428390607169915530264629245187730555996167618226310901440248510701101403222539828532039466760155209947349060822919424297992090807136035938649716582110671697337318042158415161060210976784553750428325823738162171036447931657902632616245891113087821333841015794615788064270243219739494696792488180694244081190957113409207640460189385039579187006071076184148591082606702148474694797867385498056314690930732637745193706942319950099620856113467522423570593376158445267677287645244905157680514803052371930894660524559679520331867599789930154702103883408858487714415840466853675813536415248335834283888103406136995017318628464255532290419217999684956522766229528168198259112435650263210436913101393251841892868551311894677895916026837857475957233066184769460103800518700228294273058818988858594089905207411390196023620744122422278469367867565385727703580014235114650905155599537872839585657630805634823900514222116966370904024658563010048606930807381813289658496063015669070082681341546508467905137962285524232763446827956349173394988280404407180079029817212561708748684827058107122427503646447417135013397498867326370671517162092735115852147185728063959922582413239931757823730268027622028639439077116979797658135574992679475502121118416691128634915435990227223299950786658105418140878552147470715377272602191571929048046248207152553649471273173895558502595157599794562938940464186739215933698098371121265935344587980705362778071883089295691961947486393935001614620828580010541442366745095116122111285973344090784484695440760861308815531531108895764130120270120472651894508792919475906593478414543099849653605620553441853240637484968578462585936603289131961565844656056697834183737417516352973423440219230495785721508299605474846060058634262637463610525832535262656205560550793121791457439382009073943406996788504136859662250378920471967975357514922913240370064914161893272042138441298709099281418319582467838696327056009072237195255021345965188075670222923169987760640928243821397788883377656635059594476958442586485127693268159275923507861001570247479068240805833779336449698223872637941520149321815287492445502602403399854504426133068265004942291810629314119907186902320640616537321621554213806679005262886779975730415978909951194531078828340318039369500119234036853409326307077071040774255093382999054460665364359614780420761808711839181316711480988710315623738781839026847579273263343936164218540678586949727588886857870430944038947682567950019492513508912685815285385371176952418676270584728382452168974056752412893253087989700572882245815308300732040530954659373871195461742203099760787680041606856179326143161422078061209746014236691669721857418643362589496515201111960791776081701281153952074578399548919956519648272989628849923046164904224929281321897923608711335788698151371911334466770765635949203790977026250517796131932444290194751466426636885472175511398735808065808534706712129760585126791249456054325951039547709464994207628994281435604900579438525077342968029231180735989914193965950816109212636552955056128928342060959626370972805630530129986127072008584684304364982107931338903402966456147573556004753366026580458738264485930264574383269518104346426753605406516324064333249789456117752897163786709741733400957251427251051729639505611173434039248608556178043529703437554151747870742472798739500609291734054496202490140867316909928315201766124898620121391889542727621202740889850510992048293833959508289306748136915229859508894406037623729528958277321802986749721520925424812134472529330272967332974882102935091492387369851923462423580773816197769097080143485009793123940859920892287006126543433318976158900623224132044498853570401951256534799881743293846760681275117478439208336102475953714611875110736173898189387819591621672999502456863473315052623706047476831639971899341268628278846148254538597031536288416587984630575701801529238427637831140015383852126606107890790691835396281814492775677314619413330608887823621644500329492944943618502436600672083084009851069930765760923730792298364525473768672592001395888865787376139470903064311631075509999923910279182546861455990837914350405576309457786537547751802772469067872300906097375774424267687404263612267405383611568467732297676279843678737707267958596731524198308496367224001671144565035246463622456896014207040210943154412301029122658407117061665511221500459762824530639760797318283288865531150893570718455561362872037905495724325883033405475081291397397851957259799037339257820239409227800241513676530155507339965950041774451703170024591050889979176752510100097334462068835675875107616421641823170943982608370321018116741630387385627547999869425326917832395870377022496880057474100104293615103344422835116950546455875287388546995804249779897909453061233908786840514484378897010460153958400450118497965819978642731634360229838805205185182542433955988199902451303608129595165314973175561915382654113281940711777042361866852963693015352334506110742379909561968317588117691592545125810686427935617145983752395021096504886486319559887003540328025361079292989996091663936604844852935721865637080181582762880356499859522234089363847438964706024931212877601127627090643105648361376841093056625676463968573042052618219775856482017950126704434110412128308476873570050816642526854615376526132586855619684757122471713513576029073343101087838453122689009144631712934006726841828188291758782391353591763929121903444479651813575755409968777833546554602537812315640297739675958830728406833671729945209150606024953428232328705801706357971053218502572578660816385589252733459842455641375617715113762653789926199441769649136532048441632583851823278178095856740969268431097649113161388737612401874941224012991714166707451240385615055550902739762254137130177529466032155969596545628625708593579293140754051746580399494914519308328539920762048021201765105495360202029972168792234735619378935364846612493389287738217589145461520534128816007478420714391469456889571939357513255608949294186789227065179470012436139316069207516588757266584030066750606049004504497683711606219396188991407910441498724966926233504966510984338648758482397606891051559011132301936673471747819390705555971074061126709186909749367288954882915839803347407173259921406234272433816666987497748643630138317342609714745687041503226055004434133006331490763392279134709619090472831545922611113740864920511979791239028148925772534956166059044670583115888774828349910012530583449936507293518956509461008720175502122669323937557151432102186804495186812731611162475227948075103745783713226055604103462954595269993614065146302494805247593781064370791722772880454478579507692307775275294977469302300940679149115024611281960266203604637029874178074925816333655422905810660569991194773907831032122141580072596093994277872604503617054975604560981492750428045161900765176612392232751771309815523904074671820847945521135151288535979573422202304726169376537550642807323823238240098233081224979198935641497566869395444025277053711943371158612251459894049619954184717263999356272221142829107207419929508725398871440197950140943987109777464687765619716473878639873955138282648476184527498879700795801341519319645779025241862878739788283829801231605545785845740036544605100815671994367749412121630231455823635062954258524778086392479445461724537158508655788706891955523753441368154021511933152379276346054347683457510961882922474750319242885403535340361536368066630898902328795380528351588248902375068140111162861872959430854837666595690302271298267065635084152439165395936792161395486886850004392596809900834698563164762169789167096371646237515247784744814689280064229027070188151904003557204086807495772887495755784214534277740023633381510797580698779543304955450146813156323847324547871689332998684246823018435689050152772819348070833264971153316477169836755899655838648471517962477849072019156142185254753736759234665049558491679056498333291751953807488596565278308547215079314277497879888117020241060809317416013515277499844146624328887696771608172025423952181090826325451198468218035236280657678296828519620065343583691898038634361808845723628248735032500839650184992027346559504971305748959275964102712884560398669725283052874870363064667094011922350128563441433481656967175734767294035588785041897959916767537822214442046781567868830357155090459743270458221500352587024977277484213353691321854410065796505611883534408919925160318529027900153159937636991874960267933105843891791964348001914515057100858784789285937294943549607352963815433386985270748707348962037456446084255480546158737435923742214948767205555244651441084865231665197485083941461563940398413837866071950568413919828933528630929956708958315836395351345461054994262511077986508248819717445143368359493394553752262516165330323280992996203003515030848685140245978589677176830301523712545160001783108822826424141765728646255729136927468071664144513104341904542601250070549689030694149426628200406386348429817199114850103197200294262149986629237393601043705638484056268039165443667316352086522328591534873583234744709788119401122286700406205587559681269622982467518434554723042680364719633892721871850188535786747194878915078744080084874146750151956793202133450789233656494652547301352941751508983708501514981002209096152086668957279506649051107668220993396367852125324385167617759057016910944180365566125269088457372923446161160527562264369471537021863743036292864932129931855238614602906108768363322612008646507788462915947334384123924224448339390291937689501269047344439499146131462751032157168994817913262528230996016865571864105022359879579199927997573563070556758127284306918561866975812792398803194123708566584059573870056531642994543321136132968988980805746735226909114366716805350342322990435576971156872879930035928483847198533486436037461194304294156493357206313477528213160185274620283873737502445220888861997640014995485592929582258240637472937635100322111557558526229304571203779239378435609099967459514215900121128732198869783788012930192350101073405912301783047505143371206353697269856560458233694300077656776242598876023131587340139170824822258875986570865348157277599361255766704941259843874677768414592824513180101069671281492600485261888322324341031520329439334140555546723416298693858843738472074380111075462670248248957200269123755394242550041792255694563906445151522737651416302481145007258690062215874592659101940349777150683571954648427337992586188096730685417935719837686552464781372972458864956214114461106555963393340826858814445958035988936201591702689818836400151089380260314151491167951013819787948748652517875243647794536928884337085283569126602764698211898593017540562861888696500481625238264284682468815815368121342554347942307101449921193504196629347792986159284249838134445883143596951323000506346410773045579960748846482686045404611131306179369524102905732478835750177353400716284917186468820670357702457069661626487080749876143918001281892822620871267015767656846179687527209000426241316836347310130448547056990188990670669818324260692454393066459312211234290875219009763518817287938756537776707275015935666742681523915776345653731584614269976393218961664995018280847682639422893309125934774695382312844041419067767595145466503187431056559265530177090971756728414025309555056035821007274139596302585989234232187933147110859642660463312753260774433457987926310698965378662054586525963695270526717914303540618793645091183310505162488761626231360722317280479998943349607399273272683836303432503611589559677449995175475680688070202998074936306057308076032038100715483977116413212631012131723715713151436253720246609983439035336927185313568847026693419224356802857282322781195233227197719945353523001610928552920962832751868879589111274932803398406750069808923467685128422410283616467008925054022379676645385668399272949929328459223401219571485237959911951454379668500546026245190674126295169366452469324141873812670585587524053228350682602716581498444055941453254637601027463899830114354825210319219822885403736393759405933041770503605078855912524872375393053730538572573587023480322555409775710440796967943436710748289597660595281849184340953403691899756132356779184717113916828414892428336294794903599548310163330228080759903368981513643784686294597178452489814373212988572447445728810378543487618815103577975190760404516065131782531847591982051945056541422550010189518441805460265874671074079502079483090229571720325581949636234953865930995507411642350315050246881824742500682432533832469298934491726360933715836504505676158161110837842575592079086144608320442332006765270828986092771927451267886970846074047209795025453732387487929138177232990910998881575673778464253870686309143468247133514403403805996800697412849833262540179503752752062693580908799073786086025255218323323148377896083032622715920519128404231336225823185549211668304981911290616835715275136402049567985090349763044529521413490476063633716964271212195495807698820518667042059685581945851359030897597540538668955102075963831166637454623315011056876941732342012158876221152142090595826002947673125202604783343571078477620924025476300356998284952978530288791872008653669602408182629615833792389904425804343884329834676343727074925913088905982191472969083924039183678082111032638963203624848464892118916352253906364402019379125123292679101826820822284701644710138432849233869799713862592532247012099354239662464436226142825671079804162823755580866099877601970585946073710401534857503806951899548742197067176961665758372518234622483112850619437850206551036611801049366422491200198797929540708894946566356401415224302861650820028796017741311102286834388373166926803699193300848938942084655919274010181550334801300587964326868195678595655686091142257263317568394350484944195655589647151793210767652773314763338122366503912631404572369496307532683220092976400462764575486640201479423138791102132945590480943608043915588162176871160185475268024464836326119441844123634439639387440245967134490875854867973820675838158586047998256152543053952430245374899201029203691338511557033949352164715616222132538406739560665518392447275636621258086613946799482671778695210178193913719180069058836212141112440716660970993652328649166476477080319503408921892713832530075428107952136924465438714996900308312458129598336634546713754348455248886273348863491953309193978997081708028364688881925001390377517463605858160295506445094711360212465798347327994304554864477100789199114630284802174700946120615147065226520551641621802279299051514023464979103429024669327989609255817654520981075280897860172625314016711151879037499612527515484598181034573290497360455116565113146125552524504041842389476190206994821687285068030931795433565321034859939671743066698257197136384676619624456069983416826328117947106323427411907330616981812472828071713367749798736255337751659246517505943596441603190742670077751657083699959170129358409764809767204104617093825452780001004380831913795951689431749917332532016141115091591989381401863293428386329795662976551808521056272953000699574745519908447570324841769018338576433827968805051003891793422111259691370241511831844322009868353946489669304078768021470023987556618058412703109865111966129237656707660339193343958103999862831071736261399552563089970926549174070495854524096639344712705736534487369912965004856386136717118226571443825126017642264748162814375281036656138628808831949158091385303345752835205779469186006554376245995218520466926018818975296509298819555422021009167751384744778021830482928375817556932252232793826281133064720209205783194272398385225577692188113791820829405516719793334513978504387855407661598967402458099860662156128439159005844040830278443009560632203106603640057131412262976371847705792919922509202973989368069955319223058992237191799801433896096626353441647857843864605334731109479215641176878276897232017226631940839549567692079278171447947726318445391059251399924579734172069412551912209209340431582627760130610592046994194726499655730194400120774403401680501551260608393980066755084643873216754810465807769908952616644642790827327714383156205426052382698727837159230553937303328340189701480135602083357806093623911967935327000213895817135453247712237196628486306422167694811732100704184057377040608182924002852428979277377239341236437382997907011227034071276560891123294439743533053234905775100635148317839882727291071866576986575872578790232148732059960538420454429980065086171341130661112017264049730792540798931893043430175739868872177662061466521720659037657072548983224908157271911919825330861483827613622240831171420004047575614861266966403820089185432289046230220270108458406687131194561027923944437467436271919516661279311884969130728002553669557306045293876718761021573222152379598099249361152396086728568029585415929792165326595851249427858004376173116130162768651358645645503064060405965584157835128643618949151542030678781729129120285165566165017608283050938314330744075924038012606509858199601577605336080878768409812203837272975486966122883953022394163951379885151275323624238951925018162494171804069970642553733066888377473400684560225003721940955436888394808119968012719403136301351701244332701896102751294632298455947434756785132490418967306230076825609768378891767573316580567541972844932604058041007027278072161851832137325030184133417029520463857412481885494780094314466631703599291103446579390852263422379841910716077214086879582513950695242064662335166509213543490638969344139287430392926827128158595902881415299361592556635565950365181758178234106770725783895523816631025066696133764090766117474239149945419681521344409727523204429748967744298428203346478522093465129587020277196014986539337143777160093923702726808057823919253414401819121895901909899467867880155630229783688079372063660802446054059700878923255520694195372886199776750623936298979504031727043568536238102147160374862917811045946631827424865963446630589609966617425910193532593276723148400217998756960918541532689906148838115034069640235521605540957322530543452994184298924691983374790448494834256693823259267487381895789226006219438399165612363690093454272686437022227118116831275116303142525272363203841747943175586560511426615615788008427650336850239562004651188839530595179403173358702868929994829296440142018167957664640187046493594921446030267787497797610421533203242029488535905185733153564970308445205499962694016101285192132566802186193558906226228115792314322651099366062791191022151603840526194641580874517694260026197831207915985490083538833914638528337252884978068204930352174982979225617655045799607488700927234576128715208278724421794831613730294067497387956052468865133617080975747810848891720304657103835281631252397695595793996332696670275444457135328370953932484551191298135353360738532201620622604717932566530791852386229044239118092488428529775817162150436305048491691243838645719858781370413370231531474062257394572902385697585522734962310820493814116990034487298870446865566095931426158522611386897198222856945594969106221405301056494312395507174163559490282353913786909707758980855754794485239170914846416695691458748046592591394902137863061697971932646369048005310244649637958099499508364917902740358836769531985927590342430531788320614401691118207169812162103229609275072217441780607893109262848087684233571790371344769118774068115146615642640439220222096384810812381126803936517884391595934673134594295887707961035927930929269251811252326644983675095768786915946777939509886907965546205882286254611851743461833604223328182443430483227851286849729866330317397221555627834056293490956481320498525124650934692977148649331625753876450902998996938166308473458094697949430396452798498034664226407849198415272766689155902913764569647203402909367345813172213203295148001312893479393440805796982625281212602209280812023486763641419789980121356001168185886076252579749420499513483139089646260207665410427829677676628613141177332970346697470298411648032597078780031722017349366281792398104611466629300564027841150999457107140453583479705160207955852878489261256054690812550478557596826170141887952146543511797060982303266247522948984376086040106082673895444539723576849931648887213223783132705243015030723202777217222101720420060882042362764073595107943832604193406330223508909323705858871006510597605124197961831308393212449118230749502309860434230705952767739804983968322230984433581194594538559916704530514877293987149416841969259211990977365429029704567025782441515831629394886928067888514923237101300414259379177440612275020102884113151827466007181774642830946236048188611918271077200447130302277959660828681307294795773892930692133602022796140372549681464908945836952729202739413171521025085939582802046814621512494199537767946046274041817487290340653594049571943587920903067580568875491033996164410239035240780020829568807648465525290460114292680080544592204907830203789746768449721514273856240737734785432465286558772807421286094253115652821589022564131987632330657397251619685577649716786706513423067975324370678149096033807478464850208814374294644047407154453011681411404479641853284714212737401215998886779640586882963736044998247446372570560772741157551018753150677280256726165977658178347258994527877686302996575038724719189842874421731621943011953505997906487118982438539914260330881017337042557819518292454875965232782495118391879180695459277773018483581201605218851245876791206624255389587360761981659976849379055686118274242598092015666328356730852370844204534702843480963360985894626375757843134183368310762291066813195434139293481227069886894856312432887000174752325968678075256405336697926959499193391366051006986769621595699799545919680398772514637691566339940220984631709238042226484950124621785880822950077766864494612033384654913600505089406917977491089788426868372608989866191447821294183069944550059103183763089358990289073558588570218061058633739077720385968317151069917846227242775635146412770768193941189390485717731040172458377825320370677663499780856613052951884834975807407342532525378077390314514675275724996257437873740526790145898412346994736054976713633954690550180661775356699888628027671481481664249724762421751556112739245769460113906274357881175002483423493194348024805988572468697667561200981848653968318465271053287514098121508487338307281141624041906485943679391033038424776397258801047170615544290594623626809887085147440356198275606205689887031229820477016685561117886503846629484642217444711152855238675095787452488676721544034894416858508469812953447216192881248740774164428332105704040868663766415362954210567481330103003458443946056025838526166609088221094258602042736602557348711459253731334075042315396042118366395838137980142582506551040263527116898297582852194339810074970760501250822312603975772038822086975223741569266478695873932726875732513185624418993876142090193554970776693568356217121951050263585122647141943791392727215119741939541586920661911769702846027599659561543800342436617691058829284218396191300725276868349838165493274011502919980197634958032607241741867368982966797679777032733710203577199473227446757008245698842376652583040979784532942754929155641746927821194516037484060246606069518256490896326655220489345818133185714943575334115857705080105772929738454728783701412445442517654209330861210749417082166481894479781065924571525428164916392709149293347044092025646743274421655781363527443817547886818756605282114466977479643652909092174421238073076530895212094486369125237645370863200360654820437727226637453810514616544070303490998784945634759103641743359529679004490196803833341654337664809540125189217330033753987334206409749646924264405648719014111097603150783439457852907326997892184335510210843530488041884064397815219802855885936160281927195095027785991202495757389041746765728445017688215308208702907954294531453522376038046571985261243087193141144310129183427054597805880415897865671308166928920216590042428067159606618849330221725840940605026688605190353590457185654007953487428787014128041823663411947745934211525063719055318191882343075437585665434327221409049862390913344741379420672141199840334179567892603775526382612966960930795948731149859926497572301323731636990945997823168495448270065081377630213806668779242699357717006311303176293037917151047233926933311899775785979835744497626661753920069971402617031877352977727065967275453704038986695943985278371588451742572649031842704201635369647174310903331199968149513282156400701970825235238607181629435798860343905413263618765928399405987031681439269539440511012803545095986176294402373508849178349229881411753656257126433884189862060839717738411677242387849846774122851346255474899907928148118221474658601528050399571787617589818086293958806249617443985416257395073240683944952440647624686074629813905452154661918238817763730810529477268595617293436173182915146733634831620884116986297019721256766742243481072153118111536320006340265911354544113226102722284019893951461350321558617664127637374028103958038040328940440616497285572303948466482189438675735598061672366396987742117768583389835350725173525031365799907677022094605866608777255204683780744664478629514530014552713167341834451204658280862224743126607167825805138103733756160294162851023947401524303734182579117267531220934737537148964402741007250802731927070119780190505452006626261174106996735706998408579655274102103901609069288848276686750945257831237622992840251094758736582822114001109317681773233209372885541209727803035901869256697954567068166129833988807573858320401666488017310254286588093936814983440234421163678939438187339255892282176220069889701384155072944449800054403638846098267632489931099834757822422439207405119507563811728364326044558376611585624739929272126590164394323481177890675309520452964847919237739307012687603919813373533065668105029409594826531628482097189047456852943342532750921426473056041503003919027616215470000176166764718716009650056412379431804023546588422107956010074307881783480035334211559953257563896131190202261588398309142678834646430812509190708430895560081494076124637544038808050562408243621041316024380245290493172755975077667493978369595792952489395086831196308891270088580352348498108377408058016565650364105445350379282893428693102930157853618673555853564534585969465423104766270137023775538097823667855972792980340653977327081749782524246605948684340609553917470960987376722680549689452413562665793648530209979564006082033081975116519078944115699484119223550699309756156386182536119051204565296498103677958516850482072340448749919531587274884234175578886380300525907441066870264184408004448019346491044943355286928652863757372333597961597379720264712413106696925699424508227996470274837030494490216545729287313818600371458668187706920490391093711710004372911692179366907295129020466341552733304151859179077605846374570990240407951626597614706345265292364219862426431400195675571422336071424613167170716571142316501814278504955133673814095776638235335726961467807281077921095270093878015814728905179155925985286415616557511687994717938392438676898245866098458517293183834353658130720872217206172146705233690802534901656872051592353765963979833076904215490016412628454751448039842058702074700187705704619506212722947649439337882174129632167184542901245554398638454684689651267673649972260105432104502111459507724950094715952322801709415777330625210691852076190058554793541096178758321420182503455843835518511787002991939117894454042206968634637076523378636715408006599526584309038239119507898502154823700637352337040658685418265247505475981981424603946740562262575767191391213659479792309684055623836555216569856293990799631779793557503217683050288027351665085998421697537184366789548123233899116352085314186642758758986422026652267515876400923297424567035905690162985568967240067097571575434746516931481897270381027331422229197104547031627613516940426987923938388574770877736933584385668614531936275027920820413606390136840549574181882480585324943060575096269091759792675333344270497971126777013670474166584127406253403232332800253486547679027589315660716299988934504662766628400246686597536009418231517522927415295021326836793057125611489750363875705247047335728137356994646184725372271836956240828044318211996116565586480685227738960503587456939148106154637057855871090719004304180309185570841784635258067923398139483320236462475120369589609422327314443082036319455846841540081329678544875454598925551445515956318757846031041912553144516421021223752091245397975372541229041678950238828282860213927660262241398145818495462158423426793420897033440290264348740546876450655349359336944618279783394287303694695898146973793277969759547128874170510503135768329895754796755946897959056767143879331205528211910871564825419658191510881311787350388619618919666554252424809699478708405592276711875754748846902717746075706665426917201695032877785979226343704625538041568101240771468358992556199766038940591675674620477467310472900754919648199756501921348798946181405531710563755070308950419289867652262415057733607225381805799034230143932018387768527262809474167986475959655727873163489271909493363570842311733549855385412455410145751481975780694236190871611445818764208692302549817202543468417464421117249950594339599165800221417405150455304088831521355368141773270202791691407448296323040167138995281696468372875633267333440484285837415042788533315423957534596974077852092888589995930825301644816677778730485661456974227190318626686021392887406878673872610034519856426122130531151204355950200137269885599214885277050584860409613244794111930543319245923375499731450465297790251717763899904050989875426401070581383315668461686547816233579187725638357749607968009233700900827048481960266310505602547877399649797069337435641056943609709177592837793595196770544073111474085732261572106799326204983453371632549984284554163723974823099379650307276097782201836356300014921823992371152892803824997533971413544641066594982278381470234255737863231271613285004821555491834034573997535664039216711246360741935713918639518987908930746901087636341225585393012905175129003894029814974228624319766234171235525766607919408775821908313033421292499990099442076648424116249388166766803335381770979890114017659346332701676422071256314885442133108882221357192279179453300138290826894811992449276141459301579708893203517459502969203699649846198064229517608442134382256319720118696067750319250480533304574768087944702036442136967442821406941031335187010736938163297832976220622248121850542073452451491443586692676539409054653350046424100891449339365045250374627914614607863056964367707025445370644551770070939030477021308338681018140307401159465599666377796001504084057955566001668537208618281621601332921690145410592183106482260242698750580415661991704585603810107740746942938845643615680931081428157986295286766407650874396986140963914279333537725371930312823897807447721483037528799242457179455416355559424247199982741891038605658018204151194391569701036400245967834123918114666223003193805624836030728355581551513492503641059555527886894074387788358886191032760849051653772927218198907470386958400714816123847947400262388265692876550368423872707563131532667187312606348588851023829082318513020582619150088118499512540604186498681241903613439925433930393130305963861456297062318156269725554888795550637637113071771317863404517576729424461584610005503059623653438481938484770201585071003253569754713204051278726659657927014509890362941199485655509153974467082734210193033957624812977960532518979935637788490348126268124013159739382564163336074124008795054951551158245145662520189590271795819399923740916173373079268067390635271623139001636565574492276076232606233154331842342726900903366778617632255078556911859488604625195398597200277186313823304273590718784208996228606538302756471359896946118147250907756960944620697849968384784126557584131401558448523455780525737014168457863611328536475305486642290559729362979807124877449835406458182010154571159489800709962157275541500534945144818264139155522596123488431769590999904676763749713291749366572913435332660828281238382520738902718274059579073233830131126079428646100206792679840876516744996556964890258782015112959757035949774644875196739520405712652158327674984066930929483604900596515865300255406301971024110418197570164757498532090675775711255818041679146737495427265370928582630290056084179842082798016370345146619365156956252215206480026687363623616974102312812288769503553297030077336327662441424382076994282464414754218700013889597546883712473551753620022725004072563168125990035264350938600973057965635498534344419226453043134296486773827070180673389123672581161174900711229586777061686047882884740410679530972912084700562434908489836668058929798013588375377909761050506007563394819657607496939582956176001312230547447501870420915527879457224892383566900128681053416077882663756929672678067958891874785719204523582026134535916084694265315507750892548466150529431539526800014363554630090499183832831986195827380711704784333623724763945430890723646680301140911989377605126837785876749342029214220896651977468753309446756163053135227217643275624393395268543807669842142752182578790844310779189109672681790650404617108242201082674273777083725919477915464793698656611217460701705492618354787128230430457248924441524319089723011343089877657968672275350651685803987658790244683414974784574691879709965760535080651399637867733688921966592374203853759439698755986662302490072707699582180821663407951467930773999502454850629572809469500155620126272619212275017075806415754489375292046264404287178639024268543390787304719186379314341432201749376311345110908179421869874679335345109320970066047061318230816311800280909154659862286322432847338290539718780694754219999460932849342479986620976150789261869435975082084208556769069136948763745500753402066397684678480902516984346147884392932871752747717697106202266597594764007606408945596772375982303040418173725466715923930531462560265731893674274247858067174188094831437727457916582100493493493681856698634584355051150214925659384722385544633114084384709133371980500577328393755396532995696858194670940811783126168580637765331492288345972429437297887266383726510497989507065000293295467632474640825370726684682298366991517583613016857634881684611622404107534937131920149466541260131597816054721772256853602332186745959957705054969180784092380460483768420984900168425124503843751256980508858454631547546130832190718155043639104300196610854397744946995060395706566195674073222309846486520554816393578482587579511022816365227585528369903638462358068000024581456261768192942988361186295263371403001374317236506867659538445971501799326621629017080328814153719145859107893074427807093964744738453777448206548902155221734263138360751635538025378480488380845573856251538970193731124015917083814949897744048655383047260547559873294111341461839038007748619916890427030320659420562540881666803807761829047300249944946128450349870969614240653902103896684782869045396107215003250648931571093976303237409248736547386209534291438846011219340345924412593342263054409399765261690020454819965849015093570093320496046045726234968359787302672642564297084029337413431029860194336721590391487860006312954764740810050266669356830739387683254579250258679013254223147105019510460532598025154958264707195259846823300966175566424533224667180474617305955515120233854477847045861236412766977813586801412329844070929838551191481679043266757225215900663871552494743474665206407534331318446779936614859304738742705637354780533405865718289041169574971975159475626199944373903995627630103298094586408505962537669324792437404520143762638418380303083142027795341963854425021348100479721585075207135705589167791434727032287626094204726372075682327272898357593500125469331708163525598427082513247719827840078129701107551800317324362781601236602143278235454930062500607366081236493134401744422649329413132164120305857717071770834326887628578215914784335467139807895721264168588819352674823682633741871387533009113035647753465639136934546908191886242464359318464559917703269344689465583432324515975468244868407803440899924562488992046627426069117137107419568309548917686542506300352126383885971495238721443248317702464575680431643446393665293479391589463958639377284472112464955173270039350784581357227544482937507193604632119502937345826688255652895437710619443838683076446086053290795391464559920976657056129218745072643517693981645241220057729311613246413551014181965816369720766270111005199830169673415406617742553417897131708026082584358052311620347213130869879367951236947401285840468915517227502400454696467197989120736895045099094013429709631037292384194878488476616926443404451875511448126851278873248989919133556762014739446973591673909832133120145988130217490361213154798603761908550082721745700643089875070938585633651753848849347700707392930560356969015571411302107419492307182569867761013708128925664715743980789419159648318153420760526908640935500690603288399394690100919218119641077148968169574706148379266841715481114913554077122392085044889007488897115661727789376431887310557951865962379998587183099608952355686010357301208682738922477165624441128207697143491774975887879820822742382005541436278786339639915203443604486372583665162426890007931585758479047075741593118065111308047678392148141500878829400543952395059243726539296837697529540458185353643155616756325021110771508228478529623130465183735767266828723790575127880410183775475780282546214962526449895904833586123510222679231657769091096121566113566842760602199656194389450431498540994369620673063730320248582670421313455932319077575431029627047124700464682731192812663703410241259114579206087761604957253417417794938342682045273241835422554613958535096530840416978797427532983688285677928944273138179925256866748352425450741981121601858796668755057693526485270363541254411337078432811582710537428950668860924774585922226320065316660999070311131724748748568425502024705572512375707636788445425989761215142445640405378800635772292340160500110442143611542939360441313357840711151512169870756265819763290463227251121623401012717445045666312584976134247323274482626228099189499360087886960014251383078129948956728240702685047054836763165228958203998142567000422296330008059715796611108017522718048738127509722776003846475884205068312887441092370137705943876154365347901397677863615505549040498554725607372013599804551614185832233183749432929217422015350669757787004735703312525916935268867288083311706225930550780807921870504286457045718651719769611167126935683819829846749371196380105820109010529174735801636581202591417870157126499389270688371836669910532742806824913490405664510593447419859012623111157517704907098531485307335798304048470814740865224675723211851436267694902506921471014584588049915205641430245430721597440356139695506996470693612038914827440112807505077899852635805484563068768832266683427317105161065076614572051382376790417049298511382696912483856806121962717200079727255349002331239451516325883947316802545199830472691481760933352592345217783230943407966045180693953396407847335544943127151694604050614985018642925371325246091488035019900720427221081324691033845490595906852452087515241526676072865889447574365094945848576924247663776440153068256545374791462271952717754740068229222340891973951195117913208229221480642029208431634789902589436148947842692743372059815762275895716157600150777053183877905089086168747642369834551076443757843479066935398757323171512449270943434338552332615539075450692087769356052948935125602825340999965642203992944251308014380393504694860651967359100498229356513282144922434565232025503677418269340483090725947555639571432275068662752589481046330565834589135380805124068868782874128142579182929092814582012949160447325117019665404657266918335957584017815568025272527981082452170174012055586747440917482632131403778823560168997088847661151386189522332517812792735642607486587079590424393864818830246182302345219323099445082067671960542207356172900679102409029419848426684907919904925127216771978385060081632724622109996013389572583200623997138129469375435615088572258651239107074913828003628649705965126440156737825387035785805328035673243648681770003618813119630397861461474170753787459385605677154248903318019161732632182730856273084176378330609192750508774846002285945971050179677711010277745856395691910180424930637395315402346010134280245666333099133421462156730859411392963640331770067463327762800356060240646709455285434934318089665053270403529817029177569544419956777168862064833746034351275217724823381935410744023543052089271129284190066205183327638746643380618925708323621331243439883449918791358041188807195607462701452465306427202731138081294268828783389004342437390394020995462776254295286654822160480084159269205443950386166002107832857574693871854711553061294800596703095591445293918913011759305872300833463919306873080450265421305877637440173934081671052818787243875743072614884417092462519192060963884344306419850420153536195599635059527253378242270004464899094361156481410662790577281459103104307809621575231348399476880231199908931931137891778938474378006535000836815585466724624736805038390477069625801562709235258974517536151506574320230450842064377735018765224247606588743441270696527261120484413624845726734245675725274583672832009850407445411846088875814558726462243590692080828306197454625376300707110567758627417361458640194932605849639317845535601439784579508803950204799423983424912773822756933311285712606948952439931432819706163731018900820780352027488366589300969179841847706298012986268879204656483673870818920812321183118060369315019069602018340573501611104538995595145507710611417957806418764870013705809433909761935543055973082538205477371194010478663638101627543892475791010884587805276914447515106725945721510465580454739319488433380117241050657833336304801755802573493285870953089434799253980776067831016282204113274923267517802179834640286485770102361824410510252424284283005917457642156914719831991074235446936846280934815504932819885239272713836039110211973460393760531524718924066537349854733663857249927278881802808924066326945571290780578089552222588243980702962994372956734612861998628061774474032592119360265437022890257761086933540080933960181585518228933432661609302264944434823114989402590094060136524004552092964615281322584470674280778820413316444845680029623245546500714452634011001287197507615803154365768669863593434745364984720596280130015438568422660614858763738529711602962457366874812244983934308171623057015183869127164113488928613442307584758165687422672625849540117939269272445258934985711301671379065684175772285727262947956230454715697601368393716710543427833238854043205153635790728415537432355949800571471805835138336780111595496590886725672721718945147446270518028013478398272130067550445639656982255332880536195807625903673871768576241263927457503684240076421707511176019925533836636136628972117611716950626916247295093334983678565150176387151463782089282650373527991679904788971316193801604361036519007784959745463120512040921122711321783246940231414017786131699140253266784218302033832679842751618995592759628383066136767090698452774041846846648960752150674748876100728232739296919501747883708332706286375155941319182828818084299219630781179787763744504156462955290105613458765608713630872738388623400710101586704891880935071333612391869057972556839166885834032711581052479600821207484950088261670974990619929975755134807354798945002358786897496524209568076033578935895963172200058455930901898481932043214416042383210908958222005301526211858711249954803596215191135401359227446946748378801943016468734431033593027594327919226811456680415479789045760004869733702914129334715236569346667351224592692968250159364422950751276930081946062150569758614763699048592097062615374836113167865788333540932381138015027361587742239960224792784058041114280934192146661326474698111621613917121011566997662256589516273745399759602039561361012846512119421079206731622427292395341658919789845196521302468815158766687438067976642130625092522790226000307095062943209458614735084041298236367723497950461808129080654624242464632710625668481534533160761447237116846897400394829305162091078208251241347135241538001339649104056728383664861404355414279635174863571770341815394395459395983072486994522340440934648274811628891309365868118046519662984364776392786057124694351021674928085585924970933297759034171805070904627062235760517082811810383185985566812254792187146568088525021682621730547064857538269478356512839137619105634171045299913407781441185541556283723942739221117497206329214990072936617201987167178341209707647636975759168803405565521545341743309474371453581489489178495885638128778973311747815121345810682356989742993665421890725268858047422711972814521648787458917263922675175667585679188193714634789005256526584676323944655030489578806737490802032147902863956686866500603910822770550161703072755627543574192348410047800402908633563725610682217949902959746604520000038087752016300193240040271720337451505366454692349707879096090488004646600909590674389585179984598434001023391701915426363808141807491718595801049334914516144546146733897363133911662806592316014883830163066308787744580795293199299258537640097538105802243834105148434579737007787960166305859246689736182736453964561044437933983459792645494020616814847187199704294549121536623909901644404497264101660323141399347861205985660761950779182976583789737703428809316609684881130035652237647161974148986886348941166060916260732476734180369715884357393997904868352422934489491629013858393773784372368226535977094743625179346456362870621436012950472785871022501584439275563412733434811170905550642707473977348496589356146845672180165651766292236599163069452690914573316968315112471551568885448970365420204905189594062581761508952205942108214748046121606394466217177398192194006607230360096980908382622588724638551511008184544396298763379532133617970224391030152441350879017779659839649457509625672059271329212562569566188164579201179430489971648995028400858761736825856100828019841364056504050909359451200865635980366402937766047976189183423791625858450042713108452758872013952780455913095565683040042618176155367940995718783701493809996329465529325726322944606414748084382251806423294412987674726100073021357299727733803798040383809897636068575441007524199259121497879090500434201568485951503596052565247141337923608950354414304079252375078570988927152779264538905650407297096374868535920194879372655462999927197912848659357625954592560842550119554665429428450442927129536104589597605201324076585288144698416130783110120708082106364957543372680948825895518710149565298585625455217284524897211745252029404908276221779652096903269195826649373598209401092380242300892878081145276021521659765381396411537355442206649460519339524164674959508430224634693490530412045814627388763720851728349371271742881958701264707367589852232941902206447494720114974796671673867914706397537023037214840595629949768037319064191408810590780587039828745885788419398540593098209265934431046960381556792892030634247786240092389717359681268108901840140154223642059881926196051784408734476382125868460216274826537586192099439100144039691758252413925215855794456101714566293075675358376624820447804669615982418715622394784850894147983580317744348947244210417410940344450217492564359410676810832247518959330297378047780240814920375353286521159522363493286318122588070018287562462567869522640906579570190432024529860683961886695436715190821241543998801737499763466613396646752569501847795410637473465171360355145830255554121828195333788509974076717786222379412238884104265645192873729590982103417315465546761102561837648080556664646214277099581490367874180380732604981189770891749707162633003819894964707764858087508548034078600891906450378472525494633798202615270263229528686809702678556082901365436633930615191856666316357024705272022637274543465995131432798709946282109910424931597013185732276695820691849553914233891198691495736139914309007149171039815319436543971776245295070424823887646103028717160664017431550887959785355132877982460496519937432632083232009716030195869146727748792138032174300274185686465886760096140885531417153004796259096002181676858547250778098933543598817945910870967766385241331781646530244896611534133088983335323476333331480209442612048393191452157105744816528997507554761506378773182781926277946686894846024202976903222575133512100298984384024855299984718244663929064311831773692374102439014489905271418311713419353883167693458526836957535576273922437999119998206348950365703495823211285222961090456911986098381702275602666731626518064655225922629354071296833197436048325807016766947974063445611676455447276400896178240829192079972573737220691232348923375892146554844549597213693139137841641704159701771753290801934232918900305620665887800313763704280837808158776900330593704593362272632907591148851943172887742407894857785065024543915364563029731731097374596263736335886344244913340369748617211041472027363774573743784195971789889931028640797887769583596445644955885606057728387653348756051234147908036308196819568076559588248781735851684852808139959804040774612984496462374213184201098000106935052480052436140164837408053596073525125757709888460143275332865723727843434192634457320391570753110096293286057663843224556150286166861497499273548432437810829522641484526412741192328546798345007316238937750416487903135297365739258978395726299429586475754020399076671747432287062157604000603609564367049991335775573261254115618009881743296356737855931833981086428585960414117482921574881520405391844976527602937880643188082937887186904929804297235408092847202782870212448945362226523338453950515418080576356053501894589904669117476733505933495377901433587581352499130792866203940861625210323637864744611659806116722080405070123819464573630512281437131565971998691487591967843902421879078112639106186871410167021563801041587553871059065217616789766252770417739991053868599565872217870101278519226580022624062613470009636774662562948656976254433811501525730080847439650591683583087095765921591221915543237099713512139305272820962615289045349406129555760275526970900664897188515427826084692120155063912840213029464292192290451688175601578671066906629815369670656817879255875430455670403467845298501198102795502484850735107462383070898528467548218042886547944834179829651996845872064946872116112791020680750926698865210476566536342658956462834949132250276434438001874453153420907315790503817268548166131260896883314999854469714973394272007043594412780337023877517023237781526652959265984889948378200538002587565477273544107033669651563037644323645054400197161136738495813217175716180287852757731070918326742861344401497816785847068707166741552828639631279301842461652422206069060814668553429017112748451969177205436589505893824003151860379578254794398102517915922749655783898189635420825513402175666314019058076415216232735081931110865595673872602532445955611379509825691571859848792501881213321894517896081273225307686352072210524293894512348116082912970568604728057353646290918822807837266286387770629539739474806644836016177044568854398768012158149439337825385832792927082560693093378737189326854690045972646030468752942059461843467528449600625827948241399624623104224858164798187907467029748257329509748530197104274733176573228763165989065388018190535799430591187775958980671221692903074677155938870039869220873817247910287319799006272332596237542510374361798738810095991755393947492632881533468613983875302074846522712572970680305341180055955772850008098786104817955575993743332744698361233823600520675576249254662079327788936399700371014592571277893268869393117723381176013705557953228470076109245731771244952502900156768709083629617096598534157545176336152635585626310706154398215228128522592338578035388821709940256793927329773247932442371408848591263612955891715548178034285816216247850868122014677376554990660079175652888184916456574322810559293851293045831769789400123163691923340544891619621087484629197354997176644168974143550306093761973863011232973277565565683109434568742862249320984002237498126695013496746223419834121380537393210628351814876235871702517142396183700192203014972990341778789412170885631953495724131889406036410792464250905967490436910645996225718597723687612622076229985545899529363394907970284142887836917282188870229285345776448366399976053682849855914417975005647593476988231616791733273927988567410120171226516846979646068600188372350474323088578618257777178510380799994074850222948731909336478470070367975430353508696705420201114383942791485454965943814560643283740705487905690988749115708742420810338798923806436434124099311367303399256245354688926927703271098308827822396671170412671541611056611935392496972064301446044263335729725751371009044175233093855133263171770384346804228073740817097506920863837375949777183973183959499146620406759869386278035481653682959416797790996950398517755134008960471894972138579691855647790921982989093113759653180671352823365855784513598729899624895314987430761062635018570999717010839266311897288305562303013758608488368874668698733783456383255199642000445942019873215617992087844563337329217258336872911852882656869164259309756181295657505515979881470857941169059759114255392853881795830346078481947989288774224915779365094307081162929026636510628888474363167326987003477946883107537688264894102522179358157817697670980442335639016625280849723690037582242499782545570810797932413926668233811287599612404973676077860069520921538528658402486474177904442911578773177250101612484115501991009523564255874565150761338261376941317170201045791450880692700025307726867718557236439539364836797893395163711622997501003101537178864007285258792642537035169210715766895523100608674883080552879896539420671375213265201693349112597044602042983878416580970708163226384386889531774730185123802209253754629500350863651748203258832840282417665363949844639883817667243656004593671300128047486559555482677928132864946133626767472362779500242912848829515497309931952025886850635103583752388155938075622887689752605562397266217476607019420571352475260746677912738032854066982204717368490318854835208568373118556143397029807875744053090513277208418935892612045478819140510437668613073303440943040934976225596542056535042621229442327855774692159135899214761912227852704212844546174735206543294507372952431527777353715600958941561015624496193058942194893520589673373757957782862707099008786335677470865775733141529039277508233766802948860285457942335948740216027373577103377896366830462344797033681945033021496429507687789453525417332885986927627861522544101256831784088107089189732503375343451197703445499658341101992235319769121058610474214031798095740410050541304072172928141030358473285936900077751774088178186698063006017321533429824933002161803669820208400600831429166737935272251996903647272137104663111007235418936181400335578389005090321092435401955571436421293200658958716104622732400466392142320364374278594564800366064902390343775411506250021908823396496968434003272963180515572155065326456722433957651685272321119678011805328785853420693554715166254750079587091971760193879003875917187251781472300216356212028629285149744738117025471477100006597072753527757646109851251093352039822189395430483095485194661485596867686491454055969237954198272751329469612292938633469708604928453478252083685014696676740246774355632795212533379876387310038527950472067253641853562600912952418878297522629663586363724259628982982103998061413002675211370068234924872170523792998540583370223230096132810363203167916858642555586928604391740392154092077589167998485507388344370236508763152836938955818691159796335422465762873940752983811878522183753010064544297834378486454304118465309308697831159581714725580138312263905597047621917388941223378075823623133550204078893167308836386647866439576502316564933073702116816316761018345039785640014222486623314415130722202217445026874454030105926370715598888290908305207007116605209412280358713723692534140210874801006791659746377648346591006540618966069887768166139494062942311923462888976648936934655760532200066873819486388320534357516259289730181569102959789101591569835773325302583732613141715029796809948279669024462215307664898016066364518903829376602260271364804398106516068314757965213616810465163436513360742976219239427550099764173612064166450804340444082235497836971146471509215598498073936143099360070868325841135507484971459775719091355559926149592083760808022066168917453038304378742286108084520368113087943064953249135631562730425614902623660564799573245270941959359597204931624044840253522248356065638633861442580743745067914657540175585919300250775026135390022543752885884025954871643260424646238394374466045980531461677329578008018865620416840875287488607632382015067129736215570665187165784998517820404599262732803357389942097523532448437465663093156119425033715954711873036712995143211773055375944624460555083741125633561471840972102910715547379881402677766045847975146852083138692946640923278296059937187828558711146126210410028294665986207550248853894043430533491945759563719652814324142743642393879188047034058484191529802581471164232610910356798131879783459370419262064852450687612252550847763199919053938963487138055473306114883333805692269630008627660959211873910915780557831265999017426338868120297125104108255569566885824377376718541484623045697577982633908868158469285726803035339051533588195899493429141918742176521785903128459780843624033739839694354505128022927576560615041394188173069455183119289055434860574126912572624547111349392579897251345247290002266461600613042313964237185979411395985421683678680079848678929507488269126706235734837304885391220172251662025586711757628184566600091489236860501449812314635008271426271439310826969638266263779096053458940286026073571162441751760810235313900616461717120308942410065130243894598618364640285586971768194818797282117909956499747844346375326082057021842728171219285922601643984018068091440963283724586167042594664849559516484076859209475969210224511312012404068676236036304117092525071657402971055494170958216634013356572585843624482057543296378300883169834288763662541898236243915686908770102719630613050770340956657361454275129441363526485966724074999050331247437537742907812497844839313028817300265404774574097451132859511373772525360605706894824255805915408060607915991903766371150417160620659489132729882632715010668672362360988245439105812443522424936535181132895883488559576905616730254853901234391752268350549410943051065560171191571918607013931858693036149390124356671022947058895805475013667356096034522075757863618459250698158177863355553160919021481470978893064270774740219556090857342513669451957212019773647338314379734437001935656400834123830816325464325141023578065133980100635506232027347519129795428127152418117770495780675455419289032177633636395961333644582445464471096768393042220544483601221803524638042384589116012012037797294383862922936314731182673325976457993619203106261574209723585242815691673619509958465136602882679399401658502329684516919041248373768195468166883225605188555052199805610735214188006938574832054269037797774730483653403021672755742322582928401237607171890518916793738474265170194869597868810826253633890679552266653434139820936912685332508845591788680415763858423107262706497330213487955100673940391965129898248439136301655736319412360223097239280611057948763013119438095651965901114491881604320755523609432308306231449223538880277801059175237691743714611439458615945893365224275138387805650891248198456410262262229566300974842604098029196720256508732436480315916430432589313920670929976878845723634604438397620700400597363802315940475192387357987944900129331600242578522913367323083971490951193386899732730183651929506395172735384428806359976924457752065643205962004665432412962588689440945076989607685731674451360528474764389965630154361327662389900229608419599740102970096608533823809907523471534880477003314980704168073975273011076683119458669210763278244643852101479526351856136425000245989884180973102949139323281940891020270767015825450987597136472165839169833375280378310230981257358155143960976528697414685191857000334804145827753564294816497791260839539052407451025658469352802756517146474913798393304351836855795062258799712322515623914698687929290861784449996902712708865751734149853663940009712468321564040390056608982862292593258050442543441451773769044533480409870029700539888003477976619012789497314988385298031679519600221608398884626226694825830380017135368506285419562268705352225363724055921190553775289120665013223608512925345154625197076928983922830440505537602876894816405303666357086291865570643172035668468115099978956887518558506832132121547640162029572675766601730429448379320107092837354295488922192052595951530059268195893900674514666515837906185078917914079192281432053566685774751271054692491688822328152205695997747913293498821041419469196405400947297385155630228437293725338574303101179459868387771791659695661113723882891800660825254004386608622806517997678283728926115779806364457558206474054748388259397516294740601957829014446194488150987497513002414963081748568606777754503425706690604853949561584183945223288713332403977769948880850977976298075935638724265757302935282980613539089726209896644738262730073805461147494498295138927596313192065534623554922802248264785079931383740844519020403295439881083022627695951791246700619275232557500606301033556258907235591305851427480569205964592309049706281040638123441089780904107625327189925466900821423260886491138940660287645078552846021688984888481760492908269230157179959863048293505400510011739890374298549779820837731031843111905111481531516582790053869285247676457823269814784339418346413988947365050628769733881972431664074746896932731004545474604109150576483238437829660567718095450642656221434406655162639685162304122493726140034862091105154767997827132469198448787580556688938831312561974466106131607366392691357298247498681455872537196788352712336143552185680774459487285449977077964983763243416708389311755351390996937500761755065293761204123059547733520028397408039679387507102254358141387975462289891022773681640299620979756941827565445635793240439896934307369773604396444787954089600333930923631874376525610130395331026691004987411667738718037680291066867514073731068398528050676797086848074832360946359433534697061612569381241580742695230770487774888445817461582860887326077828980021556253159581124256279930707574832547567558281932925598643093543141977432093377341745407838196926228539044843400739331462368977883020635257301798228380195947569434417151133396887397368466027131022846488095743351971927021908036160822947944753577541191186795846254665736982074644668151868088070010959064040697062975821864271474053354330190926404618790361754652050108276828462598587528961505782856061606069841555121899105892016038192313085768232246169371420310741495554317739992092438481361368460138768833597601406246050576394791285824142534424592642074048052708957280806598071692099251113288579576433967623520531913893473411371275833403704385346506165015706638752180585024053566844108181787099319228935756919716936597379113354449230090530555677164455632571273783948168238020601247500477144350479432352690298443654473676601351849506080575095131301250308010969810723114933888761465258403480030755269934562514062452014382894846171620076168171908236670253710663083230935286149194416224305885390029490287811245036490881043370100453119243415249285794040430902776344914630513156455231447344640794479621397865763269243168559740822590295043108404011201782347183248220058955543814411368517739346175796437671105534327248849156708080870664180248603221682189449210618785664027165982888170576780822941303105189548793513160537346722230142250747010174704273790165486656702900464028854310677753035386850994581113849745933266642306786272273685096756302760192420172206020463763149919747535319651595203912947506379919285158023547510017474528670056409706011115221942514043296853876662409203248739849275956230719926463465667882046796123615045556006446445188052057653439382880992357361912553968922713057577610435323186763680103832840842686552503698067563259657901162937819289773864338956643964202442308978455140239026129768201436603780261804884809517363580301408410205284746089331145692666203067919402869859016618915819081159658695746578163350282257794125436347871830986744866408433180104227362732444277000824473366664681017827693269812402276434087041950465447033870335979847388154646643493942911892539654721163517095044425657673345688197425596981540926250651736984491683374605099498392171110289853013560103785265808481858461973227494991072767389965007586822232747448438574070106972037156558414621597958837635152940863324868728062317037272837849786408367129071076412655785877877306768513237963391711661021752887141356123305719102879719993780167828215148249913484997168003601132182982050374333811315876713071705083954107284969792183688128761815024891221638778565337785672030165766916787101553523138461522423791343971297343115582820543449559128408422501846752356638219886131925665703006282527942040583418119484213819667506824629034919299247419645258662797766471244360407164941215351768668846613439264367117818714098337522673644148516909217393160706766530933378542352357549993947871140092193178824511734308989369972413698257599155114248798753316939583262352543884881033703407958635288725414157867069438593727649618546147031160998332475364435783008146149214314442563235629954087956526896750546897023607641215635661747030065239254936284738660551407457920580234372099815975559437625885622174614131825131830518874130535456656813416997492888206808921926973609747237440830472126351571740277141186054325220841149204323034312261226038794811644198858062463990945328664982609319750331619215692534013378798220416533486427565962236122541032800446847682977771321471651483362593182063049815305904070683141489628469863931226546409372099606937155559421437607937064622153386099714044040616742219707439908566534298333073333428987236050545708480642806108276221145624734802881222409525960384076091246034427517822755018282344301595170264114435079227977922708058991879005751045227067748493914053248445806509776610349668250220244078641599315360181035735048072275937569380110656733787426834245129120377669831642049984057550607713648629853962808596603894345127390075066287333303274759708199639467322649583749344422712300583894038491001860317933688459130046239669203468790382481174967047119404667258838635504397324217804294713240864692947303865690694936408131418185543636619752695061054556552967108191498454676126365472055748375840273727844647703418542420057484791897849598564711102887895328444412818380798888371049059926952993687282554209995425796677160312416392049744923646440290555403249468825601292217376615728282735782831928964711245393092411476330463786026716886953291910184193610607386024985875448767571978152655752647528193863346915952543636401400176583198374196737154551870346006999402310952409812898475815025715334983899916717598644201275731301668338967576831049703015437175555027426115095310210575802857241762089779769812813550924517036510457702221152396539611858451987140106388670757211916223533147393454378355147610354047986700946852505595746848598814739972345270961960419687541665660252709347742488716950052771334411312872541228780344005956713469965368555437824958253485494991698282031458653280271187866966901336073784147131840388700601072780276711069761395679713194342365285876491835195366154188413968099978483008510950838488479538855964200672819538470749149178481107097253461136423471946002331165641205233171241194086140008498534320131277075779911133472510493255646123473060338252958972361298168966347578112061633927525658719467516998203375214106448830038898204830389396190720321643390104342396874624044097476233627479526225956264087282873436020799779627755716543255144360250431216984156900741188757733345942005810897919885646881731023301962802555719763228060833293899339534454468554444959849080801886889868475345546732780330079676376989139056750487346584481237562667712124295955295018053390958500559522939778557813692292974230431511974496865327187132323919979586289470017297081139255621992098252624649827104022850095708950509597280822663846938438331645914270198811616312245368471686005613442770722291694456225491555035181229761338977902651466116659372343689995188067347514710026988892029608647045159594078402529997293570010265446418909731115181281441412410821985244851897419357147839741132692798401333758453566223240099050194674328492087235581780399445012180439331494101485900884433929433582683156108291575358352892904429832672121054485390083040398989242010287352155279705381646321737223531635602468466322573718340588671908140281581563944667482427789389768536246584169917078812335508358503615430422782869004925915848711157250053375198060813570537612019031863868108459921144609991776124449761864149158901075560149142415739827676319611757935135459587540845523062776363450836585752277425578073757177317831263309072588496403232344801829784045870450056005898813732557888539865899932602246046860738685808654220295403180206422185164538654709189802946092863992054158311367105497137163503467927245883223595011956030096108607442682427384701434431927948613785802612664873125468368943724431591570096397804588802669241682093932957590384843913516341782431354947970877989059601382950361247714347204298967120005814220620120995054798454164056841086508585200872375488230198461868268229736828433801161369030150589517613597794720467500553319682834109387529707201801113950475936750903756909589908141462904031272118265026857873356413446803380000440231331650370382748175222110365158377956794068002033969652469800837823491568238390613471887872608831266191604142460513825360954283205705952630847694292083779114138003077576530548337296835876345446299768314436728331584135617044267187469453841532712464054485153157773656452662579168431816028014934576581358321085336421925267092589560951643147302825395307276331053902629270780063006176647865337908439518913870484166163344015074756984430649695528482048173206554808760929083563389482059104000160295735580987390354252386355606307314513508823248828592978011778660074317691878383452032585285378542799665061741867969601612455565605857029644696653458380893474120349665363742752353078145326462771624273606992409748006869819669581011969430921540355966475281986004877800788195645645130651284059108451444400418416367007709700405602333378142655465433699299107543386571375647012039983531406810650589073390977530388516196739487691213710783463617845111878843796772102617235150118614793205185155126138935668845047875468981422227803199608881767243852729998248271349499824626699172078566095469023748750828491107195688035742714454329587501358368805746744806955283054099961708409897527028301977273445057451244080488176885534394483445119548753040648540333201092468595310219730498132904680739644911625317966582451644665637422655080541859392136101395867127080281595211624456468408578078505411661483935513289978309710679140204566180460407665362377901771778437420288825123828062517185551683187625460804692617733867826162556001972634311234049404670297907933136252075441050114979921180601946669541226288840009118764797152172518416898245881733105217980907160019539252236497111749491818900097339485825166847708388219190037351057524393393697145592486421120895960798015002829931124346734060867115850918391170393464339477716153340825618500649228527669804321178343842309298639369390406218960521940071197071848808051414854436119781104967832820358483241679962337238147270547106100594094018717184356810839381782565245560982036868069452667629503968394465688982528751506198932601109635781301209216901120235466191687922309537872759184437038188498661288188263410424283389932184580235113231800412595052416382455695440579777066716487190751183414330201616705346214697452838040624003450591207248195622889519524609024243667532527785319345883647619200237897847114714790859026844574298426675643606153347467030263166103065325004145908901733211940809337751544374905969248610314825583315099722849968708003687807128587614393880517663334892810869805445572777363988217628284187160081838489609840929302522656338531590766444890775866219823289820988312563117770575910848841240648629162806294379156086416105368241313450431446727308848662506688442841383836294433451710994165782156461536493589138889824176352208637357694209859967969563169608621578746926558962174232607081736644914508730834563196819671690522327045801738415688895968657961488203255441887898163734675699760396065702014385384211717067763616045562482658555552169957109747115544748004086941138301449924118170363377743845793052521845635930776372173217742487924320052058161471300518974596010918031378658573883167390414899989545167637378865149199561118441974251819259343601115666857153594004976097939970779927899378459198896471606566016798265791650179206962760879267543128690273607870263502181973593441376213469771024091951538546287783800065700040713507063607715697719974515917308162719224497366509820036452636454288358014060346844644415408632983345207561290355355955548188435293399242711654557609590155185437021704173476608558469159965242437191067105885056592479938305901102949051578489532379445716400122761050589100686849010975927835923145759480428061785879546664147392237702555867142409290721686557510593451913910649775547190091545491415695661552612467397387761658798794418214262862917741686817946815823483966074277383006321931095296223799164892852856249586458197978325958238478597911886736844687418726756362946474919320699971838637190440617882819044283999624164746289591855437386296321871715236026169382203267127663238841758106553958222605940854033804539811796384072108642841258078069924750297753482483558201215175937153502006577203726544013353416573404630236162675665951362337284603164206171676332407395240127768933689302269958054607762695980152018360243724476817079671764116406225150622261379297238764318406826877498605461967579537381749445788817187778248804350951418066772966634221050706343064464023405624016124142187581204777695476689937682365279016898293453088213678853672372775885126934435664713338400145411847446521478067331764078237052693554709840941681242433884401666312620926248218406213655562146865147697865970865422036664637350526136378282883391379529654662030960343430217765230078919522277195048157529909501695184193836885291000707279264119148445586044662657256106169983471099899993571257091239687163789164063763363104996033429131973470852649339851341608280560889478865677236231285015463928858560866859665553865320650338717535951527807182403324365959519156760361456318389586099614175380374395706000307015154328367447683922708571799624699852749055462772974736543084207585389236669687616172076774250954052507183923462709760263136831918070467681094377712501895071909445176608055723401244616622222224378063918036827714724849921643143405656695368380168641525280451339982635081856350403297005459429212627244026316415001929410597323719016773954966196886728849666145807483689974226863190640091623955422779970276008750690756838973537096149349420765441581589593655116320079616151381028324092539699570639348226991675594662818260425272225782828538132191917401235655423123211537514973670023237571131337323360126579732181674475995453074554231529066293448324923343683646656292255863993294715451102902828795167290654438900848018950033453826413123780034608641805743731694139548531011140944494763152004112448252399095321074064626782069602469139919343768761256009620765403327959038947611655893838512190665509029873743472973938373886980481091015337582148834559078505509905430538465026806319436515181345096441576039359512796710003910764597753622761728858195890074244709751831477000065240362005596532460853034999172750970249706099123055634301248513207768507602257038379986763848544866739560728384720557253919565194000409533520946966799665980467768306066757592328187060691238326854871734362635700608204641402327842780393188996859031583847276522113205288031325259646758094619420264326780328800000673902898384003677165334054386175452574179071407964221986001865330692050348565631639825405881023611222818877299220020754963717701999913602568794520909678633431419254762901715818418330600242466126812886576550329548745139868311729248983984964996346508476098446856765714361619519260753302698526422754777294545032330966537195352243183630505266412833128806035091307139389374923811900396376510230599896372987499814187444810981144313938176629172244263190346822207074171886981064474379415876057746602024290768032458511098059841857748627590950935829116196346797596896204255605082927859171178605911959922597849588209735569596372845869445442375811500426893429827793068893374356722148235757944280210387171822294714613530915093095513652673436928879909465532936696207353115869531910294735078339625677449785036561149927907295499504913587141863454900563126844297836303634516019049742225379494698224386925885249085127192161740677178509410931295310827268084021894748552353665029020804877990688381464347442945910154705090099928396431840839514867186366435540779597359887698788699427226409805656969405457600751850169987065654115223681130791546032736841719127152989536133466268771434765968889933358916137413341330626905435283711143141310887483776606286788093370948510685933265252502757955260190426148055359320438762097023059386241793560980737616645066249858337996367899507543489602109215655456911981596702932395883530765627700443583419399610667558505231929097403445884445372765512065638067501948283357680357743236344519704870513503035857657352174441506714828120778862937638089128404279794020096397135798138644488572168095023326792751027554206316508941746332599139319552056413866575404427359236884498656838623652158200080122768293213324471163273728940358190656557770892926292284781706044553720296773595946194704313347372549049947159840849188482321810584979071797492820221411620256764024888827725160895279127058993519434256217025382928183086102847531740369362200782854721776891491694623591376949325171899227672664140894191540428543005239423579867671169919268387211614680256328464923372664217362594708223872591074524154208515555567574591121166034282666554104427588055954709546173644775580356788379671749904032085775417940154059837142288194933373802924157225093465764093242613361663641453793356976677075599765683679770786670408579950188395475427990332093033903524442363367875583254261590113049908786914355792808886049058223321234850592922295847849369048013876617221430283711198020221430262606355009081847990197468914920303749074195456642221857379164890026347119809780761514025181203329755710214484084713427981412677554969397355107127088338388517525776809263396536127233199869334489763980839287654733242716124621219951829713236894538122427147547742199950019635543659535859087853735668916671524867019456763288324922705095871351435480566585296720502336850080546806573685583433973305721614975552132078928950460861777103328447008154652729571782517924532843412889350403577616882471662154664451918347292972968544364300762207342894728914550492887398348858705470780192834452866900901381245022258674898956694569869717378708622241896075733494705576657812551585194749988515377104254560079692631513544171175168402815492524935035510857348436751466251800905636251299715171794972131189890016237316819100423320832256167952142941680683996937985087155322472677639088276147847508352198277660716181091338879519313445297961980134434331153542707108798573871929656620514536222624507215188654994920849790191823410024405099067512129667833798672541532670706249912926737888898212413106162600912730221101688885940638785264183765411909043942442730779543481424957916031689858507120908063506542350977975851361398890936232243840715135793781094288731038333804074604255455281355461006658218338913686763612116229621093191844058795484416284416216318672270176368320061563181856852010611672646124122350212733465088327770441157347110793335482041947367980942593331257467120305466936844840230319017843982544671706400787645730494391842623688914035146359427498580834464566128278756338410144380183240573731985316298786939859817833670510955306589000669839308451285065457923179699650852025636595064569589352750844420520847924677614969129367844813646805899347521830510306239754107670023637360146209504095222079050887124292613078995589922480982534533134359836079385204340421405114655062223735005150828390906817896253059460512415875304022425158682128108487507852674444866706617878885344838571401668760313976251705191007353558657599107437966543667734227218300195691803738709286077299582173481866882090969755831105553708155536599770255789170377356745299082602593239393799009489160646617921154365625542549790959601444391565731535685585696422377597058944810128661617938859009140411597562812258862825901539722015019606391950555194784662376096776909912880485463555824905004615237122160243477346967906438491486945142792702416917810496357648690263900090394751355672988948537560035576894998898019433829431592684294791352563992583357584682416812685324114138384575124087291443233925758799288572440747591361942568113874970941043208505241664977674549044385730683813835037941195061646826566545317216777078821068920090091097099048215963757581959547335421849775895426250956667341426762953724224001563249446083649231783673931431054424162269259245111112314428956874693759831283616594620117002493979094683691116516157849184997941866273327410237338116173711195409930187714792508469951692260786128584505345688679600147574044792788322298657283196500999950013439200475537060481159018345549016760035591842995885246135231178551358139101064905936850433547015961058452615846006777315376417987274288919564512729124428111123817207729330628199123431541003899659805021825290648765958151627078091325969673111606967779425149272249488402494809312968902462298713486915352274141364370836347810252705020951491984459248038492090542198859050814508732462378505223089370233259115427898165113183826388702909110836336883275736802970362124038623298524846089693910677560927477974981142352981115091584256850307435894314004629039492341908752023398925175168137982680938909181500755854663810315084024408844326206942508564850526972122300618979645920031246524459116308976468269342948500577341258786415388485454333747127478769242855500780870406969689338477943216750137190296166823664886734037181967832137818282798111412144576927109607276896158888840002442677640380105469822291070964447353074185318867606120996771410334967707238909499074264238718847271128427402144130592644147001578616036675816298077849824234202217410089092777188092704501448183124810755284782362884399989268234433884295767316708714940483249594929798231794001625435331454425986583540665182432597867033894630884099749631269809487885137103158761053709044157012617189148045321119145963349087440469610760286447789437934093013946141385276000154267145034313908234126634044782994344080603710284531615199796829295208847808456084811836418258887098943352402287590324793278171437917175504645979866603958178520319632178871820507229191813660326496984895577378643996532101288728146244235320679228070749991231557004955624366960399570242937043336399221962129854713956901230712744368371564115639572120937460383234871723171152031855891220434739578850687866799487296265653919812611207746688523760453041540008626692524350405547299827999380831885783944363009765411459885903798595363376967414999667238825283567435433336491817728749036589863455072231676637434650177328277367057380496751239895224481821185390785065871599495511854862749092726939430522046291631516365748317925835263395222968061463961186618273470555151482181827299402816210028283059606988870687024354910789211563541440255209495525561967967085728813866138542320879952755924601458118397658483167271136136055767147855462615377594558478160474240717450808029704495305512284027143799953384368383606930853723278750461346440643445717597551741722233190387885561454056528887439632915574826673262397091802287487186882080866417604656335291654422809606991951805305795242707084430968770656994003774462133344366515078649282841769571197858623321597914180430355542449172369661024166208374759563239671709682712570782043815239892622544050751081971415627420857163916878300472699031860230926283098973715649913847747384665714881385226932794711866298044206258425043538957938268875566378306392468530132370452235056407076670280171409363735299520323456517224298856131964205247283699185501955088784904077334671874935890044090544640657347925055008089288414844330792054671273416315127200108542984298215936028665791133195679972361266502305005048975489567823573806675502776395200987855499112689314032284400762624422953691848437443108602614611479212736747025996326189610170845753538466620322607241013537758015468013354648469706186126643572891037167108292518796501227748563969458172882003283742148245806687982215218849560289494399145611150919624265482955193281612100096122528954435363152192878484914305406986929263614346563902845139710529410094030617938561735774215197443037879918566958668214759248399103478442029020742406151487791537666363489906015109312920786525664570529611808666752895533746057733316627102326290193313926119822476527575932763182684691507409684516992363684456567296006574395535789291973637318235038287504227828480068933258397324994225994358115229172776947135229959482283430650164785782598974472028617496229978730732896648482960897755902681645299443793236613264947599343203753598544006869267185999552548347190676079718870476662246141130460047634357302168226067001125865779045272278759316625177052849334990452635490405119860501780371708875672392178979069134183114084836648012407887131643478925633892894743318723641697534559173351655322316386587088470549668817095919313427232557541727224367174204275957078081747726915354327026738354729621725657547269368871920067086293011606899975080843128580272644779532306249025356488509266882085401959961787469662583706019389523622769407320660175993260258187226643426849090136506617402446010651988079219356332556632705123621331730876560524422125372334890231621851744924038387922919053517691065186241909410665818678569869962675841477267428122703543290145738056458597333495021133350362313901504607793087289179876400146479660518513432399915914935694565267427321720607319977019671528755465626447641405912364584749633861508560853492887334303628149964353678198500638471800034495122090985639971905443108605922338348762515953471324196766923912306629147697322484901849645304918062052134337624845022061239152577746537405855262215133918942467810638357705798957858939437224057834114976765637787873225722476332618423381439586578459666844351732181864677246157378217590435702202869195852703549901713456239461298138337886910495112422958617564033765968758545990914956258963886759851845716681010759536628950820791014555534001434215585773600178941236370923559946411418736085456884861925276606323452900232870598417453661926070222865711769893458899601679787132528752889900928611478936780480860790452133610495256245598899684433826125507863684563228680564224987865863277357829550844367989968500218556612155616637389793868866266470689661646273915702205072128736965702144055457535799248725965209138888545547229128418757410677447467710176977829143968607132043801082091783296965069350950411636380928857913369371928543810338339346526793908985536187834051242007793780028929399404886408737259360436072980109801681524748995715621593727733513177686327773477610610452105136749816192061406424934152351118355336338048852580249034691920184983405313160022278401839357343450447686258048421712483168320606675182526212557129538922260061918064751828174496135374024767255268861374657520531919494867813892089909756390959399988677624280769656340595805862721887344325085502237858158195011838984366232555323874362114170349680729530688489594521475949534784206397030586791739431980593863593733108197522736082011384652526705613687758012394457540785253547782935600872421257427058967710042060415114282966091138168290683542383130002622833424224986061478488683659716579706880211199102174013222745893919824941183379865301186763282969196784545212868642668266081077913111136734698927212925158959184654018072531360543986806321968695218606749595223908468549457815749090967606572506246915931805164381454909376775856607883108911924837647124538064369365657756896140123012287103721757492570335834502327684348813097633461161294381786243810917308375223316961897377402850695028999985744713084404524972177911818237611188072929515968259886341834967213778202735811211657893619661050862299178502480545660772493620691738706241920160334162384688021597089157614445917789560854456379153532066058073168959107793131798231017634668827987879074125756671636062651664504574569332082579649823263913198512039036300552496036284505477759898638786604221798462912067425220399413673475453178451123595482763612261077462530162849851228029426286854105244940981325628642089598806467823161349507929339962834028334307698486001948424791568854312484761000558602950493678855442515088701451989175478218048893546289454576721537895315020235584883857758205205524110425540424456893578769094107312800196562043763420590024016659774521969225871052829420986786054466187846172155043064692218529528452120113134537514059199974105461652137537768669951469477335533281983995665333486118453328408536576460119923051164756195247126482526433294370114344013247028680172431969047780990305122126453924662134471801847520405097783880231461009530787036987428341651993290695506584898983683894590223069291925535148973622468426432110751558351303689185173416416036038186541275903997743754334788361608412199094013913034038869786461572325390420532770582369282099033865669607692444025807682217024525095353157754699848914996898629238898202154156030120630034142154333272094506246687141140078689646863166258366459285533709865271753024749332454060621087521302104226098803896537391233834898469164638393039202526416410186692198374983475170827082552764053135652387238248735078924868496656610996878359603793225722894632405790323523906134869438325848892079378341539845664082482696716287481670229963305917755946931988391917023449939843419888881886986158083168028532709299144089723878346738995592740897988467950167654967411697246677603727317201254047929888000655769537876062050809683940360550988152696507000834231665843746906877077166901728820628608367859531591735824895269379707235880120735216458806777442456776085910046897561465623337941317708560669211906123763634026189633005657953426575380173348130701783394767055075018144526567904643235368132395279675134591230537319047466870380349816537892427446514801911460571543804754841638406781014251175150508984082865271286642443217635910535290834697604281899835122447502717824771643164821835416327143601140587230732166589096563056626138862790123361448803864293410669852407176706743545698451016454138248274139128888792707698396316070579878202961126515202323698894264443403477284856373275568762573468665946368917806587528578538239669119251472558299270802386478405878559755610845134051174760307864361353507805373760772135499294362638160757246510827078003944872751473004006581781200032668677313200929627173752141298587806284872173792298012493081166824306667784066661829743241093268371501015955817147402238840478417154262291462756923242916274053202042848734502862484128700631832492754296192316455507166665130764081568138600438791396596441238891045917781979645067507619991741632265687645577427966535937119334363771319331359445693600008491447854458955420988886833944019314227607947135892225003630997588746409027481179292410700640727159915164065796883232146848780019347743335553950015721616948971095633081651115143329207599605011451766557153484821577111605361625221597449050492309466449718499190854666584933579775250468394463242469461406537468828547367862933088001270420153139676982850043425510620391907181137986578089071115193436467940373949734102344636173745464482676044954873127563151785045689561857871110933333502266881084455732447238529068484091130293174173854998403204592664261971587671804029821873476189949842868972620445172543568463795977579694884575337965244797602208752347061758108202309459480077203056791796176297024514055180200720024869570971116199858669426368070992250930059304347677390214382658841211660334313163391586125579083559493690406808309501992673639596170059144572564682604790661819990999922300707790517199428668678484251983982003652133792066581804834031203222523576654961905088693346329618333001749099157160755037906776679865089111811329256434085777926584156986229196179239728280394363975460710367613671933198040355078808006165609978004759401671988000764392357535973190489245622745229363451570552972179050057998888747623654482868405120550882883077633674736135839546991029203182371587340769665705658902552001678475197955961293977902983984141902280869889221106579899503216508286975689474701599019674664227460464430760624715066660304304948847723022007096457778470863348993111352490855973076479055165542096545681609516186257540401738818655489843578493312548225588476410407953122994065278942423816842064705014924092172048269213199629317577453940340999933018271291757367813231875134226127157439705395395129576695347050428245816129788929579574771548554259066635251772015953462704412059481160682853881862886054498950399053844463292504665826364165043362525213191287103669807493076439873282927583424591054218289999709460768418493232807278051131218448923990599894609880727655567467247574032275964775923262873652290982945427984068474908369610136673047353666086284152795314201476960477992828902452815658245523305685751003206108844894733281545756343210344209250676770169007133586000512630848317962939751993543540284482132869776186885651752017292113134982412215652843204620113692094502943853581873041069447069107914569411975864516404421119190786094711036907180582029276617114163552127440825681503619053562250498984833164465672667850572060005115272355359661424984028588556258803112768577952603936792299467303893065434321499734031191903047490762021504778208331121865360134702189695085833662969269656046368914088771608234430042607818948914078866513613413947574427381757029755225114539616046117407154493388130336905206540201101648708743847134325375133582090291913488369706483230973105932523147092926060749266916848262590124342560207480178113892086767377563490510763668850460459368852455973655835372587704695410045256523407745665759881288259036120632461260169540850138830052372213269529002358109489326020674047274880190243234940609020954000712652830880557270694148638759840659567354564210999666373619930550604077351392144385088345915518054280472767460877410476648663026209903905151651194062582793395221402805714615247752748099136218802413254736445371928725014782527814451374319644486837346983324220605807398945659065415078184783902469955783732150100624370045048218651862650047589167410390661381340638905107080423592419341806061725394296187358651835849960871913544104689511604080793066716524649197241961682912146399296527957685202415424626238875819138518371703910894124194483628995028872033383438282855089788586418902127933753959083197881796358757893721855724577102207012242287623803028562245665306992338889260656605343859922152698605234362065550209723473511831734238407116710193315491009843207239593724368253982259219883888920756768074977461076996094237175647686716845371185813776363874896055785234916522848884453212294031810110810732045643580270448915041452015034181466370191814607297753809593824441473912276635966484146439487075510793576169824772801445297264317138715172344269819021637907358831247153408323358100442849801452620263477828768997356566458730908882951014784312132249988641323704624025696575539058042907030542046180064429539141789235721417818305686347327633504181675039876034512049503373588743465340544605353161116309409670221184787500263167566117571899090241908880662839691720231975363608669897989329153483845476587417161867511472553601918133748871438890643699375618963271711922261440073608937257892183709459548679607579538521263830607547164832774634640481236488522467535050653076445833665705747063710473558123718209645077717303967809131324772449959208300939256583495056077535955868928265938310859345450888216318852993362495989428090954520996047836960449336099858678677999863831621249941977219046234519953675162622553873185096455004499598086187781000940966413882933881774692979973831636651272665652235186004039220998982336121376636018014325856785077271092909689547349180629519950171888762459773077462438653540574676295422935324874215390699688998397843541553311077837898120173484403681738887751971837819248531176254807135344224047889365931917360459397901645665323186133787510832499548233156825606993303065312914524439380169055088970835992811569034564093437679600858243486908108507170633244628947708836527520945075314112780701103133916785242764873088638356542630515156927713244390740113499903569918792918132102732150465597551063288218143179911333868367926614448737682718107410971948218920214507238103985124645639925553785329168864174322046931586053560861411779615756138276829807293446537192458691829220860190343863643687920057789448551089843428677474922486201076132128352923062881462032243363698720685365533349812989018024213666769131681279161576363521009812692119002289044281968083543361012506314318871860218639660892421157645939857902755409955920100684095207279212981156200865186070088698572892387002950608010969076874354705208048765222692048381429759691104274766508908214485147703486000142823603831281145173826265684147665522324101755698156387760436866955198095150896127241433430672179985376973419951773473979382056902986873181823633348380565916843387307900718891907969919188509570172609610747043488902905833691720956619267370074683743762462788046640117999875180959564027434313843225434805568713334153815832244366824204268311063231433981524161031862939048122248005943180319653606150463039115042209726449076291947297026448930723408259553373236240359014279858969560502711642419903654279186777498669818962471096383296528501351132209710133699105517965208509338196931285716477759393907246703687502809405437923720439440416293777461965392896994607362972726351768175136747320098971289280192982457086236818971135113016643891139873462748312509157263107911875010084786395453005791201292197778818504258823393229689863498720286734060355556550256377469452077983889605299288749811185209498855467157866551507360684495958934530205261605897247669624239009978588574290284937115448644398845027221570260423995886126296218465179149558646557015640230621566777565811902663134212886181079733138159717142308054402954280544620098597188608696936894954945011315936713213051924914687002041991672669233851612553644024184281441054463695196397397611664835288326002641593478133554835833019802915810814129516689900202964678634124595456423133932866336165831511970562886292329907784426459736270140188735834829671495617228050372868938073578158119699457291864032540426760003782746006737465013182151467100185264183033078921683979524827454231589438472425221789761790435228975142698329280746937632820696407944774598011665597830902492151856569346641995805836042494980976148516053511168596902078206670960187383741227930901784556082681316742939878915399758553302735730860189154196102777995452607142477899191194043358663333813870741292378512964322243286596472621218342409080088753894939191714013288785714104860423614529292626166568783983045905940755761085594096605887769691688772327158771832995938057280222248803957179365436127795734151576612878354832289349931017792177453829099620932223012730515150308916396991296877859336574040340160267504476962896822681627208636315230610273060245543961078078240828052159663653684355287673227655236578532952389767430441083094836418437482880646007954815158730258244466788470538232110319890227835413680171146686461992970654121340449240844774193366257429323561912595301189595596002290948026295335844511705023625586093125924894257465897868210586378925090201765508024032697978757401138786542606680100090269639256779166309301523108799539801078143842209802059640876164712267108864378312486384263707791613205002430082837171116926554982067797584329141488230064874072045403404801052756339449467389251196474497020429106416545171162159089651494707547237824136767971145956597872419463333539037365132970532652036980486975540372245908783686769459512617465946363783980665958234050949855475944787424693581580970289228324153419814946569163179565837772924965621351849792150590744736014572027295956690168745068367505329791156683099633780805486570266209934484827117555107462022312193406161966386517198376219017929674230612974698522717509244395188430933051218491738014856008932768416549634084824883074806448206069803239548255677034263532810107597900098054036475734926692171877520465412678031990304260650939742716078112938609360672789167232958494678710266578301167688604055595992717945124167147029855347308302713032947073812217429574866773032189118426419048518050098363603212885289985479517772869201995351495537530783954293729467970354246177472460176087770181201761927218076829864774254892115226878026384500673747791957152190807476774030771651446171822615353841848475996545850881409848831782224618855758891478566608483210295267118286769448867969670309943619506854425555469790384487157984804264638409017857671630892302314616502285443808599607885214079115233253311780128869331334541957469146354883366150613038155327611077438409907542547753094248150058473623555040633074082575563587741082174183392187483545911539270960334947906370147144785095762215455344654269593258123745919052801835178104616781145256919722086910181884354479773523862661545275420935627677461344399486549656821428295687132239037793993328925836423165311471061928725561459791739810249683127234377967777532635040752496961217579978124973363014814842438875983181436505196935738005541775510316746573626039614027472239092008083184820532323175649576660057451286928684803126169746816375620930626750274616688000628747724695635250602440511583532475071685898269182373788882106175017605078294663361246981765369961040774857169738610299096042314885190739384584326924409011983399266495659822163287600928920798055966551089377633218737746705661003231858712671691201158242962491563068333474835839064751833133568419845138094572402975024247097312978887010041481127028256346210831114968979526512488674215758404701555318399589244601987515262973091019926849694859030691298273598178943306706638115542707115294746478660678359184175702905517094531112547227609293787315782205054109752965391580291589474413533248639656701989764615174930268264358201223815837662992526055298855823874709565014764210057210845312824859185394623410069368217466207736966691178038631805902748082955402947098677161231571945792989935469392027057554055702911773295405691132423522107487506336580063242399651791969787057395927624882228464837965521914501830012091121835728300923848790070538605114259962912172126304907587727174489060280292582782330715007107342400332975199738000655168634855155006986408082308792759314757749753819673334554290757234527561205133429041481988570921630736311246323130370721173958809689241458368034624694763113434882250817063795296119341707324362621443520411785367185378449587414174179060423213691003336158257705301374723826286394116219719502686271649480915945895146008279420386911512914218366702240333360555957239895795836599216859667655621069086989273856747300861245792792560099738918027820515717935404098341812102239681538316209650084244779844508322130776200796883870029405421438611010157706773129700094734438760672997741667493949301420366401454346119017986869863490320925047319631332848234564747581104255802184309940424606464759027331678191765356943143009239466134893953996646241717780138536485495813185621766086567249364892406113406604392138619957182025400361305841324910307408043997272548895694722478651024505705946981790167203115812477756442356925550748518064140675969490199678878139068989890316105870934341591898906947124233176460173627718963998996790616336816058754558255718886567108051390261231741542509230425518350138914870815649707612540530851301740669397493125889666713838849927353257580743411333517112052846416912848109415820888163797574270888569375296600981761113311624363529438129975874184797147564970118189082363548210250958918694267773399148496461656869148119638252507997876924949664796413264527751859190388278655402850765557436164661884616271832703891728305896279961449597184160003385175086228230092467627094267187204479174818861124678360408514627710099489338518901495832379509410075669322880849216134096791824649317096475176382181508559928320469639127779629300958992963042835095214559786150933833736382246016038245798526943748257016867841025654972319193489172679974450931575257098061620667649315935449198093163159319402597026613176983707393712853535517310570869876574459970297211495806575458389875778786334358333194923810043015896756315191376686486753998261130083510766784722385136628146654606011656760896907511718445380766115451568533319781287283956738601385569682415769631981075949150935922119936640833086547126304480259250118995223796901171560208029035584095810658121405736730589521837734389681168182255541792997083048558765480547066198029396049480206666406289331186666754536693875715081219301582484163901052605257416890321707357123859924445785289088858357477858770904408585190612641281515133594371737180076791638860339265794512121895435368260590331877167468401909436452965927635105517970320288566215606815225008333544131127189653681975185667970118247317960090632338920961276113915747539436676148947758307055080875207370915906753806384277414640122936964463039061662173130097363295035809576578025618265704081524087630174286416385630971771718348787071265053985348077727534784402354943363197064029978041583905757782480371734786734441689525539179055395233954633641195807737584498474701948657728992482912131051519712123779274903232893632131987213413959082777823309851999597947479995390881473016172866797850440692155909512448563804418110740034663642231005322075610534680125264799044251599089963231403906733814732418583385376301158830670480555186341560901564155077143038054949497244976897260545972819388810918256396965526969741207810558952254951689186474572450472292078157285193197447015555494171593251329827143995677467326916907511425588034244679878838342049353488750085564231606622924805618367490253229820269804683891555351857906197626936295237213425869478657562516577605415402534596012080892259165884632655855882383620955809638711340975139637326023771776956636084189572807341223659169284560223419086422836562964014335181060581418743686355703122660728380379690040156761921665823520514735972015632573187363289240901467801620346373713980078809194389800495261551854835109775190920347977335198431325629508383971503153054739668459909947013379044411225185021314026393516414282692631675678820716530221369381721094761578112606221695553435791210809627467498645800355562424001756126759198004062487602314984907433049339614082915628299529398052218807812990792866216518110801563070526635318124947139554459856798731442087510367404337667826471212364338356277908896624476850170607293687173350099246938613598621520085081669094319369865830120536685971764250104510517562931829673555797195154751170145253101040319130589704583636656679072261921439144058560981153764471320928489749021440341665413741632866827966754315056791114236992439949315396461696944555810513791939719016923535082943722276533615572239809722398954046884754664521943194512347772009886097222880002280774267202303738609266763152404917398913245867844224980615528595012015762604480183611312669157200950332824242422125650749155816535848713891635905701107224909973899291827718551949148045135005382447091755317225978245206736738539596132359244822822012887904223226658251955150346266536809983399779063873530962261997743228987027283584137845081771117754578155148571990341981037438256603642888225726431735262782740123420538821078681074439250537403985753182398481106511221923486251335994751020181380193553264981532643976728449650271259756895154851144218669772599136290311422492287638225572862441297604584956279183559837838745034264918359991905627742621915828236941652835747558330593506890061409510624090703221145158829769747880731339745242589285620789574199007366938558166899570682356619461714614736249966076030913966425173082097145153746152906072219379501284085137045530976902547110796986443063645387157435535198282451152722607075606783642865748236882861738539508938993465350245382601186146840798592510376846489008830805209945991997988949125521395347268102408767736061425707500767192035342610158313994030049706107512530633392990169840672273824226633767802861662143113549944157290953240682698619043984680917415181000934252580990111558700582875027986317436836384308655693882614504837931609831109823378290693374384132448488268161901740796569618861583568733498607967918168356775126718442208175071363352815886647870834666360623022609058485778129329754937912923847595790021854607380618067261947116884700793363435305921167792214671673239561094172857012037333013893945249269096048786328605026530270576874206208085579361758380687143469785134868617980907972013770650029024759682105559553511602857761482994982232126008086627996121650773464852191504629172146112432413792104861605964119395694125877286670013854849469315981022668779946170538406730411309831187556213936569164111646791296037939465511267943056360300215475997121340400001853803348358635379265369535676351915654348952185941660364673288773222013279304354643056439075931432144814568951151541981336088953267940139901757768599633149347825316511785151988884428260921307385562715315625644733502330669827629213790456132936102465575207974757867201437282803538425918231270094096054145819373739197237052687938988646507344238962481935446805102917857721725998794273227921240766248723659932467696098023533538164735804711400430149318310227368835681218175197964126095558549040293705873208977136888928566739763329044905880160054488999546870696923771270259623170521615035256616554697804090556027463869781718869377619905318491640396195657763415598442866675078956863210001986756045582790716904621637577212947263853555370946261195666634079066556138753693051594943972677520602470556664394551303227933051806363968345505593277405880117263199123407159119882630977842550328122849679690078265547286160156675562797056717288131504265599943352273524729458136979250948348763273403888174780971898086734588921448576252939958585046640869568356497302433230804430415391468104122013806901945548237947253798137600741240541794744088227884025190386635679586277275838213250489732645733553091179969178775682980933587613134425882156948159926927995984269065023931499946906513577258565746851137595917973010979049892663444361847817778427955143818270603516054325142867875858502054811865023236105916924667601117590111691917833824204605308647602380111509378814488536273355197887919010722987837862056082261483087360223409209038009107131328347535755132795789672146099681153832084505131091279406779499327018610594541311247126908307513254048141545080136677543853079794678585860768386388673186679982271923668758689990524249883730522885212423967098399604601715452381775012193566393815495428354414645372730413683168021151257228030472716421861264445821477011528012472674299711553954346455171282942931573524814762033615789462489720138103018790920048782219551767067408642195017121878561247372084094604102312312472365157888625566911219683471261535421965380588416753336574402208456105654265161259521175422231362332880836464556746305422625719054718899240753741748076219984702413370634806157143191613778923875851733157232687887397861176259439551817032231260991281289817028784523051083313236327085673665502966530433364560601301436859130241997067883830599093287992523180870678663311718985948713293431495339943684405193394660941392864322148169803983657953309782995508620914090273244851608426863458448808345223993418344158910634990938098991242511886109204410346956005505171278363232206375212904827159298712787695795253424724931792998402393959527690461770912979076586675670520882401031319341439534593882270238968795010011486771690216980911420281810361263485201941364818836576355241975637431670597389067981100947127624457268444992906660318657366088122073201449238191383683468947827864590211505889192011598535730681005812387497414630862762869822322583671866672715081646060606775785635993776593356568001238145710515093325324145292793591152696103827805425769253067783701540139856757155593178480892840946654015332920699661973041666256940023517300488335733884579440892384020603249463061323697069567501317076730574710027003545991835463622955182589788452915927820136167610615070611401784187472752235741498317993745110491675154908898781870597419208161486469451623131291227563686531329341379332402023201543656843262529041557603060572013016314350046351112728675424271501020863793588684675063804122447292139245384688702101988514643486877317122600004167008579807865598004945362924901067371567455697043841374789571300927417443305035725159993624233099745178038035876512388623074794633921582341953521591941938568495516150263148237236326057068083752478087155142151719257637979902553055883568948109253860574893976625796245771311914310575321827825686917151145146626840330021426376771344878497851491073210770539929687906800213946748424141396141825007640924571509999306927710096973622921516807887084228064426335800380674183989719837683165695161929563761153799094321665481895471919758174720979759633916740607809914673730292230064649068994760082197713164014473141718851156977782134144766802022678370708139968995165668825365462661128483819410620520148572838396246716344027978560575113018918844533844118926759198347976441604598765395014055554101528158315264280966596956302543128725952489996715483991466509190898182970453684893321653756610174949525530907853122104952283119574230373885981835635272431176589547964953094086438238318281393195898767765027005867692648336159028376891127596421208639525154609543819000488004924327832356573435387417767628989590274785456170534661815117542266801249901852838349788394957208996283834777658049036838581886843155074440396447449192067636169488076340016887607667853932093347698093476541806477862538616553907836170529128289310985153482530502218531852921139790647752497036365293586585420128895801135757700951928408672427868563910859430529923127996823088956855230204826549519594906948292578680538214352789895514310706333728686896650215926005951569786997474819323748595123070821879547901214112959371973223421221508870100476111873266568887923067240917214586076383810741291494245914346920992325393350017638776669495172458063586374477423473828292985155369701268792229049128246943702116004454067388197602066491820638844221566072964018414089787262268096590003388362833180765610206251959712261506089037779965382237284038738001242083079415472931347893754589029445252752685748933876356399273066102767105722681026051146382390893934753124545838997592281494467101744220038701512560061986761853409521673796978258090417751554761154929634899174052294522463067908071546591944753599153920302901900928135948302462735123989285323459049904961875741321953579594661107541670141424204698646266444679532089758453948823164803766315223686301351050667474340352013593436902765928881554165210602268121245111950101686850390676994900573134081372479256617490084527962595060891575831574647815422685852523868411790740898637890129620637857585940346489710535372080819566866945921834229460954616495412803730489816462071298876154678972447582358156343024217928805441201865674502845968140249228774080253942119396463443124263782980126317177596360371406321334537950294699587036317576671495869689586367702463411426821828112110191990694642554966244277220606061472816123134311195975048038560822570586083860263042018658927159127633605265332757345979585277305129577070445275281651817615523979439941897777459037323603344005272704040528482180638903128560136677461930839328298734492741879945866353184123934999086105874850006010585725361461347091233540023782248841282029262975818187434159122225623350495833259598101879372279261043538198643662262026942925991063049159639190315803441680736325923992160523411763999435993667193580019432839744748607763856031321423766092906558883814472903720667870866661636526882688021722214468558822912531778026689434167830449945229974557738002656406543790340550895006191962208044698575097871421593541277942457445950082614084981322490573170221800287519165210703373020658252548513596395997025751355486483363131708576254798518153579001135487647821698659712846719948270582082011640256970419581031456487757371425932599007161626646330477971160680829772386289221942611061132748697712596448815563013035876988186980298553989284570948336615023344861903714499424039057598937251034074008260818030769213246571421047879372511982844237976056032660274248676183810601611325473501483197146578891967276197022405794588685466326045124236611458725555447230552343700567506144438073821682428148420516151318081869060823769682879786865035198110781998750991596830860300717394708156294890647237017883680602448200685531799145995766550834127796967158934539962555290779700616322389168983439704996896100974601374659673597333758406035003560274349428218088082011344177910711880708727971495621759065833534142492759048103263275409340052514750302400161739852728695208129621359958713194019412222743631232333298805623231295322030647070701478814708554107691245516067013843152615002930123313517631783192888496975196888572010079255044948583645292140232092227991436134478992942318330313911712571881052601997739305902211677274915037252967397032176078010403389585840402169591063540805484471859609845764140845984256307697385815909938956792030811437035930973786046263632578669180987240342750207492090197738828345665400159996758586199965108411099933082497297791336565664110809609630304155448598248362204643481689338755826428586158147095673720659408851490438810924907697087306313961828509708057462638802293203532119099917384611789628399477443596074456107040288858238816037589308621696918441381844522753494166966488875117015653596528270856412909885559322160234022782777621721393408186126913676216541755988003374660234138988304452464749037719804353240597536901285337030836108942226118669543048849795881229755630538385249317931618300141981684910527337626993533642040916802773821138500268759585502555639642390909826522794088218156720011968198070303470221251387058024850273095432014393231639951932743469470677067904011321333166170310611243604869922836749867696198585836451578994970013641974518959268588448295998368988431008468136282269308527013633112697187098267098984849982746231002083899035637632441444368748386166918627567943852241905950132347104534928698033825988810558132787015097911465321217594774070975823426312760021727597146293613467900810204392327795298860524073487106091036369874118110418114351934521220677020687639019693504784060417507363893640344144008993965189002345817345658439364770879443096889059770465222905242718458597138200239950732384833355790293317766225264213965242724691408979854275511093203167223734934340032976652083078909667682014600897238509025129028281081998602080079605335621867905595517152869502177281686122651194032073519840704847329629955503403256975748809219059178433454052945644790965499384776742987720179291906940849335707506164266567250308207532742087190682420713125762723803711316182326129528538836609490928782737219388780615575451712193662384495096701636963631803803054716474174380488862406684722305299865436023242088119261492174089786667568447572660940470621580682086871931005992881469052722752400552773018271494831051783812418633013599624317576397508987360356719723717976702828358564611225063483653561128642482324033140199820561756164381457076928564274580376184261446539457808375039411277154553818836589926061728426894948115393774705187436697357849208273629969734213297613701322938603030088767881976744285046707892957826397895015261460358734038810501598687594326141282365248625999678085924800513555510041434235092335196081644069329095202883145236586897569428386867242139445697329912850534031210439163165358978636578487784852665263853306113280422066058535244860984067089906413294481707195160797772039682858429933039625896538618065003996277088383755254727869677418795192175702988214318638327878775539302148986200216776163120013521599865511244375566576325232397471694859477504457309633359682371876851412588760483681159137510303065389019521212665893163652152198935008344186760185223991328041746697269435190646022728353135417114975889174519847559497469234534491548974541248683247072565248262798108396435447299646893059740228451339862647100109585952124973417517045129537552893850842283300007059724226022054820105715474150381074765365523101515129063501258154948539614458624574895267843793786618191800544519015253530845096133442378837082071949327629584858141129818925349255382430414141469190203553522714978243050459583527194709825581192331439593654988179496081299751253454906139827567133942269018200536082304101194250947069273851862259967731673846110518333944095845769317321907530070314499991195430074960630823643022146389208665583364372599484450801445811329141655352403863963800297022206643561089320099355045573366422880721675499488056689425132153067491805551897421838053059408313656472479581867170450821126462818422298376650228820690791114084940248000870306126858032375668013043844245961383044138207784997855998870029402288212729293553573650450135557293809554319035424887736272321088093485577863091482873725056177846179559457840012872714290692576019953898946029764114183915954548931205307982102230230593018144063744467078394608116814257846654004577104940033858441950969421855279664523752663782236673134859215067030609679347059653671836493653704886050899638811960368800261388814523884647773625084304759294194485777373064247542267124017604150724565038288358443603061420944987331258586352802242143815867460856034990323488844242674149647715506102611200797612484251223776517884656126135229410775089256792972993182593049019006351732784384833759312091723545797349089364034992422258273058005810815815526368323735153913418326034659797021453009803910195674033402230579397669167998869910329452369335565334863238449586430943686189066624265248960580991291041941201062730799267065757452178773455470093133751245060726371131649943200618561709423935145346918319988255833843221788217213907838178768749896126962169983397581062414556300150399593900095600474112603603151221595622120159228752354257292275625231502510681095393488399915263743260646768408789230860053061672855039396231762799136318629986699410468225894969806393807568570084913293826923003697559377994920305661692807692587245652959757284676685452408380374543179919614890149098356691857934762960422916393769604733406580059809254187809271060642020260373227644483269314317431078918672294661252845173181096040937033629171862380422874412250403486288790457488046996401739515363359604760811473445373571979568315672777099979855029061447670776284343060288725022106947895446420153554990331585687759511986696538773023023665673047921301360434333214166524628045493270940599216944628905844743984967171010767869455174492470874673074885299095066031634595066566526784240155433743918792462831523659071400201538374491857832292938078556314452175943273002877658959739121881588741770512361522003675469177790605767406342659343490652303796696766174698475261917648173175284634076953259671355951085845888910984023868543551735620707172287904730080241945559434901958654925793743766501735198661374315349444725631585956418004881288045644169562173346896874252171257993180314316178780745763106216310860237703048015886799023086102700605552700410018134867982122056204623781759141908712621690029912578891405399086184893350598164921622115866134771381592525737277537785783535571959065244620611313261361798295176581307470066274649539968485534887370742682227970837428377652595808403059268987033287694052988331855708433559368885548071691869239702308932637511215265419199953456044333869074008627473711862910982841887332789349908064811943421749223002318689382495231354885218670008528632404047077812751430418678781926518120160572856201250315974014601043393171387490566225912969734068105036759823013464044908817086605935365999505874348985392976967193735515269619475767581038700019929961635565689713696875957382985602858062745284728754138978056773469961844595613897923832046527633840573731452536465617523504240931371156348928826905929404069460364334795233441691568584879339539839940177528235060679398361900328349418671663675733490575900979150061270026326638444646551837520236794775922000656255070620108595268538988688637246734756386627361328469459854731868945123684478511278168779803021727980701786976331439781249310757915025058258674508723367215362192214698412536232636742072811783100833583099370175364631194620698395322016507094781380666394681838411935416180449414609171375589184508440765131307099345847341491898066020649223133527119206358762363457414420631867101906077361803687451362663408484414094094408520049826968790176279888548323155562358999851602395849743823163389100750747940171476274719443000109458604276025998165516446582712147959499081987314285547940488571287739568765592998064985109696797147830830033921122493226503727899770579533183351173094718987342534953198298657791851917487170350288606434718238406860602125524742454546314398705212646941760681495353109953397669762228787875721315618244107538410332538528317343960303972723480410655962094889100537729570249372954845299717793783254066620180770948873545041657980827796897470303209112146014298774299137588031136630878241415180283202455742222692366761415991590572256973597351470072038799794355526761689251851022192958162588561289199171691404078994152504256512662799588603660806581111198705991254882699585893899821240352934638710886619893136685582247216051626651249286137544183825984463085758769023869412921951909102895121264533523762370898390227460428850853331286409963860210396029811886575605378426105882388328884895988742991482852861333926716371248128531655766293559744798164896404463480296724613761644074417543009277034712108093665929077263946452961647235562110439998392571817919241747328439801828654391723674748293236858339774610461190619281675668649364720622068018539986746260919656604778275591693726458130107518720180283055247409477676238755353614576673551528111004412207136159968744275222517799059894972151401338562085134005276480812983505113143332421438214868025193861197826752996817418159180659263234683722108152104143408596982403883495718088884097585698796980818115350241482278534207725619432446723900791511947420390645020985375002442080681708677084693052902292209669548792284205841831036765733691155941209087657526456880056212157635126189777760154403789878225806845878831741698205777546888365842229344469273638984691092934147991718400160686786457569393393330205098198067384020356284803558798001401113167225621451022669378183177968369671651439623017263194815428886485338559097079045844782721813237495094314659906517965587411274758992338965865285616105061888383484711505102167590613388405344946151577987407274789569582323605722198184989214276903656846491827037506817525855578735934017940300941772308292899834141960807374086075631346147502777134794835709321466554289686547577312956921909514347208043975125996665661515192448365774638157358818696239729424862224427888455979245760813245926521009988293695258277436797774527699017616097984253299945265891508462141459075644541214545457975532227257836631344950399013071659517913697265229471199551686218656583901668564621973125751565343700721050227821594230427591240235797709766028448720927512605840346960266260993722366460768341725659876536409975197201395294993213176674812625150359732038804791690913972112715139044967316217464505996303431005223076564918921088751961580937433918432316977652609724833799939451573260964404289065117998039573444102481061063583825277044032882599378847610629513989047827420519672434072372926297527950354607560733341922978765534908838496718128909821965214194379281877237599784475096058762942969579108572824525026679042951763642530834927736983175893906656252048687846846341420611861080473591508756617252633937947017742301860257290607027729451392035078743965682303220359145252584032914355514540774611718514213575883963618616550676649798501897904413789095256490105112596767383339766383833666883399415544058495881867343351778614162361813877805402707630255644396547729784193261705631413235696573790463477569569761182442534213000993884413009062771519242670765354769134391112594880905866234222985904168710954885516331377670531759140288714220777638431159942389344444194992914796570409040173442269052036186375843452259116960356286502155608785608179163842675619108243597706201864240719986777407933891731277896843490025291634394438988255927689333577566427364060049979645533712056188715947198331581115659027298875204677101519115183837013610432957883036321819964632698973529256773991782688880570098675552534622598308773461513554726809628380201094551259752634329715622690587331806774672759431239466107654197006586779667105926590471974678102380874393224883040264303904648548155958646617211825122158987869559992027727345660633875080909392509999011935390035284352152376047046655095073334294403330417086480482249171221301282745551231711686628662936870352197972511061876921860142953968183433848956915314479314909969031585790730170727650016456526996922322050862964035225915187476192394487809152220547929300512157060969446604557671519912403759011293721132392446607275943606051715129681107514719893126296313358156673880973346951008529029844609755481338431090781385104385116513798517835935473105503977821912269083864037137858428665367708554096132001991859589973432978401409979867683201539174971327709135177875983684432566678672087933143876199466786675206943162644843488318455394674788837340488530892538769717554882493259034178479828798300740398886541809826568306686429980976203711750227839167789852069237479392824957191537666137541141926131022314789682856162700410614304496251999552847834404921925531330220842864961128323777519365359583199431532534598477897763924685505736229942047283646025575479885694410929504844396438087689251182586256738631542476386727967263390807148732396392238398958483528764395002857570290110544197293018614192649569503065470901480188116881324832664356474643774573947120088057889115166348298253827196301052357624048586615684290591284861673433942231013593736106162361141275395508651618019996067155043347122259566938064908859820242781752445321459441621483649355496612947019031842864925522152722509288353821475518000937645386762840266275536064235201976126705940733757300121585437692503009963490797735445577981363674466712160324962790034201580583642857454144268355375577156178175913709787752568931807329554867272245713743753228313337357163300087203869583273224358863101951610877345039207993173269793215317495000400179048966174618834106127007333436734616762268373006629929863345173478952171810576235108231488659724465713326644020103951424175820248643381660706034015878744821265312606188546913156489070492868811758453706706707055855090903616531121361311637683384239138996083682685208396958458440595910606393377070611934013318337855775113629670976597166999126768562807019595686507139713074880849105992031889029334106496367595576706053843008880343173308718350948915910766028066759917860994306936049655417978077457801785434113311602753809288945865250655384770061616112048131906361350025684893526349253378274304135086506833448909239456032488437689679053551557185330727006727699490856162653635045069438783136391786296282147206525325115464360261457391417874952321626133462460248678832542466862379733272996580289098265499490133617559005827587879464828083523770189470484489492869580017075858933730768785493491041220075611910495987076016850854973314007677764087087703429815012802822825124557498905007815682471057974775909554624946077997067043317375840330094821061967552396712225945344008345155840925364773437128209969202409845288256199569876132697706287610322329629174920516391135851467098604006211623208052073538830291500970975083223780610459679392213871487112246135849071407076379681347853094837148210131956522367046455370676887666281822361318998996507042199453930868309475599888773271538784801172308652901697899438289354735767952905705886671540613801362557471767033800539635330261739940193999341076414217513195488882433755985607299037468052084534281636804393465901104583061259742625595171893599288804164308182823844480936237999955076851267971934026774911665580930129614646581989954534907786051557841273745763048635272092119576685625997051991840164853851515204635709203608607004237060224537049149622649201479504756588809607990777948220588566708935384440170759421576121343711638459988866575338315067105389888788389195793685036655999809541571553519445809507792392866283258902651543268994909182428181543044482732399358879519220217679143280625029428478166443826171769174727341231771895951162536193378736001432957235749425532537170155287179599468474937108935995974232849326023487929122516809923710042598019436573021969584407225726456309423423098455604586978336404741535338319387453636792117047652204485822967046693658473671096900615198427101815727938162649723607080423200152009614015156294838048781543252259172652487489910090746510741114728182418495283951447567846797440386318658831083961558551191105859970685040902404517552860420252416324051548885337812400313937001167134774776677132120528928227761999255910398244180436662293467892833777306483428149283819013330917764603130773812021612953926114114000141415421243623212295030106253364452453753019753684514702992458289352213401035725874469786028542833455268807344674928269258958304861228087174752282295406912027102329059728948421787683577480847526288051716241763267300757961458845924579852501352523195520452400334231994176558280072867920488815676368941457911730848713503879710919003063232661598732794486863458419281294811374921753394099979132924198506568467818250417342619774217522550318681376985037808272354364893996076931961155549187867074224674250035051845636568164175014404448197749421512941443202060123686011238125985231180224138548783036519687661783139543976336700567533835872811053494413716590660384975114780742807130568831649246194677744467640726516857099437704856751172974743677128636129373915019176188143118445834452283365170554545907505950744344767431727598161185133610138038545445248741036511321769418441920823805584980832765037675967053199968069730430142562087697201518789650868549057818999330177032185044855256272992372547979938035436840172963016375526806873324440283999051224003515487487733738467576115213605570720352906008528349037515323472211685018287878581849721098241581403975833159941590111137458077137058527943912611791125383336394941274472100140812729706982652252538650782534212472713692802010896615571712855322604299721649903640384121860484754115152149085462859424753992994600993975745154785987887351572246189605276024426522492650107719647397621856444207844576458194307132880040253181883545913474282269316281987291722443316019766324362433349630900400036340216002430848966215930959664255312509538055009116267786861490960695389007911306110805399501821679581706491162583212673561430537646373276633948845478527354241763885622806556993187190105423507609823239327076398966119870483801351683403080230943644168195724722266360219729321806810523737434718644129070207667379183327026287956241518246168342110688640552415368807826077732535542671381565206765695615901667929143308476076315252316737966166072598294625758831293125905639691222538976824314508382761321534464364348986769323315885303111274331731773393873397431626864143610042138956025040170967957885867166311726184364330542698945867108975226969755349907017046508934728875096305951444479514956790029628381101240562369330286336219424639727677797064185684475110450335377968292221976053043797825260130804690672736841589978528254785206588087218072255516452461416830049199755782608982770550549665867705597599061990085764458128295177226068542077625827803625221512193152218337131732747129317742847747877727247152442571975569683765194120212151788916680079343629941665154644368093485874024178636074690342234856516513140118407463110162544067517111735576718215092972023170579353982780943622527792565639217252843066569110431148960827973658991846733339960144820115748731796093577615947781684696667974215373567662542905467604331386260861247045103558632262375976940056740361149232072423604375467808609943967206477318531508517969443037049662883687149282388388086788745583024845970394374760216519961514650991801207717959329895683467278606266083018301726624333909014922210133398715635308223040519966075741956203781571596032966993495434686562993774196846756455730890761417937092689000915732094875515594769236133593246328514094783797687450339522943156498324068909438232069788466940382116681349657257656799089659810309830623681830257053144144220108980026004793289301738622857804919928679233135585755303521349402230636152319055541309747559507673346027114404310478482513075535730641636711788502438761266560447369289782495417578166541910252355603356744423697765555316853694080550987451956321239744482143421605462687925006523689072369488807724690963301708690420739003800971268659556668801800901685005838181289556519649267282704578180341313529706899797380625769760765523597515969505704759228051513944285903084729529994460215159986558042914058433476481653621192127221155052118897567339105645806369072945445643936865718488755944005397747051083863298135286717835151097712731151885667591102107515366215189381930698120193352587530779398790585115797411233633662550136856640420237376419439755541208662199390345390341369628731604303152513563454239778892442875412162229275363218563686589299344415417348671480549852782912269247989731017370025166755320654412828600364185337539379947727271233431680685265856111490341157437291051035609932879525281193376084876509760573562102299337234826209663850898796017419775921511436506366262110754213383147898228014509348431484307096451851713862115316139681900482653184774679018144810841990525342646020105670764598365815654188127292212233098347637483201086493828065482606676134828031415126566311050660388228769921130610460620211595124481877876789383137491693814178747992875456254224329763992032443766594826630027871713522795863816593115257684226514262086208857778115548884588942350398299067499765597348090027340815919476833059589380243610753771861514620474912218422813307927241387488939893935357277138199066031971885641898570790911480956560986972461371230512635937077102481056256296932877139307745528723622028644681466067623500356199261085430838164524661694661299456098349140677257394912372925041015077105934713090736712668786939864708609524187524943677104307297074865969374647344101936232206075996167001037750163719499285531700252093164798984513511231299616751769932195058686824303233003313945078679171947357357614853033012696805699378776211152116334567670729744066780497198640072034707593621913006969421760452832045199774070131497085789350346137312599470013654710285482843248027219992977226149936584731105897722969868317647642664959871170586963445318191044638221817301546301954572074774220049387504412046037510234442927486127912898802683684923338914706534004405449240781112260990530282816433041460711385548821220585363022131008959837313559789220127988777612222475586827747033671511016314638604722209905996251235186705326686926694849944850403912367334514398679215562172829113200087782727120377989089154102031545727199958180449078860506036440318686703598368676050509536380568985583782902791548293863035037290067116759183938338116900991631758415673533530534673291179392008934453225201858974793952476077499555615457312048832143077538264361141484147419718750207921094409855597027876476254131613721535808255131155760056101390715818870926875228930817784248183631788912638617570413087989304493562892219791574925294876994173804179137350847114415022240879927873319528486581119815427026987115610005084313376899060095305859289748461400078647807053168031360110894922108008889227183986403649512193126618022440978240677195594735906211366638399983098747919725508018876097424100969729205378643324636822405884674587417145600912741881324906693506272106603631807908449909960841292711783524764641975963725768316590343707257225573338429209606815504721284241963643197735984328502378416193135983537380130057583404364088822037160255063240907919262782564910468245631133724584290894229143245198444286569414325091956410760523175565832779745643266662576659105986647417300832174875140936693891726954546569998926762666323560114844253296620643778603627109503463887173744124820264872372415408952545832623724279136027550140703338916926722223942840793250280174219239961438380503961171182909825078489930225500358747018091358892575022026430935287651146674743689894666241450843566692612750581408713398549560791770637900505888349070318430434393428564988722462625916855865451509152025466639961932939725844943025589458342226284234208473752432429680000300771989023232191633405845206025259269745609322129211304534889392527340557057148942246608586414404567831057882528969389811380289450339728135990326742517674065207443052803595992777322822276816180773475379163594970262632581274943682597235567536455918919373439424023284296458892134647017621859295830173341358100015678476792647366443820870280277889331049191452643996704950610150146772128990150926683177825591162231126965542377723429312778417654689983347709249542876694015658865154534559020481792546357043110796611014651664606364385754860900811333540244780937437239818556264595589376127910672086090230922016261985030567842306158120411972661651688708985148493389589503054271839160234913864446435636117100574341834408360770032335750618458617685582315309007726086147896729472709622446076595502623551563393017644665139349141482000872892252817549698276442749573220653240376733978791192347730983098494613630693253414851928612494321409969732539253923738033897013543487073581803200847479888481525385336894629296096972229580399445729884041298693261137791917852425917697137775579904191762158806253701914461873427859844293717508101696657334333929519208648635098124669255465474635879111334412583318505092077121019615885703839450004333132251001299347115897084739952857089832910721414861671880046718463076374975091684840745195252197424549526938749762620004286942473204526043810584667011218902840853828292254522440310234484900122721391489598849097223779136366639788156604644257647443615661427901757609050725813486733527343551899849299587060056210352608256062512506998251942292995315736355746462645789075197199383539031907584631382846892310287530577591263490562063064600657569052950285422552045117883856914776572936071609027175635784515851555321508527082677538556410752236330260639044471013594207371252476930876589815367108959567454482748116745660544251496242329446056633271859516737800157344190533206844904752708397200835738137554501917413354263160133051959134630921136341233522328310019168741866843541775748081389492625145178061361991915827578498140956830554765789776423256142974333908829659730179422731171045198452558009771842729580909646470836478125563050099672435999113352931843647873940495559371093836946042631454578343206243444441951619135067596445232415486858365779961338795719782226995692406127571750710622147682508748601808958043608674930080925691644615976575153245745190156859169902118712851380473065078547813965439132507964636580896674070603422717365432892100464240940630772986674169798660879049623501965284821582958801189373645102284824185490755374388506661355335566237587773931637943637147865443332527092746375620254715469208797857139809226789316380421812718494971906030334930081664577585121002348066762297919598331175408915091596099231991389734757218262678628281068303267991394562370376206052950706604665683883535308339903041149603640542296582195194167760463895187978971892460911331730383207738040075241145556772708740392052465391351171291698752561738284967547014085064189543355551097973514279343383240051951456215632953161424297583721351719987517360566496142291647846796301700181761191617377456345921269251814703290426155178291241019069103956463220924272620487362721375375392357625971153939595154773349199121692177623848694291956904649063898331670703292156726969143148102571521341157572619681643199318067236362437719589859581754497644665233936295918086699889749966333333551529184286692080135834562443962404240202861144406762725716445921402234207009019273396212229154687540648970298964940077323354797643759187199947308543521835505682652991730440757969743392425245403607826578172217711215372263474077690953491283869618765381498678880975191053037295392705500899265338147673390440632157976632188763303145678803018018690264417709263483397863485921188353580086307394212712876620307098020483533177161665957203944133180809101441827468464761045991336053423147299016896076375474914448538813607687460531789416523491718897205731938750839878173832873092209991871888720040697724892284772838134396775516354325792898602990998382333692398740021272733032661487347781313243264709506819767790280162876297491732219797199543189411081101435214489851972809892722412967098751838237167969517725625007994767425190162100903979450412653126314723255789258609317294458805389416606807430862301170864231929173591799587236148666476900901087159426255674153050573783938859237651891420690700691266605877521379035449577769229852132946733651624066814499539969621880322091721544238787198892427615876099096957154020721122549353005031573129632183059374347491504157103900668177834570039542213230867144574303475911707017796690424476459016871923541835094438830027971010168796534283414781630242982063147182549992761892662450600446898842255833754141510530446639863153176919921624313727765487708668952648818789275637037123701285847587940651431371423300855331871586405709463289443756662137836898892985498908015818157304246700766317768732987909107356147786306178161563093322322751194992231087908291290852307123506639746857582410774948884154388673103855411573492628509235974145884026715427824551528313572569815334122578586411251748345214880370572596322039575967913179691640341917536182078852964631147815405662834524544620434951308888864081461499642480244488103363170941190443826900629359770120392812201737963412853910891676897850970367607172121999274768087539920539798210003841267649070364893602855512620236628274475728274318557514220231541891589061134801771375269613064576971141324604765771230745999881878217410135451273253670740620129748482595214346277020927424025188892596084338291247204549335319085740280872187252576282948032322030213702282496450387329364947025629441756927489739006772250864165771637585767269123317513608740441468728668981745439073146244871816918431029248770201855336682290530010151329984623522570422307059449353895383173925948081009915908304894927302010169481196512225617966026004566863186383086996077194114826705788448874014092953642668353437550386504548907551755430827962153996649620527352577251100299916050561490211705570235442281506052394740520936369787017953904475492544822405390493957034670929046437435454503911067774030899545875586339246076059082783169303717855751605654364787402109704847821054900819925844378292417438147429593229849832508828401151756450058968703279787534337918741459339667124241215936758843264062985929839174748053238423872591020159212099055887109221803902170166610971879960160856958283242819746673962228724933442466283206829475376821752872451683472001882950378322136708237331991435268682174103098969099663566399912373274870263236539459004235261975761633378638194996061225196673754909446730133245259242247649377338593703508058529017106442437947039867439847014760394960436986349010381608822501615412544592936862658565326759026070621826668061909956736195073284306568108471551713566780844635116619254894133609481424952540408346252747058709794596945540678970394408962262195425376791349217116945308297623049209959934631854970925931703197824240905418897785012868698490892425043945278377275086200497806841390269087561593705663683561772092029328634697212202561751389137228321255190334331907444013713276850331780944679749066021699762727425837183578224786871317690576320344321174403021834127224756796997556589120144730155498809564014981985360666234784456925825618716843827741614387755508928003262235309528802916991503466706052249744257153630182502181703407551215239276013773365629316999588410904323541604785652699201195327888849876205798470718152682813692391078409474528250402809264618925272960245353877683354412196003627827358198986966372112819974062135592943426038080957911702430206280509657956007334060548878675174244453291030052926671277722826575011414325544083907557160911048026911228733812243650584115214665879330657377354039527638473808701416558915541721532776875916761660740773094588755534746504469911515203612511904509490776146157334202292788589793744045209102217387849631028256643316150854107495127292374259459757484219470370832208448633979010388656197446152978323943739706770646521044902523083311640333027064122286726484454539041140569502258571404881140770809568995447024734391808586903571847475738263434786265424174863219867306981993982378459702752906879680183612407271783202337197896475265037847573887573342809019612466489114558731345177603364164729721765572921337289193224414065902643365343900398074321468868717913163104351221699951576913243894313178672415570940505820087530663137232576013101506957715224761783130778707354967867805338948467965772320686361180953314272440589446777886065192257775549217483053927413785478775550141888276896889621789958828213369062508199311997818906236605614683583164864184921190841405391955056680394023165109634081000376352718722185207646672226296041149698450658993552850474606861797913076589798930554651936806097906559157032498877502976914351997861979800331437364246722294656778437654738466357235725045391585839251787229265210334535033697469195389817041428885624532792164199327895110675335666595582812002679433902898500732886500796021935756977948758083374408903422902479029327515105801335275076324492740168101528400220105769204058500822469954338323449558301357322072725276063441870951365604236621186739838269828983400587532049947496227208521860941654606154432970599211634858363020545993931594304770951289698593665694826945745935636203826495521500620232869693065024116213484826421283199800786133261018228499210656251655445050591025576005287939261888402930119193947333415303642477297609261215036523947495074402170509115733647276870139983636877978566232708282642945839152174441285480703149409338303487532592366140955296476099502991634449296312292017738273112460980701291453280785559027208448305246696423360381671080669380080981788517661472660502322271128964128613702603508600196778212212009536731386505394108781070448355000299205708121426824102969115637937959614154728978332960010861641787748331763794740270690825713176321165959374179379576080574221674777964212730235142092816649916315202789298167320666261920381297844956829893790264434341748634081067119008542184005192908505568533579880770324857195669222131565667482791511079871168639258682647699860477496164003981586677536264194725076320665355326703171377956363430287636643238843832305779387843734455207646497202306836395944548890915842413257480529261572083296680604015796001781955962883755837031046785481462749235409668599430813012076108664002317670033357077908563765830795609728500894819868119966573090188578598014420687394260669641482195888827105728341167729536218435465611322169977754707916467048930256656115509467886805717239927883911458398241524089034653628314501062806833531556563664884448680597628806500675764813439965802293937424100110573875797754174497064334379815099187770411060664051228699871487338343572442614700917542157285473474836437082617687677442035604814987594680344499406734748578479995786768757881158014788023863202013559682322028797443642976126122854590175537155398568758880005083853738957258041298594002977457627009642664277023875913928889486021831726865607270504980289216525774265879667593223922143701080634152182930070447139659746171066456465614939138813699726570409398546422292901402446447724142297526858515491177386535318282055681027881208099340804366148246933719148344568561595600877106778717680619774888363718859972158165114870026660764570517601640327342242882027999432807966398279213022186493614655239035321781327338969573278994252380485045583098847842211191854546977225613841477852698463789035564067351199894880312173554143520451741839145811430522315867791797086550973056057828196066286281250756860169387821926525190881670556905098931129384043653875364669204074959670070925375539607273399599649283505824368149869946065371025647554870959447243531565964769717292879571719890261464830013195797117274109588032605266137818847272708831735512461309896020680743593621702124974833126681005363945072416193769784215255615138252040756121971217072647898389409350440470610879825137259719072191007547730516778887500540162735343095849997742104477390184820626105941167085518143090431983802645763260363024162598071524648464627310277340224720585436455749039811841309598144065395457673844931837495390900260799197803260811165294148493753779380315209465718027690305419396533889240525869068223294058219669172872455720844848743553259765515666791110181221048328342230246911015401339144586759418878270656800898279375702982644770043065756030186659509813997879086247169054922418620747794760057013998287912530544497386410556449219060118371046094186404201634573066562144060054952492324879204177112722015151903128157765574600540841076860031725224404938196103012405505618334776132607220209125014869095405377519832109025967143732576894604913475900620110952730400672146683495589617809968585763510265080589216280458736178086813033813289617938947320117050448439768401230453285834179607689322439182968708391814423530928390025695987254981436958836899294012121780157062945426224460445121778433398702049541683428302149541371846602687127004815052053051855310867751077239674592385248550342305074988440505061862059723281127491113482938388832122759917421603122704884977969014347592205049716137141830831984695106155337510812858392413958421367421918419215394070900738244921448141999325474463874834601854348880663385245676188390229395489842532743179780320096343276076169172342487668467230141525238319471544532620098724462890685640171000093286611553950846074730506383583002232486493848036816297834212226990223903969710425053517051845522858663658410251435631673178119529043799973887924646136291678119671611167812122526636673336522082394464678302609307682392148944915020961431201559637291583385885022591217276256490227468268349496617532153398398221356444526187974714099254939184847765515997034977402786339145284142241988307217841724451655686845533408490931287727461296162345032848755359720793797198092512896934404458815282146846243038117626157819368848125965874557506976203248644560125066666005888268038396960966057920247416158559469032812081280010248043565494132035863278590337506213704049684762643196203248617075807389341640863984414319979815452048849961719159629609602810895085753713908673913310323391972975060329709597836842876055072453369459244716306791520963295289111724635056748907394379618884352988537088702712963979776795986742300442134047556820374780808430700948307106311349648073319125396526733547964459843354648676496781092203040101068029413954320107090338766101204263506653306678377058273437324697058711314535209094668690719603558782746452668937458517695568803361127719728620558038652988692843680622779841482669394766983523042453146501886569840836879809342442514090151823353368983478783857528986171178372726605077166085411945760964649038291488294229618429816954568887342754391127590229115106897590171497629854936923106913129418803545226935694662430796361814664962631973450964303490455208556553569461900363712708862530758101247579200056182505757400604892174570140053375612125296572583042805714055273796493645874253867930772257171748749478242898726067382491883261869356212656903642711604582719374558168261074443879023845393825445614054914918298009621625221663422486198510675865076897878421985298014478019080748619346178179744700535646029419603829307806029807540083879542272072263468731837681617328330117459749548915000580178518861998039079131203532502291744474448147394827977045805018642202330674196329357572246127871144939996730922786637634917289844221607190554540793357553292472884797433962308449534873915523820506125646506387664621516854427768931402971905822408375029201074023944402311824804298838639385761812331827820785856469499367009259222925790968871150261911106886945658286179972172211684201836252787110146390451445554102660518131646967337453048563961737171828349800462299578033930922293850573876135192672301750300004151740112377638134239850780143445409825070524008250454885168517568880520733079383471110469771602510664852384718043227809584993798345243848490654088548548135371349394980510369150356136710366007823287986119153480754876975101929089791840645406511812887170097200569606157321894064773357333681821255071114141672565050254540047310217625576219453655270569158820450809510292572573837423296326808183082269283350954193317897836975386567117786157874615783771153450247764762578257152678563105085011436898561535954940146283578882031743757918969574427786764710676166969608172151483022837029590857112373355124243512834487886365998839257670610058439248591975602579035571355811367230783048647134606185020925865138126926228759114986164352787382115486353072786594705099310296497698274135513809078772932236504079219646998219143827483765858548416768903513239871100469764056226654076004674847315235339451777144928268343307614578086481423304501110482467263459182362109418262717239045630695021928437674928729154428991239845413314553545816324994992131001761542821456469118796563853586866297703603123796697212747979381956207732546783704371517380964211778584009258117537960217550143095260198776200857304174901968980245934279798657263425989816920530073385158856688827888215408144818002491365876321780852798222947678056860797849204143004512828872506915362674997599312609468568405279205670064522748459010166286466824718507297796655788269246363891679259936090618144967922702922829869636423736381319976566574344742835683629363493547189044394702298668889103165609506905817456132725896144446969010403020361818387035325808290100797719176111233475734972187404239588388664586543680454080131798712328045488127509367280135108246328344210607893328460094548505604578863302581487484283382997237359285724169837197334675927250579315262268180240191050060236114869746511828833081457815320249252601683972980720625410171590283803651008863185318471270654991782436563101983755037121725905824053360071102132147248027793272826359956537465352102051518384851380589185345936177779531233047980196276721483374497224831513916892082132839016373518271925607016789703422864562763262942648899939142994659831097665453736135435672345955145107963551460749006337972990175581203378951099507410063921726768497638005220591979572431492365029063762527826300993727682909990756490881808913479501264986867061642583931434811558584355568754422601151181918279488054938096120548895451380836613895506200481572196580750186338312199029514093796192788271808797162767657102395600164632529106762530475300054772905659912419391631007140962903838272347550927837871878100590796890657302396003326035612266407866747235451259316438912235794407358146435339408684048156234500110523874873054927450783205034658421779477930362165227112978720613721183664492487461139513990442707140432937956929310861419251802186964066457683174864075278739657923766106481769326787867459601765300118163853794692734330545270749811106230988603854030831508070435000266396724793025998186193924968652494363596966624690221317031188095537344321943553322781324947058467118743659598988995567034864111937086665334835231671543354729104163971937156894638806822729855076040641996640819313564640726622419911211089500146826961113687749776893680269200664462508652175967054222325475720018796079129192276958272451449714705669494879824749936713899154186541095984898204963319365135654808420650537754679794057738869048966413803665724284840503432962707340480272915781482152449477194112978326452241518979841465611073257247305841028429737415641419955214216086669925379454372962802927431129694765472540709820501460179860884735610555690725691829306090409926914469213380670001411687203298898284472591072807541013471220449110022755028763773516059761109780690753852830851637458840055291099706858799977137958136661223209948864347629389733306247267385977601943172576630479943276625858267376671987565801234091333052129193662733577928595093243285856651605494339515313542544800546918173321657726760983446487308333113182332282536182939934747893872996804443350056902895855412592755344849535981754942980449558814946218002471148019456072250451688453241869249222192410951225487776602713319888017212094647626057583576997125925912593031353294269379635650917318046091493195376069145325634809302663722839292545694629436228714905598448581222465089930294249580171062940050765604635198579624307126488541115348458044761137405043251992535071324936297495000115405321322774664457868078711992313151219780603547169355372406376448550290774769477679136094248455999755788059075554881954443795513871603658734009439086410402468283071611124688079408707393188930179765138682392316622996513907048792228117262976720900791017324506590384695177276393760430950562845932912630313068111007013537405828514932579596790243793121149073143084515379185951497195136546634055584615470133227174918611194287302092450283390190304481243409391435461542216729044829329148960547637270783426121639045920205035606174594043500823088811343554760013274813567329220298362604451853712849269685802078755589839054328106870153889593439629200565782804463769055894732183015783054473254411189760246247106389000083634416745849486836344550930350206745898468049640283796060342133487442926516382050916041544387932427027364994094159379972205435643939038202573420163388692227837108221049740301260855976226875354132578880526832322409178086481476614995883667816460309865576718830402656305071181491901681476029073468624980030428352339874845009696050212967809889381075134412785199527131112836760684915312529141129116251170807376083610119881200175260197605325878787432094274242708299006102626350173690465429038777911733999522591544255881272003999082694412507610334339449185080507104994359980428905487574259814046141921975616989981251192434950855600613186701202592144912967127725424516135555911624862949283882043746194218534984771593725323509985626289715903463691333747762046212860959625540409359219109630669612875317304367497025521560481940614806599113284786607331946779499564930158553097798782880151166523091031058666375375298996376365871049752842560664123858143770929171131474138456331678322964576980911831730466582928834870136278282156051177926681219202074828451344330869376999348598478268862322249831433559293012384913162011186496725411476533821953477148342778247835675303565634681404905034212507231009950147423577700031306341189581911856832464978300641366653063475171281135618474065970255015351755947793498745948689790211018840624832848817430876929425678234667511788552199796004939876886436293628498322374313698935094755529261934159726816177596083920907062189431737383885652965949521686728247966071519274635073049254828359260825059168317265772754898469438818835715772230294366609381452665375411283960432805657793694592809335290053892592730685626065292330133216658520910320688449835191601819515361817504948736419262818060917460808645491020444809414981751601784265887050987031883582209195951042247666937077666869731318020110051931306931410807721043059259908772929781108543884898132393988126813944361689831642058336918176728332031976935103812497983563609588268471051391375678290050512628151220342068452196545366216223514574302892209234144060932502230163154312700961704105426075381840785492298628035041668941892744352840357268190587365177495125042064528688511162434333237718099872056366729485075739005959745938774549369756152919840879637880510067724441334786390100644997607065421181142269185184734350243875027544310796809828077256922267450481671860014994349022482895038631034898611545019195397123770275177535749270122051183118582947704275367376054766103873317260001631183797671637549502000381334602809400963493341562037197686600310130214971333982823316265254373264332306753505101418097351559547846049813847208939277647661270946200842367083821051717912335437327041660517992438132049979525421998167070287037023215928411551709797006370721317854521956003823572827508576818034850638522999410198382447680985857151584888203681706596294518533125125327076518947723235141585518848974699542678562845966061662655558127440178642990143677708528177109026964131752746611393265448342848052780738099705469020476932316514363560102266109432512326668233025875375895996996155706431349236784976626902531261820767995285575413440457154002594477733129427915396110424335931550535860727756037786676416847150710795797955654034134994875294966609463917433700001945533650801708892220540949365116343885378933430457400524178750520455190803708488182584993735537480808430784622849141920915467424384444731446478863287303385387544346468428780167541991328988955397724336298241615644716611059869224427317525258193177026543541138666738502297224441395939955423675371764245630612008563435931699816864734437654687249909397762102411203397218135820649539752134910238316109860170556164155440987714160081143566634394526486362074144338914237717386954935784984659576299951721135925685015628223640711612329717508339200394988591650454554026723911463533723108488518952794270384371429461787077979227430807347404330438127987422839470458422645379246344154219366628909233427844520171747686530311168016410844474047107961556028775789579852954255879194150965452315439207334571628416544621408567802369288798356329908404143749354003843777216820302012282221711894328064079183789615346901190329774053819095765145382109099895731836528706079859094574175219388454504011178605149744562557774736054052917538866587183842071319729351034225968382732256280502955437819271806113375746093872318631589663941853779117695612648539843875386401069846852902588629335181909106982704899443988757853131237359476003434033453612962864552933942805735296965860908509553148897214093381117664998219634664937498492819901104047662687837347692540165227556036193230497111224293934278008070281595019829117953279360008391578419712473108539193313310649278728520504963960886229752148732141053100332590902454544473161750963387609183057959791575172973596129560879548586670177151377226418380177084768722241962310125483842886300219336931682588628978113936731408442059887848252220854767817719166819604489788693106157763859344888376097788134952470471281044395485648968946709572681056298796922604911176005436809534006842527058265986264968392646780793292780750322904669254327997117333498041334284497715147230232726898494967633790098068005226856089011281079856719935569520706902802249592744472635299995670242877208335445741744789221486600122982592119081918215314067966435499581702274946973758378279185946184740789018211678822433500413440658882277120506862941448711053467208848653726155765735997113597809409804278299709291458234323938412893574391970383853106739616526813962697995087895176237653768296991429834083842229854186801238940756245623032508581571020556657754143544695235037802866375208307427305896537912449124955457926823491675059156769563833822104954699350669834969579550202883269661750832963432895963096261479125262398571063767100056750400667723795212824121210988580305251932960470862286007678267404702798744283262288008365259890392295579186291832486173460810929854118169508847603031225166325878964605642841075936533637650505877588822649704046330349740290830554169491110472964107656825266509038710973005926971372210285886288807917850767656712186783095093579824174143469081324034211886376017224246509917668645844375058053700282504534484567542511701323208323331854283228207979065250708962543368763123030274435941310995430242033359322506865940594273813731651309444073328579506121020693991748274066286407458550190139361166194563528782231134589790001184223613461784345768163766737333406227853533828519143311432877153453806459501140019643880287917329944895991255694322204515806904462620916897937748859125830930922067776631180668342715599437099349383926397582850574858596337204050646139130884713758088444561774114573118915288805192721008232725585480141121586769396732662087856954356602314662504301303364832889364861248144292106177197532931592997758790929290649827040196660454359495080361005794053490118174055943852824924693989139374164223191665684356238938090621009452926869337314314960117527824202083679049735673586128064944541821712554603106206482234699844478568095175147380542249910517555688018408561719925877956614646690685341495388635530544906126064638958785603968573699618605217624353125058327414760246423414669535843315373667589997980538856717838010202926341620978911859203340437056183864022323573984304355555848979858858058651232474053863564155568786806572478852732812032809320670621199238544178147304350517751113748449725748917750454636993777673023466219180454515855008915805778045700840081511211195430284176569214641438022780434443739780978865765560086224937432531479729555258802505037538751726827069526060273111913817568661155441827564050539037337837939126289552997770192314617473809262882012749102895491048720736518419889667959484027095187579561746480006853374255071593702580380488690574856828358822295658759844081730995729054670472453205075493558486601808736749861036624011442539472027034636577538016799553145998598737714480802229686231234459649226804914356495176429219315323583936335185854745165038439164008378085440952004615596301081944942832390248171312305539933974486539507971615254501036466302809720474608699154778698107462197136876046079725500303641659926014094244632249827506295199950763423157307326294989541034390749548571932699851795570494477961871703591075032249253632432821821105593615493028311646515722623191454923752101317691258395601938462607900473005280592471271939319274199156559237634777550477817099426140510294328104464370775007125382483977208018439501318507464660741855949415020686708271493299248250265192360756549934671811554389341286739915455677697651300997082177383756150808182318108965067425041415526883841386456418402258528517640269125368760670759784035878788267753771455114533470320918559070942169245613692245534449744148067063601809445263941295688363916043858220700767685046007635984550822044915385904706151045637127672187307240791534069469659008829256645936892403728817760956088680477218701490733576421907291949932913335939740965654345294302385525755469705460246086468528040487282844384125325357380541467130496500437359752870839514994049911465336545057380080217535016961174356118119870176921888229379218625369340678981003951000714202690128790282188581030039385723629070807506062756096851205966215542802684918995920618498734935355480543045232941242633864504648496903603128701560818985401279667074969946333565815961893367911599557951435423187210640574261900950760136216216406960878366072853333836726115240104674002800993446587408410991349729169575473822912905701687823280412807296510337710268442974259881789612582860371120859015851694650813622925786103568315447517870339116431572065693783669200541607323813176093376263930272746759493577751916713097009440555720964398947241366083757023339237990137762460824706949608290748602533819484311823279944298310902776003766907699785602617337078082783100833119132823958817935179679559315288538540920310971584314875093184520314795077580223006708522198443000523575421283665258616740525235706553011199399359993087371582128392749893673408198442950413116643605812246653959219169450868201087859618728119841919452450650024641820519020503124152974904858499293633900883608307497430431474100330255388319746521565520307926497877188194685138177227614570562218710796448307509065919800104279948734910627549684893529037225254322534749414388764397009542803524238847487691779424059820840872633604971474639301989305940491599490910572629202200646256906224272844625574933194965658641756228685531068039771040928423375927897869458850261361619908301195847233893291680570313630181710524958011274825650995939650775117768886928052089251604416902210226348235732864495922726685635859273253534106545477260984369922858155925001810591768940966580743589071070959809091997279879761642353292581933107187682283700301302411785880338864612328135709101635105681373775509193462744973633392540071514249084322645931341339501603233685969310661022869702054692474652425309131120909424645841365815064661987221707499685952774322011895681819850161822213720423600121496271781435960956249210390934281460110766623671630145493919362317867351054398607868309722034301708971811422567726556489957047535576949628042643311023145222167289171246956924915854780108465266220046527323291628548761239055032307451577343894349734851557221331035759514912815764703459914755939550111397821349870103648387941542900622055533886919487403237140211885366769701947839956711204945157616195454801485125092804567981913607642704023774679716358885995358185632116342620961022235643539738577407643168638639974530992690753154215455141891706377381783389728490593620568499700055074026706421651456142232544771825759073865670811275649820881091497406210349663347687449596279208501609860863652322996777668143403313990605047119538405199713585814607993832005256259706991003477638213885360308596674099106167991305375991420892430953170142359557344582350459260965917815080979488991226955879857453125743491205505312917938877609741265189428204559505370108650972079238607612560388827637706369741510718957416936973258490274334402230859313686582339713043228832016866099717162958862064803041471825148101889597924643502604767268864688801279360398010491648708482949520843967355035536520359267957568335196022843496261698910959187758661648238648782335403822405130834928093794321191822959840045266558019037081660124720452343987174521339369099797477543836079203628966970150675599431094615108854555426656339563812283081153516352029877772399753027786750689552342648992973404996952480193980147645345730067765030554179150291505099142549084215855571633416197893041142025369986721624641819970615365981149910096506978635782236705161413332460238850463841985981876637783439617004068111452510967101826805170315990679464283784894328724008894627712835107977602034206827910747067216000089416906079799792109164186224275829788970493390671638309768208617665175132854921305095487126672634763988330364211124196296032232852430235820923594563439862835518059323529389629776597655246483594415295689015021593124372770095643378637506984105384392589056174810279387864220892388123203464993973690251490800038357455903726532191983598231602694836066999889085995878438493108661864422454482383714838664595187238385933510625996725242555325851383387188057877276130444648457692228948435649204470414084120995660857665573515377193827067296458585736530316871259334130703044214975064934335286121876548940036099554688920798059257323704135372093062260481575818273304003796482008914687007002046014075761288021868719028664014264795593288230761903092678041545503699116384800459557363742661433859479579462888071055684363699619945132142448758001821721216740564990645798145915326284484877221865159809770797428319013413468441055453264650632999371759788223391119875974487529705814657927142126782643385168115045429458767665502285974454907532427582245666727640367655909728967592644960868269997534732667830460240004785119327728505508546143712713614548284979430305597795219776306712963248982931685718711065699590056609182250736676798003500987808164500428425156339136070226185495926542742343949038073365888034664350060078331816126944135667915459310929003177917420521555382268146087283269463688998503949773518954005373549208002547630870954985923158149161820148520641715147942639665678882540706220741684100949791638081015031308707176901239253610481223066331522702891829776291918047329618720835702826382227058829979781099523856141005032316930674222699272519820900936301872615017353319961654052587042176020222517484081083476274852380889876604673743662111068540714937661052710116267301165336502212825991080828251494508470853639474393184454400320781730512555147536693807319178959515412027164122856929990476831428424018917603454787491966169164006377212837165348641584981709375648276890116892730924898693329846521939642404705283361956420844001873822836872822253443792322675644829762624983208914993812696001848423410326986874710183669584263910044800663381333539940851971847537728696009613378549013281837252869836813269894900822781712556840209533110666990640517527618768843444460985911041061539849158180024207612904076608564184009867323638877186189112044698121667722006047359373913123893346688467107373086811112757807089621382577037714601470419087281469747714008867377723882556590789326621134230640313665631764966055602027726476619823761280791572681384850423655347951399233115124618051633558240565277495057443554663621374610170732895186149318865343312739453751876153199463709931534097434169474211505395261108135635680867585328964843073475268587719646731163341065509746146775120717985924584648148386684480103658205860943895268262743536128531533358762765527829760581183332137670775495761319114003391244165644292468286628480720759222279048147757713181486478899460105332704888417490771115245324090124181544106945758012386027563795389768129034994890873007091435796970382530231460574778969640836827729954204341063253268788442732814217809457377644396082439878508536608061784056588398511887316819724587241700036520172780714196397992778743541236606957965363995240252455624182334137135508030781914926728940827650035568925463629123085891721252298236345498862951499570141169264780116262352693978255324490778660984401599856545954882545412803691636444068686800001937413127376654250380164158788058056734260665126125763296570686356177681357946386795840909770342055282637679975412899989071943317203209937555461671360060413960402074727928700775228799003579728590003372974504087777932618248223995934782330410504489436804468894350134457807413699390162910162441013844451015576620864444155080677471918738447110422526734886582428934978952759672095264278246208835795369721907599145531394839540858951713541806856970063329671217969302592272560541032091679092770994131650674220695700276918036608337582830379392892933568541581325350783834281309529448725204622236448729287979838277430058170300593655732713240605290453401061364792223732937931182906197576103259031381834283949901386895223277415567739981597965073457221463527602925433726700929757092714220072737898218308315620314916536704204047460628604575410072608085747300882007089078869604963268363765503940360070301333603322926219821173156959729086555398767675550993775141152318753902004112346290717388946194478448973290323197991256147723017411146649542045232571268733484351629196352627263162730161865564467344431366081768001993408112444271617106323905978391905754661362585539179674988137563485994562818701462519114659203866929085912059493606685203718467192024511018269069023205037172527740115771715670218336996006784566804590792859239095978125993872470667153076571372119551175913225851121699347760801331197910444685425772918101863893972637437440075070216654372115155158285720713373484531969933019185958166606903663434076884065638430536137097419794412354412096735185563493551567274531668459307950428709701639209495123684745583428212433850319296945724493557620887284929358138438879621762275372632309512538819061506009191399773189654534304931834633006025352013388282969611401418762417726743649455090475349595818151931022468901542861631756132890839720515390232687772767057066496805484857907659892859307024785029538492026558518891557826143455567878414640248931365194405686281576118665556832976291505092062311325862357035914400878039460732091466346439824505443729446250304065769466185874646819836034871595094760909312512029887245417117728152286682802534751462440242282636091493540468871721401156149622519742858071474521245746887161884739169334576161365898588094553137787175675501525376796366102890342410805045966917267616332447451877987193623743693234124875193458416192052955431579356062291719915656700133972798383761516819391985052992285751715263314886807302197235327795388666366027316251858709758233512089363367256026295364417053312184831037181370878861104361563595447909810569368955205549649869229336752888884665030414467298841812113603546573214571724194102355964919483903619281596785957247705930865468864356399172168301654315056553653999399332915349673517114971433447484697137843585437176566267453434697516113076033337794006920993627397873858098670291945117173210552331728235169466344919812663926209148484107481373311809463753890458404548779257262834035731489947628947918752702870783937508776470024621119661600898812250306589623641058570726254354001530306958498831791474996787498805170143201538983544402414571590561087484498391400768844522524952616003362043228854911923450985393540237133873471551211342641571396076950180839770046664416035616855399154902268131403320161070162911830605750132096827886346841162501031932344497349990383456893780728412942201120531374519309656169156441706155466864560207884190555078184935155232468394101159784268959567750988914073008160379133766690326068155241407677698946288108949064994179530516115222259430448494597460906201212058301760076062081926976055044869323530757858818736638511298093934422107584574960581520142174676071595277671015515543490480151299210642073074858336760968990596419979028659763504021473333285610293520566197679055126485278022845120157835225721785264431281953705770539586590017072119092508052004483108411061465249692529989345980760112298204589516030563837782347679183573995941262496340526626324867375313529172996162612757963770132189666561783686360505604478878179804979358203449052057699573735453971084417993453838614568964685636367058188632116667577794057194246893357864519996826882079964533184635082081183731374995144392171250906547511254514054544556746730212555579895551486605944568383376215143199691729826790836879394283117085042944548986113280286227885677959959370903784104996815990702620082633040868077580057605430752370889819044585905385022815189496003293461731881550210032864795951683169754722376266948462313438197866675539423971396184882654696773589443210102419798223899386701909341847647191271501189774781574977470720681765804583070578621293783632408355458170820687031029075055762722562309733071174627713345067237683567605594860583836164290103379967190837817348299040850453728287757721775311445032339887879131026268751787497768490884570735514570825158972840173381925907595311412657229677537500227827990083011926759907851748701137001664094303052910085291229825548579561842764897562481661552368452893813094753161736614784409555454469204135498677128381588603619300009457488054261494925461954391892654467779139429502114204095340582360665685591969045325387911945479457598614366159390447561454664746988802611575512857313935326047927413919025692851340673111856082954158515034187946763558101569921217267641737219177001935549363232923268533389947705654663332059734658653860044210850963272048475898242129015401134745717193814083376933898156022066154229914949462726206223501058635631397461612979037594221358647022696237527668824039299132671671835517129414663602241533596061902339414433350213186568879687380267407503909353571544754948481530746712533248535803832798426894476716040127862652297429439803733819357453178131719978079538248655279206700884293286002788255532139871513544194272301576518483081365715118075021251611569373982116176583471926679393827707782829646316041261802105292154562001381539941605391628843559262686056692940229452770865180925216039201339412319317643712231996696764481474861605107383736426880535649640880198025594472204620679938457878256002660639221810436964348957928873441964297734510786317648267744009268492415506977084624638855681812165265561616110170271980554023077014393071698199879758847129225155317279287027684477587661536934311978235268286885467756600180136061677450385629346451960177735037225481613613102169012128748477506437429465806318704629690005571354018685087757545368394734445111653893430023227194578561668984540093976446838164157075028402820554524529705052704421521914082833042451069416897926078820768400451990026061655157382499575806557138542431972179999849315015378220575305218113176678577688217886533368390582367652774614494954375837308514734979922135048075259003732012087509591626682781138515713082982403088821073804274661529742554504408027144484704333741718125032265862787813937712946974183434696191763026825586247269041580871111410203359053916286556137404712773000547405072392932001234400571550078609345579269824817950650705367752426492225888357352000432707806681955564832817228377350208762269840474695402692964093968350348258368342486949901683773632514667997114024448247584343440096507177486607263217625294330162816826635417412369036532115012723262246250467254174975349770458115029399342380436216021468196378522131908713591194537276151228408326243028424411828205598319189383451469216250658818970826536881819388562705078447133288426166751431998551915463786134239481645899733982773175719282718544037267698184106177516228738057932973902298876380175581314702913219774068875661694749049192208591941017635537978747974383326439463823088057093882726261237732675028003680690981998286086284663845107835514492981746023778452340359465334997588875949196315511573441617757528041386554235535434085929805992896516709455077682620511261891438041781244644967329679404277369203736249009646737651561791524520380030415743509195190879767379105213631667584328066118274216014202809030860947561374793541102810591311143492410392495482834759005535531324051051528258452026928643680909428032175247427792399701238365707484718303156453407820541923967898783247914096773549607445831174020482669441252638717881504556469892518045453577903143505868581308707777392405671246761160918968867843435974207080923046947733957354587313778593899154383174467661202172157849670256339648598181643905275816487683153944772828288241949669436709013635443366056361004293405709438826016010632511662034469815897807632578577453987852227894129856545399178024431270886541736474165148337956117555635079423061555322354050530632359074375901751752701095068638445713892364168363427277421239673619507554359292733915039270747998640506601958186908577392395581493362580876041047348336996265174500863979185703082121896017572016101315057183170756988951369341305948699993834480490708251360822348447980780197390989136700883464075934652453332530890576791231727855668842884349432584375722338497421133339424173052268834210344412012766604208249213397080142228789721567937461709093184568759354923440434875539007045941095727930206666521573607096922792286204007170189595781553737518253021613253869986562167230412501293965472941649492745699731121980376205981599378593450593810567908031573473393541559606544003272918383192084028752102259780912686991831941769220096719844743128474665685344813953896325493615907161976004065912978773990824062528625998814089118534700720181021032570593988768437636514166926109646131449070533053145328193443345579253724303800780712765108818165361807259173714698426620078311936534216688408195981225007121031468725323342257715621910210667858983478607492196474296235521254937229286313596761060467145640960275012179143186389768015723613790214524383679615253139603376974833564219838452995040972086555555433730192102234178314938891366449576081096753665609041653509816028339080477884417080622990448731051207994346951180526835477279060038006148845711141201688783881695131846662464163829480334269945921148372681233553249360796628593670051364158018048319955009659415263569518946400063448987865899454400980164079170611884244914976272171915054124113668459212729030095640895081909814873042306853555678452992307661106640374021898022297174818428152675025435354420182222141440152261601152449783203182105166305667167257888243446720285126099040161067521355412720078667892815135817141800590941129089507604442071927653001261731845018525835275192040073669482676555454397644393600282728831486419852840321485217599068341577741289399694493613707941613150426180260890154390938846250736638243248408202790171124321187052774570136093640249345899365820826681146562848784267840156595592868839899702389756136439121456764370956519261941553282612001751836228493281758220318306625556216785253855709208815164325745344773214349404275489493979776004734185697705470669129385617716081240922970799366860321492832030457903450655577180602930749091124891279592703451565329322971782871549733029826286875237040708421214769544326948254373900822724434419799549206286458940298472942979965346861886759757277147314489780029233488366025533493479077305790241810670727513613806994195475728321588146318842758145824593931852201307341823871730223506826985659291214878701944333852062024947517742453013692619134213141139766335534402067292969630814393774335361324608999071857413420838768270756434469298982857843761065364377101725267634847447933398433301148638382061851918919272654911979047495373162537675056806133111682002749397894666780452178209945621696513289317498929297317068868084125638798331096128215155983036375491807805308546320927649615479461980346886146611380827970995224505678470817476842169871008604730702239642463954830137488281209281941551237605832150464598456352106754455343228762031209641726255503509109991480823748348494481077815222606046377857528817275690616175249455302570837220774085040224312703097313945728672357494873450709158624857896335315406745377462597695153877012545850662010424101764377233855190913796344121789197581845876291164926818567977778984476625522276481700806712226539888661779099470531070767463300119118129414251161465412746877291030701778561985671615685689977574029594658817793915247169337218872022630061802631355596194520003080794369563633904569278817171406165771278554853924994116767987326282932849262206452163427236151091596359046540674904908237747306459187468090434623175351528101288316398492598049274713557371979967927235955915039821175106032343129648887532213623157295457134833752651526513083546520218694247215314626600841571645656512012259501175013616813885154716396982230032985813805332033759189776384279612636184457126179153493554469167876863387839804699541269541340852011150088619956137617075359969909319084437379614649621620495436062105239526112571508019366726132084907571429637665401446359139388699078863149367882048078566732417099235077026978468545162611491372637899418855203322499091296152349938287067020746525443364378536864748921769010796721873631279833154328675906488364019061568962686119740864667287491012041313857179181320826016679150520808068114752649258221350381567423302613367320580100313626544344450440983417093645799853311921714624056768989246241427058424403809531190208624281570684747163205690669573562692984564899545315336868921216685306136206061574246610131808597293916603231149010621249613734133629367687112056911370769948203802067840314014607805650004786411947711798281904083618097083051159363949583310841017792083873063394707814315161912687505892454968997350277170971996759712033878852971285454707549871237303870254852556702681688471113532978005722147191949830345849531238139730784598967282177568032687669889137475452165282790447177044730575163274494378957403878116833855647361202097628207435514590864929068202557287712269634705133313825799264801296160107701876424696659409380594354139869956452654625052393727774261423572460910440483231864382249740794384519435717785921393389380221715834029496706127738004487571879098077044376571983945442659152561117301560643535614018695421719668276119467416740136209548365273782884237121362377285306589165793938588716067260750283355338709403703155320823233295711952561334406731361220830549151212269370323974104786452895960284629626202163209992508083237552077568896033858083016121795981309565322380251624170797601105645848196834729059464162703336014539891701471430239864857014511581908756207671033455843234077698510496943927476756945632043093254152217026000178714694877444090685980969724811694359307578416141275796397123914465127985723894162969877524055558536797869901063490507571551974995228207427334323482076254859565283267610303511695539309312579072841171143342946916147949586767703826339950936061048554369444823468004511328326162611716920451143386283756392409964583722896210469081392590784770421766669924429795148927917683199738911982623151934172430764958423614526255679539359824794917613500455151438396849069868391440371541274052777624784479720004864948436695387595081892954134732635998259971717778523867383489611101571571304374531449314838705303665337856751153873239525030837357431745651259496238145780650579819339521592717646140653612552557785396062458774615794508129981720885798840429334886643121258045698047528247715986978502920062584761595080598690285625190202358352976970006191223598273709549806275370101879185145996574896136597350749787974095784301311329736808597264526170324873244260717714657379139091129594092043929461572298368355260720272674779129600505191307046533502438225335969070043910567278152860291433655088488973545596875375528917863400848894845775345717584455480435853249830879121605269378611146639872271431782890159639425213814317123970308266434097866151040328099440430530599015063091239131475949199084508038682828442955023016012661906070058125827558125495188413192836458381497571036213494846712774432845512986846698586647295242819514996794840082711290751336089989805216649621446878471618990563178510574147682066422890230000468636973759603028968349392609036567358983367022746801449122485024432622641455213846416821223108174150620280356517716197847073373435308461593216289576745037369776423644096415541614925749261495573399267218189719447433013394246642272078895804197696505505065131724648322436767502405933696991588859207150838795160350870860224230201428763895503532282356399655554258844268543738595164424011156364799942361729799547362966929343221126615928213692189618600396933503575473873765559842014709840531924750275493517407953444612123518523464542636979254690440475192674385915660541224488366069783783736778632736943456296310985996419391849281320673169122908586615091391728395151362742829873439142644622565948317279138660342300511641776227946313360665291490611202872459110213738429042652811335808971286430293878614934571061180304459336058938078188106140339807337436454953310258273790331998184607390423174302798510773739753549706306868667726464677012066990053742664800616693415456582904751085400644817934727689490071823152517198884827817257872861734125669571583606377441693215095475388830140095046838423679457146966864932985572039149929243683820417909437849593223428869269429896945917756856805069450612092867126109796884176943468167901454962316305862809380907508278885135316494514209582819923595218832927877693201750543156569928366752526525351068762138649882266344285249848113843995063369359230726794457158392281592109734378866279189626225577873653657832819311412577884616189029892743833727863001555065770904688927025086557852107230804467861067422320049962766089771823785174665859596262783541797979269757173566145652113571490899996129592574248718570178373996283158432455548529241185381386631810282000039014248156177357656751496817692027305662052046528006021444825282965322749112390611000763576506588003179145712627691835907982467761763943357257896761022151832850453339205948237662938735187451902734538829935448619276428022657353162869390030878454049245165235057296121192430126770032663700959690923886053382394580341223912037313235842756942963279237023266857115133638964279436516520193981645959703043576267855070223741673556453845631632282289047034418716601239180584236639096142544560125738057175039463231494354473832441939021986561421924680807449990540816296527465706341705672592704975648772904948366286094801053169899474300922935715869808355306492470410271600304368105528394780578787768584038352515858517011753352338089942180351126990295059967052257321769430496107857406371871366015483681441350268795703701770832394062554634308780147740567521053318131046586794500488383061798699856809504488267654525864671004427682536081143009125772123524412366926012259097400606096332412900592263390398837325273769224349661426037919859436334575014805021260668049926725652757108767470409947294048409526155108990752284828027133658405752728206408769028407386443877017194164341115676996153357484520979874695824560581861929351247342889124678230937198095985612319763200943799903309614068187166773397144628124518543863382222678574884875124967575809407445064398380970871602062986438515068345329758916294622478100379932759821517903463567121117645773673025922463616977456135442394645114463929681891692349139381387934593337469519782629028698380573982155559102874549924645269997826754368452002149043959338781132029246164376526339826613821417929198666306639254268480201196006915502061181934508845552406532095840043556522700036319058711638047011966975191574118960297789151542789958846925855473922395364926820740199598789326598393538542066784724130810162974032046718914834680636884958202652424287555797344411528589730596236933564376054731659078882037316402247503591128485133210373355049189280079935930976651729418399551347430039633891285291436431096373003672387868235013733181553990677983280090908490298650262995789359613337985680346975349685355179930148948771883491558884985480526341499904066647917954798578673198160362870724068394394853234405029342633951519793870806370247922045339410907889387604017888260096303474055318330615378232262605105253653436825148304227262892982135544573799931696462985104638243568798423474217817729755695440437769638784333138448799768536623476882383487232267324631265568240248546338786450717899975112759527286306170292351969938126303025254773282188104171787738708566018949386138116947224431626422509777869103681703254482611560656079899202558366214414690174895307465469374142087290981630553624011920937188388165267018486513311061827916227876710065109489301813304866763854201314868620442901035374699939912158275843060062997971978481538107189309896713279567397351788024607844176698787478105520921265031378418593143716478034530318365681076432100419758858187602755857700507467783791519786493961728061976517795177707111101948831886890065748414381341698522881421754495823770514557173356834822581434676207217219405496674558259907244641677284292610126205554763415453882232104004949086714284753344723602264033012996973714560024653919922063630467215976819045871753485160386199122801821764127023610054936980184482600735014089747866469507002963228158516368654710291510903522524867220461990508951331441584256362580588705855089188170998121498628050220378157259791146168233388444935273611942836265586581180872588726780292228713744014589981101927087181121958017412800109240268589627553625820269317237839242638972470219230752398465728474863104658951200462114797447950004978342660171075092156894118463037425121074590550306869305462696780045031558180705159440836939633628934329488377155782046576248709704229121675737008650236803348439095487345951048941896935220477813108974968674916882915947750916033643031985846423706031431223034521545005336250645878080542759913698896604624001020122157146872398810389077399485055190008440614701316100829358735625040964243740318126784119812136006666657641733505565131210774707509270453448854287175653296164549404718451550920169676685926399143549124904595679321773734835124557087934424277457609432351192328040141583492377716889347140950142750641241612124932296132928586309674728660140032704759347316929784706943473296542398970818321434044970453485188437078177589538359854056795255501002604157086367081064648906535551941300458707333901340603415881832111209347069550308757836152023129065644920495912135769440244776838085024538238281930610932227721130751475538736703797529431475674802133147618011739924496881546168218572137163060751540482791512102071363223288157181614086239979230520749224331075668027717250606951171680828720848678852235773925510675721662068476853950841141550835148437390131844875481095470663491442550866946396596125076780883821786788105007170538681745089420005689579546653156090687479343735518361188950222465843874883583628942793153514747479348859871648397356009539690522612715824135762448876656424553678950576902941834066420449946456613611792397078103336680619645448575110246759890667132214310812235623184669154995746413626191665058107892248394370655066115688524768704926242813525298815139694951065481792541724947305955286566169243472283646487095394244788065059869383839250896525032620343338062349149843823780463751188928410125341753520351707742610708345859511678279062209765099597918233597411688201196053422858231691100100096186156710740275570977862806220375719867895554191456302331096852181673093351760087756436363462898200359894659562733295251258361557676470385500782499409216029228877307416159813417506131652168694516128020927426927993225215219838874581493819489008805860480251542280664785295591012372267561088473700636817104652592643171715761058878930936374713100421947388972591172956291804065518867917633355973382691044461100972960002389055189883761687476866230766957359621664715226804339058545223282835558135019556928001429105683226173229971880234987323893713028525581315459431708064756050145819303513525107113920793094456924971804826801085686907583159644709555795154108305004263357880334224817445429562693008853041890577565771629892907648161189478191749641027905587979115144542067870121825713364711843515847648032419366299345527094222008810117989243389305840874720373954128248205851814658011194702691862373850375959107402269635029575694863943813593277360747838599957375510113838023119815776345743932577527617084511092350122795914489334604522562207933295018059581823145035710143550388700309806619444102243869077540882501744630601415606953176203361309695247210800839618162285875656081725846553675550136306978915049999143574351183676269497565084434847529200329229673018742537375607218672314058783563310729779582977246206075072341854121808584430053341961945379990307229879911952293449363861947079580068855573910890056016143883628784935983340492856550850462673119999661604441360239215192244556695380389104030196995997478666607662865666083828245296771109880044965462193848897939251973572134412898167162633751927071682947310568593483775026375468725585160010504185739411373626836504227622358465679162486409712850942683157763533575099605416830482301924696106656023972156673765327369416895187149407536571575390146307116331630013533293611130916415521149314230180616684741880992241344467111395530346449350461267186347673493988563532651312746695089426206594678988692010606528010552740521985454570812677080596042546214522314460252172789061908521562062262664189729930089385409247788488325466277502342507310810346843530704009566654486422555198365938862542202963385792292850142913258017981455699318994532097054356600556574690423627550908490517039535601904817018925388660092739111736947203487838889928702824774211736393635149994349977336904431447793679986157643435379455479404357750701260945982503104854402690769002414408897946414166516251793748775232490984442937192138623243267950164706086731829144609038270807521201681788292397671811137072845674710490732480349387329743946483402638589611267460827776605407988834452609304592725989309547127072126896095948547162057585379194293924660119600835052765182138653544488795564464577310878971873215880909335056155393964514197925086816646125467393834113739570723332484930178632570703875791181386816491490759447348104431590640254893095721230702483694524788640847048350535732999392542859108404371177751408094352245752632880868739540838357095927177243124414784928311073741445044704777501923605228629636392199327419365777390928990468470558920543099568295280148417109652125004997079341692284524444741413145051463685634853440562891799214342249329188884756449632617716571975228525215372113188221395929101670272520043064393249112590470271888781566034798758413604346413754097329505020764406137984590313841220121768391362514977880225508265458120184640841800828653569108633651183963954722166701892743646340515096889797596573328213158117489625459168955795994802293676937214021045788839370646937005411653627599609604380585771087681303191029638119276593983248885956330298826491497608668563898348101343214306757748500660932447063867815666499453343020134051215259621812531932938964801219751388883589820494251490044714707908455909872673754919083573691110837070319515979845961968430274782726922584383569090843432370372071099303118591014099224568098781179060578683058500666784361808044479898338380437042253492846655849617290915673494385018892089847645278517954209368044487748290488995674845339766459185202055724844744451622996765802668160123323980342842170457349092022745575354432588464859080116628985045230735320635217796931278832083925529679407681396208001373655226103137767564074756800937721118687305024283801840276087879741785268365840419041603915047131362048215819032440228436136918984119359621737240680474564861969919583655539576840707399816447347177151252777873051510851243852058876359460687319919434841428648824928895932847576514853906331502804399726744618980678769968207474453911748489647274712975547409461275692207683260364257773326028692977483808642876072503890756610085479463333186780706576581622310249365793942605487864744008298546727208240229836677448930507363028250432053870959708614178774682436722224774378809613996859116229390921176957643474921171711595661028460517200266004650706308197084414981804140405324893560740331110878780359067136350629471510013887089626556788206491677039246641996621884206720316291159611746662980623923291541612393441793435035539065301635956741678885039504789748259723903179265712750425132058919720137652916723268755487811691943400357814681285017326207271617978592679818376916354070130947736306028666545003764432827625573184419894842063755894533663812806838180421537387164132437052967303621615141697524290586310359220136074033816741059725532730232771564384329076256161193798221950042222541237195839735961420556638635601840658563064619338517019470908448561145148619067456005078454151555940466494811892873077133041847487154193475168013432121044879210367712448600352033325486665469252361812363316068466378247788919088868121122624719867008955014720736265810513045390758468836889687689121927499689419981425964043411797784287371622847744667435316182017277759347408695994895290108486340501457190011514290649027230027781932178286655203794858660552049840453149911465615299535230548860753931604207849214931607417296729574237536660877226146822088411698717337182927337579916283420097637945593044932817831699122506796451030310706330826492867327257939116856586275842607521023267331141806359592472428597074131138188934182970587330557890058505792384903995017530342656038381011015526471437413544916882804975877421011861270152659092347093295983127508600046873407428381441427207481320520078254474214575744676722999818320786522276344108696720864549956431338462761073861433294448830075142772830336593393164173454776325944104427698155531638169452639573577434134855979097884165437231406432809732774650534401462141354111741825083138032398966967313581465096527959747059132982792116192553866734740555978403568578561494109070378999605657048432567604769642210416513970506773950575992594538178509487837770949332191035713703456442590663958404133307871469021071128007079885014653962411881554474717451908194514135541410354090706270071699090076108834095738299673886719319448136237516057489977490727076403831369000310747813212909298850498678910805168136814513318287464201319948603559105890744457948811331028295116993651586574041609814057166269370311188762999103519984998470327255293646918690121012062942275393756164443939639821587379572890879764401642151170040565239240458714610747197253227652447650127082656976111403863492048152903383168872349072263496603033898989373230078015735913149528672160113279718733444486027730170674767707217485377639973194625230914239450140451367083670542325525650417754248714538966146515588585624016845467725795662679517562516486904906833035624516443731503942454334993136519496004022525201128182722675369118048816958899963897375937504221174218983534020528697411340989318020925249377437179487608100774465853258630646473954731053388397396369608782330399773522835342421485731262191098522587446606561462554644662160157463670028209968644085802281343748650368855415798644823537789351117839893320026982027639925190273146511250896999276421461844050685802413490218273664771969403127923544303806116564758177386529041373544453423194036073516352242968791607550424847063050199549592223069094002347392056839488885537702872450898238263112464573071135402422628057302154447859382794882631971885993676303813957413005632897384626253354429060539866444244471923435739257056429710504566447948713423383004106915194004241167902340561480847213339620626179037386462844847178393240303260077360360730841348253961255053930530728999849051843689802497961776874049019735482521518103800537822476174267023966279729412555823682406390180542338391069379445366078321271892972916849168306120952183154625946533670661644263290981800058714796838141306939134435779557940045076105145227231167265452381037063469670970113893105125835241474310419148774432657036470528062760146568264572011649142963839778134944150183813770060763139204246540251051162296187071570516334271241426650462895847966596849819972656039404139334178619823282086801922231162721768055998841879542029332909949448142889154365005573431384652232954697554426694016714526689599652321106200522767705934203432471284045062019392968640671668836867579432202505865336940265939231907753436009198642944299252169063245887562791569137892338461925588665802993405586349244713645163009073213251749154337343384544732277619214551162316808568186622006545907334364164860364809339962439212158476511043836804964818750482485646293410253932493326752818076745355064082970153384015898578936457306423076755160330667745786216880393992703101621459686547463060597857285879615106760302215623221764078149090123244229610039307000644948145214728269267105664060435080294423202212981561270597836768565882086427428445939161345815892378749360339036406161353338644129627057658898487109356400667843037505254926666156134793097817079117831680787655771177827306796037016817523689068972431706037579161633652250079079024663907081757815147712987678427463670304391060510130974466003456275930980152602668298926375672907744298960915954712224840211975259917564540460100451747977126883005791932505128981012702196169626445425917416139975677851890772618697631827354298317574205912127489337274625459767372903291593435864641412230912076789591660715074911868091383147802931535132776148338262327711195197661186957062418192797640548749684548765303628903206476739051722413312714390526280216327064240665917655053313306301901154595265762232508706915940756244072784472337828386982488144871507852601228002319253912906510672094313170517580512968474629900324006991589614919252253172621899435114889447514846220895092391372788281757141032160701226241205118319520924241013430738849029717860736499660313286925809316207028097508073595568794149096008072009465824870554838370600769594544929889029617239236844682116357770085844625661366883694713411647031334195633399689600453436506446184119321646348101959093987878118852128002967010391376767097331194618142692497901073350165953226420117487235679177515030503798751051164803504552893169683372566404239328345288948760256187734752782876861318817149027952946336532988367434326322807189780224835984697850921121496217553483357434777970864649488845553201059283528741699211607038966754147063322163572073709296348636481257746065392516521943037762352742141160351745039860146721910971970032508163467883414324649183347614426873574724982588325273762761998403174001434696596429009265975199975022543260987277226824988923703670493589522095761362593791183700473183470872337747363756008063855776527446918071914916814751837766622278734737604146719897147064310588567401924823916455202397599812179581730174958692324131020458334071677349939125734453638915582200478905759025275856151133206129764269328944267045350552597592669413034826836539556491361572871501799720834176691184829402827384837183367318861630705566751529468993587516535675282658478084755381719896832699722758664228452682318547711708226449168811433794035070266179829937351417673034543531686873987005234729195367831132990152106374877880953767883784822461896213579749342255464144396961619118847781166508094810355919901718606034119714523293743259211526373861506453800472076985910307742177099848896163533925650282810731191772405710490773423514091076270013741499481605428886994781531598462102348415031712630643105733594265228424158671201130775891214067068276302991179583037443946254249425574913237034934318667765894298915307196717097267522674190849078143636268281465666148728736408922670045855794713836466391705550903778894037237228956152719734867918150693664499700951254564186590131209317689190645838841949523869542524710494332887356894876693208618283948681106109567207080772967946100849784382157921295424509744867881170653914123204728460028648097575326851344241825067342543847671427415634919978199525415801624035983936629327077077810351068190611773323098286885935180893927039314000029308409604844534260330590699524716774115275410749009680712524413385849410459470763625002679275060175838558253811683642623149179773503058452128136280894974939919095238664446128244144379450086683150713867012094471964539260310091806264007106609090069862486515117771194448836080371283983204611105937822890321912903235799622011032884109256342715745877860329441081046701014934491591914632441095034657068087569073167340565621389888782761270061807240275100381759266094304227776126547126903165838416270550682357093825663442849492802254009866877987778374893366865947416048044892014415668273188569917602534560243340125195442940251183288049824661254723797252262501219349117713517716267727581497406434151917427399936875757491660881475391440303162748531431403682997516745581743226137036280422315163166015239320026042370945216748799073287867282509627793234213962807207149354999790649320296118574856824642375534824882151058041993378423293689730996186529675557334154735750893511229252593316806333406023599394591899782443479264591380953058684001203927857293992998501540853095085947249563290975211353341343232332105224144845104183026298650345190520531681754775338597899008224952275493205299825790803509508403452892548172580854425446207500223741308501331952833373585915789199806218190881678806842176282544301904847393263174634582289802495594578739311013820293023922156455664836825050429827778509301707859827538086908039923298871778039492129724979911785552994034983828431744936867308892161010477209740595188097001140489150893019909658676917523573201354557992351322450164780023813820176393301973528224001318179276725892054802028985731473765680784059015670095375779358074695809752233016525399661840222826797132165080287455809463747535772432265579990432109476442772922586821791572608466832225653563150052491689803923763376729347743378358096829894999035618154732216718817168650741450563352877256740367195649767767870149319359927445387230002999982405607459389633701243589743095173088146612056043604470757618279866751861978433416439091277904000478431036603243965494036880051226017279897130050492085872564826251737723750866737414253599263760726683120517824945680193060157251834421636198988594520100878890796307947016154473714142829044794065253653342255713581057072476884502435543248125372940196186196985399953951161044572981010540707503070487341933958502380468140599891253033520682014008065152717649120277596637235839181678880906007206171543953763614715793631058973416255127862126207591036673282630223132240225412737531046892692544896721207118110235737328785605771773898979574456089312185917279114875779385318073932453245740865878498729894441261571713726263808751777714362044824019176089168524433073005559411554523074349648637575405522923751350351972564947888339815545973672609183743649222419899658095640913505447301461546855504399459104619534259820804459896497373355605183910620413566478027680759376210020729194344628084478351981386591025931767073274847067850032346188269772627206200400758237383898954017725554529704171062294839385711454608595006065234425000882255760543094550299239394347710341418266229970884511782984244314185031761219644444148200229917766183584052471003194850258103394183100854621684812850081453474679184272460777847813322881537415821071484082516525175026573289094781731653062380714405750439554611629827580730936474202952301614755465942712671778307461379015497367475367820860206129731080169034817916989347481253859889480723844193401303237001562855033931725507142110870982757623672052850778222326589520674208874691262673451233805196012905600318336147793614096147313185094689686889151710582707259831727049140806468378439467579161616257322046789649525578091080161182211742549865532746812667237323124834210528264626885265231655565064741590286384687874218346504027035343667242510685505854835022743360781995709218064694685645568559853112858528736663688499850727529266504319059042070149188033899611016347634297065244424982818249598787243682168903149384190434792709189018428306515336114492680985054428010389713241631090308172192656991451921820385484115858205335253466139851154205560585190683915717050426139985424615837173299124104123273543208255846968599514592026102942363207394387228383691142891824707182373714006789325735922412037167024310794509143169657707913214577122338912220166762313095976412576054941097320869255018655564971663918903561417301104692848042443151228297104320067142939590050489149532634611256187937932278295265275308978855730384069231447910215222133079778172808933720318031355603955367047135758702886026087370507348539984739361304581618824153638584643231657983695177991622115852666695085395781003776905786736208877160440810878442422170142061165756981100596877221733931699933837796869758195426765423258595134436236174213670965463124429226058556313309357988345381108707351081768398422562641516343041204686326479433830238204011981393215056375927243240746998472622350067789221291076678893524989858800797019408956652895914672741049570707468116169913965657791184400607796697512676156897652843037038572019258021903789435992117755143619738251692152279565098580254681920380166745619357586015886172488959093928033579904673850011180455580882566492052605964854645484390303551000440380668126516562094166721040774054568806562270160675403070520979176308780766646144245217433446815704124920760465309697897393618769456110498180876749085324252345693717853894163574400362171095817839264620834354675517138680048590314006384471792749532201813139306056029904892627505747657405125309077786254523553059182128400721202068785901305554996006792387429894621735613497766147329402107750028104056405052151000771846032102045148589538284599549756175348510623723780767050872046326171638686347690234329245517695153643081338545400814922481233523321866899230701747247697985952445339676773724055756832207754307011219485513254267832913684781799541460209661245838783197101266737115484357315102310914714676341217285669729844351346566638150789128550553830272153111994497137189643912611585243596241189137885878001083883041564558484811139197538204917888722197508413737556140638077013550861494640568664307224259151980875727936768097704654815546331770679381174100749716462327720738822476633689891744618212122580548090110262561750430900543119868662236270346408998200186253851569975117079764455104810392644363940870176323679303418856400604172386136556028230311393465054585014707445712054852863170344902334888116523221704606537333629713353937505783394845230813812286330156842637388866115885542643260493155198541919402486175211656414541485341385659241091647488481572385468979831693929059912618684006026759960097897219705575083784244522810123830272163929616825540524266026758239508411096387310857218113981150443255179430641921891346688546643118903924388800111829037414407861388661116597771772389766316072385919109248932109855463607404581828163918058542972737160805146768238480985857129639789250381433929165730441413650990307834580365675434939366331279914790176189481381966395331860342146876154359864006038113161368361113171727654744478768409233093840606467940783928523949509499436317241600031337861977379644284175945270993415392966479695378662240098625769909868319948546689286555122848967147448085326227350376751863782258501101285444003627863054124956051193467437453529009159825501210978658086135852582622764058880798687995725954297324455781934557508463033982434701942538739164516699378825143495198566611006673544032728907372656575987218426879567532535356611729885119458022067299471847907054201939602926900523877491365104228863267191715228186592315709712842615703101541976799089790013678327533257753326456106587415113170657779599108443381983599114581664153759901467645657149078230940263176426819863848898931546049243283812786797415345521118536086613110676535413905578298766916952007607331075301623003139070713921448671026904177369923272076240190622215325706095159853839174856509086860718977836038450529491439577024796113835259765248086363631744387541490767835612871930576594894805196194441491679209016650419402335313122383264893455042432738865321574797415566481607287041033703313734544753527980053257447100814265518011771758580695351481392678414616504213376056156730784246201679947258014124924889348467683484758573001330147201921059686978482658155622007493649519716155421634676240163556770831342965016225405985985407788318957142986003644921281372259327888710250163095232379367753505146902384843196928145747283384630177652429753194401314192654341936128098405101580683576029088291855246217617546015464582148586133708834807031790870457414480855253393943724237395878677041286041265597459592675864566689167276839176570633957029976207520207523529288396045743652915361193096464070030686516541614683039486171932761925938517883855489136298362577465360211589852928115406617123701469163951973717595604159201418491544346573232341414975762886243010712841713999164830228618371184870330733822718948554842577740281118158472711995625049457446982122593601442437769324012490150574430000207994498404553082525844935169338019607737746164483278959526751517653599600340132148528354365979459591736200000317049140067032554346671484716508868471593647516324268735318782499896138748961168508195492627282102347255069172258364693846894038663297172110756481346873178855055160208777820942820935440132652223827684918675048250400305797167088147816333379387907217811867448289721982230122000149500527724997616364591654141668848458504487434584928556851653799106215662451506342453138390491946963854168076210353804840905222782563789687050978317561578738142280208904660660766810156347376786668674895644500835546312396529981882716929456197416335230621433517568444683934928798760861758962393991745507352388851686229399545679702584023662877651491244576574057275625893837067915189148303090965654303987914833905375161368390857453809412057861778037638296931855059336165329509876698478156798575623456070304408125535059121354258194706751894380079040363211343519722013374567644521166208966501004146413324775858642235632741801035650292988248511116227134170962584205671973148804487147792197084452768814505496787618204415876462672354926143802681957321452796631791549437415650637042864996139375811477925458415373411928050251548678210164173415195774353733376594059487500050585873393356269532076480718915434902903177067829018888896248064234467420883243866620946259207077191346995789152697108703885134713516517955065393712016699136582937499414641352120770816840145322278782952510816105434996494190779722895761636001826349051146559219864006928249157794588070153536105418807647475157035389634434068297590297333306894884498785092078760149068978234298503958161339737495447348052463898042311937306487729656715880899219990000602857565236536008622666549701988259535658397254449058218174025693838668274063818752770212485229998537006918177228264570275866242272669885317323906227748727744560892186957466569993819004856040943845071561913489046424846512467580884571866951920060925686038959422987983856080193508850885704326189643489774119693048676420647575609507677919201990698542489835693562236415868270198501541672021415476846248424417689986297167079949856769810145896704333964800541612598923158776775455457925752310268926330809399617463026362697880188917174636524164305986620347294493302814577259975127048867694951821774781923314722240774027781765629144148547136738879872510132506859562116269746806593092094004043522440792083470518071926391110147649934181239204976637513003707737357256329046726679434180913868200252460085333532169816424602004749210369571875148649878768806743851313266141603630984410192482209055490887435605395100203944827731040511369519357383011732266594814207953548924218389936562801276123657368955083084753231053117918342595658394732344939049467911638846370668369854178414808192996394977375737220668410394029515421368924633189327746139201641661063831653018579774316928742869672798483261943403029540034095260817345823103939007733832653074284982413573141016218656852998445783799215014015786389486731953885380033857377709784685563823830124059998030924075085566884428500826843981879132869235105192410243487966364477454473253701368408575004366179177114099727411618438725605419500268963957237367844860356018790219889920045313489162332081948892722307830853341828025424696745605610551921865138016027346842984848636195617658039903904753954077955567792072452653770759335521934003274924057308446366395833183709882258850896079725025698777465569764562711009192138552873652777579104516317459445104804222419229332032860456299393942157185444727245841283396118448799404030717245390158174015637640986918740769291973149706760444782679401796156318204613685990366794458271323900450121846510246904678499765758287883143028247081545474162209707568611726957574628306574871800340031639291617105306719672687405794681469272618175313532002610976546344008054596065306722897675590865049977007181918327169422278987840901225352795669654052911821625929198921188825165115132385668464843736065496856831528825025856603874476892407139831274374788151447037058925398896864191547608629402345127453667867157433641474903825894597687495872484452447007408434538560148670840568588010032769996882000856092151913594804133116834223746841100586153080351938458860571550381188471144868397908560841701745139977393501773214933217226201903529645342390421573907490527097648263065783403390049526820630901364035310524709573827653429942677808609714520553669758994602357176027659560590469176286716204344904543377030845337755457508223616566751127699583917703230201118045076455867584818209388765186853170218445165220214976263421348881958827967903366035177167792291682364902768636367929193818109147182144070224179623158932136060535109370721201344586434014308230258497631592457691027422441937594229129109191887632264027804294125150942620775480241129973787274770524187873429589037712907215026988773644297176765369065158614346174845087021312500532442356655491303852089048619139711126821005281411758873097630684628067010844256409262849969713725040909980777279743430763812926224965048128893091351201378654046916226941939315452535182346032516816204216740214126958584018885793837753559520390205413158920871359345940879492406197704975344623285763659575938153528654565980732919970167265539961055752897259163859007244986805152030857244873046285979238007561409206327194928309351982316432187990723630312637808106494806402861857802448115461998933015930800440197319727569567152392542131739450002824459549556005332280802662498203272540109129605123418626428674820237630373867885674462343026816592923885539209994514586519757162837461332336256616213317558950840657061246525212545061063911134134736639575854243252263434757936385159645855173502880535543371764177804288630443186730990745363585920959372570367747043448606209718211536228437896853784645415530579327547086060258570391894897910680705238075751619398453781894123640224427139629180004987112418066288131712503473233999352774041402284590117659464920914118528556380412499391107699970393957271744480684291853592052458582414910453324625097079163312045616605425701183694438432198541401436928527931600840641762739666457594516917885855681511926900820311977327995957976296097151378022172000582517666296045061012368228323212082683586191494054739726724558905037166796139947005140711570481908781695522943718715803119250548398687870741609758050275434756773365125462195153448135418593045727277142537325856823336876433870234761734597266728573046071695876463828042949540461354576425946292954181785299875508928862765422426577695028650898046660154582617921921671973058843298704102437036445226555182669994628721164382472923625077864035607633599227882730320761252304983756676292356192475999916064200277354405271410029409188465090586599565182244202383645681780597304749562039860072548094811122870651338177085317057933499331974213286136426471533254813472634918924233486558201789535232108630531689761311502276350795832808923734445577355473852912473680081537840005956341825424646227218767907815020014524858786699625141792467083597707475304964826539343875274305025272795589073358584232240724695708669916903461402039655994107468692015275589042020357639184119679671518218227975288614401947491793650924592571546713086291644233940737067842892822488406521104541765297987120267906957477973874403034855699186122375253156420169757004561924277803615995674622271615293987312573049534502289411803209466529082002334047639717371812780759350050047328695376119663995969994896506683710950902996295363233524558053293926209111350318049578937452886098104401015344610671150507712640051797155573761015990650354451643819817821853562699750449947754608919604903572684080784968380290757050004514242918944898051187611384378635910384365914009830010477925513561819901095284855110294835049816443763198308251299981367724855284528086144477465237367428605720616965016369638382099569462579755715113119740776789494785837536607027380601847883473216731302129465382277420375418158963994613355627400478871136540455565430131888458489114412840961692904764494520872236292094613695643310572986429735900864928420943242745057389042962627744842147071791117146012579201284335162545882957342491984460197682225145082243257863677312368587758612620043146044413355796624315947067402535916663282409486566183561739533349107237422395089642352608699439443753483117873621963919651131945926288127580059450570749806039473149963051721731489339254722715068099780712010356197408965786938010243037351462745664332255786250824740406012553098586493296939828862075380971473292315659755022561815026107467536824343219481512223243454191193517917390615607537788682281709993972517707532786594700411142901179997489484923655060783993391604772917966656912996541093659168976993685010428980005082217851848204871640577981403912252568611324157654455485894196558451449266627511398547587159147707499389641538524630561261693046847603892574277733395091416775632613298305661874450195486303980660763486728757962116734702006545381250383149643252929573879038140287438827873573523657606574242955994433106750094580946969193867257926210514699387702949844255278053375355952994154234356506418592969553505844337611740879697221397514353751109485025064562295618274390937733376107831133987325361055889200818768380037227379690501799965561560143235831027463282448635722019548538503923861213835211359280313602386912357893164303279167873052669587536497763156956512784877487162629737083231519691858651773591566019735928168832136428902589643651551542637295579955205458197231724353919176068429432704698122025535905316128087826972033826166322073351708250053511778568951519697397103086835993733550198059643729520653575488683045848849503345068958902580636936741181463232813744695501669056351257793526068929813540124924628370147999341046411987160021548566485819944322550474122406466306693493730232095669963919546326666489805241707061547736734930733219552839869732006366735435755668943652099888435662377991744843559941806201237261757333012749512336606150771196335272354171815732032733058667012891447600318955996081197846969243015975978672324380220014010012691997145655431028302041661262184600626632646367852724550958203245413200408289988887378093572268057159475858252255560489906018361653381240656218625072515817280288235288264343017545619031677086283344763254335439540212835439938043786304074761973686142559490266728199462620841087175962940715998421321233049066917847660673030550473796001878510611863265920763833629405889465871760004550262344602963910882121419357403799961825933743151893721503132626329586079515331502089597344416547955193720473433513348083565802433706437219647542798643884163542596890737581464199306174500892795986856239567223447429564002333093333575045685152146770653446901726558123178471424390031402232410084091210010926979085121007376574774252098515374540291080077178002153316926102146389701536831226450203055124555104962894511074701229376245153610647548817960041395817716310335559296013371996394663575043135714335354199211684170163875674989515213171409396477985723930467697150140120247264232507005328772083443172420120398045171815918924341129030200818659526966640441971587242927206713530199662860380906282827725910040398726425414701755210161608167471843242837838880444697845247802632575486990165039616085479481141442574405019171944884019217509631172079760765429111567528018670063583701521699535099537057952058061221061666960032187265137970860300990424130880763522588729486695620456474994273653208590378576353773770278619222064959324705569356171695095734912505665517907608629667243756874342514870857960121696636383538047109077269824668421410226533813209569476293583810735480621529119440475568320711025396305434783817748262912351239013317178859602519550680790305523445070070295841483234539014100854970967440128901118573625057370733591678274801947263661811670554053778790530298438569112166698314498469588831251497957378100837333070126549274920427914558929724143408213176219642874932320099466329500183265656893229630089724136629742294693379087424778834209541709182870373317602605369302418891961343600110449526173774710504210757861904432276998766594726575759896730990977084069645002220196554063322879363229218539505665708896748491216883816517470859615251238787184703440293743152170462212375319763414523451107919152981350324772012227204373144641777331190970222192030429728766166117610995515061432297486594577910124483792493220446739167186575019564111357475587307897217992026191796307180072778815502086041988060296960380168501669381993724671590586317133033273463420061164942560971011880359321704579269895237433636172808987784819273939515634214192016211055236093673790754534084477889055930894126648803211800265529255194776770673848072509274244272550553576503151842185298546312149756113273395867069283046925441923722692241702451380956569412249041440485560853207668385864690746376686997226933395780276053781759539328114272662959642783410490222282672774443769134134120121237925833556317617015074926760981747138009356983086271534962954555708649073536734889860320042490035933584776861491263706347616298129535910080116690572107788228358036814351779191338208240984767093260809435614699085457110322205942678423652964520671907227522268542823895942427895717494561118271598653911948725169045202916963569833772345102293842051023488542140246311605815670621177718775825281352416916381009576530861006258224988563097939370148304271342865183208061793463835435142383966753411925307743287134317171450079197470834646285973540259322928785596881945991045817109434829197297171825281133871773021271048275216186443458483810427665567641582844292727236191798300992158780396491734316953832077012626988952262339749674463044019771789645474233198469030201990497567476467741960659682088264604984407814541877779174432774956865463612534856161926006003469693237913720356831699828778704279746621858298037911957051363004759341092314734497889068626290107387394680086802063537221143297690636781917171511459007370412484767775064909254248145803871491780643162141156877533579078694208914177595940429503797544877191962438796019266961745839544638385917206009042933286564781432799201041938973002510108794943291771215986461009772479459902207739750797070523843278373659149260918788960712386311025425290551617292746701663916499016972947974281741237695619533219292776754956454896723567681481488109000221776386233546615840235734826968977473567951200655287720169693167938237372911623455388003836384817776619512179822605956951511295706252932016997254720279962545845290784301734474800372038279334110653563803797868402367344823424415502307402536065614881273552889475177158750951884944191417348001159892737358076350119467042200130782914708308002706279022236993061720141386377580612148807528527918787107844674076600511640793641632807390892618362850975793108329446412586548489831349633720825540199022790639386808958097770341041313761544829429003964527089683752523425029392565228976674299828761148294905870402364662181490776013361145271543311999922809833344712012474886611502905698636574970608908105650463035059008837239255382009373332621823752747735604026200189324554109815913735396463145123147353063813607122293871520410440270446186870027232688589126059590838705622697236954759836430748589675829457254055091340483112578493799320705469097987677019504048423549659712483846006569763583999048020214340686497844334722333353800171801811342298939174220796085504841378043494640433503099340944853372781331623343425678922799093398319821023076412949845706741253846549304030165444864337321540988824646624448970985792326162300316177503474615331511433369806847763766191282005557337982890293753206409556853223874127306410994489062138726449995813744935096700249647170119145540022361843417256980041797365332605288081895376013049100028731921665991617663894795243695571315196178885768020691528518504332811523431950327281701341553805605581320213182400885741561702122500299950064405289839304810581819938036597208479506258484866752566880603696131595540039011575632653537986462075632287918191886422685149618623647317314428332470564625411646086817030002569751278940186076872819026826439644440626190558416543828810681705610540258436955835341081650087624295928891272713053999345571965602383866341193022338218991911650510889633830646694852392861947943031018608637109810722584451626948833634166172156371095336434266342389730476743641709736414852686862556600839199743610009055759857370848466096695456269405492899823748508508165876147296237326153512447921789127100032612689201826394812112023001406278991945984546909623120771778637942673305861083791181468924971210707598102576146051266665083208980996843698780299370885471338712246082539097753084379276144215668552531930953306710028457851340408582597282114842830745035852839408572292944690368143993767794068305226861168629604368912330734509710285769582831754797872087894007504517956329733879803864048078372000525860638005389209569382987689081622605456662109526994645409678767034991171686700122570365277570829711159302989551269680534873100371513332611528391666409766082992316429985987270713102133956449935355140113915723218199745473714822187565001576465787017781188195675784025732021855499193622268484793364858244997160893483726613050970206272916429668678512256099685860497788752765751266621007964135970740920319542384804286192337693977731367818819485057322388934304580360123424686199042363650816532463444151090272442314823151287215283963718965780652017344041526712966354713121196168239090006612460234785623678377234705848114236583102847596652922514871395593605555873808721663107920013855100233710318337129788342972256640369705695392394342335867722962166300354182466522524715367745101767235652593372322513191844381891746807330060588513608639567589230832094947912349414607628850333577968499149951477335945844060160065944791201348606072267855076587437893079202396952499283522799870126150868768562406050923257151237337810311210108708702012949508671051767125917209854240120622913882324006001459158565383540760333713177275691635392938039528734883327407691172634071976887719858095088596512301225871890476015082106807044472393074571729555350400219404547695331799967069792695851548428467409301395258949990748262572166580005681472767317657433823139323389853354045993350885291563454444687339298399809618359579594540404414464827910363194644334979072139430224569622344478865196255549392091693981952759987033720862198427024226316703057563384248005006621226859836408339554007152656523402775924854658331365865204544858202831341570595040935031747935538254116477385517600296377114220893331387257985655597538082661525271432647678825098623132602047001867110106345264728694279920957916287876390911687920379032828328290162803838851021806466281149868604088183650612968860056290848435894755560449202671530389163626013140346005748580703191301500985253165884281696298050016782739777760863842655437229053004755135126312335750740707181876007101903229278714691343648306942107178124422744751630978957306804233383332740984083593285236443352964236686700274760344490723394699014521800626651330995918673325425230324435182231409522700642974494673116557658666389138472476702554841244524760077747167322173964923851940882417124533455462789168683020567897209411639187370173780611331636480534422391325051953555354770174103353516214266860113009064745896427125167989364811196416265420155766067889167461728249867464940414747428055178782918141017127807306909307241677237973653507033599283834114734362622533938278983715223479461944523758027676906949891496496727934140432269076211421612046807512976899115310068014576947270395489297005348843544304277117577395926494982915727894082845345692091406040928301380965510047639720848923665635225038723285397525400438499099745226443625365110816602918306201233871441676389699805510638668191927551558415602007668185341049091657780261741576144791645920769671802497894966729623075970187416531416882498822672731307120211888731932822384533357194742892610280397417150812794178719011876102472805247046034194427493678717537196057960283697418133164276758876220699548496134062848164426006175154533599002467925863526970356073972996304981330405290179520966029155595093630226666715305107137304483132451678174453994041176459829054852211124063727446865707896729128925370569353559278549554111389974875742277932330455575725058674957147899075359576344323920439167382720881707073212497433982079170533469223146714780636386198921021220085774053506001223362965772060262279099099353982802279468881003053606118868488571472107035003943948185537878582592147286455676664241372799313726056434585813286793033213304764417177030960863116811511012591497325397633696702836421378968943875708062895087230909145404308407108067994178482858878761510080030876917767644461601700880521193688333522245071095521036249471450199421945255601707882372086915454092746594622646471220204809789844350232052746534843939255869682087384315019405425663558932517697432007416858980194634245218457670694260634903972188554434359324835283146604853635857750965199791834320064705833219360306898114350288130304035410441602898687180127641477452396149691738419217820023682539819859458413554243922134931352546796950953726533589128546496093816491323394773045356464297646768632826688424797808562039948147746485256339532426906036190180408060393726118143494005271143859573503799852441968524622549247481769990794742742833832285490297038473779152083989095352865965210848250592029283761952412661542767217388878175329026857160505928745185550489857587077262372903426150834382486965828878328027635851508619032989615277895121533787718964553591029164013151057493288549980149055659165092108175779976034839676144711503496683216073261418448432345273543777340264739896439173071007490278673552819105135235053765581688468055456828065978770198772163253846841904158481267197308863498954603963552449862681378805889904943987494141217427358824992791949974448264556578213456153016531694968414110806666863208068972010353528239199759748821421308597755455517207739422026895018586665911772235867776452085385441076020309174445036300357934099268346050973221133607439523001426342049335134033443166402599423857880783245881710436996134008551270428163734032210653144050589101630841126698364955367098566251152573371368768528785493320057788467092004743186587925794591834223660242477578859241445324692935121904277370481646826991803142848669059800793629154562166074265870079819480968107139760335220745094884759611186109259716566775206369175153433680523592950838696682858281043289496144782420021775063133147712242783926527105132540644284562050626356385476094047301232076714160582444280492157576843886215090972749449395279871482512133350967810399347766740056012450700268029276475407771047233235449905061230054669846868980395811405299231129732860941531788733970716548357183625171601957577943956232763275623666127694610564835590975325136032227531728252600971297789628506653813923910141159143864480465645649864634867936993152867860408498374653632333757480997659253822277113795332710527527373942428111985218099752403145564918246060155786426982283957688856866533516744438414440692586828138513010455078713484538819178861121857056459519358410641314224802340946624736825503856439799112669932806629448757120004265715537132005617148529966839549380677625442889519607541173881542920572021778555654507344985853005978114264127777432332990844752240486147193236879298029146706547328886262918003095892874211408649130413885011286197655839752133071763996950159579929460630926086873168946905223374285656827109327302821210823920713619748465388913075173562045012834102040305529540280211288567762944402913469171526986730552943259542368895354199280403855808929588630859621474015272639114037230292588154946314169458347198773976194765666383437266059488512526539904306434114808498670190607748874861798342125171417995736063462300656475088174688762770741004042136142576880205483971911523433885513325357043124304041262527327124169744330247127398461705188057240200660590563688830320906528937475704114450165832955146854350471919789759005810350190603559843316342502082033817657753518127355304309497606058882053744703622240095631534745423992359993881354479554790351510232590101039378681393493976088221134683062207305183240352207452918094437004812353229115102739315234828913799533447504753020777066623041877172524429114979568358828242163005145179672664087192039468837255989665358689066658826767987450901493537894695908521381379353841570309248641142376172966235995366747563585381736033999742870066966999134062883499953019960108949850409856131483430560653749559041596332005510736494973247169791021814749084881960971362277382050412333807856340061676445444080122084979547655599915377116619938732270167051677037973032536443780122708780474027033785219978583803792368709262840929205756717939493042194092586175919392834625987973262707611204448074168704937254124997570587672635179575001931234008374023615497557484924885593568009082930675937656829006046429445934132972162244051597959323551790563356302240562718013679176681163220801725888833927372277615042630565057758856619303316936595679663702352253937069634330274314656101991284361075004484335818699641527091729092417466496928459364856448904934373771244783062023472600853935158497650971477680049886855651373697670311317283083689968330009410626811586706675919367438417584560713267299592431588469082203452549570885514314403950264289382688505347563375400694086841202245496092644084863244996141453971153306964362199874525743960935655581212956142691362211871804553746562149336672083385653134286434995736872010794426302977068310685095669547014105325656338561639739112575307763701107387520755292710989351215457502758302543324979280983442616218858562613414911809974967897222281126328866221063525634451628348170285737368112380597191355829160071299987565374977475347748584543597622665542567381768371122194991907629364775232327552709400338412968836116713573563488296544963318812449659505007658281470297186540459897924060366710848123258774172189318040213388726663707079025244762511191573187874396005057977104973872995016035098214665357966261213959074244849773403691919262654138015756031421656516799078182922552453027904838544511525692123871056692186240211057873306148437037329350181823348558393932661440284506127196729223949434668406164158844348938502243435257427414749479477484763302270735107787677399721647529466410351303277061304666983578189731030952890498959365045854751711598502431670358593543143876882589508421592578133091719499516300044462400219587222492523213753047990578011346461813096695934384155966258174773141832267100206381359676363488170681969622815971433538361947475680804749488726609013016000710521744793282954145788596575029419289958988286526122252631797860742833090130757012218326809910996740544829729092238221145522402596237849655190055704881779312078803107978211695189315630326007241699179674048988708825575643174574448180288777163800304777019598648831555945190902880935552631426251893523219113109548085330887673046746478765431734240994978807370574091746531765156797194557141811335632903785454078262943776826727738734784022498175968977488252110364527236020577402470271127234422139402936998360958621909115559060599954024610900960757372963685829984961882772683334804919646156954096791682976550556060177837254092443702421768814247767930848294074771346866307161325260600534918973944247946055555442235410595940426540891140222457374533881371448845171356714056743150426634981759517717750363805914114706116630827341058417441282635002785495006402583186060494242518589925006458121304074731579179523405938464275229160897311814767574875970154319689373594474053939353227452094157992193586923146750943245567318250447880410474682564993298264638782540219401951749747866955207714310820859738723246506443391847587699068702451389671817978132049710594975827591866432960985570331427550513880883068970276902628819350771283014079265804858907879926817553855117690777882839500282464704643104515856723329954085034841433653804911347218772209824140294379113071390363791829591437239876554996376860176800959308000106593477458151675778040332945024769090777735838730474107811781177806994780453177084180453462140910104819872878705212318632672011627541627951286390725329119474459975761071355916578673514184020332680184007425543249700605028302571447004733806915526693348933619870091071356744102476747070161084974704464805803749411929237858130863109534876050508993515090821352894185251475145441037657107943169820404960853466117627759071026070138877497868634655945737256177876406484816891832489639001741167543315381613415389697102171845632636779293441600336170795755671349976084664674365970572187275575128001322088899089395534425481285525824212700434938336272423678684751643996671514550244311532373269772080302765857938948969125871656111579597736563901885876451498386178160594627485276462325333052983578710921092761262760029691500092998467917682119553345762885345611987088133803210259527493295899813236531684720040377440103246867661145431963317199936672964189251484800958016288469079977085519634607757056579181146622330161138166516820537896435837666072462942040544072891423743479314389235048295659897210350884918963960623204201612568737380207273744252518270000632194618212427299692821766168079470639837154641586877449354614511565259122291332807744638854799635131915362478506520609826803666462697456036878017801100973351853639805715491800054684838921893032339107648542910710562621895726167906975504394563843875855355946253875849395604045544703047520500203292366820481683132353282968362512004671004331941808301865401034393794933883081986607900460771149470704095284059200728220571627528473120162196226961706353817713548303537402692951929422265574163061114368869448256147666305721045403413597037901037596884734575578769173176669870964622568425735750787174678123256659584822989910066461279417133522400314412000177349694187825567552935943464868847694624949942595870779632408166147075570851186176517682577527624813948127350831386954388648604291670959509256098041978758621622372956343211692253841064221011022599035574225712099334698940650631002591183077926699292964129577961339127948561940074351961416521114835097597778151687002425236103356805683199961762089699790598497310278255357253437282406026202634918583029215073560139968223407552015227545209816099648502146629778175153553836703612800841130003702109886572106758377804538718364333051984132630657719701569600925848359531849508927237456061883157632984214519165461676836371217249265358087175945843700418990647953652669098175259904986596780408911588429868894599684742988498641182396820979994646574481017346894316441106210333800563402568851199222867073249508579734780779964085994130091183901819714756486036945361634485165867851719838532363112309156375379570277318418926851298496063692107687717121570216760683126323281293918276241067920926839791493593958628059192725088437205074512939653351957825330006552865788980919104095824612578213054443940430075355980681535020897107904750961724222944720129441884290918909532365489534744960366504670347465383454699356805280308263474054096262176163306667761061258090830704429048156659484956243864630166574772245646146281440965466604036675798688389088863604079813719078801338664732839722481807814903585351571676866015998119898034484442755480615730382098250601506023975881046579699495958198184203119029488179511075368902119281140560132450377983928572846142775942812471903487102706132479920779711159852720494900215798093527555690699285764395803070853836707110023185857286149579788364013861676369597547274012749855276536239883313280551349119298476770177796926448202108843221516439443126303620634761412575911313842799443190520635954800887119550130446071457251198273051065543899974813476119723613694251539097267531388611065008505849010437194611226606733065081071869290544554008060149783734862340136081486486509508616078604689820516854407909816020809876337255651218309383061764673726439951631281761983905708232748407067221689397828855471876334713237583882591608141359516015558082489572939674395618227331169893212987474660165523811332227191978606893280500166128453550874540041476727963169937097490032198488201157569381125121155680369813724506185605059454607116460944901048384242430870011738659821628952795195322391141240308195865710417162289170435095867355172865610991382031519922791917720037305800417342691761828309972507129429628313826498453883538398585264699549878901250214242862945878288921279442964237854265606411371238466323058001940583103692270165587752346212660035531025528794428181958469486739232855983461549206660856585509525274248264772995345325631349714754354079635448656049605950286619578482463405343901387278793464321868442229230640602711286600032658984073298945231728959049620251065036302948705448875576186104683418538984478102386939521559466184168131850338143915027478816491457419384598295265621415762997112657270117201025958850940375208043035830775319649354472539611093986370339877808439380241379465023536972970645103692334309032737300969955750847649649620409479132064570272928413786388662036852604707431019160220985016514466866781578733790043837952544260379345712602094157121107167771399893087290876578606884645784706163300481398727377824223120694354907341595219605612769684939278209606730224858077816340255650001441192132868156910694939234432382741550405213611690618362853562920511259913438691050978380192415235198357062098381432784159816334220414025029586822409303604148407292355490374858025862310201523109857206269660889125896905887846943768655170062518337766467033035387618358073328784763764566244332082658738657259302606911420300773143659140199337521656491029981895513935478881147374633074266394273995170177974309928603114702593742470256827985246497114585917354699142592213575141959473948405521636975594169666619283231683560240498522029046169529990561279336538449008788091816199931709092640321451879385894440120904087169535141300924791633465628456964064961160066335548195235058934488894667628582618147218638964897198494833248760675435858994473889806925842694683863971639856650784440090158886726315861591157265167434592510257723308103121564705522175467432708991533254816667169371005579032044338228021404669477203788209482242168422861429370612188499656574923264029641151952180529373796246003995437989084313756244952555857586455552916519191697890561061661467350747702615706247418047003367868799826686144135587964814661759889859975290405772469978563418988602195369531562290401780071162580430266163173280674523750110629155754785616061504318807199659074393946598215928768354554327032246815281913889153326301500606890199772434682476848898194240135290750523320512323607639920640857205619762133684863351719848534836704427645676928601619929364985216613577075269681118021084407148306457657337300342007714971528909743723095239904860093758537990297723796108720362407605941410820989321934113344485577682248745830680414295955609790766186455936327979736550509675537500973767958145732193873638371641871554260569644255871010680959041009107446855747324751108506032014321362880720570123958163918533120855601668144082507323077083826273988136211807441990965650967520230328707142162677394189346481719154933526870088120795042184606600364022828424298980971297220140513470913036218614015775389223447803981670238444796966610847038054508548063288563213289248223657181699471470356421243905039967167558874054488351515444973203344821897515879419594377331589402777873261067311954316444451192835638987789717328226810813952441916005117927398074202066917506281140159574598623866461310687475089678241352317129963062012731064403565932062441602900895977854535354697402677175480147405746274794934914615485517109774194610040330705039730085855629787473043815111175716282838349751206419803695702572012283439520489801538759082078735069385517945772999456594931618558805206301136653174419835454747887175266655340442900878491526192489661664259920369053620775915085454761725624019638392226371525087333064353637358656100884073643975181583096057552273058986861639085202346648663383494592785634752707067738106924504148631157001043425813287722568762426584615019056246178774907252568459961324130646911345735479107801574194586675360546111098827071748043483770320621979944959832654387826700067249653560988191277315814425565763278005341897501545057402027048904025672598082441432123188935562975893657582861780933408840281193732080644701390283800548746488512880262022877379285290002637821130455842642940962714918197294922518603486364739199521567551775687359368860187671071225923616326834191419407336982735468207720938890200540298350881998423633504557016285734864108858006071430201762066864893021565300667459169596042170875724968959638558097755042714351815114322156464072073110884603204906495652330865852442279650649601155542854919027551422664180801841651111162916793375880290427157528255960919117912511326117099064245525187991640721037538052419110307151267592409372686097534396572461828750282075759115624945135719220485068685207227397889986446203559069910770266562291453212761762702249295478395094178690744766420856882025800999355589194585615625454579820440119980030264491889681664000325324553878819357101151768045812198599415257701121924333268258968424227511537428865195630250022553473389774261780274798868252621323695650350456235370422873469489882988819782467818532193304366570613859681349300073599470311893499631445473762408153016596291296416524773937861593766414486140325242645238462954735767226983845402584567658887244718631818950665238408408733746046119906167522535163907877185781951402728274664914238459067053503668972082072484038268170931531696671745237588370342420657732147720571709404340891803827381850454056218151624973892230274190184954854523508612188825812164370687321046682759538091605381718979495845637501054084436943571924459859954538503799490077609416990257445937907522052698785586569883169811748214344612991863970009753142716410243644704936491840888765511627266946860817405463042283397617503666223928336273158278779391618857275416385870967635648184772562248869321735837132372558101271150675718269014713141960861057758496515791170218228944225578281873945292528596487227492034526136385927906167036955720653659638615993431431974721006531156851951468277322294790845973469565285654656003085656115305818373600281767901113340131568404328739192846670446203705575348884274133711144599868708120355114117390929026737306595438833872669614118775659743933463134815158886792959753886129497414730692284578710787907660385641630245671140001332944291415697196251090726930589251828344241825525716995286517128743064572391313058809356175365947150548253101784724108498932040560329473651508139991054658802756170055689502250127555040108685484231517903073218239629474547787935354350563468829374698937344749455704375225797120439002042636962816491262731429086195480994635990997275844755105387130507425543221054219909953247310418936013591769849052913722950205501088556524456263062010133851022628394041049062874270750868690980532984835060194056841052946344307740563252380878786549817137087130730248266358138616865733427763891830392606269892125541070472890469729868971464036037356263403942906860758120111882880400779335693369644849935063613742666247668288266818484828998991569751791162932198826065560137659071119709547469155848931738699783547611312340187146642467522944572345880616460022404219144838853174918838592522862100667487202971847191327825582182578181649594992445343559561060065086947258390726393296214392944510570635910946618077149441954386532791255564152450194500285535632464696380758586120014103512674196482977374543873576252217333837061116765800851316759225979968827378129763465484009756742161178634965692740275037700831169204783443217089588863291334612444462085359587813448044908075808593285979571120528800775316299035877413863895765614933710313289109885011616934841565603772283864950287666511743522625893874026144611330428346663980918415197511009754509854960894257996575092803067665676553959613315701983596101681314545746570333824158098757641257422929486233399024284065262941427876365346141384554174890876745476182976553860718178312791868573229924550428969962173909493168687287301157753902578879703958870776317687022416775683769867469825892696270785586430090212313892554814270631868147313338179555730271361781558138239776079504511043005385646561421146562975677991479710050591357541523217411010743904882296766429628685557226048417498039994786202042030226161711750228903384022760893821706197038455922065672660637476793473692986339506663909910081690570068783389572956708192884074618239202957029577594855545769111844697484881817339119092910578618299092898399500223422485574283462653853675643534153294995152002090521231159379975054762890578647410316427968072182529423015252683758057880359455932756447098768685652965211757699467683311650167256110300066308732156059474012672777999863271145360897438526614702318198238722404449634755773980188122104346266114730436928719424502158765659409113217209411204307239392154566261285790494429827143332959950005946272757135103588261152071185348041203199807238769151665293232578440296765202896001976231829217079919389016797581656217400524588045707393744547650462245011376003578935978898263688826754629511404105858171306826413428357752395039068807951154367522982363267908013448448216373239681541554093277046601762869322895080038005570004807026966263684702106691220554501361466100931079220569356418433051610787951234580406624256752004273382241761652217446424371599098039248093718952225798603976102450651837459914742505722968386955545174365010005812074521363507682144328586543134285163344996578946162853181321380129910511727799150608602606030670010800174297818180533955326881083773121419644593765247092197756118679319780037510778195775010930986185451771683151735252410401146025201180390572766720751751391001410391299087509059346714743709132016074099566115750278626040511920525448913623785371767170898902561367982789867377510791431654901741621846846961645093515431035533556545346025213311780757048711209979986745870682353472774448530976069647329574790432024296182503915049224837305271959804519756546781377130428598597465135968096657584801134177296195497213972386129899243979023426768044233370182499507374015399127640989444653279279049338017600927994116917993988257131471670832764440563925315874671626679511064703094673070010252835793774159716182647236034069631796666675981053651296910039111385787200912965816643833292927268183485828640194530998515219514659041233179757946973128803782717617958304618839158813775358625564522701748293698345655432195623161111324170848450932008454890194107997984361441235006654921632467029645797550912931723457621524355294991031887643601083638362070017040769780366738866589889118761261829510147114860712632184217131477483542916776358820555849385681621663372871488499157616351330791895849377879612943495735862140931004801948448861849017040336345891540503879805499664135015389504710093293498490182734222782499882494021680552908041194392122267803555176555486707121662091221171784492363846709867347231667810623567112600244477736101974010262868160339058234048779318812177894051836749951619646763423970228095369237906745932697107103393709150647561240024666245009727883962582694155975987147536560265086769468436944142720308597128397371889135847529943380831972015130917489514536418766572389468120213628550824794676817606701196193298879333339235371879270407397870949364131413402192258008465890795603970396189012209237256119069897764847220348580853270662918716331685717865350922471828300072816391794376116133759962810071713197544797704965122874776130359822028175958164587747296619654004472418349727630529377317476511575636140758155729186395186010460948389883651586326763754514461133279669065111201495694230336555174498568627490182685025287946862225385340187384888433316580475947902406119043207483525015277510813862142970962613879146218857748360970871636979407443621809514368630097025023860075489968472787201845349694613653525559068364201283055636028299615924061954281541332171707743742181157768505383659112306895094821527181459889896979546365581032069236520690336140979444591253389992935336694103649212893004017266417912067265399991919184134992095761778358510028904422413291754608802302659481896925982169133440077610035385463814870083728361269184996332922594671747410930411043782209592869333793931545402515666625237568196835696142117345098345184223461910424245317840710142590402910788626716467991283943241936580743333459324460024852340438147052832501303682276807556696235022868441159780595090701739036091617638384970747040762531490720221906782468126745521925592867341591409735443932293083997577322036267296894366783163016250873665540733412784626955487014059678314986778685644079028085363370775013532621764151689130593989495092340037269448714170950725738909888637328073783891359766314632985976492230547997644183519775939877905921014847482291234432343783441363316953196058278324677362422632247627004370279318634579131162945568266168616531036126144159086461142262331497417654634623722518950824231855232936550514811245631662208722291136142701471283175753115838310261323735534686743554922731263856549877721988754887283984356202732145519873722001365181805851256660239336048097326374802003489876573365437587230088443927684311854742461200730582545568536536116313016316322062456416186296721510147502571545932736703074249974924367380737586000170963397518757583166683877598327352030843457170356819500971144340212713993523414523687724752685560054374007917678500437408948561579384184511554875498679224523202953420422412669256028575214383592060641934318243765341258355966772727554967639256860921267708944998782520770793861522534088092631914625793297578103659650632879746689011783480153407099918513520959319501246991156814045418984928399283398567820962770000164127807887546382643533377562646214433276292291140986718161810606928437615553131446773106978698211379563985292359183549588751910718509590362878865191193951655027354839972851724918167996903020560959375493168680925920864852318205338413529530411241338267079456175038024640827233849066861434349465669399059203194517883234811486130932131580949393829654984917242499912009383738296777152716258646023140733698812573492471033930955674840089510857329524743549527899367515420029323778922856953208916150891494650144671391884452646132523915822694310191132598937055346269740037053765300277541364200173111935678278532939646932880282075415620732409431918934727775647913496166178260122033942100059949304879685939274427497451054519805895045014843806556515145529003173175914764602053433230370017700132058179603015151991394993142712946611867795174644429918297582122905038197017380601267496420869885720956580430348710194095788184669720521599984472813945603418849994778082627694086087609616848622480217941352362851612575990724918251169415010246263153579066881347536018717698162921377318359775681653711890758865248914309766414446629980283199403872871203973332669479984924535799012986134690204055646026886518366324121372168033763141866994108720949101937523406014877935998869103580701191529060814339976724192830861758443656738655184310685128202181996375517233098191017794048347008083226059463001270066138818881804009009323098024274725158873147327355868822506933134723040642868335173592752391413774188144245404805136193812809503093631762838574496316105155285196616798227249876416131920320956801597704504674410878760407165330441631192401174336022348527044942714122007949170100689250124392218572933483468498437449030063540234849561823536377796866209365152593521561805059415333628662145815309471537564324043737498343532822576467624826026628358822377124847881620174819431581145507149023025403013670573990370384262683254860961212501810899279507133734557646478600294798264224991634997527506495240000400529347093692418273937999180464738854084153408476728982761986707050729293807203826029234537852627153004849936332572179530452416825254561370586347284465898759535895308275805065331905617639615332595988727033812736412686891360610502858257168198770932628234026269153452929173191555119528047585175618843050832334481282768300300578736664811637462729340199922638891235847449560507194233454255656888559528448251691330170147629184320359430064057119019578788193213837436615073039201227964661213742139541163203187144882509890569753480365904607795037028117116150490546767808323408239110934435136530830379990572440767449485238401947012002199971362983582158261106618799522881198081365242449979267076978304959751910839041105706145503256712272257773680769498270092556037351933706580764193507879110384957373468897436048568201495554894885780680673187713646223173799267601646734218355276218816602540073939911135291841157987871905326988455806795357597127752888116155497771139419446175956998569982017226987772102256477129063868651171043818557245084283184357965816539311961612412521063398121536644819888880124793022118677580179746124094368809214256761787624838530770657288401384837465822227700197029855084134668686959344526918737925280113962817931205524729070390595971764760799333795366442411207629870604206828236086239124000041935122070138515802460955997251645864948207331353449846327070610961612523632953926743643299641591243974982923383679289532008113837822960030306070918140979467195050068075179144243782672901825381278179321607350132086135360965459798666602720378698015123886293602176125297501332676426743948057697827421631165842239009608040916165855913540298799888779009407879623595939829707613006929675765809979301992270492286802526659680789754642422339367520606965227689155265459275243972216545061898617751397888521846167166058733145233607582312500725620163521355977360043475208712673207029218808378385441947777426688526539393448072584768102162205969379834428568198304089863095124411807849894716258449694723324353762803320228026693155311877634286717736649449645635343785419185746556600052058418466431877743773096139559608936166302739372163651037300942088215698838463267087098156962313928439825105943486859244065470326967665419029072238468075335962203263938689314180921964698108495768158688142183234682622896812012544671466589388614641086969372053189674257518983458734558151171042939883052575778584675718541993698231623686197427282928829346571416884527710102750145287762970546231388335789309387828215087587487517739814955258309268782713595771687292686106980400717967976967787180127022563468145993228808751421069712929975971187131088517425279167955354904958050093124537350060374183436686970062569073441590425415470490581689316761730651321181465849930979433801003697446415244034256214358365463771805976734243317249551287801196744616144960740983835825226465695453353698669743233894449663919462643667759273214830747963608197114214799898640686002194915165399415317203544413522591473514751819689099251903349769718994137349520421507467925737611707372071723783680142034055666774760014537130106842914016534023430141455785921207614616509919793428306243209324646886101601862755428264515203758542407913286968621070873945262249504230524522401354318994089972935907250528919974561024434040207725274604326731767482550413152755782287815217323506549812687378683574936831524534285142405021097985612607974329244691567257974388776098804557484623704269000120700134130677988199238631981497870037276403089730027699591945704172515983614301172966482818403481604518471209262418984700536672792772794971509823366331294414528696898379494871179497404134173685384525293006032371568071071686167225429175919997522256494786859132586562197359053524402672011745681469286103570001505278243537983854434436847149296488636268970687643243239849247987724005351530681055812324376475752573605305956788852349684877845679856659389800695728757527148421733859523669706060249927829171573930455553952096992762379548253547415064521415808172578974787609380144665259228443197249625249072908972002091856975400592471980290062709915031505355808912565574279862259846311053326492888680851660238794397611162963828903820146763654911799980080564578512222586281531214672642567974275634732892870064403008194308280639615938329931333174421707250292947729854170606351621371268846657611373950953769592454474309200576202292397844827909812708322080253213414599272516568978397218154826224250519726281109378581197281271911142467043397594142369435758643038232607784898992788217805380894477403282862588941334339102283975003242424863660629305985230251575946362834953955983866320196289348537082342819692175733167794321430210279759712584551463578936526170096159476936721979692537796794387270050434403909441409626508675636169544684802246947590502076945471111651257782305562264588114292337846152519472106023890021734869267149346324748285391912813740554805229348023250687848196319455657856105216689704245471103959811505337824028224982358958863253231003105632939463382967952121635490691212858853064617853453842045703839086318711628255806997988992997564852821910645295856139964181127261833961859564779745368068193233550399503009172277990077257027678360912544788945979878947922939252471138469841230772080194482776588807853060685871202948145397368285189315359984164623785267589347153373551458910276540890806384755723852247523296655539644581328141843147171909706786187660160482005277564475950168682580612664651583114685276846067538451028048236174607784097382017256106436455105844554530154162071695970205084411440719484980134416590884700672825856282514156130789777839104241352651266966798112306343964669317543915882740151279991337151594877047389294932893595431342809150340937150218722314139400729599555001488505652073743860966565071423892423051306451194009491272461152752669922669862762672665986511609920530083080784502198071524218703469220935150822640913438705082248654385726731177646291977382376501107752236626614528887632270474232915633757399485707277234932189118875193105465496966088402332117530483007944293883317447942952317304970159086161307006607435228559841125051756876153791133773399663405807069077399171145783183026224139965262915278049487329550842162340152097546776401223730286306251360291095344925849745765259567465898010974173594679247414466620030836735492910440210222326474074015257711296383609038871418354219450946239724207887635356869450174040338500145117865716725329337340509991768049304545077994872184186313357926573382937064206671343319755760944736978166740046909824890597402787338355912924919931945310981634868470999586400062140358314067723711354592234115375120024311536964223884252517484741725478891643638622688964503182361333742228637644976860779569474127365930132766807344472486961708667506317002928756207855693211202159815242891108817192675652653174198410906512051242702224634060239670986233579399659121701974347350381537289688474222962559981432311787397060067904791678507168690706894808794473080756597587323488967384621905642803650662704917557671667907277530179104331565380802578611044335791101469302574328600146548563564543240364831477375039179894561216817060031762175241658777567113062345721396517272141215859645097467707172875335477399498958984474144874238491446206918403418467654688248892768552711518121603004485474514750217316223655484914740455191687748778783935601310497013986870104000191398095907417100746568099036409098838369074639013802176553135401582700041038546785159920442047526679184479808329427997523014434866692071189750545694724254166495436501930498282774103425251071057717391641612753176700833973609215102175400650163946445274987484161566171571248774383437895790946395133942922172019562675312250583634384515795556497152186072876426329620963747107063779196639659528916193296471738476304865133352492763121892305611910635578487256635574684070730463709185044017774265398896557217144413349835016775552749208264465767748539113521457920005809441269287937079083699775033552992894494795783056664099292198101460478642107811106829706265780610903332157387819902571536549997015741883527176184248595976967520975562656308967453686876181455779795071553595131263199090676071576702007815361685130888544140385468993998046105426776903601625932260445655317146014753243522941052116945722818299600889091470897389663824106944192050984173799225122079327666205470566272552029272605039266786497313028350414946625516783274216281563479169800182024638360296677521845471511982028914422873433800459029571276066728125299912503729945666486343039860643568939491066229278586577269172560494714817600965967946235272700520416137358379946845655274549778450561724933265994288956161339205988098309048509510722925172459360936246782937006170308439603962160937044637129448313619837552008666714895910929736391631268827348728506265817468421381885123595992749907964972498901992033929685358692858561334588723460182672414272169214680826961029259307412466521509269353222358655619255734077544561082857932752276320317404793880139407083585428771230058241334777189877490931858236532354564624143420278621285431640137838196328281621349367488841026912879276778944468450421886647239112475216634657206365249059658463249917039742741989253510599704024230956118448877295207893338683205513008656740205440462675706171620449231472413226870588475640025907385397597194426876534038813594306812768930338670844355566337454040992005289407228248067482335112356184061676556907152255675168426028769489956357321325972919033805334985398984253499531943165183746211720394456248603671459981387083543625528732821203975839528221416529313724338094779344204142329358633538248457166681203971425070165827373586820726088598250740572559829394807101322548829218743166623466404500818192691679632158225045488639871277301224183044579272474106371798188640511711971317173858591677062013737010250636883288262451639551009240011685885034416258272692140484313493855602605724379975737225226117308609768677062880403127330563596205587317212655519193975367806689254071731791961874496438264362683988402416360180884183204313469457388332366855629937051315664434378155888736748009187079173758574397123723231092490127957441997289027818094436075971110405567556635629135236647142300902789270495915804489900226940424236644624805912093523991321378183477052953085220460726923726246430220354927380109716536368703394870248257802874084796564182513460585658183871583386668492120758644530694427418899242608586204787940724543718561735035644008992657391378071816055679851142052995738363961191936244949935601287422622449895472001782349804584728875807548842953568254893806462991915488043990130302155132615572697099668432541466518369863315416811467100411683013782084172353014366403885117735902767256388227667362508855577379940709934762617686534489083056524319205011155187928057833054102980625741537187407137827065823242824239718755270612379470958243178854300689043632265474739229555812118024458814380405192535638165710359478654508147708872272383803649724808591249585877187343948832193070969413418700084270503925903912662243194232904998015497416618215663503043517163856336614955693205372706324353749013057376317063307689444012390541713417320842563732401252512887400393399479733983715813956652449921335011305591202353214902422911425373407559689261087175782033554424463746827898803325396891742068233972924058706320075963434678746665651894864610638911177872649765843171463136110523929043343682667193290164961066572180797462442177805137398103246427305424388528864046256035207044228994985118891155483891689163342451701269518651000565844289875481982520614371256604880132025675935407251238232540846886429015438017430256943752264153716306255970070931637786958246629844075788365178896226168657620510528677552055499214623216707570147146244185995992275807051825719496779629287452693437482213861954759094348873125229964869965094635457508133801290777688036348216879537086897844154680156799823058774444047632639903364119490248585495248341949866831998078914579442907126700664677689412405603297181954272898788113377094265227624208924925995018246630202600385409556514625907768531908814129444712616202753058751415530183928196740569715797735601587834874735032099484617700230933353076148787444765555629409649048669934435875790547542681565295998405411184579178245104043204911490289120492802482451726003838294073902680548286894007875976061908888985285912845699274157416050484890027872739613038611794008721242160947471479844127124966555720604808890805748244721429481406100071193095228057897615368191152664777045402227840526985147570138469490674261359434999413964519514091351856208663409022879291896309159763617243230597868817228367585843723781417135045142050660772377824746032358916805321587731416243236281215295155436127749418094639667510116191068220308191608305383899393982354279378109996062700856832345117178270993177961022408960371515710724496061928755961348242300018619785906762134736020193443069259524378859273949419924455211551920090765219260398593739132468774597503966081772319246023488323409485339633629220006497981195261519399423357795775475913456298100458673285999216803047530568130301858987267258647856577627808852766375650997984230023197581559588250839783649772353833255518445770672949468975147283361554117364010760305165275316339475043269363387328968810586922126689177943531235748070736761096628871075634223538026320767606594872614048143367017660938607216822690103535499624809018791207757845090187951006993213077963859394191852720821697550678260572595114113017655533164769134165391134234184852103101186251612026994442065921439099746630630550412268024054575979456603528668994122461406354565493541286237179022883684600487738971744568751204356868733007424897947878993386620300778639742928917541678671328567364589283190684459659101723863244652147901318572198920783716452447813832255414263097601950577425782809909353758675719169070197349471519294056867876576437707833384861801307724894468454120113743315374966887218280689900341175328969755920346022960554586029886119324680885046140778686454982250643557886270129374205521409934191992371530027205564790347900677651444940629490795573156910296746085482994101613780602128775903590534815086871779518690097657089991058885166360512981999923613457386504202020593418118618099296716927779874526873971340604360098170289643303773009962863310430927105837045535151600747079749411080712762864755479724865494336529078906234460532184075187194366451887045528240653948066033369662617646079677974900867735767112227436264676403697445503081058858420341730988966007242446481123242633391995912525616966632378233491200401531775913104020280075261760389162283085368450170064591351279942542325302328453307887488550835590456683017994860275830767099353472236238976549285584453837981304823458807003484161222731776039876523382774747929352709544154373093621956222417924192905034061709564183868851002951600843320989124561481520651217211680023124605183527384051582171658495746296963565681008845596986549811296455243237909877095175445185688493576573722989211200627320363584832720346938247581322131793399512659378762276833471778558150818293938630665483190571316502121789331699712696648374798957022121271188934813362842368420646777217130758464525993464684360195396142630179098382660101415194883487349011829620870519572895464183397666656521797661553770897021354951038618602491513479588395244440797955397769091283356938327151352875574192781924389612210007768195104901416233930989126268654799508474387948182313556083463409781809960535260084042414155862989174576042078808838218192424489564502771706992003957914055633675101605408732383342261994700070277445375339320185086699294033726352492150343518522000871413186724668660419953757170613498553653238481662285310778760385731057506863538770642159724715568112848137438140905367495980607796595343943570035929895510865714150878953845478012815001361710152205814450550197917360447005150289451638736886502395027766658682147724772523774487389022574348354255311429606353648808024362540421729253485317811162744892022724618644835756521205297253037470628386478482883474619964718101007650850481331281411743872592870839750571635484707263285344643394102264117939425376403018245170860444417968385178091985355333064637363558237568114775803505065379716292830476317396838929321774159720007252628020922246183754761899954681734561883371401225599385687981130843585702909139378276451653029446719624545725432879042657237892809391926913548803010912179105440101833322406814787616857041413922321117932547708896625743234161291166606435071073913316632033260606331246877669358920168797875161650186661394436419315957339822045617859930506880764651992900494268167835975910686298501545045331814442466581866191529428093161809040725064934961965473196933996354097081621757009955756089581736971589420948231236675620690590845418964676561618343034291991878863398045412885236291946381678055077804774390128511425062922566148028935074952053510564915396862852245279420643991511495621749590999914428481269945224131489234072872362753753231930062743968883182495417985446804194319527064857034759292928487138814255162036570600976454478778735734373801057180604139778394320266335316241567652395718691496420460977366612891441459299559852691099419876408585793431764253993300483567709025450375448762830737694838161957502239061290691965264489959826734846196610622235062017836909601629161207905402604704260809371981913991337261253431278744369698852104970712657281782872744842142347278989326522900807075138838214763705547274837933718621593007012095392390547921850072879761897974114999212724297591798012173750325119488695196319371112661021916836101481489060830843428214902650832437303508221163884956025444272515712545883165720134953305101155618129184969149508921805899428269976181711423119542549910919516343112010002053781352876658468343490857244298871794940652094149006983571385777904980304840310306400631160493233124340721602354548343411370452793287277760514183541199185818055685715962245675137249088865032008818334518682743239386657479194614756666637094207433227757444325970135804425885959986613112632586850327564071096658608235802589693564016894707614835802135953295850100636155159705065591336680394911244371942685353800749680552445781371721709790880441328672047831248295623228719089462624605047102500178532604015646333432005747732371377244378918720534360779006519042537746123599374734035947431420553890349049818933123700584073436359357714523984682778864552752717403378849484501637350769612535575405120751179061922550681282820251219040888592272897865219199035818716376818868544076784993029343847658736350702456532154028050249221962772982913557504841824707488429660646152662871963496237593450323798247715962529899710208198174176964355836000643546080150444272760546088055331490286726047806406019412953814647134518433537571587639080858567280265707680069863757405772243990865118030073043151006794933927781091350586720260263467011534028376808010916907135592248876439603887440038003844720532120606218278433507446558054952949759749981939291984386715804098546645804690268728140140277164716142434894273063581565665294772153118285522727508116991119721759817106954781748803688451863996940519371651540572939673069024185064644484320685435403723608499845266741878271581405847573974274149915740023615834028223198406548469578192785457625230584345302510674990289176698880410363326672868654592237396000539969661414013683875682287574138931270564634552486639894225274633646523430430635988041204525467348912454250488952511969413539576764519445206752596476006424358982902594942259490670438226615918628011942720510288216064154905901983481486678778887270885475578962825236795348803273425276502325714093261493274825118409582248578189451761918150210881290083203050456417173156619520460345386356944746811498199049711954616102705726454284593719993139768171790536993032192168390714041063991441941525802547235267896385908954460189454341901715626248294798407505026409208616759257086496594478247712536101500305151056479796364535035769223554099720684967896008793986233576233300238017391803322092035708940917653230803934125472927880087098831101002108146974179295093749802638382251485822378031022707219591125850923086771074862713593290821280367894522748741937676492503666214606448857279471830941284057306141689813947446732804824876013941561684843299141558648217892072781708875455973480304914707581002966376231138688856956778837473103191495089102472353464958015322894466118220447026560126245445940671093961664462534433743912090310349981728493509766713383262855040031558141992208721409309137659017940092966755808670200370428982181936216294963230087504766890948610351546310563335497603454004458041382491266095721432305854563204240780782722188111525233117422835913076505373088382586846122170001760494450795235855015203717662293926849981747167428733536321639931872331622760403773684197310924061765882815652506797549712879043556675553134859535642612897927882833228138579091261457486775446442970737849444461501796433408431289090604512101409083423489508368696981856120738809990583920090671988250647530483735614051872874141907652813344509145550157064149548784120729661562250060889102027896537651723177364137304172797735414621415026154739279371206192754430809191669460752073493223492330811334354400416503755952749614246385308617049451413660692480938353066311831933079432390896595168702194596910795578647738057855342475106148292069839958297462166744347717570441827206800268119362015512281609838743797026902441449531236205733445693103790925842421060169353713386653582309265381629737596021700484101216055296884944593176479834628467138331013849383835235138275536226893047691401833815089446840161562337057073011524166270572903472607277624439750205896176232979776322283394053625899319514678520475458471668186713502097333557341579922965792587468364897206115704263935933464794325661246741553003715674776846692910793514006700512610170363885094825998064842415733050495876777701978458726859909374120523823979336284264637766297384318502265489987941615349415298142623741165432531334732162601466709407113450790044080177062274194712152233895984087892302308658901594037100664167296533685094834229599084195569838477769154568152097930551954918894172301724174056002114811341268770768759398332067197047264793332880791549345369212858591246749036032249857171245637798269674602031025561412013381329288660756635245525377035597036153172663371213692306590699052395315529911164922476840009502757773186938791381429003910983806336474325349501296255516342760877976255000332930151764679930717815238058298953826397827121612338369883707868829655793569197265987511175716171117033798622925981758686813631852948379796599156166679303192081654286198156800307960689987230113961212012858329756584378655026503229289150551005043396328542557695874517631346564062997782057746752070228414773314514406315495734758738016775875743277982989085790019191022241653006080355244799381158662840060814285486315572902406934052672199747823389460520293894393634704620700128373080780663192611491383045409338668013397966486491017600668538548950923815507636375074255393078990197112967778151084832844505609556145204672646141942517107394271741498114755680838078115392526010745935835371291537323585290315094135327296336396697128747783325292354117488218208621296319770980805776368614398822798866877790822675084861125476092741971064881079718267180989730353076502191596502434162410157317623301181023404460193375503258498780697518078596585833263462447834222986693993324193853086012192107334398846993274638234020416440998449165210908278075098850903316963381106951253329558844864223356031503840053851106645177367710303693507783991572233391813827666056339952908359564460478841712940377040127170782582028048352412613952897129170950745938132694545523269101205006609138713921654002681931315310371985228811226925464375164763774169214524262380026405765077555785179308196133683083210607528747345064419665968797270149843306851358319161193683798126349946030471259971994689809551547819030537272354359287730405429028610948811907480586201969578851428376344975355978696331405362542992047506456781108707902807103478130675422729797126379937281570312967975151770009449885328672289120938573674349249940738803146152754289479585208270906525865769695170382286041107651630383799988656340168132237674553263713948844853603813702110042352476636112205338603287835319665446437319074583766793958355976477689791458046409581726923651686313210329279145959267080935990555194118776427472410005307133362468509999260614377159305981329056734513591338569025396868131659432251550342099190132611764995831398309306109519627960223546153849115903634055980652947661061855164606452550563200720072092425517269062883001719245076356244230992034878948355639143448914459538259276335129858521936972424878795220989507040262206569762238950464320129455482664985016633983283980116389434628964722294582217532901637267465917720558655191449419206572637177593774354600993309402067070440484935304377472351143232887512689399284923496744032710808508922466723591523459554910558851836398537719781060312144405295380512302786350710784599622936122795918273230079351061110753689436095459175952764229666086878424460176862028530344598599666302897039378230768103138798383438552365140224946172615077313426993106485786351483742980824979293744913190801221877938769800330064794489515055929558616249111508713814600749541742356206077282508326626930804072645163998558432968942839213451046021642632905698066647171074065732763703637648696284147201039956492245921828007305370392990368998624803644646276003302212232250144670156273617426635874727879498906969800669871196969782742654668950300423516352932894748081293270314217652678546624644876577924084407057769332897579207785709821951831742378614711219137885895031426974971351790321549369913412749076849875984343538287597619665480951446755687536733150624626088086364192144249678574969280637280948078798797838308510140463202689115948327837529463840794403229140168078254122758446377407533364419402544908473223623805456802032983252033133687050948230916368153863789385845327757284841234901034365178272105648321670331263244148744614092135480923137524045967132274630310416148955661917537287904535834132370192582260834183865145621560879903461109325098741945407501224081172360927637673782648344911943810522676819840841386785097148762657521078877871503735372424603291498750595735795913176009512291099010614517523489998941840072412789096768341748804281828723765738401454179266615621666545830987025373888506277274980792450266126958891864861481785443990076831870842786354096938674815667159358636658545111466157076645849657139116204903539717601900670548236317043630900069712978790604332510728626656112287897978712161228396074998789633489949406787399293521097669826555917791109710312255065274472467055895628998656919165266842513207375439060155551092842872988898702731898396318204922441151257489417822805513975210274460247626902473267937472417237771210863736933923246037695996496389838025481060690780369306547044213236928607340579285530499758128174256844302964826061971530741682346425905403898805672968672271041633384639494712370297907968861438450918307030475494850447143733563090047638125475481973201219900946533788994899667861766192494431547479927260057819309731822732284775139025825000114913429855539160140776559419435706214736911160699780518812570589579116306918245243577035674181007430013575075654173138874235239644395783445033178078068635147407503309408796658743905063818154625697927100156357593378229475986930435075165779371045694039845897621220160669303901118663029586473657492868072531208340184603201910387858327952562611864445630463754818992061557426872134408336917559178634367876995447965263711108609189142363955571589645616059722938667927475734090093134968192807087907097357830094808913810109699814517763141285076633785041234135291893593489266393746427450624241363443268777177402804160094401016448249476839959681093771521299352305149281343477526977403752104593007524214336301224273161190216508992016621278845870488274830261980666689565251666754086625243956945366190758587642006803048314719603553408734115795287710497417722528942081585712223344951774442764525266867093832529958732597221060864608470566339888918863393457019832539261095941391804885416399461797438002663652942845872476241068721492970444903746344787365927156286591692138413799830532370645604361559389338400416266900293625454542746573561232722046925314037870097537332639913233940429756516971291433569242816571754353451046718046205403714256101677034983512092575911006075550552419095156836384733349020868639529036632446408637685559390029484094711386762010879280465127586308366361436683762446164462588659127624398136198686909714634977482565112431853468416904937346510213164211218314294403018727104648696941645914852045037997467643177554847079335513768698774948490325620895088034435625846900676414630793470663903053545746066462078642576500060055465661282697203128436852932276810225462910036521581240791737910238803764540907720454547865267828293660381900934079664884613359888781315415796854012349780508225362505523073896510458880245736789784118468614733481479193869351862791670234111406537669987747786692938106174997785725638270000197741453617856125905825170058277538055181164261353105261531214515722322297882671405793546862591890324397793173154543616184521081226477603392898973885400339041114514077201949009836496359013950042381741796069989134755390264011543665623431347284777508438233126060729968696334382609536079315492129420210646741934007129383904372559737933363823988229014550104810162840863181434919561364777993599938581103018672290370760442847892435635653983252333245184335589938192764785244786607747912401235319200531222735334458345661561953724413680403611660545588060409350704065291845995798302195677229804912767543978910908112535288737130182286201259789856322121976006347611486394143945484350783567386490670126730988863590488904496854472126141604885514748014812536151824544412419941957638157017354977291740133349126872622411214016399854104870968943809041801669037669879933630686048080365034229153941478576003690500766937736645772772564308996145219303494444736311898701464293767274732350573651640940860403961635161481376135545428423770199798585835691543100335732198992314921431473906159808219519916386589384600201363535366336117673929968068158215800144193810742249401928161138768994436072405703999543141362579804369725477748614260698046341773932758356428284766005825001050810974179774071824880383365227288178263713916549478832098320856138888450529694082009387896517026628614952296085652028299658393838689824920609840514486765435682026233756838924343265492078711916063690031429345221332814838950411452015593583476147941980189468357334637146492619351773834085397251511168241474804661173370935302014601154638089662144517973550440459593683475606337047292000492818363380808529065724432357960888442350923213566572340795220126648028748736329280563893262691600353378334562637120975079349546981049829019097225020639277845425828055344725929279663386241469964704543311899297752919210327035272562274837671740316545028873963541879787008806858276187173041764060035383412229234147315274614117547091914622638128742348590030685674225053210077374608329247989645147470878777985736329228861580440810077313219801539143972559944877833950249167946359402479368383054781582961336098393677488312223792798553836126827112937084067676120275244385616378187899095861699071054636311460619519473271889357059307363871052714033418213571103347051445688145979054490737797001919807410279261795574806574427208378442213881063505145902563423356684436300207150862448209611648917276484966211691375672885683512310755553705574932533357876309903665633008461992262582501683814430818941361958398647147785470783799339894773028401115360597714164805035084460102363729074624714391136369216375549134076914845228720603011424046593091936830685172023900704351306799384432767300503771617053705017827136823924404988298485095038226577670806681434544133684004269993323580364565645094047526485399167552672486754293224781482018489921756804530960834897745210598489823598680187110274358930890094351429998478056946741932416117224837908080982937495443245291616161530065013068503293284749290606980254493321386259175955385113248030917588626009198184942097941075303992453365446982847961250916344567498991908437185931116222687235964428396810037025950358201678188612972766086084421814412316561514708651030167145244759285478787516226703725321573643153574678129022129384090938333283436258761240332152397899345309874415918402748751898918275931839193202996952138638879890558789263330581491270831324153292924663955468161487304715899564006584646073487024505565047761896486979217074133515813297804200787427870648709110256474098718952376265009466657306202253974505621410516823849459192903592494728054341144498324454315578196012948306372299288397941393709043202721119083832973508827484174806288887660067939035101596572069368130435832968161909116608693685671781745180948547386514824157332909330776927585921262561562408981656111902863380942509026239653943938350950925808013683737268401132361706584899401251310684840141011384247501503170210042698388965013580044491444098283446585134165018792509669556531385232087773627053619021765847161253447165472514811909253373101428835499968605494090004313465847279698796803709493470564856315030685917935378312085170932603387679581260160770137534181578573020415517563290779354048929690105452544700709872089663721217317121411102016855393536562089551380761518774101910277541252522406833059674223119914412862043800691133508174012458010005826673119181005696196883817612258729007425903994608971212184546967643396491995235656053006707602419140113180777773344931006985536828151754501795812967102395987913770279657242998411030439333233320344791905911306036220938631322521031977753032380885101172389366266567560110379498676652170096588547475053200299829382682371075216397151977397063986801773264102729766453551768289107187807376554213771733954750395668268717574034227967831149481879022631948592978038929669130702104460443759103369763314387553197666219572868392281127147890067474500187300941678548358643064930880774128423735001061938097176317416539957149453485364086854127696722593502688164476456940890596214628764641931707565021879547837411744795171050326294234652344488210115576060862214258287470193659412219481991723887615504894884297864275833576136128859096490369670833792752738811839244951416477810176601372547702329484710574912299885757413087451882237268018958718470832684996466142613487091378592044654477927790869945068485422413132777987415715653476204042350997752809844540188705352048947378537427221994365488020214175814638685038741752933088099740686138409915067429380154975337510432888088317985690661348939097042743394848239369823133985874765247613545161958389283785549402886824479731612913844082847208444096367626194894198226105346638403247556018564865960497862427091639397544670696456172980274958141886813090800657813291947529317889645588222404771968474445497633852949562056738906589979645448561650030130271897175084128469359550187079939425338144566352609535733427030992761128251241786124696815656053624815561491528641753802587731254188648426479067485236756939179070661390417289381035693613079409179670242045024685488958612884079086918295402214989099546308681500456713282664850908152313798548928712675721373183977658761884851390023248141894891500453149535712315241564280571362358148994332275796896535163070630972098509279523724931993389355197831290199956102126834896352172416542076082638237466081464170281794202716986082565972698675941086963413068122859671335356306798074116306304259865212696198403730474030612570718876584143424299627091716648120424218038604345765364930756558517985173446846232147017042214847570870514466021709559360691191366731166556286132959657707025316632358464776845894862218321509681050624531843468292663896107311828208850168560537078709217779063545003549176055039412470204560916325616618447706948803418995092779047738174047423913310750949693965885985664968611718393680985930716526917813830849477441494649583091550414532440362077203447248109805782726429114562009208983112728607564797452971694834874967177099179200345051754344868793050489696639263737416530682703994493599482539629169653810663565058288462113389962434070795792463798618463571444569720184404576418451728948502631774540262151596600899391598626314300181545887354469342680096250044272445777712068366225044996703277687744590301702130386323423891498125449101894987540187053390622507549261081222351686929309081297220546566383100009784865634430547801851982676117878237680822881929237556345958233889698358026742768839114053294875822681709158891434992356241904213580194074721343442489470829123299158698494791353228569404659929982449037019023962196334766234916538062073392286247429009692797450820302920146027700935204030202434334618490701037897768754271354527035926100278850583872508618459113303799796245827367256922120839066699750577052896901627740323902120628101527764941361470092186359299840987131241464082399782163427680381671138053070671142272255595687479198479394764993075491942385367109311377506034754920676341193322910584813530119757556126559966454526205078920598104183680949432575452192693581808965535337542085316749539417898955706599614559211763087629580068367239172219419840420441231419446345680770496668621556561696688823786128096973847695494848098229373149343618151831228593270726129060838524903546450331893287152381439341864185964133485618611351636688631975905019985828547594519589505655549073780107387296715953847527228532987803851112289054762718349317415222931516689138626365943420971332270292212446087159409798075115350476244792802709696031850691821886161063705798129203524486899043066568338862910139760204064526362428900481866343411712446072596714061337884182933492879582784239564724673755170448582168911773653351522763825628837604384850996030914981763811327862150710456101064324171710947688623818022557348327747706591479330959322903935675428326451335439054129500884058384690922886999942703222349019505179900875938454081078737290990647146637311716226246277498537783161411024775684191465871473631745523585024918314831215388647488657149183627474814197208794341411305229756816126966740064792972308075490314681961943424348588024094648259753993733416186775959053421179097370876862227660273149720963212993901898041170810140896427028478905717514305484939348154992725860989805103660368740043029412532549475682980310062032462025698603805062013125092189470625620157171300785544119084260250437361919657434101759377803550986963338459345006192679522130336647387400243848368925849217882885738782723462742383777951312301605824444055179481239235856964673542406722533169362300982369875940977649601325970144200540631037573003608473562321428508541995291494232353903159858757646721269502484391899956288399076811203742726856357440262820738223628239374845189900398885840767006287330929970721933136624515043110866618289460111955521187223471783398971952253836843024386492124540421437789530998095032797287110634322773522401649295921456424621936298060875603490711341406937381203928200390550810970781660048418515806774349797251625607776730521509476594921901036082599318096730519768639363265412954465457031305977169697551828705313260337141437974426107070511352003643671823378536229901973280479879341986838010452494343465630477467255506379816479454392169187180094424533999163556346932896945864913608636176263353342560288433495125722624508386531362356093695128855363901568902599656746777454913905185526115301499983412304691267396707622604135869600614488838532407825407140404938273521839313190182815734638874272929967921608335664935966695997349083421463664598542430270595460974322438817016468463399754312046052949482536550416310250488007030136588442681824345656771482824733029892090587023358648045912777810666119429309030152250105229572371801237058760217037573878111158356719976795482836489158331273844233207189633424017867210370494641477436368873948250503827270264960369817501546961632282316079741725643972779198184792508886785276546630849043670436835013756640841094167206262778597119426553333875370548801846052651252234641619593259817221559694815438434198679576804662882897119701827532449376822381291636952688258987744148328017437443144839623750168996548307350329579730601121982188663422570600407826113101378090618869138367642748898092376544840768656283860900231970751768657838000624964025128049830520929188364880790630260538030365231117186323345936257440069244814986646514165332026545493759835759171078243865441146044831099893579985734785658275146548919092282016341949440170417559919183160904162540622807470312984308940223339719794435427689835784642794462746053668624909821380739989294233857330656257126910101429003282182681501258051289167171466771919733230954031018148724512021108546314338248317940123942200077001286954396854810969349474524843351181118902281271667845848250897741596074723368607781218210212471840151941338647707209895183558105937739775300623817839784120638768393674620403170313416567111541898812622801074903589285806491278454619775363470479035626987291604506046395242249057063337081722211982210077403785407822073688406330529911178956737585075674755021052534626994916617603427998574911106964356341660124619873804151119600055455111600018547564218576643727884605268618677134186094626220052691128965233486847814136989440859156699225589775749976533404542098829017560688696736613679269192269907104093544475690567949948491801013967535513302750314606721153319535226700827991312910720287664858401658566161885670954512019593494368406763111797027840745406953635967028894115664892187652137122124087092963911725741524546761759600591681449442880218620583654919128756250220890606544037786353356667272822003688583946830779285892900112184640406804425067640931218984629184340384755954020331109531197226322490814395631290789473386973080263086861524913724857448270370337637733349005924766877672719485753761792733776917723751359725940884861480436143103567733126285160885182061902872033761825698184992304556185154792674011490166470046898861471617865745535594242688407942083207094366771538602671774815175778355950671482620228791054881415584545238348319461481867573406671716542039832742610742422800955472704836933272755948506829501806296658061103162816156752085009371788704475487298855266859690813311799553980826666831714004888245288548446852281003732205388879286264501052283573231924160434675376157918337441599117772981446911317285249195955289617753634268276461955899749305826897327832117904682101938808703646249506808733030928931863914782078653878472819394080696471523783974580032883852734723059059787119914249343004249944488276566686258194037943096754274554751251935671436501617288680321257044098241381937427510435091815894354738422917071293352856063716104217410270089928140605798697333274091918607428824327219611864898636220016953346156100895065519915376992502620471674837766354416279109228133020342971826081648285429517258182569805170386511433941104674553056113606182265462696630681624806171755225711867741576677717144871336377259797427814668239538826972007083700726616499808589029015477608873633233006611942373767150368402877360980985136071478155606234024296474651277088209268221711976498920405718652025623139672502970090105456413757789074445720465560651853322838471475789168904750515620952474311824157556770163695418228189228814986653636079789334911094672657025742663203874676253830000367456809275084089026667115180890826988947729763063665355743939363686976709946093043822349154430797853466484410438669017050303440763405831169613021517295634042400200404648536611667811681315782444028210299974155683613060973239303685827788777342500446124457349089116056261658497542676239891776639763962815968244057106368602699252354101387636576413899216213770223201745769456527424128584306954978483142246242715400202807965041680143749887640187597881626614605966832246354978435127318737378173390428316055172282426291249805539569126242742333803519989350486286732212403052825852785935518137594463493650526886622444521009284555474812947441952033837729696322749434019561382464084001250092076667501817723770197162155063005145251137504860525969134450670154129045011306899829116270807622248704176982951273546448071214336061637117117695640316937664800491573504009025855106591688063676796312741738995167512600628245718204910412305161019556562363341706233886552890109800162525745075209309344802775563748787605279967136728283962109088526989068952706105822488900683896868368510217537498578099192763704113266877336186455908475664173099101259893748111889002070621315191286052807215876747135416576433239072570432101856799630731600875261967713584485994831903085983344691393732858841235583031243353346336405607465705397665421767177051851491253450691974553283756705824329740160553817373249284327059245125447218459224088823177948252264873700203186612640864215978195037832665498904722711389555076921639251740530946234223164850837353612669985664691765532619508727974707877633926176087470241638523444183027238395185005557147093400883706925586894027035123076651772518551984477386361916429570628606900700841930576281980796719688930721452194844021022288267104488642934785038361300773175381832334645904673349379342674886188812393153932252964126836660580267627404856268412296717593701410694024315885175533456983185121553342793022629742194402803082685124365571590918537201324113404114218405480091236952161350330623357645699529785971276453920396419299857420799769757263250251849251958189232740253505375590269622226864951485846952060054645589197252522339795495313985720426225409753697200209565011747837197903766648127853643037292294068152132872765220997475471716335364678791797806945945894360880021493625135518751075055232109921810983828238818232574795057633798930204331587042274256322530078024300137497680117593982153874245724135389813693178020623946149131326133536190237341775479774720290275982409036454259250066655704174074088723395404901660349828829758545489147162043565243577997920043311214455871877300912109064816388063196696689571109679199022465573640265547662376588777224895414575341890789880647262653546525741951990674628148008781462106307379241820480325533725239216315734532781884578928921096483219478011906993728909501147077392969966086942674568707186922412491746625336992434469153488561859810048597179062187898402262673810181774432999634261609993861403180901968469500411072607892903245535084219416052427172587411277133690924182834322767378007734964746786557904211451877136702588979681888678106946271735387665368980570816067476796272493737421721271244956517510183593242969419632394619048406167526755168164753989989422877696795816827850012376764601447029059065533871560009386043614931656641802545645571459722671795374052095802613790941893250753248376853836434953984424855993448153964099131983335895206676026429502430948325478246884565518356392815552358298521159115705248839396657559411259972174812388981347512204629743949250476061808414660037025480972839031368080841280286037016453208298816842135620350689571555767150561442584200157820930227390560738097629339180899935783272867377958497045184301733996827996422996992539981377365248228758939770875444010061143755264699367279097602723557820621612807308848366083879682245958795829746755554366683123242456430699657399910171435057417564815721219321472971497511256790535968017078003871882598885620012082828786173843164090003980071909352855486715930195403425899501441972262215227876576670316793322174379491152940366751311620929727546350537056811409857442227216454388763693157928927659355757493565010617628866857319139376736798192326776410712481241077426901537955415686434719482190602297307820551556355119732802082270444934724855551721974272281672189488030378569580009790997860300351257182398268811895415951246902495088646958993410815475069828145877592425754949348038814244780567173250184605847135863194569239356670623279401677101915966812924235997482271723022692727587502829950069318760634993720496611012407441650552106369898000564599566606155423750984891819869886370279717666035429076046875120128531756201405594129985666640020765063997943548257314762274893965495087415871823212044944510765379155302955522367864925632505276579366634850128536368442251578178750604671869206132093589934955995228513175007103756160518995838892686112104245807061971035743144683862973169551788997900133246965778705355374459881430527900617101153115163881356509372483792654126340361650997814672685193121274473437566844137053659287453045315454833520974642332533344544964969810865578000801586634148425837831339657815764150355185925994416805949227585303563662672146967111009086554799553152453577399442188452620196945055883119943105768891080126877129800276945668212357750637396654620049682224957187028122990060404144871354445667975422199308063843803203953666054615678958881971167470136152374715832159831414911745161088754171866296552250995560381201656090730423009853471096661149778228570019467182278429939842064035479936529879672971160030171664369599992145849590312994461288937362301815371487446648577258297619409950792139732835908949795683289031033532718720590145437465887928508945372283547050986596281486657470323173181619090591346335712078822721920729025768076923824888592389098436375707145973845199916907964558279728332846589380000239150156488934272607421358926809528585674855431587089083526684414327037013822672660552521342813113447593222034368724408077662062684633479557995736352271678452473478899052873250021312638903820344774050441082614933079025957436865359190171873240202636603700781100686930568886849050321429674138645721573919503965726476553655379067114109939680574616337086395414849166333887569269791752616681030548672522889208562636298911123085665780684284807486519229194904169398778391336702105905784783097089424129188270064734738856616578148889726547573035501871489252666169326975356502969879949187920618310657516402728081929957076836065583986419571995602021886317924109113601071703055938494379127693364038556594509964290947720475707332013127156629749505593120067088260634018066980703083583575222451617452443277345076937386250110961121316392875859839088109950643349604448406790307908991260595212684421862952511801183733713903157785702879439093310690779126803255383399539168695098453109377566240638323766349542408470486542098890758079332723200310744910446358090990858878470529042143487925203925582539846560119836544907036246113540649917348227858352256509671155944560422133044781151407907098893723734065212747126316400707573671388691506892343396073557330708791445849350897423147669773182426724725637527641052367472815998029671650557309035817134063306203139805496736161202524472812649069579567166445424495076295101920134356261757222751824304681944319373016043826845227915829477692900731854160945957331353861028137933458564421497453541688001801199734620872453595188801629498874665534879680340922847456562691425913770891884184780423845025022548084210319648471119594218307890503787527609556081695333379777185064600491267907690609690849495342193864452247209197812499381160371562320803451788563483028202480222152490161052757124630289731810096432830803339333385975283238244793931947073320356172591164545316091359875667284564012296888852176430798053137219527424806970232487277815636936067865969582128666035246668635040172681957697954863677984479135499880482631576633937382980827262688740654153579816369152008565969564125895126898138632801283160299168700348874597175195309880811293523569456571749121013575147070636366338032488011403344762642440403838120704134664482693303996110762841449266488608469236069283639633551199779293205701778835194192100510513917904900566437474534212946869920280136251492531602028804710064902130376260460309684011580673063910821540347345742656233019670434710261559739064525542818417980200057555114046832142106804440009147398767233177502788020008077868668004563257306782779178927460754556795514834246057260603232823621479838281001193246020830207444427870262995113577402369539780688016794474169211897153844104586670550656731558185632118810917624863230066669143349161162473404141721790172793451395979933710050986626074462266041365684557035503393654670838040297545571629723988336901158262638739763641908424082847704576716308022934754456374418460313642719225041051210700601052785499102580950611844825492437051022112955390678974841539953035673454486731194332100412960726420491240888689630112640585367812747990021027892020326491261510422310024454516500326888393166548049657078490308834967790392402268320009555668735716462801281717852639075457481690087062131616228274865643096810511797549515112155234396255079866011042719545097551787762330596049759110759058198152837512438863894201465260828638392505136588332430693270469096853656674206969827861734071252805947744306183629086384372304354701723293532743248834021269582811345771761653611328399088329143780328659451059443427826676527634406030862117908769461232530490668581883036371486363038924409717609978061875627999744678503625242286403134886318728923488898516412104440788727040799113405678319226096741219848810307970326585118456617881654606323163086827663446216955721944868154784295567805869290671872416381910995008237196279699332264553929619014922186614400258285345968789691381593804227199047739608350961023175816258905142549792604233835522205279285126189023178991734036759786512724882480172444335033475308781889732824898987586877725103754357242437390009145087719377049252809124548982516073953470938155371852014286042296931673829941803731812321969823679182539198915459503241766238142976977221338386126141223588032872712094252319273050675549037120021271041998039914386125713464076367355541520783337068375757438895924194524704181187839930908825475607083500070202531598020695282467912824640840683909330168246666682806709503508716312812680300124328664200118752650113305603885161895167848045100682171823145072637245884821464164057185874665386532141983913036550669044824614292165718043139864495300515761236791797834094638976010748636218520569861154773195891235943676975419504885343641348248386812064130800796156912956957058511904255575832143339889019518775978172013116738431377366790005893255123410592965756681818937541002434610836695655761810196926625228339108376577941657104986935850502621226283304776034044195934823272100436671907719801747310104157321528951159102045857043755671469761823982007151901719244253573215425406793754849699845422747403187046535008960828095658733710498860779219261823135906263215546722224906389057737924670325136575696739125536162564604963577199710211502744432475411550474182820432587699564520097504015710496745562381905463012577895108156778331497502153569029813772392860429222401079056489736377914082906109715949357938538485026129587518977508234295638699026546743266122697247620836881607886185485157893503557809153030920225510291583764863785384243051695962796068970146661232358886173177526792918776999587173793917941191515300324099643380076695091770165976493962773368899742839611745996335606508334268606172214187553088548439569098067744642508852518227172176334275735486161655028044087934514580487855852240096314452596071180107598091585363358023618696593296875157066152938512122708990251029589690747906165406125785763202963288581910815214836607288959922365876166877623150732876315520535786946905243986795224395958981722388243801009497805349289589648721667492696706593609522618495839000619984864257707347390187598099121095148840960541120699984530563421891609594767290973601266272375390158447753198880733634828054236527599240209078885988417993277120781244129357040336382454881035957828600534463784958922215032724562110751301833052765730318057399195948119298722951400745051452623908991169596096491092860699239659639598445314697174211535300793334510081994514842932072768654470908660128044145555046678904899195314127210288802640341003327268810425653605357065710085921579294499714271603435130033540643947450302679643200871932927107313800501459146303124313297117106885803552853870247297427478051566767001216036097928987206706176977949673325262982067973833697420284191412207299858521643554661498212470268677047551697517449621120989435073960912440930592918132539883194432295813329695126832622078865659527368078477696079077092564486877318137080418929799383154130261308475721641137601243713216811697397981039932893610430168261080583009578283751586058710547245381176470857324100679357657619704505543151145926221220564069589236235176361305396451963709723363789493520295524659789547862788937297889388761703344402273862635774485336217345459436040496545724417691827854951466572133374115840198228971837195968580087882417294019038264955211019682972150450765794451310980990465859960103537616140838214207715383918129970482579062320135873381851981382394862910955362593788020615946816926077960917531160417805263637545475974115019028611069053030134426493033017899518464331519118708989852561655269046854708879884950839421594751219972660559891636059102754163130189646902636060137697570152225838484654365248659846025159136086855362701309372637565666146624750797365540067122485378780840485031953963754470439177307559861502154664078913275114283332932852139528150612414886844833069649951134216280406631873665927309952866877749372912952967024703811658745228448705093134402755717963365933468816948058269562005185759988058294359400742974705545411709087526724786250858559952071310250831271212237373924415565260671526719695584438564639746645461494430272231136410203538189577446488189818481957851968504626085607301261324597538433993523534407816001622792209605201150632672583106115784531971924191613682902106382262613371413916746474242029496119358263101750478855166122871228386656063191805977288248097541625220025031593568940535201551176795005037106280008636878904999883680766648819455537839273622549959189647960298408850400525900405225186402686100945331986853510023202817423240541004184877195428726880070829330944520423002442126311664364385725636450003644381087695105193205736423445174540978275973979688747342733181414793463874222526445901353908926631538754618432261592510976555076679010920541190288871187482497542114734621123967172247981348092539719017747649217300785979060612818294468765921645289082731063516025099135985893412685103145825860481063529694243365167756524278109010877635997496628087390966256051379268375210279123465788420256296080882397967766219631376447575342213436067568404771178491686734293391414482515943051400265919047985104566601691101976552902100679882714908289064243075790082252168429679402896460423187868420426036949765038962165334872622696084133925041437888132062185841431500834511038662275897885233427209828779031753576815286541413144816324320839677793942588535916744314762043692366989089585113621661906641618623160089651789573789258615012320054352191738862257610933201988261230416583977601531320384778429466634717670148512572083187462482561656793047738206331178235570601327816420317436045310388021737458668053338940895202942817003816316675177634248077346048236122410357348932020459221133626155539088377977061429453984067758221724795514575701916119183697800575794953883456121213560919440279701879673027636671146427688457570523590178539505970226256283017423065409959674760927561303222597159703298232211149301806018447700019471904067330550760588268803874063699607710679705297319582151840278900328033660242138352758519407983398147161876191035225992931418702618681325396076818213609812900859205931658073770446146754761405065140417247906865720459857105592092071199396965501905939684490640686445025609670744916668678313413818697191902678516817856152496864296449377723625661893302068830213229016072565841734194330471001908573919007007955965920544061901051014807631997591858728490675361517263814510587551462776272514439310021511933719389294004099745840520680008212546515025317912315357220235477671968421505749479544923954530591259210027748445870951499939490492515955090920118506811767168449944680520625971003453084369894653922988487342477441231462628197397506806073155356062025129123836475342045416695296833369114214848309548730048349978441556715797022312263951287354928401072959915972947965211953770987326805022675645247251017902280403043393281280020950870589626729717928572580926105866185263072469798572346875797037046920134300394495904942259454548187249156259296463430394142636270228140831632545669540526786444588954594820660538786919337128779110047428368914495505252216578172911401928194210895276313424637027672842182631840032864861577877348839925862269305468130256614490382774253960653761806265476359248249831900908103107212108388105807241341985135135339407043237440888754159805422115230742497939927201364687970459956958421975557180433440628953611032852439012208600252843789389834445852530899837818151054290000858829675544925610232966960387195560848085092156219281254076531430647740076457270199775954156807586852853442873480965872427938239441412255242344057119812491608154510167566022902612980968215286863045522049664287884385725154317433598773451029414070583968191404255315025765523852297090962514154780730333894627773908910752111623119552618027133071325160963984563898563432955354329835237051014186501231497526109749793022991301100596528973219372199663613851246689076204207368579812560135804596648801015237221428585938906491967043199523350208646031837019065030737630076901066343455004316304613828076874747122240680787472558810197645347229308184405175085063989669620354417295183715519356540036390144616914491541824348416786201911039653722592438605624972859667842450262139208553689416713809623724985582823034818341744030220385874836651223324063451088261373601283427987939241403742808385603037775100558975490899253107522588161607288297771160805001610390020768657294709102699557814695842070285592024525942391880734639334869632600182226512150473093787004510386934815645368703853221805878889616082476828359345599953769860212146855550994588678616435834853318452852055111640055200155849897292434853103081469094979166979058460519852670820934949330348564935084134208020856294007303680429951361894550613259155657418473100376565026478781290573974108903816369644106889549653504473973327923363720804252789281344015192809987494459164306801963347814277115404728848713294995407311430820711983634884880823587450386875033065688576424885619825181744704511159441148729721757488890438778090092488457703979046110912207374799080068828939606675626199165226905883227985591124240749882519007010369059658038960643251935187618425826193750420851913360534524288287409391668889424225028105323547023128605836061672833676276150903345129591775902815418883887544742774464727936468534036116755961582105596985036912422818544773605099792348942226277014758895516904297586365869235781007828567549227512175577792061813908292763172847775542014720410842330741062413683991359196970510681504272596023836327362287919285790458809661268329218344528059044191501014018233184663121833875632111238328635408717550938703101911474770317089856452475510897731128734377435462521080955085092309958523808944713068650742182825654500336836403770537078484030093750051302662427524829630552193636241463107339390952266148842566697944324016162689026297882303804041803576794820355201414101578433801357129457957219664383511334629762509978449084259452365907303791325324784229676643660204915082740825376144861782513394652895590277448296931340240793283998710506380681744647417756476595364566387655716091393472537111056713682345854056808209753501768624205663900569143577624372608347543801071585270550864974565603460777257576211659630355497626053383614853582086767249705563468917087200249234594496028177259891925625200220186338726687754324218833189305050968420324132644705016967961436675315401453002284921918106244257901274926553230271684660827961375727972003695769528726310245124279526660876763878171547903544715972185567632364263546600272103126277263527843373181215207828241421145926377491087167040292316317965877809936648679513402950799873416383017187166772319873905258866030660712808450418662862163409354800315159906139841321232659926600024881548881048370801242667814730727721785314112563834616960454565846276537131547581918720349127929516982497434115326531801125755162573415633634853383292661520392414589137747606811235988988188733430996435225666172039795119586003287887107616261369822938610607328973593409812799760944256989081011452832934239159844366871660204966947603714193478489956116312748039778755558767351346934787949067392983193039393468634895325187107336296284776910994221803733425918706694437426274751421763622879415159328327518399328814504512574929506792191051593246888568855252217354144993749963255603085369516947577503989635774067702528447554060433077453599922390382508603895401851528425802812896687535250223490428463237736168003509152280031246395057118745836547033060968250865579056008755625795704611998299627293923818452440166155835473000316946419631025093630349115297723081483855688697415720672494341203451846968019281014208830012997208968151635537967023640941327730573272411634381020700765125235977038380528727808343594704017594901259517972040536907373690865207539385442892411826770046921222627300814357404886187843455312097825249059937734708508966636911830194181894894086774047701394945078009599095385948725168932688056748918502583006781471785374345954416468340152879469858332991342677372946295127233197610247619045856903210881840047855425886579426456709661514592275274466770914423383764886483857309271990470130099850974080329324999140048747575616246895390971028603815810891542802850189338412939914445391300608910664877922822008663122002024374408062819656713034357373440558805624882847359713776251174298234556054858008421453624489689190113427406166034219737380611694306984061237024857797784972684992210924645219517495379226819236184829174406989903516277219397635093687870712562780466535086304496501685688121826175925395301676336275210605729280361994611763970601189814499590370065386956898820112164120404494416063778829704734795483611427122701167051100644813943811408772356925525406588185018977532453532415619998244800033066614620092099862105775793601602424387947322204298134805319109779327422116895537197085849214031717747410954679679665142327632159852499451968243524011805130816019674518129159633135632756582894589589177726193094884609821587454777182277532958473989693767220582257824359807698349250101815117309288873494757927721214713453884793524339416586938929361800193548874656412505458973130886414276139690930264504426945102567581920409096447958317105093636186835428105021268271222974679580828425442739845046070063910734073609461699286141981470679943086083245742607746852336470066857456098635963604981593779672549189613698484732539924611506284790312562728151214274584717867174598832377262061096324660799064962541954536854411195262445237792557591474417904282768852988424165128504179810885107888325496998066127511750199793312586971275296562147176941823554732029447138287626854516630070261759189311866070268131721067447897962234471807834384944879651106192346579636511105532341729574100654102372431508395380840583698072575724067403134863546109323122719049953294472797745830939198677523955457238457938333450925108795823713380525935367162914870834314830991624188297816662147662372476853457119296338721318184735894229466589983933322763447717414063876388756480151334729770725632732133922636452219241865357139066914463268391647781552691765560174606204223100256000547317142157651885342328981836477075647425246288480090023699127533626207927390199323143629167863090615795465464305837298283983731856726544283938322200046624485286412629098242981091235259209686785154696107074147199915375370731744161152061928890151947202576088906756481309455747833157903750707481680258864359492638909685988399863727967525498531371883135668708205790976418130289647316508922958965727154198159211433456610051690616854066250988557345790833635391534091591835900440131219145078162647638161284919185893318407736781416064675321961951843057231932622351215646998583501377790436256240487059354291149483441442061791884835008850938575900577789205586973634714045061444044672729272512102814380076622492766619849916731068567324426959706715534502533196287976143530272999693727984907106446238288534386756003910629951072603847335765426456099376330656327636214120990011167433052684108312993572391135283380698153722946246161394015124454433127612812890998227467511784789662678542984794550272112877819755595279521588368189478081039886762339726005344771519412354578010895320454523698780054325186916751653370279479697053113561773396960000200216545463625385655623402964255143123618563447368484549081419725293147686912736301943004641572003101728220194358254217514447498707038369922085550239622698533499141414686710930719180271157073955911162313337369245524699057500129485145457768878795151383573335811701974619724453837563261668133020005152207805204021463121368684116994428254738122152384318685701809801937757694539205089796350218599229391241048969409640009373970468354554126591251791421554262732504336389374648191415491714401323460448809995356850587873719017787017338411498337039091465740615252028044179521052449989043762264618467290946705665599913300796922701659150513993607642696057020654772006113850557575147811220262117265843443146914974305142183914414312297524138304867163955806907765655084211788739086372310689838235553836551974249424663349167821512754814063292758907239818384041335587969744836366134093835076187510320590427537232811262566398115957576029370797697111813767037077337558690827191411133037194289956662998084715393672996270698044703614945136347114606791938594583481601094322406452367500367698591648828348327339616135906640958068334290685302489888129324502017392426450810592883102163401812581079484799061902386404714015274474625463405336501212380223964815861900225459311186312465756710573988624163491200525313339943426465155122978257065171941825778924877062337930565965890802748180125586908031118185613910574888622126483129924962585456695168320180869959655931280621750218534134975230743151660358428588833687724056737974678260659689629105934863293336308589310393883497608923298258487223159645900066891799923182155052246063174994695847016614113738685623703989814160838552641656997375714996721043250061804442916653561295194471016706673792746229860835523707720982934244833470401541602680044469888738786909728572605723438525988806475063727708769019369304147592490086535797617651612104799801257333236968609031693459895852175885906225160958518455402509882502071398079681032154319581855874729668698708259315834428339093309208505137467804120218712082681368971383040468495764350384685335294185299621513608915913742440203732100779167791547591214752668095318554623925115867342417906522811009471413536373311911207744308841833394228827686122618657219150003222851695452782398438334875059283036794715927502136573405274793729559522971738142297950877999189367830469750490393087912100775270252644023857563940907527481026671433062290043111507436206094024565006638210893894651517071731942712234424227197594491891220848565748759430430787027303759774120203636825259865780577915999260465411146405293392145319094450015229001173422549113122073481957901173235457948421116176070951274110441259252472179206158406750201901455443709828026476891180496409363003112968250267086399590282648102552230107387979283051219163672371127764078576706478015254767798823159704321306506847676585899133855359032144515132307947414928954253730828985236475708099482376138847666035019859425826750223106254740329019882096221341338524379898818807092509005262239753275847015785823225548974011853810277360726558988562995993364746521394031808829619575792266350020261391722244496073415794872807513674434534324861586286747783111460444248632800523799828404906670631819586567921955921270119092822932912240285613685343861720469334880645585256790922522220970179200868483447705585827744148710209749571279190899626362368638014689627583540021236646249161734301852642539808983091051307189946342826317390365733449432786001925250635040875770716001724528357123787982059322094159097353320867849792730308895770151147829618960100582725551695625539171921263434275605321633788047713501570468197997764825574344692235152038876892934879055383431497911669538992330608214273892380648548279088492504035302853787260257791509513117607556227165723956819893744853677949533120190723186870421085405302598332245547432886401776447149261300858327290848843524500047852047359662174248278198128602286151234031452387364504243995004851079734377745310489351324184442394632773250656992190196612790534331354678547757211514184621196135169435361926865460219928118231217160388112037297892990437665549408368509331729797676988365050345271090400649296819425462712805042651715348464123833176029519316999731131768704534866852287384351962380855848818323668432832414934097290872486273864540642123908001575386689640663655392076212852558591913601216068531866615825730223412477208572604609853733114546259327417876014081693592660956193906982901738288493557112951205809306652778214857274288118521371588553829066449304357319630225991671759745915495550075476239040369040229611312223587515898536669651046802532765236749460738687012236732624077857532736389221662227780477861859148904721244877815525043940664482902013423657342382810034707915800195101412771546895238556775365371143171117843673964017546023488149105386456954840272466630675509109087170220442849736980672444116874499739080026469736333387471419966805961367781510020267628786171982592788654682222491085233653458254775555859137814636177029815343833198383273374401019568731069651059042188784513421136580942469760724108058545503800042268145030089575075125513785367656308743685401397622143288900827998928831435877757328635024305253542645210485162022163736955851238536757076447191091561295358532237675319140060815932240069864496357604963411463320486654768327601918330496827286897140337020009853269061429058715049575386858518584671899411147397957857715878640945974421748840623567866348087429401747536550219115793090103620891106307603011503255880867470331908115462585488929619311120835997842210076926465032143750162693966591041782806419486655694665236118677801517448984862252539191672040926951202606236357178808485888479222232980635861427165847466615684495109437257496232975032894201052133452793130857112594570884185657626339131042091241438678012831715439570038086379227652243528885360463396162897495806629233554705883389147867795024130421587785071622659334854986000809774428089262462141706397203732837748605336025039238839997222461248213588213940959721986877494714480486480042508094468319713533491937612121919515306052090692771571551194979482845553776283321963965893075350354590008088028305422250134181427854397279800055528719065016438248210771789265329148796639339250428026133332923684262696012830789559113288258061713304438123699727215703467763715506032064251813145915001199120207319714150843369169174580494313558792336146511173584609388541484179928019389979625384431328055229274188489211361688140772293640947386613024106076857519831888316688507016802818839689139656829425599104967020060167130579297384670025811997137166140297161430880912283519617918083666296606926688259107392674417011526980668061320534629734122275766316494266855382481446191706692122045064460575585245463150727295131463512272317750889023922687164081440363301001719892572361122860502752526637135492550746872080670131765800528543494466879790013178092897481934013477240796909772783808581491720259812681222045188896992918904812694895066134419275825423981524869845866396366695377616806129333179159390247388111979996970120291338343431218931224196471685105893981208504436380895752595535889670949401355474372666167473718621155402207253949841305502638769643848509049259170849649933060971617390245931165861068554278132547302944071475734419492452151750858985261685394826547712796651556011306620754737852152383537149016821366812601246387450094466221139148943699072784965555779829472577867642509460463314079459589621859532913994024348748833985771653965097083110701641565661524839088989238384373499553136334888598773222624688054066833817950991131042242369899882657564857603681321655714955328887865217318315706699018358699475376412806019066322832620132395098158667763328062668140199950977829471362314704610256442241476159393315332627978456558832973022299256105296560124579294986859327404332869623323341661361337029609228917250431770798608287531742019260392121008689308157167725679798679633111691906615830235894501386424348899285590804734447172223246686354370484252447983631803234241762454610615150245733623910642692285242790150089961993078918283031714628326031540224916621570317238023919966078397475703156073355182524973942906205200844985133546992642606178235193424453714598224472245328514891341172516561966620793380675729019238686827575045352836926509951699346170234016681405392147164148642477132585150365546909805720546698079226427545856585463765856133689840456901232180058157966629090098990993944319250618354972337739779906386089537023796174000275991893370039647010656167376982817841422990218324718047853938868968144328594199195875058740716655058003302363087930241254170735707105899028396377221636333387531321960710024758571042295902910798879328984947003809777224462475946100144082357577457347743368815641752207855729507358899025957055107335570723955842897455256208682154407096532722532869842063713595056342452776801769668262404546956737050114364474024543966569922183217595830567967278345636358851788040918516615306412187663018020337290175499414182779072784164750689082152801292702365662460513811973100737000759845835616016753890767161994396062117323640864906832572972213315380377925842329213095761846965458407749697562465105632834672349722504046526505433899888099820596031088976701181648196407464563132799905300451841714430616814284801001208166995455523210280228255844477517466182794208653862687226374161377827763328444920591051167274671680560336195118800837599518262997048816251152936183281193745897715279916275485902366441113729070853927126627051665554419274275708333792530500957877560623927758533659816781783971802530883499869266900119177003508513736893006726648601761834723795861158320576160349664641278597242255156849246104129726955788560404903859200048472312611205791094044806097895027815050759173213010411083002172954725231031137096273150118810028496656157094228592116275508633325921678406832746758083595720701894614904528253647196779851357840610656629429296445284093348875740641684264003169311016186625090700232294849743254304330985019989351096868783816233064558285694744515311708251539866410910792955741823208465741430446451703867247364954452444901135523601931075435191475485555133671654547427871368953097651213814315219867861287524628711645268978751545522226322698678698257382360873359795831516688061695793878482409014786848447441009864724819922432600124491396710982273396397291610687597004474518764067202521772202783920486834737471375510605900133597739275920367468467008078640255524635872064742225532703890110666578135518472706383241576884699965046652339965703656638455712140392480096376801992123484385367905605384735727332581586721255923330858722543438642674895076144393119992105507320278901705148982209028457991979579626660505753493986198389429368847280799560675625894211175723919336141844534870911103620341981053731822235895369624957645017044695887017642028908057591456379198196010287465900389319556452114909953125904981780104845099373661385027578374357382324059666513535989174200319592312395268444774183240895765056965691920947948511281440946552355955812540427273716993916002511132890392278322391424457675356581186493039165145551551880893932838452665712171011940837494558571175380665296563596849569109262969892824120453213659698017301545030386307818190309635111831983924560521516122401410374016539817824543232981281678769524396908886901981144660979630428732241391038321440944665814655384634242602639867884619976937932008473260975564372089141586368597052238246681037115367555657669648465824176606663692133584113971747945208372911937935052791139595112790227544391838893615766881912455376786467412207873050110540807202969923873395018162219107911606059283438338431199491526549297742517631640369202444149991706748859980454079308459968883691326027903703585552100434240430742060185249216914738767259404293478880929514868477259693855723052746382818412434735474235734448965178484486003323227856214196552143847536367135040773393453564419358537022378406608595454829056677158075425688367747944264397055490296518013075926296018192806375961563223032619820860098872105812323951783832324042181556366924466142956145423482493210566885848019015714689744190693466737660116647869021649922043138399855674656266965700459230278312231404099447910412136480163776670200837431695345979638690809354756682256427639636473727168340967958646537615070957728553112113537664668992147795076780301500733384921828629099275740180024915411113440929641471032810022621781635386026979712846406913263158793044797566245724765744333954007573563096736784856514779414696064896630825624105917833124652423315305114277734984126132544026607167594332836798085603191887257352644724264491659245623373285204121758128661771258813325344545281585297029423423833607135918709653388871008477588075337319901813851083035460247029296001993568511041045092519667462706994885342378555049225405074603798295638276292737101376775031311713598314559413361885451056066280616343821339746639021302303115566391287726156593141041624038994986204476859739075173007294732013073466570355040408352846326528943985940848261212409943175093562650741320297311699020683899547835271995165007023204269736210988673604467321734214116230109980559167796908640701235294488620718728294245469494438681227913394607975462306573196307681607452764419363103251289403339962040805822873858017941476780064816157525764730040648216425982313945681654123598068953161669647870215947409680849302543000892718100428753655070776687600385706580298771245630185481667561916106695717949061289378462146624705982361503129431078785427245111438553674485561799306821536052678955306275910468204422877742561541042776016547451225638445375239670347192487381213228269712295381786783967796409153513384293332886070033452517636081015363023090731436253061269542408467015607225191196000322893773836119947565592877349184709439505398861238389114722070036944958664835562256227109948339713092649880487813217782221564514102574970285899012714043400138598513428720590090807419514809027228271739268614422498639098344181984712337031211168065147971417467735509494379251742418323933387714198224499070759366495363834379251839152535120023975036153933891966474803211759361735443640563948382768747223663742694562502085213208249353640102686397793517969374369350166133100547462606201302268863447054053129174704999140931209500920430154993667112493308398157011633707158700954566331718415082905005801693404849854896592386624636252852489291539014270083060951167942519373469108141673193508293860038735529483155586723212936512987407341890175007365266674174371728642070073297196893061644978919471287093356364733278559956925162338995564560341391232281617918037610064626596746016531409325388101732595000487036775638692180953734342354101521854298621255316760628532319421535527024181708799428176610089702157920000648593661988236392211181365457444124154347395664335151565739969984577357194394843725530532177878436253813440428642269274309560848103001434713541285228564030776077216590923460891459889725758648814142451806188793240769301188910181283616104542511827300033257861962624181545291772774763690137474546656529355567638306526398993455571311303958937991002056074981599324875845021118603223363875559730821294999795153656531143260852797130132093264288812206484142983885778642822398036835899363966764244590227629223696393409477954458585116034776035393082399121791153595640151831924633437722407601033474939085873551275774220942502087831515790722881535293533017154743426675437435241869062582179627058457693681929897764933258865812754504987033075785227894470910289599167494975234452078251555069702502550844651791465983345749891760232861289498834936893188813697216651425907014070336461739483377118504956572633719561509457671966258137056105073313553120069384983004510219442573944164278777302853860618865624883744907873765527965851206189814814624702988300339198258024547480882318822889470986335835581167480758604996065829565255755726535673698737688759016786537366764852371150141706109408518702991593940404185344192476188003072216021379016015673765189570164437397676289796984565393707205703184802142697018685325231898756576036016338282303612227492569957375383061595026516287314098736361633071663268646320020919087585112052650053258956337093193475542028045341569472888988128693461123064166608482372055179139874824222886875129253276796774314994602170311896922155996817899574350709728099385919305483605137676391589879181774644381192331628380787990212762050944636460644565509109274233224284194347360232238626560631109910163827540291965890563113835408902023187528615902966315797687942718705985482953859440908422453268974100311417566857381851132635600460206646360963322996858326766022598456720510042939604150127988234817291139596028997970015671793520060200056369065910517718763052503512165491663032070927523017343796608316860978405835408347082781999413639997139607720988645252367657442435440425290945669304343863560464357372662082594542231704703617490279895789862598562040932474081428004589483025442941362233989139571944999572664669278703690109071103303549276189614837829863385652308624917068877820715514608362099152834225354591051693578817089564478443584472365294864438060454267428392463139236625728772276848578846883258928037663814756564338922695455870209497407123804853374868173273999416277084848556812219810882115502393276145518359616950159561113134293448535033227370049885657485614623872442299735808439147295052885357704765200117730945060630663511715255716298666534776567040153723214614449869268345625685657812199825790679335072843680106404003221180300785573715664558738863813297606634142048588299172464901097910540167531256407282493639665685314441589094619726689741927990387820067918767118693777984053615496248635407629628907616701450807273275978955572381785533532718073917126756378883761627431375613388072746229084432475580510647975277903994453182862689959601131974880924552378702305134792961308771505575056032757260323449931491414429779819218406348591518095330843094155373374749987121278008058705697072729767847654769585793034299186311190479391096126184345600975832873203577196632088479627787778364435915913809973375487479670324745471858243322307849253200374160207506007913611009335306488309695407624175549048027743102916740247386325943747654450324966685964795625140001207612143679634204304362319730790953620891729535492862672415500214910750507904419870373826839411783894322745938500668587378376370145410082295100649399248966038257326482512505647501406583115026381744104049949331074095334416033278416894907842694527277625626065049809249882545733219240268680126289453936083660345823155518306458842308759436401596198562690106069720290225980855886787897222257662082486894067862496547331401424909223511793736651676074314403830425352317419007385079472792605738785068967919846026873082789637224057303309733597881433751577037419690535281204431550533182606601057387384634906978877004613405584132657083070755819561141300192260893636463341321373566836993800553985830479047456383220582950580158000682517841774814749780303652399891947483368425174530641785330546731206292492392783016814755625070970619349448273364188982634945323581717905986314995008021613153372266628620030408000791504705572355618206738176563126752800757929300711711664045959219695402733007890719805023107086938789969563311350420992401431745964248568163237900102247301404679872855160895316657061368677237411082696369624483941743641043610919829801972538359641312176323413511699122682480290843323330304671249778632754873036049163788889067293376997201490608581696813300833313423704851340064170380236765537485831602538990377539794750278643065110012989226084294727508491794150037449731879617828124306535221382798259079279025007231409234460424123859173795359575691642192137671246260936582110115270013792830053996049116003226497251996027705144284487608462368062808375112604082241181251233047949717337476291428319099334940986189405285740347178466215095577770464172110453251513372727412713788215951119667374017499079416420948570128427289057643706850956183345633153643708774419657232709631385056176709282067080313974253657932844227296414392071295523339061953421896690831876688737882712565799234843980394626543326253106597498537422814604267137193103017276515712551087011173938305146731384191128539592754527667958699104042807516965120159292330869376804003589336995586494007153439366752583728381213839462473245876865885050287197915078433562432267965211986029831696689047016683592347607204344865209973489104460926528601606073282294796519172345039715251214239610065711487342206838114163746637116082784612411410722836937599256006894998125961884438033151517733657934718711945374777153179832205634916304393525902650098511208110490313986547815832764376925011309633634844066256198332337311870497860998671014652353379616824829896334063000308335058937524679103914971431151245560462489143438266782287537359715938907708193546978396016169829959144245021005324481891870555347038034485775423123340695242679030457540876136684762420670858207659926702236657539880481023005486564704661360469176051002159078517982646584303779461359831884310327098500012021791121208079082779448709549328972707158118228831674021749319933781040963148840096749423151952120708017177712610789051280836387078001467305277152993907617105736917706817982937702870258698219201696971330128911387657915346795874089763907995457724092722408190133005250502744616388912104494143656173479168587269956575041552114724031018330892109178313164193569340893085926734207317692560179674583184709099831430672677002875143635422425877361517693308632779091990717714215631454787036375936974174819798367904112735998169060621677895991776077841880924042367017746011966387332685354533168974678877702524358091890371886331972619103591279230479207073898639539859481056640067004944663749298123041352829042111688760372647460648384544696984945913465428335935687503759231741408279311999923815218977006220399741548085872540817293568405016772739161502495464431209487436268637337785022170603038374418387217911941182020136511861138190814837468568685873678910950699260691878701412153264792947839047323983839666270134731346192109151932721314289637688788114632673223319872585643399151165689395917617602292305706938499931375294738259297165904674957169078557908068221840895883117859891014752085631449345944718139507646106955750847260990556016295040068432283923854286005758236463632987415994810208857732870965450013147858786005814185517089705046147022633950439819334777449078574704582414551164847262541877758848941621625265234910587606055467101643215366051810769109365330587210873747495882542035892198320807377975811958994634848661212678806493660318452401119210234811293473125640472567111626096333643822459134064264300213860499127613371468643530133695075284957714941036490910748824312953413615226034071164126352823035726758209904896023689085449166795171265598889132265365479683638366451428947990007977599878498075129055956037907541460755038823623686471772444931328914106923820464145193481081929148657343657572912722169427863467731107048030823672505451706905270257160286756660567247068032099264448970673584979975881344365499403089974035205446229540651066706058818659854022450208752196600337654479355970244813601367515660143511389537868130457430152629076366164271210383109240132002577657621000247176402009098380325058662392645493349733428730912274976501684166004681925067397150396229109769688570454930170429243224913556664768520429714419938046902293330693819922264003842531340201622541230112064844000312529515583800382775775907797153278332140199616129283783670784664619203390214403682845024818482730554071736718941590206003143109850741977411775396722081490413329428438565781811594029021931056533304475881064202247906157543670869813321338207436178606699261868923121147488776898082933505872160981364902881305510326446918680288494818004401775190857095886377842057708093782184773141491299516488169436796866071825278918029006414985304110706957616246762427238944433412101817148085149797876582031456229393814801137829451011049911749526513729585249794817708703059462735088620783069263649292776062710068567211638746027331970611621832746867512731544055007273338020060700235117569438092560284966676966920925522607003717267267360013976676032290811405332494492820386484473065355321364942642033177484495209381678656523505668355109626521368119241562948085685631896305203119252409110198562763776127376131148202301254318958874815060070732190899771092324643590040355103268400851483707332614532543912495649054829245888760032699857705224353155697080346400231013561871452822488581716268088414416289378164590020110148905943224882074356718494806801724949624533862867096639073591749246143500491479159773328778113970046443712484479359341346627651376964477706613567482147826101437556162096841004879480863219012264890106177440731267682276311051575397678216834048580036937857879909828949456353904089601896913328777159842781657888122139466286829280683976809142534694182113413924258290278949041893755730095572304689019429275550619804752333677003729629134551699352859493895119489943972569862433113747300427921878642694398473671196056448650879957299195539529220449223884424146195543365874819241969763363942802398043614387689707843528539953001358701110680331110475464610643638146608861911711920912366769911818172047381291279781566605834849972257010290464066488740766080174337000334241803249599233735552680002964776984731090846875375270996570583136582300447355113757744304859657011418091490648693833261899440286901162863881183117030049220586096291294818165982393392198080187394284875466422353674587506554662263539051749861470540394777355216213868287952901999663300265356924376803436136058321469452133999698376164004266529568241486857801069923780870210767026360673129767875323869755846112696854269270760692588723869673457641477497575877290889525569626356951904033538499496708666321423074368044053191875760292307803609134334247675975025561970915398669080389385422913003004393917127919348673767140495748485031320014269955947427329524633180017220527912372332397273372430573566176268220591754957357843407009955441396755946835147673687373411850013832138783831786934645697419317775778080813883036358634081719074734426479441594388898441422849037278591483506277973173962399263577576452687503121193358204620787509610712949332327760342975199356209455418447288721703203479947682850893554718209980324482549037011377964416221671901044388736775102620438889504356230001734885844514554469427195279197862935374926151436390155305328505883958153704100611009242608916751721745506053830811977620713247317246711450316873234852597783465776840087791937741422614098974820765281361134955981832336414114684932141487126021901843726174721775122198234315051182693604256175571533465868294304573749154175681057262492552619849045532096960124884521668476103837956363687859494485494640765415510089461102078533913752133607101055522909027929145457026166759146584158659912120324755315272000591300242674941957765745362259117607896782791591253135771321582532463753465321982531994897929180671657089559176582620682742826630792250277751035630791228656087822100615987496562390002558889611972362084937330578779519456842050875862640288729230616046981958256428623331886041940330998850446763368880095503760663775100323413079316573512224916352187579612221979014929580453953979425214234988316924899868852437367604415110184878560868841925421937942084731845437073116468669169414500374493255188184176969802091819039822091634717947882218647797093852016407002531919457917726208451364225019107802490867762318212395693051618498552848867477365672017143214567167232864531973613372246742525861360426691427271560593940518204412122740388328953975595627969994989618542094050467557663380958141309284361892592455501367408495135941747310551750991414782444497519339213573649655207948493621291055233441826294659488797274827722593265345720361309399893591130527117207337323807821484506988669448211646183040974349233025113016786118287397942306990376958906311550294139556909215741874496765304948870973846556382278095881834897105020041195565607866610388853377397765851259872051028422748844620170581781673585138893182397034830025365261219840518127915713267784989696758777376143249676569221119288651588439806034544042218646944863377152458372348519987506964953847934003086016057274724480537069643461760498990929083831840389116892334031798994600891122277825604528814430632258314505223498779003573329586195264638134658093977830295852961466401159416218093321593453321036359589766668625752852704556560209919513806150877560764259537755625695975060939981569260814695061573808613951514943324730448123281721231856092562524397707350485295209719343898458571789857848276277630739623316668926590811253305484018052315303176221496916128003769458939079083362773026615656221080720241157143904391476893889522871318408244077240622712771689614964495909784668808275630585943349827172939197563041490517348381029964189927062800173133595556133338744997358255000339062399804766370130871309523192438176804885590699071904627923832756557024371594708223182242407191216917831273642188126002661845659419186341916977491154731971122158266441139338886533529868665640046446370007209710944696829962460990076019157945422048817294913810857085051318690021932983235434463799520819462688918455597640179242703006724026555203526537687199869640296266879961064889235321986466377651542756796032343781231836373496339466018424933879166202235288740254918365103274688216279643433939609096337056838138701794200523876042351768022064843507651005108108938180804417950465203587932675408268793406949966548337773224980046548602089223635797657628616937173521572618541650189320289085223590913306337181624088654425010953073563768626521500581341661581497516170328948482419038409776587285078621950926087623614653022187263188747375695053201243095170252772703766995845601593155734957471754001749302217342756647923223364054581325990035536494899472251205545799612316635976762891888115711507095090496764182401278151724622305297898159421670934881430180238810815480567005741808701365366569473053772001647729813437411403210978679447532085261016430169772926374190002030251223751871821517515264284153757145919583862296322463884191406464649996342891172145374015833269358458537229637207927247676029685970648446529572930246594528720564904213022660877969542452108235139437776332265449729240269536852498793439178309234083942474507763474175659628092638928986193554576757549536604171861112406332658593825787633703939962031621145343830305482525943100068392092020443003111508833014341405351569252297374615960255262238626953984422041984074249458742778067012350706747395315046327180487769740653969587203757063683058579271984889716352267734373124190309257481248246755406943958730182341312571518063796891520651135290458631388507030618743392572395180781811698590305770090482656909703793314222357469922530781807625752804827761606664889083342236588498414571755429930271914454549152509266288298349831095198966749191223219330683086267215987250355797097708221135068139732535926785224425231190752316253765724218869062232600497882022764739723610304454468742094151908379637217329475824010980236660621642446144038590183997244689655273931462387739601426195867377807156064497006221996260331467236483016812602614566807212324887592714772545254016304651678806047327594008729346389060641244858940712736541243346426505963492656018792914337873226460336259786329864934060230157309184038792935521486533059433524313201223516232047814391771429941114584893391315594396682722749463125342679888584549753291231840071937655587074735221827522811211223464056660291032545192428829885276317886753583091070174661887369862339825184514891998168598442874285118686525699233170250111157629224306000231986633802564198035701870724491331259317001961432022011080155309265041537332425107179069657602488505395115084227255983973365125286039048230799843786650017127972286269873184364472794911204397489888228877082490189112830562304222533833102571986287720095343264319362956001094964467842023591219198449419996738938001700278645047744813082618772583599506141426687264467163308162869575647931761968144031548592956900064409648720889056505460745812215857333470816694030256536632008945715741444398725507299007122015363313397553088756475543170946822101567327853001048312678742269903777670065647090162246675494736268922490905716684557924243997090560530902584976597898229601351943053496543541303490292185936119304925683609398897634373250139203973797711868809656788517505841746376156587415390224546312077109145422169797723295523855175355596375791812444493660746718076776420574802614484589035961485543305842845959451775487501100499315151683651488814446287247155348558618056364293342219274377348597992201824989189326465003020177263878553999544664258097784285515153329807891589107013662837268594178779217973193765849751992101336202224372428591983500513368524079701331506768543796163948596189118456782203666532420533218947533069059814029544887178773243746159915767772854845949345283744464965672271915986194484876881757026067832929665836518221222574377801904879253130286674651995081998139609342040502886925408711669452620339812594001566472530405568341172702384797044193407353533740741282950027710978743255268417750627047990349873868673002803911664504953708408510307183339410933269233624242751279269629396111678144047124492289036692595663126230068089975730010480902613786734656192976172984128316662801099923761569278434098659659335883881621398890602183334534127438379988456335009857576859369664904766046932137107975919370752965186418708629125820781035410460025815121493027492779176173887672896297285088874834978658080813901836501998623333845852902797874968030144384520553991850249409189119168418771149790295197808983726270067724049374552473452053081687048415312805607862257076703246795764601714577341580665250806020046190338880883184252303172347375519554073836356999545657251847554860980380487302684014425154707958745623764358090364181670432591991824913137076960364687929716161582790271085164741715738266557748855683987000588589225901869575215561702606345585205456759036313581602754216407817207331336437909237880266319858110778034021965087754193597532510432539847245779303267230767036921651103062306744561492228063079723441588502509021185291817137774312041864707213037282148501307064316754154430833292799263571409541110464706499942881789256504666550316717943252488260426106344107675665204971826170849233732792434630646684046358363590729216928370922776136166939596472357110646603839982749689491188422203356693105875500903577844811330360169113873408571115844415189591769789943193217378989589597366395018463490791043380999789452873341870759781476275111324973443732732962995139489521047772991178190372379607086185626310754937479394640279886936923736559492440834039859751590942450349757232714433569689583157861970320301947499600461977594590433330533165454341588306054850307701579669785391967225709875713719998936359490129804416697657761108788064996225947057118693007005240666954291633182978344640753259904297730467232411537907935741086255256012547257558607809874002503108581370794735353962301816280671344650789580025973016863907735488983508837935196532889666259068608340016203548686392456757548396455730264941080635986622176670761395843921755570892266486852862360130176106670188155509385885884562972086950417550482758541060941865937061484129202059400411387111625576877370361245763074413060927868742230632565149567127754704542008476304048824048929135733207566816626639931407125104296086077344247557879311350179708294344909892878162009141623482576412804688322322577756393631939678672526354312875791526719073645820248375508277722201605526156589852253656558842268973210458979559937570490250666135189799775017784674058615728138361078506307750680311191457144903031848384315191396227264764822552576043063277608639999987234289027283007757253782704266712889454578413760975686846459002473270801628457296572293600248544309347464080561029018657654887653418348778919548587214447030920462714192970255266635804891334191085692374823352120800918607763028141929238555715941305981242346921194999842513655911348817339684885330167794506559589525394354417629455192406043708077514290221668985923603560023526555080313019492163597679821845883048687982608323047658088964140403230784126847937549743839997157522447713341602789070084475438593777724689687511225426742254677440262994701570111842813461746781036113584257982759436051392674134755700714874618273968752933224675490283533643524811995142032513335752973477801067031498150581538515835367277968642845301349477540751368539627200726504878323693065527189176956346872835627964672095122441552899201119853099961581517326072367273436362685656284784837299362416347377946757470979640211777394225814406071537227992405448163855668507483593221321646235118287428733828207771667459930999339603592843487520051800482311899765475180272496081779349996097085773179046870250361266668189791476141042450975676544074176252528397276339808715606865526880396195337664047166957582396356763744923578362174272092507119340716789532555907675920364848530419102727768728701476266706750771517605006457161428695020078485165064141778231488071143351324274219326004517158616254063535948263803214174584858046744760905001328246688964193215457524344533064170204968835717027280179949123660281884239780008241203663679890705904659271653663096326808524771132387073412547992107710272602620493869259337025742307006167063494014823603537483523569478420950516454621073370385416526902247484422603886794801267265683585469720640364520068356324475490812315234348923194849613906149676191916850012970862957642648346770041799062332535703594436544762898271143366473202388747784851430690054636306224746208628909472413212182264172842689299630823522671943966424811382994394662940787141231355800364568316490895617322682146089851078342344668628645421482374976980417219329274557061956761741173800010531368270367286481532854333703980816645055874527612311161398945043464426830099169601212937142627108803041896634666713668041908023924077169410848107501613231637137889014256501625155947176364815741290341985800677798531856990039010044744306176383641727261967359549180877358900074602783052497136285752423004072024993938376223792763635642676671946367758891031699918210161729783977559862828614952834498338921466646793299616156055012853912878356237211342077989052613894703168355694554047336817078763588189946001104691176903879701828312886432875171152960799558902463519128292952841775397661524543252697313628803332799025457234278841684409642172062904436531947780853745819033423806248058509426898852228402962087800722790891291163497348808859119356432764749226727355068456914575533341053067191030009510382152680042729091555489501145227883313831750492633400139681147784802905443238902916368498468144581546394368600775649137174293250977759349066071821034497069113689808848008831385274415152147607724781002887575163523494851304624763074907811734197954315720346089498394034436637745735972463763247123821375908628197590929521636071399536069846148453999618581466079600877077819168247843918856764368565595508260305136621424294341482680978962496315466337651719879786679086237962329649737045148876349327364316725734090208102362923958582893332097245057842408801736712629123438945764733015243228242782604103107309883167347695165494524239843738947169706407014486619857063087610830490178964823725909240326937202195305618164004972595722713581314764373906832740176778739449328756626457942862638127226933809131775871003209930029675186376555239822127828443798489878266692592876495063401507737575003377450880458319058861029588213317869945574056540571635426560726464541986148810291616902138539368319259499415379628322044713879416658703821199311146791861070323214616062537686637789429749006714737191197356931199062434250536303113319430747848724539425442027276161105741402836309431236793111810112629852827425518153230223173522555925266883218441987907207563836527481878379123396520981815027036337214815471570148496415562082902257066337569830168055719849816844920962509108351923553290024425956104955282315382302224718307135811785958391862630941494155013427137291188977811064906535181293863209570237438132966318770533999877787844307150695200139954597468441735444249383549942252998535142922015384986938856884490692724017473852979836688010894820832465514456365935501629168869609452335027408965754442284372501868079089055410420789345925101457431543230053702325966384841890600910736726604218595502618150712513482345522519073429857496666643095238403578135047271176966526665633393355049656206664114911892820458308143321083787422179910039224582207451193408242959609884171635247839296854348071067460500756512683756208431881423853174890568688781809988703801976061388708558414727980388056517495555363787426668524616278152238605608972123679016256316848724600473507216874949908135865445164111222784928566752440409518489183882383991141426463483485059258244094847209591099657071532189080103962502011347036669435556375100202781593973104251617995295252042734562165952846395403115792873710864953511306088590696030937669025106214198854573913817600985884045052533438122621275350623595027506704411949234664662414479774140137970617111714166732711586784280869551372332062006502966872806538102154568795389753893879338239842739080634030420970078093634154845117536003617730314019939993873692560042800844596116403643764801880851603770190192470075559158581403361144119443731101604465081887102230093665367780051864222835363238689433966618284766647521428615809707244626584265050355079891323584859470329459715852543710189560007083911256084954037942136305576539602684155695064314762270876278714055050763636726767621383722189993128176453471651558529101290615154852785154605401404999759159340594757648635492574235814168047488273353889365815873192822578416809731794819410823194000785622966309035121847408369738831693422874145819462469711923971894726237295356470290380339344050418783886371504931361942343690717588016960069261383179153433197574636299084852721392169861064566022202001570226231105438617890163971264732967942560357867646917929611819999828498209951713795098094648379305135247133142535372247196261893783299899078563599388140073392178589983330891609378157862325580294143559139199016697194450765325040313816910872903108339116131893929313986153531834722949201179049065888623497547097381459917974449811658242727526582933053489713264113294521107183630076111095325545945471135063842900041985922426578435580379045687536730994428967417246992400837043474694174525057516677614337052971951202226477129312165072310692169935552278356519457795634596296117380070479099142770978238578247632805830837760302272207501886895519329429096918379777955708164519696990259054381576891762175510037482613246850985596337525782086195319767484423058327434269100244988866923328566570959782869408178396251942409732861796474191598731840423145463005129077111085395124677284506497133206411812452204775804755633816482484937117851770541106619193069410273032940013280080973051194007410013345365335658664376739041564602980080010436448487221616799763440606087622758049282018472654688898339831901805756389433726880584339266584265869526015732837858154289947468707580235964352567435075409442781977870207732303540496547485477039270463759509592557563015074187484432592378902360441637518375407460376492989146464962748416479236346223394163467122989147071898393341820430200665601886585089408934919618154679471690437488240769239692439327118978283686336465706893842805756868402476564907315308996205329838706900421320409069597178047196136449968095116795315872684563584142934332668547571754929579578241525252999163776544004742606623953988124428884323648514630551252007575117714233722008763705410589122280595867918051748593574865466142437988300206633418390969826828946938024182902415101288241144090116287917774424794704574102842859916276022928983393150770759095808178132500635550300567591419808664353407660130315124324681554896547764249273974901209569695247217276993706971605957924089631533797569855593427110006061028856794200458983027504084845043394464316553322769881086620454709548951579402132961726907367251501987744095491534231760672932517532594787444201247083359319457692374925026361579761760202755745113927191543161305045832463888748236384909106424056866709553681715233455997065534884925330416812022903700986336929948128372992253497917585715086448601613526747249200686156348626961345096676785148173238677743430809948561439189319046003127667120330651079427090424897333627217349065943496589874166127474753435478870315226179281796557247488720673853665690534205180387744021111338867227315722873409674773039974490411573046871398745575288608431932601523619434773660860136421811561887991993424758384802225286015615583996425932999698270680141074067282539906349827568462187687914173604719317101806551995833645548856999583382561056822803197805100328187030300608426728554517598755766056455950836833822922057257405265423036422849675952942019714520348883614094524710657860332608102782648793702464097472999933766192211063384306624898647824282525859147690931793801969461750251588919795852252578142145183454243044449986255498113451045560555399413741231283415517271460093478093482118762871021437415034210954140515631936529359829676888133924511046826697242029156362799589826950427983069308357839061047572948592011956784766419200690592339270665403452895867034612925895093559933943975022412370157920927387983101879651820471087282206107785993817310906788235125830494442089765397086282751643280758453340651248537956211157765558888589504083298807127407682518581350609578343879722439928211279577754785062843915928173868690327903465345064329267498156501341262948145306063799322268858548450219058922827861858943753525905554252608487861974748731509603201635291998519885505863050364457271692691106547729591547598344624056287766193788614244285773862529680793624856429846597052287639473991761563344590808559104915709876968399250165523512151479339225599929942762064601660714609733899358951961064723290963634007456540361559475177313256343849489202740968311230433249347591228296638512252708843093138577034522654006642220623737261461126749538131389537098346959969286902729928935360357683783063752033647960042596704956095648071008976868627005849280728497089866401812074272657583584558272549296185235005775402211332610757966287687260208314588988259085982713096195792262462649255127297484236189487970820496223398964819372344333013593011141616680546447922164899314471309589376510106814691150964661441376424638486128489545484127429271236365695786275123381932308063266355170839997063577258529770691635833186939729976356950488813461971218948870907704043071020640893440981132640100115500759643672089915113374722460800121886179593994021963017640088841435319841551081983115989623092880259611464431264065410763638900627937229612664461933978677068696247004733192210701756903955412117855211390462533835608260814941750665741514073565319101796752588282242339744715546600279112110420866959589430799623972691449341542154275909167040668669835679004707231630305879948479131797662431030631105355900535905147611832562807412893410151618131574109739464726210983731814178739984187593291103810073569278607580439888447042811333971012897183363265897387742642062579210045390408135820738175366930336911061998217431521772049204442337465077088874034807987214754735025227172330999612044440889573471662934942796648749991079475604886097758718748464678722021100341193619660815609277887420834414059519491991900400972298236353656060116786331847208646377972418935007000792095438732989214227160331093705159959802853887561944586284670479848411461115288309947039505056045911665915831584751049624997241599413397290832540280763227578048790455884246364418813698186483024887133393030510183605101414314664449198196183579116571770601754346273182913677566811580203225176922225072388337444447786240090013337147000828110906748603269692039972608593286124954261292874282811664743472340587706000902153252773236112492015244347139379072335157724830886597097511147258518275232085972050783116160654507173422360588602914356543247088524194543455303995483790757685799519948225009781611064065858615292785598119877634946111652448731659296926695899608190201854140293624808010423800766504336830927290660369601436427923482776074520045043490027451676009309869667637715902684677235449098034484119842965481865170669003848166234147054326967498004787210467055955842496358984991902201621332781894446696160448323448924423144214118244054774761966776683491894387256747751271025574905453102581837024182650647560133852709009499373170704166527651783595369218402072079442196424372290361510112341426378962779924801503643313387518120772685675633255952652046509500441233158308890805103903253600516581759142595998001728518781491677182504917679535948149741469626472606625150065426548838746799794403404097256580828900711997886531072059051709567976445059682685508203714782365404153122777793872229896148526059468000413225137492918726778316248494293247785822253273539793690704860708891702404305182368215616850580225034533607217010677579814447275134479243673044411512811748117567120987295784553850692266496384290654161199041965243276826585739034128441015013468211717697745898821818905030269634290467056363936583801931304299220576269816933662444557451636599172910694014083909781933288551120864867812823941904742786989436972136021725113562528089916128456789554856192303741929282937294523047401316885287775696298009989726602458435700907664894601861232496252128082424650211680023596499856253235626534625397058341768562631108641047660042038712689840696392386275779088469240092724881269093058233344158652790339224925490348819988626840470112984674869706304054485003402004758324444607717608242628649734267449872507001615675638271718685090214805799760223903128785753980342479760282140257535166986463954781263054708304076443285346221571788470206771844217057208225114648954497029000596090362626002851118415063951362743967374526097466012289605214641111050268061520422969382458966588844314970306635397409484973538037868545248861573135525097716870304271579268316885715754830769848173134609302996568511344458820205156454741814301250625729221666506547171376042045920591253934422676972340486275870942154461703270977612663500577683422005025876035706469170318519357166338336040324164524720588611867069100964154455172150573617087140817336828977252615340703854394017837324016488677348831374348267654916234188894727341576064322143950912920217314176649957558202435291094199463702086496484060188778708075681163774105449967057869095121552824695511437927532369103452229966431049631623986979099096637878867976572396418516488929798583194192345154993630513821618814275946142274600368936085295650259562388429317314501693271576894667659687538201851323059439829746742413139971332419564131119310876432532035548175198656783060289647374895658306361292301426076708581479693280615727391609446956560924610011936878947230824035917099754526315283425371626888268978868312367682369046767055174679978725379615205604155774403657232570319550040285253973341164039678434313020563884827608420417604794481243382352796013828411645656033325614661061563073117143558830335237053225425713304445803476670692751971019281026096087322331771076262284564290233304879935614617233503229748923811567726584294940865484745778452439613980430607680457946748433834500831709128481769924095854904995302177991291113186223389820982242143613871947750354441115199572174821037144530691491232967341612518292348488834246320327821891875799004905205560576356700754597960333961999870330789529615373492227877301010024067167024470848873331688550743090527279561528387185010949755108983468390569242086532619101038328719914329147300994125755904422267738847312301233005561132028491756721175439101411928918776648583338838719459872649150829888084519716579137327469068380436806297261257508519580028944708374938173126342468289787292109419041524593595977400027014799666501530346171808564160747536105891679726822327747524588924557403315301851426068017356265240388763298955236578176471027437606201754921176408421995618843989446859035765034918450946356438644766947869641167664459529401175110875206323557747374045032390268909804874002751563080578930840923023247923781228502671509881678680545224284261970197262091179334246005375694396071027590199186918746088147826544563667149829951096877677037451559452201030523635521996655835310867082472053196416855882098166181774066242110997870922305824256723518360397380963848539097049832339179128201448361341893994585419334866358952605066500899348863198083635917637933986253182089387525277744877405662735266079018907931017532383581215250656939450910959741997078214787757344102168776603430181983806156176695305238388095117221218681690854831598188990689730631473626580765557669876294502385973716555031131654620625396322527302931897919559887178751978106658273188318671940682314378468354927378722155261400106929582357852575492389381981406843842677924816763332274240403461110099757474286247596690564649499633409779598702775348999756197035942122166916278095440262576896147821856462029737635080511574851478300428599297878829916290463473161126601025289546208751507027753883532586428073952942155641249521159845538753241953862943119731208444857126607858891309121860517454305318483849866634601091755723636339576140125225095749771451587492555709410539746856882420034713602523940844877389054471062996419625588046645023536086237109646707438344746584497823480005658949266731967635550713301392870414446483594447616514800198575373460312690557643219165211018040939647198085367392431136870954283644410773218392079654680093600421283348997267352366134122088592901403834651605246651422212131516186792226192730483757392391558386559340539855654975706636679235223973386748689248524053270543712390740699244936392374666277163811062745927518495665604050619635948386326544656698377909962644508356431892539665600198661554439171822900175822610525641283615924301495806506203381202549521002871608014150581774745286669593749294085518897861052900793038716881253030274540764521718122714863783458869110211491215110522822731885678026430127782190121566418717979146541270786690456394150209628117734608993388364893854619051780736035901144543393813850286623973355181610640775967523637011711938972761409990592641813420726965746171221169948700171499579648067629876254839653960984991237672150326503156732149544926468511709809977444522694510100894661943968315753889636904677366939929528163589547412329288096241740174574019040021218580000101299316199012103399005763793228680406533222186745260453792124154480493660775220607338866753076913976619675696437165043452325613820682530517632463407898426057970818611501952188640339180512515930459557277086585099777480126789312016917767586567790654182647518925026201847225246935822894153669584022613832667948660659289577663202426425516889975356213748579581681720826035454731067611500250309099703348409532118931153397079968190004571731404264866687838382720770861802773399055434284365831210063892129385986803450452390215473160359040433046026577469267405627020578691389521192157745357813418408749524881707097565599369534455908933197426731786255260677247787022488329079855533774362945773205752712679499868829202835294603205996848875822135048973536752485377922791138027648168499914396641589550847558860297640602515117904385646962593206039765253670330421155970478923035222445240589171713600409199190666650321083847147226347989242582528853274665734327881884680221218049625612862420703163058204748370575444095440604733559240053045509279961680055315246975209544292805649718068648724356430725511240562458490949975856886769938786993604374211595116594954262464410641935882103634915620723522006475861452196005012156358175981072707350870540404802063406639170564373468809814637096279244890788159223499382880776713075370334036958911863100712022263194035433028897261790933688720249575288993715889266090776679061818289116436725882619304782735143566264704304641545055912258651158189782684801559461263694993142009713279303584756808247148266746092498004488198516700810051107470693272843267291764926400528591308517183593418345989255055910104077709458924230145685810347823539077087714182051976687006184109211529961910160356578517444592796171855402866741255706379476030145637031747535751971647756479481682888719977987749177041181149281835210459207588592046154039170664081904998961576547629435955731894460995993199323112885990859255072564624948554910904459344008026855442511624613693394312019805506405493153075009679146085725287127769130503891728230626746240895475824806184835807665910832608410842144871266045188655260872229897024514731753218405364619135019671852385884205852009367259310805194709371347678342404399663253910216502012165191877818457017670889367159773074996940182664501808820004316699738313330311313426924995649964539941417125308853752490279079840852487365579975275036010090002297496138633766049335353672161379215851144006122826259303185212047204422163831436332226368072875470083587026550964899128468953998378187393179541293896506462442759770384546887117388277234598418193188833511841104090263555408503368984209793895253121801297698104504293834958194803944265476110806355564546804683347095478578838351120590695887048918100799344089351357157691152693093175539404665326360491386111160333140582228416565084538088987346587126383467934260180583087071185064029425958980022052560162023381940239034516486507439347489913145913456835425239201596624260122954955008190832302071913508780778379976858538542733733985873260628867721694664579317056140406743628370944210688924210997240672878969881136010803249589936307841848220981522342929958953107938557891463009029314290647961871484390940376934929036038974139093768112154213742209538720639421470205096281317529958583948117534692138554048067603255840233735505466844858208038729525891060329504474746640663013479330975970844586028341993707237785640704452820564690074905734145631881459247279456190889588444642288075969812571342977694125917936739959313340127679989998785601090830218596673008769074747464079050455950034831171843707524342746624657835047386281569757098313822046626401194296319719070890945082497318031426862599949383241764524150125029362367543782459886864303770441510262412775016338128628389567882951154482939845979989880598245668136310467014116915690361777100630808535316953553565073937142936153705314657264810200169798383207393551521092466372845151961228724485087870613427655734231132392778523566344614927902499707768708574879736335347455710762200775932453666050169567184697243479176903305982206210447782770030663075983886986768709141281654497003047700857502146956431318590954506039359465278987412944538181736954511324815778550532908960164802754566783909874015875120818489650861735430699105619205394757974048553530766760486706877082491199719082742238816804614343591595077217256893270057780560748263627532720420622419793480939809474502145515941192035349351276923159407740814779379439465885687736077028678424305807476779829434893268640214930010125272932170276908716331778307654393378873280844290114634673005713738174023848369198670952263536488794699589834504603860741604621424043161644608235342468735336725375133959767432864089912317166670825282903394902071314958826814543112297403944911764082561928021482740415307962891721263963057498575714611893665442920573636630277888991212350859009845105136329248921418461591612905728228431662866159425593370453605704667647871023216381061144834853158102287004035549006134543631216114359728444241438684651432397172890953010958502048447221030609604277134813948596518023058810570435373162552887301347309020901925368319022302979238666064663982951315946147842397229107960425205067218625784451820725240581472304866646130625568521720912739211296646349535701571288943040947986992772500494563258568672917567263470417195741600153752511896733270638172131636249927980006160748091517184855907108064535001734173769805927527738991079162385357150819892994690831400976188365525324896480730379645985646932650837232977318773761441305123821949573902740050515298816661407189225652102391666676440234684107778775537032027538200879554436572235166384849192791796702702891818274274147556178565944581652985564642635499504079625190200416723345076342198253977087791518135985440273873131995642578963667920156796533095125716920445251008223350319250931379106677422360143624525698960732079302479716393534509296293569005458446604316405079195001777917605028988882565118257564477800698971995116414174126970554181224435652583948903317308673247120696317037481223921409799557964443432321240040699404128180298680975237697198205212485882228362381007563944448444782214290090413717305808268866227159857267222802890831004802536639002446516673513623961167744687637686625137376633144541146341316013056838655413266163608512310802730289130438007439023636865005951585036965211398118230107432925548166618421104463901768118626336044860562711520613588928228685392453335849279322885837512578457938906553833712368601641686672525092235369965002271588199476304344690217997790169595273067937945159730890171456192038336935283933206536017097919085263163384026646080175253656331900213662392043663877703101308585915851753971845808972105759893081956351887018149635439407119482028239145963140910144146797443971463485474688237932397225974265305627949072681750772284402845364234050511753727929594542665618920849774283763414729192192311573110789015422266186545901878999460510115734397184449490804089517221157115104769800987289369532664995319215947182700449012610135212414337747697209183093572751927037320593382260919145203538078100674090381700041725431915778141830547506930656114327973165965389100957354780902234815503479355666980213202827284872163387091305363372569469781383243323896199670706501758681759178892386404868418696656030129078377883206559021410906735603024406634318253557157411820829210732175586912350359402134375989098137340530038269477665351805535901453662908629191700859607242317139984539183541438128454285215040509230534219070903890551524360629361627850257449052186192900162084376709970804866723672867177244909709250594394312947873079711459613619416731473792322516599993951098018324204592653084659244080285737151075829693773044287713484832486432426349990524798886679497622380190153260728916816618772913896784424514674113817769176412322086577706709962212877345043574008528742323494374707808384592101596456210000829563015587168917307094056646466171480730111002213573290301983645491440692267659014002430383314942119338081224184071149568557048936695885616472619629020861043778777410645286523824283287501522718029042208762998361270404992039660410805539028493594830593196302228121184365680182184868454967134633362999388175090295209674567907118258453946631053373999521748671553924937970759968078641646402305532622865601901105445591909482391263291586507514500829603103596959410287653868965978221065855920088179544883653078378130747315000414393843672194794411141795862084959935536842321650722174092107227824415220767032459331779962932632883034379427054326825630568901677940985882590888254451055909566501309782486378382820672720355133336555076025735705769266903148973302101796868750558772615074895293253156953105981341495237447040294196132229762959176616302770758728466976364922047303638473247449291157295182448400228810108405265239508120016888969442263107976925182647969645764967762505876876046913109727392745199572298544036176856493351923344423478319934975444206147571971845996124195351596210037344924948325666073856805407427411807843526664086616531396347810026045033913748526095496594265326285304975264830195374176249818860332159418118668649255897870786726141018955570637101675992134620759240563970228593470989125904216213070997893668713796281707658197791476764158445557273443185062226456798758963621398312135035910850531178991760851944028833949511058793865695469913280064572969414354636112912439467598373303792995056274482725833533364270339947923752581973434799791276178734927445655577210914845395329348473580357340291831083808650342396043812915859115075039809682098465272832924095155166822708568713804943249153028628505706043098762804795808060503463525091279639701242539190211753218866721691857914291046624465254489078836625047768636226231562170271450546564867081224196467770185880725546850970334335690476600094072409405036224293401679968607308277693962167169832544734851821065868367850659323337166955488587676999231952379132434440899587882767832291676969027842107118319655969988089357198271789134635291185857745777816902659528223492865046658261515688354741438519320142274601357505469683132648882827925040994092869386207448192176846599425447431019361565970506272074070634518319279063155600003772963562339048403241292423119309694541641358326908012111724797164965962126211787784826699460962134612474433883899385972573714787133501532075155512100906424884273970234728433139574242235360449480322328110695372760969205503243967672478630427724826868043283185650891822190645785156117032196137783588144385256019729869524204183805564490348065176354259639128378594507330967571288027977336361842449468685478245180637626372719048186635377812974800576447737809449530644247166886774997029905478477478045493880075646816775655534048629290195802181168205707432472582758612593537359224884709431772525579438661631910686666532544737128261134227638615989906367070445062005518634299794129571717357225486582018132852174732184867552837954369703887068517040885788134027065952604603482351916570299958893575803619339302729263793553974559425983421788672508876654965571198689907080251131561622230157495859825547121000610938504962350340605188074142783568990319138181696942297837715286053043214574110974425187199386648504986748002835253916141132262547087023902019892536480934057479203794693952032039152878164084091945330637087195696474155207447426258676941836829568186383884883179471000036721188333887138565574152852290685850300653687546898182668591419396871481203351360534774605597017119210056247138563760316785505886857428277058513686748948739985952394972420541779830318616232076268299997529733934082118246516446838096617610018917026534735871916722847008158151866106878600963234807090545326114815363269607079566193358969171150313670690903114421560377139770633243545681222178572293887127020506001126267007313319347098449855806601457427560665857140140803760412880052127386732500514504085302918317848447075256337729034473327847682453922044002245224822218695659220585950892435800253769050412980276829593278688359957754639557268795722631180885513423204572686377672346306385835120374974685341392825269219446707546995140400841206343787571702644128853279799740309623051975553269205196514933194173060905979854723181533983360097140218556618231471047477104236608754613467638471476413921646300199902525502268745730945788080817954887219848336659082942256396087974194321415350317558032908925433476368347758187565692635036709140153738941426327862307702179431285965338226181364784712747317260374018869432797001878720850273077861057205127157397831605226910583354843011418137102965763903444199794489063691650830875543187410661475087227657745728729365328572686987351393106081606322466440237244986361871510990467224128591155705880253185450901241983590955390435661917362350145254333500719593445818870006179152086637357953651605056159506650943104515637758071734429959878318642335487368431855228437967431439779477024791785821277529544756238445399497259157976508045764254480317852937518641053074456209996482457691724965759202539222924805805607458136734088861522600339340064570735696970287444144108804572802857365450703397400408886712106234111103104486127424175720595548167163452758407082451666230442761745648972841549270729296092901919359687440595652033646661990823939770844879756879136114183851043699436856344521780887877711923720507574503390819695703405060653608188458526280898740478304554056929519025753248816257282201097694385440360969944764740710425154624915706891180011691350868744071061689254629384256562289596295074144594207254419670652509295924972132459843448231109944795895508474527470603075164502651256222250519693981724180220709282020805172814104737665906380020475528226000783853268252073809365408460695176595030575123494706970437784543631045909894654614235026686383252999313964947674724835574749198946764728308076561493111506063664683829451951488449232821958366717716887244049786341314366022253216848740020411013002682341159633562919965057734892002145284608335361809836671404222165638582362418999258350860831317786907942486965244636047104155888130141462195308704079508788485864383510767127553150304658345136923653765463302334242003993553183804375001628114245050816590492156672356267730702315301391381154406796384209219126937990279125239076555934130662115063643594646744529743046742687076021425225751839124719101347711865172051592873491271351654848762382786814373296797593435942374647833409711136613444997667246949843902679457047767329168882666835014885460962128195753089626688706545824304553705799150583578108984525510893113285146757931395371151920056193028632495204379319586401100671950750121346555616582220387336882676438059392970419248289591938383055347802696597054794267684280939953198869845243993913507974265044953793739030361266263082765794332361338507351526498726938387242177130644518590876247969537005465085736657529531973689463817933688829525915466011407662839908696929620228508771376016691440319709251329825053829988979969384410863829890351675190676816281476627429606829344430403516717832520567103892669340781307635213424842493874849041656114201270616188796975376870671902513095165358462128831125493967203354244461306815177831459996824664993330092490836530077579682481811246999228045093947612798138673789766040240527321632405976424662652256903293190218864524558476665637870716647557911167648582019309749066471977745689880925977559397818831594591199595030600333714452916150925350248584209110119504497966163558178616740270232661519069197163050165933486314135312678482343940745068510729897633141292257674768747738690837969113336736339829289305570885142467057642220047195870231533753043825120525825538148222795493086068577137613189203900348735269310765835077946975557339148764155127611279748390976983247592408760379532925811722043711362870138706741093234812871519499179698533876642983744194753787392434697885338250642274981294185691356287060524168013310329688150428046058703879216804380382683751235700887940265933190696028607184994251773284939423450209909392408790722992889171165469781475146730973415209225781703990173850522008553461240047698706564642228319224520991258350651948769026379886068414373923362295257872843425730790440633671766380017622412110108890442372111654300839483798836250333430583814483706919861503170034382040040010416707547997415848710685804478465808750325041849980358148051708904506916602725950002889342370950815535971087819697582275410717225738085259604197834581148724786041544397454719923826106845663941379170884630607012330573191314425528257525282599145029357147535206822759697414380390389686723661290842499122642151834346714473753435253421440021954643068354527689416437113517771473904166356210914971295187279875847656560334855155480375096228732646725550668622337872922926242034578530720479711724890359600164783417839094725450781688604928847286358222970573161907640610734792113705145888764820261813243051271754760289919845617937195231167156727033406491523373207965694862285009049337597609619357752500784095799561162375831189105373897062789073772403506128661269893549462946569997587901591462673672821022460811176531307037758716400042597086279530068476961518992049313240106563841384406045092054334308316775943085248341955103155532850878875451422850671132017953670508818838266612888221259533943325336021150023479715292172428292082955695787000762657189632381264383484944642460101360225440812544749733640068412239068182048562319125787704472765994593867716335763953426631242185035127810389184767003885924362237158321794793464500921393833520197743055806483093372673088772795005618020530534215495905911544481077273946546843695920836602684043581531670713046012318157657258662127720969534254386107220077885522707646073882989798392182675312758787005227438873759512536227203708855317358700166805671876070894388671191305557117522666690303853221372001133505204866293986712798408865054206564608765329944803944457752325708260673918374558038985259054726094728146269015993183162767298515897871394765147916793410089645264795468830531785754253407810424542696081446373046576072081568686936902684112272663787191213480268858584235260936615762903623142503105239735715070884085231104160987189666178153546621437149291212392923302330243919733333292159865739955604029072874341319769827876330510839400603362678776370689000513332861211376639718438656655190431061902624633304811589613267808747114383936214770713836160107613206088970360636558061713130139649262973545277674754241324072101284206949215246584043747248199071374175550537468494144513287376162917816659181119270201347565451731161270597007732382075952120343067499116114657108735501000908130101618323366015047108203567123403027892668316815746326916688959020716484615942180953567307953082605684603083306919682336249083399772877623076525352188249724560883586983945855382943039229658210710774675035366506081773304008478111343897336161976639441822005239600930708634425720274835717014061741649245625012380627142752713970506908771070208042333425786674969855831372959554692553876684363840009623324038312256770354231529364531904558521436478378202979825393386402148471625676038943552921863197974638651870133140093643891460602070538767747061968134006433212572065590131631185176114667481128510777958325071543595973115660054058911616239302163315772975889771865132439796124556714792177573537662023818392564337003151082696789036651769997456304859292676276958814697456813953816612145690067055056529238173539229985405338715961614984572692358686276249915888883252732636680357874529910755890625074977382521948221609603753711746120850743784566561817528298968376341371243164841757761725748501103747345607183787078715764785092701018850049957938730467569984027508070307663983129769465236918202980923182419595617414334504140715837328097950970500075572496101032499860891517301298052076147208065016557026591536324984988466170334604172125585204646028876663282410697894330144007025608001188945946482762173475828739701941133252961797507159028127324223256399661762421297573587215058539406248594906536684797964148978043210943783470208251593533121308705633691029042848025770807303427237037445706909972854465932708215075967282949671797350933264752197511714534578630182055035465311782990606195386551806021545421572223034229172318267070095748956976260649963940346400048001115122936295474770613288023009943642019638651238605635418603720192459393356628116376216303661761015013314241494263545327567381321036621125185704937242578652747475801586936629929647028264111943106332569240516405619565618732802927771454979870028890677575100248190504561751108484904992021773375768190143197162317455613634796082495930472188125463012820892013707960618309779338364919356370080896464183822702615068130994573626032202866503955676910578539724563290266124039012956899409572060849037059060246506563622102861079427856101728965605134487637851935623802104886606528375237676920500624376566215976299647818066454470611703589617797017093988210347191827719992385035643334556236803135662668179761737345305193486628956879514079107853368945574550055619428041651722297128480286349876653993157968976061002670547948777231103191565205049617488233314805040586798755639914089538148918538025223549995760217547266286333131075969800513170239435826881696080940150686917317232618730817509597673059623430817934496109473628760551691590391594030678976364955846012590275295677019916431796126896903356958780281171077952100012691748733985288713320509001618065718286955748995030883460035704412204670808204278277683336535999693962769925292208589432037093082713114504095084825098452800472997325538043704580514069708003422802325018970503895732627583192012786980521238485169490915751024460160655853940794374069260343040303107302207504365349665650266536987059486019530487220559802338920560868311873358993138647679215940709697341372461116306738478170101226537805896502024228217757566216433327313783998590434795860205496034907929141981323316930364688508953647438722591028851749565110306982123192063657540834237597110037717460324455746486072545609543083557029595561453352251792893548345619098599588716509856449290321175366256710002886915809616157801547110191082815753848538686596149832347422078231491537342377342436461384033264735741006995782321730685948368204983479766800551562978718220361020497946730786577132376303853535950488405226806109664392769508807571292850058202465462508950853281934762058845783205920330789977940741436162352502267702287070450565769130066009591732983646113539669571030375644969352822837721685082624284352308427944420256803928305886296650285245220008498971600052469605878246806937692979408825213349652625509613279465016461997025128586457124661161123448177975507850997250601896677330408515866694792850260287537293344667295746054430585462451564779207146721949155563626306550274118534829873920214801538387007312716966890224815935682141281942084956922032496884697473997848379272227776772759884338346183949427629752448312369780182632440296067016079134355354282060615888952770063757198054513659742502061351569836998964222239737225612251814706953998266395123969114810866210088143486514277113802698010186522223775693050043777782598241770277395042388412193998951972646477717552754430647573005853221777228811625794713303278257042536912857665853613596783446196488465927115590557531000932279270573964314856016311137396411431416350243505456654245225125726742163044500004424048003943561353761646475550405348611973168074849867500376366956977242117802072372829835304421469292145086100269626092361457600365028632166988758359164255706572673283353869077910888215939921047015307593159801544933523800683382323386635189143403522667141982751634198312123153644978643825802855027157384733923790294822316682419521621339674372884249870996252930132384505346115709180915280805434683066558494986633937316597069562520973300755468068450986241914823362064410721071374757754552931753371520610708462279624952203915664880567160674809615593911414893212634065280742463036077323277906896200371995253922630719453616754329400514557286346636116186172375982900706506547850547548792171292687533234562116182743300318955590061125871914508445890655063756915374356430425659610032379863860310762586688278486902653729302373197505838103413135933689875657284727292337884348240464082706643597683286174641621526887845301003821178173284194397972617909554809179639329219757692467478190852993489268852774025502588063613290991507134617423840042109940051803284197926643691762254086802356607297114929089109975432583913893587534227842791910416138841861557364236033396519227417459559352780350196615583191343511536872702267698486865644675059362607416966505243546491918552299917059148801867138888544305855281411964567010107276492385520975776613240618520386583218937712507667526078406358512047456388854243184811064490909967048454495737861812638998312363179727842107291129927974952570307255734491997270602375092590011164494696391756982646211567834442865163685483790911110654615488527019969432867298264915782748298876862302236645009234516743584216410429021798245746483292129572748333896984905069619307698032847386170015892671606351915208000713153646717470380082293150422814197046363517042340135979057807655452281683375723126490367701225118056550580351249370145306543722968116595378170312686887058649809338601756343639175930595637967112164350842074989496051984017473602032672061760819661494418633850006147325391550864366712840733195024720951019502445501320227002181241961029604694632150964424818161661093952669151367940797174876858253751338666830532987871815903072180910312910596724030539710357297844308766231058967264813068678026049926782864401997648461204233110225568127393896076852186665772605861919351326814181987210897268415813293614390043833144994160961966524970634380078117393375507541092944258533763798087771322749607651605646878193744258975451513607892112168629509134694327886417898017722652696819153268943327802485397235190161969734045991776732081350092023314086675184062253152326451702401304650516474381469322329097392892498221181491149321047681125678826686904853484547429141850609364809782520796605990589076459686997632596467329535501749787460022020668452780825910377183096644522808081282084084927231879550328857601370402412237824179377942271455278181126301160568490951917772288762551956648976044245252234635841684577196923486515137024088233091322981486943876051184002764409132080868888046456149153536960678603111454990729967840689210415799868587261478955570701101548414768314920801488349924042485296502817909449014692190056545624144471949508721318126364556337864060752614836564604454551456664038915867946656027191062056419676033096544896079937483504320466379477995895215920508997395852853778874994871336476126186519896087833629281607737994420152159270059611383529718429795246189038812967700118476039316828657490213678615275484789229358302678620481219362095009221566486569278086684883576531440281679005899163346389367211987315410873119509655769217316224961894939712674517034278935963386016779259385068290975899212350401561208017625750362794597201365678999471151991619608658676637936654396667433656169968345900255660982089106555037340842333526679397243735028437791067450541441606707449762732395164144744070341320651775337716089561403535489811488073893403906084638786972504589391409122450686846773356573332319961185598027799233622103487201781976203069551298993617248838813818023291337141800631944236708022349253871002396591017920664963553899371546741670858761371428588009462876994086783470781191432156835029902631845160589065447783654039519344926757292330595390645541001503378735167380494687824094126500592900180792576326121513514921342245580818786397294877415456266171007346779714450615385669111074777436053018929847310278489438841226555430810948552310424155049558874866212699064160737534079641955452042565261994427619520388954071033322531939412266011926999218187524932944036821127106617537147597401753965129806865373127792154073782796502782025713049726436298844659220157626629685742973773777097066341992736954436899093026866005779242887542862593315620099144338808011218798800758166331666823606463671104882514409923596085642989699261977760699393614896952141741106486854193901830018682525103088176009755943950874704334480028965376910603597515430351900657186116933002843813546903804427560058002958307280105247106105185346641075126507402698887543792521712311614925711267774157989068938288856096987242386512793072889638203215328024819817264992483311048426090762910825446327577457651130727729282748820095511451365372267848573727690490389384331911324272911801032464433093686273605422034356270802000821448464773143864454111599960267470966558672682985534075050366723483617170899881015526251704263052490907860602974151909073211975496320352141223133625651034220239007084861952645560390864134967415534113573531395928196773601176448795223758643589330971934371683437654271850663691277020012776247390303843327436801819106975672668939034926583189418702576904644044399076478682970574415778253213710842719148412659620140550993638411936127892525608724713340613620031608757637571559758177445940885898936584467742371060736800964307636324835976931076336868781205308595154423528392618760985470740263662357471744601198462529900816669221738010811527730710800888421524483771396036489308006712699269685540196454275376785385565056885890255707899708832528406820088165993297528864741732842178551568077605024551046238549586213892655481183777802683839728615555126037473214723142841688958555389032472016613358202896576794699730609197135993622515260425236380536817449136388463838476868346279861357397533274990181471231592829136909092882858186078444117385463271191812668559441596233100961067096661726506452940128743142437927604907422991911949256488504711964020092553498057820222010244663059862207363438891858984701100470132121985543280468285810363837448312800006730396008477756811004121564180722160778853823466169977577666190986113986970737349046771345007586918178648986889109775018680424365535405756521917870075126424146800696878682235012777462414312846938891577916837714808780496109115814877724231055852429700225452522020432881363484124701955664447029230618409200915718415827930072656683289137048610963644816291788874730663611847400770232294283437583792594889217030634839481936341154725054756968258492707352320367995356353585419983926608701152912028801386850360061701295948212576056821988588791316722542130716613904196772536380787473534500071191274432013314921446408159721176007385130443473039898578829717092223602963698823335723915674917460684903632891044232865107868580947692576858805448153757988559053277004542215624913881407823530966089042774897839087926016683067098036177744808598569355644960022532694287857998040668044312171614042734719080088168694212452114690033378187684095996824739654928061474683029476531580531070231137363079000184635926535784720996546960499082727417431093113586419454173219840784477418892777398537275205775996739488485468674396670218576481136500371867109656071021143546979255930805502322201214162080921015121388943065848958510779059785981224933134961022922530049382070114352322278052835756464910347558301664059529949065157759584059924804539839683658170702287797018361352433205906961792654464708764599239257044426682767990116616704558253633083329761298184835859477943433443258564543317494434719345763878991728459727482695924322466393067801011032381852012846055514948451403532688058188603911625254391088909634592082177330975317738362151130516903620322998719289284260127864373880657420686058668378140650854903061110845092472431703377332730613954069280840313113476846977171853118088316038336332398553716380182105585458051812918304044853754606956240858347814326403945154518137850580671011874121121446879118254883986078328305053263529039512956415230715639028796657416126090858238543045345623941162271827756938996350620722623512226479128564205530323055952241748545813469811722997019127184135012091800044751336748733891939426182778633110180944569780204163295043830275240842621347349212406267225199153274592187662126739356819475384614984472293344682960896537252855346208946184723281561404774355326390974549394241894591433143719281039996523878693710107715574170114101141683194408596574264200970043868347497094151217995322720561294113230891244148147466705272384714161441567191702552193061086817999200318440851680148942677900434873779212301863905062749355396310560580832083335436537340032639994149236360062536538663130552521645736040568484631486845123154129863142632258064194042778227803382362172023009789976311838448811296777844961385247391529055303714621482241146915940711777279544869114077804171878045091214697238081719872746728824428710036925852077232235131370945520167337273479919282187830308247793941776404078754889221900861484196950540519299513618462641028825321133433148626092400306063240130015643450866008671631468416198202564618399529287479900138136890304618679724023495045850391916438291510441808139916748070362482985090001341500273198924215673363115232076240441017044696966084156550575222762783222733987419478687624673598807095448197544064133883931409804665192569441897474207888529731728557112033646913776810682515619994240720920194175958695779653646410186844948731117403349171863578103772748989453098000083100742322190256299365682774922946799717338823574803823424971147084607795824564499057277303437387369237983064664626962358067566221989847667309935740108959295675063186676936325233845110632399194552248149650086014142159417261894862344467455672777677203816968825015001217153192683940127241667298111487986487246623222995872391173510136497353209900983153329248608662929867209541238364255023902413583484313887150057504307793995829602914707754840845316228585249798626368557589460507274512373933176312396857540964019578181137713174958281563653145822963137276072404244713680634291323437506033868873668210931969819378279076787845105747818386302306381959399976299163250873820116286218449153201751892827125830925399986096964926489868240538426583310472552620152983382614487533119002607784695958619438988642011420755847650413340234826078854584565490699080538969593535150877324597244088749934778789088154369514309727283691955657764423017742306047097525924337920649179958197609819145224205679360381732383433962046497915460276420730937482611200024579489184477003049980948817957252103779404574475703030685336655348089633872979516082331644848609627955509993127401659882262410924639128494233968984118401588813168819184418272611254014303444398765984564995959632813738604271042078495653924902130572906461252749692923413860201236628813476578546480134883351810346464438069627675067736767033702930303038939330527285273736301859500087349990024281988678876680980535020563818781526737514214987436324308873740113809935053774453596179679850044190593485924140754190101835346865988818895531554529323236202289258937372746861714349274649728273199039551229113385325545781889574595864343381541746218356289064146924580272779752995772024712803268817342112819306176991195452568681673739109289032045051531861036800670873008701639885170272921665381215184832536779724751718869192927330838892354909152691249705523967993385934321117699453017640435983173802097312845717186688187638481813130452312741824789355900154636785685343036460227956906249216009639544724580120981052120468026609226425335648500141831255083267415912004312581298449479821245103780369482810532441171662366191748094390190012356274490701538546410693859577135613035893828632908105949276522815469652930162281522843363513200502954558606545248125109068689707183286909124455087849641681178157605165144922298189213924963091194811775061958854881085229398770655023735767686658517725997469223029250333931572459886609102532503949167287846132005745159708454839461081171258737120039717439018632810641572539490738042758899767970055223518156404440374610998372597431813925094198399816889478942288568751866862488753990615102146944228528878459208708844100886186974228963579607948565277180207260530878171427317556617603640508392330409182814951463728017872058772641282737056569417007219470189943345594906185346168251991763757543085107544029157483985462069482189498862233709680019181793322385119070859153788264722575115783432497459115205940969699612382235995479745234395518967259455844107118255345196033518868165858233293367145042468919819501838325078917206845653270160176276527875592084090429852215968244543754340269212683920506395393076107441458568899223156246288576674465421723808073115094610667722526406380964740565544550227987305238164713699280447758594230934160380920658397519164690993574645710181450934369412568549004858534504350423512596258738243760604873778940686626209190985922772291337583339959210579695614685049844361492808589054893159646532861345173093189021890123805447008775015941870234748584057774613836649262769118987366340272897699151219792070339417588930466922490210551028506148324327214243551701037886066087181335495564556880272324007990375162682416267670247904812113987487470825465458610504532415060321437364908704789021623209263752582603617870463274343157890341771108608630716054315778400325253007287682117491082875624157557112782718685016127648046296350656844095021015649972233030514356442215199591549844172412818147719109953693104297693119318734920960654961174779937934446721842922355634258732165039968650673263020693554539817462223280152605802720293286143227019825377638241101311351077384962394093365876909055569568281212337011132775534132962712167716303147157215745303656875369337985321686613709825806375734016877682104928912426975529880218245622515110754851905426908601953466440907781363432185388753802499129439115708144817994757892263799475541219102433930563614903488053862765742709322793012045454681054325751217007177851599119511133005286880558978851697146047098275000129365083523924550274170920710938061033421999350193113822694856538859181479017017572370283704048351424119719322474102376217724638853618803076303550768342718829746810175613447858702290842717820122671486750207922233569558425696873967334481999635390582632542566465341115025490633153870587634754914233254397494763934825295683174414323392185752763686262751979929250522025262431612914415722934992896550644064461013493962124143256443655584373560116801560229298318707784792281795940912700464697865258208130549319030363075253207029528442482652763891335499275528301882414699841053655802090470732603163927274799871561354868322452568007169011371023594984869055740342237826607398751967505248772483460132570412879431267465208210420218730556604273639003588636013654616140412573309523826959401594760867584828673074357219192058236533676076367415016068066291522031752873658350913493429985084713635407058543482688326894282463456654887689833357159469716826528361924099255418959292951355545383566631457347809866146057219842208837461270598737267877955809769332171321823005745126539696601943908089328726900566083817370541770417113245124539646148890746276157965685454618613671177326084963399078093042072447899958706684488662483829005047998578339555376580746761085214461567324852899804614449816115020214466269252647932209498950100699390167609593408329886507131383778157290074863681693887845489054569549203125100258281303296650645986063940539071826071012606084782791164217335187716233549014724143891231344823708869899852620877232517266169221688418021461328424391597054555925719912869746772933288574330326420010529566910354578382259882855790893373794880729807432219765037483693249222573532719859427533077418281431655210081429845602438820160823614232477947777062935549049992002334428684996454159011012952685068440359845730064393098548483551983784723340180714728114159461336759633923311508234760986420244779827659287229519581924913103469117136086759542747929561517999995224972605217599997210226235281229282594185461735492083662274296732116981316912411410686512932174891189846155201983278677358681876646725324396405841898367682705938606918903193567196489823580627649626693266162562419590807438642466007817296841477771305829688437647096223337398534925948629264743054732685686275016495018099681429579928356942045309325961554697758407624481763952304777996715791643177799522125928847180438823630848639569997068745550741205529595174662443484861846131046044245023500396803036019126523858703240842437833287900741941103761396593005241577491780984824142128100158421653414674188033165335608612391522312156978175091030743752210560649798728192572729455612115400916611166993957984649272642795026707543973189220401408981331206686068943025896836858794630723103872860026961336580176171277897038548342096834612337660754871419652158579707986387281688314928082164230770080171067942322705147232786379939696789088118580189087315928460605573682143934585090851867447837277183008206884890608677227623441172123000888096243058107230071193239459480900747659637210981438545280000476432055581703550113936389154304659100696859729580646832856001655549117738721934426226555311065017703370508036713709408260673855517163870892170922396501048776615603329102999296733091059597118758750353810358775072398428479083134989849537367973822041420138183644147058888727660483670933229105283672943695000269122345646064288256080506391006536677845886942205150322212661092630553860893241025768731560686290520669373002086441708187479300943820516948312716360571112005664110972686348155259975831688763233920054968666203366139512756700821951335793275179076005201340622714427275080219679611543912376323060499118914567371321595590152072474692484887988229548278821100307876634764786743809735710098574523160923153706251925046208202571968956108910185469913505869490924126253269416985254477558336609475238170220068450923978241638744627063436518005953368282097255057231130595362428854815900665780750556204143857621133427906285916716328850518501705641340878574046956950506653989912325951587720779506916622260509088224379953334640850756912829674711321424740861835526711785360272436099345181040477509463796833054657247592450394556757070041770530628545364990433756785550912410857312788875576785751272365676714221448414782869671191331068313280427196286109164857894144709077178343436603452599226450264306791631982735355743300968130106065063487801136981794298335454288494735342582618325739343974394651052079116917949321243016758706762779848615576190930120338607703611931442705922864625041613369878919157540412513268417882906156185434151540402275769006131122855437285868259076630202149992233798446147674087114961305616596678471046544488418040904828246668525212850216261024658003124345023799053926660258532236483388143001443280461015117843005361724605336242668986606060080920636518728195560382404929651868959830209384642173686205909145130116142612450844086624560478278137915003122399734488307569287601363303175218816226134787858689735043437380873264181874618885109692510050395896268226422266921723233962202057201586960399637085369105032403707990804965657661269711467833744151897272875521567850276633657381757769096418677402486726530930117431044720033533309946975954553345290557891306250006044460879889251292295070316922692587358443413020182461810916967515796079839577690050084760701697738504556018240284265269647742686432801014150973313899972005381220738281285522357016120093255050557328199122509920775637171258192010235173130924373317549328281659279741811965347182135674271688469359107544935199792440765878854652788694286390980504729267645589079842975957343053063110336672605186224745244480212251866842865614912089810247196990724088701722233091411572794452701093726048212734402142020611695991662614685580441219666353753765906407658899690852909848615493767241123876529211551370706745764979480207332737586222051008015004753578738324543503540709891325241066290988217767685555720562168565730213853172157484666712273369495325741701331407171894248226262118985619848424322043336831645511374669392367415653969733621674112928765025471313690494994617736025985468874846021058264667095631080131725438355666035190110880498474665629750711241761119250776183233208126001981949353246149914090945572617131829803023808792910076477477335727112201856435100985386384076295901697834918843509616811694264270096744466589956731215553373593377483316017950647354575450242995865724666307830840543397799396166320768262273350239194613575180969775122067628029752882623015750515704262246595178905891189071185281513696373881422051317856212176541001088532829320362759854358582756219739470567679468149399435553942144703571146995384065497219340040687848404071857221330274948514096181601862847597025287996003487312056069893924834242894457248813831540077451203699909687558352247305104127902918790026828068283349180628807523812565568816886588327522001819020549606469914485366923189823816755929960764972302746197875784753836144209896548496247059017923757565060086777602779132616753168879983057776158648954592854270747483978380071872506004805801794747792021543358874123701066643121432271487046004303015034149657504131546172604642939264849552956809761308064444039811143716898834019458854954670819249940419266758222248700834426648447974791981415471145250861604519352845421367084993121684005031181912283279638610686944587049739043063993146859755719357473342733038863873304629758274351514183453943442872610718421750019753248936069635622293155751354752792633224532771723598716835681310191659448857728007804373485605043509761325204958146368739926853062267869248563108857480997511010396569518629121032777898991466153317392226657671324429670372781524053056841642285197927503068786561512752337717737790981171896323449792806565982273743809886086694392081233549741692689940483906438057015250311399369487173044136083861442323099968958980939295533141800737591642434187846259595883133850118167438147546240146657062193266251293054834554584455239494533453003000494390149380049611931911387123434924814974317607806404100141253708522798429277056772690932423124624291328671325432505668328793457041097717923906922569328756913752939012080402360587204295856416064059058639301274182014057913457197299263698040139116284606681055486541332661162971662774205232555652300321852678200740199641892439862242310749324715613026511368198360039519541315794873981654215783516791291878354659708802190750257083564163466465475067106794451141918083367762658207115444727579594600063949623206878083881762115003823954153456870296741933426560540500272318252186766244137508416667343518361496842071683973967363462709068698207893013323668820887065993976217112210633499984191549676586556390694727944425100343353837200105036864115642689332680579929522265937462710919245052543097341127262635291978071369671048096042714359923831453601221260109794161087963179789409952381431975209142467819639010931910609033165742823106271337313239619543726364710821206266807505043195927244472544380134138765824794571915189256421820875638248346207241481066295367260730951621709783834062872621031735920170670436576240123559137295372292315326802967646933679130966300204568958655089176130491993307299662434234334690352653004253688902205769831662127882253710820990574218407632841495845137562323793206758212243291077205345205185979119489850431564420991125326458044518254567575772587042935441126538400882540088683144228513154754346310139487933142238293784115827975249540798491515326203670760219720781017408452676757444430130031149832004412761391625766969508362948864528258619813922270108034579527502031340744875981562652174236647811027546161868341145025031011890688436278830977669927560317727215639695573274757722888238245970302159281041276236472405988667845438842181426785171662919718663918296507153819262832290809686217333863356279701646025085273541844400926437642587929699697732237105896467221843067005051317006082817218449327272254045063552372460440866370765993214338962044731296349358569806929072176818872856287399453496599110605953607574688526175064974826152529742083591933952998691835764211146166545129566918099797394977263295227951211216051447372904624281560059398434600879371808198721546924351189123522314854848932380933101151986509200061367112823391904974936041033809788980361508591946575489416145215197067297382194261404042424173293792985727718784367529154182792096677081733775202951394397128377627603750163146617962101223801141291109288385253826788810101227006973559706824775160938916397900628273030274572462367332771835585500029144583917395097393539027484224192761067243210864336782530989185815806354933586314178020529369946107324092280245591427143900795530166461309623148197455943245809432377199828946607972968406986383080834217322154947000558033614157603413178975352482399791490342801005487693293648674833464210387908213040699859217251621230081728530087983649325640506690099199886445307118824393820172724942926901925223842949380354695837478154331803250132306710557112987174280361464295252472004131770939086382501961449323870225976419398331970810373094845865198269511941580258221169221332075565603652751140879436379026186269360868384945787750523297443188478102378208842598813169749248272276308930323948151439900579814869046909501564637508402351255338616820538693196883167548320301647244873854189833863096308360002136798572735964783629170433405325245172170306417338649247247884116804780908614093372351218567429948982372573804047557644735359298840223321953016256112683030058039692052262228890860354961646686189567098456438014392867904788947448695445686117708493351093546124346877184663559171592547645975039919307136563056610908646654362215330591412768272280806730485185323808789505109060095639219639388817828984762015024101265307648078179876283766118630416561489900765224548796860169165675000278575334855178107927472475340464851545314032028605858567349600466195515181867206096844775378845989473875467985622028590211051717664006935994011384731529063859117030329730601246220417891516525145183774398048648709596428053657843777085728081029452236675556799286620734021171780826776789198885190190611605383758980388158021322618211463135519416420594500705753618832741426034630779578343315246045879214409254668704122732884673290476309823189474286227811758147585222216777421706714102510847495845055589426489453098250023136921565129884546095414678590471686774788893793589813727824052729623403977591562217991365905185960299367388604627770313306663174747013210848015006183037127460368266117054512626555538334932027950297740568307223531993999737169539626857015181714431808260295028071656232570561795343978273633750394344930927497593621253749428764418739333234294953889465424173132948909265582443131439804700146107993275066230318294899995635700348305749976705597249668465416135179462106353273115010989840733813024846359487239341613476516041317856002689315142049522208713093422716656116787303333401673112451053287937863570337839941823077798358145588825203190318020687614503838290372641321403666662002870187057228500871095059272617269299044549239920589234218101112708403060245230660832917237780947601865915909236012212675317809041953423247815948387129070027340421271002726018357608525386871161863501587400226472868340907192273489245001237297042328756532737937499010171902693123107439403564620669058138745438630377260294901971538870391239660500676671247317890288827164996818834481267959995260945334570708122902490023074517170362949680455677794344297289963255127706240750131526673939136236633056822956075497264385040092236008716137389054203546129497341629391751431950240467813819382248017709117702005211167475296628775532632237323062399715791969579084403265614195151325033961180748212552022726462110106110598875233151891149191622592754774429340570625476996925983532068668352109875023701562538740261482487001607953806440296821029294840355434800104742228440693400499400473529773361163484038347639832924329853842209488867274526910942312606909958701683186028274835520223284922904191812431382885883580255612680917135070250788901671893345547695117315061866371849408470192359648964072449463362173294293470288751416339836378790415790029558981046846506583798548646514782938310866959190809488111887702473920016208303675078146554418552651136298504792365283139778000191900568377292496494560504082474370524027798206889415491802008600671885619584225827742704365172220695792015985518911055754238890576115127613037505054214077777134334880790122050511259765386224608904592319505620562871203083251101887671219510779638213887781082382036042533003638384443429588813826850107848308675754912558465817606001251825359006921300104172373842906778808189929405586569286172265056828806594001834076303571505725138322750505262956874214625254745065194153277548627000808303461234004844194640783884000578654394521463482465341420989007933705592904663152782660733883475446752653064920909934599544734227772863621327664616480575507396902468874551623908674443747190613954290915375615128360620897421872488119018408325426432983134672448828975194577657692292220411747214950810092896246376949380988840397791607181030894569073884665905145617867075665304514763945164154968050158509447335422158878170630601701143028415961869082387442242584757502170281681513308134956966972049775170266643268092442318782628662723560331619302700021676155358211983483049912533485402585030305034800913124736466855728717029056792509504623771504284561725295669142473310343076054488232657572436708589514881522285895919250862780525532533900204630191725823088600693761543079966841345823323038781288611204047088093156658878003280424812835372169609347649824969907364573349769244999312792336575347153677055067231485300258927086146753699665954676170216889015216698603421923131266103191368981395908656017214134733551496776471095770712004684398831874318440480225519980367598072106767330293274352194565535388988286672587421462378698543015069922956322550017770310419288103891541320573311180069893592384040015131506808948192424113975584742252686706635058193865007002140825935934566373000588940591911773052432199977988162050687683106715652720758725554479527154934495000806763195330498441768392171960413428907538471357249011453983920039449589892764272801337652993088197393074997987916566754735372725517987471069099673775208563841602754613718095802636385356084866605654119674143987843664088075054070061822498078128436337885498522115625494650353395556166335010410747513352633356844181452780105664168280203117502046814217310831969330986978024749695805213686325386026573669455190814134018576679609545290858949277381299732203982752654066654842192154188566963842459089427577079122582166756058749188660432092914585720384928445229791089745624313650254607310916392580439482026666890443606808175102833148113162639608350152057751917885893345704642090225542564926532891327710297436381759402220743419814076796462231878359051266242380766192139050245850899939832055386079248824408233260802921237600735514735235505086047426260881653036755940863668509230231282919059593250950897299223032555977768068680377652916339335969530113847739251266899961543176181005037389448839861421210978101809820320854762032214362022750019728926243924662694581906395876496063716439976597763208077910905583073340724818785307283168585640211024501176484974725368290645247363561889482361435872595874544447577637086120226934418175706864439156477520457055903123300592691973421737011649792835132929569759983026725392170140157817658002232801705795295474858866578436801092796629079374243824832779213292080443420581049973795705941731520359970299644187435330917670509415405108188879664814501854021894494620074677083054335263503376828756589893370701993889423894711471791547760741952543461905483555903831547225725623044294702065839618081666182475918504684342789075149674969482874949167874444560691637269467767049581465420887257955766429541971542856503496269197445457461776082484967690339279591857253834176007667942408263905599197030259320086278185718558831664040060018966714402626501744234310030201748470131727252221804192440719386978564292612589828059156401056438686861524375294149639747837265904138121529945416404242576342236167801923213425016307551875272451799630813625032915251126082996106458610971508155316179192240901846186865896330368345216041189654996640854298964147260928954714974740349632418005071705721058658312135345657422974204903137442849132036342522485245673406947430504976900431583774987912619032804766698638789756895938437747188331340177222742275658013188301385659201180255872762477171184942181537586789804567823744547770874261818829330639975537852723639435083414431246764126570791198218170031650081587324294908388127081275047739168261097257259087878116933510574399488292996254934173888671617541772499742807800638323356412059171316069486308989301326889250985655162738603437967337858295956823576535835374477542509332946551905541514157025317914751725357744239664947980763187970008293985317103313150926410710842424983337931412626940787085356629366011308261079109064747356280058277325990007526638124910914018972772447577808217357701943887624547975825643274420447475840392641812142764982776947663110956706873864774760889382221371134228551219574396150683509414975853131136859064440306700744828205685425841834454988134520659354178712709791985296101154182011081929285555543347817150283949970405864312883229359459218753655021488412190047900092912947834122623566684199023989220118352098338961336120313161278982695157341003391319063521406082070766483076651424744227082422407895365340257268713757483733369926542916211782994418774012532488961153656504524876426593437824935978549653299313973660589467677736212998570000378286278722492661985948038635609385291809967785577340465017113891873667524551440095179207549692851181907382596555425980179197222277735721431473529938127106890991951275575855839180127359426507193793069653045354997714764608544716858435794686554347063805246406496595980167910133810385706003221577057506639090894905780060671555718299800137845088331080897262670915863224227889868313946547294736517023397659988079858480615717532897153539102309091705540607242465800546847002522317902993019144607652758860776217344593578402513078958632433575163868306890647018425130129908605357109233635470094481273678758547034251189825428946852482796583881451242355214948260382505459506318604413132623630696282222464151837709914727943199298689132231284654364390357036538528738523682059253098321037277261135479880652132237887768217153011011087410449843925446630267151938317636761177065012661840539652508688199800691183299661609434214937921624032829878480959477131631526802059275648247345391523625011470847667071280196887822837207164518592011392886028731278246506319855876145225448621150591435123516602658340021199241871788266650782756378911621647576547129510579272619459528407949951801656994516841305810293608220087458891743663700738036462765473587427429879957329288946953863030898113038268205181942046735792935381794192407451251679340479638541615857129769563910901522200014812582110752586562527606828827796559611630204752063219428598941066178343438872576048912801984161180510651181194726586972721769236458356852268607213411868231030573489464507513108056634383610930154174429924271208160117121759097920447520239290763715244162634411978885803070071852534878836304642535029079536649487461188817253573155967655434016960305910649030386965663045593375499545385243380101161484784971780757380554621585927637041449926093261933962685494701673292087632103876024834434929377908562696527627810172285357088621417514210960229017440400853062544826831547270553498192500564484481851601576557454073053389346997295343960760263555804351689536175440936454343530440292000143235158734813365660253663733425882405925914664751442748323791992650639461356043135304778941367776797514332103479337249590740158731891617934862156254909405485062242672524425577221890117424165821927993968734611233432970854911220997842317845271215379157041303866625650811515108463751763859470985117110784462312101832140340194867884571724637603344288410718667680354330333454968245166280088444644993642124585825918242056750907067113743835827366327336001598504636085177963424999770900004128743092403402380277708220589677828352547396404313523810080542893840387201584542219073395971815684336713847601649017023973358980585244526878679376752882882234982748175001007228982528799903990973494159307383337999544009960601683180435068955553361819732353529046441598927067374222160415203916169987631764456372417354732239592021519472443470112397393598544486811052083187355336099741494316905547384499972096326317950296668776578841186413808920417328415606961226597301832227246826522359828416144753405178461192539932231499611172230226753168947887898655811167703737393017631438136562764009474294853668836921194652835745528277832334174090302438075190353469659717922491656913449714646548688044073621984094599610407791115511619789081387431320085969840511513607169370624943957414684088689708563494253271926204274011478915162436745865831732302072573190112289346690132166724508366075041617471099490809665878903382502346941955757632058739548449509513998015319459547701138303938687497221059618699286540403080609806947301045087876474284491213810061441417385669564218417046925236585825981422888384072182827717891607825754164375618874279893686539146753726982706235917961816620392108873580459941185682885706530361854066763936170419741865769904048548399951210585866708154843967060726490087012381737890510708524212201526017246800576324049377511686843800684485967875406447879058155314814348679880395644696477267488344480983261066398640090763686056137416590006761560238350065118966294134607772218054969395261221519949587202297489090714913767050871383258188421776203325948966023634586877668821189160671690275669197062537498890279004932579804496450244203317296985580872982529472930537310314860223760054625924721821210691762288993994196250529294882835405292986018968032171185530658127341042129291707844523791969934343123290737164706100286560593132490990256991506445285343821247382098122468246972009398466344754184897591684697447258300337715296564597930003782648972042687055271339079425812925677997802643900003206778071221170019456168855562877718561702296593815904509145689477272837623023659215387572611610530556088871328466614000328814836660735655295187835040377933031796202718628721472483781448051132371872818448120891960278460545878487988657417450477124037228891970119354501067255302489067708524242205021379861453247699801513895920943162866642256503810296222337746591777617701574673084522042338380725455835227356214702130051520042511752068062984028928961106745732690924857278611366946951797290950954176525650058843749643743594740356564900649688788742236439779417979740765262103252959160751930233898627659804762639069149851685072599799059848116606476339151409427740028579493074006182369938902197441639334137635452895706814179160834060398464729268303105122850703774932707790103990597928663202882506563639495236691576965713382705803494104436796592675972054882917111369578986948209067311938966868733696189371948701313193464838716321306319616777490495965162508403240604320490826958262252335826362266942443460228181397420170036617566034139941873773926629532199900902519628635231664197942107257096750988838201874060043334684300793268314962684476183059409932962997663268938012831015540073342027853423456539361881062161360153187122236441691643124303157587572633572020604268381172092837317104865132901361304789322295402513592359275583519169995953873724329077390455454561871083073856892604373209553367583345333902675925794129672844010932786735757572029667469125182720826258558100196764512284386298980356916626550672961784963130905457938935317178873228684968110257468470604694247123935553962474268957990391451401490802097963306726049085600782373091587128527567284358571479361218821322612385356743882348914561214567510529282143213811063141058475264853146439975637042429425499165445594174822456351725291637633428545430840326013577148282401352039687363072849243955127721178047895716056161745125299342729337194614155175658707490370477892618155967561480910509598944870790788267642969748164984803284622626452493903455888034504590721332492866615564746343383646534814993014871665190025722161477998286807660546562168190813330474224087401744905621732222665746441749055312912076502708151239886812774706504833291184110553034821800503973190001448365275830288852403566572770509256749306002045030400429633027890929235657422046994820853139691552296875605325722068967295273348809891076267499162925274287328702314834793205839468966467108713179161696574397152530406115003482511852390930426383156971297907703740340317072019107564001084422501538830886526546235461504166132472797391827480067748394520524599354240961175657614101391862668145926393068801920055761367032086412208857002753281133429526907587734016963938803442135357178061092900276704600995121085909992064095012755371105165884160158137834155732945725188141736590964730650592018848283304925176725555578778216197396368409282605292155391187765405061098656283889012420546085258997294479330039316090168315330581701546579961181581776234555435300911478923036738822060847976475335973978773432352324526637032102843371075774484492291919846478612266821917605014938904882145592487018616780721048570784366018808894964089249627915440508855316740611155404441351764536009302051528126936775607081416891587099917495007695055276718301799059858051316226579256175400121762149237174153882565572459667177849612215529224850139699069545470834603371636630908169874254262385420671002152484522348431613919465888357551691246493148639949894024452257825238741359520175072591436215109633063420776203727238872355329888379450393424735886684656877267706166115238665005273969180971361826462551851274146478010669832295879361416925586008148457450544327791402845739870700007028615221146969430582522199437539794384486748814748359877083275252998087224730785727882542430795227077055097567667696445402366054569188645734596955821369456013934790513380121542648304615886043150646830313285189058892104407877278889929244520706538525750429103213355145723117928579591335097101839731039319864392285226338740273976091961110408183330924624570277250419339561155080223496824863655544077536796280030953052684680446470134316422773529624240321679145700442586078771949556165089660135446496297143454796056146874144821638279898617207941506978313858673780711574522168462504858738726593000079024305537061157869684858575654740796099805315343371924068314089910428157196311351643186617026805884706333008658298403169742351561607619248292358806651336889735601575020403512357509770808168665989967104985199515259101540454451250469140484488013454718525375455182976175230132353006055213211839127350942164179265314878162109560086278238936710639472241257942408939399330973880695671056474736414778388370376150781252367817320351320191065913589604843301994237317865664646106984571059180072605419057991561157582638628479635411991663223159998229646670656723193190922209878504165142481158596893415833122717744086826742619548593333703200251937650291884154395348608014212746715451264455436930231407595141381453964557883834783208026299344541791140589805522973065169537544648736025289539771989897802930198235253209840059928236254483474092523115849529796756513052146264749057599068333154262320626068648639255395989015864407421760600046073233876610464343228329666084206108622557219761439153532496404311930483316945583438915793044689482860364890293124513545120687189736492017446813248414391203853315900402212719697567853206886836249054298219561704876887130630648325661114037569382860088928143004879741140509611774793935589465042150626708008138277576070795579433561568229662028624426138019859980841650519466067421852474755333795245580263278394329667831037122778938406458300414546815794251358611159625003431037702196424576186025469390239397451026753257350769180440126752566240397692082986449936535844266015374906227355671153909720168467935591513838014620496871994084214394387688893383501733299138511689923047320809083129674630046415657429362454836039552602275866574331692429535746348304444603483214190292657197449065156128808639591419577674935064803280494682530728095003258886313365937692693339496999388057341963821264075144808139665184762713000819281870893892669201243376053588946266181296426837174094134898045925455732362855118142985670917793490326460503998771837114843852831227863463309804989484593140001162029463625039165603871159629748431396669911507687654659455219973064693358688882550154717131734000982971156351362746651660802025850872893694989588418957713122446159241607327902357429974360521904593947806322813174080449460998777404493896864460466919143971462800805929925589096707150802442723324582732339219731822976239261332492673144008750872723342381890764560787142437613551484011448035583076702001361318002335628585834746856166691055048216061628759581004573821885263792092028329233460592499928309068560425975970996593918230016599005154315270979938727870792609442562271379650563639633853388899999404941202078365333742400475081115152056313199573909521132709521159000400668919460048692396817930506167023718783202416736255752021483369469759094462735915425542253004186947581639885321478092163373099674800779463535597589069498687172447129607346612329478474882411190154859134185972485758711976030486235296199263064818415353109049412334194024750066509578018159394611470121215149900519133713354416305317186466204151953242472180885458424953917603276085437007781022448405278285267097826266269852627890713756418600411939028514647060054175185942649845216186941875441640403219544365744322782730648381041020994449015234692607172542688039027101489237571904478272226248547818745400896867143029162473354975760773865575542033303104507448121711921617717509983819549300485288328912457449663461836782306077391431949922443987988948725044925719230443537650648620345564414731513386716453030666388473254253515272139274561521660005629227943433681864494235416244007422074868124762547616839508723971600365724145663482787180503523320372108094661332621932847901182995174339731830984481742114040279061321266475184892429975288141666604298882966053019872897662834266456486484774247700288727276803017746583790763873164411562399650804662212481380757893824618594890933811284760125226478573439341924417070533242128296913255761902596345714956716248938923633341758069746139345052599388411879733787993211913389146822380748393155858138740038586670857515681451474144018034602374967233367814813706913004027302046406854353790655986957956020879626156579717637912041341391616124864052398458676635058111703229211740748376738786285579020338398492593341418859941551495047634255840936173995645550006894347996199408556684456862951781094462280146446401432239036742978069835963512410464082717730036649574485325589401224904481692646268880094636193912460967021167737412537125135238076806103739259971373072550948597026903610400620275379001919293854176848839893369540655297740694213525708305425120689846938122240459139614624741391458275139570583634729092549737735002175963977583406437886552710710659465030102537485201716681970640303952444177535524599222725170656148131043952435312414324836132886882051603653586773714602245401637941631575391447784749288715708468001416829759783220553233143463236097059057785035479108598793276613407727482718184658975160804889479946802582172779741574018609290023604471337709634847391142572981888187264231357450814030015315264605014888404495126630730880850099235131555120880437955526118763077012914911373338345176508836243493100165088544246823849853695387676253882564285804031600583658347820957821861413920455406946983214906061770691048153674492390087412597506614852554733376893911784641556718481899339414027833216736940234393227819860118815229671542383768699956338372550472384969680138453301896424943670509577353953807557709622800317024440992859384255263860327173831757325957322140184184475883283135104331694929051347611463802917178451140464655966898203686761053084640478433337565678147440354914253497745379047683151512940876228270860145481890220995643974140294572979846106669547000557510754183247592718313202703410453382299539126912747153215437490791910991194065167054929929835125395094447499481300930678351156744997304799784028440579025045930964120225818892020377799791641409901771149377756528602340988504656508566619448777687947603578675233064363041318294938273206507621752938135326654986823830024113101566553085882817858651148721995714962984811574922825564294170224110448859487526932445133100951079435358442405832920906464403344070668854468670268212373241519177940633974744526933929782019472965327025492500014429908859173999659740968037505930681453215526216898419974289244946427552023640606053153547932793610382776799539418534152817931385870447333868582710768667636811804463482293517472023596135760665921932081001177894400596069297024085713336602025153240642888407449238868195117873347831148148047985293783574088680658876403377044367336512361481093749681704884185866271784898620990122298112122041666267198318794258795416058089743633360290505313027388479432109560688483940168660250281510045390957655868672692758261313219666091951212427048572534414353258810142138301367197028901510795308232706203101544970452023416475574220884135662901142128481098066149601022123956673328121051426718545589894464509252009169560183322927439692340869249406737226487963003708749782010119459883312552974373498546068552149136668046860603480723366363857598963783082527137582553539220308909570890230482178265087513635439548748700326808251760422239926641182284261788915293058223117266417011616808431598006660099539218161671179466909933812487495986040033400972729753949340163083339080203809077109017455523765991510203153899436055248550441743285790982354053049619557243805821774724612157728525394968640936719527870431652708717314510896004571156978876638405728328375209640399548569671948019444722850719739330445009685722729227298828641182854148920656816327875785019202874934578149451488816809661940438896349946046940742417777341283468573180099569856537053416894133834604950773948346955257229287334605129139766439405853154703778396702765506884311714924615130156922688735674631724461320542189465496937396431935740907824487880403338191036124659293925467887753462788847363020136501487528925922699773941721112055354301339371195896173906363868900927783964639652686872627044873239582882262858079390978973482784350738477337069166850536228692505944381501113761760311900911186648749166844974111191423719212751198571721218329972572854344876849621484043389804921627722209236374285801116326753329496710759454317004370615484524132381335125860334876185812427148295996535303130964390624673653802403906403756797605689659821390260817965384683840772712736567752045566537094684196529613450516441396063606422352110199097434957281004655976336871712094244207765098018621367093211649704441785063992030589373029751187845110686358537161335272847521084286114107881168005984070404752847342981497343863986985201637369475444462404660355731276095049796501019737986331125943487137366745087218206921170805717637834915772856172877749060045925415736603272357901884270158275188526679620278205057717710883495136461605641256134221613627782016934938447199161837962331607884666719332209267203710089604078689674246648004962338778993198010240531492646125327135365382954315055969130889743192122429355584383999585956536246551236935322357872052759039138788516724297417966563366022635128403156949589537826674840808714246482740371508694694453727279470970928611224824071179196956101959056480031816452510213990889636025541291319504648733434000573880241702868418074546552761748711647002225333912677459353622137176274687367842041090979032879119061336187760314900889329460783491938816536883498700421160733879027675877598799898906611459133866133933901743631314702463689811016006213591774514061341876556778341271821040215743395382348835210364622621459200788626551137295790620540690788791727277045427741772425972228152753857798339715286465668216417951760654361500440139803860280888266497227449800120523337074459879567547857525820567903397644151015789503604183157644325938963378698465137557143958569850284038087196113057717139754935788602881191099525277943318197691161791609142643998270952892719664933474196249182047521077202520539266480343492343288830318346104986698992512190008169049304427066323458324646589439489565008312256095373363065485456811915209815012682942715678054518146099676506190412699431296240809240847732110930245013737679843761175858676518921369546241040599703072830674222815225026868820046725963174436560590966650658748446039380299950610457665013308097508956322203557577195111294325365639198835941232848201079772611859547158878092553538546215616424870298819364742681639003543263924945739341453806198219956781335175383750397386010910205933847422838194489696772794873960683173093813787163154752239224400723109990621407952335353271478665878895115808245429863796482977206905260311779202456483139120271482214197182864078742625337119021479473829254110303219661538776794227165816374617102945318649846733687369429531396365855414353434514519202453169482440080817029110358670385626541865366825200239428671921489564576737845211078057129977481540392013805539094108294284764119602546014326019662269849072145799626166758173387867585294404420809115275975928873816526204647514469728716194729036002042177625137923480691671820003941512083359753029649576296338386046720188276380758611025913610759038970545996501350737332428380755732998629223476835931771791182777747057120555774028493705817006698701535230174293252612529684859082371566668547159341825666817092760491140631988600968348995972989509752046117966143740781079107082264749823196603867707245415592440243790547596819006239784843397156093175368530032349851085547967335704321686371108906104296678259870517555585555485016377696779894493647648051135327194796515034048584380730551110583437281687820560045589398512033281183472126503900095139407167477089245887933352427223936227831522030376504544155802473328127526421454548927598090267213699332001515296159882055183853120812775168353835640853754631984379571868465536525763928981295544381223376343537478389275662707205864193082010117817218017528186299081977838516843984049241460222037224091908876422716047188399772214668529624254962192396077107769246261878955930453419493611278644907504048028592362864706166155258604930694777949515021957814145544357966690840251181620267512433056161062380517901264241364851231407674793431802481529939273517924260601751423485423532933249901778259781828665146662276274489429452649435976928667518665071968978932254657706327108886769831012651894068057908050286463595219456442421790358748548504078592384508274092426286325762858866780024825108449496410775559189143085707151815364170721856627359539555173119694917243680494764903638830777735208679767388778603274002501203742898838227805994844758864238533217504646439762614477831913503438824819924063875626050539768734791521245082657202088769026281691131374503950322860633378611693650439693614836636852772342428381620141088737954306620111144269871435704288787962976382792883093787536062485571909990125376934202006203232743609258778707486742519726197006051217230350046562635498607612722651646994458655223349148442784486284893675847392213030452776876095391144440417499971382231984050755839908967754608573689574922815579933480999219106793898541374873659325030041127625653978169550284033892576717009981403113335400982020610366900071983700227889936245967650577212583051762677959147831542198526157202209871292431345200034541657034208370241812027095514408242535548495434257586765620252383051944661975612439075496016596943678598471072699827126713227722064541936415949175637903713784496316671832339657645866098029632663429424890422289146108599587868130480892559206836475076988743996938904086627925585889893648314202261387474808029485232168536055882541272493929196093685450656913755366814460672367641130173547103602850815739556226003854572079855052208149179483447960076839407218680833399823535494720376406127175305528421499704973244985542794850909340098855731319389005988581172563843401344761143907713434979707298540521526119213347019239334796379756957722286544161618967065757617208253914228826219981406149149769969369163833988954058561930506731905965539598888133895419266594091889138878126182591729037592929306136869851410001532190938837267842094904860568793371866762845787091645160366583846327399576687984829735643543314122248596308921649239914858652233149154040781462700921311165752122190214532435169259386005044030222363854323174468058891080548406813148423523806380253551697482516374218799006061165138274432061675691978396948684654140506724709919014363533602781770543934010462581868930556146236411200187074133201786136801017632028282135214389338817728327259737451577912462956983806674886256581275622321299315614497198176307646411941412096046882791137846826181789395562406007626617131309738674560197272415160122283629886703383792734606956749285795477136168095128805593458253368636440389114475618617327607108881851319969372562958461370453991954262716909689178378707252347985184855039807186358762536064482238480266861509601648394962853358079296015253575579499254788054816508827551554865129420704316391924699595812525000941924442731428170782109020279288707403733929022547134967208583363841774617874118173605697584327823696389520906096368909023264193949730865651907753532767961630419029149151186421732693600156057129977541392422936419607496906067196171797394298618043798454829275025473172649194735497833733192795206273688988838437428414094913062163141021762059821380554001336096270079580752647518444693752416218641582590669985754599397233146998088790713994001767299671298127585271456513142680363624249415009184063092646852044674016405443486216187156634299826719088119857884864569215414694593897045395250026992314378158098367818966751366489395423171941516221852462020999501480729498268080230944390829633093235899553072336659906248372638914683080631163354419984122590259773345086263922845009719724172792399540733604487535865606806976607270667384165888731993756896397181454933275236251850625604135202082606308083440966136755916841407393064979835833314509137084769872315075268134074248918407776319171288948812237348982440313023735871999495267841945638671436769605783773416414622469104372250732134563569000793479857426498551394946500772914083627571864060672969226166713222628285027315498060587833100313332050207361800670244027495666643021871448050745403483777887560994680991272635857226061356367012920820769998060939826045736288913633656939599755351947666439195155659406878521376568695882591619788832123179814550294110128328947895569552210150890430857946786719799565571827127079122893493877603109269806770989741588882842781883009842144623985619563056474049202574855356243753277457962100840344645842779563233494352565275491364430680144854727230427732897165156259050761154761546860570976575466316870543666748895246504307920716727360012801316788291209806045096211563301688804649731471020532952276172471612350888662669710618817966392970778270126677620971964510568145420510169632638103837125518887968889259715056195836862260750583227561838420403734244594456772541507251165432545244086745341949111239949597007794491916131542304063275814549115502730715034311146407217242075541037227010794513662010879543567083826666317663920831291987104707975268754403166032113413785793669969116071299966149526004683947420600674613012228772158968853005478318838530582685865435599439890354580801174437395117071398399341058039921545322571647746941176547099397499833105784240470256323404029150631365411330499453919361109386715054946645714328496726953965167446374589604252933039908938800172582890307212368648226511119350772789344752014246303150230053759011827779387308740054724323682152637704713693991986742581272015417884395850949615145615954415492123648369257395519721648628536282029824586218059125808841419101715530938224370132554282675670468818126310050125143910479172094486784237479021564723835573756981249681168726363814112322849848545140057276083230334823871691432376445036281932918100478914209326208440081786558432297236150950147650980148885332124627856971335493077225915951135729953399793333941678270838513406255399343912884783974777763960832288351673391932029531192451251030173292323588802836777915668962347952920940100340643213808990209536746854189280129431699548721678592896687522888132416837967103156143625419879357769319747569865004056366759594407463668474513914574762227669999290868198921468559138109214315833278433167434361901763773859848620362134587197187535496350894252938794780798426578067131106334779407361576354224796720876167935379919849365220985412965294970647472842228609169037030037485672045976339849856786846308028153595701629074013548109727794668938443196962717967948195206881430875499420625858842275938376573944941471795957576712345175612944800402357632355832386897299129420175666722922047515274118843514399551567506268936434829933934386935619528825658643518949013774491751342409229291726396370262148923032950035198735493004370810812419311722138618781646664124125125614626506578832784090354436518577537490271145862951858619280030800327335607364729164107429555629863797248158940940081404310420871500650499370779623869601066037248575867762601657221679611337377808640975483865327615721882650157800861862737151377841026384523273643383289785108304254931119766211080813417937621270419825091139521412946453990056721067063959873634862169353921615914517213463954225477905947270694883969475239126108782848857254105877822482556223587553221056091378577152861166331094996506838413431167075011838962127519607733779442004657527305052323584042696764349217274093319299869383285058691477774330096424629683342692328325437659958889336217861835469845923805976986928293262666857776970234836053596296619177547597098586163246436174912071382562367556157888528544896669060079341811078732004931354495000008700286692240068091594530607741709858958195492156562236995717069682365152759473688952073394036290092761410150596715180414629388306489659606700984532527828508321609863044334602727844846723179956999460416973732479605747901488974433583206044391992934346314065123097032068706258816860703512190221398380348425536745499274369540852179889921103775681457810837788146441327576244995501983583076332116442026859788931789840675204143244707821789390798381327431289718141283104599258753763988818551789399115956200807073267211625650254600846613906381447982886674378128473688863077408822593808582366284492216049246530189449997047947647210976985568412143709084375863678299613014083284223118195227002390843854052107684805548609640510344754707938057748493835505075969707213706019469853616653276349224161851202927768589444030935072926392112694794763278626242522200337090851127524262920917858124930284194270256370285721140298126860619231494470117805984164737654414676772368415150101603421035019500010597808443343468817517927258695380798350916770514025472737573236066977465533544024286012495930485334250656549193683465032036427176970715028131009245337191535315284140553267577192120789109493472297733628722421697338696863310449277631008409929479896317504873284867551744471969129317587794526478351660219227372753240434368799789772109794508249390225943114880398965428105727249858255933225775449114652979902130501151681363227314669310295373049399122731518798359928839375643770737500209145256692307548736993564230601147861890735278324814526831263986414279789070089329700642702164190513903432388926021685959132798112898066427089136091919684275380360473042567384931730973060142520087519707328427909581628607435582192524177119970884393788534322869010410556589506796389514868880853299848722545810325954704899581464287542473301152991290084851397469773909252212682812728905731327409690076431591584299884401220234695153844005312334447980963055649411477991725362335160328618203410808869053765987607703229926088198006273920992464321453401591757731541558499085898925077373560372215496243226853365167972807442321329930827631029255731575305936344154688241814469801911034538728747339608900686789621840919939265080109231602606874401988495379737924835201741419939909238908718917053988325752530485941742311509780083354930034254122156458111447334415265718715930810284982182249419805893122925809833262302539020444240749399310450447688602341675562720342615301176455273511597950707782351454703820607065639549281741130760998467682988561404851804802163700770349315471362954418401408163108403069443598822099620111522224258945107755322907208782216439021537753995207292139857259471941494180562612242575912534972361863006940831815942922535409448231103267851753460480063998646887098771758901808216356425426601732448963227897231768944496925879085027573984578718850474902139699428603423153391191734537407944549338681066280279669040332597046568169561589880356016287321280653213189601048667789585165602964124204683558476743157178564218155785966267316547940530938907658776485708836201195811823337255916417765069138719621300592216260586872391882995204676791661280556519490904086603419123741898934349581980175490432965706281929480612044650662671827596427222603763088896458243959212592186858007367590026404316091715599172893409033919306813457875776416330014311573353783542076139009276437935652579589824223537977997273520051701250170418609239220632359284901779197268729416458639950191034373768641321089336597670186895996291965041173769301384271734265099907784892470923485925705201114915766103235702929957321627076822166275154870762245334926036729085220964537369489837092786620643100183865353678158168534464807913825375241691376168783086975769578174241917920023345175485329293368911327538073718582783864939561775120847738775075357671307834736188052938330025319346821567752761956948616603272527834323324894731730375955859169549163422016183158224235163096296698875405394034995061122247138238388756588524368053255877220555255401456877639614797171663875972981356356542095167515755050007973803500461133294136666374557549356925857885388212687731043008572882663645741072120493450535095739965358314115720951692407791318404315557155704846619578649806126251081917296177188330426532643213322869001162649187094499618421080460932290969178577526487273456513103551868038587560956514922189905495800424434349387971369644265665556646612564802152040087888473057103714703201048719718961386220960337386484296613706297677478946736597887980177157293254615526733039889491201378537963840185395218919986758386153289638196603535380714430435936791028093994541256482334511545538582613956215922239655038360237853955340709124612888254083876976533731247837375813511400433694150659495411419590143596947264726469286321150185377857070685091380824683494274060329714149226274692052052297217017885934577238006883502938481759559416449298686060207377110569000276885786301370435667245579386331888339414990237056163109811748396712668758029986104638716890476541381021757414510066428796615696355131118597576547015401497901132384844770661071868974720482614117663020908438023667416049367977829258460809937273935125008582667203533750489115596448060375380426994790534731754821029641801508427977459107190617164687899114534858104734475713273613686725620092741927780408051976191744510418070635542869669866608215123943280081347252690800488405987248134568220294914525269109047729556821799167042920530913196704622735689679581656235884714668429063464505168254419648010558260385475149744491874587355404441514483230805349829118964974844768814985788742183603313856572807202906658711167138714471587345244413616443269855068436777860210900935218417751171226302125259618917674481470145541815828615295481153129301566766871392632531786511045557906346413412014824634626237725995853132107378707218062034308261422806049442208596504573341737205001725247839693181494766024467075334566826730669047819144460512948615643181681157628240290331727123585691004122586949986473754478928280869322473031930954310191117037597140675516854029301217661983725373686380856366321920896294837563451353371142681144763329696289151955587570557774989683892004371297984755001333349875905545450858661552129035855221761917402279079147351220027854292360850002599679311692280083617753156823598758085860349029022300660902503549244130608641670034401132538763662408452218491395081374355905237027172684320211290547908721854476053003777929355066972141614451692137204203791389580446554563356090908602614983439194671187728721553905994962462067856864201701076622838848217110487688021543469450303204107916729803430348881351693096037543764818167500100595763893218330161851459093112934528244402024639527965057197080180302262716796798511713394126461370660223463888105103467894611023808371091879222750258889177065795303986773015579477011469279504438468897560938547702269594951869042239648578018587003940683289257818014540519668981145393106455589725955469794150380608695698503731339708304965173947992798202019510315609617730916059634002137327565485427618408159749050217601733282798749179484896387390301708754782977894425467394869963781083203060560191017863429264177905607698811564255308626543838703071676044600210029066069008000944426864591208448167840694362665851689305924378739643269233078917722992974771399144529755418647388765355054156742350565330238786976319094064177929290838799940321422006347708237074344058236619473065966987622731148587397876049378184137508004830694298242596468299748287838359000392398843708207770692806548535548679325396777784947220931608367370922636781690513349217012685852372086255556181309100993079501396611443233763189151605727333840121538172318434117610003813415966873285944345638624523958774821863498540541883123618917901317465477874832160175238689504062303959369282189973713013990302452062052401184369616192181660168719647204352163305548886415855757992305889396217745848183810351423668561696743896909044536632046596680991003048684466916203085480976037358823698701572454711506019485690973112184071836854716679098969215291932454508837115025400417461497742144591785244595221859438223184090822473590434505991099668425856344750119703394702627501720371388830699075164243408766017043665564567826136228755863490716557833678012725047540018001373641605167948748803005218525358325029618967414630246488540442637317508350497785512808260551789759149967332292139559958870375544036322582656738176536947764449182311266306425777484421118598827715603451105204104862800354986394890457267397866246297888730001337089928059927854475276680512286136990221032740415120005513205641301395947350005393409504148958314830149193600967957174465347659852306618062609246648026144141414720354219810712056890192966684387082700820960702938787964319861212310278268370650700576135178620921545844744833507415329002893695459825638979236450062083389026205591815416088534044477571672505190087472829919472029044014694571009848497208588827000734030618295735800066281097323756728804029705620489165504489304092141441234995702735706106091478541823338613738874543878334959532931060290138148306942709246640553478242859174011407042662610628585656795021622664395824221235632206362164123278455935886630538035849693759341003929992976451565802589701320358454703705065961071500827021845281165146426216523713137555909037046315189140077695465413770041431301132664194814173705684206249178420648017626536254711867590237222840216853902694103474451625283420567432845716592677950597414212388792594173920336067290340434216821750285032873526219564919904888343489904069397746703140870178536266841780366888391443199763981638553237765595544391707385417976713212695747665696005644141029802929895449183583283364990347532961390663774720696240609136473608889860553080358865330645719887823920339862858144927357588565873655881039580458963767050499326746161501913756595738288032339691162116323404270052634681482585537783970509194169382489719103527179514503027947695434146014315098085054113040832098473011084480382060165144342219871309851671667416202049263772986189113634264325049891068476215502176678389406220312277721571350129138352621204145352460882382806567261143689053057206658358036779786318062471306372877356914044310872779234423296541647868112773884431590227650064482566445991677736735801238314303361649125685655758962017857479916913846427324514280412575649189238460826306658132616244066590225436950016317833475897569601808668124775132365322587353865359741071572864234188024045940251103514081544400737260663069434900809405319405791017986709583841625890149405141111068553511227987482254554368112675961834562046200287431240503474660935857456648328215431728896892575589747945341939334280729875372615363512200524012303102595033516253438736225367220853852863729828707957991601029999253144500402403392687456979305005922318886207146021466989254103494520119445157265228292823515015665621822232868732567603802265957108852000763430699681564360793910831047344867831595453590768865506962517630629924120419627706784183968477228397840266822051396138750256480039834841446604753335946648052481157098897128828715921549974814163858747269398768203117132248238467700760732152054593030831348951710777951995725336012113905676581413885563761424094301446806297103719550180680404123942725269364584048109412468686865738342325508816302550308651857997611368386182650821424376841344138484073436628920118150340865697560254686148260567560499113123534253727755873753919199025383748873629847365183600387211229564163925464558076758388873081707871163219756134725649780869564134674225899451902910602859276442079877923068480784016015320900935664909025474426971110584209389206278154662847273144752692962022187041467361378941880310722642091171410272889269285749434086965863027860985118998067405396831941921932212004316849014961475878310125894818344495501543508618078147581110793852798315589557557745893235043341279901874176891029036004064199605063910739165928441387760443097576168475139822567508926320708382506479119820250704571216500514171717355340220478689134490523166562479569765487134738444495528392394252435203633291641769153782687662356203155875713498569347761740131691475599560534672290417047136303946696385752082285648143487070835047921961736568341869043132834678880153147198445216254493378688017293215727916875918202129182096016606447277773127591710016082856400117683063814356326195437400574606049028134866573638578329629308299995832840050793986763284780981383937489934092854002759687044620480172899468951339397056806810399210894647554369111086858574965468224063924904300785978485028666978144580983775311559662346438062246519183720722428139163519235086978563071016503189548087453532929509406413593503968690397682538433721798181484900296101219941719813765107384295675315338672648438712973201598553597535835756953634127825792576699236862593144506919014718010611933569300055870939305021256101405210696329744618555452754969256731782146982344126790988175629873371496119811674718255590366486620412184962429538215893011028904441000876454058064329513095662853944575138324336037428782871717127842266176790445334873848950966099970198678496278448216416442027692574235803381141494318794625526997902412126659881895363597797457113201535222843810929743129161788438847149572780785995026175477472640038217072718952337536156856404204919349671555207439479307953331827033423048918149243469433083459804488705491231454473319967158657479705376092403026947115862957973120733782543359149213574316991799710429917478832805405312162738675480902503136992304754674582235914159952973202701125689310482858712394836403710419185164582128273310483459874912512579178068138296226388143270507421535025900481928907153511480181589907368549242728415713698623460155520041897579243931510096009881440202927848926013125361468757801434157692163345968231141785333526416802275826521933534837302320253481093147520730743531324206633221683445094647134908737930154046938094955231593685875979693951439118571246539482276381120237886885571005300410176287990376415907545594626902674659206541556345859058950156622383664858855940760791777996297500882889080819796367118026074300247846262523580198652292319059038912775710837768575591492129055082817491972795433596325624422557984009148797465342347322724827289608675712548349157549669153771749193422605188325144363022884997515209249760358783733655699424203019579182521710538657142682861718508076573115880251148546778095513795790881356864414889537418731428214810146409647862368132239072504414079792950708274892906968386382681093808900793835026932412453768523036337630419455431251490642615417223290223988523548452218963747761348782128221933725192162749596272670700313811475752186858451272816235674337115819429271791514646470122425144572969466451251596634251879306294111776887084994412231696213262630491830425465154310402137928822088391977925856164091451563336726116759006852988669023296478794453815417382720338931741800909859127387429143799217339525127743542832262311498512734478349253349887942569376201527338470920538904031210284265981695736472382654723204764883848960050497684581374079612553610284792515596120639540662808479984996334503932242633568488500778295736349056496359228886557409798425376875468163014373400153518350886958592226316257052155125988651153221975726474429095976636344714713485768963400006877111668834715036473530229005857075920847373391808996316550770311459290622092143741545759215121770446644188055930470292022013722753709111171106835345667085786238295681395842098478717824166178239318723967631131493976611664888595193094046532787401880880013227858169302771679475802217093628584558774427927343054217816138616704848546664999171333008197204228368352342403185985053185924828764950028265747012079311231859848484423211809575829379961343695586011202761036749606767020199845422757027698275913919993006035638032722460004750789538812149328687737631342482612537471593787024558055350200832222554593613764202984660257653604299953985002042501733617697712522118628112153463327271101390116896831125108442393011345565709645928622848534335360389486088504199759016107296921745346975892650008455066883515138071412172653600414989588670351398877362101357326219775087391505880399381246295254247907183932756719990854462075552127461486428706277907456893947494321709707939169096487061913326368075761670497182836412507052386559549644570612012524514075983642761557171817804255163124133033705255867363570969403879657267440554586562025366897416417043496247884182714294328406094873463855694644010268817829900347929657704473440157359797610852954406404802440719322404046435985354548692720865805335768632521425765836450540736244968167012517367955791825746239120145716233160106703291101127585895068266437367385166734639146209035534945988427922392067992064631947468317553320921719993318597909503108538315684159092904622801107969986839733066493931600415399242697919500655508371867696731334053644855413092113050479603002095063300261040934300279608909431767251002098951113849965802962465463264298479263851925055066643134326461811265627324092073221873900803981081764058846076528130225599251112123411854331434687409003806055257899002678123723246523238225546410359877704281478132550117919125367286129745413096995304456439466987691479012700157098255985717253528414892728160353379717346127176034994509217918353960780879637931293633537422433737340086607433430731698509150950076397556565451324089551709650121392846099752821020311318336766603005602150915906938234481591253037823893289390167543679273374935780380137021340102374465483425809101482557941481305756074850168525233858536961482763864943927936513211649339228572631483264698768568674298408251375936260333785705738572710841551934330652419592918801707728525789381608374182476742795680143818923229249435808025292665539060355919389406224165905744370555936743354126281343022495826469238653839665215808598413078009957675354983331491015520426077116957144011872219605578030409758731685143614229988297496141170006251107751056179285137972163439804688383362419459986622390896377100877705194007286484422190114910596469979479720466320691667850486769844651105233990457998938984736058321566149602143353358236157322914861885064402973750700320905043085529390468075587157597685121105319931291534012910624132370980107604592779799953302883427820961729728387276834850352175856328561768436059682801057408290401566694176571869418257504452017275358217958020639065886618624303531996825795635756728658153460766106954510071587589962833571504609448772029033627906931092560648839045887566382289761344638274419540780428377963146881767833717056210585145084775003971033638503301768929185787418968147312906786594627746723751337171517108863180236622883324227807673905459321860986174093246037803323151408482172337806720517369553142165607753220285064054839190681728682637382330188147566480257548545806643874763516707580408402785011757171327971194704332183378279309233590635135188697375467171082456164962418509438178732994061608601730277737516471696092740123730136799025081329055403186235990558602835083890390332931857390230975717025165009506087410479305349437241948518932755700441346063844938314635816811335498449544860365169367732033921174250751185018939863988624323604886407596106021229031206772504461397969672505501802080443791256783136598146880622601191987953307414433204695087862108596915663873949571387882627911314001391566496831792382501472792769809630030562414611991543181887642296675400030211264927757666451277921340296077806250222140023787673868719718090273282325788889727939315805924742134893952303301952355111183352144959418943075062804795534127784583509154689022974215981625548674437111935242198425564812453191801998435942964704161129585996780117290660026428249953657534645580423938819442903347874304239774307183664524387100767444569388622035844065420160600541175158833988993139776746444407026004811188662255851684080042746215829684521103935330239025376713350474163527274342097776531950085582590276593728768653955292857534814315556522594084254731468171299902757616046565328135318568473304324480019290748119944037685709329059880918817913364541747491102101311754417784267163319332400047052408818104357611218469851175862779515614501330746162525979006905324170978389855055120065823497735661224895108057398882263193983943107282810804637460160073485698080247377173738786135435874226583565513746980130489576598107523480339039717014235242584887402870918236895206974288917557756972085407845618227117955486022706979902407117137878567572507407354868089284496297622084278845831839164771132907924368367381958836483278321586793131526826200729238443258469818384989048507287129487889075483525909815410496312132845831568483982331388265791270766447137641146178536521609707214727992688190282811925880084263311793298371473758032100031853764821252854701426169850044131108390805748099706821705689701136767594936737757382898207076356632722967197048702082791179871473597095362261215278094533291223856881380688327361866745398264170469924096027013426934536861517652710693999606077408501365437268516757667436998891651951468336787062273035459205739772911890413693186974272430914763175401933245030726650685600179481938997003975920370135681535155866377191033669754615024463760777145512368231565997467137487748148197444741464376427555369505765634700536616929571019357075129564493418157066620091557122261566939205728456295810243923839470509161372322319967318465177906279952399668466931572820645560350848127497857652875866797028921894319461090447967836423162041375241573372406999783512846190266718407760186837903437617322216856116372680442611791450806042873610859381364271196658634398542559342093657172825574648114998170089681778926983887049966608996580514626035344024738306803552473652181404352575568085555800407150009494211929070493851852585340596646658200559935940314582831699254734787969328799521041711187065179242403720901348207854549908566883631018016252878300204298881280518650243836926487428674884651459874442675978566744643566460071272184288226221574743306277486596657054183461663958787916182239676757088430457460039391733052520406258428010931714551665985251286356587696377197046576123017596674275723870194908055499081739566327110959251948908912315094022104530639872148347838366965978112937816653081594866397155230571874904880472353069967076828502158117235646883491658208943404065412990160201303472763626028337836047778980396420678567869023329178742279748158349732185785094881825271577629514155084557611273249011667068922231615568381427184430443140699274977865594693377037584701485739991244794486490928425412875395280124173625096079864414988586188544114930142764971683710452391584568176608079563324076884114699433833585381985489101937039515198578198340403297865317075296009858700326413401558859947219643160982792922825272680298878393087704619773074279970073093451966820382963868617254609046871403653876360104031858720086065549776958967232076293260160508032870006196342016666563212467511964874088425850617679326317921004118046294431686926348348367369210300287346185044037524339759084978809152196684529094434004722480765692950539439676568145007548813243383076185040635897077515804137925422151568506277325957433987012256092941302196451125789950438356375353704212846550094248377689111576757736837091199194088590547442565462068332746585323285509081647228229042214686358104101309054411651011654866199202409953764903667345058209297804448163304439108707234049615965626459857117199082170143039553111834438564335395447231167449339700567049151014429927164266119175730049939430568096073248469034412632925927875382711227711279241691141700766774545338418276539609790070765177270617355406346314953432342097802931053773554463069952667528056217292732615885467587119331322701562233923065711944828897419224675772780038875635291863701359194273574229700017805981757606165052444411227572062623234997863153221139784354773825426618819375239505650550076457532143825940095021494972919328593021700719312546483334827928580641194167597915599407172635124193404772771149275415627321713063683043169797417315159250106168559041288629736035201461807892637446122145939829957446113462170792592740105272509169977343862760279140396441266820934634230167355050020796585241621358575822810200376028661559018572275405900069950487053444665667321055828258329732957837041042368424492078086119902673015343458003750503857813032138919545907625925329468549916936055024779198818247686082778388861736441597826038406498657137578796399040096455978919353018312767159705940565443437612298124967131699858386064531159578543031751810945653680563486505617039000605995073106143467731363974462978871687813115589255930990922691586673148918703876176232827448808251761099726210032509086617560229407205078054961519838729329228275500821016461302132945885660927813439109253909347339591399840114424875751356224144157597913297068634860652850782306479401703064228948034265695546772074045086961677262802727165590738798777793789246205102334606723011833150595014883532865460998272243142620633739630024253641387624187280950818323683300119203161897042048793029529199743144216132214831050918813503030417905918401369384420854758745436054232869997545851035924757322373705659678721466460305941791094018891771330593805382589695802576763223814769445120886508039696791781374188712645620570405845436874144719582050336093206341795772028243524898092984567252843351757486354246671891836741184296322296246645998047225301628718625313857895429606850703122491831633754433490431050231898825223412110200471670076992064231121420270790148054864769873290448065888918924081999147060900835476588920574281099781641401656236728978169700129046301972043357876484122852500219375284849089390841630621560670385378442562722466075944147579837425156477439269177301721277585477659676297571258191090498739871888442958384549495930552718860955242168819272763198865629373973858320259768304450082593855114007010735964253529060937930072749534427755948680967875595188633447247454451153389410420444559426718503836106267379157520461735231398535381109762398195560704594374708656765816399125972548449600964311641003665587641324934932127443036466330489923433690229040276322047213187084513091500593528866134749062767956419875860166883553220875519612782312336149504357955155566575014302808896021986528655014466961544012552140677551027713241894995433958521747786131102054964383986340307262757747145774267024780850030633124822038084861146772496173880344833712182874961020767592687263187517201970327928970344801659981472437747040145848905182127167133546207089651879705243738406041171740473083832301157167886198217594396439853903268997141928969832266549541415567130267215004083007174766329734877891723483174559358423801459098433070744455050241483700997180707024971983852005200877468604204080201616842416246988804497671302686053898998822573147250253377725994476822321472650727473616490584359894296202991041588358794710621889997490883338133133878324379385948631915470944350826789195128160656867323595767776273425177912673544348316792749652697133436019045018753740312842765595492697550631091380464911045119586747060770566337786646819303155585439316121138961769281125912287967138314790782547502194416397862127789387548644107841702293068465071758774202374600692983346570657330011481207037685279424992005220319933174190385258483306097142895392380103771376930883511126983823798940554531207725518307447012386431210611049343804714472569069401407736858160606642086974236697568906366038938063671479392576590793085229925165316138183893758754713346794394707099025729897948203845332846765171636561645777900393014818736933029304958329157161327844656604065875650278590466369964963502796211145637780866561145705639859046995121101653729990519876922310721573904664396285196582851514047758770701170395122627045553828702934042750710464242922827858613036732022441692323275144085440461554825763390461994023329812289290991237325938539983781287252274653285453823414912996095647555005686971569348164599123223059807913335801854451359417581231965354262868585846671535813837382722774405876380007633582156967322966675748944082724889672353206305280483771759249265258399668528689161285856899970308977040857845027334313696130606992326947687373283914287139682237648605952484572482339264967128628768393473410607126841249379923460809458749572508480659647479727414291664109575067402052272468745416859561420550302952989861769139286001302000510363481854860837767046487693956324152893681373363576106154943610434931148525624148782972948312756769970670551559074446197832311764938643451513731256203999483808639535157870352292982318897038263637148703237928408951178831642642965068470177408242151949921320169773418042945879735875232161766019281606966062036186283942517424732807836021385735396555819742626720330714976481428101813924957833884516605248694769092283550266230880947890719528680214820500095460472139866063311290074888556514671351314072240402026322023075530289647604927587338783651271547882547553073563078298710150473040499966851662668362005961623074679983998966460037658278406089083834014542470569204053920095048909157389963774529181941531416610801424046455436868859230240888217740604393717226755872369841903585426216292151805736933422083478980208162966082432177472992603934295564845453841665097208238995904432024791531102419353601903128082130224349419176310147634580107842474030968268416772982292130301983967810269374176114961009846182494609535977059791141857864561500362674935272593137771257668342835630637735177353518220664536027906587864830741439607203421886316863675018988733004734094477314745979831391074587091191246346017769608920034728929180983023452160374539472745040318432335639781363459882693755775055056692855620653848272071448953368983411424428712861161517001107335342467568792372467302823729504734515276794802975461729175648809141916010566210907994656592192862480134966289474207833486716274400681352421433384170459128583344563672662356358250121193100080234995506924329249755140662537503971254328705808990642673471277707217276300992552060397502195024816302280235810505162347730424209886899662142669727444540632436535077269366741083746669823427747483123832146872213217835102176610783927802948669738732680473325587340176056193055838191583135412035002685107679997410994700587046536773392101556395155734929985658090469896629755520280168027770397928405785707881351605504163160036971522439769065713654831802612535861151404554297554730996056583701780951065200775965891553650344317684428154729693319285560279089486576762688090474615263074560195535417482401227485732559634532169780042972396873120644916040341432233464666171371174653698413921696315096130657290149234936330539543723456297582778222674463373499001061715304939538735224163058537339324992545673377060628157539323250852094615318523698656686457083742414971797302971759541350694953914451383040147603735124987944533737498582763898998397790870327986368663129089239917417541005238326038620485930077338893818600703532229685973372622392485571523429404163138393453390113191416974310735959141406544314501192731225250634634493312130407627659223293021066832794489970995812871451815691354494623482490654017263715429207857693881415912446392953374626746531999428591538770009550476136214747202039823146647055072720834002611865240394275304833841588176299203719445977727528383267038453297798663858862650677849409417431140749169993697066872447528922091696488252007393988254649260571876853070064647791598513823251624769890879683388740641187518952976356858187892815120181259863018174663426007357293659167843465387024747897773017416537898069587748314295184860120655747702949200097092688509860930008214417179650501797671199195156290084274075539426941008884783858328025835045622241852332369095212532748710710406267780536482501573738152630948583068392716034897039857563469015445981093974911140694234979607790934649673310512094117071433346439173355336404925592317318049271058463679622636147978042517089562758266693228509867804469519261070160235651452211327710723075520216263366387032674945711965352238553122603161723446242899694480120337889878724147082019201233695903545403811187955389052778687790642450803786400938110160376114087626482709148666523987209151983575386281762944475446206610921694610561483163876314528118558656607483864448106419035210978751482684309473511481938233539630610824903271110618831448300625678638151643434921268771165952592132308381799905261660452210606301014034355176722009790287443945454472390081789026023592467647682304857923416512689425158956587850346911100422921905250740213266823990430737400351506471808545898662022638228449675964219442693585958914025327563656468364974395580919853364344466851187725913447567473085312725150775039119830114653704197467842943253691418225591605922781443185279310774914564944809694851040291560948339603172834779779966539894297624342854534277008978378843669964508586350164661725743405476403362011053464457309392837460369305473758856747520808322458873069234845284665414129183430404370663021320133430654475317166791520157060028020864443706392895037204688472295293408892405337181812333497388394879585740032964610351888885289286209075793760686771741086356933934103556455233687940498108990150207775867298486971503514937691608445414670750218569160936931144274263499444880233823489843018312369634350144188848668081434343842497539758378436749765106414719057812063537353805356563244038840322759438640005378565057375866775443336363293131627028785836670804863098420489263635724554079559519052309612028381654533976672523974015464345123681701307654453668375020728381621320876911347593103963879361238576309848199438699788237207218154183170506895887773784135029887870818865175544171621021074754989595309332763466364795484727949058856127667730675021280064876491483119942573608732358831574360262000380781693239695280279858403874400314348309659683382410630718423607171028140861398049822336364445878803758859569601593343006369498476354138442697157166927119472244758396292212912327271881373955100595137731549429946309515259506560255991670508441723429166689671851333917753741475207045806544874170953584834135229821303167282710134453524162279519203260535295636055424655254798082171882439478782424033904163179358877366135468350182537666438663945617456304678783320971921561413962555639426503585718403201868040423309200347274602077809132492091578771829720607437366593321607250313956729633704761041302467128008261775847446211332160707647733962329619163758744150267890396555402063072636398619900173105629233037259893469903996807463202625162283587946747110096642449147639915441600670974471080552118394592684235972201964541155690971075134869392074877026456057815526470175323488140449915877205743949182242771689680260699482207156070895617316646985255134318704677748573317649914742610175536985588753887391691051276117532812103885122859815624233151865034110818629567697720683001602308367698255600242555326481559960479241525758961685149177944834307058783067891065607304396426087368422402582453907600208553061992349057413038664603778982969440326330599946715236493412041505563220776990355620425105146883734238860136860257431426033171449117785968237462628085376815727097638623817817976608507741405842784653247929639233368210159781030110096771208850701542619682740257125767814905477843419513857716892458146257603971972716723781548463321453183417940255598776892228483457356868903808587339748697507145495558468098352874671649944739782946731197229729605333494689360934860543240631431868935522296632118156550925764809148588907618050349919180782294721025810644793211943529314111854108382237999498540595553926969418981350992438346962902086387538449142207060163632203372694886147583804329791576610937271483036543395105827887521594730257438498241712110004283028024803695003752455523365634968116961512352113078995708823745306463964890605301602951835369202733735784835276789235874710597183016465456038165918681448111370557092691651234638864231814828211367634896017792866847492120496888018482588732442626323638069545488345831768877980755649739304683421813785647169483647835447969776571678026254142988775161539993943089853507164186021292492032851868327947728954943497304277650871848376888395454578978423921112021843394383118355769782031299337078752164694964424976606050018994430346365697622496604110784708882053094552807209831764572345284436816863591201512851752017216545289821760044221105033200155542540564433746669827445888136225021191812971204510779447580854681636475030575234440045566470920213141832890945363385446937514061684907800845482288250071807609216684374319953025146208439646750056365916795644108386108911098920372075999008577419747428522830823982503759872514732635978743051773807738868545601272621247073592010496466722554311771958342259645507552304986989384439505707463210055217470100564132600016844300023539040121156645416514521643616119501510545343489098719217081512830671496341280687998672252692841917543606807881230827283451962008182714722784012792601276154721383022439953651018084377703065744874492576680441167231683330150538411873015859867550162436746854930913026999601910357274745053239667055240072037855758781453258808665630145927656208276191148399502932833083533800970236963661085681810058456938026058552873298468466565318147679804428871138786370997328951777548949178292521403323886246154640257994953990258451186462090289718512587034996294015897101267305866043013165540313550847395707190748680615695193399021648785913953124245864243520054331605554514626915168731179959748411126214863270618921306339986820812599462033459998554185667314769931204226092551111647807208147117904059577070826184686379587267980542962950447860806404858685694648090996842943375338288653708137452369986579206595704632972075868423694852722395620774571083583680622494315857220585289266051326197134784085749793165917095900880039833176181934254407050508245014592430181133733201519817134285437750408022260515281953239033935948552920923090890421933310785374917411091518889066611326160406472599942187061240994785298770840035766188077671388388337020967244609793724928097773218457801619499556844908417486596413012560046655429516984603624546261104306958347683345683752234844546056339152687224756609145923905060459903912030867831724944524067126852187674732153666126510316499920820607427524661751806147859269738663480420103637400929155306802708926186937921966530195012377323537034588903129224601230520650601135072752119041046661319497657641494371287762921728817470992504910603138633017887571260131755717633283377566818835934676665151665929118249935753421677123004731575576552789741633305138178226922407748403576955699165212595392936153622865203496824531010146811287319728845284764327432151722985235697214453198066916328568212133220775794158104689394713109705434195646639393866849720964186913758693561374742163991152066223610479441794244383418339930169487628634917887839918438905084894507647503975343248464942649794452576278175880564121528104109938499405162033947673098585060735183110942775110806589738199299525940686292697603788680978531114895470765562969216779268785240190503779777042634824801578544795549312242247075016478573859217311327657816108344390617292284241245243067328525236140682673969742527487600443136300434111617879794219318963005075498367155907575139057183509731305202364204590840962037526383573578516204524594957569912161957645035040605707372634368176230189970520940454204992501921652276078169183969492162682451621540298725916010336740954212233135816297832504175105796516466042082443615369088429536772956439051106948466485792196525039729113807664074708942290262925996640580825837873422517557752126510476217703899993572781042194850814220280864723230316089609129508957058077848759117482244559324341618796032831179916096581782615900212514599431102407472554606418130873436580832349744556904363860045970412669571581243638601655959990652160213829051346365342601282428571525967749034971100107478364422671098933006459928346781492023393566845925760388976917460499004535968278361306262376580247872768269821716502870130506994091323318599201851494714508889864587007035362743887476390348587533709992299104439477724167595995579640298250937305518555312831572701637465953316721090363629717458232646467336207212984007787396002099271252662639565617654186510589278533473857499751582273829589782357423017350369289341435791974990277668436966463955628284766295980517519410415114615076610944176532125999868061595883138146995479095177657997184062659174620714116560876582977088962699395166917085099699810486193245635439159841509530196105738431486403868814502038105311128418073530563614641550948769752446410914906298358824976697989879651073391106897803025660621249058890322871764175121503784984797248785797888624490646842856085892871997987661950318338157096211760719251580363136905450606450268575741061828398871447446606083048281075017708922436168381123002359280771546568793158170381239941686408444893260326451263509780681260280732301965231136644254412324997036285570546811073774406320942367072574303891860641210973049315872722024196272238427870447823862288349791539010706014787902073952432480976721351185744478640007922748858052523381937592207911025761671822731343124213923624981086200561404278991071055795467740580009222518329236879491679988767051866904474187986893421395035222686502674463608215404968687049668451789862562412176821894127853353303719393314499634817230730021694310899519191464719902407639799638309467598138612218107259645986703185972244743556933612653514524950005465366499941589635329682206082528628927501863307869675227209903699723447515283047879887219008372950442138401897401867007312592598026643154043624139201977755975223386369024238245429116243266113432864510234607665496456582425929087790183445172883478842576625991140498585328243016897181439002687903671505566591037547891023190639078891495632196264864624573039962465412585875704938432542506210763318330560747116644758015349921219689849920340137229421520648018733763283170154851381981617003315951476355031164085357718788070801013938516107751272815453551345889482094154139164542106537976778169394774254882291291026925953619262869060476176969092893944533735843573024100522867013068236499142842367854760850958757041682296755787917921388796480244864550609394581638473564881286260484177419277338811036982668402105623654789043293514991218928930014500110498923127522618679600515346947880544504036600234861537652421301869508093379079727649408197150078311600408981314506733495900838807961620183721733306167873688909147139069551961978684658062058783204700316914261417430830653911369582570257575792832831630133077360092013667943305677466308679062972178027145492847889101670824749630940848814191651754750572135906678972657156618495463136586998291138752769079254081422130793654729270103856826496458301476667702362341204412201395326528763849398983396712664187553738931176652194238601276218835668773656326586316852689940101898282647317149469887649155858261047685047715827934219471279675395130693363804309898899764779149352014974036335846719964100389471087891907951214614349142100366494775074031953272968449474518913199167513920114430210467328365922129215349611665114233229113730742565603818057130250353045531257937447365762543255474915524639148755114237967691790397103188883359000638710780530601510155148272712057555384226199620346242639599399518331776318020504704335424947557011610755645973215657104227407793600681053467681407958971860850816272671490599566087001937942853246432075040529376050610488118690412763961947799808875802920516643888335929069059415301390071887129918126674469385603331153328529448354209584736629088939371859018359622249876437434065281282916324371556273157074854424977903606315472325034113011671117747005781342288028996602664693175507161751321821554059979531495231018704766907769990248227887717114986132693672619349453305593066157321991512942281801095862351235575959522976762809778600890056715605392088157572814158855926088894737393933024610140418698858455480339898469032678319430207170339215840082441110372860279298567800416515585584233387754690624577163620138469982509021343193059755239130883775466890977696869463361923921440313997201893703932024472753893408805982944931609268233106806238547029882964310441551856757361412428780467228713696700883772958980936817242912672015060381904962604883919815375763343901871317245837312885733270072128908989877159613260543693496316359110311608347970000999128322680427007661370005192161987269986419791007111798088601458971998866222760105852868323367565981621444481548750535628130396044268045944963323853733853103821000325164554963045919356029259021952760294608374102453924438457131603555884419690540356791301229420325305777366212999997396274764451926100315287151480908352840359135363587845641547136605050967526647264353363790247684855527340750377671020069057048948416626334173208212143265231048005914612854360679418058016297532087762139187949301682322765907641290670423324813132582382852044226542674416530564706902243126279427258172274824478214811463204279913595782515941010117232925546808076150354115469649909359813509232393256013694782945855384455997648186900942846545820119867891933739676351909868738609154355049202487027934947425463085459095988324196193843201051352143748502210180902158624276485531394347892086198626651475433927403565585863643058933563823474658123252472975364611022481451450545255201568670793148197635595772492353634678853105184142965891480961119998687603765192087069381147425231585901068260631921548875751384339868621878585987512651391240866592100868223159569365216043819969409274354590472128959475893380072559812734518323345437473649583263174169468133543308538447319648709250961502128014657887972160873909117181560237761801280483053780678617654111687741815368521158936921030925233958440931698452896658552359420951657546539573475644444336029384572615784928496464582186694768421959418222205822003899721862787961078144503261733572224729673458427044262418028550751650170650277000216293401659769525349992572578873095647654529124309751471604231189544691831799638155296759348595813647994369208121566845502374738424275401399726571680694156447772276573888943419289134050344169059004389443380105203009135004084455051710889590373166014828265343676480070472657828907090547303530904974602358502776116633926718883281089119204253498523036466525815281181917597768177608144315670663578370077999824712983623763246646828539783212774762428349826711597657246422482703761112980138943763375889266094652969411307782992867713265456789312497024753291801228427417938500464477150926535094793865378906091433120110645993905777824024559403824418868121842575898311025008895860863297543543628109375875694176459428510193115735705288559061149771020907794973779464575828350167131268763358907405400647834746748123386173248808424555893393133101710436784066666344249124548323000455827876418392754648413620279792675048474560416744997388661783712869103559536126145971800560294420547807694872504019501971431708786114521879418430202946393795559415372521517001854425375157495025696667836538830683148620056306667282592778722361553014842672421920334634935660861912988039347074383564848529713064737693400528442104211960433385159529610632009915766788876088494303609163540562006762131732530279276313014323736294019863393530821425455566471607987275501336271314471023156684992720279520788594380492612179650717785324960677259815488434412561665103713102825984537609601778053130401783536565023362404583742246358756105146798121991396208631992258759753317516594904456775323890702943187498489160074869292270386053723011795433090162150357586750800196926309964573448584037734256828859079426929674828409885349760691760456535557886023457059232385734812800357879185055164272293825288355519015146569728684037509472823650672192177520551194169802072374127242236044906055363405446381740065343762406061528082520061142185474012068782521262371542900543340447794577016204618683109396357010589423256194407454364144555101647175014979695941276009836392214088197607225322583235933274201311107437978295121870937036702700709350657306725614954759099536848174855367416242878693393965360424024069335730718160711090873218979481854536515345678848642256065882485960868037330542430212748002245296843784387719290644988503092890799166656943412534812284620836684385725824287436651965856115562140142702920379791469073043482368513704096681314314410131618868419760490872499223146225758920297341244894983571518681112800135658995786596032297044967799338274259431442462587977745899789529654738870398165164577712612850263896400236088856093264080754796377516718776660130555468937918578728626203011281005914519961214485458851122402038612499236917290832381210943840263827677084168754556560310068899870586278045202330271121864313218880242919884636500024267451501337011865003450962969927082525870605238380741918628917214817636676447302356467004102191551799234335997110023837262973806584629448234949616655341039408746707366899225609116466205559333748220907295903959916041366822003560172957008539906003619567545794995344792018052930539321672492474734687103127080309206610515074614821951033515857859570925889093024226517973299650018749324142261414546865749724531683497368052534326257967178853808319571097543078725472260200018456094538948284178440662353360928936091101683675928119939659856013707423671967757851554774584950318726248613490649851006975767957020008688351025974818771029768713334340363521267810643122712409191751498503950699871011742639621660766300321404024244969237238855774607449957373889186451727336448004511778041385009858944607486042267898320880510353872164576314498038878821521013345118419454839734468208153367747679674275611403186839369480298873193253083227362419787390752026992258518910258286534435496604531131145786498609833911045253670022154877779784654000221036334344822972751549979704036256389656354152826075734650569832877926854446936608459404804055088128087248506155905075387703638286585451087561474717827288455130950515448719223403737559898132499204019802027699136896897170271792085214214156283707494810751650671819036264342700464756781600104604116857610350008735697206077163499696691439290127503746407706781051709150685577130409825864455244220783143497081172664682454933444337167646493250268214046805183886525591810266266296385769540104072581405083782769600432783574505615968721602502105799089091723361295565043974076344305889599647957367988842347771037110902192861254812193070389879766311957036264143520116792936510083088577450763891185960095838388312521934895327478226620923742925446204008111331769194751226267731807249019586258449403287496278147544159247920867184603638956768276193071081010041796936492135009009339345221599956416387159601541627981977993667818635808309687177997052445849741096022487308732951268591824678720330636719927170602130455233050918827856693279447687679812565757605096474648139590154007199710156094353729615854373775199393440334799118845375574928104430471226869563411814469883237349968945103233832870552907801086546661932582689617091437634130699772320355723240992582616590544945001332718298647442349612825181008814436816359366470160586232166203798694896100700773167842789901458380922251064430929035270637594467966435749687369324677786451879651643714250516067950552501833674311856010813169857507281151275624182995900012134873610957645133065194530412652455693078349415368864090595257674865646865091508765811923799623536228629405982967673638128508954042546194483302812405651213985923144541917280114321791119483902748781550208650043109381602469301310619694912078473491356985233342064983785370192970817856266446632886906393727491490463660739004339398431814320507433895561673861569204668631210420701591874370165111896348877516044225396976532104191983446617207601213794940343722954142929207795305930139232933730782370733049579834470193563233261400382759328491636358952264743968830208346877584863362767453834669379510822566011469671139655297610369448224773281579704087482457997529937353994638751319511961897842006587045712102792533474979120914870078327808380646536822060912935335441500065723677631256087647307908570338088031798499627314828152452788518799442529290783619798909586104954309229346349372880047998347642327937923720496090061075058487687243082067640876298986347994779238396857973183865241229780322820686582254926463441244654252363768887310135053321604332934521558794150938544897740240360032721304549257598999720622136303112485049039133093934103868683015890344339542445357305594078364506200445113708230737270302601891547855683019797729065554190174378371988743723083123086468698086215740933253603421909863302271007905841972023365127515851249495784010131717135751832688742561308778300038756604529562861215897123802103035938989781031656238070093652321979661685582110776146184715936207249101789998721576953262204580048494247221735721764955319105725852267330750402764139366823414787567745277352092322895808175065658152832326653615184646270165591868324154118623274830600675562527367491036597724988820346457435451759625986457704863838126483408764051744236554410121398826467283662968114099287186743991489190573396228128556019350996128848325265561070813173831375228358163016590496589083591592543809307670636066438907814165453946710758407385520427692681454641209206770066272047627683461102009670134363938579038398848197201998349476558540809967962900546388718453455510072046928448367207487003199570477564677676312601714554357349756398867172040087940334903822454807807156778672246016751815850192377377486166760128880734448312364652876612283872664260875583953613000616820378949202525979054358994405100794388672282500540685174675354079401332696925276879488656925815247085348294344621657250104108269733211381831708390704051632781582611953017531983771271247532308079294029360743427409798102389554970023840050662518173786190347051547581181355692490548686661760113662866197693526811714614477915976424429897055440162860440170862878229739818147682711770749039232854236503946482501007923865527241458884909883202916824184121938183225704393801137956816503421327658935209430907304430736936547700461372021223353322240940867514646096298722652314839052165610013486664983580385997925058115842898568492989333463492620650923882608181014880327468289857486978484388706323216043266578000787258574739858118722167417205271341947801982243667111146799667689975656597514024416407892180704281491442844945940001791140535188775081312102790918591417698477426564599482951194160162082395947151518830837064348226684502712791430015854530845882210814546841616905874103454745214677424694138051936160357382483947563769555142855225082908658441092852991608094751398491540078155386351130955187099782988539675365345345827122542462939945061314441493339229588256562512668122592182799133991708283306283596370563121918358070412416286624786291736923473823618870916708281967825855212505339561861693736274037840708378174927062598970643373771368036183403927128316004138691592687099777511574632331854814253085561331126062303952300187506500939409490842465415553891172417973371744023205147688868082959201584150089061983015692692386133162658215614105395084265619473756803858718147955853466317542859363344875916584645121559577490504881832947990649518516080697611039483962203547280804485924311464932384405515941057259712533094037114453965897987717305145529761874705049526241032420995540019832790379634516988402238591576067398518352640571589326751840982645347970841692069542412629569888017361973777332422888000256125499530504224066211797595471148890541069222015869527166557235267303531501906122802721607909846519398852712077316350577747658010677945307593631099624610855524137542886261139864144169355868005914371076654165824566410796450906485777899969346267001891538314392458486952192763058294171952321528164784106777223326994271092465962144084941100497092511166474998541342607748635176614520124132249270901263986942265268148533459887677968273157397199190896343525825402772957955984966040447668811790557135062499778889650413753179209297689840940196500805501602977452704176128246158349164370305915473863192481188661101805144491950053185183951405647366783133593169382105924573343947206697153916599332567062333142223797810956876939816288518372906136373464017482281470943033190549924538096904310868717345178203908418014709537690676267260662646154662713852259186745023695798039815083567582661031264989199574488402493425933491791749964978439489789430171488343961904132264359692901431652915301333566420905120306660610735641614291629779100632275590321581925875335510924780224464740563735210651410541601649209915430394992305946991767266496095662987324294909719860324845760316373973595632188161378499322414761809931338279462802029405123437110471022684183480412326865622072724382495450710575198412524145344275506135665109702565038573592754768418195689696342182862097395669129436710038654909914233100227076908680467087364394085015531236964124907029314679794299271173893022711167157976200868554872267397144030696967956530681459004828305919336853839369016942496270977551012801729152559589574915646157242777331891217081681209486619733588832259827045082118216713035193583722827259600340621081676926503412642454441820568324859013775808588283695068457908718413791818344353274925001454493187716156377801129713786738644725307644431058361592321635355213982276171168819184940333305773974555941158148051155050262571517365794268535025005979412860772343138483749157270929172148138095388789388076220289769063180100116429999353884763291832954679057526160552897337194684896507504159510823806911481693999030108959013260447010311203125356598372035539489660047553465396457886926371173859875398326199441771556294610934311694820851136199998943694542684480123994269522311512711530346482090632290477498783668698763938946535525521439115573392466419312391462835733114468636552044035568552711379300210659089386111087638325155658005929540241012171129592201506653021434849963183324298792516025507354997644010273002621954347037652193885429482457854574125939560079825188667325360443055195423059154931087558385612568434189174255701090012200944206268785489756070282787140369976650277591188999929305973760265495011244957094740261083622602665549233772052842366168102431414924697832136144746164837366456119143774750082386103903657190830829382960507386001688927720213421383129785693612741579449858788076951682934628851101215324472463348269907257140495256483865893619982958461560152374412456419951673981582521023498302492859094091874315120948499143314151941476045950962866650820964439304306691312426813417026585484722574592950918090107197418021272320578332631862988689486770815977381396730295722503561321042547408666242138140602591517316320570318333342192250093337988589924594522718793316697653547749185327677767651526453369362783361523044973933573461203766394207723362220427551062925267918426634887985987371770236896517195967610868932601439663153847877595750102977901559970381279732675744208736497450442164547729681477406496530850058031940450436422288394678190749766226767423537090441621856789528480195244982111972047390918409701878424283606716735751774852568531935669585815623379655846006130410991891462204897761325650722285534900095922595909119964845265863232754565700157873021612924137670576542216151350067580704661739599409067060943382906646097840315108768590139533278391857638984890938357069869670525490073236307705805820875804114432976669860575454119530868567916089682992387984385367344332932861786551450393957348435640136462992422060664149463095906799806138308306647407818640629220310301081602103311295013087507692312779201140946345972190885674797979119187390444773104415079164740663253407104521859889953610176638114557853981578510785293959285876926582943799413486492141507487803261528695161810886724521053465095280332240829373030822550981625675839705874180368259199524089829334131385918209272823025656246196689250710978930604226364298789202717153825430233192299464509727468509062838193453618615012750272527128526458582833122475660959598336705472654955880880003288567552305183668685258212898967276131274007711593750593663722758220301813838696830770673690854071752624761184713414846290261583740534468632067625420935344416588222181631679079511508401968639293294549619753318644293034046120428669353594043877002789890531003043186516089703691505239671050500105011689152704084507619953034458965352925558774182732071653660420846648157236428566856538839619608706605216936648281447790923262580109256241936937229726606313650423419760534031653674729532495315616694732536408714219254962428806598804225353926620542986583398262159740046752862198057558955607822550611859243779071566780483615441216959143082558632360623202393113014004253683695924972224793768804875129005339365387644254204104043611323480581392202247131788918259070523907158320552486436557906656220126342425526700615890553711752170367519957457002512708036654252442552429329736572961635342331347802888307741064550801630066113359087501252912327033445073090945785082479942623197431763468410719666800061165666112814808417760389375761154669002398667744311216558101010825654726121515315722987792989683865909916906340726354986244616895900638711101604503761957163922021030134080782427191685831900514864443408053963839346034167871273785980629780066434870076284939477059447278105022865317903996157798780637017148089168996718682438884775699777555461894550471097227983864096936658151574354029776748693843450382312991623563120347008323246178869705133588363597639965997661091677658683020684073586540172292350241505313152837797012515613153302271221510058160839389497961088284128537153647067161827362414941596101545050667722468089141900925362445930079618861906259093989436424022517347702423383822556522960218023212859403084373068933952921462586936334190754799870947899861268466640901618392796408738782412301846515991895688446644297384085462953473594822399686738566340535457281124447670935090445460895476981073574814724827035646687313754861067521018441081177065792910146894178640756577963913826545218390471712600413564556715640056024048218243927415558029761782183946699722129204542978860463266916136177228338312933308346140645483508845372272720467258138653247016697380657257962421398296172351492282685899617193962625833006403714667452795197227925470982839775166419715019928690716617808320849261317160290398175226082311262779927996608688190300182980840618515954309028042666576350255380311510698626714952137117039385587523034629185870233411482757453766213563503371315784544250802662459957117018779598629255281120537814069031667311433621644618705916912878560315036782958761041736658305827560838976019414867500600184709211945568460547059865463196691201737441548081438918412960239997972005812606600951783451658229566161176323505064047414184872915225459721928074755365834020371095496655472448737827686097029744517179228805830125202432631050624063854622363386703069724432049533773669717039923236054062860006757609741593013797588886808896341366666356456323263737506540401862430202032554110715179617172625391254133642871905365316702837338843313414844219689349711627188121074152339493953481248811155576429502829994588075026307982948817708370947355851932355295464141036793996753085476872233455760111620685810544417017965051047011187538330644963602813627334652001008288963745758105460174371458046249549089878451286570037233534555021867383108922355366923264946327744036456101775522978009650100497235169329166986279656409297065224234846260968845104335433597909149832046813741832131458324167419768061888569032142567124538580768883983836214316690124685909140648665007406657312366130493989232816356987046278191652129982876596322944527340227220841065232559835085932899163939656318314595714034667840264234632241623832504779912018389428414238877212672444116875241504968109853691124946568026381402132585866910502661535510448501353526044401285126334347273641716703949268339632890183632689572713569343039955377022967301557743692215009631156857033597186770521630150063995769134648554314267207483757379456365856463631119825612105351108565796834446698052379061786849359796894306443353361077423419886991588068172919379473557563788068436075866316014859480391553065226718086334121948855961014738920329213981309519936410986305452528038971833376474777042568816552944526562355543900153431311092092915401941158533634507906197907783901791485722381343160548641027277050025660115307647929093881923863300472354145601340888248065681524816943611854871272549108816851218225314771567819735225311820702063474184745125798805616747157849539552325332057833936329675529792877603076588783477850150704519486504897690796815645046831206054249693074221319102588163689145107306365055665920637255857431226189634098234976946426318308358638684917995080853467976751085460710488517976445094471228849607849581363673299295388518052804418004968023205003685125408593310428993159818243006544223339475871140830508108803494418379804523057617295331934026553163451587313078150194421178717536576881329581948263576474675726616813268424152684367655622962718618988304443489439602871233154223960241140601709800149115829065910167346051997716322480598804585595534607724556627333999278613456043981563905214050598151016849273358910309137210149888930304937909699784264402090952448757345438183352439721392703381313451668232196026019512468953520637944310361356109787096812897841066401524621646366949381708478847421596448460575091038374221747345736567823602822154033789597178069265059334773698205741074878421934888802735172064856182424623556393797757628630080773269919014272612120648546976981134264344217595179822439699876343231039208006922683905402043489166955985827364639872716690103216074470786750505877603581285978192135528078655817785286096735863174258204286944270286822321217884286164718947996405133291011799531600333695666284289698774275726253657501539730632607456013177562985774225310002612524402295807535934210193906871898495873273205613492464650171745493036843351745940357632925898827338734874017947575868886858494566108063124660645886094429154800748474392083221320851966359735766337215952969083846537039790294604463230236722781904534124568317544590338875354983883514870530185337903942756977612025642317650865052746305840632884321556615372266217610691082516216112254997875012855502660975133954307842964027032499410185233948215566935793530312942420569373046284015669720013447274311286902105610395400032887184219580510028592664667327839142773943175986361896704476240772683707629400992603904011677783749573912152290952612018864583701214639933356764313944096768792106048414155537096857023384345573681803854643716867303718420908051838951888718029278499148308106164592857047769941029170541500647762882907131445352574318344954932206633415210391743734028229139777866111792123560646143823068405317992905765048184267964036054804466376319868822325131825699722773158220634794038428580901546534596154900233312761686138038961394220675110095424810951076282521656882039907206018995236954649798971479717943711565981159036278742524235722611978624490555097513641297113141052917829277568598219792373206208477392503240548159263485314768006199326767688007670522499078891838396291630027940809530204044116444750806594995000067157997873513390864526714112667277613104000054617708198334544361525370479594785367283324691581224293789082435409629849076287309215566177130332508547138400743652265988031460171927634383941348676280087504198117178311929033040950137872192299084942898233349154307467600939256463638178260677377298688442366397456672737521087297047392445361142201352552752477725710232132614919679299277563831613204740061786419505005914198339967456411325773632854956657981159018285377203458021321315354311595237267495824495982596017996711580512030256187203686759630949691038423880247496320794258124220068586467026849065005403733415401942788540903712503907657659962125729538652800322213947792131863425747353979813278578425693861378238721899758131498915859384704689477064600558062988733080763558810028160999796805374764169649949619131114543375361908325243581076837368310602894022837545458531706865062348496343602400802533649322880105197462517613803226327130671410814024408660461062295354033148731750471087626931592912569215663066086763569524173046940534321079811317389286290003449738091233759638546548693180221758876767456430739498894681259061793704972324389123315430837971759282528965517092385249525854591225723882278263261339228842877268228522423106363531866520169372714525670905379225071240222210200951266048712481536202071248651303766612562998514998626093804561637383844274768430627013179058626704266609532205891986439037685567940775245971324604766545992598461540639897096815834557049953687199140926970282207262701890317994063395025780614068594022184806762530784250230474634552247914963957333714571759472273393249702192128985840295029460672123720933492370847164209030232003949105775604813443793779014381664913673932891163961141753663263352634974496722616337516064383362420921211675003287057430175549607664908806154697846786047498681959353468986711911816226654317018728195609759542106941182887881135995749213952225224474991414295631554703887799271620649097519510053862210407017392904285161525192405845092703415905395304524168318054815174015512222319763852993430190810812624671836279491907536586260030418006576695786609399533974446565099421490809412188145679507412190586020685559620791303458423397793857001867629199701571338716143846174510307904283725897637911562855728751915192364521404936176334035895818439724952072277886752318313473935596275610612274630862394309401311777483126991837917216860481385342343267567732806503031912597657337558502366285931705487279568962538114424205342103036521332823448401576855305117875267651564727567557826459074182061813608623519450381656634948200704939127715500824777494636591971709567501599209406821233159684166798137853671089157512691214098647861690089057348379366029316245010530630163162619702286979230736798289485759163923771375607956382027813107095817018025244929219183993640980486496078454181547181340356987547046126666569006787893743564703049612387133335482759624049707138165032597045800901793602039257717134254840370137086091992679754727509335436116980629114703497433276950419797095366505180760539232544725105241873982337389479231725069266454249840951827551666604846458258761926070935628651967078961026238343962937167509291797419686554600762104966238085671026834390366573644829781595180442133458432418307723888255726755920837906291197982893054930145815973625167332141835389969231707233790666755255173697141307117592875003714478692928848592503704537281492678337561343217758537772181392706762006687719381044461872381930470822735176949458563798288513380020931271388017954372943503766790879029691834496551272071999102561263261180066460956131928903749716377553784429989955890163231130708069903612118677446068736790654786767793028423517042016299943155193775252838878398382458907075921689150613093935286906211796249529923838874188130700588447316727297344878725604411918508269876221176172673506832160352120784460373688682258128900592748243154189633752376992075556450214288228392966004018793924620319390711812155260564600301178967321194676325176444724086072559990953637703746501768273230714939818533098430079025296703855947954855875619353542785325647996936169342358697372755569245509940371959224303201096642900993121453167156880106419265321923850153244687709808334563368697908509948116311280776710814845737573037603661893553175888921891413950686580804691104495462258393945878084752137422469524082330303662003117870070481336472204310480375113419922623674103651369271212365409053093870311341044197426271701341251178835869474261698568567014163521940452636183158346282593358355236363970425871643529640124615404594253216602686527530961569128795079284456565985810219293436596195335902167421825042359184610231040568657659765070687851954478386709386145672775253054657761422848963593659070635853176149031613957281769886821110837808496786713182755033990136995314969875004069611533518653552990999744255505888954873185237201140866791632504149040457174125827770537116048015326726908650928637911505637853137720220318804464046102716419119577783903815337505888275626626015445829680002817863352949880109547287158494987515537249281519932234443157262527506990373175677153014162375304709674501637115817080635285249740894476581454378963901317630121824239077473224999725694353006627859060257231035505413888367198853904259663500539351977964313635265576679804296416384546478749971954758540941032184256728672343293803461848233306049942753936587964465065896470985357667811555378233930659693933600387344568238240836727073084358665376485156709480613065311993851229231716188326151036689325307487989956342054549472803892544096533291780991151222010837415201902678124562115784747377652207260128006896266429115152875327838245073880361946979176294729922035872257716455094339714147081202126344081054735538333669141144981645811120557549058517293004231888322456285265072942197677521336578432309447151100200809498790209370300095606545876877837484569538477888641879103102544792240616468994010020110060806421909121744072266687466981732007383450091606729598174838239300656454319800450607024429937527409851783933754801560531993280331521210267739577329751665543442595845096402910323296173916824311947101154512175554700043798706165878277928085572664032891769905144971123876011356790633586969073633783860218701173305969575073879443760551553628015033818693719535081099720140866375312700909342322238989585071676175900085637583901616368981840954151631705428575461256088170683199366513237369069672056329915133600332779949025223547495353820040838287459894534890704153730083634990556406777750799807463143736723558638083147508110672565697127939011398610861271636914577909016242852382344949176609017583481110417724882610533339094670881854833988786842261846168277498480583453777689654801935278444396872331360416828774177684839820397299713480061169039857786100170012760581034822487377077561818021530590188197201136774807862158933659615114460362357195581180734485104645621705531915083647856610406090284592772084713324595930642571768412747140402103984992989339426162616714181015631276291058259954777330584184657982570917728832350137979312251589651431293774199393969648437001759454652447822078525338274638179322550108728923089924968743064315955333457432393083718090058587943234811898795533958233609713266389558155323103577185274912371341974581597718711285110874001735764469795259115222170325033880030323414410041150949338185054521583679143353720415741229438976732732419709686989470178267627222316145189543432172331579990346871785336909596900901698292118058924689502099897363481120565059882760933121255835819380158168389849727426215968117713021262795361648292782743136743424057317530818511271899945301742607086539329287239251166406145955214362189058443283770847715882363149609896692647948024276999963034457458922639436306031518135115869836400459640456198609239506941359643950384528625989131991190345941023462472373674600208815239946588175432955146246169381333336592553104531663484599323285517291394934941379151067802785371979888137785415210726977069434878942884580352786609164783627772528718216678926321887473749787416253975956476257283393166712624996330950373375858420469102829888590828676371868801394099954518780028199664906563031823572333037576825534314458163524989573397237287596171830267868677155986868127382959306259633568523584537034918482784661723457238904512277361053434028377035999556650101108818314340068956518816572550469315823854645730373341793142933604143113373450447748762889342846534298728114960327974716450229706617013888648477870199534776224089132196953296130102769881967024474944950263600135243567109264041703420692390760752847740468058513693235324273844207497935532264335968708820369242815610692753093476468048414615271138752897927153983866000583111099894071888082298067285829323253954588935568621485460346032658757804989176905591158856232351958129546089530119565167208421044537271680110554032144863468961916375143576759405088714036641131780891659273780727565991353241157621620657664090537323177503553555038266407189118423321506627310859623259083347575060198722412232816118565503315724093852685966013826049438918609761583368048895643194753418948215543184737067766689446784732804002182123741453955938579444666184396090062333975966177352409403779501214629000728583087506180382385071906112852723086825843312173620481968747980917337434442241837956617379352657247770030510269994709606687265447136005350359262835724662219434321711061480362720988286146066651292893319514339183371389808095648697173383530676879685825197841411045130903507003873610783606412041594830022837453432416671526613127485299024414892887451900344930486790846409509438377774182999081074371621907992964291059066039898481884105660085750600270363791561500033857214678054171199103620319635712361691921519303306998581118709588687539703113899667727496695270361884739680698865593843257383890765661513738945256320645573015105403069545921454855824293195268883707382176306669875668576413960461373920890109935281730178061537845365182987536099173912737499637066986566579002099826055212099319721272652821155918565227370920121211268208259227187999380977335644385213548201931955723544111736945798630275955973862881402680833836278706419414474857135080206134826230759375425929188263450362549556542743485751970193373710343247354565455111624529116588107694012054702936075154487070826176203690184551503078818014931560017109793016709248764411942188008922471630908423858407692309010284081594482371458869217626905265285880451737222557764960345376494274883778420618573562112845036013024892891858295066930665244965516841455614103634640331182205911765613686021095830209701323284652052787624732047862558011989250425864072454791178858466683913923971618741567405242443483096796959390142570399746206869058091192947368037185354580214133326356940718856623706008604145472890288316103316381905182277474992556208676919558575294396275296669296808931377492678119049341295947873782357479915471337983242180543892052916964495461639817926157723902213174771247032319814568925982714606218990155115562523828843393414758218039573690556311364256127061082538986432709512622472386748228869469965265185935163984499750973646397561693043751339330666752443499108462262916650634019710717190610787826160449213069697227314167350374297451018235869784681692003045267791639273154462709572567966499458084205806974732953418732276289098543160638840788328035398013846048712883361164918708136735718059243813158868935436228058648545377627136331938594280693723326077120017303367276570835715441984164347228972151221204625433794001154843095727620525671833044335381860732399371693554635004629077931488107356526249494700562477520284955326370239654058409930140345636116198185441296815465528547093156314191731520463979077922124113722500432772308930701445408539896953182782971601404477927566874080560275385510434549563251746501975838418458182652109013444209650377271997168836164611552689174076936776124360902033484265494211658721635271019179075594809236566219521176175615950184737484692846136178291135509593546200006239281555596723004296268620037342661933801266028020772406425503452174496619039189274781816333396576433525526555882531591695388205051618131735353210487736680541675503546703719314116303239256132452594124180336656435564885475097721074089875414200375124075885293442665039463024523459038300092899611083667223704832263860085034981061487652603418374103105440565557108266447973107942716806631737250405155413689630432041299580742383666383369039994299647560994811369167131754184051797479254171775311441024656806713207645695980764950464004344637071276174383692153334709033964277619796294441356522492367604676866677624793966452600389166845784002266191804042103389207603116881222917499442534994553688947724439966632578324409769784041699268739021054339705292351386946931639077096110974659220230036311748479186846104947896413946760568543513145552391940070657999691316510144731495763658722486724462410009409197213284873396170106693472341071911053376591622192485973046461359688446998240946203778703313404451191796500217787902294261108235914453519919296329800339208075657656069338150478530054407426737278497197830581167970942308393229388208066998973649520118724293543514932901521988311871064304000117612930478821057633252034564527672889628544959234590872576329804055807716048286494204522893039332490484030842109870958652888451060475480288826251661214570940930940641377127231363940474739173941306112472428766253914477770958268759969680199830704172547918517193082396876472600540266688414926984703762357705461726304861920628024570580215958132513484138293939720433032001627878795023304355375722294641823239033374845986539673727155280949419911008179445012918627629364889295010446574621550675072762122872681459002935646236497377319609707385118756391415470578423880522902937166290769470945495021238904111727233271436564133945464055748577819411787389009223677941223516679970453478523993292387646600046006765979005557665301093815551370671163186139494964940631193715696733050238490656198565879337603949499083552947967215049220957899743261101297865077076037691102934632055990056396420825925951655688381006334528924847063396910296735885306097229078106622554628368189167232454376353631621211326192681624675087212043825247517606836639633285785518993981723717908450421704622637088727864612093787282957451881906040131870565857791300659060647856383557125199046358464499188569632280604012718443117614381519716106075179346158211313259655270290747853929341236009595783308854613783752283271890011181958253907047183237233008883103493879939158430888028894271019912729296643597805225815773085058360944069179453897838343981922892397981233923982499518540445185758175074586634436230994614662896495283682937258089633921445330263484932930323174997125413852440623655536969393376756093851955809356073772131512386996542070113060523351801861427427464911677573925556144405399228510416600856390362961915572618358775515927279816430773290623627180088268881893208941848450598839043126579920707212334766269078083542823124685693005842076556549256493526694984213853314176032273178664329277909133604581710726894479902901146078037710536978226185230474187117720558704135217232681871846669855500439693311542414330157036693478245712332590533127883777400861425086037483426433643043272172097748137689099995639115354121134091545301494148427140014059872964971239751103340596272811889110057357589755345390479095696905370644761746292928175286535414731087264334669970713134721198406737482663835070406261890426135576993118035911535384508730751706557773358467330047364017987608455767014723653491918839587541840338872505486220432162329551762398575186276602299532476100253023865722535309702374306541780922411869051687559224899818348772309002348374095986023954836416265003512053329842299005616943976569330077426602299718190585082087124471648595276566200108841822200719388262448721017826168158096101084271737718983229204721983617215516108748201441117970253740667402382627599204114516762876834189624788213703567846411030490376699446310138029035713188196415025096475049913046828703409713230108137673298759643003929433413089723552328045883158521587481313252108533892528324853556001780634075200325183956284321016037555524712310139965139980748586278103424932231233043394500209061900266145067697446609124412819970419167191152872080155297387405253702991796446500826232727036936445795478996734702171851690287685339080697703398968740606745994589213344784353609593961786537827101818984024846871279417583453646172279282551879882452853110601313846972090382398163372909463331018025541973626525572017836001220139342530947004254864161675838238785800544168775906407387908976205778751458416199196938838599490742234424347288886868959274805584699510270981344802155088329795129612040677791756067758529571640012347979340012255724346336316177111867804872674277698471397793099506721296733453110071020345700364717819744809014226212505155970707329905911267292703767450923712442889260490839391398039774639133188052267160880319949063017506840944049608829478925556672710153214099287438546640741113901323213895957201241707506556777478491868427856074398382690154759871692991101467277151887740276258992218846246957118332069981765144824604503585373615755290180853526105391790705730404506098521077132953630024832204942721963042454593772287622153554625731610079810663309029168978152149533272833752131793286036798793744739854760528478154173481438254985565466479344092427644898368215228092913184790889703849044682384446654409265017814963068959203444057873945751144724232216850303187341684626306360863736385665448207885150930480528244867053722232587996737341784695109707679308486896503112439841463186746628079874329624769717697506256902828885089352042169688245336982725388463520188086582685020723113589752933042446717461610873471609728551016375365381442729838261062719782535513722604964700630123216506414893761207427938712728202245789085607686193979462651093357537576154616332895797253391035345982429835797349341810401564743692001858658144982176928687029760965929977355146209115606861835818342752794563654432534483987944791667204887208505642891830283769187579765837090413939619072963494180893813941657482486347430535705384239698402841108042686590156436454823703994164704254573531429495458313349679483986025416460022846758602195826761789757294989528135040796546344874595335932761155206747984567147548017949061466776663762782658655202348732701721763774407197671399608986505023365562321761967973602863006006254397404212524911512948984524278738407414326253648722992639458944566254121677142135140199317336712393380423063149194304902448625011783319201979009114227631670690687909043421779704437930873269313616311898394409624982393500300552285727732971831909566234010809327064283188327054892885421770355900700516110968966265625977258002774946307293754061091135166671346434921001140192344924777294667482983054728335467643533502388706835454197498750473510994283555916836622010898867375795433318820047860280092192665768598226606656861552747897381513139831464313440010925856905311454952834339423406166638491381565956572694747308391781254459217557789089813500274141941483274925564562948855672945023752003750639448746426975482082862350598099313460535705469135712902922010986126307845171633236095191637013106702588892483313728992681217942762665127240643221630311786238098396709316846550295035749483796553271339619470505608180003774848749929635994679551845550087015587659925619388591884723386259852174655154770876789881620171763992191354161753725361451997803237181898300864699820438707201837640891365940235504265571260540129564088114185640782230847309254949929160341063276908548983228038777815593083377412470016346664657345880422352015055184872092662571970186309822800546677467304319346967573934526525312597357966658965413536661509746823729618409487851378151992226518676885634306818147435228954713146803391072739330298603241310604421648941110988807325782107801804457749859670143328171614435528120982858453451284628743049493609143176357615870534968340341200902935212267322434206046407172709125994495921445850054411565330667009617652339880650218843946633726126665820913861086053138737996865000662171405237873842116179770675826872419955141513811589337965893654169856640812564400494289229744973203239867974006806447187406439142932267380003727315114961513349435615267565231636798539382550909821946146826773239636919064892499606436429226916188584035641412294957952852979124792181452075435264884132698123903130857799360070942428955596367091437124647486506599382638171267883982902432979533498938969955326869498554630560144341834491871984948243327242005496027014230229983628259093530388436452419246676177341098640087125603486782329979773377087051231159389061062426780908144300873089162602295328781245659901839979053908119595678127673535290379481676581738898840318513236267166249591492912496970686793167242150157541283670601981882808901418951896819841745561124367192297728148405973241791689816253405791587880131223576964160602497434590869412215032195571663271392710262816392640093302993327689092313795224705936188593414308072642446984013958723048221625978434169356775635331371601445532844600251832405001937575545939131153518962151934737276491910820071934838017366936976097561890199920304913450022774929172417516301556432030275894884780050666724361585349960005590070151542634343030053405871786112844895994359591280646780319387931185066544528256003030197625538278295738549533647327867898140911934760413072427278828103194944337934890016166517024089713593727721615982438727773971693875958476963346625636403710688966943837909077073161123366891504311261128944249667717563153172259979406152691330134719809662865290543790340148274717111470183385666697770901131776246807481812940053170914381674394539658624993190977342864050089473795910326316038474530953301377919252598392731582350931807513875414796760234306873013268395785361812674841401990368579411809759893980227246620013296894057628605029676801981510159897119835174684585529557023123969113639772126710467818009866268610785203648099713399223456480380044580495100935122055135303547822873002854967504924119410830441290780946568506862147473110204956269470115737138206020736586558017960036224000211100899627422285407478063447229032272168749090137764369857591558798409079087611146676088300110761624034764500830090876245949444190873618145947170952693262119683120288930713092678065528035924944617407420686945782636023569375458912988419276538333506380974456405441847051081640905028899111266642539575835309166775589242325704895387356332214742964229203772281206750610455919817898925984297755151189605575129433107790275911731991359214659282933497561573168266155979320210509060307943520006647071424313486499641096014542701878977163020809932955697700550696664451762588750534514248868929282466855620320341418006467274537659615421870512904397041172348585109253575752420457776031705572422362213505037084880474652834157615740505490102288416388304091329390852951984767734982235069906979678438805490427136080703999353192269649310554120971886456801438033465697805326390352388974212632814692545532952610567090420337040752284290449690827706895902516099727821531290492298012175119238613249817771931510824573404754486662440180184955548182005452524264756328537862756934094420973574396559585720068000948943427233069758135319281766320986915456802495143302587922008059208296312351553018628327761705008125472439693628766953093230145653563227392485645599230837662791068385159736637269799169920492408967245785082524416057398415863953978615960257023162927354002906471528881461629450684204657507631662516904800685314781150691828313317983854083984391403959785330137891253435364168837512272087183395536343569794703636419265089522441497750049351278880666056650128591194472813832834425417562375940230033124705112581678580322484998866916201894953466915872022697891275386512057893849137396963315029509645198935796307205927524298176185736142691148819158449957456844108078944207421736818951287799655329232185695621809914435892516362962163992558682760460288249839723310816899540443651323016867741995634208339329899153197357296051426351522463751166149943406729968828885339273693812760590775731313437238175536515755837214945723736045554425204585694582973954034071058953118614234809293532468815635357618781620463960877590418591143878250175573860174140344661340724361952173398988673285923579429430577418756230636440271267745836586988509557630406325658893564010629752864076554711929283557700444952602668767542450453144798721782075572116369511252056438198562493475714567082902716695465466124526752174258066849584975351378445349869304309984240579804116643585359263617440439046014758689827343875727574903429844307104021562579236734026716099188205017075467075831225666118716263268280242773769237298652843628258784513661795540365773677136009016737647666947678730334016330136028217197666830976867799439637988520187403384900478570996581624952131938147303983836330105380949870235066102830600873418745243177513501285082536970419875196062487534136344801365162897251352596297809031169345365817133359380415022366576377736232644498398499601783589217203486181339454563921345242528323692291206560746027185613494144890396626085862561870200467067824745155138604933841091953743227519820100089705575252256941936631225269412501012521270665319758668969666548012749064143064896145700139599898385232601701027376376578192222005209818921725958795958500560310289475951633417702173634863034674745141914386841934938874922037967973738385022442024830888473127835518493990093451779686383181464768842541830564340629974607086872095185780267751690303082021478399041944588693163771329954066220852430147228291207165653216763573217563010291986953580969466715746504927555431842662111278653394620110821641422818852171643559504013698516693831850987898373573297247419437117296701101764642860343551943252621812545520835562848255577685463149292998853805286966758721240018157955396233827657665664857682141354775952248305662980702556923415993397540615310779929643245678644110709952875799709717054344232306296949789281920318448669873126756616312552089277343977555532328753080718206287821501605164993844775956090145832085677999566791022468385795344398014360732988658160604579090247092554358496764555917223794303935404356020717656766848747302847290907828705650777609585146944414977660142920170297105739323231429241978883541753771005624280801328910652232298925954269033256358313304328022234006339775510550112704134657038648308476679092853708039314956709108442025713352340965840985098219547494047789996122332111675756714980862688578735400575640399988495680447966366044031496274776314106617923708012518834833212941921364820949563008677425140956991696100563153253437015242576995549754931847483831409672215675825751601583610648820694267967882415081847732351610510165058200972633325367531473569103127422803697142354171555397614485068915307112389281512498214141198856774046174349536359578598647295951184970285798398900814337877651611030993398133737350806499526921713261103422212225230592368253914770711419062853222411663254600091541337919296442239268859870057915643951625208309086281296961012380125180942862090792613309883052134309512880875022262166424985456727357727966936804042628531896042380294736701524805764601975423813184901252716074289076638295391270436344426249763735841439659494673874428320554182954269213348491716381802716948182173241805314652804479230543770257973543498335331410152393459360635306211270521870380585153951619253123157343039616107539225541971642907965158554394449174072858822568542634556737422093901317140700326608323846501790722792457776498948194241908270618698931590089285380062526653552745323428598759328821534579889963583258980949050616550004669968565199700333721378740932332751864479962287240295660536870633092652565738223549965764577315272152311116355713230847098816878939926201389792818073571198680606533740406749177209898004284935344420560139405000170718484301266335097260635767787902618486669559420222130857386486589001740342550961739318736670548866356572473266165266518628069972352486175537989229009538432274308830267042798884472773946682292145697056655921373167661026888600243551431137152772325984371022015513796296056215907811763452828039758080180067641027701823084337610816636219517449027248618342767719185593220258448105970197856764434762731205067650052270355004938167292315645993871358287797901631680348467720935953247758454794982881318792235038789699756472343032375489089463621285610236667557436850041601832531133325277276806841065741401958650030208886090130100194781877061613334030664837859756736675160301006002173044152223263445893305903041543242311038181965174553163739705214113444949121688318738420314000846907653975988181371041359800682019245127028037017862775896580594324969677734656520524727366915267665037253925335403219407916389716193865258240963837105855924760245483756908769317015222016764290637402670834645291328337517285029098847499574741102077043371190354950971318863402756733102428501151774248996925211096027573391184907809859216774200353429104298748953843736092750289566566692844538153827751002055490117098865217059858573944375155457181514242403753066710040676737670671829451106148563860761695684012436208547882189356513100405046426481947078514764551079376156425136526695174757656988185069527423179033990038296390394758079606422886314386017637415003898897961336498165332779387751580338202223742429483627126198401648213710825341909010500186346681098075367231381095873420945049811548596219715602598693741666814163968114996392764634144474952970326568326897151837170205697800519724436375555132489230399343667533077016567799526720407522505716823089874058373891535792325660505656170106553111895896963201949793651637057506179663128056004588943181989723046933874116914784785536126436550136237437268922471968287645028020341962218326098143802798731075424369512692747646078281440958225879154947447638880277884651369377827061937797596057357837242589729045183293645842262324232977002836972061558065611466996130913415964619855976711723504361016199052875637172320398765243081662028487475368211853178212341992776684275361699406551986622962353929341427455694369086478393979107823111734125579140449291345234418904335099572404808266268599899624953681346140169578518600335052457217434000482943896151936599656990610708589694930326118295041977443355677916722900527704589631299755934979860388606849509733983562209428280490368863039207228744248291304717104745324329854612396709358803485908644052594614714833911741029613273274869709606537019577149168414156713158487562247868770170351850059976790948094235076978013594549859297076783020106297747434096306273628393898564648858589907934997329187811820192164039251381877342064666679014921967505182396613630380875062148975016494041156510176560891128674526223568288069059144485461441838540677672657772633547816354152683722332734527870013701854641229152675272171012275592315685717484441228922090944745051698489576541560983885845348510736312448317983310724503159126420594175782240224488926789773049503011833593122354878412181092267287975096038068325047868755647618134082302081873340814430626336624657996689755847327884652975979885029694394294578311547999450492398339505802987921409328691160118618713661837211532018008630524277971275936627226182562926762199795316163033883647836337066887255379445577554120351780062491634292595629763382549798512582274455357999714474456740387834267662296748539021928492538623817356020298453734292848449479362850927788648539901249030312670579033295722099337098592488502816524860656264666497923744179930569028029221153150217098650167785442583813855608777394113081394868834604805963079835954169076210259081409066275270327873189858054030014936411113678412436851200405045752998028842580450643701947072512033977200221530534430660158951248787530362514473151763567242772648755990378075353699153328969850022169580727141657211402585512771871056528719592945890575888335779457726964351879471516616409101209918381796783274470074349809033342444766692978889654975710789383736514468898794260312487383342343745681240342704134820482038784691438807283981164491776025022105006919983824573130728763942605574970843523334899525906878265296762296811680909570805795735115120159100829487097823592441608911711994805026862257057712746874945699185454555570198490462850529941931729080733166388832556403343573980028501725524252395059039609694546046720820204521806042368528251444844221665612963883211421369222906755908491540565630213417978409772218272865245882567888389476663128081072921325757612103073755365189593765147783840608827128127587466807395647958474200476203091495281420789655267631979695246717246679809153965169416918030429685827699095172288551752015296949850888133786156292720314883374549226500268725487175602447047696566771211574020088663867708309752074953424052709043166146622122719316247416613232539701190418700200414052147487951591803577661517517226037445044768811890167676692001948704380905544232564997827745884862089970464033824126152476636790920974082611633384007641700974312783156070751235124355444275480956905497267110561506579193874408257619940305820619325971757306092479263436722094191237677373204236695896643695836347790050204528230568968808182156786260290741105121885964100435859510335568995576001084661689465458269098620897204278390019439326677072239223244915103216082090072263394063773016021725950537625911177284633075456953872105669774446045048969831998487758709510446269344385853488520949197848638682386002029193143091165571502494215563487452446805163390182387564551521118397547573889532283928787456781664730733539100022033675024867613117895713315955773311271764654599729685753521326395527122878616087613884406823391980947631424344280567353229416040271513648731323171725753534104259174959780878397820094193785961870796789338073538201400627595265743688321395541570237736151886452680454170392431763840785314006736489930795608622176168073747438435812716332227819835205619574490656673918238400735743111929757485584254646550421051531203700400045767625657663790156855407329592753804771141856382023090878737229853195835785560088554260195529491716098149126026849590278522592796818214615790865573317836048529249494337799278139296868873574977777659712639848995745602860319654730918608315276493582954003156422610449952535528183438157478533226137633666978744513088386703386517820105299894187680152469529519016121437536298905636016059984813075868890911614957366318355291401889750833622653320000646802964410329901940657429046568184263811817645396379891153728625457239278053394964789208621879484555227926531711662742245704704782424485480004376027894598605701271956546614139066594833745045031890421594351722197819910085402717244654908223228328241825661074649011621415835416906254532248873588973408545666896784900965021569980952302986389158137605319341470096747050286797902856684538944328566430024148272992098300776435596087039819566873828642897603468206147853198516373132453697564628332880123142224025253339129530669347668185114542305426011014853833944732384675986879351823460217614503781984382654287500282583432859357250440742383160990801790423169063627566500234438584733955843121775311225235264564085311627176703950418809234124509470217179977860733075757257187131483946544378306869463223708324361995442814056365007623861497468385993569230833166158640056093999765640437029104555170504377310043241348755550936421950881450494704283564876842671438461485579028567485248835618169778084260058388901453695012489887170613169975491152429669958485093004909631893421057221823947662900432021108506446273009096996707577205256353783468399687773306782280414498255728405683089845979550921520440724620277359923761983700699898715112807699857471409745029879598228805436246359634430738337278991780433884984218717114886774920622461175419110969185005622440948162232515548776763949976349750447169009594408240049596599871869216415869516606148558384209264489402159887774536932321725730706039404868752733400388292414779094918927521064285584341940462497733413849539289620203681221608032640305457757317518250600348122541365539559408787059496255454261017810093819009118487800486322024761380285540308845355957560256757265986246213162547049470991371470224691608913196830238731157662075296771174454867583351734129392158025797332261320429093745628342182613553543083934275854713106663825152529134624893640356315273986425064869881320693629485845175723882848014426020119956334456975205381091744065356456807270036043925818319125223792418375671669117165091506809890314640680442320990938095089573404646619716373468202897048979628101437516244808462443408471148168200617352181638651510286474814267822026173120750868688954942307758165951046157303486709562805714178557620606474110550688044224301239804640862337058413259163802781520589974940849942276069505858927114528032743627954811832955782002233857586882776422554278925773149786503433988323455984351548848451218792350438555633124499430699474106790456481248600481928909615194362294279717700026295561300205406878608634166263806035742173943945943579975848511886231646321036935326025825838042802159462029343300653847170654097533584846567453323113160735551734141749827095744589484158812996561808181456613474900655272487933991264823846142406972153746118447590565357872347456738035496288931051333399043166336463508208573053927493577826800410032117710587857861195807151261255823277565233584603259449929623584732185343844227142139865618469758227544047461670318029876765615404203646826896727683881907079818319906319436563909258092561698529989859572042509330018705904728275518832380995489287989213212756985900276657793727293929574537754757127138654511439028937512694688885005973061583504386569371255942932632874300243165419297260843070611027210170405457949796278622557887994129243845732555526277877417606485852889945576260826977586258377241584364583195870555607504516246352442967374073072089771425238144643699461851757365364660396657255088359655969787856293226880661333921213927067093171656273660626243043883934161911974851503768382025182843942452883306311430417695802318089312524919268097656151266141818413238090876274642900441911411918160747216784384573827009956652862009323802583568753164962494270744127521006885394096960892516068079102999103504726445382389513146273043536804145622310288490115615259410806794853634164646787162355536779367418219465314667434754195168371688153035159142014899514964086867257560740976987946629061419367889186844044836179157455505455558431862489491071179907286908417920800145722587425924879449919397652711790175594031983267533246590505664044252179163817738358201915296110959673817038143099622481754219747713467493665972351316955968597704075945104991734170688202146733028736789002736864647429533619883149437952221450787530917321657143650376539925100105974549073674836818560455032776030515502095097775711413125951773081778592578497715311409420724294296560711256603417233330407665011664094591849287360903027906117205823357121936188928202254540741158727276110476669858701188334477496736644755380316247959421581819454195140344613447981501701744562025522727244152146447068794407110776640744850889284604829753470619965167643181314406810178319346302704692106312318182043398692164881055221788326588681435539169258194776127178855486218245052214835295870706534496031102261572482312548555489827365933267804125624026357997409259775928994918231838799386165075269917609927139862485347073313234058919040173281561445636692413551189164331428241176200109594719550576033477436075918728909823928533323814567325730969168592190035641501513806703419589422014072582233510646704203465115961809232833245455948916414573737835386929369760196923743356642591806715085363585631182609188307391541513213512394686183936024496190333351291339400274433486389443657851109989765378116494279763696020002248503226256616920962345200919408295029637468700768324323698942439794182637357417041284333285782870240429562449161752261906215431018851461651010074504446279765555031407204920397409173220956461623665222598191317470566400221447892171710253975924029169012742297020904900008420392255406921354766683282660505516337523536894638455506122817225761833841870647770028467744680757182145107350083286255422326576331208554642051518153347275004815126496397150997382974667399678863752175582291158537373945798669356374621368682970272754719138532003192954042846884262872079985637560828052867546570432833662227445358746095258331513725204597712602018460976009805587598052288678139982416541462950738731982238937696844965595374002640297937701272250681086900384170371534034420784545195831565279558332277754851499791476215853068595288419728007951247974350806557483026924986942699454560986641406761916007516605440314750108161445183289597826001901949300775147969260853255010686367061023406689444216125547697699665285599476783900991798977453621878095661175934253085153166700092166421809416311889977093350282747663721529392087765683857965974313440259141956220081022216580003656167822029747511357751648941613441477907439402931400563039430805254185032634361434957196046691771851618489752468118781526689824871409088672093851167449538540041319902490009511613604256967494534666196335174739513102308908172866259969664913293322362654810257635358308504670673799564628073926214831746079067987026861915519026169728637298564114564148497938807634241973439340329555594149054042448968885704423837470830679302224497873101088511591341828437901327655146286544744635947817570709096646700306910986350608877701092459931607812269917589574999956273331685301180281794763637550793910786287663015902058492392332112519345562508662830127356007300125054193909025558814868212063057612469638810024349185900041827029206376977253242666320911063780437111719183054136721590631208916413325052193182027411000617577488484391915120324564766514146100559307551581561895944001005788223593397553390072093682141737366221359548402759660427516333868028522656873185096643574502941593612727512478220577392217839614841663752299627625067306886254260464218972348005509027379919646341480496938956373009324859807932128337155989236140669466701234107556176046860882718373332144004447979238412318747000632416698226578942632706874140699365210041704516114865207186873016084650700421132482149645755724202901159072187737915531557043969538970962446553904352305769551704659074964513453263591699589384821322505884073962779999163669592007542253936822235978234720695709200885174538506524020090120629783414619357556004491952356915114018096126062875770463167651502551493074542516248926952621603722051637861754108113302111900788616697043114203951779898236882802884268209842596171838136173743147365136310783173644410660895732431330507140075446476452041426497255804432253905181169646234329646381686141401743543264859931006205955194274557287169948253846283881399990234463391192606602150916411546523575186966880076547697905428670882847465942750533262384897493535960466032928696488254495648241416260541988233855576694048074286377755466091456245858307937209576221702697424152740658509258422882077563399762984913777062699180612506481933316199683748358605682503760069524610914383779076458359630302925277036630834912436725489364272288727168388438340853567205205224342768873001444552826309343307385449554046733783700914525188145415580449378608473601809727954350758949321664044492488937108986670320736786891790944331237076004877822669079134687953731899424215560062902346767083363488399370221611586338179783021338455262309913096217437643979003300676952365500183019626914214976021469791261192694147477868853169955585439065442783986680824436816117738044031844842973261003703490006987347179910483387120214966463898803177292773499925866450130678521871462509108912432997728197586260032138237347138835917191669433736189507103588856215568708505432137209466300580821238437925969159522449472928381567459945918392809579266624700000186698257534356153953891542918934216738112974349171864639101419278139537921936834284111766391810727494336571817757412015204407358795176998725389660919288423534670723090353416612782265062375345295939821348990144925893109649891639197392856313534348612239489063377633368465390798967159143672965019382847085797201014470067873549318261703458456155888048193597648187788295589890142279568289442689349359954160097494004930496170221524087323757458214309377949600248626545977715216016189082649019617429054198266006130197272071944954691155084830098239766014000781177024819542821805885109723195721074712328023075507657190624274939169565644888860275258094834436620964260423909219498772069125204158409099739676022127710305537398934152781000869362049748520281683924716609649318969580915414005387109694920312243376848802797554782177332004513496395118516742683413994350541708919223061414475770856166392903499225794291292584107004250074957083258138507699337032340695300045470775885727030948587764297207286189759368491796618522510018461515770471515407748072300276961171127540084138898053071638118467544937473627808511845120884066697178065428906800849568915263806013255088818875770626080898525394419063053936811448967204187347655544006920198509524638136326570835064913103861070830519854159306152831289543806725354393053210377620456295377471025850673437541367839320853219916511921280905006304362719505321044217887970559085416688966100057779088647743365885054091801018173534822610842453270560190511513560788502912409815494011696309710165978660725894843585628831126219773169021670517359328355480038549539610129785301331396991778878801287798151374539090944838427796211179944932965498573211248363898363305787913011148217821792058508333012157205701053765776608604475210707838699137970713244041180288410962036019634473679468592053870661935353644729472584172314227937182283140289790064449511497274868578907498696996779521968082830955022238247543994225737456684782019167136459891839878340897323691848233521941424243148839214617902209842259742570246274728451714159547643547838010409909925705479668652624591882832975550800246040398819750802781388583849710389432659052466907933274193885562491676256306061276361898312181655179305636240306967396196152962687527546560594776420543582789776788778004338071425157840385819092313895467345236241933932081822518949285847473412327483063514455609461173179670950751420714114529283910452360045297641220057270982128043399360485116151867273688932513358872266720865821285300431369034123645976808690420909322634340887050047844013178571109155419262286952067509777670437448328303128404676162886635498354067737971639058492542292381187758219318406028895516271367072974313664786498806975364674517214208802897006311681045459462832994698557746020322658455388956751773879841837445796327074549897181501162263806827358889119986395336648990937123352968559945353449868461882849771614406027783249377868007997887880240600649199416318466143223028900181380433409395228501673858144986814228805726420513080029407588615819334145026939936150512071763582596297354718192417577953776115417914779950823744699742519231042087548804493994597500157734814261155422746848874077854007960312316544306518518404365691982921643059038340449358137124948564357188499581547645879497894479651862952838454152664078947215049866897144412772055100905308479869112349141473926751598081539107614002878817081102414605289979450350960709095560805576329147500293275057969148894260283063321663438600576002555905119558685827916413820341309855559673860720686610338701724601307655743318420718810396249321688624667648007378313280708568471480299728076680236672557928768730435672626228339504303717017008858402911002015677422057265546214166534703155838434949945802784036711137542394345196796070621853627061572446589008780897451290145998587305652064156171542234703414513925678377998241282206868273043975702223187201449178666311104217882717306270483064777019165424000411666083601590117565771014557359602620066228579725328055587455444833860084320875688663694676749466126576222209948993233782297365874346539395311384459298080909341286979371001846425711579871409779982069593622186764557347088018582256939033763209342963747474357981585966367105483688739857735571312194268411466691336047399117761891729252491173620186742223413740052201596435054140550476982620791992861741323653076886842403544562093384792318736232707874537321730859110430180929150514355474156532733535708278536720314092192472748996705077474095438523692090182960478203149423663860731087039521881549646826244357610618015591293350075602058935688598134458128177575972097938483430022979416633761456199941807278601341986062997493820364190786632356338063679023748756227133018243075975242125129184908314015713755238700844321912830107633676851259680954149026469625828731388613675182594061352942878486703998052070558478677178231116791633119991937794075211264335535495345408201207098797390826533251914051666176037943134095874685651864480927602714128483525859645497066427399848082367551289342426997153918699781780418876421067971708067293451450671956853017864786769304965203750153286130344247589382632786056560135494419882740822919436457354109649575910620470671816191624680248550600398340132374494942086064580791102405566584195661156153439331978876804707488605450965599079335829191936888707497820596836776420538766343426272574465840637479424688004244369435247726299256195346302184964043648408593534259359736149929270516088991330637267982495781919589551781112561352055965491763162023736581135885457440798488481152544315654835537454846865828795703741629331505566424332481968930620135841614396357585397237338223502537846599564500273867156786998289821736288742907436988849909873268408376615012553898945028612369767908718202468152325968419687731059314760660284394552834763145012492935930374322795059235334084809706078073441786000312385443330279091578627369536844706718652174811510957262192315093230497638763521429562854530047078349775033597832146542749232017946569922260700184415596764122931094227936779313539616740061609145951480557093255595132348762801868981292413798329624537030299258147293826959780092643004327982040906625648255705728600243345155835407416400008309309929055236520158973671840543197440682490109952368874569024118958744848022328005023716042736480222779150262389693473817625541869720008138754920627027618985127224551422069471653168637622643304334104634838190391208239175967196136867961280966836010978562814610968739526840379926629597011581203454486958539863295624847353998917284059970705857069253102155276085916826144467647238899637465522978513704774851138299504259496068654651088057092022385972707127758129638404804902208162729477411761069629670604457941960612845076570756937120790830304000534229495531537743855404667901610663213008541353428643600031220110948435272269086760738152909504252083290233765117688713087771981302096296771216760749043677017339354376771489346167636971017490397590240538244957099886319192217069210284457438375785492473222196556743715447455792273612921689651912648869835420951021606111068746211009099631108563082505661793858729230733645333895250165708683147558455100936480255185697298861261836981682358126784983606494846419034080160798380762654903446041509303221191211261569714755786634653499978459381301668141298235826193761693565978734713274153221972226875289730011437385172420498820966817568071676674306549098525360080770534212175112776720566249001293422899856745064398708225567161545744076170015686053409773814758469433027656394550837263512077826154056450717049710073175690839715716524252378437604717832259315869569528941386996470441961038733949912777874074688061027907949252725894410851861825477508469161485960536853650085223948363573545257177764337592666879374008325299823025791360621435811234446976955753790248291786092347328013232997006399499423461710915851989988369069863929235291986270009131087352591816841310632744983132368055764506976795829189639490740088863745269670799615845898397041953203473250185746324783598213984548308350646356668177935252205193398867145711967640180226245114594321016043153957597673151721686834247705054549500995880879022098743771208294946793609516930067340373417702917021912108537200342077643814114075687378541101702546232369651027239874505946225741797048228728673764733357806599059045344990484984013888948787908464646744908641001450617086820728236494846920789955456538370575014963790034060542323171821529590929971429446752896894362621469160547687273424292621228720494988800992963146702033687357815938063321571686216983230863443902576893069771662595814107454939500014293592414339778866948273832295636375424786198239971332741170395136892145530929261972511901989420830702606836161905509574643281300015481689892724076867814497561151830492770993713798739171690246928927334583904030108465981393715149991731398986518401654827847398209557015486380376160094958662455487442745944554781428732983404224864520682870041912423910553533041014625868815473724014372305160078948109770368465005938983756589345345021822848091016130312550707595953679481095433403485992723471800670258224907626231028954516985391903735641028992094312077190535673836022719160897102155786032869469705873357575213009641690889632635870864326140363745686393411344335071580772171962840712220075430963016253636806839501800082738244422852947345365569279295386544396127804663999194129093220386989133652503216896325614941864489339355365899880110315157806004307650896038612391266667320922039697796400216892232472037569622350419997874502566336484385886750881953852423248357767894606485746623390133657045608538251017992264264870476609482840687852313902016599921954170110374739866735760526781089403176427518426936499311472413636396478485093585469207597499913332749041188393807415751658193521724582300027123188094662633891518857531378638231831270589162446710222698473387468783176190592620914138940696417206736302184521608143114520490347799263717279069857270537635241642093579587605521060128266197612497473428586503441546966080496712331375317854317272916743234002206034805987457150636052628359251175575958209247613393536371882401408333010452179401199473662535536260701250561862300078443523036269370035647937910111531614805619210101038141947663410639388163396346833035775149822708181319428391335261688862493023279590783641259596121538126810914249545023061069455510125629715639576373174981109208137401856354474689417046188787459849364522778567820693699901051295686337853855526883300308385338237211892958148253063331930222280541805645182684582397392820217266013211026446317814177869485776130724325201040992562377761050606257294992230565433414994273939457833081403126607338031138863207283744871093790190838056190583923450177826068399300834846404034068021029915310941501171485071662814400699008423550934695696180604444282635765864851019939162152888620207599957100765437032192387087864996818042162092708904755709053150466294345184422827136621530072569780171964692555438510172033722899269156939433552019273502887969487310613889311058597896617753460163693055486144028286952844112245275112210028653748543588650074849618370698642485327900014561081796339037607996138430839205589109248934431079474843987250290173016310256850488644505156373822746038934586086133475974587983367164092718825112571140325647298837825006099510847285572894397204191711718318552973040200179735211513583991208076826457378760299606573615793221043418860603599728604548613025543438545074420970769790928687953597837040169305220275120124257494688681235295418772635351423470915953808094781325735974153343547928179618596620056361700015011298144050399482210738050786218680440803158845855419410333415380877390769161021610519151532124711878645686835595860889000485851254096537867272543887707815965888843222107254199274614786111859553061366461136166457429791860639215900401957793011178322131081552482674961131124745530951676992941082686079373493390460568264045881230535689468955250847417057469372478497749680181380484329229754969109036504729244412019666001852682369806782521173639995022678149339198389615584855031759192064768771132200877396035554798745140000724735679745752171930032652434016800854298513662810776929406380751202883609301492982637652705523896181162718067584864139192327337007850335300245372187759823996199566656894996566633963274718197621166234625475564179859660390018047147806343421321938157119673024906673118849527439668630330209672636815400122126258918606350996937449609125660237615965805864296426398387749293093423252744005796926219100597727230286966600290047887120146907203309969113897532329947529598723306509393091942173288589303946687283171987863925470201503478004052976470193736159399028396236787004681650446521758322373429380607391542629530507923273841503153467197794008076371165433830847385069029092726478612019039806344275890506675431128740130316479054033589622466505184884345169439115573385099648040384406561805951924921807622172911973129889910145783551637943203427286381767825516518382596096911047571914276182773735607764200624850338195210123643079599293422212033787352883982298529420644872388788319672067399644800909840738701202855289078918038419682283349088844767474386380130356810143595653490709401653995260904637192084039964445671617608988843438264036977960122884183450406100961707089355712502417759263020134564714566559744616891068944142382925271692025983664625543461824907609058862273140539041853254089954020980513358078441934633154916539291883205742857418218534787788661808053524276721576319631854289003864802594526034114283768712953969047025016022553509504041772459482290475353534013031230924270233206868684765664975225498284058071379615685825585618726868048184088968167194181217978618740199193337634212407834628393904727001000025743880618573322669805013659603770030141491919662841644789982247620211493177027709645599069080877120893372336009245226254574111475741759166450646669825658007732273863918694190861330693657097309558731020082006041081711456096417696561395974454762588211251337089951447736145299183715867318520416961315297550019450524514448441278254261465297867708458843976823767507579154534022633144080389933612644541371302030676752639137422714589185019077309393019140561957854920006874539142688759771562891528994505920740086044574562705505745883366323312826493529821983234311191025700896226320345379818187123409698443480772444278353012131856364472757893116210011822353107790615729169956963123502837783612103934213917402216604090537455066412065118323820982358527352745482629578818991841696653287878908514517950017240158819881309456240838586863132301100502079619208890860071937219486182954896832900757748312056497397403035367082044826140362849141506779952224149864302335364358094934519642812428012952074376710439917589576241689169527317202454061530872093180070413954855346524387075329707833602388930854358392755056335793868832696414194372629913748073945655962116310676438578079377818552162291051755826309313957396549165956586632764332134381517017187232002370377627002874409445849262001958974786770171592529638726165931409611483747255964130715345394208803809782954727238756084501898682763321485873503779680955380054318382350582787110935675772997545850865290469549896301316760364865086595498002335248592333876781839219310813196752484036652332346046307575694216825351442365975006916817144141604791631314050138003700921167417000331511935372868077033798889115701645397050987679134633000646260196751920481560828700777697742681876524601622757093031360296178073608104400866827914764603331654167083540950931551628984346997482807394221373181575433412328108945699399657344755573661640186619928775256283375691589345131569148507241453393362120612129835546152666941995234222987607560395829810940017270334413927323050272804275252541129325729763639895176763522382365232386503506306438785474884421308969047263374939486503477270807710972029112774378109698151414850591637186746648172703765413766384372485034233485270857038797252034709586938775769219272153275391536540560256570698979346471841971701928480225859661078893796567872317606554151011920134773882646992369898638369817974394302460847263424555084954261918786708040483786628653591827617831085801271937709141395488607782078105456684907358365346429675204133982581248553250201228976146243150946431957351369716980068704433211607269725451242283286147912899255218945067604912013290194910248305616390249365209210698875435932304205765498604560402188802255211178851799707082656114347694307599337469043313946457538881464933148674337726121673382554853940000763069930174243205213506529198195574464032652237832287316076259464989791701675902894687065391178769634691334428239706345631156502105368201169937084392426244422123229638057136963939142021617699101477255578797911603228006191249669629261122204799912113299604360699216628363428568584412115583930314377076318347571794629644146884900923335980862478794212465620165740105187662417510227968747133987709654673133609503006256308163269291230561174759768614183153970402516976937219483437831812464876913026914339991577524468291950808529649380720549586893906943629115856954968899144046592642369495748235418194352304658052236677318650953641459349389935233361731599915414395244587370492736505891773898586075796897793631653714621134117452466253081716242368522126258789527648387520787640389710115450938269557943532697464907693215182487300653830889305132459396338215944540115039730235894304584722514560485683541788055915860769220272111755956587146612798983125691844699799816530978014368546139237227687120205004689533696139181651467025909762680486433810904178655815895216220890633750631537788079393415545652316523243716085305690773536459280034438077987456538091069362107863634552884831403661981034948747191415501794822260661591393618873060548060980732751184515216437686399690076657090719069223131384709567035403288448583509067608059058186641312837700531935721385673318552505771989752514832741432634968507625062323110538941233482730129829218182301731706924281611887970410829644291009513288575747590767855904325365009603568204126741741135532762109446131685616596336405341354081325666171050783026365582611973700776764408232980240444685232656604048879445018934243985867049001116333988413753942022025880563838900417106205592045579477294620770493877590837397008049464088122580802659439103167580999582370406075706002930082873933668641881463145846839110638999928968539224583112606618918930203457648641052727706341390818643680069859597959113226163558120676108138545770945368057019743979157503580235272940130987876047661370445138798748823697818664649188651446486296937423653621979106854916756887655227831838203711374893365173195746239704497092921668571409242693170458286672734740457459411406557895663603728726515355062125889522126884017604513760543592213223641808763446796532128987984562169216285678441449272838433013375973844591285393981237074158759878638506975586483536529129120618778564299294381936459208785955116223224227111150630595381394468938016187676349933971108241208409669226835146710980567252759319738285114480491225629518427450119860968316528242627544738177208129240510970335887852649299642103832894677976580900078529223638170691867806722823970248496603160039254231979302980514165146935744389811150082768521604648896951519927362679901633441066329088206503390072620612699194727320334552998221212130627599630035966788769590419362525807172045919478424668085488034940606728694182814176231898557601463512325185476218546366802632054603101622523595903318138706807669942395619141172448057970152569598044301793071462983207885664004519018331036703331775817350680723810174890815596391511211693117104188356547024816148457016518372315127898929064666308126946704559285300482102660507269844350022449665304542887117833988412460440340558479694710264168852147894330349262984560735321409366604911905993850217707053191823094464359166709512918818607624506418187223938427549027982358775192687451279096952416012301635027071602543080732669318477517970591111348251317997340883241073163656705526101601585735812327152782129674290825510809533963472434698045470551591420283108341376480747331882756168737927661240341586266853882039195398294535141497963001973707378771920212612825811477996330688255697451759776180887819767473738193101599674768733614588403227960588932931057237585285660667415270890099093602991413834532281066555394937108494500607097274971507103401207042826695722259683581162774419422293061631042592263508142243223860124542835194302043316020515304249612657865780701009571235967941032135314428130271393352712931905957291187465576268429801046302478169201938897466068074452836905451714039243038957754020812612747458166249747690441712094600957425288985109123453257045649999112979636460333334975123078501763541578280906292272305531854444015159908436900323426322759688508777691624089977679138586739613957827394929832163469076561485261180498852665183757601054613746190091587261996347453940436559300925805063356376462073886444524223681774577286590692631209003700317853775410371198359318164719199479148448239906891855888411857420341565336469330799955323443915420134568698563556634864056908314445268641593649802202945913224885658909262061267305249685412540415570946249401598385289893359791398553764613231410700049041614468403664300023483821151158729397046767038883663692212855367202396480359906937660672729075454514730545414628274218557768741654964093451506782446663767699167519656674417111644609016921766049691378873932845856438132815680188640616374547285112419882985671810741312426069264932244883186399326221510420952575351392472938168413759539769268358161821541174744614362564231842904525003796973455660269415919426993924654018750408840277900306410811345994358005263507224110636110689778943415412284734576905887393650476574516418696380738537092838433750298887685333222511003282104106859236076235577605387468244828157135463671298366672507730769340458294113587123243083450273374916399481870095824850989264635120616448409820551377241453484848630721294816060829290072487928998426226718277341644752842376724778877081075744900364701648830866356888824803208319984459737908499134806088096639345961299273903623352086354751661097049227414733822920067645004787218593945216272852877746170194818283593702460663459304855032387262386591520323327127761488703344267456065294967445246947594655951621112372392238809568196761839809382305010755089380432247090459794532774003070462011234371755777177444256711401358254647887885707295517307725020879926062970734114839030451269047650049739658698642443480112043987415098659037854985261247033677698929825880973720792504813784227119494951231916099074047632780911107685583917146464036639626346607736075183752664278509907814985258683171366362169403443253464204448188213466859711459987942823501839754217673112013168830264196410414128609995752191467144161533222002768002133645324309091954168148892995642840048861270217294033740211685825583799004129812271285540372851406317047020869894584326705779396796161506572189418276222383359686137289526719831047350599404341009795777224564407756192814549643288754108485829737342930625549830922497603361514699818700444256359485043621318916395060672116794929614157095585150797974076253145833461589152375508941111592793170362954924804713030007145721499322950006629840554943074228916804153016092060060149675293820284916781790849671399313993203085371611933231449861705443727067834962566408244333997863398288848020096592034534412640062668233636745266643080197134402102909349246745627462472075604804178041092020560795123517448771262676406240683281033593866159346451080013230444239218521458623281980490210813573037867794394394799796747156441788863216004741317731565670730810379395884221312257102102581552250509323165666355343191833645466853874155895064798022136011360297588499836441499540022015585028827621892711701740411264053010724215654325242695802517055342094659020653682501396474829733623822935563363023865247704055356186717255797661325067877465428375435246801118054438888635877707626436213417069344075249675704949981000837767583119425272608065998699185477472161902358079743291319316082723700606863273234647696564522636923558624604044589052888379925660132611470377516554868840578250482921541056356822681190339694844788146995178782551102688439951746205346435123241558731323775877627987104778034337517092364052806359733136899910965168349735666954165352562366055974496138973385062828607099596663133881381357591561422257549895763454258476183306828403812730965373222665138928100883742059297428783561255262212199010963647138164034124009079465234975644482479915942222700324967483568499740893690014118348129030847246433532346056678387745282372712757547572477154276933740483062022350978565655961682128484090819474561213791657672935910332138056036897975444850010740098540710422536420214316667750184005901740185137735397925483174811095856951401788672968977961741433053746789926303060025382096903911068131955043913950498223972125558028022214439587879442069780609196014216607814968335586724977300799949624769711196919316507065722232221397740541433700948316625264810726633992077202827002487198922176390826185376858102246419547781453462637145900474563199234371124716306209776258919998941836349446132455051418939355155945005907640447838813661387053299337671127609125004497177424544513100158059324909350199358381810688783746128504492424707909764916986642616180895728221035822690312873938877265499886272618077202106508451885532775252495788847436683427313903321962129771408492284109794672407791509950367048349317782834643633281156609071529858967257009201403724012168967554550598681884772309188743113595478562530382449919655243002514862535665455903078317343505477256870607395505654423738114261867597683220465015342345224763272861242957969195609696969122685996027885212546989115454377525053543083853877012033691726559069582086241744382971922035798196589287937525745481372641407785018107518287626328437098701515287966041841722161781534637625529959410054339006895593849330825662343612981003888138514123771919529999030883274394202742549985815274076335775080182880239971142747524834944008537104667135028967596204616417463995582826694806251008781932960051252261259033009144308276454316719835329891713611311877077399476809092879144418037164012075751539075163890290337224699384780550672362607172627200114477728238293138538040586272931614897467061293328433697146827457648425292498445024950485988809232046431474541437766845565350328440121145569261776011042700013987753506343934694970635640028271390668615042643251423979487515426276321044611723996349664304061228889742700831585696969481193511463578151062203780184108768457157178718052488338598310983489324184069369413228503975121846609533933813842089221683627975773056286230476184866364957332813757484835848004323341911442218815957085353977685569126580585398634320891393924102669912737996856062554173796044882970323845805947863376932890917461652225938522734154374876029001861299751428014271967528709510809976965966529997416624165794609698049326343236854484591862081125417739415759145126135552051841293109204795489117720790515481747921886759175127169462850458384901318376386429760183482347208137386668846486583081714399496816442440334664307696202472383484666586860055317381833825557619547762020210527628415740563060610356052477543541545117498376067202789906250408171035074217204666509619792284336898083366456390810741238497295583921255247476726943446904186392362332979034145415008647020283598463258972682067984932823815602738152430077140490112862378893268013131704460678108237751178391723975782669806253689580309948291764532074437018709463950670965967236302922277599967526612949725821682305971255063906297285266227508921373797596567710923742483111115798572258183163028168576287757511835278997207311635551154745882272456239337509445236266549342665577308115739664619503226798902813983505132942572472832675353592830899133885132895257516798408368020305748520560513679124388734821378627212116366179013472135504120785680257328076628713025113860496109840674376162111566903885469602311801570987274743425050725071675151759077894256498858447702608123269307880408780119255742542068899856776710695407465020645725635398023974181624604060331531743133568823288095880050669098700945250871674250309932594655194825161891722707929609230047167604961634336976199705981427948951754735083630141218345114617118188296180694323727068852047971039241355318528605325206114630082194438271294594021778720013718308719306097929325097825649064303406189787813397049434913756061913452080013266133066740111979960102356257633177007023181471573572711414660235099930984366866023675292418229697004786293252472608595523580365476061687278411561114407149382853034703608761949445515311161105877290527347082833134811070332755853417541280154785723650167381693758310965469440539208223750398358532588776451209520991556281458433819541529578712430502033529210117299898597203701938311594427264192955473552783180648262081909460204837494549932716537233127749169627895620916168838582258422615298398058478491046209709473853417610137653479300739102199143116891658799909804445710449140641313409108586990645643495568432891172436855286179387118454436410716749923925827300288284921298957389269269225671136761345064515789818106351267347014703714943567298288979656372768259883287545808146527417169759028778734499824582663342127733974820729155017617252754931622405260294386886529631889891375392634771296806205181638884488628197179029982685454724444959930918688267764158222559815106241312621222696225547275198654190706398109825413021669024766799617845081356279313063258155553787555221562271179608789479587811628609028002768135512931486204650213008195927572451488527483862271491537775113268885164614372346887972809225448683388205018041926609636892283263959677646421204242347195307526273609040991284286382607951171340287217108442727074327590759877317421061328013545948009213226631220483871581129360327295329035340815246277863461316502257100707088179817770911451976232921019851704023908017015634488216002274146613129174767549616778811520383336895244066293375925571022153190154726611114849621840356677134434375793597118140360836248111775000927646700275831736238250271636703214350828239325900378919527809343209536417578084192607120089990097952073776007261653719772560614819487906502558655364024502998194585559494622108885002982261877928225230561582695304766152900158001693202575985508874317874219976789755456559823570049374654848747217802699335943303465317089806851498938191133751262033658117869540078620864515865054169097512256492758667580269556932274809015916396450769151388734395291179995717934337519979450930988412488185187554598999429316233085776189311816219982050789429586115213415291724932208213531415201794513406885541529966482392455493130515502102859731364195485787694588761503932355382934579602444132556603348706811467612580439501585998827969950267762431996267596289253202855281592637386622604494862882720263640307747385520672604704685394236465823690032092624875602234779151299639662258895668832976876744597774397398300324274517337753146526939628190663100129871982430983189027064911684611705990234313846639300395570227735218839797469525821711303024561809288940582535671333955632878293887976381374063556537796859186439356999523721766475645931333237180259224704316066722286347124447411862724004914345794892386234876334064328106717280767474490227204552238947308594331842721973985606923279113978479591253445641347158957766477925587930440375522662882808262395255292454042055467901212002536090354602023916925769620733850019474824848022771410247202351280946036098985393541744640795300983583545397847804725448371485630641617967035130339237866206922827203350353885269717621921720430690246558437171930186583353150160075378744095553055664873282247864410291224648530607168495472074035242104870874218338047599836893411646880009523502763867329648437523354106689102402027205166516945073822883611840853414352139511378296007744963142851504002260162556824552092472397652437392406940719317167857083364250084219257885806347081898212403501720164733880415391791029406194758372846611960047438581757464092694659532779021070287164130512812762183868392756554017863563160445216275258545092830528597594448366185686890289091754190619636701846914867738461819590648359129084786786426918908931992408179810975750679904500203788389688007535634687831758094281885814125824887927995207586413116100191307806233325443593842499845515719858471175992029763268554899115366426854123145734018536592472086417935432447066437681361508199009429348070737172314494208804320417693166700022506880509082376726050413850053171912685981264114286239562372779772050245861455626249336592640990911403635131753856440713510284156439457259414044960346050522280725312784033923216592550555737867047003016868125251926550633625077555623481848826013301639498745804092301690686325998122194827392686898445287560079021451209987843906331107794496360596183544273298701604386826246041686993111596673248040381438376274629328818602183125584708385934805360191247675679122745662441124710473120137254892981655408434982940494984141167152039654696061766125838783079159512038704004256343106924153225373253243421508184904810815210696387007711834727136376760792381239490921524392107703575680269365320667621423665544946101585329776393349939322878898240642708271152486731439261428886516504426058125944644742602636956321666811334254396476613710968907253361813899329084939687022820182913043642472368110939810105460368712186199297252814609858789397696786356299784143697019160511517717047032896631033969020488791061156635999902006929163515886897128379013934503944811647609561277588016651127050779026576636801981430850495901637493904452169085980861986857676701778375347092014371256399085251747295629230566668342471199353546008265469496963128535236483859638635891268231027248896411106866416857600557742972168743035603753419656832177650847086318034378983104779701341497220329683484918656718001600030212268640238336316090141849380547304873928577107343690226285836929182710999304374749506079876450575349649271012364152072329198413926497598676202359385062413452021677432506664702514048826280662035621997625509094585527882396998459166892777555647585745274413703212941055778068756885633795937301919730272704933946310278722521227374492908882729448055964812925355439398032572366320524189081374602740088322695414986601738187298504688300829522202218789876871073698990245125386719404988325713088369913632314019072308710763281249839574606541491620858950580627500144374786903101806664280030037100292399648264730647513999149665585872744443918555014291190837993097219020537185813200490411181920438245020599975499298154746410776100647478826288855828465019447829946868158240165217575727929182716403579933872526441771505621333636683387605732724975972907383114943726506626570343365401685923152205696888748390519355010107384256438034881926591921496547243684387256773057735680251124758402877484140335823965588147962056711466294846779424696120211548504532492644227943495891673761581699597482015187840352661460911355646820197390554180529180055244087010845757592073928245566850745562860509651515294090033688461806147234557675739253931063783600997858148639287126583311424972038590267928141521559857545635132178412714561833362367618337139678325597726128620403609027053195499689908816455914838989079613820410184407394584398733762240456597011064085814849334023986381117606987103001604877558225733529120380410628605577149713314693593759061384602652466558985160180234949574900320755594772586688941471614966286878533950794954075968773624931210007415215832700994718603874331950634385786094375674126995436371758910644919980877568567954350309876180608988430661068685981954786880681242949439404443032577985504133124657270811230357494797599318893006450860097852911606620956848373526367658715372617006359765684878444205398754130329654477409786420232014134930594761154357933886680882005346187036007271146338686030586246248715902292171037798838238233635313381026415602399802627506493963458471963726368441862948764004941315833396061680572393455122718221646142953551424082464649792919316855774810842551298628020316032514138690875654012873730806797858297262803381812650000468511306783948073057915781659429471031020576589482992910952687400344268223859291065808096125843324738539297102325470726608175281974689290316160349784575410900880762545971823104527797401704195250403763708699500742743944819552653316735948776794694580171971644954455660697075003628740449351578212637661127319819796081257600834876738258609889954722802094869947982208947378581185833044088304742946975112740018132916120452476737319282381350840976135971986605156907065308992039156952797686547891396925990893726120990555897454619685822223828176476914478622659090641910124822967683023667106181338885332490616558389688218064858410138615434995333142087429588834522758333548361649029873385352827177852551007111973545002753421106472094846963403926990753731080033034744870990061060513941574458718694521233845678537254958909004026812072737762893131430399587109202880714034122685303051438260794904355390930425048873570147761246086228583009996547917614210821948671354296682862722513591102244447589070310993828044672822307068469469104272643632554337496970040447211333965647956906414597116820570972191824690532975879586823244394717620751153716494524255494797631307300381223410189399392428620195125533818587413851195743783086535247292060823076092836217797791646730546940013948571028184284287443889239730484719476457856044396428538449146197501149077275813189225245032017640806261406078103905854176318623298575596661228206037684228727646753033501543073102738411182766783799252206904984335761794872124345098144512426236497057638603586205127205055627639661888776045997767271867059083945348797888170010025597315958386841442415715182155989110038512247602290443805135958138251245425954080386678732433269737946509288591436007925957631865345551838034777660167257280593360955823357040529391197412918719917265833871168363165161507562809120080515394556891941647368214856008109247501127714779869082036052842690123606280219335236397298089752556983144847916633001022791664012224348230835242133487056455834369205531768327113559146486754656895514551584823967769588269784129272381839994564400056503734462345079644155595076563889618590699454095237351908160945034285094684194702436689021522083154579991455119270741613901835829690953862254516423345196543471089603220205251451815515448436945989774324783043327411954324911031466458917360599246797469431866163162861586246190034160748723804224944601287571658390402539897387190511835034063196395590778291098371733717988032825662106292077226015242685266546311343029345448047915676040483445184648075493522519000949261832705028876327104679226318139833304189183467934998714050708641962053064020020987467164687604483653401646621376094145751449878591015453166762662356116659554940844034535726313430719543024439989366747817112853722903277113105098516615570733937155655418717579041364999042306451045122800653240019167130235837467126155782399023646873883797007508182559917641603433286005299203924562625332251012523097900312517796553874392121464585792129669360765155218832207069136974600204319728323764719059308867887241185515601736354894310307941196475486381669554063841500635086093353452407970344051766848433782676611311340355395804116545954764485998038628804036548219276149400443006208597610051342362057825151029053645543137803512003866556435479454676969766911494540448470557361821990451872077692007176290567808477913482863619500677078794139378565722577475699467455792255999087935260408444548530763363605946966466861765872961769362671516993085450978766847985115215130762112010400378485134052203264284387450472547427954184783261243576921870883660892049047976226583588128636805874351096165508323692706231305832628956832120933728461374708642633522780898722044191298563775479072649408906666091722463149137940904096873645695136014497240168455696155975031760005070490196845864822768022492253010328630494403172746455396867562956047660898582734032994136066140285926170044874728296910318800849975803799818785885075489393425433881976023170052040794937727001112139849065316914327823323742928847407334131234843873861952008974781982824385656993109239514517520125600850075679341200301186699918409357334423291888137039889896521471809669070149363930905971402468493244124866949583220703472246109722229932402630874508502889703493190920992171535606191786834937705469624591656511618109337452937333172730520202783712440168517917367254105923615353221298817071141896023620454056366707370645704263854430781902177220893719885200800244353087203967528974629685425048335678434720708800442249467445622753823639778796722770840432795515026577466070150629902018864206739300056087155495775237918707677962437496518146017303177276635296214262350980312743831708185039191921051065743289262780817759921056741357041882957875620321959988243738718571771985582767430172219827802857436517067809439872356064991550642477574131285504168348359284263663947557130564843644167202999194304759134519700177736938694963219167205897171094803074241582324722424421115516581051250096268655959972728914379289140542182613186987178077205727759776567725071889423969880183422882054849512558979316512719393897479599675266304416664166574080727490876186377026391866908429820706510047502809349540140216731319560892498264341306755372525924968060378769324349199887405446897091565904704365186120211502924638088436967775241371496160840249999957814273718142063869403650591228297907335402745276514994343142083778636399538512289232700842526500084426207722970011895325405716083598625560114397386039861936355406763936450593502970192970137508976311056764577615088356735329038066225007889814408013541430077980370790351952697267323303994774929888465785893312811360789588498805611556642619995338079741661204589774861627761824029887876398526188666988146376227203822711842718966685510222413235772313331064311254189116039868224670107838085922171126562793618102899312638628787185555242265470713379361313036152982421018248100761655676014985043478340582152292286806230178851576083571852765173741868019330713298975504414642740353883577924858133319918658695325032614810872793345668786473653152998575658293587531207172885452372746400674583263342940144005958322358660479370033302248116913491550499923219051234693777212530987582780344033359499965005791792849663362214091108470630390471981577822108614188833354042851845597705251638638082651883371934420524475941226424128540606847447135529404088071347407989012374735278708201437701224531953381150148955063056068360332795800887243029683673194647804999948681451632736719082629631947170568103608218512481481627881862170838603525031177352458636882627889725097095917725843232713134362816031752143203798063133200476842186546554109700312814652242262431372899896738560688335791047067204382580116525386920339152722878599876006462546861234590795736626178383063576486110355639060040285007381565383179438299062842382968827883080347038647266089983692878017464552825623777832639124243461640117584323427798701032329789031113046303865952102458409935775741509420638827718968481801527706373363727188865882837308719810034422217255792510145897552096882463219468053414028464611327000958155192940415356958986290553462290684169720216463194607010350860860743462283947852348512246138317053608437217225688802419770095741472346961812295399561706949809962218109672929078617328256190203386544368339220132220876019704879474638553512583504034872095031389066256248794322969622301899785790335994894329201450247936238412491229577847067014522739083978988432685205588246911106558345048650262978792664326803489143430976199914163772280748590956050736417942414768963178849276868098097185323510556377057671659559292578021846012063227973842111281078022662566687456296977605054021637973437353976547555891649801247825756303629957641439287108732240758763779886746246957971675336883594424692115228973211467061570940116163108211696933883763192371900592956372192266353587746586535713498283721482257938895955659570198831854854582860144360952415111960108611845540829102643302969883428331792803899878729888868370420867744067808015916198759171010965925892322841590127877366960484533138231473434427858707766401922378977370142549329069524684478323599598268674264780892038396857569852552786238308214086459419031737048358131624484489695727639650232339950289494115925680635765851470363915521175022670350061415093290770778559737335530246437034257912950501771175585735398789706583104172179394381153193676853967664579314412052581310114582306362134711849241285903184220254514645407968660541161217002112458066538281709601061622470824212522919294592736762092845222458814489490323765529353511089792152001211349684603044736196587704616984529231201016581607769481404266731355274869311165121554063058207896689532476482531839000277112330401039485407857563811745414976492416239290005544222599112700635409944209128076195571261863496139459789213725606632992944073471577578777927740226291859157398848051239348325732435802019386605405217069453479943232809058677680170913796271217549983587308309726947082093187888261480740887535162917335029102770348982798589633441824769195856536579498858094747526103319562490204589982026019773642500373009541733943832946720177556491228757237329634682032502186879269345698205787593466433855493312208360114656303364537521282157025253957588516078875852041042969453914503426625587590575904759623295210816087734965290247445284989945480747882704480132539992844025240015962698341212259612120455340468092190261623913781355446858376761956566526113206288498651943286940270792750976724045503340652407578608665511451876965938803113493098039767559396866439380537333671781632225942622530695282783545929470302676029168582896176597469308131542635215934347996071376937993713369108495437925807233366985319247468602966753626296088346795995307247720435542946948499353486524852672548620422878233535431913302800802288906253246380998084131461695294077514938224846180062767048469928328895587416061558404769097732477043347913918734551302558265920903573492196339717591990113769494228137662626279246995458177456972610649171721888180685282941465159559394477222636317383975800410064761356121764251219616217018054106190326558583535552156155558620550076557560162685137390212969680831606277841029566130112310409585324261394249119999381903848871842349543212196109927335705151308102547367174105367048482665751705810116852650934608963099343292182903610049278012535440722646202950393189794070116163219401743295732909773830765066230461982614909151684124113260131247943145015933070298352989753817530228350797260804526081840517979289325919885894727425668411868687699902073065293264371556218623511304165008664456507830731749829173353369504984839956238580949274954789968524453427718091084142696485402194204076705109938751300773999960328138384057614736436511563641123902948314652372335026225964460997346959256316444135051709470923956617300433962730275344105174576930530324144347105893357221208853782366082103754632107780569024352419148028419506780440745284910511629304445230876043253993084924900988416291400816669939054467268039171400298188319920105045882736195941808727818873913960223067511803639070393550448194673722664216602059336177454851954668718279546743344840342604654696355611446213554979119257969937921874537736444572503981425102065498698750966703462006706956614272924066210192489999518123468666808857892869457758362236359495581335252515282979929238698332511420689927324678707424840644452358820207056321965710943354273765128212663825354991571644527052331678351700690269573843536933352312411227073350806187630730908391554291080077766936339049071386946745106899479715434545464095201847020635350550594173071403889661311090472432010014492642532190100670425498394095862644121311060811976862404568340894684149922072959468148412874883830152986283253909561814987547462760887531579824504327301643984513726625991645904882436796042820762440292266047439259289208355254858925049822828051515312078301610925755158880294540204334210056094580836240125603813413551607259854368635660998533753332018386317439141560231244818084192460779594697020012643272252474487160431486245292239893759899993611743475823137030167453355600018553491382397923546542110431371599993801147143543122769267127970674858291206680474534574321618152891077546703805532049709300997624418304839583221105258471166169793461339742692436813310194991062655465630731085205980151249651380103308075235225038050882881997629269247613980776545824506792273962057131483611922483854841495759112948248055013885002200508122324950969738293445724407797933507008110848109685328889185909098848438791352255333947124674823334608618810838618968337077462916961740817928627456365538666134141181731704981782680962906526396656211318146509383452998533039951375637613045286280374624242226176213919079708777238152641725256985876888445923851008889676059512349740739325341652133045356531314652961238619655377655413345950154381986001042177978230910129252338489257069069185811943802795599264512945774990138986379515132565851802079204555195669591787317061188381025163223809080447307301690772291716800913434935690736859837513385925088915702551259974893883853646387054915358318088524103862688506571185849423854255817715133140124325342633083980915716206656519239061096963653873159536962297160309486326949996542624637617437237915806907893764733287177303172449728300390967262984531506748667661292431568087391157590174038332883496387972864061521669313153255848634187516584351471706772383272737085909246822177797833231016059768138744398708711862318384182312353589816017784837289612276227707634788224793978734498587588015845031710951952772878014610103890932257368680319217051904653282786963217494072021008174053930665363277187200607348321732484621806846888647701065697375826394934572986074328597190047005727996773573854450003483624617147895152078637930491281784023469791411926695426963061259486772598535431266346223215474664342930040175535986283248415074702334502352852324972774336729198190454900609610010786167435426647978824774636854666565466035650197857696809259105383052218825317150358162436863511720546685214407131866557838360124769404966967522717495962094401613678653692858707143812831604188150119205958751325639319528166693100237884242698565191649577494597061833620026479959520925251340290511025145141960572628989140305139810588057004757117365053939323526703451808860635463001809969393630249272678588681892722306563633209618093313754302256917597527103154142862513656765970799196387338431625976453702513782812674471324691671916069698771916199440461135919417186769717816987166840871590273813114532663394240480266274898019604442614457780105316319496632548849718178972529569891000876531559888980896113406134901339135838764796563544715390545785863775095967993438947655739340995210116293876642600282247413221911566794195789899145748951033232578370495269923146756060148314932027922661159274368534097255750351651515131998227764491357684970093234330923076094839383399190567988453356630812046673966368729681010980816170600075539000967741333343881557615666057528547437005870614246272700109391000305282803475495171463973011194982635565088556856218526065197346193734741265123012946515340939655499597774084379165643825419912559377500925046925333970545179329652696494605850939548552675195951142342546986806602403405846845328224111714493418081585644835861024343830323188625814231909160096004354623133534413640634858539394164496173790101027713151559304198997376800034005842414507464699766548152518769509156626226296137287821499026711630336740712338854376091647475367928727118713788467600146504732693357915234042388264425579085468573696124558114999842159907704912959448067343551089197420098971451037173526079030268504431560758021187723133242006221743576169414935779717762971961266969866184392449681504014408010062509447758803884898908155762886304623000834379930256291908978599956162145186886116417556087876401299731354029809799933141124490671061860266084589819933153397579792033965591258838951432337696492602241575241810105975193286190703510274645492287159583015772320090368044618592216584043147879794608649379645160912953239045783378235444033242287684545367260784904712854540221600472050924364739630272934983598326437236173213336518686896774675131759390000536455250617470869312011591272828669482976609191286299116360473704148363713231598022942670500620934230966882464032314356212027435191677308889994958616617356216267723256563165049492464049960810493170426556390819279908574466198301356241640458126006114670051364182802646894551838047166879418357226015442941695749662242556188608182157158872227799143827637019169883682707764631357593705701989700386122216230891320137819454377483193255840915470492592974238637797044552533257763909666797002158772845212541569430877615704298229408461433456173398865575621982690190634790676282854866453510173535585492960192299130194390931122290932361487602154806462325375751868422386513017512099840839321910893191955177808335895425171672144400871557543694078652549492870052476854295661227527606362108500970835458267641861474601622487022929807845075789895658429791268824763484104110124969211663928646340183870402065644925222439267957385677324328029518029955046082903485276608125629471240551873895096527589829408477322277278090908817467336196561096534654615219430501851412666599391316464518789983548121724663871785433468837417798689336820752494916085083035467929901554331424498762601566461428468472925045744159137523462025970052291245791075748930120370534003931491655131421658626568735631858860935772383270321480318190376454573766733358510206014494054819860966610687118305995645884289611449022716186188430149769603755994373711633444073022505666305731687609140055681876521622413899040593794406314477992223828683883738132901626214434310706112245897837063622928822111695451899214984752746443878496280367616625290278276967137055507051608297948431311129915948815819097309297916743026465220526253547469101296627564153639309746730917015544044044196466046968159192689546533680947011392739541705348537402626735292290932337510937142186201385516514895716051359879186542669850943096477091801990482457305751552640841410168227513051899864205187277863223936652638960314598887469444574156951266440417917120853807292125055467520419925722287748129959304951951035440789133126721315865364342835817963555171909627335550871703369255734615569779944396129373933858373273251712412064627072574436569555597773013663327907534273057592165812781716831755592835844720985887943349521915462216222187056139035243655350104655001188192732609946810125749864564686937478677173296260074969488132533793759201295890350604343071790496267740537688662401409674845578841647087184759425152211378402615491683216618414289344799251558284986581070591640779282384829576770138971820033390992623366814099000337878116082450681819675176956324622482338712375787315427070683589760999077668832977035477006437309528046406666790066146372010803303220581128145903756966488506933353726058079021437480706980466026560577971616995337725576026735612377479368098125243966265947102488486206790992292603758573678236005075749952737040677925509970280153413543724450478332529164087761346060895209889388127163966839961572469269388815590630421281709783134968941217672181924713195410274825478164071351429768330323693985809007915376552866249957113021164199274323243280061701270971880894566692270328904211336791145044581258805536417797775161913129209432250286256789241578399948849591548713911583765489040676437243743977801824762736580113410273957364186597936422007871354169671486282675883441241974654345769854203023955065052233224530519078635855463340960289834292917540037053292970117486392510925801020714710159598012042966836954071630944459970819055920056987326656260477726991491612073697867562136708673243286145888182821606966388889307016122324739752438938835310594683330054562146043562527895394676227228409292290395973642825108516266920264713081971844867291662954514431326623917693074248231518820206664954391332102337455343370791147728014542528053707774129747980991646623150636009419276953364279194516390140223680179242603626351882170683149641258817982826298827782714887328729168544568182726998720069443267885336221126719598461414020966199215047707124856576891157596388558851212740391918199907213837768467383888992204526846255119173226979795751683187776678012607760572355621093665469327406998970668729687513068679015915249437743049637449162672666734609316434654998939517184889406288394228266024438183337479792166351627055732484302255612408849147564072581385521870961585144717940501804814343008260823655842494187095895522986309890902858768220023945758299415531659538056007856307379061983228779374369054080059708336767100475359294805526241430912504874625579000217001445369519497555263243902343219265945869241890453970900055555748220106972714893320751570047042941250482652704249021683427491317258231514583125097349984362889837386043917142981237189900138876897472682408068924797478354738324369029562475166090546352094915227385887054194964969467682924107409818712242092121668435042024599495869772176230368477470670852994442675559575410349657993202256511609484481360072604315474639812786508113782768517368500081283030207958701301646072658315886726510374658917057769678920942839794362101420785830497059046346867949479772199066693932183791428179025728974043792963434376716936761071321834071947354504545489103955525974517633682501897643733567506538799451526543294586748543882503711167607308733434976157499782562417747267275028756558419846792326004167763695566348257813687677418228816654224263620733981058814171161807240878170837059294579618599880900769645587023386573601246796051384392154206061429236218327160635918053798370096127339552355568881850468145935690483339728201240763142648570308841782716770910251170647638640590739957954177590747553858013591640833386914410428084087989811843158252544923052507824304596469798940257266813023967838397631497482977014076547316715815949013989614532354809592788197415347358912832571164415126249380315380586261080858746574683277350002108631107638835668950692349181254332295988268631099110653633891866079115851796966805595604780903477052306789163206278761104434638789435168449610617695659526520400175298449585446962270729715750321896623638592815008240830980656193643896326389658598151093772523134130951939492115246606720550100827681308587863534517894299467950171217280559145552158549108583806674948008111908327427397390560658696029361939225735951190786582777259903691708882949605260670386642668899519018446910530032135607550134122059015082276060203214093469873398502883805062908713351503008064263032943060121266475473431629968905359665021495137569135737764041383189998984189250665530177256040850218380420205693454275661154051895585125424561518160029902115913222485355510022637404081237044014119181272551240112081129198443427062013832000830632680519182449319945255927893768594899060504929362539428053614218712446490538569864055360089245800128804054775408085352771787073240635569393165551811108898901447839755350962012780262473684618092503083602004575056552952395488650029033856489940332133384785828078071219027767552194388893673300777231911665178459350403165918732451980728571736825715302553841757756782550148816095292268081097561132254936597256162571654530517371798809743786106005454967673737946524451416583698472928619062886184648405362347136601202351272915153049714481668718567001150951268066639569955357130339932052327809996133246398636973426093978009176853239289804979558412068148236331194784108029418136518052462881282030237266502096421355120560783003913834255611171383249601068786163434493749831767629825095010984024335311160657235344106459813437097117458831340079307438818673696364402335550166129958711302275600370979431007779457327828346428400818642761298886876918932662075386232167149926352056859437497702518770109488426041515258822695856580766989030540047471362925374912157969106188958777147875375986854100186565101527877090023319965441525599957032208481457723637440708669275701174636666794142159558707009164341818666184045232962585656262196870160866397973159008637217579065142610135097955714780559286573035488920323861110407786001377637193816248814455363758084940121987599797985300525795275643026210135952600189922728560850223592077383099319903258447173986794130978339389642826610353684069068417899343647130526280898685613223585316272312174989294830943068503471438244508134170833330888299124916815393580951797996121686681183903539410757344125927653530719302091076863832899572129904294747652321020775346164226172227125558146469586116343398993824450039372076669440874102730368241971842162720398039440948409748347077028837213341575525918539374211719266822044182589224660754635824328197305965978473988183933510673714887526771216296062449748223888742055586506875736814777285058484151730165136805137855124910321164924053159708175904579490041626569347660666891359100899119591392712789672398662913690759377399220087985104159038819159415612861337069144179852521244052047525271662560060238872361118169586660885785440600591418124473633783862930065054158491649916605527519630874843946781056928799107963571406079279781686867668020478780559535693509485433228856983689102787340947530818800551976932504295907843841332639410389187499504660495426462853453821000059665362028644420226796665409818701135264661497516275097470785024790172696234138680736806773738202338973167752752372019202803538269945762985292694114011889622439442150308116602842835587300657821225065756805001826562722663992817850849965785965457634230114651779063600754263111674974408286638181317178872464720012093536525856173343720560609026679060621552738583435171151287655173862713318022422483215899053053119897686757050799941939910853955765673294589666237774811006443919345180415836383134806115426640451111129553953789785027205609237931160942523178908253726049389141941880742481681803741109163909221767217710179636284584895076885324237860710685210406238044346949176821317516952971460121153805436401517093226557482526941550994569480896961066325744293230895578433090802405417692712201284862622606091291359894114442502223378118324381471456838675420295683726216601908036141593942238520212960310816691627888392307650450111027966924651289431763740759752348891857908223940969884823650435135598045640337372081978733522277207773324305352561865327133505306441282361135780083570029062025505586762820755026868583005255151287900149648192650266525753526705792591548827837740275067931969640431579432465072818906062664703473793116708716219013996666524628939149080855351506252607940868830666287926850232391479245140160792223722741037582573688410057293543592281557041505463699037984604158190755679178869761659074820250510976631208496731550993632429859968600351759541821090148150757828239629384648809185363733086442544568032666986587725944056427199983587875819760141206424072113737123144872686349664865835184614481747091879326642418357618246683750096145853571849286613932535937406089006754636139100793768100382301903581020226520221056772913098966628895199771926783888829508630205019350096792826477031578576974113975939383055959827181667131584347352649630339995007498314211863077479769358052368489277577459670807375066228414425567695089751296680857621971754858143800770504449012407871869699867451546826442542084752277672275846772627614637977871127900575019190424589196237767059496673064970747837866733566930449860493385053235723106118131061811523549943431947816013299227385669116881974580549101535546496668391569604251167444782164070711463021187433036009610285082256553417709528660860491093412906033101354459846486953903707983620152175532192968003771970699565236304239493080750474353980697112612690415187597523901863094161934506171434629877440810237667207179530718229898868434100706546148684550332966938059344706541792290381908675286658921966488574939063059756022894140884898598471741928928350523187432515399930924159290309069884691435397521400989726452474105240441545859060032691666884253850916323464444042945325813349718292873449820399854900333112180847976756409462119612869428203755991120316514824878581826937232840217355763789635362411855074098925730194134627793098607513935501544717457796003173318991216714202499878275957131201836446505870528182492043215574255237618041863685287287730475244226636060189364789893148115936924278033552865057724501783292268007481255001968804995802088562717336043871825718403478308958818409126485392133048003249198395003357530578872134240984897146002369755168375465643095425584572102677377699575672188180196139012618296213882461124542154997950903627410284453721183809295475019607570382561940970922552160295886210752970219312890013085932557676627947613366677164403732973247784590341337131008789812716565965648535417835781008704701982776206925259381634363832143370086413873995397879535443275772992237991213942778662483444782414032380089894531240207161835572437639308881785769336933441290120585855412190919900113331357730628022723818573571887503965535554362477287944626123130228553170663190591827220958970150692437275294590709105876630530405589308089340992259937026751261947955222979419735134945626086476033235981277745182201623774056740266607016101536312613533616139452510234633919489170309322980621937898949130739223663226585037799650715298315274381263687124643166628816695561272322449362778886279314889270369110590070680860293814295074676265919684883895651806121083206673177132350557716187643242466716033083271051632332765283519728666456807145866703765007874793857706219592339763280695114974446340502787436339691341302193513801983756386925788868031253052493424311376721494522808551898753358151713388639517173791711442913496412846646715060261118285185485534634440586192635405153266238206416417350057718503430043192996193431029165296474651263914169449465441743053682958904417996894364103671679252597431856700708722347253207852027787405366184201177135858467105567599601248404023143119402168002335875616052972248057006109706591433373900803389372598739383973237492007775781129268226011610842460382471484498833589564911312474580264389742764093645717974176192372155562746139615222489227057508218182690817848374607233502796481283656121449475709272238774829003287564685279778821609181249799627401359314200158485556570815444674148192338092187519586065664484853356582457305357635991117936294826399190783291528997790308663205454909344600008947256162110823428368674243398852667587130275952209574483433712014498074263023278077493181879075679281566455377331243013609542071420183875068545509183542535338520101452325369316584680722938214832906005395489086335615686090190695764875877604353038011494548251912701039215591616188162866573626908449703048904854783102752505163553729273467950184077244975639180711250525961274152994576982486905383668898862453310133730703844011403011356550373141943785826599953918450936643892876746560204672095733527296647850118612775713462580828569291327936221496907524352101704140066727474520843725809347353993058863589620263625901377675227141696285265719211375942910005262044909432330762992119731463321852574642182194517431302903437917687990870937478122307254592900089442239420958938083623294971260229680065789724717514310765253848232620360563547304730938601712891474483210257519756705915790852303601754751623196154169604054500164366779325357801912130395332519522264110935465006425851480760180306340323866508927424296826843490787503673515528664972244854085951458038877895076776995297992966353185864752685439860754929837500689121258899741406352708076940063774675223985174695671568069632850129500160012770036904841023204145912260819200762161932102354570895669228518864901273334035102194039298861651834036074484170596298883270511336526195694148442145383971657701758967699690488415494961397280562706764650677465824369309121335340788833840191157820408187407592670897630623144471424627956478153957202499945964594696840289026484542990709666582492198065712351971754315484681162125876805585554807210379927219933623351481477210491814207640121323811087533470029389227720967414969995575582960383265268734965274986215814375744958328923552360224982135605707817054824681529199411292369549333209504859052987987387387104252021712518701455712209883351980290815828392560379675571054723853734247396917540538007829974233730006130312009204439307056134541780703368784434653602689744180573998712450500481151780302213250655369980076058128183089820377598466534927324059065369128174216139458620398430955649146816730913678462503905969236529293905092329153890792660103565024245380940111732904082228890556698813146478773631285065176912147590039306714699819034949987658258973714219614386270638086082834974860654443209919491932634631840287294488924286579390089025090190918571608405210848276362812482716320252228757615115763910640635853130907200779464346095329241857145077577396241839995316133086888221310293958840590137186662859222138396637444480889855396528097901080504808738802721794114390872710863510848445814248507293702748084070844383826425221464709136666156260470251162748985343922009161653732150778895175461768709751503403466822918443599353763982152365255488971168568731559675692139788318016723188097585553376982465070869208230293571623634900793642081413901510728355325719366527052663399613154755300232988114842197008706295524429595466343519453069504272237446535951129034750489416806385361659551677764408744113053985227174411114429713483627151210162595423640254422236469283494632092488038090415956201375731332163558515789655377902930809986962076198990184840532640564673649739404160230468002192089474631801705896901543377886310537992621595037106722188191905844123930012459833108525432458106674715708783916121618023615268911725836510091189637047038006253485867572213886648034985715228203852016717899177484657572762747395270875062944876682032546043577847134179864661494081562256921451296315914402641143263311859888289264270931513373722089465471131716325881244746418749778461436669606452946091640244289757552937335141177248657201348328019276667918378972294082152692049938688945101738338418988905643788415861655801351690634085412251825392177515302781513698786847992147379792326773246553193821517029628129694148046980503056142235216725356720971454111031011720296272497131341063941297048477099303162657327626325517311244285116616036865893828895713575519273480430096610306982960361706198354090697972912755247121091239911271145403089210196281263009705916742994609810476334688343888328641542280845731917261831333480864938847466515716817063267470682234000788442367873662443560709142896242490370287457978301787310508986637513051235020707143704406938867510305254481880573501476682926341190209148435865364365858090267758136523632977110597644923166496360394346437449016692873550528585077754288579432773599358334664060174678551903363005573967160724889050196857994112790675877946679910455514876052031073274771339894438777336640836537641852355073008862955747691948979394042488961625683154114563411403300168022815118963930236633939568521082988176942479495020724906966170048137344572504696245208639495258983331446581351597899994132445643297998222160052319001852157271898794123778916620792018801619113663266123224887019143559853649841608033265598463553195929502757307541819117686395807293786353043744379374539650283654112441335614232141566399595470487896748069470199287082656113948825382589790234166290885867945138423195598397675106972838583763611927816507592192124618618979911888976780361886050906296722289861734509614778736755896728281928400221790738916630299060123602499829285819777250786000259623025547591911012031106921603896066281547782691523799028371645225625269022564466096205168655729713141988178232711575031062237246604726872983871732183821027420034002362792740899362970661994929950379860796427837044330527700947649339564404106736825416270882057275003561879474596722402142146323250693540343073699884000803537800397732502805251696637862385227515214428170514054464070410635502858298322872916590287662677531635625023370506830434125251001353156333819449304267019655992479703212402451694418814503211032387540700195162029163462226205971579539161130381303431232011199796071562098495564404776193801948111553229714210000524996870133892486342119384013591220465252577109973809553886359306865109363073322669080157661608571211918026003839183620049017478085783661379251312127594583988201014366436370009389601650981424358692098492334943400725360709865772848496126627185176112576239462663142759044557863697297102761868581805355968460638629850353386188514876724053359536632757870510866919282127430806665039601050292589485377407104635335059672194263607222977039089063597543785198981252078229198915693785872331416452744272456952558693903436063012251199530236042802435258919198838572330797792529956223882842647641239088731008812710271069324114131096435573491202737908825312751052207275485699566363412023659621732488674104436147447530292062404801941304605154804633591246553063304631372491398604834566971037313675590430958204875928582610655312782224498469946118814706543138896089234828426068738203224010358966518900579461443045117371315833709923300929819763057865136719642842790073936853708977935498521743382693433937281425204411449769677858783606247545454173672488001885854165192636009654744685297735687007617897661917550885190929447620196729568504394308613928074067269284821564106491759520302298466802719581077275961662111813073298343166009930382339525326300217888394422639075446244853211358334417884627833598904721504229561195558292019641488374364768705360275273032100202607768391811147839458867170129902424852306989810866146004614186327717031376076731191520848270364567844048908098996714853551808707111570665421278542880422956874573910219388547486866824144645654025090161430672254311776503252208142891447339983568043174503805664619033818759721952236985200908001846322946490774139142969992972216010750192044215962743784342174885063588345552978187381077419325251787152945143239184370872229898194758998992510950805527190425558066073943370830540458401847531811001617263387860512575349346402641935566870379749814710913003084483866893863182523170279738059766629365643478061590146519635019517499328833931508498545488327151015244465543495724966291662442833587479913861175375774023555733266151007327089268269229870468509747670796754291195510491138814875003039723343178801171336902891696908142346459060045350458503011557282556039063289987781594396804730355296782964584008605322019828454857490202984996680131160955001775663852224721017971808497618304334584251933614327826322405885872317715765882177884109065434965880198170231322795441338591601337387274683375587891000940292763387430989552045176073288808563446380522855053699352854829998648025415736279123231377937342188171948508340554853744942862649020974331385744384003497279573899728421013569881033551382690713928067135688167498130929191626296820408525080944961354603822180086251940871986767830211577692212518781551849315558891390477104990688137479556755750750501188214696071494516129625689512185374891364611356659726089884047175423520275647761203837158567817575982240562256129067753909999778375382268512689570477857077301875043292561174654681569203076306781149610686505484707184219434643920921099216260940605863177730390567024901335363000749225027293414953814529678775556007499033691763273485832614651091197529160392068316524336298336725143934669686451410493016166672611249357779102935612621344584036515948517500399842362336205921555925574950083416347967918899598987416925495482296429127400906413112848996511301710988614483407894000341458067228086964666554683980885498024098336954506602462683209870349103942498347031165768955429916757723993370483676394466787697103938555066359416613347784651163229376039481702473725127871124784969038565753117398000025471611972370200085556971422687543060678240376927190727650492256723411523567270043450945062244710664196013197692539786775450763394873935028281488040431495351249791840556507694107627497023483529250579862748796534598479838269292381360618754603012451762925870252065134652830116077659844828505433986205891866481223653867392801681060882050015815769803521941679147343245408542404218415192430873169654293246339995241938982503118408985709681588416676570396673916612629015407299733511279662448782932455380568005747525060958142181913232759483586699151810291755356660221281483686674379544875418519171280635422003843175545049829018596177078595168949230672722449676004279610551443102686892085337407512622472321908457208713427096023794029406061568498094352406994578654311287155760190085263681413371040657633130766732110747451237094023831386825157122695493943686770192899602137285861705652740182843203700650825376223248562501428922453513391390821884696991493583523419595976611043920056884310941062957423581228702197242518488522780386273618584805938876679742845826759532721182782066712126770693773129749800335824002890569277615880691497560580253283018516547915441311052449581969995208069575774855348783461649805400489857794256771330949594216854229847742162260796495120137805299542411404577671314150336772899604961487049637756135763403942402489302986436235245171021094903026226853275354000550605833502056419146201932535512289062505393648853075019525661911755403903822289063859099741794912382477417659715109490991895300332664284352699804572443561010708563020487117106085953155319092423811853696489728186263523174953053331614230261324108415623288136495829748540674152609508251466166293509509486567033598875092013000484300767857389583245148758171677635333443257578886751916874263578316751190013623299289436839708525037209477307186576898159990219005585591215435221949892150938079018032038425966843672663755004018581049217877094965837180304090090283049744394337154590857622005753024518193965852350341328438315195941081316418338478403034245805570039521595282821947731691635344296526733545552830621036065898334066434772733767567671486657888938986581267517661890122051679296633085282790253883071932015734511836765482763429126658497130621373126406136470592649905264366714154553788022027797574965419099626329879112565157742824673066444660785391600891388517557124446760244571544917177377167378936948124728848193405046489325805870995253927966841421694285033432034504679998543199425414618606648583864700391452251271947358021589004963940599601327748802856751568369145585652297221280650134308189749166443914344859032467904471506032519147867166309600040634589280511044205433924140846840335537535193209945315060054854382874390074585978563859104577268411221247434528691057246582490853882217741025623856090593752571773215211519521352292961867477436285547910660829711550413973763224410297380974596761699985840384859299377343898480858758199382125208233246754988594146880400111980207156731370552404750342451035306611123441591685590938136998387784317373326277924320747155585857001345381495328864151972719421551219903241037290184485084099489302842014833590237062488706991515487567766942644744039189379401809796585696996034659766550359921362742813068247870700579926306119450112053836197073430594815884593924926357083273967500028000886545117011886815377411268287148020694648059183769089127862618364257225407312438983576676831868736088094267700155821298728345432573710024629073182102020978027930731309205458182892984996682979631096646939953421611568087360128578379541068637820028524407219109841171258337873783244705335319115797019537997410488208741289665718862380077364282852423076319055966961909840183453824802944893100361933106053023348648720286393787917160964708070013462351933010682093735949156946046265094315403566852609220160575242200959884994659710244713642590392635527216501375123591636006270992698907819016128310811177020483160211785443838146615500928142349389981553827584926576860998205128673739827642154054758419680140597068993603458750076771887984682108482188279770920455958422682972224787330338805954622136040462970994298685223414092524678812821784999355953163859705291491902658123406312398146321780555101861664719255861083659172810534334605883665006680487021460622329610895401349773247716939913680532390753752621207831789104309569330341928151443447387156228502279288191097309595278774814855045394637378463305812594621850595442030599357268087462473404352161579213779475912859104820472020231276927605572959366408209989683179248332146510548131754912261053994657212658435480068925835225331468474393059266540996714047602817182746757377276739398041974423620541356373117786412034348503843540732664545838174445797214391158710912418713247330232728331636076064865683990374506044364574383836756875590253743340393950077397252452355328390549644278518769414317185758713396872320946733238631158198560180216913694715482804206851394019886161575440420480463432622882000872613612951170552339728964591811571135764770112687557890674566052473894011206171562950198088260730501391254028893626603710161262634926045659593672752487860471402762808991260499321570573692261896866173476561915228413837899691817802776856933183582017389044837366086264898917505137909612643180957474817989002641571006414595332633695877112597227756427772927531254386692368450405128248721029061113100932295063138524299189067343757335396479105813663868535980068026727731615969320844936790710866625797589909061110687202204505821151860912506025290911514648524155641828879592012134958247614973283871080420440908188744623511938486185827725667282631582800795077204353961788810732602192780112143130307466488620111880265754414760964319821203947843890612120369656525375115526069871799909913936234813285423761173284293197877158435535294050392444588844630350369447157828732147614631150348282249294343760978109900858691783124024418317076459777728325269812162016276394349104174205474040305487334337243343229093370340415406780876789949931179191538114146590554201659292302621058339229220681085444426584408915104163878222269255285812044486492492973020669779625215313311074778332865807967393539649728307698840964038261685493362333081804383197371324773035781043441551818656892859845579244131134487089355467181224855051976536082155632432453052706486921877341774018038016697421578812275498208795062800295390538184281083348994067214266207314424543955319831640640142699363493726760117164284507398110377521547370375309730806271585061961864044588870214787298797225154465627853748866178781291851867197982279312063512836730626255423435644844717045092506470572576445192632834006306393548423829408742461635749814362394034279676438518315683478612086769509954146884099735417518149629216669657247351628316474164448299379948587787451259358805138319659723268014974864342789509873349803164737261516384178354967172435101980843126258535846416109126804221396688104366637630831792457882424121604249851931399321586663683239590413028247782102565581178655247656461301179448168717502597648025449354542628892568665361838326106641033172772006424583995409235251240379291033920172248816347871785278076403561768607115181541732496134589893384768255599880237405750290704031439749322633412820741274378216950491711407609745999354248946409226513307520621122188714986591167372368177950489625052705393394187510681652090527530163202553179606400008735758090505798532483253111260532816005287411744240385921203480249939716371937595367048574323975267654368874626594685266974246482925125470065157428381151146457313431523349790605229883474847260701815608014381654172705040798534181142296637522700714307934176074250251660314747394112535717969575285803436013974433335830635272737347076038877122767562890265375233306079191091289602939138562384373322271668917248968161337229464268598645282801633957717017623984858434782472693416754710831737443782675832546157406930690710145602708559355498719507983860512812960072333684060584232029842590846320897062026753724951870244691812635693298414373228428733967537987304118578966996408076171950274576765041065764413448095394696146914335662175287950847625713959786690783265105955311015231039602881510919420525845304004270665440770214057640763155862605825750357866818868863765228380146160739811683661880170173580897114323970127833354376317847830870551498609565719475080479655196764270043547902421123278763119768754039901115996921116535827708204953948607026878349109588853724550243554181520852434028535604256055037015728857942101708410009759002825650079913889607849215351092878433669925166710529295130747530384784851148728794345856791380191950312154362697501084236276239841504112478932202364009392528554208864773692183313495540949366738474135474454731766978940835303968299479927096321190924270375017950527716323102643329000171615353475189732592835598094704323472027053967512846892405426754640299962582252628239393599877940232694064110051707383268996941060268037020433128632768776244245150509862234391748455168942677076166173309132923823806780620086753947449775946881231774722855666732105139287410750924796100255591415249344997519941190110381046540771983676149990749073675357313878166916272180073977403627436401585648256675979971973918921405074654032789535099438351759555414168085848181097996928800956699067284304301139535135045306021041318989381196676806851735835641451025027050112436650907106365476432839667924557763702140853676013404645472781265839814414614497046194947388306307326563947483793413761391260098960069613510621001068273693044287393126659110859556632118492786941968813085109041418416950698559506020330521855186295167950351174967538308460802978275373804404861158970017339338482592528969097544958993826537187748292578876924981934367811031668071025491649246318218791206721007304001637527351283647461213647338556243035790230879355234611505499870558748997794636145951446786737438278932559674401954652895702353026603060298910824195886578445080271866219531742651834906615433851698210802449989242737617491541138010459581840939164982816264727823677022506067929750352504857968639950895023010606127525978829313772042526202730125444111737295332340416617347087118568643525270811104591348443776724231754397147222542122973286206827508169339889332871275207186335430855144204616003490721995589958012071522051216439939136079623561213053470660425233079920984868438913326289212440729443816950661711721640123933499215814824064105862433513051057526855820916537738031503750224913372108815000668007625935384171876204471753546574206970909518354037389240724155129840516879522640873276174327171052732747989312321995369947740747858137590333932238519448987245704757004240604219510322842420566240286877828428107597028129028918834017293393272192222735429299449203895493961632044371740088821633910913181698381391544253319377175829962529548959366286044325897201091803045492011688086445744839059036317181255700899782044322761137532599527449099159073982514729302561836452744029308856511036647924869512398425132929411896763739456443268024469219175133769630432074452933234327845722816716026001977053101194305019152396709511336152487200346629028988419915026466187789846505269907392197729409439265150283677284215761256919293374351777104766930747205022781790770415228118192028213763230749749086189475312443449844807251158770090057617320970288677477008500786173066170829939696488486795590053900774252529522751884977037786003492964391809520609259176156372324649276674338779164028049655519641135847287771665673318989403878810441035200166369785584167245024936882036021062443097538734965246044307258429764649273500591369829446963263100479022754597622956561031238870825186844848691813388255409956521717794883044684166322538217059403736185178436961517981804480872615380929128077468401569004014947189062787967092199141728486792896508897578296718432645579617280616627778818842086933976265684936927380072072944507986718557599821978560292151227789278396662862976761700961922304983268214630187069978949415043212778951897662645719880772438038538849812841583428470916463215994614352541131969599953485228776066746250002781487681545178976899537217564673464337857662413841584264451014445704931541178820823259445493049120321911930708089423342776684407307769960110268441205694041225966036915186905037387646246697688185769447977110829607362386679740290257655637728589071088053199859209581157609568918712157631753436699964043302823588775576101128449799896345985828946709779593279967092467092356597391488509583028678371819897817086854663189582517515138803622006384067720645266379500730207145558494793898086251147354702887443091403436537907095779078533701105932073226992826602368264544731977012670269711919133008901300875092343588588771023646152719078602156739862288158569704908789821685075936683003686169288409984008965561748338814784947641419083205095754162301114849738530230952637062315177432916885130291313499361892768207624063081478989562039466951198314888998654070510750387122771170596627094852171639608492366467691357874307367210842259577131946023021614998778808546426869508964782842846190508269959177186233694566057109296842366690707238481737772422486283690420647029363970728604147931111024801891619750182498077912216347612608761595711510359736929295787384297036143948727695043018934264431168478347509273772870911408801797047437222587004750008736041566137392117804599781466869757203042571350503871921572105874110417915186611147408224033209714856218608518744122785257061171665304592611739552561029275684503390110314048228472640996355197967502901049596119307880928058397315601385483182258113157440673333219445235003719426029016071340947969744093910053874569055609356088722745210657177135043971465684619909228579729057721238093782300025160147891379929496277166503828336928714547140202698609124188211382992562314583530246517614773293201915798874106780790070035241822342246075997441432533983058593811979605995861704155162713709124869300045834670987638246319432483325532115110543051597686061736308126244368899081403274888767471145337302359897492191315722964181856710495485033704436984747151510022661711756072708258193343395878383293023311617042264927878570249373758611765383444115969843651936621670011921595643400860304195045898051291514261566090926685714294900352885868060253235195000239839948461493432346061943420104640911810494250739415193552094820962972946550495672195259660879171278590891807094421682861435428841154650817938503168781613995306210026806805497920216546972063344637433473350308996440332175726096798644524927908201496106182547352614010660161290877403792875001425737881711529088371778410622745667749585340627241105235471107838032556645373588050307449245487138117903922906477555993329927256520729309707155678799254421859429630101206704211050708732558067093333186216096750669428281057420238330492150833489250352772643277227586584906639517549415422516476975934727686627649025387675979345299706401869758921589022644894772689104036659101328117982887006509603288656476205335281927749894544693067839007602734015523608857097667382164763891777446357992605034964976397737418250495449168540426713245385983275679078168350913273357012378400838478328928222488264304039509829576033114501927900244560097987340405286214430328352222711562948047254091843679185695793273676257856767021054345295091084166485421522049072548260259593112026000404219606482056825024815227987261224636628847265239856040586165915591869921642060094189524480019328419677974878678804352130623052120039100584051470436247787084067242808417114557905636373616096772584867841529416335592249960783739675368119843844462403383157004903815452585999013807293871809022787532359816362724024773378278654384964096280558217853069520397174869696451949331699253924026204378988480330469109583530138559977338373434987341158333557846142741741344557949728353890039073521054399751399255429585412345859998323716756492688443343244036267719009582874784284125684733499566562116834044385550909231819062113291365675509259273585082196481979872022320865085034595212626652121334504600350726056629914744900841983421100509607190428384331007047409741744290580182816450296385911807438960560764520691388806344125973912511880917799300070010576863925242779651922858171661749690557280280016574120905939320419463095795207641931279625521596599180322531064613302366921311761545409720859997876183062875630203150627543079996470117073503183784031043135329082651545911104598367181683461967238720748042596218323473780205230659230761243250313283728666933361675432651692284338621061950100600842830814375590222139320429822392529844906237491689748493381712853482878431310153616971461159833172071206781901392243867938520961393456884408995695598337847642210284108689140759030277486699529036168527981511967409485108311979561353859242820202146743143518131438596342636716053299806959154302663692739942924848103254541103381054136875777570030680452560076625206587356930193214239674052803479312141413501796596724373300153839988970205649008311876081983303417155215243020560834561072718164217697469675854529372269327198137508481962227304643001955561846490688033904240146177011130452370209512467450219188655145965739983268066211873706925665414833586896176767453261566287842073130328201313716233331436560865948074071803374948570896695146856611353761033335438232931097640730697699074245890383678205033696816317039456922276959960054028527423564664531544009986575364625339381872008843360705950509758105600331275430960031337894261091157792357254014714985346230428642395349407514270394952551213345435865737124078395758678713068546760521003951589327797077690301946152201795227764873792024220439242307357407611824087460396014911893329311858059150480676460291333934871003328376244137830524914008686261455437245220410317065360431395122885068563824854562072375707377487279385825973778401612706848826466414630022532119184646550687674301861720362634399084436688485929791249122952064313631365264173120995772444214498135580555732808849552518190385302670965453482040181213602123705336172544282095178158180368608130643723730333137428251523477132566692907423414709709286482985413454677903712053819693866139997284779538936799570635229719623121637950347456637462850681133790031005035987783383929193997925574954943963570575576243010827648415336865927291722252888474465159070548740230761924507981616509917195888061877552677542590034613078505108268243470261895863752652471156724303955317146100081446445579685806853225415189584566245451838924240542005535081858961906179066130649543844234116762464398482401829553492644684614106942734815936248649350495532156534550300967116764017610415834497441887676230994857920139942566883714232538967404488153206096715217019035981863388535114123109885758213194596494461559107729574049345211501787228092771894570414054756567628217590775440598172335057371042263904466557709823375129227820481835179687818018453982502523408175609403356906335658624699662995923863940864495373076815134012186608466129195704088931401974952860757698855951851652831670970395865721939626304798813196660818379896792042801392106236464517503641006744287123379588726719058290131517024052448880755189253950069545406986591477752627498804039537070752742673811877453292368788367441528345559141553759996498604069870188688819837999089575700884755873627382367690548705671220071388258521766287692547329085409432767158106133618792529115218431594180264734823966314473947819842471259398581777013158850008255630991438683887847499613148724742972740332558937970868532227463678538484207075931684764345453276683688797938279447566386646845164874773968412610009261229146593574110060761384887716020621130684048695195029279020807724527327864855158317614868830077727982391028321518163403156553843771809016478989007653078326327139242200587626840712511653370455284302584719074834137176359632468863186481173524839619868162397551848833062292623370942867731266510176030286933916593278474862145819339951763628444564588949251653640623015815962171003872446084329282426176685922423767919538391440944149409093726925887620635786043172675565015975513388360449094572692719710805530163538022037362305937364724975579314379895315993851517993596727684834426825437624165390937437588292262848460428834954224116988900007943816874204470112957173592153321851269541832145772741589602647992821478209536189322651895775877995060914323599191436825229999960649913924513932726409645655064443578921245137495454984567773140775213639500298888058979632037061272800158759548667288388330215683513226214266759676039149543401637707685093160184372904695733326998116719094542150482299317508576200056904628322954845643537748821729178511565734414667338186320767597065926325604914724280102622227780259791043313675460096062233838413780774302596165752483170184980486602737538254018959364515053660723227356719770904353225804617537859317502141957481359377148373670771514848574912511905606063397668654992221621266364073351847669783053312946983991792799386183707438774301503225802571142379318260006684375942902272443376809387983473222939709055614441005107478467955066315680192342413842219330792071817975039500689004183364701078768580152244123011136891293516897565812936483323668846224927699455172365398042751556027206437453274011225377882871150914902930331971836432185037529193308340899724680539647945588853053822535700747335237666290665960753799372782976218945612614904758069726180196054360602407196164764206650892417279330585842422993374314093812019989842285112560834083220807524270424883201288453482622078860167575415665510670571467265009533370610787488273350159316799772400582598728802736083625591514498477400087754809981914102825901244223565525269414322931680417425015492768069075743882549013528016202450921705312396714934958589157137927346012669351723628757377886217452043300348338068951746588728708443306436538270200849915402062534539293022103988791068183521438834304565022598354379430219089833966791671378654946120512938358444173972584452962331287461493239450062548965563815857970118124329932862139521139273140710543048850294333159842882630023350685285643303952048513252518966837151741498646894055539921107616048971180030164265044271171366350836369005923583796247564832572618088920571629635518124721238104808802944382161006966136006696147948644102301829766455573080275430593431905370745001313645700304401171054400948229764506004969754758312490342479900354444526869122597831210601900902064083256541535226776977819499165798385069671401384301075037440777884542960508893622295421353240094935980847208899950489651395028825598803559998728900685698554813262402868970635296202147582355293143078347414326459948373155413625571383055894536237050941351275631339904443541858904411449126542321264348423399568971476894068674999951251519568466876765493817376671183090998108082631165163589034668558670582205466614643176297191436112691232947246300825808240841382244263005733814118603488559520764912594960933080022659335479292967614249663175501778214343510281302929384978840603930792674194170296854905506742444833287704790226892784247267397047484483390550170778825747969748634691168645730300738114771191804858174936422355950669489160839340946832892115867472332391527293313427450489132471908694979288936923058331826263340749069612435100426885229012466043897598260324764521521906651924992267717791498381457336756454946318592472838388602045980266946144578338741140207987322085489803665380244713729167742570369483977614773465960769312647403922302070038235112089125133465511719443518660565845606929710772880127865319951979414472632517788964328542828024670256063345563416318040034535301078849359046688644645123042396833646284889636711131744263939173471592457255598611439740539622080177986263380238545807948103016717124795812541596647258312411043571629130884152860678815776081990986957180342973677373380053498347363648314049465165026747168028215634052192850279612630343644184485002760532124861414528284644463026488182086229275705373383122032116293294835622378078688938544048129062605853855453236568004758048555308359415286784424232676287717779423947147929127704047213373411859035559921766242515791509496163016757972064005433132464287836312572641358319273368385380099113499615345476660564728851068169852544215875557383533699470794351487255554717408597386687934311199212917057946532051394231235625334114894922800490630587573398690841788324037260350995733975896744532538125695763124898510962283301922301414920373714303121830422730811592242568250370710887668525918121583663266954839017496560680248032093904729781444730306051278178391488436280979259209626587079597950737079955210090595664464622250588856572020478729888364123669501970227060222515230221742495597710948847168079105627760994569484318117879988033180035629285890509040510553136835028436711352988262988836244780074139651223582390937376632970697591506905185813405355678781336636446966094377742782517946811354402274548272516517985575913150449543472629850782898071123301919709463892187840056342140963602849047296185532576370730322052712631277875861487981713216028593034315699820424233211520511571643012098296666339341670025934022137690587491852504834420803495443008341726694183753105485602935934725321851143541197753152177101695463385601741022330083171680038980884714499588564783693595792915898603459826289264770876622197636149761529360132730685007091828759471124961164002043206995476425108508390972160753248958876501525396425389943319928711061052204465988485420101199220983561417381150715948969578498859894562743100765801773732614172727808583148176418891134752339033900609229177631432527239083973168122030393659775434734735036052489637397700653311966256067247775487174290615669839780045135494117133067340872827481475636984049867075189686610435427582410674936760299892949169595898534561006583413059414844490583933586870670133512436927453949759795809420718591883704730048453530459276663069870734959589506381351074080362080228259491499474630536558804219018940055965267599919392754030195737282719999108162662518263732329269893591515363563919054656717616937502155997183371303718628900785655793058155925054096511144302917015299148924232152968560565024099692020352499006251843596538989732290427817694141320496304601856882710143743823746011276505401288510761068866673836755005303041255880161331399474216179747114664815793787852863234784481741597274178561918242268679330818384103885660994258091967023483473255384981610071595686260039025479362636860319145050977351835972278693586034064656855937945162597215341803018844932815459170901811921741772311508787256126543649496725821654921591832190213681596365029884474974325940773836381619771282104456920705330177715663734049482400756682566630639865263000109767187454073637308843902722444322318985713035276487662123943691732833813998328784765800714503590070032463340845970766818177243395470898319322306026783265454200778186017367905985771672076763184831197724553052600871176716695557352552575279480510030751026885974652098297687686132227560444152189194403211444846821201768078453121549400626272232298080464190321311436125846062853689102955186448894857880644319174395965113403654017381425684624375891117166857685140349384148761058010899647891077797974283237030841959222798348565379693765767660094008735954213797708241330210665122034598141430661208260715215444461802825226170123750445614637263655895604235512197116819978642325742206592846425149074645566638308332802895388394124132400076842009868022582122191689460736120212052691857188495346498975582668865107018230888782516268626108334533205692743165227183395494984767005867982256155995311515009078185504366796147258428215350419867122808784002286887716737653090620898263763928207417026551658524955499515887872581771908682634731083134657212532164932689932335358290023111987363398554879447861190901857080648604003042769612967496768937024382550617909365606395744067951218369381265464889192554097521244292613036305217744512800405657879072159611068958376758263430543203967881929966019674919809629427178724602388723206734455670674898640916336001411948860843986011955114498384445604093965524288830682946470915233412947112851048901973775062648379642559773610959128025537894484429115950180329945219165342073549154216371750304207831298165515934395212940331641086201015271916900119145193770874014308409305812435585159320439124771916774865985956443504839185850550203187494073809152664441832770407151456776076003466692790930709422439498166476722190544400948126434221666978930572402967689721640225104104060966266937025614408217356130229420872964534787324550204660637945891376488298915057999124418993818989487746638834020846736449553834636131363523045291007701279149153841705988104390898700771448030586680028948616363468737896204234393681245944657559156873437705260188891875353884320863528531128309524946942260397578652145442657645555755728086480372226967220535321757715465739007989922870285526476761425381879490136857023077049227932916540452057329379420361046945638532741870936856194824887477072355588659091946672313120867813157470962436334406925274193852300881970701882702477999172659415035428253771658762173308717293979939520205039195966147709087666061494070021157157659177326609771125871915271919790078870446757584889409345797410764105336142464588104925390936326712876506672689945835853235695470170167148244444689279913792614178922286511740673441775941666366047395274664261063922194314726032249720109267710273906924893594681529352537569151594260412795792989537978632918490146929954233556694011767085567218095640361207407515582177099196915981456208488496003543804877296173734517989221825347954871050488121763684012713238774044761059729843618385292444746490896443867518747568152528049605191752027810574566839955158804104361940201512510301799731600810721755870774860286578561660033004233087867305706716993310220186084199879143850080377937868847785504577179971973271757310396191302764851492322029248587730872145839223459671408290852203492603992033032348912272126854237395556679183997574194942451201489323238249775927386723442062787673112456196020204142712410226234037900775978150196421425172511325987731079772496877734041199927161547705876128169773737146225267910579075650203307966176414853227410710672793764785187415402165383382915295367265657507262011386741174893951157163048941061600745258520599895691357478118027178787572706752625400585047773640468952684384224805152370970463749582740944534700976976880327950390621739400090386543785299879052680352521496719538251807449776257436512606965062489466146966539206117580383381865625225840628389614887999437670063674399621845341366007256422592432234035985352640404575898353118960832340509179508156733857328155915024598980153297609994352136467643276467732410134363948418356122344648758617332988095987213509992993155207701429100777199551089190664774068683050456494895210121120972639981919189970349092284242944339487597623524364589504939701682767224705064339257017716016563546173604984371630702270534528577490117972572550148436613893347100709392686094681388222701353211383681081381467331510399671117497619508157242934817484948172839908534702744351153432292736052419883671922252250094123939709077145990879332707007743452731204515076710114759992118883111464464929987201670443916057901228348543565258034683149095080491824121516055684169613292130810064914510453194356880080899348818760035029616716022720356235211527312466567588433752397919190545385694737267882869290501080827712581871707374754777476908012455088416388085201315460568154723155352954838720492970201477421058089826865207683527719988770286259505594345919121944571481775764660394132870518191350700337377617782511236036915041007832508801918095866074079607896589016976754049687344362722046908826182330682451531338443328687456980132727732148593032699838868800357258932277922832380104812849455287520590806245176904895098369134263457255303542043369728882860242226500953498024199749841748840323855711232469312256137897021664782673421512893386720439244796150608715908416334913481831413409227419816504620970481958785265117434372078771069647416000291181109968482361255890054952213053247088623547661647372561737348524060862663215413874842819181946937696960209327383888314556541602462965442733525569693959968887800488535093207546636134495827281143422281936540248879262498626482071163004357720372130494564656568879918428252793904875457480126930384057613869848993597423448351679519387825554200874076899802543076837073709084950918749406051374986467826618448253905931595474298356720852771134482772004371811093633194719373675460463211698691610662417922641624002262609873426959657619451387735724296171289497582109931696476529685174085282808170214015724470694136009713659162155184306468971880575534322157364980472928248642693483888766342492102305726134593455102002670854358031311399764409712704961543564208827906535975082931606947481709096491997806249054237353914692447004840131824870818654758859735234082988916523726924480034178025656710105732553166997471661253619192834351064349462672600799334907914616565866578789697323785641259107902762943575677940718161750731396833721311313213979220006560866024683865826793732828533092532750957576669555697445205830318028513727337652933275257667994027281331205357267650202774558299101750221523478717858971711129095005389378213357931296907747968533754316220934471841257185265513463694955877846809190438091043921923478419704626260564262553758168925676314001684746639273962685777202299089716717667294004260426787245127756894875352233096167427611797101462946771746189056793971100784154661946988012542224638521147089285564858179596669853134019254797299953660074483199228142651918333261590011115339995458095284824323771823832509784682519989567201759175075244240499672151658293610123412411984087014496162711876988469907619401435101139230573586925822153305092298636256348546287123009113948636821506300236908426535289211334739278364402906844568109267434287511154856811647345724354983510216988028359297016420701390811970813583249607898995414609611236259254708109720419723864909375993263918055958758511136746876269394479910850162045718096418534697760891851926675839151391774789649723100656958329033035772548486531029705129787146102737717170816484057556151688163598531134875317359632399751834653221821030780172170545183435417551775195917101006190171692250624308932410679794853830122299578527890295680489257286908257359370854269968983969143310004167385971849828970738702757419018408343910281462339825380256516611265468569826536181056829487530909618717698575923494786953823056183914842189269509805293945933402316789881431756415221202596149811127948870902016515233587376448320843449869012984464056873829028962227133369591551151011569966515653814469687006319076172272036172123510390136814900196082899840382524914503162290221975278237864717377740634537923335616141868652833294750970630695004381235209306851306434876164090165007294983405947201946437750356588579675863115655282414662172187403246312544506114554403682896927404142462908776755435262145840620861623765657760193254056053501904170612710042319167350358524099791099834508942992796600759931777560200856896958056315653315424834884799563988480959038609712326902660814522927520579886417897181898374227853799318915028719516885483731245957008273181914749955988174392876515114417583928306432820797599338491492901785916288146490240597751260999226536119087954672747684132763597434087100512138047127130589767235017549489994110106044999646594830711017976039252279930406759933113966395029771185364747844264612734918232429453573877940391697682753249754126550572422763507364596420551041358639424740676370645696237032282369904094420636924628087053672527307854015215036666380088752490702792017481752749287116017413231695477062266245794287279504153851381304458527718453721257396441141378791938940421336737960550516264678816988638169539258563098404439802633487589393085016478709539255050681955751375213554838487914084970653133742808796934984946409774931786577669748552555825402695459402036117222399424288323158221608196078491139663305123018182369818504918216696404058709776437421818596179606653847429002052355745771687610507515620764473194504283720807565515361176505515342299029239797664405426098988959907390623747644093131023177657620346940178871299804199435344920315416306912099077150847565878880472003550313350016942852140416505376152836175164183787399150244679238281715223729458824578265457991423700015033223810582248354995733629673604040695623866386685877505369982510423231417990127946809061118625460662008889315956407336172913835991125371018515031263729100323272806535450407964668832646960472098079464712553404943171272592184928880178831409477141651135327471543351109480195866632792946490982665800266741779902508237185382891583554665357521774969118692429556719075599817809111357029868665978255744284066009770271830615722184871709053677777820038062196266051943694482175150680613546172423376347289963057035639942965175720512412221497361159874338873568574885879206136450647250321473207691469222352075914078035561766781682029375576848316746130179849095257837884033619828693566222459410801310808072888971335413046674665075777696925106174888055435761860913583886664494862756900695947679981277863016646560052573327263108694855584101132668345650700075526934813031992988843612194883936891753798264720105578587592663661025715227540759884035619580842179754282925744417502408707321328886690986031725926783356547567791478630786164950026867113561359531713836310181565369746582634449867642095853025070881666134472159406742595279363717247118060068400590371026467051250364801717213123307293179976041548247985570312067927145543456341946983582628002528778022017894376674884833727992723692239917921037012516896179407236724546522492692471690685249101772428919492362311963322673670408287159427956971694766262282607064675531762283744933816798870143684310656896848277999641009372198793351882646860850205931998572856389214863876151963054226890882159674322769537791536806782470525459750600165620635582987764365690965758718941212726598658464026731910234037728763114915062678552456107035511473574306121635540435445178171636039978415045813924739452484166625396923908408958279332906985791255104872335225514699156677509979472117313849691872468950212143744283276874117363866161582900897369874600082421815518481345388261131693064203500657638303454959248432785993844320671051043334872561339484680194481493638107698740050499982976027335287861763769311134502109272173470163496647555586689580528350639194941572308404693557521748563671524366828140902485882157129740527117842927736041937419336651187538013776357371697606794125723173343643287240825319534141989352177113476945383611606514154630353823993913830461970623770739542447833353126509780502578827301081067077046351931547982593100799482522540599453689170239798768463299087976312968277540452499049643287134268788826543249922780912082441125703743728213561946278101488449312964764913181310114479160722951695091434155911419664474044878077952793770215035771930753594616704982900390474248957522852763066104187424894537413168284731945436566440916881696483066932254771060174774437373832652751707979154327919305839669971818756774328755351191734343098385005369304609879761341589722312475258329201041304676617941806790551547951955690843818400847699008781748929014122974944778993802743067862653961165143694477112609966628168527637750613752468024816171788464199802733574895424403619996512917470071554440500103970101190533545496794160075625045254156958917402051778902999632624655016359485808563714176969344389975247513353889419897932552475953550926054106273047383804038604210725603563452932510215965763367895943578016534005296501928604043083361364881275067076105795143762513522256008554604052715756943604979789828347373462091912635954757672724538227168418112499309935069729858815371772852411462304608194841334937788968404971702546070280767334126668182450519067008961665849771533742311798861811377870048982668573635958218784710304990075420706216808473637215747307234649812310766832444626912006730584959239895185518265527373237248082534029383765385295049789673005036917799936314303122975697304841559661085749855224769541567752146107354563434292280506547051811250401859904400421107758458685121809390560624633643080074938126083797069220868658994569623372899551428493523772295970992724546225829326298669689309489024636761430237500409489703938303529468918177533171001670806011559492678286701175585813339507931059964702929404682521872179279290791515185073260251468201385470616777633987229928453142556948068845078021358981939892302577016462127114513704678371687946996218438288803055986762746393436466765252727014355272811419391775364279279864422537621915474383785507946639414181351634742732321866652184033132285265959785466695143127960150327083190299835102220854516709004626776375211922346089660609103427104375139705925835876830377501410311706980596676330623768544622108418822803016383320952093489045009794400636175578847889032005235479825339915019852013594777056018918073301141621157401297197867543056684466518636153850978795709377934390918968007274903686702476942502684193209050918260493658005020287489737397339746888215595285810705300232703241140335440612043179399223350721437739578492740416545236581674469674667754068934432414958186075015546439316340895988147665509882560755846215666800082975174770286753887338907972405917172088791239701617402483003652848744322780920999894480982020305774532784740073171087367855990307005136067498533773060530419879982746331923569102625162273190627577432568756551026970280642447460143912441499208212256273507794891874513018887289764902443542789129232845404147340401252812663120069811684960072538996000346097374698780094912387388408178414408738333319010176947928379804888689453265208433027655027264668556062628337313703921597055979458903033896952730790961997174980179046003935009716109375479388485555265153891305217765111711686188531371703690426722252290068132316218434939366636745605434894599232883656921943880448891545531267411428445339855533696940112460380530566819595123943814623429991567883098712895875853519752970982055279728204253926935070637722172327164905020015499330918134384392991321985236265792113712791268817405096255280784530778159757519541963569323799722529650281399753910166560847594487423808058796953051535160159285974178448907107586707560448019734046179625274330946153409176108186338623819462842112815383696483680700757821226443948530346674480760144551594363515547838853314725827448669699551279923430161872356005653653077637854400207826567418505410890665192664014399910950843702244452510812178459587233080985758000532429257075376079512769134122130103510556430789488808980149738356885036638844652704227850111289405209350021062207777792173947483131089750733883665278683118966772645131155682935093586270946331631372940389572495565889462798554388888732929947940952531917083058679060513763964911336576894764648689630129411405102523585015382219615784889666056364271159886363655391370552430141944493356562993798656618961916386976658265882392125009642732721028435930345275146782427792113626622033128606086109385838004683342785764816664318325095322509590142056592053594393017230112096485464073900551137791333097804301071194138921505591782741605430260772851699509140485533908483061229805677981385941683516602383798209489286423056993716841133845494915103664209656234536238524044789959021576504653469627594935556912670438128135348805740601333882357359477079468104791189651404254953678885127556051984227760619332222449931965985075328633283880832160900830943444426683578263686604680063442030362731841379065185848165637311256318051231352312136464561803208148426839517467942162890367081079395042108827502104522383095941154412133980313349372687512464520707578197761119008050462139324206496850589482434375132887215396421993374913977788077791475538153884977744110091668804248977987228211638703878797786387871980256873059817494887044950330685462523374800766258646918948211994342667481232350265971734970034408580757848868488184117937382880725037837503215176572763855961049004232744773453659963834906615143305687202952034309017084623821786827628673973301612800907337209515706627960098286982252610653635453097506741285471593755468835085079381572912647693277653340471003914571954683089952449935338978925103844019815021490527496554401318581299069330059736540087745019221710815292316415924914996504311743335510809740144212835361427145577925702614538912884809267777324066842142324647252636557382287719912079314402058113004462923140703744024056640480259870199484997290501928880213867984026514466371131038476753842907633825900209934719167231458294011046001257538920202955889785010145013857295007747381065024553112577049412024602314188480911455815837430796646038096316756293686158845280571333027418850700977976178078175346339553120949057158185321093528776908651095862415616836426461893918559247278619686440094678804295578235697074855910336372979848748186860277833411002691740595085347960173869415853854642085562493726308739901009228276946361762742557177905665724014599806568835157333511926536672984957494039964994252915618039566144151751976779621943715774046040991336889604764828130542687198809139996259568341002667398316997201017941728200250077507323154681698192963955717504891815642807685984431620817202765506480679608987057921885728492172226275928130927086132744622212624125430937864075692834871677503024877379136780979377996028796992554424034738595280780210830630412928876327202799863749901222296198917957022816572135428691121533156810294895803020632456480166619764396771065077850778892510683720918418879528476007132241415431535825013230486106446012284033962812764906504572129681559549395687589699552331033616627990498060205745597113863264588095819615248923022245457253741018167705510792853331983137831748521428966575843235608445852531390296636393107081645629657536067112840925001006395177053679875066470791499132554124291892384292729543613613726761433453420959826931425687617714212339843203732927509985349726046207979963530482456888073659176165350557909194068233176174763809187378785379735889024463606324054114479751516292128108591691659051082088945440083393301411912871356110916417468266559997956287911362917699932715884580727132069078840049174666116253154326195231077310529376138721277762928326787543290991732480167636219844426805273241157851176830958038340387532719295158839620015894746796321527872806934299575904323313908164049254592305531140090218612494080555014246792535901064780408034265852421715102712534712886939766453060421346545363378330202560640477083061063658871678169965277908759720034382109568282516269461507021143328260323321280075159964793341693085587554796630000154481070726650077146790326999132576288983605843922445969290538751921894952869909647301697018142178328338216273563707335159491444378043221693394459304424845081540064234627743307497351210473346125445843857452474733206912394898815221063738929853363701967896646547202131655848377166061277583785149701981262032852963728050748558949232394385020847828546289368836213835059700141384129632439910674700654564520271590762095563346167682767060704135494018330618104556929990057531379003555020223658641557131084139967808686318329915502753206071937785892534888997817135876884484780119045119122366968948341894865812346055126998019729696148616430905869239637786271250483325101888098054871665508225989924115608996703682558107859160858671889743079306671788013375765908082205521648416109429454208937981241062680823524082828560568387416095132999913744744338318492889912901296684162857159739037372156417123556255852515135826503867979464971476648048932555608379474119807752068370487624384488470033520957950925155033104713733386951327624254066105257573597363309672605577101495603202084322739591925569820777295954334118319818201692508678424133651643728646202429072326945578563130665977636262434392915796763282957439440011992747332908781207960037488714406448407451505310675503066589239548051920238267447891100658180687546444065143195383000951736658527469591517163192056251246724648327393213287501320342872866378056945496412038226405508794768851279393954814765464656080847498123379106492985107402221051251274885081705326123398568286253972898840071742563506809499967122679225186737704280255155670254595933465550038898333834334576665801052435790831432391280466589781247182932306540187363197786544549346146219033427216117430290346331326264928802024733385229587655079210361482417812783055935268776698631030839302362974873177553395121508173021675512604429809231832124365946533720419433096222355122056401114553369801822292762156702042479841693351383578356142525471213365935430856003515264376303678999230005131124154068344787998436581467340561843005486755311187253032322786833120710569157323843494616710451401389240632431085391932575455585425234216668763860159787994538665473810713479345123731187507340742597573462287144240622731984323655699522866675470789959959822508481705145278518671309128577922577568831470355572582133577319432646948567572828645877874930750011877259030532567888134631800977480209822667833613386740986763859156093963808212137972949230533694229179289247599294326502271324504992174569112410094915370614844082801729771183584904795925517021814132207128873148508010337275223633027117674679922518384365917768550749579003455269128125419351153901350622331490150947538025104150505392010963584951558050790662105812615379401627597015655637443772870119338806976818578839335540674776461656253526655692701317926790421321775845300296784527048063140376934225820620012345182279901712515621219194148021470129969114161939139821172679861226631705140427106327717854828332921323681405167925479116985165291651827647450095917623066227156510204294731091855204220625226971710740227949936006349072374202507348295860183042734238932317209995243255171476808857917287152020269826397127099485578777710443313998519140901042703620545278853908894430282221080691694940617310575903694705761092540700105660242751131264431892341818777140221743062102074766225074070443725819954232866536357811240037873353380219699647102346713397104522290317152227180359839041316385753130820158279542972019292358900833795948534520939661749185847995353591624946046521871755228851901542152393077521791572831031186510809406143933363178307957967377044476692223626771140467912772593263339653213123428920471095277393647194449004086039174614624585153740409785482512245158274169997669545569876098802166210584191427210816033158266797252483432362483967671243535317882326854506469160513450251198392272267116159673423767093811447839215340478251098603598404718254489152295756179176371939144336937734167940158521737305725116942609002818660644624747927615774598315984337725485368503802428362472577384976799915301011035964218140257032523198871474756879117677294798567263545319548115028196264050031906202381839936385928613010768546745957115786311767417445037885626885291191070096302609266366227638534667065552588422569018896772381435204632699729570252734576144644680284910435459398310487535106545453389720334945745744962465607332584156748108987215760460973786651488299320032147848876141653602769174984444439149145885044664759374436201418862007832896791655657476513160715272600163857257514634008815424171404865182018997864093599131991214900567502334367786214455149296259759447582920227276673154116313116254189975860013617775317397392000732588458226577111062444636380584073039072298649314782487653514151202929795883082568858307646825579142963410277505707765843564371697593763959913213018813476240290918594991359116029566189993003557598085789145396512688930849364343736778255080762968871685086397694073602501822135559986694223210851533003971933859247322945574737303725133704246179713365613720106957738386873405296806385095811917654660485944560538661754913122746506435247924006186783480542431010355364138147416468151565900384234365588487705652731986607428973563079012401014053781080845958946102681628721104051666424432653309409077002929718968846501783939373134540940818029330790604701539109224782240958003846211167118583673280502011729519226509938001587430919292540859501733063983833140096047749168409614764387645487510772842516610696230619203304108907027781769678547459493617899572297685826868160545739724778081627555620483419296187740559865543223936882759254933117744201698020500505085080004423959359101525592611417148324261596834688061751666364834653965745787397447998161375350979830245783685434811985394675236054863676232421267116353086980065290714793400134492814583401690608527795367432842077347995407739711108561950529797473901559488644151923875125568235407980497108326721260780789185721819164734341363045484359819923975167925540260981020446735035067557054491445038225849695417174329319335798104109938536701142340907352130868231599068365393597345385601185850908559560799161431232612468639848621782451364806727077526577943945428249051045927000823997974986835423758291819953874956683956078246321800789067020477822785863112537073839885493070831226383527327147977320408697667081993315349287225341057685091109482593908710933962626903962966714714894326108372663201338533531453358941088898298036391321796976244029322325538951004721894814053203566141009155221190932707546703222050624198940117901347109702550499366699983218545605619460322356932335369044321657603828635203422078444659658845883969242482060938877221894289818516525486325521014281706980568489321649228107915480896761609461868348569147562935667932388326015702993184511203295881540693463333092988739626022231069684300619368358263885528921591770775789707362037641972955225617604166787980540844901634573916208571333369345466725266766825586761182298297880043813867055672423218734314178917978620187234910318551242321351770324048188488410483119340224762999897109672012596584877997924518455882549797353373433997015076520041624400292998836598676211684224905505009224748644019390413492394216117788101686166799120946794952044543266922340067120172954761886298113663161311010879491458677870322229140554915200865668408142360192881780204302448851321291538876073229423132293988292519031823989195765861225127356036391785209411055507234547245585051824565221955381199866070660870946005015543845886546939570575911462319346504136958162759549748599875478391237067285977899942755415499159101850625403319726953820545050320377074911960600178241821484814827837245865047488193077644903619088115055846588807204034846482578860158313122071256559102009850649525283486707554194992319724375818715629992435818286570467952421650550911095598324262910255989284528676427794678846262528536763114434705801521335477840879678634219890961625156449559835818603439733136034238782159844806594692800868222076938990796284012838296998230027560181342618601311132878278272890070221292290740078114002073721660113929054703934206807652772214803723790319836404982632100987620690642441023611976049694738237608011591524771299335629481762275722819963206225497640078934200852826835705596566877783459521312792891636213231067073201614092298288135814601711464431544375377248669496812102251429515250558524523937879223863292599541510954335214797576683134918041587332753903825336564048063537838808160645093123710817375916499714039550136590737626258803207355386271216234906693142818299836624925043782272173330654428398288316450785662026974981558148457672753024709000052737879628125127083054690595081285310073885501387745263186148419777650850928440962101682484929082317942195364100811481249326978112850051084415005215449882939663304614601379736438662777615622667535798413961648681327717797909048652922634768035424737320473236941134356026425979566228317577543891602569845178158097907217093930889073428653940032725359444116758918073824948154154164267658446628230676002335252502844400821156078499901103998615375857111362285942861024862231494687577590109480937796265998401711126392761019491785806225313015064441108218939895554155792566332633501023977895995596943337550608305448968707187027216557922798712070217226027266061614986002545082614813139253100364142612932916311737672110293950443513395866958202294640530825299331792530460058504753220763693452321361102430734924094526014446194417666729840100201911826865942343022588370715193129711546369932355359719791507149406698536481253462452028951076799578791421585772810198860020279416785930874073130225229762524696910794730083770618028317814115700731937631617459543592297736696513391768034857941366515333384214691449768955248351054020553202484742937850572087283196021592979552512797985964726601005679766352079997080021474654261240226895206000493077372080850600391017612878442698914717988119842840768487483467881247604475043719788357177897538960651923176602316280651013017727892979234103524863212606965221438841614038821522429451534450642254948566043042911602925092503892626791224766364591467960564514490651375464677795196413431947308170421683069473173068816348974998953707558185325541633513090183643558680820904432834451570453983103568467633954130440373402875190375642938771324791537644077853449262913511914327722289483831505992819216289687609227643241433814556503662504391658484258880033347355453070272148835320328070070135336516237745940675181521671751197132102546500772498842046377943898614920678339076483007875566603328924491799127998444423883016223813844498234610674809544537309067669454665778768525774725160751615347534402849725163072259633938472903112809045713501105754917683318890078531492976870553474434078347421046493407201668227543974261685539100918352220511245986432443850523628155381705847249771381516199358997026119049628101393437247736730189040764337672199679766782043968238086432830448432804608407048206558291124173063561065390415492716369799438859372907528505874580535512356246486956900969159633173187395801250037777881696575867032686704606091188948212061846794260314662681106814713663252855613721843943855393962367562983669994586306770608011012070295209561327171939344340989168131370222959638329522231392284776566443874331657654110010263728932693633412548638503592258511033725846252840875113022839201115396674894808022884107082716542609975923461216959967330584053572842073807071734541503293425416409172127916631066942407007053335173357322571616282857022058927675665993048867902609885252494856667071105050452402106668921222407521352283797875575393572183148025006962565726117830656576596369917738640010330833364020964082494415068921017099869825246214469802386231764361905312802563531051692864723071258392747165128172686854625415645520113134006143115544155082985337950322355263197753048323872123362717416533559958015478425720750993322482481194556526852028033344468987586816549617097663213001621853604087930457702198434661396559348133755217326501832148735415364233243501567439838738012041892534763083819490123879296308653634780882741424878482331064106859344809585866933293439503571904971637954725914940355551912961372711250279688551027104396197919520437205292579237277096036624949771069807170417648225341128775755359225284363924834050184345798980568615440914427738171718676775755541180007997238238599400550603617327114091268599118429948764852007676011094767274872898849412152954625007453846706728358300737519163477982604605885960121427244757364625622334156815181699873800326923256075390503020719927624335049328189856603065808621125862957499176376186077212794079971698991728826960710812475513626800241286360490958573809729755963102294713397767488055875673461583661235103687889299753456740109094561702253333653251269057502003104031121019357211578230054193714766187020911827283128908680316131617366661313257709081320043695577806040648600556822267430909171962287555096301133913329264836661593344893780764613554008227447034920370188168541479093189434582991966893312591882422785808578258599645121372095245211876781473104321122885637999417417983673073949754927684018836313720656704407655448033380086081300085231248251417476693795228761559979841133353524358930904394334303577988047286871528967625739620062081737918206826294152223551845583622730325342641657906104291542805165137733059002429811838716852373656615938590279943088863221777001917184678917440038702530587863199402356971945510833148599076546716553462717742678693537475501254182762640624639026933899847927289522160912262716610371824999103228498761905980278013542407884640592235687334210768842290383653554481097479374059338797855331522351837268016383027253668698686317735868377013848967985485086259376855799515819905652671701781340310200347483625969181821095973862066411874321297510431155530371671451700697700567788693109301612619898767959107131174597254426509331445448427317451593350343977444094509536197239933537265724198675837781953789654262453630886282860054669261047024769566079390943565192780263790543315383626935385225730163358700877021492228214262929632703998529548953265796691955326263104831285558616116921480897693040340634499502857701152510726289695191246579903146039016002317717043921519704839813740124608079597081263822287511219694979051229810768633885181715536208017399323860224624794013940511633966932301450722274524559831130142558867478169575339709842332892487629010087289782791709527137041082540675014664033355102809764992694909059701690351786396068088021932977001878483330817696470901338273559444383664494885598176471363115203413362984963966974434164923850031343318570996382742702515580778804341124219141970021453603986587561543542615688632817530162431780480578350931798088938612186945784720776776272702293949059372765314770334997629841903948629401783236156689141089151701086551107667465345684347928100791008111796392859881290159364649386479506492735989115503190507864679276971621751890954122443186566516758385917106566034339901872347109446175784284919650466242547570656015420608187521455542191439743450015863005308360165318385136460995588997625183281201035630541304103790046245252949478989291483476941241307167183483474484752208813568104175853910272084663405195352914997939739525585456263225987795812059419559579409832041852132536669154674155545084792268200145513123464454389199326909766597981411258619565855035568031709565686549075629472174024748004435595394675927267014814328708671851015362055426035565071504352207088695181957589838082103455063656674407376870457944859448644722998499221134406657310494586007895760610398296719190927193887240585780534525782641700133718119844131978007292295860568592976796048348737469389216434291513995649308960701943932403636798155318800583508405627053154669303835513651890517972573528335691093381476253830696879266519741490467453987743730432971733921597143611854500268855378635796909936613494612882252620455225800534713243446193239092691057639850638958903552047533448042181258568310318351367227657895394549751129307280422369234003877805664799111505540241677896920043695193120270771946371482930737648988886101791478308847864706744419986460217603093749966940348609493726630393372168455884865139470018686006564649266730412246297852804946208836605621853649730268250355030102010553806426124355453809641717386455649940099688134223343452451695558835993771767279600109292565961816806911021429965281388111141183642104717133315410016534322070051589578561925870345308353014030641101001732592388168465572692614606536536791053183044510002736723146223699770386547400233308215555673614402909270735549766501743793739053875125440027185616601338674793218013213782817139882969182391997043906373996948973661334922110147299083416520140348065780262187945125928033872248545787197587888779896985993577516402577179370379473314112367111401256043989488471362425110066954430662513769870791025199095551031601587722285322829736501371444101081069735891667540008458031274372793313364237925881015124189385299272218824044570095350355654930736227946014595032228227674707649592408298328917726982577293243859170004746334628348103857014510437408044267637658048929448745711899005103317388030302459121911361199228734827199675699746204633872206600680316454676635960131378852251848084427835231029379776048377304290757727582480900537665561738139102828847707625568338042261345557008122445806812730819201050047997293125745033467132504117463938529308324619730680716065371739735480241490501541969818625996223492714392112412066883106519858344611799508676403844784862439622606965572457571979360741533125913006555848232302528921676255639698425134004977718387527491479244455875347378266861063686392283049908315819111154211143693829210372310830421500654235462926186323539256880813200551717870293756453304795182863328519912871931789139233561628433360517005423372812945337263554029675159865617669641654234823590071434115666655380352797273284283781745916211236841864402043200797459503045241636134833016458872662984969362099476839572038441084501761374766921740080887487645431278300494844117165448906886694054631180530125321264187221159563055276454885889341317800870779664870632022811211314588364681772796898133126020725422489446956648081021068198712880712166548830718686853091257955226930192815646620200116781257475537650143804895332951630196915269405044941207150876529642129841205557380111568574480387791217326746268950294705897509285325619514322278136254604146936277798625318815681336784333803124655869654200677836642591689373885268045487467569822910423189201314358356498604071623003613358705262475161133565195085663153742859548841166035287334092545572191942827515856764469643511049267570119587760518989258701054155938134112938467488378844090137105516696419721636062387269398233825823532206058937369474157042856784328148355792811724390605941381527953261427669951629956448817593846423118495311456890847804277119210880476108621497236357334428838637782889198344395834072540209043367728753020223738064484732436345955276715579043015242303735037527938987809132754740881738309635882167392777819249731670983995591642565437314409737857410659723261478008532790647810828980992213168587207025972590527622444199599068343550641473546476079990809129071485235821279477712170845091622273172983014810026436103897427466954242061783405490990743533971332225070861557697798827635193048474803304669458138213226188471756327666519314623790942616272970629081696326236272875161941039467149261752968663558774538270224734843531949915754834216610057100984789125410632127958108255272396743965591627005694641208644472768237625087042062010232585246545543103630473436726833187682668767475658109288786369991111578502848868861648342250981177275716945081254704682863812622895286983086145183957688998233151357264079240877706077926004230963830212819263741317854933884663767565548181718266275196629429870640412408785257944782728115141615381281373037873363735803140775787452310381587955019808432155706206912883738017276964690171580410188660136464252858087409038371980764432847934012143310308523673721364569911340316911333367627036853562705514968484216825632875891646905642830899902689103714406185117912324210458826369086915321904610877885407780210833557392734369062938646774984096289011115354295343648043608196290309545875035505644921308564862406787899345541608417498813991552681580459019228555229829256406522064001152954270810567373278223113657200990417802748089123394026785422485908880595252376761984370530122386274816076485616007801800697761830289987111779416744098363333449202378850125832565773855399277204829422946139762637449984674737910090171862626861596806040404847663233649159786825024259791418076484332013264382361273800922042602251257359154460981121590001555777846274267661621934702474385455036124684867958363111170720100984398205768281600844396239463731197403101206716341730784467267448767772280213431419212215163113802614163085646992383627383896737757060489563400525137455090664739426386259239838913681823652518113389137205277566691491233353240508180862435919369874525718115375717773645381372340754007694387253134207607698060975902011866954094016839845138032793220476555503134966176523266854182828182013243625257814606587989469413761491788399565467532795915167354356639716034200211524928026600842712177065290223574175947729101431163914756486679504020448956773802230442112069619373451046996356648986050279769246586526172645957698517174155011922632611500920910819080968066100701550515610761358785828742004857029318790605151427055651061737265260891155643297210161476644503070852245501820692893520734059536868013270258189318216578416712950862269462823499698994361720510921467620027914118772629577454679347535076266177211502095111360349553817119927289412785816362749523471515305028475457831698785502192588046846719908611712910515079431516298213648866814361227264770894568151157549756942204735092187613976925528126752280820883110258693060424009493988327820150633977208229635533788425869258238028123453521354724170562713136652440345871710379638871766213741441549922069246756289275184878566006211315311155628480069982635481358115855025490881817642724927555263210861895962316235633431493084637339569876897338550728879545314420653050929364746843468759397802197085058237372375567435143072288678753521322135830874298128989628958686446100765891470338032790471583412558892369442930665200238005213074148815079728336064670845005364404258356348123235718411710996219453987217310793782907934987767126909354467995293444355647616804762963473306900098542213786868722824798285676224051621439076295694712081239600976352412585625121185178378904784435634432730063416910903047175808729305475867178091135899770970317136567412247607048742888740333300733724037539504181107829688037860651465704020497391904224798550555684006379195494604412711047765496776001286692053680806277865209846545965404088285012967157972206901657919321922633411096857481458811106140559854271364071786961209020631644401944505395970038252481221807062151758320929262492841585902355641799933139773893753892510382267192822017695917675695580176658667635492929450626735382690104778697682289830096988466235588261848694412616296834229760745434713938581454967918973396529359894154468606820653739084900211623333637845900070632654734451707713185704470430109157667886416140310383060792283318549609485908442891184468924745509529434009915227675207636168258489481315401430339331088503605394303467109295806355706880731134600962358940080331887621043055888928521729713828332796706944401893470410916541628353276995793512517094430173582204180139425380316020045006972820665831529279353074520546354558773948849761122764871224038257784486631876716802844973397221570510694990201658159556836015578739086037695062592279314089018739188299645712257645476497077169103046252622854686620433159234083801246123049944875153432499571609705004606716245516435561955860683999507251436495011200864425212622741686167786714746093279710899564363570553998161345613629707378412276241634550273078055150468791822771146795815612413332328856191634020031902629765253547070410372209546252544668300550383410675542114111311458517507760154360282137185187280741121746244501420683967699543400450576868984604411678022810459052740617594670774857685267201569116250851450294186042292614843204024264959360988062994497312521811573678214842819696879299980797261020888979424719816328801477380642371787434659235642959902033705078159729435651724550069227596133528516638580140115285840746431854145572892092046889324696261912554796094931369841175977560423004643975663089712964261584538368738195943472007808238194584440474831159388272601671271240507895313198413956063101891313669854792125613830959575170773359944065167511567979247448284674445594136316739217329317386675866946028935812269914525226225539079439558356007971182826314642684004266389120345858045539133306775430703221475497647177261198603907347662625316864300527245802250205316543200659987021806554469173675984410557413388672688818648914056296371744568332422874452076268183592810955089094333671569129014453641593412931254310333389124990637902054085007631053607714565381226238523722218014247326762774159180470293446436772866182474085234241229439870628607165488953113464983873835020688065509805566037581293692743396244110492133000628855476717466098811034164287736824739202835296847575900061635222338431360975288206898915230899606382519618822388177409553423010336846620738803378661782870506961548468293493182250477095219140966648144424788746928535508458245282268997331382505093710107399274930215884535927360557330346807936543633459427044468731495233757233394764693745756998827838423776333187990868647498631565746342723997343318024207070783541611416706590926614967166929579315263453923725086497403559638508016341155440381404593358387959828899461784267614254114746273714166472732801978125020694509260613986642953796488925856211305407149209657888099346562444231401157953142074497540187624501232818781094428044447199207036965154496364218061567313070689074678390892703907166824426163487021080703433865505250876879342600215266893672920806585534558939508959322438957907719293894756330908480336790370826633090859545802350431962236222054850732987940860900110545134888053856398068119116355725115925730665721838999403950525048939921607001116742734448118884393118623975728631367538954358421723374448772405998433561255587828734750919158255187638705189761511615070727338638805803475658489953318742002476678553000742154449163173414615003139220632352320470888870932297022319618784225198447190799824848283002698952186727636785988566315593774268402918994907059026892317714959631540155724286635778150201388604571943882486271055171653997238566100736939334864875381196950139736431187631262682980922970083958149287228785540840421939919826379291052286153861728196495510045798341101654184721120490727853421802653761631162148227747407654362619064869838066218710813299990406507282914685308515113212953860612275574138638598820543252078601710532134284693135800137607725463357691486598583352586876509513716637393969132351568857306039045246108174291572830329677659565777218474741065451886670322198374269401679164998943574234777910155861677437150048738978511057314546289945355293388289481726150573975287740028555021501941397725959790513877268533375771769998917607940452796810453242301429097106576992033158561019543152766776891998323549195303974853149661451528231193082322839713077658458188270409880913517544593535345413336926489820654086352924945878443772157755136054462723917940352408835598204496937806425755180940300188805464032429982824366991229108842310725596659146829981821362210275370285064828912420480832342521866610418884924574151263315532286985721589584223875249970112892409585005970875099861044534581812377611766073975062362818795240555221136668752578713575153760828886209251649823203275745540425801190813518893922471859874790614327548490545011013278736760006044692547732282047065192228442948774008732545775773721490576546968076448899324114781584694571233978366021142388781868720866819043849094056936721904810219975817676477277957636334336000040911710100889834046974433447268943643956210276047471411806143579624163967938294927490116439229208916185510260456378864614991205552714311909835052513665940244695143554320990343670916210814247419155674923993385417777233337740396120204274904370288499518059295911310657908128875089949628575563461882383188139784833458014973408721409487721233506363890169731748085176892530574903959719197138501282270905084293877476453857981841715637917570029530103079023864982871599824247762144086384985942695844086160201708048156702390399059616758210275762307703145371128759134847619163237175108561580417428374515952735326279282002466439350071439608923125251823545382457620192537911359612426582580183511185455067431928103609743186507580314092150944612786717244917692104606701685171060478482794599270446666249424171356180239979833559623591106298379316369178787301993149433187129207812325193442668125412054935598740210276860051151510880415138437202937067346024367704602235940993727715999147168166231845571472936626411354143705020868768176700300384789032512417276605514794631953474912687413495241518911056920121812545943574950177794154810514370702665715816054614130994352839208586614004240457971067635791215042070044487854812019894595092792547909528456998571294816163201226449316304169633737213912789430449865267364604616505348709723918330680701374548311130201971712006123098090889772111828007967244916372561822404430433424135821521437750404633882091647988541175840534751529228917641113440080886648965152064012266611563211938737106459499880812622031299467823406442085781073609170258015187254704597623519991553127984459691159040186919857862834892972050305216175041997970655958846612657758242373568814183144107388438864129464501865512818363542570375749975734720847303170106316816638291344820993324053521836966777864726896892371185585356883589472521134866522687851919761959726591717457781444257180696039557640293526171143103618618269584016504699665995676477751831951382123773261118454347053927284800468336441798378642850867457739536055204624245937850437456341078238129405540359981483052932731082828498199283833400475089433231765177540383853375982699301828364801325837467909381249100447035706409167638665614786760880455307281225844525153753256275769660214295983119843960247740522239705924349569557215649319725088106343301570523683700458977007582348374894281917667836070051925104662961841555339616570204994787173502263408149810903431178236557577617947782529732602483763598581163139144334199616286594571178102862437787324494987315209449724722100806021846438351377185337184876256280804826447576463796180857905838328519088785292210267648325818870469506650832492810889881005922194793554178178713322956010497761293866428605168695546706597543601194694002276890149650835699907543171683777027189000606214598903549831270613538744365998362208853768105407535484994563133860060954802682297892598064651005593116898144627755259466729105841771214627475542953989694096750697215349097895250079446496193707184833840159864765329361847301535359669622473020580459821493051608894140608145448071320964558528112197086848453411863614756233007853695089076858869704714033042491038763121981269677446460276636835642392618757669629857412912682016254469721634513476508558862783681564746925728931662928856002433463058115082722315810619472447951752800304748425624962619653278096989589136765208327901121924023868257161167619174251263456693142466176798939653982177612974061223904098350616953301616359678240157593044191478423367905722309552165164329109035334417223591176468720613225199104316988612188238195066652269301532997471650757609355272161713931494081886720661236612201023753171459670987927490137825030633837585066837957243588414348050199050509131855468126215782684477691178080011346109715851289902397590698481061747837502868460090696249908044275353832369119780276483026149028395637714025842995435149488207593248499607288431052464308990849658578549174035213455033923635742603128054137933074095577569171855742669406818192171851982991801514740908173447094884114933507904087383825931839624784810938229138555694114840662727579399608955652150762123351919770330636850784195024355424164128615388718298116743989842390368610138516321260496437050795676499090925389692720957854760860464699816857260341126566511869859769603163969092494129276928071072191592813045066270497580947431923175900915878593748220913555554641264688989371388551096947905283715671619750743018196063446272975998498148296118188499135204651036438927115134957868832071753695914274515716060574627676978739763386389681861926595037154394460040978539848784972177919554146297610821764193319375452897947406433197755744502737260702617376242883890494501148904231486522757585979445206366272941375317983179419756267278153643258115392445621510537037289767326723788009132832820666284258949672842028458276857687124759197032674122660407348813012539748696371076400451572122959779712413965227411524004144256083763959088944554633891504723742561734976845436440592638121975895100073568874496459903492653092900771560546249183572429852694091152337133794813783751552191559711050788612204656307291528445037926833363858621190698645373846928265508490794696941435871522870358415830750276592311254094157282968928055799612879202589957185464135776287467547337123152641899498208421310390982164582275400175032218262878290830024014334014775418648037962695537648827420375286700184678378729013007307980237645246482600121174018322377682310493735513252299716374161534945229712989078347928083661887105864462435837917743853320334734064322407001634056588742963533518112385528664450613596825102287621179477380330340595810529529758344483478854848372590906761517055666858145735254890695828836362780171422567043893980102102490292069144635623222236144225227253750235525674455596735173112281965387362365879006135629335022779556549445309735737842161632804112190291988350519799622378408256464646689653604528140275116236170130853499495907323070714644790734660674946684696685906237167521565391235822293054632774950724680909989431592757139312381928422810645738837217996529011182751952648027404323084839070898273588013417211936269958643180099313392526168510367740520211453559841537777722659603440350470309189917846882266245027372932948385072941840813217446465646360244952973291435120702819169775503771552104201671544920754795839822095213917479691454077344643981001938259537946786010398820769809139158911958959584568436372832410670618777432694891103772078414258587754926010767829304536513609395794119316835779573929331410043582176750062950321469550088188500558345712043455759806817448152571086365287074631323152895417789509091936662856283981887612557067879792909686414812281557894363733148283830806177583141871559884734853444582199626479476067554192294992884191191504468263889051131999977847653363268626544129405565678589716319152158285839862719717799880415702105731454723124413922988071770013875958704724865140546911192911445125971827335589982655211200977782222146656148698560415863028228909931959687898738993208604704077743845151758435118633649657673230073866815146575106609588686334632094301181176373967246629303938551024633723981671266928910299275425104943694709515262543591870702565475170691919624983628154123859294810347065292263897620655616348914365785378931022310751305516400677271086098685182339646329570660318697455589037292241432324594643495659416158689492162590920200415720957673787604080464313824014594558625533911268307836800252898023969748578747653152577565423187663902969460215768729402886519523885221382823244564945475189023774800505271357096635614657798159783970380270869782090585761294808493174351868756272649924541844985367024643512479193401030997055336885532378974258363870140673792743500973776581976873317860489297006580098821602384057168296395656095703177043095682423911773784245750657845997926697143077532740931633588178769202144081796113565766930381346930288382547978532480825604678303676475688653906027857422907589176829158012367130631582628585497040494486160077414382689289498133334818226762496848548851786989841257170802949694701849980403945576531293670054221895155420149730413291354902941122498527874687995943935293774169616021858227689435673476604654926939891480381800795360829156275851936276486045624031720585863299879104950775112598867863670683090836552430519178732379023521377781590330632283592449421233405531435975589817232670923433008620305177552840822358791069788306260255395684114260667209295308742995640490926164642449340906392916814078276887002713280529873522962761502865328905683945719504940808977509961148456196509334913314910887504523693739672717205062543718579694056771302790351879246260639778651578867427819534781852910251409027990584258047621953099713527577811650908967806345466951914300536206718888447834779260959573797894497531977922189980443413263535587480328392618057715592720368937773655638426511806140241526275597003623725041359211392786082262679935579373481042036919757851288042642318317944036567436504709573282366952221912429935901455737069144584938501262563474859991500585030656473251548700143952084101287186210872705261646383626726690558138903869418985508638010387538046204231139807976162130993013918227072646387451310743713173950259290418509070256782532027879293537762499370393240241316716271000496719016215609899494636202097939326294898923957386211391114575526868615811449360512713768706730155380793894056904045931818896505270893739040695293247734859572172004065700391742096369228986532861005372344728398290884296977326069145819804693471855816239611751807882706322770636845076361157837545111887002681322245864490203965104174359017442646880161913641210604981617454703746537539671097864365911833792234751246273936046669747667729780057528865544202648309192967011111855770749578321923314235249432636678765011541022327939856108299216184902634376132783887961129230828816898925487580030299871720222802479404400267733100592003538513862070959634012142465967143000685704119241218405126433702514260252618652283326110755782212491681507310165879337004845326278391340120625455710983486191512114978800913452287927746905899640410848717934109994728176827536233728759384492071706431443030369758582882619099099401912539490459368747128974385939521673712647507648456961596894949843156401544152337645592310379425584214643885747578816944673161185086899381373555695428811701797362219986999556578630629951456765758144323303996376348680621444949183064040268426347821454900219322651262540349739779629735464436819212725549673456630437053990770020123317060264033166548265376171495733717718837320571657744095988914674190974797010917114872112156971232996932130008956805675971532973200332122218607778622824686539272205546697583184918148789343968006390892768534843220116750178030846490819411813684029610900293385771671776727386934338995956063399100530518864440139774681482170065309447072127010901607194094263911854740282360476952698092933167627942622412238738350923892826899303112309990202428376564944314457335570693394384256108829218391923172349569286893224335086098127479358395880678868783632309950579380800297222801702945027525101570746908020917440762329257341527977578450063072165821433722321038136261365136466133432191768309370483159054680312866172965136253228044155886397341096984070227389514695127078275547396601509466123971246988192711198544960925083695844770095066026557871356074791509946992128598705496742461190228204198879018948629469409193216610955719456463303485048454305504421927151831763716794992935265807403504645384290919758129034292274617336579317790280928877736229185165245328208604842035315609118267875271251809124753272824185714156695405878509613957228786023875745738820552613596373669965411229208567337435216357612049419595188483586461343807482811188409880286467854899280927809616955467226049408737837643215149202093658160074016677065847176527319856032048055847621385001733751243321532425516712427499510480089625416498823502136594379641091678079649015309403497692341494507798696803537156149537445467152667741685900253611683697678236880628853473591570107351414264580099031061241578077569086459226061765829491893633328208088360102453130448635484511698640630383524535089785566117129405339864540547055624312934761705763108849267985359067901721180677210187818416868150904267088726666697645464335587221867418531931177719592565590841128062100272657528003047231359504979923642165157445409043204670747444021731461975617634629764670457704573878637075844534249952422138622402098105464834294625806982453207095305218462705038910539546601396986338839338386639831220026604426169570636576498019330301886731305321062439711395439614960625485640772624122982729495801785177162912104999814464034538163832734989191448757371631016151150106010835454409339965849779824178121203826041994600965205815987045431728173560694407723357807928568573553023867649108028425701877071885780529815515828668591923220397868057874277439456356952718603760976522855744528271936359024171040656235365739019988848659395742957136895011519504974235325874999012413069643401993332701227099482518710429946592845580741498145886453832827719987412035630138425103435541213220964939647741323363190338711558823894809255749034976040541309929805750240686991677897529639043632188282941977409966867814708120218705693701426722841404288126600297051092371618731074714968302793036459417089503383993413995740776397550429837459162936820490898463389941004433952155711463555517647866656456995718014196557564431483516647091093825381058097295848784372739705347400131815905808450699057394491591944000295034563324699807999048373714905675612057045462581436389574988189663062968271838662529013210016945981870270627661739699601867080694984900203615923582433419670150249308667644362242883164716639938472405154430147773300755576911416127656281595169596571530364724107149442001077101338627853847277209227563164963509948694005667213044203784946014084289989156975710301951700529578848259937613481484750989861738982597332896833435493665490163613769645120317522814472465547056334565130748029796167799765113264890183629359492991193844220732754243167744688000312785450744823559998066193382773272193094827750699109639969551352852018584624329131636230552115167427781048084317007021180271042890075807535270003914358068870410520300786109759318055298016652991014814444351969358351070520541785983913962014765769164095140744333360513687429291226000580626734175872405937520654824690568712539472616456630654277828409108517600010850764850970288782852959711235302481808953700906195361084787203726839377884945996142731933851698825199705131896212337768718700303818999335801724926345386398480852811321298949346178255865290999986223270705544760410964318604830791886868676507090970335968825468804455538374696610716231079217129525182431601251752423988907858449702582161284215202266115434035953207786834935969857605727791102360986297932615160654620281366457014202791813113580435990269823201114974139852900539870889676999561075601468574749067022105895003786768746101615479895640219784566740497043959066027863049600990722567951292489071308220235428096271841247422290299307208305717479158079898655409608506785545497391309150613692935042353969634175587627309556658517456479113140455114564662274881295105053232564377049451988217155778652387739818238802439607779478127135802181040607272509677481577088401390823636722311448279933068020196575316100540655846306612227776776270108745520466465399383218538974224067540737999380309262781847785453681860452445281223449861090611772140149105458405859444308056666742349413887753169011806179615678621127491509474721063512914110137706840018144325488496867437712210526949980416931023629401121247537539873235262607891989034782412791260123376905136012642040693320684297967693619171806243098852540618070447837098961975767424873023005736389569955961249824448844038087256487176092784330258261408391043529183779701483696051465682322599902326241706196221102277438402677818674216900440804318559465339148594419005931248718596018119715669795532089652553851966527378810631664735502958195582946230346985572015380986713834828507524361102786935110849301915199546726543315217201255432700466633408638645178463568116069490759911956953396267512937725675500444635488078984771313002596799549127510404008090543429624638617050613034305944709739872999562301194928289966417905945159619353462357430635169571479406811460875914155278992134210939415542321415592597877262588548521661336977425839721280115294284654943671824576688433131490487059600087847699689803453232360487664593639883287819354601084026009816901398515262964736556595389595953838874639699993361507752709143585908164598886364780030126113168231137315733872337784019217388786252492283643680539422397128165098194074530585104422611850389396066817797380681868860619361815023977348757588327209648942383919854003934727677581337272814105143421331930623053302506789333677840001679197567215795197641851124797371532316641421598766235099990626181931333407142153270486806900969855260618736461170671262354020040659490613594834169110742694679235346501938362859643985074997437177821731317181610990507006461572452715626152609218243871771155588007165926233397499905196179965928067787115047914004397677616034085035344366600884853677078350789577528621422318181634484880614091466997745632665580723383857642746205110400565336321334449749558563542089585963040249248190120534440445166779526279983793272250066548936497030795398527480381704047327388879654990674047799515888499534928848504312259863528998720322671686934512477567271393366862998164149948643063331378308927712615435756954555845728467617658285526923538537525932157379279488487495385270660911666855692588264918016756411157760136718143338650746000542877290198919401710620253494930001152915619317529606707859837052668006726098893139669300769758919018711765596478256179275615722501998828607669997362420867013182363834843743950032545748199683026445549843546443028093982797371779627813752047783541664532020720249946373484995379656275455423598566828008254285323738829294114114420756794311324667711539420801698741454749550748533650084197915124341235288157229348883336009506815837142543579464307976874550061447532992615930531592744342390914866423562721067610106700143170638269815867625364063291539577731082004176887332344221474169882260695085358470295359137129792149045967337025106645993895091165171302884659331611331182964274417736613213810571576390590119514406708931358899152503926076973301704662978072122976515115165852225770848120680349636439914590675399492280223584005026341548795760974477360588274231238333493313614701464095528198439748807900693470889279387066867455439860800428591093053117239012623474587572609543951457482177147061734644721785753869273971225763582721716785486702752515275963760966286950267456639702515186184347510577053403828123849242747803026729585328007401347678045698497666058531976159268510845324331007961685272608662140510433513766726928197791028634165575184021711995459274779759388568769053055700163398539359192271786263967901604690062329372124091104514913478998570855244558022248693032983852557053877440303128271564216353764700262704929380188864104280151765129614928913346232372018765739116476056337731283867258916361933049122432610066565333616112027958376664854854034406481943969309549727598375372188534397550605510051788274774766760912020992492852345092055374795169716325318535410044403106600330963822797426743209461723081542939467318891027355135710839328425519108472329334905517539966584092065137337567234570439735985269442480957172639642991146669331920931714209724536769522462316008698616818258954033457188941165401889070532571586452357382751189757604191810511694486151609374402389931116703815207270258938125473811152268473458394971334341393277846888693350659518877518309598880285575009974665132345386510995872354723153322661201088387087814612481448415284599305162550318173633401986306476163199542305921576285423602561987365270223699128887551311744487790947304055707536732279174568164825052515895053834411653476415650034297014328456324174087798699266396129663202336216053899031540003739777414433999141163861023080060712986482816664212059040652292042052546475543881345200009687592124381532783478365920960504196723469493220476435923048700656760100798222402776277153209295132759796171218319518452172211599221786532340372614495789105800643890999282597714956598908367607719499600717302910502638718888643534199093724245637661320066568916930435565842348274653086466970719685933342905409248527348054194854999344466054534194012732025105729997249512577458273852395361008250327750572114839329167643327683106503863801329882828270578264827033778111287844037406591924099714009619028316928194966849578084925229132630858621248891820475710647298710801279077527642651584870439834945133165462012494450452310885859966183948450135188178934338047056604226051043484088718158516230380371354787013054473201534081675522959146238237432407809030140236027808294544500914868890710388806359121415712283474168967028503894135624513089980625561501423852703992906796573404891801552994109082824697943898536483098642894352111978170725962515428080941991224273057382800870590593223552003797037464533211868292371496556596254130402608560216678640048746237117579835689011442146330902814522041891661151303621737710859706303335642203432348427467846401316458037066688559258648510953016831481379733432791999922345857950321178379843603290614961807907341079623227072206197915904265650503938382970423256682050821814865170360506882014955900841056910827830612329587320277181816368648331313174270893750917085680021050232059306120051481400673201578967820907737803888420761293499463593117909480538269126562158655474304948316605188513161489038454430464676324923322770791103415224564288481013137992371317292605181859865222836697223594116302046050317820924231264938168654870335694415313179737912227156421732728391581387645264293779396625933926901322512237834796455084198743428201018731866355197401250089035070289922724408486726838456751065216538859038813254806404323945934132053136454812384794956530483249456697835883026459363602720835483002266882418822658033316264248389943121242322073937298261829434846839834528131313438866669210969349082702855503901829518364279283443183638448331283354600931264286705765446612697887440583970071601308993311523212407892166049283910566715429551184662351827639742226774791242080471556310670622116395113855740758349815809509313530262245487702399670287097388443380893094396290392848366372651398488270743200554918518379385849593797570843771053201650884311146280102624960276203020873942727946575439916209371402760818261815079812369259410954992742334968150384345385057831616822050274557749076687342400886258118202420368481495748111756419467585849368754444024567463246986803708249258688410566388922890362646330484917130355684102276099493443945813180328236511744302157950379357787749664797129319699006740800369824521973947394010903548007963065851450951990602458310671609663238356053708590487285622735311092923556498153420038241104491217194189855076727348526701333856971412916454093598177113950747521803967833839931623313983255317781185878784833080284869113820884320914277648909781810687749917286134325281233351404428794300880191643359845878293630491764341848007812588493202219226410954072548982574636800320979701870150231816106926823562381647484406685745666265275305041768902058831364634148803110763556162338948001174651563333504666762687189353541691089917006554652680249931027881691598007466797031576024007845944698628758132560175696964255633483071513182262330979249337090521400990381513886611685182955207422947839308356752580722604206109209548031385582760637486168179960376672390793850648812395287772667115149906158775812962471108620909196920082692932436532852318339448626107716879432543189497856549707219450812705551106782962376206064653803295117903211206807732807420881240730298874554443896469208723561631947650068715743247520753970091898142415044269550383051265783017215041214474039717215006760165915028890632243551799022135558745145126696523342917611172999285263701493249026874184271168512402888659635194291478362700111336406485264063387662156892800593571316006137158954068638485568939448097370530384132708729564038503080216584990195249627834997586546848142005672075410446334803407528903946385946975016587682655915264792820327075721020496411904716070656290090785326051162405526637723338421421026956312599527713790601288334035332199517195013296168916251042272515271295166421890268654378232920654578059052491361068025259029713934120392161406719471428443447157032662906863078178172207503018040967040709326314070372442368745767960873939686936353116649766627828283821032559722317995932360553026183107825965442823312063127530102354310972949983162235549846767638010719998889125832381795366061373318694111126696207588006453058216928208241314768670480231134410368239045161382966283801993837447845613780337108047132449618140348464412131203209855776437224646031590232456615763665374358726700463190052212506761448548212839100948709668635661039661212084846252771012726153977917658488664766190892414001527103605345156354382256706043073421157309623927995411469088359503156002846872163524549834117589606320888232491812750858525637091669677543309820729970224860353819517711798454492318363008638074717531510462003980975371414887458060033222098093813118781079997328630254901283855206336577287766336246447529275162404698877179545005159881515241780070897865495886942589835913982247717336116702301701823974229731989430325459490345625323329538789511515241664774393292877436922491567537513490034393725692295024750053631367427497037859393846423701682486463588088032424737823762388380859238864142395739731169115343382054694796583977198888449030424001444574884860627631390303521193965982353188029353708124774780742260618976710274850171580544108066768763519563553458676967716982790172081113927549330784728209657545044208135628470486912635573484451387047872906300910387565671573691037248298840434730919459568779591932706676358788513687840195734225613758781671942573262100756982346294994976989592156041159588076963199622729349022529403168929838411457170138243926692701130411224237947308056936198475398347144889703920079895660846273523125463149822258473548390671013628771197355963951838319023591702843727984608101932207669497939933599823636225095885670327577147852123947894301628701518891291132740003189146694501067525044882603514900628454270740871340032794931632147477452098634246561540795063894562791299477731956720268925309739354312175506985216989044114087155681732844489531749932043699019846384680296856877096681744525468202911648645960236656468816883696498071960211580439635788594221547239350800772931148090186050893445327897862596458164335901457240728770468038428768703444286593986742926772527502057124748536046342450521179762558930137184231166345380361008987754542312544482073122965437321972238648816538911497815716674676727102032307895291313764974849668391222705022119007289734102167233424961720846254836363495281350193122789311371846967853041571855190935406305980146514697177138864315603823780210244396178785977964630556498376249434816269057136688993765859559106939580462160526132719154842503756435866446437154601619702111092384305979357350092679850058399800490747839473935889517549143933914354699543826869646536564603503900211694680516170632419758060115859062881809752609045830316590516501639681159069925686032754376261408151508774698891795145645029157701948250131010841648675633468070561091518792176324708950437461177790618664717910993151845716421783235631850392399175256852560168551764178417507865496064137691827495603534123246210247708652370539734729569843713812489059062195499946018414919779056352123696420985223021839501194502388830383746679239213854634327725305497841428062435274600659134800043493324464574080747325533003762480303431976971388052006799344158278861557284934942000631495150782102865020934213169333275610197941666793544090746158752855186455225775610937174874009907839693095637386918542009084684345696713599907906083369452548069057655420662273814426951611834945742089709706674040330349683035966063918210096960831976127751971424642896229652562363407956485959557746939549823118661364838463358500890293152883188496972054777585319679982144637571905548047346319499531313480454147260154005280322442321979898915237066691749767194392447197841284738083718685127104049399125572946707960955564841077855973178563649324067210018528976262801853668075152787440866191472965109122555705461422266953165389974751121366616274642865282358288579050911441124066093814634971112513447824604647675098249325162089806198525835660902657812112212821643604086886320612190472647458869625396065193206116677658373384050939700969052477385484946034131029083868834330672787929109745860777360179229769952606071693797137914349431494193319711680170854252651335809004735595571618259233344528620373635134533243004366401514284531060549707788101080279334000992096706089727696839054607881353103097326662392534092859062298616100095471859244024339104099064819479625471106088872972998251375954979013677389880868714345571860132471405117848792657693705346736583100182878106281527099506753991840819170043939841434345782747753752827454439079362990184436456458688935234262218449099351834724427969531515330636810097528774528407807731912823268953278096956076124967403983922393695879017370344159039559382855495387099877271900709070047325131225253345762795631174455258003361977631230628630069345579220463499050085223542307224098769115033898432062412997228391481792662661778831633341093699317156250585951602193141889834091364609083023306953638633802549470356296369184273162330010006980448150487767736199794488924184725225770860745511264085364171758232683459717713302193861775306472028195292144404705300069421337647129267038488699107989337993098549622831146906549762354764297190135902174406519350062002682165439667876544659413618072782932493730420187921373020004887339135518301763517752249054468118929319163193013070957079014536440727625240953709017353620960508813270043940950682814691837646989583035582546871598270104699822215081423452788178942753858650331833714145460306679894050906048287627068320304224244432781091679581709677310125597322440802405304991351873355647075207472685774346303199026686037407583564431805939027730869126798865371467536497629112841273639868022489014117657915838149557674054771436157965102863289271723831899129844907587137264371977711816191521779020773913273555375684173565607461781337343873816528165247903681501120312041195293742645241400011143550162398462202923269623869678975490036552922357514807945944205693566013283424646347443108246554200590541609870153571346892977428669122072925778857892424786931299382791237467038003245650711354782533989999647804219854461384745051778277227270384214651476690873187445149137401281569410990922913392569076583070073398875844030317135875331811516096082969553175844110568952132836105729403567324870574484377096321640496229302121794126843094154083866487544241327763060313442082133235075388608867002181814963067012391983677941430538132097959419830317379516568619915814784414998788767348443349681854598878929891338464384964292720567435945295653671901130181814256451086097659983560806347946926734295979553264761059175937104141246305372013654130469567195347637762896319655564780944857009535481322277615954963624585723725967602508113987928631983145109363724734663151729240662272360220749493506624942414510877390343942915742714753373423852461480193200613881312784100828188895304146373689309493537198762373011385014537643682275713895824952536865048059702130608358760771149703785072376403660744087186934255811499355497851886576960156400005138829736775585521764340226231816690067838335954251231627818232033699111517125494803575461230106804929066206864116728048384167240708824490456394971327115467299284492081527717778351093763022986106371962204517938386318841379390008068070186924794222792347589004644334867875159934558088408551819766825252516193308147392709273751447228681831658577498088437440618591542196198231022348130031321861930690521679095954148995635622120805376316296313864302545576773334923570741198324451651320011780339016571110413032499356877908543401155168317792650413061227788498978419342766682460401893859172001922877236177959612670583800182915456602481694739528856825515851069556164256382446368948690539121027676427022725168024474774171371724918948756795047218518510967953824956740267617678653095126318864903108035156693309959660023509691532150843470655612383395507807279018296085613471637749473943259208823778373405258253364960679501771783952559300419948538418193253061922399129149033235350841398666948679807746467559357745772878537747853899400902741795236291741170783150410587548915794557512548131104744787792711917610320033551500541435212626649394972681246532602384737315014879836867899897199598259953492882118224166067099321392119806241788816743450770841093745845098729682250271021819560612432364036288961083934713296442828912115470169807368360746018273931909107518527359411011935216166368520643032444756359699605988908642305707199232076559985734668097126186192567853768438818211436512369554363680716575570106400518886854644705007621395679157818573407654282388381193263525498579263739132313196635089801082812692248723564060847672536459480793167783282151629262087120693972219629091191412233179956679269768217509718794142359013135950265854656119401722503954045887559795686495005884878273470036668695164967184778744468657441319354210229213634886184590240159009736137190448723216341204650591232535837931982597437465730534805130797370641890429599366993039025052809210732708944884996779518315354099710179868006108717398173994342039803073897299241805108859691283821966082778458293616766577878365374391334095335256873927094768729801110836149736406506325767843278495177151392266126633092929477597728174746708017913441153758693616652770447052812358271070037415691652444828266474934152075152144078632492407615355624607632597301342912807204813966657473686700970135411960320198208848669983355308445217554357491340011695424212939416481317262361900639164711806960232522976885807687580473044064192930938737329769114727759036742772688041922649541134931901634214218773633994596320485404091942986282371608130871281943990177345829436323316971156187717976512379741528544496236986368616556018755965962991883681750818149918782480366108365578428655820745202634928208987648750769115870534275563902323364034805779652375220253138665227702472125771877630049855209397883205638632262765106371261242747323403392115368573319354867953425091624915459523320029297867464920247155974941076625215268579946327558755534565211175752896954927908681062609244129271876817372058146299493683459003382495744086983221915509147089026493903942207959174651069907520931585995677727676648075980601752051849449661750200315956854667601068861387501167067900077242981198782557807570803851407827935790894661004032063324851323116586808739208162275917504113369521881293543014903025177185052389670683001605199409925328809148505149055966312785525965346181626901647101089799637588358315814108534522955108948963135344871138481886089466118127063251380999865003898692066416855132664638622741394060878497368229662421310761375127509203454998728753452373815755119818656170980272259917591997534778723592182794418214573419638832251989298002225245429472890845407485521065120213804214972463667625849499628854497541693737324152661456186766085094467136665713043750044868364047896928516089277585045215183554433735280625328690353408605876152014035579327938311244005913653514903964417037956728676912762088477473928808024138228029187787732393601748814294357300773288603827170057651583778279492954761576880480915778987166168627361655222500825216429490530043173451640626046513949010961999997524437532901712412239280653765981644870702394350464820366044512762158491942420490248265297131876935742237875369338042451813168621760000435141275669686494070346125728758918435576016386454659567221448645333533811263274636955242284148289855780985019477679157579408294903470398284473997302210764892588475194833555276352259429955759290851975723139400303397334946121213541351065565847576418463321174515144081725304461816655620920260431367905083237664838488012033724610113860605866768260434326097427328256285913510145774405436422549246469425632826190944617189019841243677792092286296047485260858101649207589887420436817693994370575146917760853531189965987208235760177745241271683292602539301924532294929228523135947456110323007856947209782625990813429769100787855304634733500058315237539260339030923076639836059905431103595477566540048909508112354738636102866166266467711408480035672997588387945793592784175344562847164314378173305786094441732955315107051594098389745479914439606317688261070062582117885682630848163747205807357957531009501176411868067393802729658479134454237386840712815233797700351827825074758555626334096962648849203210799686207892672090267456709138192427850543524316201421006304796887473875808107022030627757115204771602224872838782870899138620687192126950874979563181797968161846502826191004690455783912617572477193943575295637810507396970690795589837137933532153618212971069040689561414896989822491159755556988376900876713944623251757043136764310827507648935630944173966378318471177396766817399897037865140983682650393266616238786778507040820142638723332203623630385586270530447925958874769486826421442175595300702457145255898246466178541500958817392293850160960933604613764994287963117646178730799591555128019410011063834236720077384007255644950211084369631360908751276449709331289479638186485241895436279775741288010888771670508222044958277796947012562456420580007589388000176683505184511393102535133146265767360955436654501097193751789527547453064005363980095276547496776489903703335935162822084557329596710092522078148094852745370723790520970850079996552252801392110469000213454853427323611621801154588859731651888961573447798375313245568218887760484458386179325044828548671046716998994013722282139314216380986432620186028321096409442732432932952413704969299263906553679212926490614821674180446095509997831841575847362861691825172497128555647657799733864421783477182216702425975187135144081256987473600892714742339657670308093772945440774500137942575112471644024638656346028584188449906199103787109393056084100165038765998375012424967972845267510386058641103491014202479612546409631318837809697571003773254313397254688624441820483143289844689544698807031050128860653560505569473910891220650633699976836983218255649619147057489825527553631960245272821857231573072142604148184507740726515008134905153741053045060361719561148480359025848735469619918457757021862831469028415016023475654435163934007738389837655884550180461899169280039759204838266560285064977999714945139513357279710087898865381336975142414740517031454714931725321963203678016887446369287063303688627326011003135040963998529133408576330393955843565065986364948843519166405454476525255523580238110650141969884624178876673892105437592494536799643152710113709780313879454562027724905894916094514905544016020500437829357355818082481053929040286595603829700754927345681333038997380951083215531127282324430973690338856292881004807965704817321968584803574967296795038901806810132881514712346085606594002086104377397886767696915122632742116792733267328459534048866289630359144271430490469343158174873416754432193235863603193196641890006138322284998636442338056448101181796856761742197715511645606148992946776756040333076267093407211660097269565956221817885545802539425942096176607255981504751150027054271865317271867996808809595469598171210453079323278620721928687613971781108171708629019770674534607003259239363403643465335587666971251067996667181838959839241263904659614308545384124161084771406509285089936948977107943769853142406421085078590413260553328759995938241722103780650227694436757062590525866988786170578793111681101757056421681490647801562202315858636779703382591432188879508931844493388828735024142960803607266199849530360954047325747092742260987483724134458429654848589846890812638387335802837781853020708722896540684177302431969928056172874750060282163335679450103929784134630456235416351998659781812590280842392430459656213482174106006259192329761034872594932142238730576099377440951249963999781095342203232058411790419730883128799720159649876054252319864092356921196564840617378605959954815270862749302369890139088729879254061980749836867683619496838356560983628607023282219421754915572636355752634228177215786935252223169005636279725150746912574544727739235086276206519290208611171286212058241031023384908954187885093979824941477248746138015856172715811729953261554024422226302310483501248381691821010961143408052223315051769142095045674759461533864347282787803324116025947460490093801041506072250209073977690131130750280780815408367161750637692412168123750951045918185067910578770842563029768843301509082963918912987536693705754312552782994962017110042553523926159004198046185432496740026340602312390763354265115901967146314313455470260753935369493112095052928682300280162015564327798104000228873697549257623597107148967110309997863513010906719109836230747049225635454823755764848965059984132094751285798169254342738295646085309661253087337508947796024754342414852344112817052088188803616162082386024954105004822222047565488244419548261866867656890414045506587020830432354003891829068601320620817432576890489111725530937696419030660645225084101748101954839352832681394385520884239273206016064116318667368873941132081120823087534266688301248047732919359983262026396890052509282699391787303582314690649170682614896620390289188043725569078605337098111219915780985768336195469148532190923320367990543251730587211192653934661947709935172155289061442127606812253038132011550471484228483701020546596622958661940610356338629903846264528665378455057824750854329336060527459228311355783795339162884162120778745704653080195602376363787081172163935515714968752646252360918800287725290578742319722138187201633715341855268306585890676496068098409370623701291496276948264741659503501772465600384599806019889279344742567407079173887020987680434939107622811056667340679600296084803149420071450603572738550394593651977092983760133407343020272758354535888769352228846576682045882317199823171883914487058381880307638352611569585124448126169737492059478556716969556719187332748100870562464788596617196344325533284748969579037029530741071455988407309122154735895448210686404149226697924571972515693142739897154233428966097261056271749492867214915815042380017443931875662019681976080547456459442656920203434701430862565065002874973046702073755783716038862589974839965033329394368261577799400866908022230852930344391214692734590325109393357232289004375250377068721626494689005646899247102093001265033802306206948120924354735494401706576319303533254305087840122030618108220078569621594574057560772603791710516886490307387322047073797222261413535175623864877080659660047983724267513254394270016907734911943073354494850634558009472732298480095724176634114887718291466352734876750567038643551642846287277183143508803542530458069100800074848426944940113971627548580560242805856960990213758990534860738850588042192836121207317600451695834699510302353179984936442863706616560957788626901774065500140833215721951088562402599138125204659347576316007116766508287866817790874420221819109110363736498205540896945721950411256210171082879335932783274498229196179324554157989306287324868284032493765651385990484942482417672257799084986587570683155149143829531900893342478052037876715739720204762499801142882129033087343540924333402053072042986982314688790752093202165062534328778822037643029597932459685949621922238559335404864961502474582324788505236927879334866194007090115098027665642455191217125185701577234100500960166624627337175262071375108922378150112415989825072700464856610430540420029415690075191099146458612145654588507764182039731453266558213011610931318407458628575243993021709514836976889220199794987301988141102862383013682979395344988789219284877430325906986923806344752011201787443013141387977044612223439359286358838889606640019008163044551636359007745274838434499207994958754261990332121559551718233522524438000293387093401448571982733124752603402745906779377077505824785719319101281721488891489438199749311455990453944642823371439716258506796727707547274259124383104658823180987022778407736075008320674569487489960619904538365099697056588562542193344395502919112223641271133433482496639383247241411705741560963067231345966851856722573680598164882653434030205271890020479814638155050637043867453496217538400138551649507030130675310337973741988991495035906860536903522671334178329000253201956963580338060349775115757882994021891865308361504753656123857601010360201703929638796105072871154161999311702277751985686128376206288560989871767177378945228790859084844016926831329953039457830524233316299288702939584260179274686610043770547345626210200358184779478116340808453453453026068134035583565973810985138882747205173720545850573207369078516907441932342526459316219985505258863832161356588217461288728919674697865973732107242381249059774535824890406650074547361731373400577228129475237630005135999582155979619546596533084484384727022367764742484137113397974904247091198894563908967350418791914177611709180839434745484848241301892101871166686837681488670010398055021665538829486292884197760817559692540404765616129838424257739657533082308772916156667501324126069688171806935388459787546415984423244798641491981201700523097144027215027415110278853888564354389125898159705749335064547034581310534558043912478132688238926336905080842208960410010131695536541251660172052671333717433654417020463638455792846260057855470472412828000566936050758355998181960090385427167509479092222074376767374293732317158053061018315545943958661251940481692109491673245365412990936336036828240404614294889558085232767863223014743460732054305983913127645918864401112100787753681545245747325410202021336349631646667761875450706572523316510987709902154646093198351130414550930196635089890239044400863310055452268005446764068142588666000001256952024544297874949602692956827466849086041386928548088881607218991255933506226243815870103321647537036196534320015287794774760198520620675950923577733839553467532896732036461495543190613067421436493664729168996184795637535362677419570401567253462519431886949772767845034175042912265742708194681666484098083694340346554986186067578070243283460257788642524257935065177453558623480437198348293347160683538972384442720193828271926407818764234456526884381120516810527943526119446420983291797855388738229748365742326280810499756688447885640053048053379688404472239408038819234916395663349783781896980887936743546415025695751875160552372909715682201755338482863300497244225720723372310422978785946203415235978756396313127404416800551014248400780921232316316524090083972422677271642420987808636471473348818550658214347192462312274767028333863990035861963978684560780617871547492463097026483939492056380477472678217705804320123101826499603721634610347294121894906188243686782909676906122750799577736086233342734271385039255052447378304340091205968307622216124544854224814118100624952736741443605909257045222235184773522992562048032539580649545229370746686354163867006863280658809669005480769643264899116635953166132534500195505601407787870580604763490851889436947337521877582766323141269977091211230283966894240150666122986181960129759416613273174777079583565261966535638350108417671768116447095680535310825698138145244098812752323059195455451759822121011505408853144130442135361866283639531969276070355066594293233852504813988049669040545573785681510114015777145592002901242100892363463723794615692659902187495397970347669812252022437287606269507876613179861097497526830510314662690263394643971014436678706647937125100418780180419690368074891846235368978213312406814212974631102945077722594176582958927977561211088236691485558103389069772626927099797033899048812941890590273886940534886374951908713751091392796941873262709881894806447299565446898290484003166370518434662586965255837198026800852613618856623176754984953445145221380929054752991069314006726302128838693893270423838771937024232998818849630214811488085804901774149460528972761894744903377446445811736424665501122345311093562777374653316721823926646619218558931549584936203899417298986678651207029336131214048772382543906101929360452148563489268685004158834091051084628408495132161185947347953536953661037062164032548842185555004073561145739275789243206786206089220346793561658920195643535178699948584776034232349158032249973223330431392292225588106839256572325747082092698462072367009722190340763980798223494869841455298584093345017306491836998773229448717155753141202366545279914186236899383323255778737329195785694830254663261087740259039794637391197523608361379296585596629240858570350827161249566182622317939855424448888385949810679547032448827923909993445297739175228256629193888491982083440250935354186242289391885715946528420462305570308636214764219091924433604783039737193404629423726998056599902260664489450238091532103891954996132085331818555390716779723282255259660767887694796749121543382691216041221959159783117475617147790595535826755429750719830836694787774669706928461715136689974618831750988171198197502583589060878112617860998197878631081685504044414310683771944075024280427952417954958416018430819553731591450246173155192665351968408774288390929200107101221131664213891413967986833071339411544565946849300481753277137393217388054811806010178815875508616299550318157024597140261841913047381382095580850114629846915606552734638191994183838142112969375497489011569567820464673424589074889786650962496751291037080544371798115339624260158482981561970397527951997397991399911352130789521420070006209394122422808586887040343566948676524663637901022816279422133914217938512623894382673924713928694503733537280966286055015529019454616992147304466696456703888455909598739657272870220806471709000946910057459440354459448132406332698393540513433497768898274815986738534550617545259938335570532526586189547076225678542358039913240556156304300942966072692818264538984858225972621981112905720600466975911391929932609125846922480251763154925448496745097534939928367761776675893145212803216503149314788788365285226692731188479692034464090768440314116129747554265840566291287831734538991519034916952464976188710480210270534360177906155940237622970052439823582530185952464793149940932625180933751344138629868632262717250447563515113956605590000852948158050539555742702855035237295626615110914955549910962951578748654397805927803217351979291334889012339369645536361288793428135282320962460112984091043874252683591376098556514575785688063123159687819717844298242299863242280161335206579789449287588667539803127727251224758540537130223993693466146026312453814378460408552488789802437564779787703439506916673988051514683759247337256513397338632396892197841853702166111923697513692261922559591999937115442677663368185823109871162261732455357450246694440180231586214418418179575645864967428910450437631266868218454898137478761162604705561681181694078307164087967964551341304608997221810883205716956020269020436611732054118347378604168095660738059139455014564918649787455247308220157227560830193013555108591913962827255183588791617209576187999909441867257889070032800565207210177169157158624573399068356976048405221702852117314303886365292159919535962919740101960645025016512581631668426427075108961967620980219320864427547465035217082370446594566704751247813852202638988138249369615770408962410337686265728797788326243798289336627105735831569511413798694121277611246359678737018047707922847842570071414894108883077190365931627290253683456357580075064382552292074088661541038492137546249053826172878911860148649321188603645201874401243877260174380076380911312604210361019292259189341982014361712398621735288540740745208908849328141854338283811809457649579704954613204830773800448490902702303015806323897841643663174311456229719005347548248783058596414038546612210785259673372479060961644936542110711026621589791669649945177053117805320824420475189867500424557399175579626351644789115744783716208870013257486466110392275176703270316563990342204615132805053466153417023146599882083512098628926649629870576826702899940902267994361557208323500066999861054243018161581905536894998836125300430648226156664995178439799412484235368484988583125653471414924220571476189447948930876552579968664975950570021567382466633778899886819637715170941983413106789885103082894997812600662969550724045753538707464819684649197368047696245898910965691128253114902982147211747239970365580331437012061091629547966150617482344696714861069144359898600726312980021280255913119863692888523608654284353751732621251042627419768941020091986635200511904428894555570669129716170855990691476160510278736140225925738445420952619482263548894500838905574404146631098159073499990755920395245065992890642810533460798294568474565653511047014058959564485902808353511051955163514820592196262472165320225053484307406222233396918580289783267505846906370107996291849063637346603467249380274005568652047121377333280606277583198325847423188043099663154253849313310446364719984607004105477950583823077256816804193355146936217209350997155297508506585668373727462662214782033114438896401965774547917506341296786751581846732004218532662215581014325619123726931614982200893787205230243775682007565016566982401753628905197652920656615863733212100564959922217079897478183753054608737546287772716699001562267870735858033673748673524278696757947246792966305776828639295472171469820772396446781487295752556147171089268813176881095423502146720131636022811781170275513835516557921403651859614918762605874883198172888718412427691356155278486630687145938451132303714693127912776408541930229495693823227045048157211273966343712098461825549763813445681920131571525749244949023160550129610566125249124506222128223805962234103981158806295486084577706967839707262680104456599807391834173622814523761590289063586208740196481493820532933724885818720634275250584493678613158720140958219946783152853364626639555319408637785709032805914773976520342482585509723961972694146308606685575814565324056914106553375480896679036834588574309490022965911264257058998315455464093534830927273352014448298332029544324584889705009145041604916820755889009311535463085257050260659368512444244600159366818952885944775696787358416618959138821596086252975997066290135713885201796688190813620388955218151087808134704851425359145659288577193214533366407471382152837141404070056640703892515754647245846975887588844205812820455963392029564340972720274921683999672613562367551668153555728158835559974514689864857274744036946800663332186575651712159728299149181681840677731934630732605555490790637435868164424806363817152924711544719534297915084822636215504254267571929428595029951511292172078391047353518082818967971275260559104693448123138822911149287984203321651797576164232509562119926365805503443189079864321194249843872655581485166946178204464903898498891061898280692949362977900167409254747252732869262822842278105061919213718078944765745972907130877589338926321990918833211733041850611162271618214174964116429945319841735836758238283488431285165934882620027199580628461001735204936227234859935940512221814901276404199045360835397999082814581674391969280148842894255063432392393803481020090582108062758591158517731976987799471349676836488036419605564417392073817063930056639482061833213223142422006000618362377154281350990893932511507550780880508216108058716949837208587285236516593589055155628030488679920104545561098066449993040262368648550533282201562837993746354416337894829364932845811960452362146192724791040278422051869934571932891065174949319296450442532187502817484043040272861273588384044456037229142889577098219677460297217751452929494117669211249861636196089308308811972523890565908231828038422014894601843634413850952473467517388396129974102196716559767774665562335629508005343026452526924081307521592833445218669375979174709436121826354924409421011528442623617758271540216871676749489419425472007216545361430637282997372376518032835454153320042659099138806581033100428688662515039939411771436546551090755932248724538307348653437790296051947785272223919165085242801979253981871584306037610346533859786056172525943875155714067285632881280925344164188756767080563312749561321667644762061849081473290440876635318718389539039342814054508197827205675234380251824313604034801251222298338213610745352562257479340390046831230561245538050581838817936210456318852857732979448003831355237887400622077796929725725650482155152005968121129441879274027243072869200722538657884187079631714849384268621048327540165877783124987857999977581186155429192668690480271449668940200448058823369749780509854302587234513422490860057306703509457609939183936139352206049071012121397784853251586796445530945089334804823664415125760828061515764454702292931658646511402201010994022955972879611710229070140980056630581386565773137727746734031758303878378345989061464882184571869107579055828884642905769191496591017971470056406659143164930185382024042902787797188280603932001667894997439276460508283122270431627028862469045769123134711919708956365737216843920522152805871723715749682598125001820815947273001667768211367349930988838207383258022308332268507570225852820694450524898423085271295947852976338901558022358558328270242828425171083822111886127922615335195809530900864422446477090986055613908426499523126253338393442864422359120733249895514028453389475257096894764970316120611645420925585249207706143122693690866213050636566075832778783994270294499499684471005315732083048141856008721722278515790340761206312909555179221241149430357046041681184500158244924545978590414104390541673988388054659930646839827451886611640841088402424961395774927276175299843658680120380190130367604810279332770874308642474606554899527839235734290039751377039673613452042969394965984776619333428119125423691504392077049798111938300636693465335439164573176268178885724557378515397040195110924949139243090467893931122745184280380941047400466815769971036578378131999742647934879287581106348953804835155556933200560893480207509978484740833219039299585430902270586301216876770517604249486153008044214684547139277672917090613623947020313264131918636563244872533487877968088375530037176147687050107128080419911584464401005640368660755332505748320834148356572808937192531143547064596178158727823623210750673467631418847681441297259517626166086902869048386849104971184305248188117647669742247684932823020769181273595237111372645281045479807171926116219377307289988044845464469043172078133817058976989841472589445387612555185383658700522042604981414084514893660613183435242862487277832471341846132970534787309148538008736889592966963015236968187320182134268374699785388404233537198809474197953565225998838098105400147050798391991028749451183525803065583063974496967724718312250229927659154562746737332059995725745859857838436095840462342090868760438980375633880669037584864638591674167072684668367698489136341067161728995035835044817939119895740358399215381316192020455315539313804495040223195970831971792303877221504540992051998665705242365143949672870619210338244305536859017874466820969708970540166016847041475970484742971820245213757837946581075414540492092514428946186646153726575522135866718793592131974330891429024168911505626009021623510675923062626667855341171270639040687966994729650734389348883080917159295830839269353094255926049886293353277446246870502098911129825971019174133955298163023420391050920318956423701618740605419676698744112905487525672348609551497688423467987904273571906891222014038455513958609254433036494602962949349207697562143811381136307923999999427293824257501368821092310743413960642312187080181616622452050367371883993767428425681647046822536955271382429797625007274753361497406883598910392250735546571271264998469109239866701678269208421001114439345403281004825417726832438889752425431283937562834472031457558494221902827730162287453715244250131620398423107489549562212253151328124334393162127132122764803083006141089643926832562348865481294835964597830831972663406714918699089188577273018070103977175331841744636932393979352197503161044520851930007951986628525658869398915998362003201420227625801670573360623843806052840309109964072087083427811797482878356602299637308988826516738546798538669298472506456662115369292213100484294415619538842662432314545079169320589808043439090875262453676348495322135769791866610777765311251880813871585549011398094889668215141687031639706948965556707007351103752363255525183580720829910195496451337561714780328295474395049739552080869550992371616157991723788288775130061596386911157644781938952828872793215421750522124741897569846515124471217389551570433404164864230562260333676827781456850607757592300497158750675155535580254094308078728954843996558952600808814371323378142116199123444470083485953362898361650365809155386720004621185310052993624928688528977519251801576218403496182119056919995406779634361192140608426991079795185129502114921156489514513278019289123424690282509146391352022218108822009501524863788206016300483058643270382114338653945198998917260739934411518836572379863591896464559155550147349855604103664380160305538929223330567810973418063389877557491770000677526229668068955701463918203108312405047859489742714830738307734744821448568521195495440970465037471203428232277347036638318967597668907875208070889295947433744041503110456465823321124316007347126341218986993571547030491528638574728693328773144160804884947909201360400890231008398477979655515880931584253067253179619788311923566909022261781628646528424258154466833927128463325769727457920600281341843706808679469456210273760171597648878497828526068766700751012592915837020287641074142002111587090404198639710430469877113036821035006232922817597775299519449076335849750927740783286853023110727649495674869465949525784391341744314225765203394826150176610161575888102963743581957589512165640585566378177188852500173859712805296582231908905412968638725156779240936123453623098928184746972718959088593423661986503091144427164266931204318033052491311565448870165605066604216855571485640977209061414221437948300432953002302680663249406374364301496714864593163847764027248902710134556857806525075979816594458101067345419923560137566588781029168414410396903621662230176307805333826897405045979813204486191458220396349011322602076329313557878872584689730322813176186481370046997301214638854932735032643125977820375314033960981852010802864062994905209273894314602734076976101174090075021287458505379504731373735162561411291529877320605236940798323864831875908827794816310155113763531541815900745281729962789584323572324512190184885574780833767253211208892887430311422027475534143087967382228359712741702447508871486252688191930224222148109209043029127682276156581423875090444290595643767211441623327167900339366554554501849399359099052320040276606319466602874876902509884321330540991392594050218284462420624755782016899508594551927673737183379462575086156951745116597134581814313909263340364352980307770361967500409608979983052756569598640335239427011425858433087187741970736960797813197309046389238978153996161769228709908203316075443189569871634591636769067294519252214577921350604498594768087698030209719265813122876751789156391056139059452077348826172023849755356591542197174258806502788050250820793895121702881931959149062448886814621118596154681103248580555996767948197200258025601309167324674117712097111532296793371681369013419833658767160213626403942854885551452703738536353821374497687558628663884725204105241523318077986811647363128328799777041185492874017608842550501216013617198051944300932096086559558993814019621504720348148496964408128648656178608107464509441372564335747105059791347363932555748052495098963455671867927629906988524210668510249649707482388537498541553108121706097943182478884135853875165200581127482803431539588433853238778226471822510770768315790764253611230220137882942609238416900862160068886197629984985718231208890978066046301112872638467882746455185361685972527949004480618206275313885414493191299054874387482859697003769684178897337241163566939307923910321925416823414365672131348091949369315185683230293847371380998879080588377351105081807678031901562526634961992070166355358129226758926027877803588540108605026377213368112662808784544989054600265468886243738637046482766150428610529713955456289633469682962458232859898487696629788739714522407980144170709839780866550073369328450945782095165830014444432978798289897656141584075440826364936953166587247662951021677897925799380727935528862435237278179749601659381785619372184783290904729281417838073076903311801773445589809259939226308206613208049719398604909357976418377051096515726188700346184996212970207870298278366969189020712980916400649388789853740654180608570054878555816275611169503328953740415733180133216534337936455580656865942798814726927020933060588371513212994021554635248256290558686994654727772657231715651630589952059665372868618764325414901909304958612496587290088848585198789701533419995259298897051117896717653015493134524288725305096201770239462403658207840129326737522474343129882199375420095934183760540586442768655707421631119348501387169518450214882668213238279226482535041843137387422740238035606193712327253726864073893523533528052780488695577677342647897140502267752565241087761836108577883763742063907200635237493478767086729931367107962976040145844380507370794282842026440901800350501159483668201922089701635558229636619687297100759889109665311754749101335492106596841266661548809834707651975800709437916823021017391378095451928024082423017624915438421336098067137433522681667563118402111452568091821240188995475500158019241211772539752418188857509121845216261111918625235796269565405868568060150555756779226987960902706007534645701969607140929535168896296172253816794499019240058318033642440869341073732265241266748761587223242272495343784365896548451860189960516002565095762756637431550095847793656372886692282423140606962546320297495477985258382496206685358891498748952695916349665724464048387145552614332862024303090704503357241184018455976736877640689817105706869307627904427587823969047382319335192965325509844393135814496413579165600198264960363372159643877487782285430864074795302851846952236799368084319788997503988165009417192448716868933822895553533611753411092175827528028684740027834979096892957738751931941134509953588365722564599659812974308966733170960750801607877891433675229340473839693046508679194151254318697017509073577235509602186343566933256622926258619345993834920719550702038299437786670511272403886518016290251168887752026022443399217182995363345464445001872185613054692644800346979407781462459171574355078780176218187179927102393657202067683911109718113238457272579998912119631687152523912317911309173742166505739638713888423577143021311000338078434614704945607388953790659509877174464543333702422855465721081416690435675016155425184763145352538463340448916605175086812514846392374963430882933641314094466265129788367362643711860249929662905267671088587797626179640316124026601463398526453151853244754485978657192076786393812843444379781235428872850925047471349389801270545825202829594618932326048859509507242015930358498572919140612595325815174490248361869765245113747655475558532290216007353806998336018923252857313837259375258865299442632689630330778171686795524228660932846928068335834055497876064240531353851599627844954368446882673459734804284717305300760010976299020515205690513159413310289688929922565009388709824060630301118305668704139670446381164016459761745757659260923652415246446215461172557131279467455184724445146681477588374961742683064915855563319789442907133003640328270485224482255315412516214739191347421949501238605310170170216482294854085489300050263176594066152236059903238113268437635841626349425070210354192499868191719697590918573295875639959220924237681875374301646998800740903903125718566373565362259502901292788537541188687805535073127136698733230636887056909448708116600345191295671765435114628302406048895885712497144784542224115048107538650940266749391759364525339994519491122425484420469485504191305646196678210647851208014509619596560620381370542168614827934257117333732771995658070068417196993128562485309812191504257340585738030950065927825114204339699827864695594661729710817458046332144784218979453460251121648071126694101730897108459896581898212135893774808966193716243588392820244391756637463427944408753178349580156510618747782940018137417470003056505461295300909695446425814329062624958604073905927005255189170046959122673711619077627810849897454849904845982435356326328368609656618193203657707209525941049432713618863605359520153937900105196569545012280866609920339065887570274579063431120513853129368257591170846889439069835603136657995034023744553701383567211568312955152392558095501520919387525182698558824563187992125394232903753890088252296103139526334998080939278315053519796077822832798314326356334267903465825605110548320860740020743251327996771531675068581721776111582546656057307824719164945296340214796347985810585255417846529841804762281213449253441848368840296109020876021973886019927989459556122796653204070500849309767032211436994144333085547450661285973105037209914079233062641302665410339771830301360325361172365513426410609873462891157907861930637803626538133268243906922288231529886790712513792963752422124768091886175505101014836565928143061579799233079312837041332048551028634553910734173464974985260735865959881697834936827614585609548402920052051687357535890916431830225301597342769339640495364374129204078331661734008092407212298187861334351627173705562354268774499797873348709863756192841663705122282583688045953354718382044969079171651202183896405786032064969813485217508214779152707081194793717224796735737536273716320008054698906072208394426589332686862248007585142525381529946772416197866903523641436692951720704197908132307907833900730278466022997979493836494565561291825688142680895307917275219526531241853726049564507080961601860439503352722807166659258424618834400222849147810967169277330035634077490950883286817921191134523023939027307616761218320549102857184557113964595671313152222840243001568125284915861167111207724496599500787091428690223286957025996278291889383465597490210194638608927463632115828599836976104607639340810804410244629437132572600467330211927052317398677798868972561175036298875073160890797199637833792856954083210216938605092628740758618148068537571780249555074058233660608144504075354128871019372606031417232549870165896811810286061424969831212227929215062290806340503574719594502297565103474959539691469096825730145808444508192037803492462458179065573713855058518908546983472123925295373490638514921191899873252388502309859107830528066717779379030196087101199258816016148797763543326810950330248524976120947231817647581349900441445838897780211991148134441262879329205763852958690254641150757333345410051249974767186217161782407949704965363554077157778052543577141928560702513360759474579582796350132705960352543995548914824990143763405169832302639269024151356046066535894227872672517979639508808491418035611925993083286576428862004315977018857037243904374093278491934468937279701789684312098153415979103415896495670527479145530950734573417521656051578312113796654936874373323698863419507832093641629137775244272825571920387499101569575485141132771585988028792843847914882626304006956777274164460366859211404870880542513898210791137407020262863512219556262928812304877162231428798204217111875501531655481439371054719214455496071264184752125488996857742941143384459731004954191756989234066230490683967962001099273485503823951900600486436582592314359089331631082936799566519855902994691996367019826113077684736883264466020825590577591262162568381834318072611924128511504973248116785977948805165869236356024482226302348335961959857165385821610473846963252291826219120115982776804923034328411183067466732397784613586268341410871458764151301783250990289926931441887849218244494343712284520681306028353581031672663019669658204349659784056891569970949177838769226179978981168294475111630758420298508847035507938991541366581265944910874365513118820051932884229513497021942633073897837474136257470489083669930094721678913701268056028586967890691462254769981086644380183778124002480841868586942035215257419386599734236724179883760478065553372436169925765422126851776761640462395700801824475480496783035889439034185517092461886792765906384937058127909004517915175595018425826566705339193925711666067304238550221742459700421172646708688824036506267096492103294087447203129687940319270315330153400382026781082363269950461651462267811703154909693556002889711688555125093127908122872538659417724953888878379484675020274389933843736414579766943516175079795842082171193900775714724159209133304096347972524482452452707526124647993588657828242175157895676831298554835958245739444069235325543969020374782114676728495476766795399096395131631309495739873597693244553869466628519159590486358152775268111206013397986180974274640459600281565217527757111306188513658725876731889007818760714990518178389853133772858111724962329954998978128537187954241835998344673136001510534123585900670628414076801420868148447241772325580576700156878106595773861313972215509977807014505694212720093505233704404915393991170460457990811383472899610237891895249287739488796478137159623888551181916942507995448674163371493351865916252649711593587231647273921086908006272304612143261639113306658262776544565836204356747941491826128773273420479883011324011503764253736868250976130643157102083430934994362436972905027709813324382397015707152240669638860694922667625435010263091657399993467892292405694743233447195122170620567578810823214439076844210683579182709188205027412001452796907135568644599608629980577546733966829025201266688064956668638450653992637294910804926626303567120543962106164188627442547647507368043951479492607876764510709217490210441615875638841553074490132114162044128189660437373975874478921967632639752408720150212066310460366643187691767170732902559281661720880029211855468972067738508288939080853222035385800055409494514228045287761597902240151969963153033005348014125964737119050205337029927392707813867259901762766157399936173055833414708750191956719884558557445627530297449104505243968005818457736367565463622569176337191235351932097234243589149697476797457492950044750816561402328175113760359272828453781419225236533630022057632853736552744168014029343277615905992998913361167536391416134940524858353840948306605910164389646190701181129112688977644063954247898681190265507386677618833052350706386551214528151728238663291022198317909627956946837418892935068301746025578295016914643571688698958234929543161565061303374029209694421395299289484387207936779686951050666834298808362794412640542417516326546288487711873177332164676204510292984244771440550196360167042839720652018447525410110938171703362964766555160163617700040510206763830270454613698459431158964409795174928791463806604819589943357818765742395655502611208494352420004622192238228617696707620527356016381837185214383090374340222039827088303706164751236152254183283719000560687239538921627962987803019814431216328924506061824167382768422666212775184268864242182470069928128735499737824516335312050932955079150546947523336122277326258835442291265034224433776504051804164382963363632252834384673287499362812077182542773544952186024323465445464569400869423851131584165590328685730556320367177907724269608918563708693425127925221331285452736523987391258797369463051080920038200814032908867879883605592600544740570533823189830874578156105164790451655187250241134755038134168378169094283249170384491676899670017865672382687651907469027761711639505859528571834279746411888252217943665780147759430336777978651758861992754576836218193825211411738264787188415954087621970130501389863542507245387733375631662105725299917304730202411266958942628253595476769015115185631356222287558881552081370068702277848024689492724810722577683685327521205365555809035977694367932714961359179218353278000313683956823662624583729992411472926558417013834042795804355150778747629630920791676542494904950427637335100525381549933904360416215835894543609932701533622630368786028886295414254249460637043245875732412871012493284743418455927434939324514481729204211294356186502775510268518387707653002867260286804504687231580329656367182081302455119663776881491771686989205802687775663719315061492556584439079309673786632197668076614388381525449683549369072560536773979698259485954371285360502170763504665788669881472296098850090461436130139275366670400648947801862650342726123036354366168589497089323865842154839852523209076916468024678301273261606008364781180913817293729421019843026821267007868760255063566593244071395256883180284317807790384352083009577718138309809737756628703786338207251033454856053809950219363302383865583847945339348984102043939409797962441627014744420810879810386546735416930238851694222651025645120710816634054094556120179384647727782366214717761273413254093241874157985449942358916681905892290796544351842662085823667090080195773658003406974735486565708712194071124031437699940747062507021844594499439079251714962851648915282195620726213254651101562301171662239341922062314659843422838803218308586438745738732397450920058927137253499417306135602009256825475380778397668324935419299639190337215030358282765266497195057744647103696151544673467883556625638572937433725293005418218743401384030154294927212270245262681235457555931884285004511453173352378559883312080084489733053968958671556374494939779812675900985682555679095432203193787744606424942171495875519164819242138334564724444417027032580322642597489172003087402638950902102815690308264440853849105226916439721739623890215469084004375596678994414800251357389089737198099816039987075514610491948079062605514925546298191835996181281748105102710049910829391083055683433912368279690617107374546497695207429609735741362526180059497589837658145095126350824489704258316560187300249915713195632741412828315018542467950152518867536189865924665210300375077286590443253805618625611317679629874568175924881220295593214097534139987916211786470475539937526294853549363826590036492407291840205511580642831045036482224186325905979717480778830387304112562253697054389496306431828314844207911529158829475357380240567262918078000654713641744265206470866507489557402310687927839249748125488909329418080823840555893234764960146733177639718458596924676794045474443980769513135551691930390599696589061356974958873243624757267526108008301417460698847725602393059024895805410579840381962598161498098849479328230455825672857860792206042619054988760777652096899606265442895283611179151374033681562795283992238604898024806171851661062263463639586569313763055941473317578665467528850800204610129221222041309371289927940528131645800748965158841943387211370006531426718207682374317930056021522515934199485585751347883681321215357177962065018494558382444854652264539638510100778702394229646332538016032419169183390698491834877038669462560071137380573672012768552231431891301683758179918962420567828109477366886270254835041508362739775360986676015478482626576297425970359099326206846917260137081058136246356270937445098581048864761095534257819790297825523464609910004766824053309634782991059193326415674840692148527202463994041883889429308905455761456911433420134780105878855072038039463602511045130489477386061242716911113797844741573228629090089752698644247669614303894451892373019143471066156341525631882070670352061981321955455394834746958255251137545318769321250632933245243532342578970127235093619228011308365833610912788063156851086558804258897907252340650419230888975739627988725604516409345456319211882133882151060315360955816779197828438841512654264715483192987587450663973809810327232151045874604588888128589161049595733189517024690721786308721121878577010929197331993609538500541248985322292913732501160670754120909455265223958248378763799567068094833001459273746705267015200096075829796893584297471828495776968214675931243838322543812018771731985210224712228153881172459140503520288197228560777091325233007349038192320805378812379088590148631292355314731186351568042081327500053428562251914661726131472600978632734983431393025720003684017589160504194009719857920712790286153795270483467205270918446671909012989094950402001990973494050612762385966425135570570907691726717908830465178649708457600817731043830591536397996633179046042057816456919400632605509479511063399076396752492326213447791104191442828379071646779368580040110525447834841625844564981956358613680773017968572179833618094481459125840150558564640131567914254019283088650296931280206539667368727876889978583972829784745524841615352446679905780992793140311042022823923097751045690847479835038957783043166030155445159193603519705338452403521160837828788264953639049638211065044335706261773401239510289703470190404346056254223812789012741124393386764689253104003552520037241995482886221017131531799241172876328835172773075681295862318093734371257427999713449256197090373734861347702895441733035626687303158494670764581599064867285361098033653337323620657172421179529808620642798395929424330874699638494177626974377104720836683789951222628588541450574652602485726247019893490296490409943435029669288353372808191281690416915334005583124397224471892319555597513090148883621919389211833246121460257304674138463223324262969734826362871557588914377537056213510045164601583340827305674324575141186508342991647044044250175223069983990942499943309036321640809966243791809602283913617083115111086300217261449908253247483625888773064706599770298350536456564688665663675881670611704253097884570875721679176260343146076903063815952806355138747628220206656034587299834534393422982311704903293662646886945766205167723245696462316297780185259977999598803247530509365834423888148761479814333131267322237586125052321585485779785005270747412931682446766425549413685515670658503904669514297723491263579159010500425226995591500597305863659595785902679090300321552387293692240827298815840320049364280903565427111751506432725469929862337583828225598310092572997842010889706643313092024439699551943349617199231663044176105738899435423923296339609246251018962342558101288989945803995055884616391099082872357158661536989335806273844170074191646845755235566755974740180635325354322992617760504994356440683251092857393923060411766245436875837520941300933666371919516019983823148322330864576334447618379128577404956511130603172646830624836179531780240810966735692166477441128407946520919961598601421046236502819337378172724047871212868651795726691218951666000794658601306513831441966112323733660180191344574769761929745728222053729453027771003899681778813528298074151779145866649329534755834955609735843108200489164742764661181141026609506826752175767732905409568319954618160379085498573252385264951539841133618808073305927088326101497323635638643726587890111565094605604583989944006665555629111159532925297404230269208823556344759411451452214533039975676338779260906177511152685765906957572955281732441282277575477880940868221101989987597394788888031904740579611798615922665488057900252149395813980735886977557627322795288249607068553007462912480805107241520103705615024298703801299514847689256965279842772345015056125089795282096957293909263227280233451425953934508643016785481907949782869761404584807487148045243271055812081865424171776667633330377608990611428864618772972552411510202530209788180508754546053686517896463753445100459069615364800596019306143691819544816262928845897166529437017564151642665974893361801065152849163950019348325843971416181532086906034068011122648432140969719495483231423477750671534993530840765951904232112413496668889870343499995762919246564791947910029019846054342520646369815586078992139519015890956738126404585577798781220525655235122307486123405079744802945641321240322636425240230375802062921698937987009600955587434552267884347699817165206037813196750688638301430529626599965835945619275867807030875406337557415678429382042462473860539517067435846997946152116991797599321807293017089143073466698818409160748035589314534064425197901422980772819572574027207436936169832069932967617893244148678861759027292319460677824712154162559322673545295336414827113220686837321926827238791134622208567609183551703325868797145617674911782927204180585953651549013932574484887234248886636079834664954137804021455947390862731575033039505219771338681957307953425396748113213130257562973843931562688685812396684687064962619900314751326362949423484860361125340104379951742859356592903763727651933600790792392514947542144835335904958297594093249154960218290805953212983177918066057923757181097843664932370805167226488687720640072373455902725333897790279362701485540554959570214056072977376304198431352507256019792783802211689469094387474163127447708791991995154143973667881179055279051059928225974654602945769319751768535014210540980199663224260112450968676597548273794216191845783155655787824305221524591703192879166817832091325735863134327340868563315514528446686420870604480467417602339733405170461568366212573255686264987016130483433415926304424879379247866014993120385505569071489996342382028744310534126861963472449127995305480209237497887748266844266091920604023999322759225098321655317019668607715815810171874678787760695610021230777725611396671943023166462307702414508708376815759900445898737966180272277413407922944793347991887975665782222738129208546640577504355084301049005249107534634530944279440161985041696293408975560789226462210714285984183268855299601608800755299238302589124933242497096561499870992456263523773051210660683325186454966510625231101767586213406299057208151824294972934124914723630933637733561674687720162381134026919326601013303757319693635985043106940094950113236835038033346611906675994071826428438873073910883139359356938447340349148809430090186399098917813169002247218652238880113811424062851172263873602072641408281496256471438205226085312271770103833640442026209619747551741751456911862222354868988000975493977927435785234677332488129087868359125749481685083543545160254863914508601426974218722180970965332708980589351604414907158257567597996528722702086067582701781076522550641583587774333792327428407975369656957385486097886266472627994618371658988495720910880682537216495459141458562311089584565948616882345603560501280133479044021933759325568336661229361370684208070036894306169795832225816867736430121598843343463883156580077146793108898555775428327884148836503790487177831581368396992920200460305968268829685119885344726058282856194096971015408879333793206119067415096080579622992946244726227763242852965267367645086922732175881671959174580682884578468772624426705908465725267256833314572146304047520537360920475012238967291066202081152218673915530036653111982508639890714049378222491642638708196214244499066458880593570115561475597479107360725330559690415574170259801867790694168415322466109421466996191250099679300029590931507960439252056126425852130270935108377428288192753280312306381044907167247515690685339418524045946063034026470746148459029024931155710223096988304311095691761299469182697094026212668275599297440363399072755015097326933878736134271824469257226762569802300637127787086263490730196812209675141352659225806105832857418203106297907755397594172689728629932339990917574027551551150538479972807473662621051433778300339507155198125416925854418388845167981214250391709029839285842991244295787424224321074469178513073965157039846202674098482359329187833029998813079789335910688254754065334625881081297056198856503057512966392425114922290802431276139205815365330188013794272907292063079306711299876122483264016361178703408541318107562974764102835529220859772024892103689798048344295054152347654925450869567291423995069392837078801409714253058176535715029937794531817258342941259438113117475923467106002984899180079933467725582795483025325635207607863300504237037994124191438863507347957550073641421951371731020536015608786774330167832026563135629406741215131605879425139676730184876733393022086233289898082590122802730261882367204957221320715476974190994407557910912176940661216382661983482053850897941964423182237785086376474709896635179168826148810531516279252438091074529507249891406763420142623014598770241504175692744023634219114797026450921060245045063649085559935683415595810265460789017730808606693099727049153869501101408271399679674828124563248712107848296430011775578172764858927463595145120372980110124177779834369328838883286466721182934214465386814578405717818101321395649180348621959114130694173806043850456004105539853779353235913228378034156553409687347055750226531133357980042252188861359235132764829650149598890500650607096416558097791604141180211867278475547823546172732168759774734862166095390748066283891013127781962338703217110131796756213723081054855845969467769311089123316867348595606593887037899211996576879120875593669081625854277757162987548273987019035107857892013157801424987890939686703390297755247177444908337680595767676228389171600885165650782611519896015894587759582611090016368461189976284995223287194301600548908168524394616939068257597270322838876324769313810338948636873118710996477791396940511203009109209109288443435304136878448502068208004065629951908802796166612213000457424534159234001469310853334784791933888501919639206023840325769592110959927818655784933552720014934996484027623324095173042418187806090337449907583327367710466143002285509982623317497907795987426422264204222675992251012387407363727459544548118172789668021903658804954838863545020844306808633656718615132977224551577987920235543750424326929685596966704646870537973256430818123094098571427002060829167040943551997781977607883125096779113984120344406088720410216998223854921960168211700544200241510752976876878967798359193507500668119139249160854327139201723929259573885076507770653372296814454807883716231330179366938108676518795433067128980457035545975177257843306947022783088892797316540318649216890272132387156111609602931702911500850815132881865621962439428227772760528821805870507314058048664414982124689542154570815926964723618218523977098974250337970257603096092605669436933183777296979776027956438776432600256086229475623925090241189487110826403327786542076486430545133814407722181982065871951385957475561168066162355081204923963450835979003981323567202043648045769293319827293151077943721873192292443334827008117289260270339064092932524116314376394885487052353795418354316801771921127476274759673221964918064081054766683826183698809125388567121534869669760857359439173928692643434781075376795369282214028307892377354959638679632457686206691765004576664867709274349944554655033262983371016379137881459020737129001119103727606437210133017787841025572124247219212541544536992467059405885732862582558210111865247874558135875986466554928918992662432793153909349177211329943851947918783922201013154047120518879672704766447278160578002940911997846174610341546374262147583905151453182438080666130356709805789936022718596510517385189550212089263655795416069345196096157588833659525431054841398330843969376657222801620164041543174947034252684359980601434909354546983176545269415771254052402668286686116286751578827162835669689882305160439457121201510366737607312333695590772193560582294350569557995760910208941675805693175847557973987649460393734640278427381239796913882265262291173684061024940936196223505002178878132633972391845773378269118698476198973714915511189905326770988303542551105729179146614356158797818440432058363617892567755506428691007338116064839510903909630734253477542179247367075761894324985039768914076508899337911056547528315344523109436760072141398950708508367728055906464323339873623146427333632940650603500603317393232242032208288339458276646868506775852827723072321941573549284284072514637285364545949337550085103433825448057544277625084287312094553319025950886210043255872765954786363197283087401350082587820034311065262650342193170491732405506250703589235481282811251336169599667992945358743419566993624945648037409552406785628959548600191714013634851889104330325639661512687971298876545694505145068435905057313362381179597516524533574126600952188559195632056497886674149620099425941991127030230828338336665284626842035351705268481001471149978231573657593871210746337383460570940901183307904211427633646658905845738218017549697558719728463292413386194516802275708016967697175044318671410764154243428587933501451422196563916955948429812530977885952771712682207923593228368564804244475471372733361763263161668729424846031281370620488039163414755276884458061131866391845590967059763026542930893172148843373792085254171881119350410289030698791973755028073006293012875505069405496386678700440370784830370547613329364055956517272150734955495134609079230749441449315311490760348968918500712076048602460708703719025225934991176903388360849936417283193083009301643315546917170293427199605782745084174726782370500940797077458060357006852628405965843878148421074008047091696230602178609573768910167095742541645465566398711687593728627699000389589737675243573950534126369214156072198306938256124236572992806426305304292577338866856847060108718607405832586162682194495822693157934724585600071908928786270228855814213419682417469034806115468853187959995812900596065131487590207606278907387428893361635690018471583775807468761397300055980547803278626565388179591841776583753787891840316643321338795853739278469957879177773751382626637483127507789155758386486069380196789269223166468197809308723403092400703697411336742157365895416864976668047498606164998980775839498112010392800421442137744600474372896721188687485908969687537419709424233632478672554063199148816759964181763194119509198864944361069241221143396166418404828835258380617443400158903730143544291123178048611437044290559513226820626578219509143587514064551655513537747252401819957586526658686857294882017149306309342927267446289394424109987684193945567546791399487538699438516721007648438165265039652075904123765323976567311302237735758500319123833838657376173755682171337698273676228605087974787160037073825654971341356251982519059216228996044314335583299909994467845030503755029404891185815523688303594136529693285165576310441921415189642480584462659382073642176332339614770577102559435190956974897840523637481673096231862060995676872606538883148713382165959555688624274903720864515740793447371076651842750298811222060642590824541431889321162014868062762118969638527511689959549149687947616335319874412701568731004894263432308617095638767626264010366494110844166952066626824434425635667472288627327640134507831680848202181941732385004711497911003524715291427571905311886082711888218830255295578180434805035532229784529889723085340797431811422646979488432995468562783224566087026557745835401012634805651545337564791381334180192752841947749130227042591373617023440587481317029094205619765983266020125430953826111723293098928060332461242283049977525548101301684275931613472175134403894230078100028499753805758528306777699301826719680023179117101616999690353381403395634723192618115074044198726268070210491334450729307926248877684934771356586651568893855868493998111753497431155437073266906730585890394025048699405654159607672865446294491832554573247744742705733971880764974093570287164411953211785742552847078713145387773308971902161169037616955410735474795081330527528738088454710060822966297480898425769339081490161838731852903820825089614450469578032577031574367108630643505776797528519731851538240972871689820992623330596938999000625435713713590663522190679427118835998568884408615709151255360183895610009086146401845776649560948332743142203024135206881510095950701660723197292665056062014114692920958546702495598831784941835743992209371914005545228477224306062975415251367292684446074259175837952729887646351994646827350957895798530772483957669198299084353004291645539432175037992961489757468311485552782611821367095944547995651663745988645868916281634465606852464373771946286595199478818284758196067109035159297761925518950139214135308431455672392482601225340226672240521465470077424681999112698902948669662730896616226777436042102816491061857246952112347064253768282951425399751536320807707288066328731042543009339848124616497745562999976716568403714448521866735744005972378795151846365442586953719493521670923641638247245456648831924787581652634987077417247824896804727249483282515544208156032924757721930778645157913351965959365073617808259663473384847854207964933955969448007757980404519694543006832969445945715441275934001693574927239837885693744094639862020146456732846386528351853671907103598744874111538476830321177396438804569614592022961634996064171939925460088264875573534599500497183317458495177459560167886122266485243608556887474087006542164307846392567441495932222803698431900866702881272768525406517739020257953191951216522828202816008644169350479368742700461062082201039752270228280592925024454803132213149099155707510355364800018513238447563449402920379917114588896529179206613818787813062811675948292790961053058313769279385856166174377995283174154292223671070557495763436311205777982665048418483188027285817351392653415285406525929588979679080145469954669993084294981470302052305582499155979276832733215449315621377300594732231197789003493900366099975475746304619585999959349164199435600352284089074685759005330110245161880134284972193209494123761542570834747875075361922503585930010278811725311361233955436261856716887014656850243939198501480374630653670187350102887418089557330705227267211325999995511069508582758508244972342712245066152749266041090714330201186722936046654727890731881886826350005410893952354328756271616175148419499077822215218885710410324344830560779606508008336525275901013967792945108578233289944783076307551442500829301013743607514153658715071749075160852973411683033034512490035229131396019325086633674577499231377251072725716797318281419095988311495670138730120839161851306666852070505300044248929799995982753534566084452212434155794816563293933032215652568542932113714537970623813232965261772318573365287752039464693360952942491383464126035114046077689888364987755802718464653781771649052505192869189251239852325369189532417588501087188155551665209027782547711541081269296474262369845600427786448248230660410096634611504430451230501659741874992231448352733615751843477296816168617052272672893551733460321809626817869122254093921210434794488893532369593478725095436435748115402737913898307252736060836597894227327773016826470577758917454805212338526932573420288872089943934213860399378909560426219492850114949866034347997658994847001812657398575806302748287016070428858972100819486914851663888808267832116986777505956081692376188244107807957424952590195180230770047850312448259033702040656591928405610413635088135457948626069451645331980398175874000717926745996745396111275564735380186826548686499961299313046554033903207386016088787030845261133999349270976491012801195564542314038867328688245300250863192687448612609825999109346200379969189424522647597497750775109496400014347724736124013641207258225678824043265092797072383278257379017479538348109540279136031389533491770055966816144304212410752381511518302736412459461286432357942938429000365503959102626843050529404728651034736110251548778671239351272071604156356817709250016019555930331596101684032627253910314385980086135195783421939715158193266206243275628749203674890031351188662913531748702579518633330207621517940094181028532736554528084073064928884780168660687678026154744080385539442258039265719672834067328396828047169911742198207914668261861056520509385503315786207243283694305526079428137771263235898172381710792193816737953597474850541744142451328207020375062380521853383124299643709952792944539200158125923514801064145324334887110985827305222263126401682909089717386583944505405077743450967674428823033300165092464464299953444891223753980902472536456983813869479979200757360134454982380917605491051720914619890262009399481821115169046546346023818283803936511709894822601844903188895248961194170388897748457959377974325193629862589474522947961236481252390317146976066747571021989291357328443388636117888206672433431526148279490548778092574543002788622882242446020300215070190142115892362133157046731637444916609937001363762368597657086591155264627525365344328386563360579147845458364104678557245544454251575140628440184045540068819105972702606114069408013312033815138156233120993502044155071208600379538720815068025695249340523051925088441778267869881141288371301522227330768172809159099702366173005308743822149431746565121078440034931669444892874934643580822841165934194680910350950216251556752417494445153932159416444667919666635334977756446826372871436926849350202112328480729901672513079780244573059257767664690826274352025750721394194666816816788774424974136366655424190897371774496048600851978135109582638496326983970056031310178024132017431442397782320164045151459251034074741208607361930904874672366072145601424545966877659607297915961917420102919929825726866953544480967954473396742883803487086236236277758301599343684022833434645880843794919595691715227296178850937836533053599392939397838648326373383472034994254982908270448171417317698599529519711313331873480018837159750073094487723288047777762556876365054000710464009607377067504804118587638745952792985095954287759225904329861585209453001061208580335390691804283622284265081305034931798021501835023547826054834170871833596200716471490984670977464877073088990051589721213523872641739000272242194761492567899846114702562889509623826735676764279523856138250079978006608461035332477635296501447624674356083566666528871380596947284099496981663330172715773935553795798431048429191908813032963892096209875519309605374854901204079750665749977475846113559017537164344266766526463217523364645999339482285553209055503070716896807058259976738683649669954991879085110804061493588516894736108583198320626781250496207860506560521898400729204630578325130302055822013720171102301626076284645048225252278961002751830012243652907149413815867170000279231124749269117496271935029528196217523945091250341571236068571185504733230118857405045629250064561230974473128117629066854678683653187432756425574375101862121578603442219411714740241102173776720240158158849041186788533145067238967862822863697772493856694416733624652848195087839221199640989232541126570530568424673951385824352644358760695590368468326195797356141485113372794163682351623388558034916992724671645120989842209862410799503936277257515440630167720073563758511583946405669941775730131897147760715209775972480149034884802472581640428690710497099604415416455391721323718354806915289694666940018780236956039508644347778884331331812804800478204799388303126324094111110493556899494602778560345690265799295761799929246524112569424853038929179890715616948787371598474996033888711826388913274107069976907598259732323252268931485308053451591545306246125947058416637587237395750788980216255231048853404084348660721840788492969744752290157739554733157711151605155162363565221040926847200307419410677762369636095574482409455717536884839466516040687748226042847645308121933684877618015169248093385749412433767270404610329456360368084001716076539238133503861184662504051527773784064063660524101051437679486239590766379190460696609647491350862573116801921323529469632163843798938604615270772682805702928799772109085875306029965429454102584525133913161346364293703392256560767054369449744140259415195497091896262442201561023145580082028458774740608010578243171320766395126226048633810965760709007806917119326683504902872434414028426278936864286052351888770671941313880851020604561442203079754109536006205112068590839939874887615449634303572625332589792779183449748356221530149561203803418810488794952789044955123062730699652365793243279463414019475529748705778489795601129385503708073817794972444829370659375743879468162586705271145864982143579035098706349336234336873632981061885957892876017939022822596303812100849575911094122418633892056773509442188393308140442345591963099043235655746808661509651134233956694966458898958666661005105474961870852960920859015317072645394976882522340157663515625485578113501132631269822352154376664342989902195304785767026960565152867801430168136042781032971335095621474466024674223378338411711108279013905493206108991407667768607595032066856556763139774718630241946152109223979085957563679649545713033950139493541388310987755617836192792593076669201596287222141697110176242095553969594255263245096721491409875939261729983123422630605670614095131496915804449747340746772338601823434161397089182735140040674678700654043962681289182350984883380998452803979327535474688585756555025009661513756466640834605151343721949624601144757676312867086088631187848405160776971964937524384327078509077590022790174044515135398056291481335320928716139243095457508670368582801599489778473990093269431872952959562653133236737285607042670520940373955725065698273645784068657240283172895112669911344128875651779283065984754217441208851020438683363967655614424300340531504672839221870116761260837908796027992352973902783160251228756274698400235615501391610014191354036386915490038674179778943863854350681103935587942597695578853728054346316719441528453035314658052222987459828042554191434142789780116836615740900827017726342747541770187158446766185480735515450824662738706264322359534391015142291503685345564160836845161031505295114258772878807134022569731299865408765167933398242654672758864264897966374385351052053077981567724960720911603310708145641846812483908010061802129698418400743923266966164081895985183513689909135073655341975943253910660225654537618133157563036718160302166260470342207875423414081469356937276950678494287320285577733397294015118397224902443826003826310961539430042226446646904747211857911466779764469415040616273844264733653210188780295572200378618427975267792266717710388488448472466450835830143477313705538968247898658862055803681787813118715914540671288838984861115460343306780082307257597129954606880303699883149096215788305706140211518878672990416811035064928129896851297696374206050654692581608591272504725354680232936106637562255459096161189510826219846907030941344426256422896995762431257811413332395970439751303208246941338867058205615883965840716428177441703109875937950908684671652713760349810213135139764719324057344108565562401109841606699095759911277725823030811029540217647082451027925601967865090136681059076699341774834259980757239714515637290275467924886732675337871193875513715475769613813761555772443343801126253399355238896354129440795626684122062119090891346976836386523102015975438024887691554372117788849225466234589774067283232702466494165108877020155003235693080060915371666676142064940528800581040485987991992313166989478602264007991151614617886523949420911274978058603447620439969848944685491860765474754540337580448623769895884578392343290424146245904117575664449580500966356192887874443101745419041621012662251891158310036379428320061415608959615570036481443806843162247918178913739839773889439179942840230754611053391755864511697700533365641862437760965700146280914161676066180473231375346376048952073539699508211224424796152800641267458764635230742629468094942040579081425930541228885817744336172955589373655836911454803978681406253954512406356928361564531565048487949044210241399467202911053156750478944190121728235885339811044120043423581910173390295091666718594074202821276924880086591056011545339400429007373598260759649782295091442618567522049668620224355639459248772589198547862087559987586469793493820901904945090956369979214423958187754634653033701166165188026329969726547277121204899128333065767337508813386972499682359196048221499342600798617883041146189975628519545045762433593390273654865002161752237764602444106928268868999188732745567172820718856521052479468948531706178003181458696054527220418119908809860668820222613178666158565948587949417847405158078212563163031898105466371826319415033359264119285191452804953371152112869046261006994696196142429461269608647637636526160962586979339519668690538730515255816469228734088925644338925912493176653795040986290822030928727157732834972989196523517394994602207764029350547241806264143798108815417042170156289734116740575258001690246024483627663118304135899591277458806891760105487607405137416844225553468507564088746511705005312809392638536237675421464875473813367096501208460357868008422339685497604534345374621901791811198199822582946149837131382578785292659268419748966559611134479283900315242405102702820061593826396361805072825409145424956777923074273544341767100677749026615081942272674837648765487698819442102763837405569171224253690138127373352750079122193232938348978397647008212301612945560273600562480984291982250560209155327420631935763809307627681453068540651815152553851300987712621877036774818748245726441588371591639420736646868190551600550696175642756175383430997809367525222986468685785513265464589474879151301661177281641615118939579679508069288837151232340902473676520163531785378949567160138993886999567543336780035905710240784274519073376463117614812144491781251601235364998086706589656655942842273026801580252523332044571233792885446338968240970181828719377983848674385176545848572057507017051638639676322656803002897177972585750753085841395342838602890716739961491428971161498056206161714428070011106257339150732464622881300115473868333647618008211476603902317505137164745385261205352939275701498185931095412484703099157836541337700371090223041133156839691226689438597359581905750845780650637925119964581262517296181582672371134878388074475571020230232782193687628310611979793013876841358296451949768119812322528315350097391510537564432798870267920759618438168607383829286467014831267727727357662908017669682085864695441430419542638809398528006198343316728576583008256519595881350205889140054744929978737237191281935822649442774904990459905306567109060481438827918356870085182282377037931171672551758401790297427396226337874347847679341861377182151868194081718579738742045461802683668110423765771243548009313942874147955758156522137415835236855425318715569570399203849706543867302889609838919686302453614632486975748296652796934399558256459130168108516329596163991215149784324717596090373951141117691374592583444054791231565173677641107838449965336814288058957615424416090380887462340271975421753923478968377214363618697037120112353516186125278742897334547110092459742502033353252372309746946742215279406443179941183834321369361100207993209440778190906601258306623371906829263918827400988113923300343012253324791617182164515561632723288527549609155221413524692094472750947152405389287326858725061234088916364463075673383759227759807706636606800694057329490786209146847246138275703346271722346785905784752482194881495803756037816928340835689434002569207322191860274077838328610486905763847522419167864976664568143188357342828499659988915677700322319173953481400683591511169362075843617160969227495742373645927100210265734016897774702817909127644692002078982624592646378616754128582984006330772137967875016949075786036438675968793337045973796194211608872042857625426647526667664510312160084007402821653032504574953558891377892168135270625205199556444117960162515390152470213217127101225586151047139061469468473530616703496576428992927400009095567912766733060049691491233788152777219546732001398231438883542308690166671475225531615127709660476743257980229353926680099666765293042139612204352405255368791751146487263220347946136502778477311459987399405872098611000922558180887517359120334277159141118087275438783416705037846934691977409482878646712969542583844838209790020340472467710102374625383081402413706288921425827699437675068361699840324528478116052938742182732353227434058298255174947533984053214061087155271972709631007940818346384215591566385950044187011409503929014173984456005453481392375804220506134938849743563949459068287343556724569999574831708242380653316359503552496339167120899816715916168763822347483139567607537065796050018388688274789818479994484644704463438062752961832730641587292992384890476531546568196948609758890605695057029384248322109384823169469991668415816164601155618146113603999488300672842527030196069089701937990673371918599699140529903691191997550963125346369295381589687041259141422746789124698105639014166416662502840240078340945759121847435703759701952783137838991232657250584450477310215660433684315494954356920852853696097831107119324495629000345184891597151249955865825243981217479342220573118698480877768614004874163567390130655221023386591221254135999284375286210043428493081547004539541106967654421751020678857589119199792856969402864340660812690034150358245500890536301694586367174311058106820678601503985207466662401918323396644718960946893696608285959802933027785475454229192083454992954213377335894575990543012942405387643743638529079327784166864993533530305606904664314644299408774147305414301393620407937982485427992734548038740373000103429336815409900348718983756267291311073069051237209910285096325958419191507398320876131753364493566870457168886089898220875738887989319476486989267876211600338197793385711730211723500637960891642696466107139652389144444572012081721984791311814513346544739129469127797423411197972978846070379897116039627752139193308947309353339463527377377895789372355262456392939782556948890605001193321963038444398410422831615905711645660934411915195144409321120200589023423473762475886909617264348479429246641000415387223795020839627142677724429313661885447874779618550601245739590098704615034779926686394456549667499666613051654314440909334745983141052439821419082074187567016994727605246761151340504387649093611039191118058936334830319360802157631597465172950850826418237347692255035478195971092665828550276998218762301791958700372974748076192724697481168252194431256558757577100037358088134231191999474133828811046431539931960308029182533064634096184575352316211310769434902739923893591381041349241070663173016022845481764057851560064899834304769916134128836915613126487024389373605895322679797635394100797404585373433962449717010233255120442232506672402745955958331766427639068081070577707040734744698848817005386064883673346220654574348837297590384161829687191814191068552343280300678196555528449232669008370636715662103690248786720568903087484633821629188053422150241198942304240957639921978208089791497767541482976520899579427338594971546101632068667304136520196995059184228584541179981239587645691240302253898839099324253637017029262223995572063345531517463062755640884888838787325163708903959687497950136109248451108675730159805600818610758039801028632622816918267988523489337286330039071066109844949061811168440255212442897806580987917392144077831363769016169440723703862406332321205058376500669960510486417404843394946531103547054441403073074269406004922134852636777322692164637765330185379406003423250377832268463234746306429749765166597216187913559948057293185342824981865992490450177305758208910594199216493196072743529317003568990046375243856869291068892352783156105158694058265580441052079634357609663816998128859091712101105731720770947895707461911717702348818972049844906294998113147273787351897755450650656765259240788894747588388097629831519852965821615858640582390659285934121182534244990757571706234157487648072828790946712636159112993101220928569249175377160349191905096140391870081862739417348429991638760843943557784573870228015033960691540413998779950819680470005524679033490670645565357356634942035721212996693845775256839969164123702852458782369978042658316072246346328521956702570246034249691098594456880709700295369428040437547648141074053575448365179602534093892183265499523033403452114876369089158468117054678185075836959969626081900347816350591206729549881863916380561468589914715660173357857938682054911311870717926825561048133106847043912696146651590998341360937889936386991504164866058593298981708563458352089527493072572643066800999971708424516510476981968931527101305681411996665172941492864727462294566937954060796018144384211016236761234337673421600363888381352124995038090038138545911080120446749849236697375891239537740758285955526828600436408403415706353279359384805421684757295155606496894007755313814714139544150388105193293840019996000384600322788511483906148752551254676060801623872979343275179003202020226163726147609730895718494730759800874822416893254420853105344397983469764902304614540385958846193193459535140389453754861225368721358085282483035853050817074782912099249708508789839279988957670046101268656469098367365601527318318313849319467822139191822637053389858642806827378873578551632307133309879188013379684678493421244552249006095328314002737222336419445162179796743708832706091562273917292503995053784309019750179572708600646416490730910385762719829454892253877205137949943011217874433978445213641774253816881254877024024988797805191793173428655931784647508677160675333050426942040443649516030937952015154080482713299648821106663812606869163333467541642523561420877876348299014880594599737853556767556810122836348659912653203155197284580206325565848373986448162947760810373518439828643100737275733805024110180748840933597224360993344432997519208238989602868673943216705960507252389458632515322401562511502103660921688132402898856225332673731053102854318104698040671781088203179225748074842522928917732543049445706865596638815466863527154209826451970459261030485424762967141665769286676009410253221131997212462566250467997564439185965825255455417747798058273066471859205100767200001214032829479287919840683323781335332030633056527842833222060547751825709891843869003012122024233359231331164259416196482627055880092205205130399896944618218508006103675502268721667250053653748465445776392363481881427965492930770999934655954916157315629624815111737639665228512585133487771506706316516721292297961135346736750712947304034373938487399405000503440166921490022738442044018241894988588981534768315776919711069945401919135592270880587276693710933289980200315626075359265792775140427990766696925717882040623792700828132969794598814136128085794700213227960192450198788377407262140562763100258448140458760311346970780345692691635063398032843027760590588794525702218135250783805565323200166657923447616327106249882987550702748936363749456387916348415267724603915184069034231732669059061819415085744316931459584749899724279014948433269753388662626848308466425319878599263457852076235559553136825522570565725567167862273169782851013703227999808697344398175970487129099019505848678044796065971544711777175032082180218498276577660271129062785443766401698101094527049722562786447319686381400626334074724078351240087799856411762788737422406545948491676651762052506921602113855142653814929088973366439324255896519848299419361912592955404566357430514387985771644249882042015476110944219352928045683907896186688981290540512027063810751969506479858261146945837140384789991757889889489816026146134558261461701481957621420697049156733127166163658538985598442180616758076538853439770593870930322084218836136079837035115848841081683527027125349349927444233323359756235216303762261858503610093045045317909790524325511983299272616754600843417052954917391906999557812949033588368965316098225292153288419836696005859929241163349854815156370523685641187812823656339155291344880823724238380139904678535873928440987847538846900880434251748898190252480674814934041816747920294683747543668424344486914616998406774481805165944012573947812769929717926916027597073851486936544958455526365883038431925708974352101626323706286464257467573719195158968631024417679980675212219833487004317637242314674730333840312129527591776499516486718070794319447954703718967756012091751250845578692880931848790950915515568545326414507583999410316331613468814124966094345337299115614298353975631078020524132566243777025887962257049989149420302574963566314925336007299157133718971550633736933773559914765159886347906831325584598438174848007370143647015622183670077809731271287094288069428971338049903855191570202680607729501317920120194487542757349824853669724045772832853367926098176574521255803536257976362055962006958407228370279827741139253073488459733925772739593074540046706687776726962680064369178309081735839328802721034461414618362281021359175645633409252227659601525505434967414044300117540429854291410923011239457928859605557775234143945218367414881314175772291287904563322642155331302868660320067729970783954413310377006317366180251350699120188202796496533856080328373880909470030126396995685452646604804781721100268921185881904706815399055596770152190716218553879359482415747199365883170247061538038269989687716903998901748183668395627425890748020371180256286739516601167210153676781348216848038732828291996256731452562891499188493847105890597481771454017235101721948684666447786848832035268452812596757517791959837231945974356518560432842721359947397264529277666115260496545277559862383982315757206599752841833786739047206410683400418005041668779814060537297806150230334005376179815307886524357347580244638178813975088197010356036997102005304973782938483159387250428709129292399830657481770828271806147946230510683658380423045925606606333818449167427371359095132896776081370904403814787779406491309380811055521420787157453361526368202192906751499454742417380355568994907650821966083256463381237625892181697064105694897615073133383825067967993806711660838320159166006650470570454550894386789436698014111564278902487229638705250284075688426029105559572517031076338170535103022454182614017438853347391260276998170752242227872939418149418283810069435651912889205936988501714154670324423861205383666455185223835137761810604084961530504472308094525684437931971389643147555263358809337634597993030179101205444341735314747181236195716170479460763271117552466557994975001412099112231130408720628570572372067461202805748542617749642867775637919432574732093627160524063449151796595704868119717192669183936340653811556303391279601926995933797749645756082490613359274906660665379507053489271796969591812464734193495691035691517404891371399304295679281079935191047454732975198657937499027676687064306276366309818300157741485317944046921019180083626868066953799225185559681158154239109001564939096265542390069133004781912551818568996935521747881806806116996338242447534990656841973121788703957007469236823916192540935509922927773939926469647747250074901998522942226676416476277642741926239602773441538579993539428307917006015831129374588422636129261208880785432226273388858243012685598258591414598992659894053260597549719737737129296684117095764418928914798744940890319393157919571167219104198037123663899210483110633076772789704157144290213076851133846506448423505347894847917194871809453449396323758145855485824334311580436401937029742631499986605815916560918724052356462157608013707189014084735667727097473256576329813103558240326334726081376712665083826966048651638497193967179000420956080717511788176196087389801245023218389514484333219222977714922025468806829859378960264786222815448272325938087676283135424589247987184610160201605442340503225450945100007750323977589879370414260110394420734680848996635449884301672605570253708203904036903358447994831152512500463393222452546029119266318654097828917274517154069541539901089551286593233969631945758122126838819567604656763509353765271198701212214051279083218272372939457096171167257526724264831407365967328327454928057034141444474080847218859067892478664007815147342488509919058521554451021884784266697146276022260397092735238053471221445593365862788677914246286066983977549136412113253251318423664523994358111793947229756171131985830498610065238050094269604766149860271575791942572907802683342894351511024112355229795800307668317462258809010472033262025818341555920824389303388746818462976528520874786441405682677521625803364355598979845286261317110972483860510014615331868345027374879310390669515593443951603941607989086378348207665303746481868333835683152887449811153466156834340010930540209638158592944339196884622169553814618827186425084356634696482652425574389275072645807624901805959555807726523576328917639510947257749873733771749345475527659841612225224391135030619627194095453842654970585636178814405656266962319807375299965429774365421658093537056979511220806762450405163183638872643779274168343349676397499464920987502424715711338087658316304659708020732915141601732303110767522445624974732242788595139492070368405543234265816994291387254356567825487852430620450655872227008506168142365459414017841531449640733083595244701492035062347415591781172005749601516829292524812985489432350426189279644495485889252593219796570596153065642846578461762082540913343726601309031216987276823093095448831517608980000929322229064321524488980850386871332556373529750858229222321086938958741668638089730603889070804612118052663220449852811834925167779460096105992318695436080317107553002637601364010996209668517402007395061815002136560295963289375947100306813506677814732033833947141314029443135055255619833836300210144531926700719195796092776211161410463689718858923747850588463723692292922877969771059217916228648066440825800009642952682730367740364673620920804670723781094482032339901680935596660695052397645168984045642685226005751626362209168422658036685631198177785688640446387263104182216819786820409973748904957511676879004115728749923439276288918348234119848622837187854167344002421701870657052174374122628281791482663940363444025786422885693288038933257314553275182585850493374450012813496499655505851427697144832437717561767841404312040522504585996875068353463567697438991085254341151147029412075574299956717988913992859566753335515915878702530661520808078823051536674540990078116285693978555035923432267487260820884098172813340631568627474495784278731141456085222312245377128813489761606852675777038367498187671301191128946795293013576455418571483147087810739047527272960282391308764924756283692672043881465086084220523429303781657988534158929621721399849083279564736044385484259494824342883079648561287315504440009768319423020385748212916970501932589715353730279392226661274354915621622714343712475250017244374264831498212756395045082379850877224801452127920903274428163786481767330879975363051849242733545001316331112569204462959487053076233288829375882420217313750227684398546319597530993419616732004234683758293702956154433392675887607487361551678646397842017939663496046962550963576583202141699925072710701811493787898425581769514028504870977479005369834464635571577268566082554742640084861219350689809216008999188251822651803216599031815065505667045638708229626088782719964279470558040032897997977880592881249810593203833490919569626901436556572850267144775180668983843791549846050635112569646522033217455460780930322656734716474054255867490058261816505233297664129048795945466671404560504358032461076663685097854585911600481991423268233346313267165857294738081829593893077085830027747572917546274282022581352493749902321955352501623524106162162572425664993187706953938931365325699643677893321438214802837676445464944016818539119116523903700580625207102046777057450748179544790449164809792135349026553814402991242146214328814680188757302644301053901460448472169712517899421138887566739034940814413483468492676630921980959280749892843208753007437213091574678507784226660814281285667222597678755733159044225214937797544636931320369309819833611399498393637004383560946377531240758269717231585417678632277830179225635826262708729041073912758105266176792918206447191053957557694644797153499109571649898762992318884034301736881658016780801851687661597043588320815091984823655629065737077514843628747746988195263647029222761497906735226797808670784749017964083161916965665148715319245289183447001739804478219749699286553015992157898338601635783534989669487686173071127836464587313406697600381309389401585446480001817057749944233026287571239973212470234244863005575217215616778258527452093563107717982425565577570831797381581028821866895133490287643355576308458753675225109426345271256343620915603087866924131842358425925819590695259388621818255176881514244142004502110262267082809578311432179588094221006423602115116302416870560703198867985374611911901819000269234884667187438222899879403413044424324533230778681756257377045265742899072569130234169075151149473700334119304021668765065373429562619847362257565653006573336078059397211110371362952501119221446539468545199049278237128291269323990092380423337391917480501744957667581793098272833220794104138602492749288022094174649327489633082769920667108688985986601011007935244614454205514144446531154449662481982179952989595503270363075972726111131811128500166534848507522393384268543075725763307718388263267522675716232067006626945546165027587678926345310759927662953833515726646772979691562488647803625627520575179576253432626101729487528615258966188101917380290613538894699009486031873325469080282092734365269798831147253776760549304134525605440012252944883101703803412308560143228320275643036190161023428883112396033297321395150766619831668463739525497706516275884575148799761739859549083472289205850076852605441209724000347638076689245336255126998504921203460911897731619393615812956510839507080924412344088787885912959171782978078465466651584086084019257359530146355122779438859076301073431758620629601429618175866629443157481950495075641874891864576806336712794803696581574343757389030581038934367123707097930795980622554832876696482151435234679341697715794277413255655709330049288758948000418929650418188092837755441853051936973907042672999833859091892440990970251800111189762673577724725533847658667479972097248501590542657532588247690586737286060219375162704103940516809146942471688225450205324279930443907211797833821184287303212220444768805841371997236586717169692646886174689303038969992462980054217657983379040086069957236357228747712505867349706160445903792605199885922891193757054523129228129141437562263953152967308384080583744388429710117560485377940123167362196333354854561533452102251044392474958786265240005233514966012147080895367851315490164099333601485200014263906663316626083143976021682614360459125935463326746140479874838618345992874694876150250256741849378600267608408216841302181581262613924202681226524862569499538550653204672615778434909853543757509877758556828432454118935441857158834322072908035617888565856192066503322395574747059247873423047628410157529010446727165637446926164307152011724896729690367449611365699827273712759132849038433617297906400288409965985821228939244182283337817941095068373136454422046661872913758855920143938187470669188202878529895550501713806718232883453984862855005883814559211917053907569284562245044928322136978881369577918351759922061142976819064608628009018875410792109982428503652566084616632066733687733079331500072069149031683074751969481198155364503565037747631428415953927004029319164145348244557393428684088116787131933424489391444278957789043845328979054406436809868348364105595909943615647951000728353302834851729334364890699587166176254549616037963449408400578556928448562234153281895060277170674666935396699219016329539765602996330743546579970881132877321911021229845262296878148781989154033739985442977597698632151665834498789880679975112036649511489395159396495032412059220923630807533792087891531659722275090126722987431849923649592263108273717570458981386892597492939662497464397935393284249880400576519373201647243191001833605083973455492274109398650245806469247361182202587278634369864245772681831188927771032737929499912217893162444707707987636656830901463311025328550701388731419988305679006678199918492496073783396715090137761811008460548513119821121230405161855768024335378116843618226139244041798888854083623737233473530725190860928767189377345160345527748712922644178376346197816152205873542214767875625330225329560803323344882230153395737829422478135572202502315487557415354682341554711811766631006506567943765180246473462732123172108584555175905896914928330236524797397684949218854011427664941620099623879060871336375177825003547168707747065520098062088936465103835411249934945284071411486943115690102519500262989405594571219837044016594219397648724744377660195673160492879542307419397356356227180664875811039715497980535666744651562470593087138998673564856726225686903574040309512863663944078134900532971169481242111839166938346120549602109563369933949801005833229253045564984922545773119950628567553868428569280533614600386427355275030857392065910578758848985636955873865316546096132108918576191804638576645955385501476506428899684230295515757462358669830299075772741926098499747914328921739891526827501236487732816257396757924916881497947808211351037266843976666690653091933127350260071523505552400024249459984739758067827194236893012787880905434030997974583145635882878659402508165644758013929512077871475621292557162934152471066014187255066289856167727015463293837024222643396001607239092879052336573962933335520858732630607104336727841231885130261919995190567821677330788264273306171139589943613193167891130885238640185970066629095534975407427232263094405950073326019186760650157230071462231538572735760906737510343633183839837520171787958961387093187453973655645857529088756648635775312886448293219935873409170501186989025353923583121279959968274572521465385531317145895771771101219608850519742776146658265072848276451321809658399375117034851068156664736658580282877370820764839461891014698038707442668333807836674837752921604737130566701187285012476087624362832240953394536923297025720019941564192965804024706549789331029814755844359588840226145791986800906237101208001809038060093728542752980589792845728805721199118152478364549153343267881281879657571745908846309809863724592472055655061760325022307554841575133579086049660994181149800320426561424726157829729258605211136204094276445446482393473703123663974573574584743318942274732859857263118745622223964047935141548900172077304047295725209602373814951450332813221185959789598981659106581944691373630895497202675943631803012237358283271841867409699099772206360517960587659948046371765757950494474649051621803258941440342119421364882966474757670126029533435141591341188209259981326773064801014594324459747666173774363472017034812211299818333281935028806453187419790794294326239464862047431769771730757216885806590856290474111288917348356479772680007385677916368575818485505213377774120132210309774611207199743729042941052803647340857227006690021769430397533026444010455887248203099075464790892166080860432135107486289062616595572147334400129958093555553984509029517378847783062439033107781951749144415365743432687078659024027576707404972348797048340190255298683031852619022316465630941146978852429136789936258188036697421655987450126263977220967522812161522109319318151554850046589303270678950157592973423209130427145197647381463681321393673868299944278580852715633314547550155889261714240012504398887857023206062758526592691253211043676856907955377719242356393910961880221275718072087350505343311938289325599122083383938746619095969332462284890028826245076301074845285148277837216191069628740818128787878939762232488451901481818114276211508482033462851917002315722399776488188160157594522816586300390792662664955475079990249514646890455500969502844643221459599788250224174463047324618409955732462978093695545523469318628149999055834940319822820765903082568791659817286049106172062793501636487983324433078780602042690217642351931390894360437017815841385524639260476079103956195738360863479597888948613092957343248594525489043331151643649706058412522287066907594197030520973250120049318576219085354305821340555212326762019618363407382830513782811497962548173738889044272112508358625096387281973879111469605067870468726605334287342781984191349604884185662131270415939792497590288738443545280134673762140376212866652498666554596175512842673311568613989409415823447885405209988106530322514779125678764714486201756606424718115698542810724335019474428965509980812195224016072975323927349452677850364658264302367805700303000296639194645139984602654756786468747170517998838065375988997276388562849022614862683346080571506756781435327867170537857330773781160722331952847156106247083795383633689509643206011087434126821080530027337920051147118288300757039882663002899105924508389892038442278450354078285707381832399184261481219418458244532762146357207553318716162862382186724674031390650196741388021746775664357253265751443040179668650398451393402991216275173746797858280119833031061629825247874121291314281923987674017066800469973112444015378240414072093124196636271223223422927882951572627301386037065849037985569187363846297920228926244159539025901585682289111274533832815402316479227685193613931698676470466262165914195543138160486149859168749949104098145491145687992147576287449248095405350795362077365172629245882239044181134462582796914697066452014165611240711997748389298372351834780222532746012475388360612231537321078014951796730276721175650168796345285720292546091914856574151562788691890044367919784298280891230644725342869059117336944160006758504133018779460567662165198370383378431371419095045533043283915679916548181821823845105453864946922820724342808727087936637948536733196297416818514808217879546558065421169308021225927063839115515433743999232215149738296942805490648838893063569163770156401994077779689969585038592442347592115998617051738757213950249427773806282442497315215240425956104261802375643416040626584032164709650768654079931588195178465196452375778943868737603746430395047086481822214579829873369506793357225708583799399424211746648535448122075919267467017862535154812886775638468031700799249873280247812663800889810719165948391580221655025344053938418800147087334366820692158529721173081432460875590799312909294098694840940757952746981441826300504520733905146169502056323155534480681768833402833870048022710750404583318812580365091391447436551034277444512477590708983010163595335447303396531922465712125293935949041012893586416394325791889887094317047686701874737232699065831845502247300416052413818335122144510114614090296837773546139165344694173789483532915407723126682113894743170008125284895681234339654443806191841959514336674039112740121351240037688549949277843202503966515581232382505771876037141834799384776606805667070335481707468301372958956124527571563977715380581645590574197043638868338847524544542953836163063463010332074529155883607387812529409860742872600050641165157164395256176775983525971918423685229048796679594727931313632988893686079663740522195470021854721092989392234624602949054202915538631893450492665784499142945648836003504965647891917515611239291495390282903722413013563251684429936000019333835594252475774902784265672365780231650148532590134383906657691654739240437904423004672358181760511470951623198299933629086577533679417402239573114675266980425575619257552768700294269107605169611476754083681940221163275719244105421098261262584534343924420709432875389341575392356492659724656544947075718817758346183723905040933703662571786794948520758356901851646233020099874855054050213863081091316260897505570632120243783787213889300092411686463400184853313235862087950391231519970120827715120474696626496356127911343451661905471875326884452234449011571571750589724488309839385461591213469745111830415122031849988580609610205293440217237788756039887317859578188976755336191419206211613666821443398702750757762260792743471699343564480175008374633492058920367342956721042852533217985132253866835466379575387819708739772531483857167857263640888210815850111973793144490357547106472652514367674578408748315124637449451129160586287796226591615693095842784972317616375704535159478754650016795680419171433539393632558652906777535691437661922351932400939261007200417396889964954650370184580380607192811532738748569430591374749705935403241162205851200043668639388527135836045410857834790974280419976203996682632975673683060777370261189605202088189519752085666690193983305046429258689787899516276829005242840247044502509471698613784810699627748188385843585009463451139137281356747033316466759509558408732097624467730837533616443351553993126572737570619470519015848697485516368172694506858510535963359324622370215684915667067041277842109663575961855062832248505652829559405263436554408159071603621648469008114900092274525063385162828560936310302600671120577088595035688303179929158118894698495230575123700667178495651629477328896787530728629721741389366931404801932180821875972190247107578803486148946800165543900218653223132483484285104213750082935598765109503288436323140299768806269359098486677102277463612157580663787329509647497061823952980939756429012622523041414814332737005425873533834886132156745531286680487771011461267235055652236957299980631438671808680608285844265831576947634697307170048363198825758655359967709670619943502209880906162657969873466259412237629295571455959424467282347747044491982826227033943525113592312111777871606164397299396295758059053024269201479051310389263060258613914983196969466569354517538400967944104510193857827943485899406849289108785738528676609378628099553502918447412680789738586027813361345806070995925825186303814460617289740782127622563076813250926393599964610948187468618937474242604518069218660149553503742007983083379126559065395974050456087509046769939088778102994946176213819104079191670429623122925516957753911117187849691924643085365350740641621660538282504437777909380809959129526182037555772549401268910757132302006799836245255165563257249893884821094043526490190220893586385911511846817671341885790014252130176932131681429732976675434474703440822341321175232955779050732099943249243623145015935374515521466395184182089266905237816670270529672074638034549312829221066822898268313150496311426389381056289214789448414854382815825621559486132741528114995592109521564941904085564254689541254471707506521228862081990924359031414229471345070719130051909067677770720065310001805199244288079950675492614294667350965532383884028580261331984512633981211836257446381676600606968896282317769939536993286521968886823671091242624657004793810944487278265440224318416080049523500413177723917672582430741583286798568357682952210712113916454319621803605846768638401092858451691037012153445771498288951205301260797953678442336879439871138161465816266253654739733275902539583011776109527265674966165597601891832844741098390017233913975625885572536294134753374596225342252112051040841940721759911759493807883613259286634489776360701282650368412781912022411611287200573772995676758498887188050131796945532168883123767338869257880856902063998920104501083311331780983835733627472021524521012201501345331430794597557757443168415437842753131685974337840069519602320089184619265339074867466071503812777062365277859072862143524650171484426561001943465010637325988487683521889445372259658291777465593828890859532359334981144413190492132716447627236692523060049357944515440378921848314486974337191000080146818991826287451558846461134254335417783586986422641953910654132683753903214476349502851496638495759802107044215701424422548809508701906232128241041278438354813985360009477091625231666022720168603260056478460675076173115153589532926056920340653093391506002809881635166767746141734752845719822970604699005919365554837638170873628758242362962471252982955600237547325204783122786484198484415019186806847446088541233791420180676977748055101205249334388158479445125298757114247589533340946935823544339388978853549190725894280780530091408556743210469323263983681290122904671308896887435239644467601162628578256352119473995921757449115648046837993587399189690017736745412846732541309417065212774392810586828570445705353208846293391151375426429024136793978780243670486704854661682987276728498996618735841491470088290398645819207184355642955610705168525318755897523834210992232033692587078309183277266482209641224092035224378112150090680106340814146446967558427684752117687321900982343768099304593907599877264300396991318701988560682864537257032333995526751982113731687089616742349152532429786172398097008943750251797578198636934186778572388723501366568840139674004311944473450753996878371012640680826581785150028859851194204126491971393861012145333838914233887101843543933595292794096490385469782216971867197852879752085902126660721185734198881625487591380513573123501504416199797577541013979006626846497617303241366435816343383119145028644240650055053051273857020205507671697950119965588831571973295274041371342865079035070198177016705639098822797409510363177965130431947280528372280244933055838212954276785841250519464892797072088739211757766523830564076308646457113446653934543207444016405923816812947976675728467469106092377482702389921158547875689210476507797508146191617868708263558121790291343940455524203553172252160502569197861321209645174191869719689014542587468160858683320965750234847221956909560955844716662830228809765309572846460457991354261473327332303843227150544527864023989558869382427685691064042851895628093282548394131073947340234087619900400925658840743717826964490487920218162471660815303284818766218593157672841057931888586660130851303701155066319839016185054084504081154085204951608956672379055296151448247931863717375919231407672600875873117296609406102019140272570266123453362341622959531908597855999506931867606258940335788684909036251409706160581981193087673220062950003123734167241873448649883401289846509529927588475353298753571550268755137259186451672204195635326080352913054410362696603138517851247386762278163626536282996131239546208602601105472420683455513346430832129077447998726905749868897755105380235382043046304606283016031760451346049725650384544751142070233904356069357167407974072163770433019672740983963525556664223036536754617115624282204052363759631352024521306965018081164059998507580830556931191865721742456863858920959426011076523324356615418276932852864238413314208726970934932961452342120996151884594965109280796692990923702750754722486939960383286181745185332604516148799353272972133177766295863442070405108349777452222760674460507708400025156529418925058336384254799823704371674292452436258869528834293438966839631822115761531638137162325996955424589069290894008424754745744801422075347777504663763951485438187992683746624299543786272478756751830606460224501307031098120509775862424991062564742812172194127710815159078578991466628505536942418394928998867186301459317491649783776023001323284661400638628702278437489064470968633290938065647592319640447089236232203412764356178326618118002764415572355781196202087547199969520355843581085651553546238419969475517851299557965749145151533113692102883365824489437709724406250252365910549741570256330038437599090419574533841946006590117326374598656476076214982643610594191774432505757312430737978590406685132973535114612892214797557094405177454946136400988487167988895009191630034689089842803424239276228682225999700851854717889367569153210468173552523696920143260436806615579553293154235035928587232619846054830830783810146426268270699429341977403041699664164045031916309021963872223716788207266531345418852814292553346863357676773588412366955714882570233281953621730089083650168200580410103596396937498284634035455475360188786350793108941726787014075413747910891965919101498811458124077977359345530949193117334396106793328974471631584450053830513554548622049512077309779625886970062349531112768763350082713346864466438382589703677887383904008737356714998816327130563212261119459700099395530329392661664599437235382020300111201692958625652235381301568944477347179493393872264056950521593375171411721025267606874487726229358174440457396117084075100794393378409481040801297976378027154832868734968591276766070552834884373770782754095203086826732617542794182343575883994334293268509971586489396938093920970185053814346435497980260626861154320132702798929829856832782350067736512309351157282149005773206835968103691124951348394787560546821367930432443357072731900894696598979590134712358336156366167871190607431167463903578269736686080834586709130238661340065866533891878728770420327951758623575919796415221590236749655176640135605333986727251130009411376116380748354605406536584115054334026493065393842999806941670775563699967341261559949427623197299194193541528667600943661702586150433463782814110255108084226068711574480977247555180431878405472057514081313318421444373968486129624652663382014873340161893932358470949948879916908564260266043283143242538854379233492104958773290496607190461745563061523478347355515909572874995404042624583335962483115692403407533177907005261394999474968246891312588503687087843918071510461129813715333014611319951071568424942632718450061549907665915378590691001997878119548396660498007727213963629339209184504278750622919247100125487903653575511174081513764359942829312480706517106120473659510223510120580287503769983648413290328073931171229662671684158382605177621260399562139876581935140616445789973125429346940467051162321149299504575397323897463028478983504068967582740971457248695779581524302110306580361897659292464070255142594667035095384894728181886047446791924709661414644835586048163031522127026802806978993389556585409782515603395670405331787145363436970690774671503479867450700675964158733600483593373389689524281761761739852140020745640211343809421788313759874687496187056715871192553709948763010592684850706456993050860588159308379498792739163146548757407211668272368402556492927537368722762367165841715802898540073053482323529827574519523327455258149970201371649567267622031739750906746347025842725281812350033907730833575862906000347509698721214153789472330433442656537917153538704528456210310010341400608686160408434109183661512415292351035525632476885560109641378120439904291857858871015175198753047412679722354724661521850473694563161774846696181310383700447084964588445159505442217432566955463624945562630871643108223864132647410702178626664721338624989649249657720426708559962579929783421987981168150584952293088809401866871479549442590872505457481822777716367009569366043669015824417133959208117846853216105507868085592662563554747321711023287479740459273079131893427567905461846623557381436607075114353345730394065016692876146415913749838085519269366412902189127434321974894031947285396287287453861127824598686808312964603562768230938566089747113153152924874628852979776552559875467293497024035728932650626757659709102785692597992968754459596542190450785115582925879366659511537522735421707647032091083125375884019967130380505155048820637014850158626456575190541580008086118300228499469495261087199301781160268689038637558878243838110586263709601377762774124345638407390479449573531733175962802924862315429624847291404185434302939616176239093796674704867801517936670542150835306835861193153676776804660602084054588384900825984406850548726771319210389387438122565973304527444819843207632171142025631582083987781948768677414971254778429203188935430754637634726674879773756231676964109800121553002077470574100527840468944156912711656514173369872800255321140595110280652767793175815297686216242510968682198877356692548152932982335328212531309320573913642352763667257445848016295496006058301302208347676725469486329667895105936224346835779469845761060256257651037863075755998633000242241623905999845385194787013810686883890621124268392858139443584400355871348926173680340102944039679898507285916035556250141373348493842594298135221119909578623890916182238416977956100346141760758389841395126979177728053301938779590000542130760192759959689117203008401401363667456493074947911340168323953863233322036806101259891095053952572509814864729657113510377743273339549993641062980746442522428507703103632578430461436398155851879176964637812898731377819435439274233862691179015400181283618946192508310792204638915372247921669104556822206451290789169937710616010810003391511292511535639254123115666024612150035600195808519542262909494309521753273324618785039789745208875439694889365056022794363356591483481451306126754570513026229529803132492405661221596983242459880916379549526747399519722000542292129165233671550596400805368961537017612156433635860585155392207418592292452772311706439939200457335286209233995303809198780179562515485536483023006342102934141872117930188342132324088496369753399191723118633120978876941106800084846719418875773056993119266862482593170717044483978576164598944490946598796398834297463920021211897769414706843108099853067529501455133377759496019128777332237470620534412207872510007315432927245501478829866739543220659632843222661172584366154466068193353615321685981657935831007197669636519621776545973053518909633717486481707313651257975371236295237848498199379121521119761792048833818016303637719422432392607966149384505015887753027652601980672843959911988883611434485193549435732395666378442484396517590142876079569616596989221279348213022558029850003584415186513584264205661791590681117704703096213142984894251440526972001337408273370092251960063920463459154603005502727330856212462794666837715946596960887480070231173566552484926181682758843744396550225403740126602754110271499774038081097417337732511266620796064566474955653909360758121708949137786345462576985853939615399700450378298601369923524251794474402830656837658344709166125901563015939066282619190547364734924286478389532524645689650756545749592086600767816772685866107319351606185539411025236514835049907182470925386446356698676842541676177276724556920422796824543649308890190485604746582196633164560369132313072043075636765274866928461263938545949996650728791060985917040945028214830959455105249275576536234984711087034258650201119301085861291060302374278755004997558200970716648154376843569919157642561905771657208193569088883253083523677267174698985192941029132963618809011783814166742012811213939408174978625270368455187379234242578059054646965834878336844160430439144414763889011376554924755620018036932970832735522562887155614882370907395145563044840606336570137920868035134268557521311124379158282325657004348512019509284418715928906313221380931835996960512233519429861548942772896285323880436766582827881450089244381346328757882249457179161804702258493256869940985717712182372971029318959614680908836164340200014231744014018097496671687870875191960849521647794363386257084127314905187411307440233234001558244306590061363650130587867635848742282440756547490258249179393232333854567419028807540061604241342138629633605918661576402388032898055901266149392081495987083115345076514369833990470262526179991053458474570998082790599774857267375176795436641493924214095415912787979120001688520186934216789811967473164722050535454438445980392576201101272193478925003161902893261349283867780758109221594147154557150923258658609016099445699412481094529160405151354208287943178073479725522962179193322647689873469458401063160602073951594020679278614234998958012490545667790185852249372430050216651755169933627053798303479695765033399745505872821901011364506629538701109878509336137523088597103285971821097146036871340677205609546721372683881937070497456221460751075412295951174339533113732282880676895006912241325324148448741356449592247963269501085645415509956300649621836800059721705096602540066019828048651709668266989511294164289972780060357549506656454133734317549850630428578119118813462191926176383866939001095017538119912730669789926223621110141275479479817558675235720094082155194934453321604772438009231817785648108944007775735289331508755515884752109672229834444509469349467562751120436516407882566154585218378091669761269373170254447451437264394286005580010626145060296984034471354021678328430898951277205370020567493413277956419970340474152812821407501333364794065687924195387543796116748372012229963787097264005694604885899848877071229727269375321267692768835283138203705267506050693269194957776406203361422715053040292571968124518275230224527385320893241895172025883408391992647901033608943735749930068681341944352645101396640060148291396102718239884410538333739132348840769895435631234990751553827426328839476126955609296107601160502848676719566997767831120749066624064060636529533146197921281541351681261889817391979892796055074190157442461165682945405581572290338304882816162433030369259887650399981172973429192439791902707796456444281952241189470971530147841637280252862244055071312726149561908359251035862083026338932137399299697935643390167274402553243937807400177758688805020625739405210322970057944786994143165350750169682759506470294365034062197740009061744408783317810639284851418954060863138450487818552588464706490853182372012453525780610071031183653311989994665116366718439027437674232659535520540000449598329768979017478549152073537349299533188839759946612595369808083967708218729074665903832349846257068440283631583962899950695380267666926969902422088783023606094762983285316798700518183829678791339526993943072566893329477231156614984419419440866641944365081964876871134541883896609751745335993421709291102656560622049955063035331175867523003985596345627928750694054657338646581066329168226080314360326952855565664083263316678953472994567377649262195521868237027594342257176524735586618323706340322631111667149910181136009847008920142813175054809103835951582502915233205094906976434747928267315994474646375941902856915070957342291679185645944141350609501309316213986295953725121304159861018223926943128750578062076020037569102316830548446869320914599119305024243550700136525109047885114952208474470794753199627228033355405922850431609535312872429273609140501878431449201311982524957766362907514295983606486794278636768225892332830551923254514485757471138600904814828727644765945820426242427437451782910711326740238030646993245260000845913214444172617393122230290505798236006210078581091609273191515142253776464610578759907987028740640284989266018305014037976128735481303357801207087759061342855094680486862125475363046897340287158796040678164488216341031462812649355472006289521743133370613587388401420490662948197474016196022789276107428562016565659374453280120814968693923066698943818935428578760034476778633572962768365622298486405712110798985311403956962270905539258401572323518973916034077215649848889453595879168686884041260527693353390168822650413288110425293582533079551857875845829077832235425526356145210506557042013910698869554718718164170619896398404742185551118089232697108503247246949118760901215134839725878062726925269805306305226464649568199188922631814926176319648912335613699934947114370349920142380619924010680034905334408944075354930944424659019288015172114535572368032098890756087333117227228400475251066041716706270183913941557015428352947659341434821203989301483690860510965886205691336392293359702463662523168201088328498487762906572698316331315046150833734537430212163987510392699129365140338563089348196715036770974949235214885789125159471973275622650187103933600461014268915562103960388771866788380432158520780502542392054248399926769047419306214074295387560819804931178880854895069774696159022036771929909005167354532497105598752871876234178217452155665777925180694167521136374033002871899265040868887528400886677363027029232389927565012997026917124949304643866501066578017999762364094258226869338135223849109578057112356896747369454951750116988737360518868382922068100106976449957810745346988294976278425474814567339593838289327298841120425264269088766190585970499546404107153278859331004777416498238980143436135367194206877204973709617627115794071600767803457409892724000124672108278906246544131935930970230790096052945676616262863783503496055422375476206054616374512374898570177830689860642232721289206389462867481006249636472787545981633805633184501911549083120132270933754187066541803558673113857539782327516078649076271552280252476578715820298100342010641083693714394612929958727364488805185223699811387181842508557561939247782095698666911763248614061335162631254649922549477424930142987619682745781785982491081939858826473463698272564631825804143201757843755338550068000762391246587324716689026121453982845704461224480413281153033278627696927023136591912472898464792935708594667087840580734690881170031192224783758173690460486507576896521921836095826468403197542184751773029058696369634722928675898944481948199490728509994749442731620280074322420159747157609904180659889994159584070665029342757456754093076497395085827142873284485601362613751941014249086960468885128446574386376742931525973246523685683450811649650860142063495659059951269657068484048854332173064868794274216471816008141824942524559143696288760028570404031417919881073410062226769791186926089658327561971085432654247423086081031130061736501161469563008485636227108505084553412244336504436609446661642317692078195994631070482441247734411881749264337787464061401346271790331292828105169887612199450627643156870663685780512426504162299577358499107293339712179031908499144963488983212511385881042047482832786789112876088161324490028644365689428217894661902093853734452647141049257453580724167342217243707310515299911935968724757553404479089444404760794433401149840678601878736815197664320949216419282734896305143172517444962939821013738663502821433858743576766833838042742108525833348531724655323257680787142556876501367172340873758293441008786537732175569221072300098754558853933663086687695218898109343753177035596392956776351822599494668288880536525135317598683871856809793872435254119813541846011532631905850780298094012410648206537098062787288761057797024774147087127383906464541503379515144535020583988819767578183603341297906709020005209520197612427350083774007911986625395333248870537636002806826081742187313972988339696994802074292858473164309065549484944096688260313237589817052434200484216105400874137681411900056703270725388831308955968962971841014462285651457007344207131700703173120322832327744534942021818054902345214205053368009447075446989158885410991558554575608078040183267400785920493841991797945930953514186815833779255522722490357531167556833464633293702900364835408045462071352402880012399045766929814949274396804481783252178543604679015214717585745071957104195171183752510483217402922028550946955640478617909049680253723687344311678653128977401940986171835747110667016905343319638489746821263786517336010766984535025093319706765111819132146670337940121994263925331570401571187113124166944559603857127798686823565192367383007080427609289547396662794180956286241024920991753788607856214667822454892381972546880545861261228939654368029567728322338103101452041333946302993899862949951381720897657676178455973659760971220710253671705920468528396398047972381933117752070651728634729031072318911928099222066001244568202443940605384862798727402949732155716422510076440320478308545231768673628974792271562853481014437113949457442805055493254843651522771656895160331831854828790839064652417815574188834258610662985416405028639802124916054424673642935860902745211630060274501214796886796787166232515547792275707581935153144486409691523123688989714795029401085612534770879735114396775385496248903702844007994694152287671222957835848338235193702689672919826723404841239564536218637934302610363017767773037711526625176348750674797944633347722858059489581874947230733900624761522932056269983177012994676457825056662513132309195112866497900497080737695924414056088815324300897543884557930404120353401822217904994903719218606657243391700277079152193513995985341135792703501447975021873428680602424393534232101083868213117459322122373073983072115709446977368472085185422176437984297279342053752018626327378767696304272154937191628169451133112665617039953274200611386186291635952574949890396507871049928924933983583325316352858941726975926120475137102859120356776640221857492568366991978131673501109477774077460440956510518873378794529126694201282072649784854990473897644153240210849703247553179189417429378420950245843612685387827451312978959476102052562560578037252846787560028120374222057830991837096870099535261892463240129499739128114503234629499440949550193080346217262156151540232643954734848612791404076315460545952885784601203560038968383524302215377945951391282341167120054087758558690821806635796929953314156380517261593671919920858463903430941762054085827030752215699454428923787472460843205929835852907531330489821171882056614791926115321460476556318076657055727101125635106269573669481402242879974918634328603964530925043937004876293037326925084971239296118542637279561092583314741112774149371565465196650269055648018173661678977191771888428593886554536032702092015690145294829693672050899364121973435408389849956438854965202435380510023505216980376499344446807321836453770976013936029074050409461099157796343336884736472433107017412504340663691293337245373443013372374692952664893791600209059533891516870154242392615951441442939894533211767515459640920675352315114578548831704981630902637036154995807411058225991488991000459527088910117095803244929273195177854980716360952545206456075925950424536413690033488715329076164453041322869909344062381981578560552487541968991765889117384461916458359542742583867404192297612432700665155302377795756210202278707920736720005165307456508285963873483549706542222486746754823458682026414895329478647712691101841716671753833409851335156002491768630253522928776049583811499256842400367853802424918726610456895535253218188956070178818435446489779807417470729274114779258630048314223490402366323602029250279987576458593406603035808759198268840886756832818391607623643139334226395570747881025924879563223679728994911648149213915710590632334619826074544575424477108462518181046263911344258171726954196752254649312446104228559714809522277521494769392157028745329034680339609001789400128001157528255459557655262777155287587957206289551717163787535266719959911730880508732491917673354338317989562541647615572805471525453040525231415947838815547673870270310566757481397027944884304742538699369806254222857958107516758741871584157685871135748118333820452843210087241502006341110447825939458497788751047356958164374981206210031535668768665746197622661800737554963273666214052086315849796280207120790428106423383002885624317681315038090941683447104613548598831253765552643602315585199640992189994346958189973409849738119039393563827855639179731801982088206267087947895949810257361850573018164498318069348115802457315971652070533439629046188824953741602591227724268310432847389913026722039806190737324680244320394371194673570863142656853700744537993271969346092968407731291807561860738865035782248908438324271127305783731188526749602537071268173996539713374160157498616678792269511241142298268918648678693351615884762960087076819445316765547574264089375721381822943370002102060005753660090004578326675586091962916456382919210237039153862191790897832110276163077802164023602263702676941490801762134355349109010456655177970168182603509921776703176455679749952071289761129705295640101172408475007372946264509881072618817628569657430816251954988624733059885255308674399219720587234640762887430724275143002299604380456102644552958046400425597839654642033107654730166958307517192137158888262506221015734443703304832346334792791644497122485763680028375599563000636280367630921733826035148245308674305292150482353696195099786055225455473999496594755445806630665786759968835629945437341737473468408343151622560702120924167454810899664557821362624392995060220384971082203690003981297181675205989537348752121884191536605050778276863360568996322831202017271994881600788455669467076796346034199498945028559801197890888003835916225992033982377306320917397807150822260159108394838262436993365816115342127150152941135592106305112288472499544167469655894602669266149294079750200089461853862132785196358719120065695460594441165572889691203004984758835570743486826992499551348441745192828052921102875094049188063595019412622976509085376927810310387299031617360375217954345360663643077618609412029051696793080965120627944426697277038845886845537019176112949078726139887216720289595948282316841459591573664343522868031811548739345816256048032100654329669202551191136973812398820055964398641594441929516777139035280130389480166704066873656668140327375117603742476223021008116450879482919642999311643139884735024781818658570655351237145049966508860491851338716234289265332130039048854598087454609730135562626208358446744847388956929010512849321905417402566987068790700394435797180755406371131387311724700446884284404019320147429564980021175004845067861036886263941265616440755231224323803097701263605031730930671367600757492979814430583122031546061690158060893582779904006872325604246362969210357269612729118538502869388435552555374308493086441923463297486964273895825435047656941850463137830255925815011737025604945051642636153106822633950232428565087981508676949463419549933810791892002644840551301285773186361305014488047288716824456343151226967208104061138000076732005031897238311820012094707731997050309473605887025094140920321969059305249384131330630623695201126852081242344895091009198738150096611522059533549072716028889988044263668728330143003748002231487925866474020197472820901450648917809048707466578426305779718571581107619762510876448742336564426687626365318386897080705420308864682888053887010062146707148792005879566994745020226583487126689242191600932123953386778424068317253809801118689170867617083661878354472606882356961138949496880555359859923741108637745608010043180777943262100310121025672498770044469061923936847005508168071008710114201457492823138152272717523574236451508296744131492600424884950817740742841733310811464361301981469432705714796933264936435229372827941370773460621411992673147305256013500714488867323419500180210468614728600088568030039625119319755882406719491760142734247042172982159847196450739828622511649294531142439647180909502183439282352891685878143401655840459648815413090084915762906113186558052220743307591823133287088256568380392727225127455616647979881445896204749946065816191477181444832874405370878930807789489277147935540152074801959002505638158106868734434726697500916363181242101946803157585787644474108843986278147819870084093915225880380693683034886331477776107598336349476036494814790877603139926971026739984715180830124097383645982409671654792259926683788064097184092701640321003548475705587284255782388562850345069724281979118054166270533105938624679059970799412940552487892860637057104146391626570130606613650502221241255435247965118313247769850820928081698447156373762775352365992831513964496129972803893282406669123064124314188812114459650071063211311914675838234906505438824869162667995728144708519825716655456168079413281641576383068222406596148876924185683416640023207551431305628463873724305967528318667049502856563135960345866067125802318000475215542816811944630873140746967081567652959720210874515724011073376029207556563188263195602654416595698747326054844252698007790891064099928487659839270350834990386947110563350875474270603825160822988452296311251617158279559608242977498173366031656532526750657107957859488671113323013202798800482791130485548398577383164052754089756482725474075382788555720324725823270369749073450982001282008189652003475163878480752745304558947459739622515844269848858695330983701505526032859908924700330855415270057363180305290232975265985913105392550440069959561182034041678068629471760044701622100909305576507836746525452120314198052100895214471609593318651636715966866123105264024458096171976264115677655569128252036499124282024000694162198344835998123309327224886531638246039483632088322970358818612842155385314330959041450616281333996129460457451700724608355544648822568465605690715652727875664830300409154409825512759159268614518641079593206476543779128716786335462643756084571363072842628017661710233660949177372788310527518488975580358053313325908954559531425005403879176186674650643838634044955494264200189183039899215874910032608621879840819474514727561403736663789147555789134306027343721634477882199089241097071151421017197910289877372096202230254587680753650803046387110621398018245096919386569322898431960565314763368052593662520957045846181640270625494709887171549007718652387974725075939289602757720736499697886467791725175632536190473652549774612732506220106557619461174652886388388044012330367723728501841527869294747294660689306930859251966950816107729255804658429110924754380836431184232667209366597763043244388734110730710470904442770456151820848790645772169432243463072954033007715324596593065552328830698503008743100205299870033797310830784117913558719706015456050786621748489661082555066570316916365350196435616407500903949892533687598910696363350270399496790206929738747367552143683023160388620418321813889955536893057901064232945968571194005638180990345997170313504529054225545734359433054783232925937197610564218988954725399796593464746777910132492880837163187986896999105225191364927286543575983578255060773967872093081783687422386309051869790729537552126178496728214575389676767500904700862526046879417348227440623663042314119811979928626729452787770812747173855827163408199454733886650828685994396670359291374856232358463841962667122035120818269073728282991198325488928866225681766893518541387742767270914966203759611423286246241126142350243143074156768161560905127891757344926265710378457446512120259287669264863901502692275079931593796905277478328196845382271166866101703450965688157884247279471444019560721205305129580723892389168536716919779925977303922832918138910106388649862095203827938893558910666605491565066745790879783434841104480497519615251717609252273338850939933547782610156749308519003518407087461962779774561954322732751278232256050160630003025151524935396364392506969159559223187056886551727094434264779308726277667324492882975001081943431422095500302338601273453815720818380716913636369100052591077255312058708373110121283523027854677487970498302973548535844517078277689206515217374847688511751468276176425556002744093585131189717935232524652722912810957834255803434880737990897944740589810352414863111823831545850345744162245679596072106088584667135727906858337714219709634703856534326944231816035839627944934827173360785277370326046818229830766690815796721317397623355159889301371240866878545366272341578255767479249491595569565839095702075895051463085616710341241776727689533367067667791381829478221144302309105563281748210091019132011579823471342461311254475093217088179643896988529299356122831701793572642408896575983209894561646564788427847313362110414614805103367116106512584446947481507740344443515172605250261339657205011652931265228872031944058965277128102200934625123197467032067539211390281602663234899321434279471882335850828627763632447582873145757481787572885830513509130083050093575433098835028869172044976387742762372127008401691556016974251546073805183605218361335122574510988623243296562402544642721477423735418538577726925192281221668879651487696879583352672775475480026541778855261328814441523116462559368421097630915710991082951514108403209815531142946807995110999481826820153700329854693989510348354918995888715495435154947083660195375947957303972980604844839558701666830015274504363283131479952704671047059717376906457308906571005769366776883339442082421103214343169865724983610822264059971755981554212828678469628552079567360783122223379567551596711222913187000475710221594006262810510218410894984182792310814419135772235097151165000975568822179593292063537983996397656099053423381870272002422149507051606988979378260605201211669968535209512561239002623798686607258206874371381572406129065310967461362203542956979101993086677203326149528263188397360280816471973508746538468897705153535979068296635893837824613560706607649532884823541694363650794422003204909640270185451772106654795008624947117941143119417039271099006475305179130553494484849540515778976871068213957860988266614789506363758469202418343942669734300310615310608101080074164384415653908918698428532148979940613463455586083630578515315585662331517206479624286884296929701128696666964717071923529281101057714789676669883139588179492012983438619222587736590728836830621879810446769935893178519868835153431881667790028324370908367169357737899744955037538161492522768227119473469460401407415583756032546437118444605753957529519384033298865927466166098472837128156467630894785164463774254454028634734232472268140337055462496108600544950082912076205046733717722399890277333858869160890367550629448366702567144352638462570892538363905535153677455945142544441575116076331339287312806937317489292321610459789879965185578227115134849319145366223132407266632522174557168342630024837791171717992500751771859523990019825897074992427666759353848795010868418629622503622795481372280096941773920511311529142421833705538599247232863689602371821610956931866136940134523249804794020066366430913861473806481462176315894801935726002982472261094065829493351006475427590549018348992238406924296442460626903442027844231408706369843294895689652602131058742351826691910537305708936502320428238859655315045094602643123101725302658728554266248656663327634582486466141610396109673495168346148996636500509981732671118906843303582172030464504150457187745183398639545931517323583973493562971133033241136336881560071185773111249551527536302697894481840153372903363543064823588537690709211096345719744702500511848840475668608474922186282934877066563232988851818401237072804777219136715212348985462656470508070293674438309069645716580135318897775930601511675557167544266597417458318258350016273447836111633030269754004370287372588732103650420798370903315871868004145007414211473412537280451209116550829566941318823966036365651912812756817192045433268563650306807272772489712400931593553235066732741714475664884518047477416131669361724204503827910391742544890568534989208171707155587125385444296851950018053064900515276523158063951258767766604938710049733864762696728807916559889331613096047317891162499077320992767750712370344766286729167159541398546912179085916012971082847926502895680089286418222931437046388437213411412826061849731369302598217881217238160215166209476804276589755495228533029273195093256322013722611179446201781189475665587946982457186070336326466375690075348061923084834263839903716031560414565946289715670147187234477811117175443922480698031372225084412196548710883513480691769986440103533978171047292238616325715877899132917634736920622645647113978527537016506422103446033689710392782562910671765719264919257371648388030869466201485063520630440901674473642848210646800837637551903727710028256388680436013529653229327032536016403333464569483962586892915283010208321712055029356720746334982635173439618855364909946036124313773554534620129932923213494260319712723591787714905555527950725995060721241182303696284159771729551531284592516551134780106311974703860310163902943446334020839056083073448200086692010748983014585693023204071454163248140086498059105219710527933705185557975642784958352828013414766387554056751912491035825151376719667845442597143045607120065543569246359286255176279935535893237012257898077271436472704716391937232944633706768921298889680373105102696238483089820975243520870247352399577240679992984034152073417337107456416376442095982703942509437695703699614536368202367993827135954464952226678749351521934259159343438526180126031308235730397495561034985245160831192821246636730896201651986269860648185924733410283159542349679114295283674538108265125418392857923216221773221773408207386130880710032448591618772002389161362942829656750029196108339469507398245038711052565521075886325808450991438223476032726228035848844567546011408720591392992416254172560678668515321442006500339971157876018315554205821396596807515580881657946918539306289111968075957481869926124286318684704932497948607336317538560559655701958058601944811168592553906762782595023311932968167035438559912535543687809220054292643686578364555715623039852570196714542522645603551281388620567929465542105573977964033817065665000411640589132710092355101261817112060893574472710412769047358780070755971551311931442181070638221643049616909364617105225682560154077502664008598540660243034756189544345400322521759086344506910412697081596314509769248005631830235919251553985303400511589119628720568803420404328997126220455630253114203923375256798001130882403361372674897597820648222661789319324108498899048718490667777792646139537819145322736826986536430943787678326951842869361305654374518332328956607272200551211073172248427800237632522630320465612009802628093773627830363503764511899423369494371178184151511971865759853932104245846401202443610256982615389891011053459325407240627189646357154823477559233977219644345324306995197274951498217044981097271661584011293748031342399329427783629814881225521942717254575225513821962422015930154087986788064495622649721632474787404420716856612708796276870230291167357618078941184165090566183153141539799462054334726052645190022363328131572238107521426926051975218110670290871854820276424881815962406445514573721291142466681165513132686986359907207491885110845930957313738062963493645810647991387870607728561607149203420206624202098882652961928544292099334538847415917927266405685055287531901382094995139267883897048080542533556769517340256501169045901847842990019545943131640161198074600463470635461568342688530374827853808219089368446541412236637663825313114160697075938953339672326823558062641488490630703447038158240607596389660251580725963951396797155786704565995511551810595011358803263497873163104382038675977212773680184852802915952140330290794060336756808600460662913037180834950982529613461707429081388121015665437499263795717389022860300801499695567632694047548499317149319207318448233773675548413444854588345026545807450411531099908062271788262699557787461387967701436030079276607345820061214813605798165456155824094558957423094478991700867272331674180510095145321757348541231266547259892278370369577766096734817231133270660009607839963208490077885344082475147938708719798548853031450380629261960604123596474555704129017349872064881052030224243579140706714941471838131153309502780099868253710447479315404875429019418089752455647079122905209575114959609148769855738810708230363220673622450613599239350035792387036374088095955431112090609961035585359151663633412911126526445038010380425662285621898169580732525984651828405149188160280125719933613883260480761511763086093193856437456612735155549846366747245700012757695990728581757714702695927132982026468513517306385800469966347838275775201516749917554289985151934626833081438645076994959723511673845939247648177870168931808118322751240671438462686167751697067215985378230133125322307456872154070638368351901242253952741385439141413217720118977387769138526007097173388578057739788506043391026035122166979690980008519101540231470617891889277947875181019113184119647428562669921094754174344347064666319745760819537667876090753694569802109904052336887120801995823036462575222243834907168008554152093947930409743903158787609843182900516820232234646065507184257019766947555524590933039604015676898531813672651485133237598070387487028450763038299324028423857737259637493072717591615748526693959900173777211044155278806535789008778040613322292991904254877651948005455827173404635954950969486257770646965523278492389408610385251310512602171723912554929390863994868323499672411340276628713845422188613611742580663206181578869255266835028353750028195775231930279627097326718799761194610319600888920482315210381363956168435096326400964610891386573723969065769761179552853436553334830124582982382621591793297891198856916168383533371655271272158395709424040968049332210615797642560999183066587185024782586776767088939367176733659744997579914457998703235850177969992182379210481712346889515556934113034497323961417614798832280642442525634336221537284082653664454849824087329815659489467485703688905478279981565968700514327757043802053511605884489323885890898620236686693744248694585628795399310683105430253068953815510540430298120703860803523221103394643602502143232721350649802163120915190267064135582644348244580195777200599537169995531943122082690008442981806125180621258716339243803331255594396760206495070598240815966464410483177315190954286395812401913780002246869241838091209602534252818804302778696448412336650920709314205023618682616243911138177435798607470902808377652499596136864405880526073716959627279512163452336792795262576683288224645480784757191080585642116987160319893399366475366523176065037658730398416282921968422093781977264155204416423427203721623834380143145944806877010286782397162977331793964213784507103738860873415274565678664909730694132522390627880965147397228971254064763342971971176919095780426271740556188716546317433536580412229777862297669812843035576200513072933163862991624952266366377147921603031882926401878550642792179307382583653504228170978891891179953610147087225635914716467908810726596929942208294546729067261347229047545838877710028189102643236557747412294083779273303674714833262383064676745704656399204629927969460793429183624707712475448101326785420836025722707407279113943612152100680708917447773687020709042120634797718851541296610335833809569649350044801477068544454688850560810838832596047612890743936883567376261466581932605886770342162251103288714225489533648780201952122699754051511013185901345821927192983370971346265441549958010659484934815759762931905971296654623285001619511507473671252951710454021268982538267385352578430508065583177512838093263865504627617065818689443160076028979336659429687737789851795629995828318008672406734577272153715284554482852238769556729552614511156014846510152589219038455390601031537250019210308874814192671464854497547131441787384726587162489114852630568869386129476475908617712110976152797836813606304251294608748986583895342832007589591144522479953432953569573979080342753683741779114255934252926065473461360483282403035515963943740998528179197524397245927772418193018520922060368490688730271373511405650950660967116443016995285885484406653820374807908913681725008890902345735831308976780619588070138018519156983201297515161190965587803648620160469107200314975011709471009621112149283829604851613239995675068289352999559053996355926863290683001964469299179793733020859064467920340277806114981817486634935255272437388807501881558620910857786783173900361404601839623157376999398163645987986707717465676572978224228804518516813470770472573885321114109114982047373646246752221797177859838915494713049619672117865228912353158339177961788398456404525767593278145550962502985895233756589898857795864878185717307183605755409626672031205574666252965447678019978862503304765485932174267851474869673047243583334338203516747450807126979756373716639932128980788865585366487015618777911513160290254603553526861410812064174789117186231532906748018976703463374349413137666613157942749454037979969478849911412208663521013905723880767664137712082100398317416017328104841323828962359654635494164705359764187543740684163788191373253794003359396781142443636432808985884676160971880009541009604386407699688486253595062421896842788157775674785136193935957260543176150344551873191604375067286897681362943941225916381123642648000772040218452359172434403850867040927114143942714405355001700886412116191952121571047843348575048461032281440711493115956525367697525524104831605438201795078195276632151186286743169927469922482190875447804700812248827447602570758832772976077982037232395861626681959363948965253669750368236892810762836845502009360835053524613762059972275872475695958243028599912173578887245796832634962501826212054517228002483214733515118271690805537288840584269029111306303796993972981830123239249769811285021530202474624121215865056565731327285870259466310457445451779408965253307588727083751161788300677335965953329662322248156214735071680898412633313704787131361833067177761717734257320032242580503484580254113287495760200999499393077033826121638791394433467513926032359449935644068696619964270978639268793395842024367737027848793021479279605121937230337515359462490453869544203131098640915302779009438462233528586180915116641700187133189154871745432586816259021562613048710070650583588031743839952523437323686709203453285085278067393864426174006907284110861996211616508924579485615169746785622293073694460865284320500285194967201962122372243895114426516832406761284323558665433930066947571792787374616823352828958895888310258886876127573341497342643917790500139276641177550849891712327531908208219878585955173918887360814756392551661817444898068366456591881997072648652759798715242854839827526498323314226709552799421646076397488205235006233990727626666903667032186632503128366051615045521443522829009220578939938597486241628083517097903825475445303019875457597697657933789912848876855050128736248395880290093629312598180478864684757081840740283537036029087241135109047834533813789943586798561282753312714538500939783245944433690261229683339825517807928557561880864942474474814937195062090111493859443887794437168824036195268555368299236460908239142221646073142294755813343372743623323497212543371853684944753508406673560255420639580337988546703681480608513230183546514032545846106760039151560993210079639085024019860441776312674503295222087707269810847199232945693545723466466100945029111610254990583666333827899396751334358341353950194875610456273845730767411961163748283767759652177277511799137799911891211417716389556528830556540186315620916378438260680281529721672661774581172706168151898187404675927235281425052264567197866437117150157773719918780877381862929621895439284452616406127432861040809209810223877421724485559570074281699613748890192450745089747511714596379819204808870636257913821065971324582433067253977769811354487932176569116409445732390901878891496849065598125646053769854102662138941669573097573969217735097205354845057782853341972240480156888207358880588735825823570187164484869016577830229893578820694027947790304212663732366761029855167140672411064415577153616046801068928501537635756325309485263475707977531587178274741880639777293275923399252875942468091367913387855299401102931787978484691394257875284116530766909573489932376102860677330645847806877993017039734488694452206486084584027316667425855159667586826583144598194635250289729228264023414980842080542025342926014019126180533094723856173531376583483495753778805109664230032706896177288940571608776368281304985566023013886291464628055848631529641966194725785767913593127310173299408402013131495441040520834003046452071121685835294149972261435634849411953677326993376379057069443882180230393577613109571641089472013594470819398742475803683395877570897064798130820380916946065500618236876624133055608802262232431599718139327445491106174364206634264964487126625138855637843381701563867791506758668404945897806148254308353965419953779744181788254693068377145008711870209369196766483981513270541076631580588628042586999035850662936983402077786766442237600045617178604713126306171742528773392020500863975477278029083006447387801506427459960889591587778573806399521147281056163417244017131320735999972328403219679641636286940709474448468987191108594234129603158059592156315045415966450494274509200182074757996443868265233815785158157841396894316366147280256152775998799025109702862563006516136804767097258261884693721572992056598383244454006412386928568105437634117658529466944027280201523147938182329956907318628183493975542974481848028410355590444531625802686107887501685976031900076984339720010996324063815146524747342772949457355663758844178279429431987858862613111902421405301647483744233792895945294029718585177981266997958320149087085929402666168353876522309150872497317679355398236509646488751755051472251359613250212540050361893431317069820462648514366416667063238772331415274676619130450523523165051277127817003262690594203719659477017138923275352576606720519368870915703664953143378289951531560603810774930514660831594406771192466596052048578238865554597815401551901739790450528987777656083491032061854049778006915351598236772969067897216945219176634228838001952360928634498443706060930273865807801712269074863292164815325689823479955609529296007625987870109006859734092075386987052134287076310274731945758099012767915835599678016494964159300191860932718382016068762805423776155111066755064242136449668210684858373492344701487743988662871456172519501532004783075978069383869724192872180398890182147383986998659287722629854289437571013289570525185516827141174404342595753229818848976678658505855570375173770783654051741997892475089923887253809954566076101649387855288477785314573775316449102083421524235285791822403432590461296903852570016268397766867913361473794527080168653055717829926264439043256720782931284387926310924202559733015956661655383992379641957987200551157363206840053876821856240217678077363607211688767038346047817361073449269846512080572069317787483499129255522312759093462718470871843666228423076793948472382116265504663888555335029224111764360256639587596974095798134092977422184483873498606342463702607587848465976012348831472369451963437377146680105639153004357027695282862944327898377239702147896305538174815712916589386319639990497422916994307507459681003911940212189276922770309458770572772170049356487381329635762982474534307471593733364406236196350141029120427322693166621692050117271378561746614088204697930211743031855656773255383563888544786877550396116851114508448077335920620157953073084592820553915904639105631730725480201633925998918618344986208651379121811036884486089602334036019919553962792892433072999863292530064469655478063412219264744309036644358775425471653826613097410579740537936181820227655542373846915652801987593378487704322564818797479974798104371975765827146145466952541041963058099823180075712004986382759027323569574734327546625055048794608218555316375917537918262870893926941475873343443159217805636524094511314274027479949151965977084182256463124116261335586157872829390875991743125316219347340758167322019624279185289177378171040030569740343426333145208769003368892237080457953746433270628596698573063743517258663553582385449383808529983495854288553184724768675607757043741777890350932380692355664841761982628648606903662613304087611002980591672848836148230198781403756570011517948439342283697840705323933535453274193045940733734082051144514526517307449812493966983122622716950552964910252757689041431518168665004430602826807989390254265614441906398287980365300801117588013793306063478613030320796395528269070405232162837993252469705723187947607833443122036929860845021236520838114431713347856562444459338839842492359410225635756727568876690656352566667285809808358917044871183446614839258513791246222992687776942389723417214173293143153207082788648022122474269410646186143751634970962095968484361807090009479446441696012125864498319083189972417543813350899806127043078262184840586266614732886382940008321477674332154224136045908069080326103721475469741968615661706279753504323927959995504737948416090497760158930684726505295542873426520932939371571396938795675845622858862083506171326725842604983545337332071900610198697110394474836177940292688907069215368461926386336293102465226054017353403362127497409547264163450641216558962416411267839915538569676209765098449998315663290190213487377727234401952471745578736970388284003613029591894929233896997458820242510514229496441883868479023621820842326776685741296491795575249248831277105431422614605978853548769258117203713653930453133158820986844686820358320345381783028455517995946794125758384371378131839519951416273227642073382548619929023911114659861961983309988476671974841641824873178823785981530752586492666854237031120978451303645996202800385589625896344664663265122095507661815686809431658092353108713155972624273940402603100127700054703141199485578053640531902299410676276571793491984811051804317105826257900012123493599513864205231288039005298055214629825881683033627566922161739343336805470651693677152075727079969000471488209398215696364111460574050009063362399478737326639106577952924964387292241210523455643776637988745331073311331124267208692676197386124579711230915839947657261100561588074314659317698123989460462961516836458681597580008576868107299836061514050276237742180154374779446080429119986921442500210383722326475370009950603906333308678110353800619358081398220914097356706823714579075544489390432020526732295355612695604095642153520480548326114180757020376779094062242351334493188874140476732181878942143718414750702051847707926329045987173135757461764787197578206855314361003604681609108662282225401106721057679643850477212234915123180477271451925837425988693231847759633929787456325240676737660787873309673832749982061531416334379016231562969997111689185072633818439597992247365137174100260786552222740636382631746761158795532070926070005934154840458439117884180492258468443884297079685103868796460423252444762996215700798312713180528538558398776646723201396701346330297504330162699879958236900971145844935137297286113269015164053508836288934806532078456871015834935240921027778151833816304653282485544203314399766434594360837869640325943567616433196436684026780826971672690418987263391389126621126138398464047997821160960493936406327298146198685026042236110191272752995910542582667446479966310999022816372964887321133517042429458827387851373309765841278031762873973803326259519984189347274483045148639557144860296679716852523776243030492119310301281451997335806453035761967468132093160939571213280789512173698740784123499533190004074241110841421706896601099883541810546217265366140987720074103491783192825306900614614591342028853727332834144320309914158616329981023741107404487263672765392717776756618793618327901062828601951423762203457327467048873904748641939565516920295224396057928384213285403987417189283148392481407976190304125761226957523831709174908370329760278193194649545511439152571693522391650831581408232555410490011959218491625056507657370288936544951150107552541631532089459048361795218356504421434363006689819842984487775699677502130230205609887373446576299572376427488467061547977291776158537746860906353294958888377309000943611677421858240739562020284330094481139847733322507675214009117775991134022447784560924455470113372815007400841072389484491603808401983587897538440920942160255827016054718089947680219196578525705143793960766954351447005522032757256752685104417693990768838130711206766087503702628987463763143441118320425157319286034022637715941776694145529461587432848375561199566699690333100164241658056572417805766006194689432742821269992016197863029807131539437812748309583363767276376671130579717635301606375599671660892080077617956798517123653308722127890387325204582537709082352241895840707072271083093903445285988845463680640911440644683083489197178692391002037680695187082602974853040069876114062707866825462333916845676806532170302758725126905045312785949677604779478707633736725428507176949859886792479313458320432251050883704934038973299542495869369725009753305932035290455576745538926385945810539229570068591613778584336991892150515294565208190955552976080582335640120719466725741281482562811336006185609345066026721264048455740713267216777684248361418793964231702803045339832298093168003761155622115387727345297749086419184458105221168719690140538257480755553051527140930812102750509558402086159705664307957690105817419006967783037156829702436515457223333049012893909165478797394316020912102884218174268203191584915695585632620341493443691600653834528220313169114996282508069897452912558755687198532510062306250728132519952276741993182304717946561334276028800734461389719040364130434668459706117851232824960591453181120733097953764161277916592117290362094003417551571361815179921937422478789677792010554510871846304156049177621568722006629883157109085359859162366919126928816410720036360324443589474300719054566707261901234405500077530674650732048949703710573431120880531020501000582094470999660850911653047537020089476975414274414242106319622269050141019434732502422236610671726468424827489983393714113158917719790491120230760132862339265827421318528833089003996373031035844189534279762863999170927874582409248475373491426871171164467344825899407639400173781335476652781437778925406098827376592586150822813851701876429547290291480507801878157231183543663730061888067270958516433325565571834152765270894094342852031527857866440114798461966122840971363324948324531559114243417635885788453491664128214228801456733515331496096797622130330920082458982974538430060887892556337977778108909795037688070393506005519028869291859638116737160364045780843907357936463677941292673763417883320819319731008490470316109426819248232715420590557472942192718300985916229749750604803172673631839559602623369305581166359344321104215499747661132484097527178367085532936532987707690362348562833797963419984341554099459134746233376374262603147769987652583769861183895896245765859338043683986915075049842123912562755984574221047024767374091286818579058799928971174106313799974162134845490381021881935340421026223319721489569551671342576587986749734802411944217556835287950216742061458915381231290287342300835097870403215288616739985994441541307799650681120952836771108029305073033333801968701683483823779727891609288834923964012311492134311760245560084830496428711335634296338130523174598928535825130077329624560674029640526840234283499269741592428361924486212739863567808037580672884255839949254541959372697402374298155580024033265949048323578813392128899050643311875297568899369177027438747867940537125985474547729226110974326806431328270027957368053505853425018005198078182420033484567706938430896262493031418138034017083558981881860491796120096474556417779986117362314103606454241721163725633460755469413831167988761223291945424570939911358029046759060491706143829366592465213607836071021213997338411985347964184135176460950477200743230489687368130133766639817288751823286875481233368482393316836434525512861975229077885291088158965276736538968674818517861348766828007224171864512364547366076795125718504525599732354507359914682406229743369486867743247666280271374580270636394909327142655223204650007209997205375360985936388290098873819684351947660741105767904004239099060184392915659093908088715267966443152506688426011294657905463366561263019181085741916815556135551552694058764113050477364651796536657068547029879471489749554744466786300356654503893002566997106182518408930533047784661626742054490462759818462598286860546373362222903269488292297411836271486100273107842887703320582346820184902730873279391739483632734793439843743747763028704254803563385348618377894173004545831538227797304406292145483900780069514257105210965964732594164103794208327754526950412060753805513139044614892922434683373207554722973307517259734309688102207223908478389687351561095766694594221242090935777592350672198969568919853105585586978407119556584387698508754453947040718476569071783238724107690752902266195758632542656587646513350669745244497154434717883933332696397542123662391253687436085409820771290161289578180108428313299415064836169883909136738686654462864481288923896070319425633988367394552161172713636608448689893912080923441289139987334400535003092486861295997001669262926803421896466470367607785268404223815452458225701765454104557106411299968441355342695432941819883461405813658032219460114140262638347194986506799026117208191314352263058483446140068069523009657530565291844743371569358267467451911085510573657825482024467929442245012622499123627626236394424175892516569817857072088906723290469925258763009159009287271929760075799270835043794117241587251298268437958627142392251868462090033339872316477105018478550329513003774159217866029684951509623459402635119740175108795209885560229830970738898889176815166990190527864641153534732805767864577472363159986937718279842052097322246145182510482345173136657182481023774980985105782032988445761025040529436794173973601229729727950616441959331117364520732169161910138249238744853814337317795280362552577739636656681315594232527245657885828271970600558948813420409021682086739436411079382954850528350354420599588048466273798125434966588028487022493554118430055423391543732127062657205210153769727844483244491350796769847843280822742243778458400305316729287534368877408156416731373989228652899666763404715561349985978228155400676630756869841459279753284728667157052491330368812324889585247278634690715432816290591941219271365228308683034759889349811470174817423213525989927002640979655947109255112849941142515490698765310497689920986906314880057874249112749569890391384795254696122105914076183041873693473454158364917652195741244715221855796005454657288826397099341507807763746376847626877593792850544191353531552910770367188005816965998898336522528881885635923408431149169220697367071493006103003985008723379039386088653498857183638684129908539911545499955105854754220040967368474750842473102060548508518842423416737760790471958068353410042500830936625946705940637544766268986426337804331749494355977170050625950802870674314434713060269259673788487060308157039039765560136439416802548360295599862989925647922389556535082649131211060103938424477896759433816282867462782437640253110165905520830405004429449835375842471730111491956263770138699467545355628003557625911168394006164490635005170285426705012302360039278820301860539922063106469831601421614115293312798583712924792694761776937962301873834660917339851366671668032062301460632109308247506443379013608331647875508524764779073648775237644129587247336960544583583381360964546915713101368994559699977085582631896870167178383436902132151673386611729247161795514828911956895386022656366598226800413331347555245689004161898016426017077813679919064230473412254504499266843389537188790177860885812785768761041309498607998128332224926924124140957655791913427359250599501085700450267644927760730209848386027463538037835312127901633928135835384587513464070086896690989843549728465932307768402502816825734293858973179326937768810791763192023781232427667599349483360835037257546912164053207002595881212588465540692106450385813437835290875025903481503974869814130357808206101054134861324901973449668342585133197708563216617275528798984927802825163924743064268009394711782131353632762471590463000029608061858713591254579762963472593870750904295948292636482862744589534192173247657133392397914777160924996231774263095664969850946735454525938811761964080024679485840185840484520791412314212717443041589795932004092815160490431931247809349580997959204255740267927705751242669401799234496208487443299802059730896034625936402213422255773490665181272791837317351235932085771201641946228679282670441993926535500563559983395237480921549362720862268782803915430056412105086685568593669665574765225421772259211943890192292949302874909142433513975815727503146750684550489776402256914740325708640305284891327339701800570804304375230983047921381465378842700552539728480692353882325325842702067131595169211555055138421121200709467441607490698497296195878649643720655319866743402422826482846532069528231621880335435031425010036254892830373914168541208933983429232204479433867524120406370808938796318232144924608326957871157838222233916947972393125706929142881494848658300127037708920246045775098439699633155998361458310152659496411745347255281390789641957697278242075672989677036425164387868263468891744803635757554947013424794319509597532167025014394377025638901546153398762366852112814421502797858588899896956758013433050451703178709176882418755890942983091462087076610383788199833176165595736450662936454979526633344902917617494366336462496964392674534038213813121147081427691437991884675468227528815383590726834377329725028079992288634877306915418016325717299869962052241712889951860723219693053407221038326019969847049039324971104517806364935788209172182246884028604570217226841706934666028686552575654400538865365719677501307457620016742976932027004063248490420688963356024433483168329584614544484195026939455556212090567893614162650930512161217091358102764570340698553893451454954372836227070274082650821594253747784370506912179974324494937062533664912582306457253671539918883740976934650496648877367980647199872036995834174463039985663833995004991897997109601842775404165772202292224196204416080479212652467606758819549496521616363797090779974342885037896771225174019885457317530052237355722153492797513181696587326126085646390435392704609748884289511842623926721600393167245660239817638447557109425371705988364328584653359726555073366928958593634693677650365718384396163039775720824067370171812372510074966749240213398044549450690010945677336294240542648325041611473540358857185380538250804597086146399926469559376961961710863872403947971386775138079314393027518363889137808894755052089125542690289660434063694203794507712567761298860665140782458170533143902081140036047237938764589271328298182741770938828355116785723472446951716547042738072086982404267644472988073420975994673102609387303166775061116400137585041417617868220703102634835648532471307613402461336896938048170413811768009633167625911426895231045747766205943449947604827826267528513514715406041095013326008738451304356686477934455744214256039554701915405234505470841012755700873081586727179059571719182663521667758292988972646051776074563476909269678017265673548972441331164092068220779393797936226836316274508505644199026057893581623061981708437179086405163178008727613683213026374106915486467380264855423374034704412455317499197161803052117646642608320929911146138909760112748833636469643456074636532342519383420640332462799557307513666421478226787239480797959753447558212159416406880460834017475507223309468118746619146993589308074718230578581855303937034058051546559448233121327857421491860106394929407277150365520181981288110300412965453491715930602854194834986433942322074484446212703609401374116455276149485163241504180045329849536322945116806720693712978761165296716239206991654805241504533841296347878052109296378101600878105708889367051529984988329086012607277713736027606513275196570545424425209382442020996837960931987187681086895144361708163287478148389925693208426482365865833384438613087705965515967218251032542796723276395766875985119988047928012467854125247339039071750315237155602932550352104692612939551229643781036614329843669237410068823075158867407837027452434455837646722700265069862214201353487748685561261034390657669440590029680921430513166111327631601527188135039832927480707542138995591962892764886063660227367068552463881110630559432213663559823689316702568291312732542948974716464642651299473852422242131441467404257484742467057110782593743793016601506324543067194103863682384787342790985362110307095307613236680273913557796549567769850392462764708091543709814916050348543975995408275017029863043071965168907554729306884089547474592276010420311644833992578478670936656150103917308297424781058707472665297367414908813799786753342440153208924502828645777007834772443783405294772770950143065351260933443841582490971357915199736894884265969495556224709117674675048055477302201963188653421112044057304513982327946360684453295317591060168120960477163801995705429588851242896015842257840115320390510137522847122313703671124343475669580688694385825936570243688737432598922326344999825562994111141308915977922200993611180099301825024136705578433360231387543241076302715835389210711997886635418359728947900502700616991212724351531044576605445846248692510769315812285065607686191991875362409765158705086911909181673546369738372052873375548255775865299333374221045456960618161323396740050893479840704945541353233646725174993565510556634990170454141481011772713874554278439519188931174871822587187417298462156295711306907520902067388654208658801618358680481397709721166889445180831753377012185553590745839330068758386397689493858728963786300296216843346945174600046681215686836538404305253952523083924763412785906056335213583824981884820401600982111151620844444746726502122599626427778705484308564775385270355766298003351965275299806846241137227080756309901429208549113310473083792363187210149115857737860745926932892385582703717370847730035768198268457023523373446730819902145292389706142938263057824844578336338684146729693492946425124436533987602069607873631957800590460693954513663409571553531858725986674951718910330149208896258492298322820787552763116898485593059344235851116567366845700933070260146550419726794454738927872563185800734004119199614336137423568518906655292490209195814941222204822042520474270498590583580915272738004148550069737384482554897607351247058648502828952139057107301549105561603558914822519608864593413979572370515749220405529205184006137924766945827982004019472847172858075859276996742190611584887206755857134527182641381013208458744648593721837151893861416197401667505678414013748192692308096730208434347926115046286880859994173744058842588088016914871423613483036904916754426469201917963776472286204482761427887120936430925478778684010792793145595034126074996977920627529583978199362108205177453780493788479371591667103179545154358480412375397142993279259266738587057715773212788038548507195142057955272987828203732511448377697485257662528836649874153085899699397237043539781437021215802129522879418602402492198258160759419630439930808900048944945679683476674184512769313994074487866376849420266750454261110020254466232045667760362097981371135884522631000738331875519326075998830412689295174209119972112112688840949020589013229397456114890565142713314849243839806473068276824222202956119393267652623829397932837194752824042058927434584369493519993131315371306140544932210098000680543706344822822536700098869882273736386193979517140872389020932285481964709448495660168218337511861738881551090052460947955692856746400368656261450568598804982244550325600561975075502095930406771367755895755332029256887272136662872065683332933760454558412369944446041361925448319821420045030955850988819477280824056732882060928516249073541868577594760133552013289517337346869342057675098261879192136985293424658956288426452539344132899422624834128782580262474917924161893871098154186254309981606716807118521663836689772416078324488600932976956349634272424749340235551954540454642366512527641273047010668180578028062387131446752495903302435292603241872945931446061315516660402166229948479989868842609443769048015599017533749623309124835955808256253513410809946156625134870743021177888148299645356072155114589801685504061654593436896021442224133610477875596841950322303693108266191064562989723181558555905802064949648161292605230778995096597398472010337069816043382123454301790320063164509705163662049177972357160835022619922048186730492298985931665068810555473356695579822055872219384203924809718771577055949611016819954023420557579965443433526027072953735435340331730864413944847224184647254409373347233649430264657363115408298052232126426028181272759484437841080497058948581036723955795263493186142871757880903046158252318526154379428528334082867929208401528989144697566778228225827922214775537426576059227483284486078901322364066269763557084959304497222391910678675077796409862047598095185268400457649240593191236753414359105583559194529510283033498575086095594925781109730638469329248507158372336121720570940854872164272787757714871041342021263708978244250440222413826265401215558638905084090658978820149015935280120583185484931403035515549006124092166456296401437382840824265717571944916744952396913820524031336654399615276192774521934942133481478698804512976253199251995055170013228376498193494505806144386616176465685570857780762203139453905224439503015956942843572956517022977138334265408929824497847526505847776612571465272462672490273807808792407384004126004184823471381946837101817536571514634392876253469494103986726957357392279003603313154329473836593048924995453773429622570160605221640828857473916503395359290057552727554594812682339033593854150394517442839227104638055448292783545380955326434063615048794513187400614612204387365441914207380913646857865675464070043905198290488616505364834122956987502426625675577938863973790282340635324854995891078423587515206944191940559956449850823032238629135659081048030704449832918962338789855539390542579023858748489366908890085430277678524555789886788414221939951330493856271922411670152189571987483797596641044534679952409830647741318541036099049958236592432510445443047364906429778003773452485957759009867684947127704656365820596515264165584263673296130432806974336109030868768522815826692279261595775017025078182123638715557356379285985810555500023483033088788217920452003584789764024579275081739417246315824029708404474757481574929519918902100296091892550422299158668723693054562152773677425924762881690448446334157205746683103051813451829530480945090326880299660892305656336214795725019243227500436662954816855586024237340701302967612100242135239191450505541440506717694799065403231054077883410576621833986996942965763380730345380886773316818338027552682463367297508505173290841959779486020789710690234366697212842571828567423628406070104172109860073168534774191136475491604427595895990028090735052435386494840831205380049849614836951341371387751286492701729089496365033047483316788113760793150662839853975183071463256398740069106666645899005677171064955123766137201150381434956650715130673102891444487606993616587811748633648877145041089029859159289980008548112024039739664008774840494274219586644211893971821928210426382434549034434861291909231424582462940699222783795407472941507235560241394578431487203920173808133958659069738728749971337559439235504418747062015839445747647143699064616516201455434713966831822065645895994152809923817132758559532294508895264761541163593479807795745027499191224827244961279120724352811396764160578826635431231644846458769017396182809778705435571752278404506716331143760109696888363995722744316593692771120718730488025960177701770064206818030153304682835173235724545630829899649145739524209755595656574441653342787037882927580585578506321235277282858236227465684388017481038523612847097049487791920701140003332263785788824878214537439032467767191709151662109134294849757819182207201624899029382360505653769783356570141806281059572628224450939007493793575356692800558107173073932147667416093527881109158260509829566149838316339229051887838395939161007019898984711886979070158268510219305221657021213362110684041913587852990454609991537867218826195093203467519028657375511087548492988089356743146702860302855305195546417302738348113301559213620524080599382715658235982875972123041727130635748404029632450906039822233415308710176370646164758194496970072809518308200266441672850426061457225338973805119613137631781497813886340885645980256054937003971800236184784952179639664582643561592667691761186173965496710692954838050367756306303571590313014116218442058481615699006078959535302872670275515526350911083589347233565935593843436435578250870598625178915720999718784712382454094045849197190253420657680978681197300191942751691193944656110250108085740413406534537020184944396747224901530463516789954822066612494246065845617797787573337123461254174958702542445551895203281741875303704012699665866099769396474924455612649196951750745783137923168456217717475396303245250735289304738755289814089055237621822274651725456004368489443433785556516617137193866536776339292486119310392358603746684582601350017695725665408490276104712743685346808566207246462884280782610982303642744303118213419175624163896457075918256359064525362635995182971003145665569744428146865382597384525268147108512222702773717167686701071792575423967736458756943380494982694159606484592100788865197233623693226874653292387301655902699822850682979424087252816392650778147109184222578107489836956072081632328939134990592220424597188874433620839577600033267532020148199813898481266164695850628123990176576414000488163818599568004173031039576438492561418666305503525742778804851833807804199830138393066746902722328250169219936807061864478730160754776192004213464578901894371163082690332959197563177434470010490732080267809919164433630482705226126085309790662407583399838556510838275876473221932254749477286594866111920084285137807131866781653367532658623298056367589064592800306508494698122756988819314330137327782812898047127640290842108883884224873921299066257210743741067344468283857519698524241944601347920091935864188080777271154371868842738746854678056935096811839128055082567626870802420047176413799986295870145118933561888043505367324044278755131588524256780768958209807105503239519919510822486165905350385231534553962207657956289254944970571726121269186457641821713670637690920501670139500096137292589416937086649905754074580291069360988555598971458044011147873293285434062552612463828255104609044877183513006865576905199979879798960752008651982800517011503581567793877194701992977193640054549901724693256581302134303946310961161701945822838889505444232763462618179848054725853955368579704851422831985791630089250624529282350728545330058744703200050227357903690755031140135925470413543868657304615595607446335197610507493821185392795564076349398793660711423505906091741672685651633736571817539695095098965260272677750054397494117791711433841219246396848974727653749682639388940503732774732646934587778792491771049748620091652539110417165112547057097284880031411833398471736114076246537440309738940452313067135380527930863356124545337793135104633287385587482746099732235318265483063745190552659566148722379976680459806090533451590531411493870259458384403715774055651939769494503593620542790020785031561986683437124342575460105477049950990660954346125138817575406104300554187258640135948961411325919348061848595620730642522161163756038210670492927445866881722609139357423298537474722354764472890562432331310929277174928175987476387642316505792699909814803420290069044011012774283458031356721699433065956098530237386352000398096550495644514131937068237693860097482657502662934441033646322405267015837753339131343248261273289746578983734935245423077622616331284153152309618718493465571248027828256628896001073798598863653661806861161971861864768196559240283214689604301622033062120077037799956705454662015104824957385540786536417531703645807027757817476175941039908389223945515684665861628281901861283059938790815737006599398026753176844322124703316502967699267725262472481906587333832324361815481207079071248464594079862933831763850315912478551729420209674273737797700390767090839203598160174206973610971547003972160563201166498582581286354359281450793099058164701555777208719852531955203227233131291064250701784632592988466087908810151486893052582540690616909192036998251440336442085996692224137251679655362349384313728088668740154341671883047802526669285831158495923146602843711369990101010816537117724497375221239834522503451150028984690955709933949587149381598262510149439268272989164790491525864229907914148824674594850040876151354098929665490195064921072086374255189794651133568587440790477599473880106077911720234678235683340930489077061410353625458572950410724026952615066773718541181726826055389844020738644596258129696528972385231040680297223381859192073868420903257412751840004372581626497916881163816274388351603355905496950817921987518602027639498339938077034548963931833184139241895429166142074640452049347303444770982635322274963792489324279046401534857334966394997638400349263156056255850331545270100761485811691591296218691912881125586484168598927765130658386434472798098590889180362961333536153728768727361902009346519976114459179379228314846714220210287384618253435670257260032588063862801766730038675068185191306464416918811218405183669712154851850761070740153030681878817701293501546772048968035274566527785312991750535847940856568860303989666254016469467817416913110600383124096566916148197909335825907585270416941273209412753738208502102178553277533799299246472573588055256159787495216492604313515471384153387492207653693153434691820069589609416770988499072806283537247709406500654158052560472032675622919145384436224651321743697650589013578641785863528157603452598111971286856561001397275485960118073906352873962018887186251845248305003977138561893748456159055090256917350027287724072086653175244897075186824998891563269915331898037456045436926803570519873163700227589176366078484360167223757662197624208151832377026462900169729645207662174318085659816808373225383982168129104089219276241311383616886198235617184710829667306667137573120100732067778337674455616778070889846835617137181183854767358806168352171046732390491635797517407687933436125712102682740749490216433830143863066462727415089327404177616615947584501498763065219867765873010189413332444555637844083960939332107218308415778022110705157068879245440657799137289653267360194931204517325859192183894129389675871725572117159671199786975528146332737194123903950176634138735905063742852502447453358518325930886909794946457834515809909600497717191102335798181867492911191464017621670524871564190612352432944900577627109037868835776339799288369319643341557492813085908567954083253934602484098025789656653849456539869305637251586770278110007930585221451103485060055130125891293754699183176369256347773132004243601409249927838437686405212159178658591996077377033713336536164370656323903108124349978680918798761283918387161346362665610873117850719795473956053962215836520490880570716974331299372741575158963118001849878082382309176884697900605068978746989815850446244100570516583094957316616486510440638338572554450345345033047090089601388643580731864388416270359774832682597179186471027260845893961955740614298785147611993858933101355064284761860822808458650811519451442912960682230981521720140988296096016508971262071281331447411238120278576517872260372051236774848501512157693414755874338801421131144058016013352386066229296410890165963505174869441863725916535405169137319658585864605504120592145719301438145450284268022042692016465687366119765751329328559338384793848594289481448176777493189954800486107318217402147323110864650082096318463453205146204079432042901631732537019202748914619910402061872823881917575670007480781868465607876627716091813186745124369573770413298805984392494366502848567295877396721960359225483027301936839482525484126967182281881844307455957053296598165937235847704151870172567350117672078665975949430365387920367218436018311805052048995694129444060341934133698870389888129729143805626384015001647385855108768759483658906789110206248371826328698225403450024837066472310794935773086271813603770932617317053817920161949186036746277850996103396665557732785974519914156088473031736798773143095670168514473766164078514432379520679064715078465827570434024349809811761641722119542145596392481405461560752980642390287072918000184703867866544093828890421629889340157362418487670612618293046540490156536621452640321207916807490213935719519782573674556724888444662561169098339381935208016199600746873429445564135082078472480407063820236706021065722460503720506996258352810802230057676546545809296845139147811404753939359043379358304081148033870780214311258351816712073794970939847338259589618592306613706043226921323770627531076862283028660831225413758199718880278077905427849530946027311587881284646872267462608231145930912358863559872925384271355600110320347712255040088281682664815304452065317411197732556797898925682857895145530145770167749347946513384577413718175491408288246940012065393328606245530554766466965679291114571927321328677159284663018159006333229229323716227659071930509147718834484627906976283394890677468745833200903235963066828825877910869349023884697398746603835378860749699232898049155415918397441058860518602449160445078786310078107860047385194266432316805405324422708635829137035177556382691932553454893092362354643754631502639332035122913892739477000949463883258189135710445249083886603385616073010307306625050026679859401440615937943957457490104399240641050887371937520334097874723469808959288387850771312080935143775485123230068963782257054188346633777793809997560389513222809912326872164890600007292169500652336781510201165620355844773139757036709189665377385501581639075877680167107643520963873540194184095298266800708033888528378750194267352526903500572832416744392983608492692991621643474260077574548135408530251955143090880150723631826322802171571246076946399101106352310736953660236332436026388651317261892836888968885790124698700973936170477353444849401130820090166569280539921349202775612839628090382861853128076923395177705663270856876654389992733588897584260448861293256422040055962501315713223516492085738408583442950983995579249262820216870114933196642387462581987026389528588641312162190045634002203786423036574155066570325837070813274706900025084201136792484470484237204495785051863806996726735164335238172597951372874215777502924324501413639531108953482865287291166386073862335157112617595513052825027820884392126665483136904460574692280497356639209481786539805422228554530407164058293058394630626357042885261919237455541361025633207676265712337934983794549798089124778283463839877333392255825524094059214380041475666558351539470489613035837030496234045588186494305750380576558007294154472767757344531595300577227715285485751999982423787520623286212069606021150805961924712870454099487716692230358563848550487906564013147639284439044454006144480227181765176915553316278401341557823752545444643778307945773853665611347917079824191130629414288811402281287007601381596757991427921970898549131940832084958594604448373673385697396135129729447810500149136678038364052065451854020754783383279774095011386959946728733052833631317265912947035219559929536881100916958675001978319961502713573087046433175773162194765786850822726150709160246207989911572758480173103780963377836603106090198330876540249542268292827514227613986385688853226601663861799475210133121526533480474910419017389792307632924300585170411599674772719941599792757594059405445469446416850911853600992111217492977428649411853862175849370684995039300008602307124261710685108271328796871673556600958042931155528938264763770422503194725983103568334779508781818071630328958017575341693335256093117864085149857076719114962590417791882865033285749036114110400563018836874613176454982568139752652350323973625311386822545406259036731251906227817431844097856067441084357189969012081486723795876007316838013388776009514954913088864671193525005220588559625563144935315521888815137182190534024224428353384042755441155975442264034872900938897257779366052229509666789711562680968301200665157941359708542480765610101876486438406500846555772562067452748481199678735607899421791760625946380346042182728740746076492878646315956768592697961674091595850885604456602486978213482576427227285082519677676755170118656875032200136440709783664463167918199036375869308010199748900397438345165650149987853664484624040241958780890755537102764917127356351444842077183660200431859449900024788125851207167725007690018478330754543578203092945826735249917358817415633852396332634965613973476064274309969588186659224959536210071822908383138027678870265951459569945803343067559356540984841667764311003443835317939683155027360443274970871434786101859890246376094454636850762148810926022775322077289056192128710457285338772756332522523545367177723392714110319741203800124097486667155605664295229215558966108105988292033243551559028518844068564684035817272620576177496709129330191006243607266579928780113160834605262468738770125640588193027353133937862429396749529339420251516562754015654006872915275016949892912311966252077220563511148357930368103508348530988888363105966486713292338782420050040789181621417073549393598090697729557763418861354082407760692244625329911817139975875518238532034887055749966827678230590451656801151499571496724171181588817959986553339543915246216565014924064877727197375855301218644264483196651477514120786015328948762618207394499409870055995906591044225990300737443512871456672297938880673612097517653249440338131369580294464457555208687114514381476119300353285013341978278835467558226091977332148563043901962034811144085394057420670753056556651742290019723887151324546851628730237218313994848901342048613878427795134306996337132310474393690194433326539249090338081289644165199043567149950793866714303298722686865353956737521718249346140759224393998891734530181739495118370417745391868346504574555654172629810596287494656500853309760016253696503788467416471706112925943139276284245086343606069618887877471274140395424897402233147694491824843001208969290441603027265990159567528215619527902511344703514962770109614309385575615898814877365885963417998102105106567492164140309740536513825567539397980669824473161422626964972657684438900602675770860845338064650544339528687769690593780543879940640119576713699782527583860228831564222059156055652837958292748585307469995569710272150080430337935745734172906418780708823074460082499391081574773406904879729467027334027401167837294551850970264195449148589036560583691204109200010082393395315997330476273298076733090153603415431514423633973330695852504438022007427793034650506477265998621433451102854038366914528248747021318569714280131918436469412632764617873130017808382792304399306252442196326888517117975080463889901705965547766148371026612965743952483741571850800111705665519643226048093117192672507678943982364821405043512945586751148849127282734181682632192140831212353843381162473688586770466279845520068509428906437449440791373288896444191358514515537612433759538635836395109251798911907446804001158838082879008858946324756926333697778639348177191505936496170864499508834085081543148466021358019778326439352210256941203437800630466844550442529410121082157781062032888303975158536605282195637101991337916814336654037574300488099504403238193514114577018046153472188823358957323347515871607836982918411829937125302533349921744756891573493259304277170924873042388159152297269087736432961785282978265473097361156538581115007429158375341966740811817352371893831701311628213901046097012215623361429490749067456534169406509539738109700104914933285205920863314139541601680704871641380634864025410314532987065562481078864871713728035829588937683237380295934870983948037391256820992227195803534942942417283505077084035197877136921373879444408345035903418322653172200703706662225058109995090464320010859736869010628355437702630225993473211416271693059561785484805550702751788208514161595819862040272063632800952383888137294815970002185569828478829582354444406435531131349704832489406004283115631858573101173924847825037218476004940167478434763012243505951874062368726631829828307080515670270337465488803988858212273208359028599480590037229002161022267003901984856875294388110696924919559409485870922528583825780838131630807180054963400421690158327061062205759524111226688638662093528016647774672477288676575939045708455976006583980219932652082407538426211881101600393740537002613007261018697386380834522558503021427478540524529430747660512401451720386594013560831537954789047206051514730253228282977463659519252520824184847607350918512969358401153199837006990157225841466049555791988362660923472480857675751414998795222529501092328887747913135626715490800499393529940635361098060631276575393361785680736335262575398622543441222413274460727138803441493308791921488263379043518086182837035960370317656380088776794418480630471141128025247794998720810132132908479573178337500060954843781068881070022576443493924227614649016547272948847891675285089585545452598228114843885844359374717377427857051325589838489675142764004391457834222123712193480244693817644940261806241863595969131387579567932608471495199121817880184256403455802254047937071870946687031833232335974978940079549247470242839859528078093752977416652131256514331564057128193986226347065227677270447608421573931108827299115144002162408135220285461447738767095701670075514915097188884348343482663544668723434402484869813769672671565272499113575136508732771627677841578306600748637542632898812231317957066502714038670011066356327377076868338678284208770744166462656428968194847760583388299405055933225924992313426588906858856055762636396688609715931577534403295786863790434320145120350404735973241667589677850820256740578312140506455979728659054851507880936212753476623603470135843995681762635700248977251378818771961569147149724387213301257838285847562681734112676894429325235528371023398331835721432058189451135700811840391646633349660892123190209993983662410081048624704259917295835758162066976756429923866793598660847436938038239006234625832947531270087560956594336606239207458520182422629274251383355285949053412670646740791023484666979427570459848935380260701840678261583007455279834003210323385423854122614804535061321006684847818090390798188668629749486296990610741210121013108329432936423265825375101711096053893969954778369310083523163359123004697892314527132207986963560236901351859845160278739976999536273011068034822818473352104089522425621499729722380738845693604303023686827049373177398822483220681484994111137058695555261809757550343127048327296963258485447489143216150130556862473714702556320123098449568854933957877459564758455843239714418950699697911094918294091896589923333530926778883947923313021785642484757277033848837275842242390780942104906025305671350826100632067609659335430086507030156230644870828575145239428702315525802737767129197796530490573173380489244478199454470109774518930878551461241999209284777927524245865228056463575221707177566917952730247937487394137293067479809680891003466412202793713293889092666399245746320653906718656855353425878377072064522137157611769194870611716891351864404410228644638149544309013401459974531248999170936763780366880264000828448467796609761989392119321677016536059496949513755513096758036157100656609556128849193232239022355594050607342206932187270409643286129703533698510073684616671506059547234509012790749564721834484260790122966453780959072181123111009396173784356000934339088624411160828175996733333460218013059020073701980724113781228700691420280039113526593309450825889746218689722608867596600802914274709333738458493786952069641299820027813354403561667039931471766741954681591752116064343598700244377282929037432060800784068611693510349961316685521669321278065019272407807667751470868150671235062666070803710534328581108134303044631992983324318153403307313045169813148589632892370927658766050477819587263789142341304945006257697634877685530606733088193580603579598493824153639564992534379202639783614265692763973716126567955224471852942234052911815433552256426410337533677748631466847825926096484741039429350035717613050136810081196647377247707039005972452241754381674286668232498358668748241436501480416430611739215431655226025714043008522484104090855708904472426546964022125055159611297142651635974614044346097150410160925729005548697208716111922447662721017013213610074969745062033437700284373778151613076594536059199595685797417751764539001996681401912567864062866809767528363875125809624385276334948065375879688686430470940295694942750604277057156504149630807187601106907045497142811871467425881970936620300807435371717147510410445697408897008429320753065900755352489806972470164765105417196779299547576399639664701677631755450733033396628751115357291403672283230493205975200904363675694802579886740813120232452631070910268940553695958821443923082291695557672772842345358665855186843304432505426405339866431797344037613119765015722960287131934289146721321071773973950801264338319538296279675184493808237525458453821197087918432497655047382266280735092593662400657685406169077310943780430756105983558328645055784080493808926168930484499346715635064518826518930931626525075656312423893638779203993896922611492054329713717716895217154960613638716663861981093793497533928362566478083031547352348583218530265287957885760165761271588454459359050208279356403560792817703015959630833784084411695279023184731274904072761288286567826803357367032115667097160573368727490929908177254401054776294430130767917803660445639935240239854517006580908242053127426956249245323535314340444557718223994381528871917912463597287909077660667921871199423310721821569889798153524589815695028508283868792218469679622482217544951471814059181584557772893762704255079385563427006739854440039909115188942976913713058902908034126527706836507837656914257121152183887982148660489416900921499008078430726829820236567753537421516065437700172528729539629238278582403603295652876240476363750505467351881329482050032472906986279233071505671164267833160383777783499105335561161462054112911973269453085531876685861423842030267279228046563604273461220138701047972192589201566342649900427209914842651473334820867407737893822834990611503256124610378932652816782370766543733920420934674187414414282432241054097207613128405883737707003550449130940544432238141213334732301834555559449344282448028640748933307607719357431742775868218642415880724869334271085006717433640602364822054337199686468018968716938717950794886139366388210148196174245030221958966057276982986633212017805706988206007707843574881309552713580608387012435791064934757761477215905443938672961208746366327799292578311940010489690577612225753499856762120526860389692289434836942381753890313321229613223411494046122510613149623594139394947447954101234438397379393664165831188224716049908227818747643274642996003593558982701977358274105399286693965943910939137046493160290420013568405421629594370595301160819414642171614498889375491886287720142353106849542784688998596370441024059037352665314209737938763156607164500290573682295523911955339375354007805482832391966017081805846532731555505335071831616808269710810139707786013883578951318779213969449533247716428422937940386338192844227727856694410479598556776347670452889417291638130867451123083178480013476875287627287455142710815080499184566113319344737090948855805437177929381942492536855627322844510094654669004398044662709201233431510211079267552926836230696435841236860200352796134103358781577770996674424898144726677085414489870037116126696054314245088942732178362025215135025523245013547116013504602487509055561519068820965198732939329431691807637145879238741310061959770427904373705977766584779489636820011850109304381956847412517370824379784660776693100931468432985054137471189420015374285720730979165965833927251777304614136060718649697484227245565549363924556839970956391691477410072088238500187866769762072998089573438530205920635499284560502725619168728415147686951360821131872549862947789074092817896863339368898103175937682513928627426503807032919764264955133347449138185171686587003404669143657083961146808749345552334982403748061677682188604723908081329089313596068894954014046828224673649075224111221603287191453456936378023454034173125342423924109527828643724236025105347599489123647081275788895599750777733653963579230128275138623104201718774674648552554908117646427785294505722301676463279213082481983698941693065747344076967085887846716682998035558229639733475009426873766509451719592563851337974024266894453279639209074038099754869674964065102911258612286148368922722465390671934471237206974048872447196578849091530952210926508689455467599266600620801585310457379581596789105596666902349446830903868249481620728872495644899363824005467720542853304282100554962690315738522787993630855854468877965262161885057774968221273108275213802739796697088143166576882896048906369058188880464707665686456875268323940386823776911460262598780578933174165278252512729519114709546021430714341659726250437890710583742183875514841193287670452498398724221684319178289112422707520999094402155059915511353751890789639643534678691525043877670165231941088016405754719843427294863439706489384822286372847953739213854713235485567764791805957810622042088610091848011979718781601637115852395081698592758096919342647925694951778098519210977418002775918136605218691018296983514448385774877853402993822878694776817275518062177772122374359080250449554783416247035808104832179495004212542504217774298848810483814109268643198163824703615321193264563331007928802046066067206706245152448421247124384583895002732567994428627029356876151907183024565550796747498899641625690430071547864662602440999609373188494200296555641744834078900785349844084401004686267227747928894639411176184995364696688652817320431186107126716255365415072941497188094325590637664733602600211970972647722309627333459452004190617097964512047327928253269486892894455339631231011781256159399087168027165154518559279049474220772727636658941739551310198738649014665696353496606788415881076683422514535482449741951562924186970843454263643700392909348183746381335566043551824791040706431480958213487275262733646090786721158117801982662786064094053672558422545101900189596928480236011664334041469133932707277102888657314487956839894765724573358729712456010290629450690108274766813044169883869487868901984274570406641676620513253615134611162199794735527683231640075154310624958880573124128965242741713372764750556252379758513116728427414197265250511177330636048998452355856792094793128195664361104363286209085892417908346874550911141876650710541647953179093355763530447193605749550213763920374902927499044477169578093228546593605969824247468110143254520035496198243873804933964616936376291794499552244049594485279003730005640820979576972762128610279511258429271008146167492331879101653230663864578939274051538720345391430694656646298223344781226546360395915726596056506362122059699322513058624484084978461813578433277822044307136663229427119988862869804565605019098980763815677171204693162626439090597475257996730854318763317550007719285242158114399683177718215060266771913571703700967549308858453637449406151087906152763938313980105220718553942104398365869002530328230475566667149990317683952555900037449515381851220287607660121552429956055158797718459661970017787288833123495475111856249709016602393400322021869131190731128379526815234948222858060186219231665294420731758752989778635889023215781709579071711776135007982561782391381282593070270571555694084809703979250788694625485003566661070813668178618462353351965958519590840731556450045352622491125200763817440767710926178861704569574267924922807214968370256895453683936210346146343416507294572988093931526481299703627543706144409011978467170552153849580631568417034094758632930770810073137575637690833325189860934553015351625678602907673152038587485344926545943805356122436242979958443983168684602406069818633138096017564658327063170203534269244790762711835551964705598200407441270607215756115513999206251965039509839853531145781836898616590522516832982018729465853063720942286574240772572966816185384842143386346888030527699914896408541139648588204520140586299443511457264895976149365580073807753104952295520930677621870095879080357900012417793027285027296485442231484559505451016388794560086259173597935947166950763606947537009789626443601934041466354936247995673698365424919543792979314684014762173470520814300066765402833300560480260593251672712056677151050186412596062423463171460921308361947469492082650516181922115986882852244965552404312339729640112850141219007010211678746834666231978699167842082172903144795558152594559859688217419976721851916688272515984193506441718581465801714492003103666523235298732176597093993274461938795399936510977149512335184519375877473925733384754883106034921575060946667999269470332850455427188129157832837415775156320216304846375937997287059668278460636665107962372816483079417891025640400477011778592105466713782667005286840648922032903818330738627687266429689368850626960506355906394646637285136408308464555821753027605017251090149916177766977705410463443818095526336602109619659977809261169225936527305981378779770903282551268067258589496903140752640373544464191720598788427350397255224178452320637214236716804848382909942491220358644064084222762440187724365918177114809669204662728669652030366801025228764211897263104783159743284421987191081235279717992890351901583918108678581713838039645321912468867180396558512034033562615464755262169300459973887481764036835014817858516627030074027080069507454256954005115633182901418422967343790169252979467819028602525955981341666307273322891117721564801965198595725738534789548737384588376967786304562203980690684879558532305714646309623832333090720575412886545840286167967872224323524355190675488250005026161857383562129158059448329073234371130237366152874380382353143114812942908359301004389583829771238254136931638695530022242829987992126602201934600196975978186501798943485673039818565213734211968418418184745710255038062654590260907479958095491309109771114200462781061886170477541392532874011262133206997434744991405783614392700553517003884099838574999572062608286881294597979201599018964563431294199109848693649245167502221446074800348354180304112143384578890283196546895056203314476570460286580758339236127404338161817674072272266279261813747717686079993271220916444322099138799870491401182451624900092379277126252935492355880526936508676117259514008820426179576177749099874832845816298919011217058448602057073216429085194943003429458881509011257732408275118293003102944824433996536693334493256556713235155116026781365584961238234484642039232842495314254411262419418504745419937586878197675887821490670210229197154922250269579610052533554551322047462619653825435153679761765805744420325320245384255505709373156252756558600517828089443168097207693353115571108891163839847524558858202148143202599505682000456778689908516489183335813096389260745722416650204597951538492435681059124025177129732340737333250543006206057924454800937504226160616055050534396200027728005083631472942197419132158138074771949182947016427874727941458344389585580710547129124040657394800828857105600614226599656994329047410683399712256834393956412745378988101870707203502724721450703280181102019842178868443448376869626965261351087702658568081196526024795081517741206546876400502076021676887958581789907840058992393727316828501282815246963074418802059941172753669046833889527149761581777236450338103935908111272318162761635330849028990602160396101126376109640597791352774078337170079267985937034279836350120838432242468781526499349727278836054615362910906143322046536063843222493476610394487237414711712338017826062645787736824126912023641704612098774032542052299208125684650886160642353263059350811061600727174962271093865253667262526338450127695298440938467295547268228772518312243699304842794360989203576005900494032986819248128847892379479612906464884390109418963464213510520779109671469869302253615439225397827278563018137428366737706545813947970157114197190783931049905838790083742795869767655016771717365316794861082116892112074746319163697635500691266067641677532098505011063873045558755185972600825292278260709954549069090888503206026432442293192145993778673202915467078460173884182929514007983373486265602218323895103760194825734674530858435471410114504375757751893930362425410684516716823602576724251495003873432167576721036623921233119407977365719370776726701212622113124817358076990356517508851232380641792297026196708459628245356418046448107880224615839417780641573510410171512402175818016404712320440866986483090450663050935050028071794595425100806545960463390481819332360724008573525840968131740130070048806170104311450580716630976976097737413584661282044289680294603554610699141878764690659859279858556873564122332866976232167036903545165487004246199883046103100200228363186932813208036711255092794202991733577942961273554158752582721741789773658755192079885258703783025945885291917569473227179275685613395384270597513600908782875057564862458841320322474026555970455853992556822398530967166419631298918002881165186754535119479341482599818259498800893354197401950021452984009256448205085873089175030602612849282544487529864429469857078068837776639324054879504692612884284631620285810221031508703301978161582370257327680230098074203289286475587022854129503648359279323732540279026822592051426028901141355749123558037230926512598271281339174496070546866329226822893472535025342902499161576994125214138008134246719963249816435205652692181510332101346157498831148462880694872927631831728152974331997450409720200432420654866696622273037124521943062595919396299496019789638468230653612434261210956820119693665471704890398159095634760229099940836042707455268319236781872746010789330618707019883649048993500191935225017044843638625870964462294735525378540098503971830643643281648685516254948274108780709848088702100402895156391905056246608871603100417957413945268115663544630394472600253262799787088112340489852633077836922009521352945166011288358211788457293089760475510473037599949469482199365728083229631799613583798047254092688452566438687008922841325781785222020910393066875237750408492513154550300173932476390982449392979425906300554204187283416043120134101701789149419796139306634261199505244096384625036473960571560815492087835164395076070777647569503093472690989376475873725076260981503668463741356483567115255072691149532435150021314536680147357804355540887316760402658860523117070610998274300810640371245890544989729321873298809595654564316086168242346596350174319572648592680294755816076611815351606539388787837967432229615983514984224753383948938861032748319148898136616767816735558197452587323972589599247593099483549990187793549375308735117726894245256296427395892992533109847900430522967292537172036286254728728525475647474384400375169030052508019918331119996894183714836804125380871011655001595212498703556429313737521835699658626227649854583259059044528788811349769665327333388169298445076186871040059139805501215225914556153696975487488785116213196385960202664468433525828863527939447549626952103312790090095591948535133053828213042429355111593343939344046060854478310894783894376856759397106073675890461037194866662861874102882109136634538398393116655886050075533779894693367008473883697907489797679832589191833300341488962117796572536831696955876043544398394060439851968049749272243904170831981573019338527744920704216510678589706675460034692319195115103227189219154691901877287127439958342110008740614322900877603219739955769906503622792701058263174706462090178750273303499876662695111501453728633867496348922966519196294785542380455771854584122171201384442862718238844688414855750343241229393777268306103993751470164960252043639458140736445720524456177976325942208060299839370945889638463782318093782373950316253832631298854368587612886700770073780761051769248439512603066595068685153822010233023925823082787088380282216352573036593901964589594664922233003814312527642116120896535053463843719226316467432196246479707797088195801326971795513552279913055516026938479275258053939264077047091476170296983275526737600843645534930036921578849378251942258476565681719740301247498322038461221664827756042363984771557545815930627069435871796295527542090390932984961516762283080822484298643278871761280965214656814815630100405125710277240493737291981205832978761064043657273254704740650130956885670070147108258884595617023707601711443236005741218386092815212247384819867216877666344837044112582024693154648510602754705419455328307632042368424618447058219906399071789185480231626161906636228930761036516235931325736424616498590605136491112907348754391038338820380504636567834566448098186453042110684673998140756948414901375692375949304809660337306795327551298666394344761661950377238483841444858964695757945582076321680651927491209113124285970459325286974581792353424547547358504068166960044750374544905069476143614769652571495303895071628049959765817241648499024316514500322840920316589991738113925972997643044639310428998029090628192148114414663193168824704563402198253360744309347789192905227394042293231514118989067308764737016212816974763235200566169246865432753515466551591107100159776982779641784834867191581725206774894229328236072192721223829064978789042828878150858514160168655154138436892574055285502203129296497888537529598206940185771286180494201279801391388745821661108934690674131772076740847298299186834558448682950411222982634948908169031362039451389282932693941226510330685094349739619027239648036242271149937365200872030184830543920082941645425607388225850897909522409127915204448643861162603713117390018667388942153708398786498929610785050786760204907400959074510730294552702386477291201392570940676659563371349561021974899775373209448499961457695131691663458645981780757619831984493954915741509351673796121064597982408229562969502276360682516779285084809109866241142342502778590678004503353279088345369154850993138631147241751284120225775441468314994079844185455665487981173751721793881079165623065181543120788395876348515421885049118386906417047607794461225895321762946511195378119874295659343852868211325827522192797498883421008196840853888473018339172600790267948384316646054896144722783537492434613131191390501482453206917753236197988453862540101234141142110123189991622379985613285242614031763958796215608972628851831056671514941279524230836310524009549147970939648633213266799001850244960937916315080408632159335931259392925802974584631559941772532664268252344826701645003579504298180558279124132087388902873986362323185715029607479132814791048596436744934917993275324788186679066316228336994893809793883974750699249768418242231801517063704328984902246337741392103517437892312873469555121753868004122310240522828813497438321482905367571506060446465249319497016877786501436697650338349004121715933745259149794468255950046227338541774126903979821992746356129500002708451122012024973396104791387078949937552391751057158980116774436133742298853067783693913164948790272829561327150767069273167289937696785436173707910611109806975333364556835834308321829896264851053034015975391414934967710400422549878122473156819857297953310318756833406227611277536690820348793939989551808172681628205599199766450381151419212275400288840041803900109118632032839949900633253386396375180508204807614145784989988996583231275983506758826715887793638620490114042717836438948699868362018756734400851243677267213700826716374437401144612325807198003674077293779474892771913565826100554321901920765751609303165446730106552371876871320273943228017464771028845329763708797485330949061063406939432864419722721539577743242787880765989754728610806122998694519267842253932212493690700125976296085793686429409295305779918932867501870425374009887978143678172919975393495581024521623765918295075596704155507244325683620236618742801753140923385577632731908556614970160259284374720202964513748895467366438587621310095311773836513579630592