Ad
  • Custom User Avatar
  • Custom User Avatar

    This comment is hidden because it contains spoiler information about the solution

  • Custom User Avatar

    fib(1408414)

    this is how it looks like

    58731356453484021341485878612359114929034042146863187875547218754507954299268192792053105100206373617225477763242661827531847760924909508410060872451531059792888903364324005506876140865907359617024256671068493466474957626890119197922428138017651461548743919362204652405281185975934642094027336847872038536264908404585625972595945659889657357342306755475453447096277571743930078144186977133483521335870398209234538899189367553264672389165464022545016053546577095502548024421425354477075121539892113731087058210017112754944581182879263080583257124706220308896413642877634694801297960021703132704013452253070680877986512558941708334787059380856347671089090099821086807475864554959879339537802815157155447866156276200439641473654918679642354027225596128269487529151430242053757083430401952861443129742477260773458373148983276030448302364696759481049627438619317036884331502850851061971861626721367159892461082686675194840327946155950233407131308275835477757861954977937046262139097403176965144089973499680923246376385363611604153750603584342256356539116848186999340161184041297458550488921331940558751599782804837489240272103876050026498728615053262200211786105062708918573461083607596359347713750376532945141190624017307805715357014642270625764483806754761587104038537926573101185251095330560519309712428866690420962470363593523098221067049685080961281224733862494960538097134806510372161565533742887866658853589468486444988571665767319166296703157473195663949604287254934268765928226812187615057287065882068657604603936097683105549050092823161698621286777786477581687947298516933598186840928078619391568662536640144088140294009660349990573459599682473982846419201484894666366712086357362640402911173071959900130542586902769252934540051407064651936167101709608581784979156205668081900033658599145797827886245134899731301499485873681318797413487592783313096037662429775648974691792259876924544340673120032840833548202505653085682700991072292339637860502551324420693003531746597900683172265870220079028702740328075619087375062571725284759079829244228530559793698188167495947939318841610539706860078876144613321279296208858668361684840744951854784680844726642933165854865189104406091237184383503725387400672095581921602349059929897646120479525456093151703245608207986475914419315333928838180697819323155348191897796370843272422143600166421306819313742115793847316548100833668223142980642907603071699503837772259588581302405678943224793856257916520937313958919325978161240057854066089981951261004031220172928973933434244066370670243497081006852196632895428355711364639804030680731742371427280610691177967347518079494563185062300129560038793103101939805003203859485752802358727278632349759771566748684768318663764849865855387748349028800542213223788388875496639953283935135697857782241583090061870756174177499483247057070274475445368452419728305339882008404887727306916057227450811854801813352131858822907424596591160355423162852539804453173632424724937394180084018529303010260110441648452031753134003984363432351561413849286505554531396601454776241693966257912908393106260237549942214961003715660882457162123624340309662710308788466526028790619394669605947726132005960253396765930990780563904772304000525766065195785805386057904748298712534952420985002161011152795209619975230715271949141485792638720553140239926985153822962608238398394435682376538588839272313323436417886268469442062961155328081438840992374706299684402137076804354795425469880712987463265548332546531663457986230975876906940511439309648204999925784769622633318612958218963740921639054390858935984617422085684180114615184579769247024652479687444655750690556635713694553181071107613702190507457516932996147526511590681196467972292775873547588213239929027648685962197881132186317686447896553235139052587730135386014666286416801084306921609649123545035816845668269496538845467165300632911024315251726057966921042208289051315520654811999945336743819747234609189643187413940929698339585133874829792551894000995369391060588674141183750825594827277568598584593908881773982694665770520323943491227277415919450456329800925925041623634821299636698466561808316184629872819136816352919578239630904222930948282137385930933507284904380850467942070792537279392466527709734810899889585425210003275128136711957042271815392971491672326230120284666472345475191536442308309206634340129661860923697243423414955628760683426250283169537006264767124591581272703514380353638024503403510528615094743965753951026009373771102382798463004812695196793423495630383506817840700266333544371465533452291339778170915785223074175340652154939052512265638532797019772032871425994715395856117791025965567390747789760338927252298640025151620723340203307607868892840725252473657834980474052506789908177988748984841378465690858930666269087194973724013083357015889773361589528413542738476105262232694033104343516614066318513046397985418567115923124112622772397056275617873655891973231172914366969155484760709631539463143392791004093161467195208146643506333286637048481327865418478570974190579612851982531707289752463065796176049113036410159937307423403142675417840389702708301120718982115138216616931632723767433949439040624921052344446917172169403147833341392479990983689890336811654149174918308435027199774634729283918665779600430402622144945396166361204936717228270493221332267125368571793348593308266020586381355394878143934017122357230845270670921436561391768485502569471180606633725861546943552790052007115535774283780707759605968944060196066376643433666937493870183116469517087514640989678702099948311758166770164466396145802161379401771247717708880234492930749939229399166244455995074791773248181545089414872865444377536190004082042465912750280996483065831174270851504566857274064054987915323484950147089323855636866233451738601157417688558312267913674511774499743781500151600080979353283808106952463818758435873868645723745768090925173480054271465972085640850596655886216551109922279256976570203269967039521160212871727286608837836816397957433610817148627434661255244135718928881515861709928779013867281421668406145806105241289211481626797713255627510286684380874791097766287643244802359954113590302253415277917226170802899918030104270941448848100730588234734654229895037764941530010425533553753867709740865803226200103985504498536377036896624376909643771582992771387145571535120243926189480995908060365554118737591585747291331634712665158629087383937312903981467605532405114720654126984642935198930696190012844048098754324937500981237527635667370443134044316165367242045225910586699062003309954211054533842581577477087337109553802286246854753251319730602711857276801318297979540833029437146346771567752279564692182765198911267011383442651339330594956781532228112352361774187774049305097255257007309304369996405037608295744310686728190695092694226529663697446648936439508884078071101682857754947204163912670195201695695650135671135167483610006895689322883775440903277675153898933228525066734304638851544601247277713279419594999860432036025912821240014218676113555813485997267460408387042343978589872826569355508009434208312753546978949402705678643149458254768224993339613671891916219713437439306776470587771437525834571485241091002612124423630209822782963189486049098903430395107231853161576756020821827685796142423411556726682967392143634733072136138077622006555007377593430706771753769613816313609325191304224924085803319770760065609519769009459496791473872731226284158570738443183230533102773111115384260873548433449984893302185717874553590502108440281652372903063956869262176074192626768323084676321093995440110887966421916572009052124517240192451190663380307344935229871092170169194085362737353869859369733804705580676955690733215623152899090357200170471904962611521007367845164796188039581142277933448407944734846570767231042176594432408375671984994646264621540658054721831232447558844534440944716384310990634244205909276596869862721975594908753892566742213955329256151950718811654889451651592615082947439562980735823124986167516835691469415466159963546911195891766876152983738874861349480290519075439385374734848523697396000083512847848519769058402099627759371946642072136062941325586115093807002754116941706481106088206458197933794258479331697773621726183287306519803389453448651549442678039081730442534767984841369034433768639002824214566353406060660155821069392427535065865040694016227313275110945972467423221450797331501101406192430373424614656095533773335209294310009209525643546163939822578947490253084586132372358841215189598896595421753564606197603166529484420946738227017653682635404353848738850222259502745941773682234146557030165026579415849774777424506849001655304944775418885655118685309679137423991826994670457044463439787327805306661470326647375288047003963697378862284069527113133040482042107119982413564363665919792803617416858626603536301589655862140014632830958388247135547242638560826573307361360200756910070664381582414531387772121188431434249432012165832038708347634945424829932680347882602395264051304063639928884698512702110883123500148815032844118569663284404868884156360980727667494908998841268038706654459724270450149493756498046788820715366473242692877344369653239767780231131173356966268051749626673554027086480703673018347243333533608041829109720885245502681680808969402651090964215712338978595549684130770964009482882624932886702503786271888731338751393894072265783415068763449241530951614550972635742150769652562959860017576178918557845566714989973235381785307454502043509392985220758661777643814832411777655074294333868037394897077756295077526045119809145618923298482517426626705202145865907489602689097096068028406350576965164567286811568633895589601660491963665487114548632526626469557793761244381225787131602075723792344099124649053370665825343508347829940683498971613780280657177209090841239368927918672900865590294950548006142074597267984387964920356631840949666666780529891449494652217927404169345906636933836155008468432552116944284461979849447264357863229521457804205534446830598779569962484259628765587295160996510896018647582822408547176611233386059563596974904274046612265701528207405304991694249955839957876908689489726331636286010824470568561132783023380557392838928201386784706543995328107273069297534641936437393226574785121117635984839487011653368776903552565089206720690228235560867556680525366734834621874019817594249216765159430173823726765118419619749059263193086592655806514773803750066538185255590517630524698824971440127779657125515385365922358912910590826160528816472844227154659550421936842577910639667496843763090689327791127452603451514938878908925341645985304650121482236460248242577296322941417213740862309529317626489696621919466746788815102751691332047580177946311503401881193486058833799287522849047678931202975685024113968230475920887275536992881086336907658225308001953085819875193315968952126059238193349773695944420226759660669926162430954856981718747205862404771454068302416756157512931652466735750341592539723323447531444655121950805599381903487528517703539202580467239984736428883505439782271676658978994822832719308466679370048496647433886534451873880236860771338137951225345551408335998902859120422469381224379357111381874166246228393741202253737289567338431931896729947622159377200555365157662341757927781140552588971889079332282730209612083500256561291458910125869992364297446576511094106111702905198038998681269681015337903496287122290710116802877455477087130430693165682404346274531993958181905329760431850277270516179024247448297247264965895465750519275758091266154684574114503771554820999248491521773643120848482553270388418038194076020025582704619052429211417755263537680110316593332090731548483832706348776828219097248690592411267330720055559215026308293000601510281358678589269217472716478494858754880023826372076647408594883926693170485982235703665326536645015049749752483226615251086666182702416425461957751679852239656972575142133638913372160711767510841975295517695131555601685284510876008501326063902502771978439256507417716075634028952539196156749105764726637097029292404756497070822202808300395399562436653232537024734763348246930755003641902667994958399721557618881806449538664609162674210290979472264407094584437547788517307319956469041414547521234644090818073973158378745684864808898177124058369204425441886781081737825728193681403040715328951502418245075928507284616653925974476079417152045518120355364248932324958319916974558635483186757766510821738694126500818133201956502429105656576890786600011051927405420679350066522163677355127476786830982797172248256278738851920176916253643274270754641621930836053547014381382705227174170444658125472755139393682010283383947179826783440540396190921303003507628828683918221228993139590192666643009436393701302903132792061227407394352456786279515041052110662119116659170601034479351466503336762576042940206230905604159933099267464961767932654546082098257057800431958323182373626690292384029017242961936013318335884337246399239813150598871095980420605325137689988047668089208705283240792514874645255251340780375749170218507115930384563482573853699187974752490822990448077156634224198604276448337572160204875169073186242205879998002755736084283623144024082486893576842673271693837139708251589315137130800461535622708356140634841863150684549173616071860825570234829687699977101428348572192917478866785747052835132864310562861164522561417064469676389315988989917215300394294123484510464883880598092423864191177320963089218823200037946723824199067496122822197012775909751866273728796523862733245026264683129125011911762501961706494701702307101551163590553787410383675427413893983944569187325779456411575711416400402254968212508391213735204058223763546498123885701940434858116754214174355126590101826217838777040105954556234081260452611260618056376066118680386590178895024114484546604722442535107000894348018243180432157617941498956398677573498472960808059108191916667092923118673047111911665741714028104417351595220976730657873917790060761089594308803138449555280155897512780353949678089819120836426988931265790926289152287392082670317552717793356090027627354206901998905250551096704635605774125242416248807937188206800198403139251470571874013345634427549130626166324530549302531918865930391833696656055780346325899205424117530531466935241057975694817155053638910973634274953706721903938890393807300436815137500264190542402971591161291923772781397444104978090344927399320864317578474172500927213322058671581348625829090972966262776620863996183035766818272275041498880750347487329896896115400076639066940050617319150036784125561568250645884177506399854814818445536000751107959984787926085222307031186522925055387327779583275234725381729713672487617404770741028819655557621906119199234003085980897574468413715660452866051645176814655781180772439635463627808998977249860494804620208583272566802654970249432024663365185874691877694214138721043557452858284878480093061962813273964022658749629616349633516776580485143029526843093937911922303075499515972393098754376589846164920553954363669591008734525273496354926098573564138540385069061162505360352400064526739312179651573832595937727474089158139681708250118375806077746834566095771471957876909715112291283178017663534655694695258679902272013202136212322920646336892231391097996161130270867424996502228231926223952761085326078938515274600085128069208025178021087581156325538089075920374040537209409341186002069932351559943517824142537433312641551720727496972908697040618440867174418183287365486523936832607516828688415100145437062331292411674468002551601191526707208818702372810424320796959563369752830253326759957800338992125880281836811322557363217747638953351772513241189196082469157533589602338574719377491683625253189051745287146178681112102872252867069852625640709851891652592091539081897766947360984176729886095130153997296953190737113995662718073965321577661759986418946872214831628684852547575257808046123034221952298783401366530132719968927038188754565306893223284505985776240097335231252396589530108150142913038374908914356718437991270492235307603401571224569368336401772480921838936880198928580492117119792538592173155482934375083738792533762028802577774732672513057740428666967353470405435527104561766429664731910116029078967509522762333442145928129184139235778136853075079377540608135915234055098513656430663831799398231539298438611557000944692654847620859945320883586177343283548310291145579476641224710175997858746891715616114902377476265395843495490146519201614539091646546454409381012809276964082322581426345094290705168457116524774736513955913936349177189124458052273099786467153444873044335029465299354065032921730230678364484837104218850577014282390815002139301783975672011247251752701611749700789046501320923991449896817478578948486137154951411591233670250891867453836971017572818065011693737394737252113154579069504439985234105215525904032592200153241620585562167991741485473721158305747836294464146971220968250791239971331671127003434303213579588711804394517024788261675607595853744535866220570769511377757921197473236429627386815023213367911365892618582121838509256320146548967191729615949476115716974083943674051386098272560523283820996673893831608327346220200713334427921315685908601971399359564473278223326765363347810692815509908992702329693055681885580952294448140297462776695549306329776784792725110996957870638319643763388012364536610467789512022053433917866119139118892695567708292437599095867277471060455069730001815907455751348805939140731333676937269645525944850745406117725384393807346382605186712176436399594781682600341492722619765119538089293473646216243574457700867786857790871682536618924739254270302721439555240118296083130872726988047592485767713530013467187133580955246167406043927608847443317775765806192193307637906937088119195751175100866261159422886830924236815238026617779096575945112053912748125731987821554789295703191397889277890012705330934058975557130738967492824520921442100503192384869434912638952635948234543434164664708262271156018274877942495892769630734150571068281222746951200610523768118241960311376844384077471514449675242155505536251108100496834235189636555365253143710581863766861061005958597106113017502739922901276265035605716210186543337191802193882565013847794237970428122927105368657449617989654841196207474101597773924829634742467699696392617718381442453209832118129242196607287172621052034257065900872710766870169090740250818061190600537819556830802481512088916252299737634152171571270415273514946974890837053825380301814778536383678559738299365260029436922827017305613558483461612648797307890958996083131451124016756322655889165852392676038395307828250223951957366093684080304593779249262029144238009373718792206754751312966970383810538747742243367954020562648982479551852025469607238601542715249081771303605839758175753691990320493219948541613736264645632128126794478787584712314671539342755261392418141394298755477989299843711814653813431902202131153915944051576735997605937164634616153464285985533405975504207952078032467908708578911648579961357293771923443370394089639974116793615381739632902283291417717910045561024842208887104849917645223685990750884779180675558845177838541881517003530172653885306064238549553966662620525879740075306579717789430258512552544381197118723066699058641912409070166812764052979076711060203796984506610937904637541482940721540867250842107749336063434068206181786082891158953758748114727855146536355402142071092334943361050428220952940107758805293354089033152066136277581201932639886808405366979821992505458514264949253225834504824624352790967946962964620761058438462631411559264496481252396011872604739976528014143438453695505820926931395213355339181503058060649731147457057527938537614258370925114553183720260081082427907344461380676665389394363551151715286209318290698819834705066913117166077659275414615646764424858559709739304066812288496758763225405282490997893487830322681293360410515436198862944944545577189266811108514533658094961107994314980645596837925158063744405058457279585204068182411727406700763819197855763012817852108409063640281043046510193454802970474771696755562163767679432310942107975621495027176965554421564846016036665676586106374969314362279456055544800803198455302058182149586616160099214468457075886963227659450771781020146842191761733243542711657066248577715327067311183148530128692694671814413890930564604332595054783785901714562793920072941968099787674424874138641005760057909582061605688806144121286395539357193391399872170376885935660111474066166672755517411857245292361194601919568466930643563723000649934508984534114972841507540127598611988457541793418031639266868221397752222914798498311324398218765675202078080396463441786301991591419239604751526644036866363163817557745278257677988442616466064901554636941850479754905889248066434776902468450928924816546012958256246225095172691984308173188863687677014168425549522991153217622032125376201459337108440159823236982882496121225288137210552241095402956718612870278116324626686798683762992082981751316930923621606276919493198270278875210734251988435697748730919820389162066825779508589702769496826007366444051121426067363694907480353790997920055278409204613210489346325819442838126861646655872608316361153060807667461168506003032511485628523824833854009736296031967099628029389718577671980452823668433755920977405114158127066195397337151771973874378548014195707263294330688767918015518499341627799581632608635147546518182617876751837357089219205105568111691863166727843107111835993470659595608282011946809734305601174131486848036680999975732728819499266922239943402153966071280909753573701919256154860195481817536397234843978021197690891990926263734801410906863779533028854688890658128649370673805021293572694629670730480425284833531731941364263732584021068793357344242422897502078730655023633631913352048915694751645735850999234688975622648056291558126972943618572116435748512293960068898999561380602919468702580889109570374910547565993603126643946863918939855524539606451131179932171350137370354974175333496377698448288409973429023626051574255113770427680366221689799900347223661013975296475637228450507386553645722575479170690696770274246715490647359313140688584832050913927794280268653616987861865444361772904547543362290777267613640215864757204105444951166512456519998761408275936802417187799083879365854091981724384204556974505279884906386690176640635358006268346382563197831408035517540642234789077607519891987634299018894196701140264887957404783378046591247628632417095372690734879402063095572058751333726141750124119923616768935961924743447253720544469965970426616977851582159030582478074372949028262409085822895903676640950053028574197757429464175147525797085818337353050966278954780893285788531923957447079168567378827514979418686258205756600142801510584839752564490881428686269701268708265747031392108759062401569326925848357769282749172390104792427013673153708539178523301897328248915037403438914929456314531255103631489022968871508995741929407898949949711031241530311794462017871294173027007678943621536559010948554296781525717914679829693460298206042616320500906193679717935155061311220454429076506343206817896860934668085327853430715591140401347532271854685912847462139085348899042155893684725504879238173120952603127106136875414038880708401485218243190264208612205712828343089497533787543169637305678381973338151089617576217413646932070278874789078145349231770830109695372726436079675658728521878492563779383354548926708572409336166924044446216967365558774933842287976039945670459103402873809752265325019284884329693699681444641396772432830237674854477747693423277782101274038417614389433984769976757536627789741117381241595823872384106396441886000329674870828736098872957310232362410268669465165001244377084779450345986255427051907268856848404205996136653261360052387540172255116743169224952113257062131754737283713497532876986625784323782938158492636479970824354523380107700996968272061816084964472429578713823018221097032029336904570846584811155117153517206099154594987488306263664628673316399758058849575498768796500656913230043652689412189637772514600204913351194376152115274627558947875294614594442297025661335532028477785896822098411693748786866457489833955554585843586523833057676301784652020903936439373024449602782595548112016187378374762067514046916803346010568120947634258800304233336769984367123409543661321668349387698698882464030766241247534216860489860919557230175975939209660484137779277069490047666500213712415240617070194348558452936520494128260800328278512029405642044882120030124096436475304269968159613676693779931989498144341574498690696327757013385048922447866063259951593226284087444471377730320172019485210057821286645500526561486633725521651818279843053809404992552274964321975078247766551845965907719429037323874064666685611442762175200862022754069057595246846870162827736255895775714974433583974011693342551123802337153565089150950716283791133695659634702211086553208742641176763014978796979780504545172115590460285894770391765521137773492423244299215960100811911012549208742873400580760538513530777515038977301989615075719619706215723427517033499007737644271435851998451013553225381685268138726002379547233232654424428523257814186265380846700494583830498245530707726915502559539894215224605522122304816687975173668635643325006061345655058486919645335382756780421711222028269787075084707063823329174604084280665786701937691014059499161430025225127246436917838042511759733152364734316682714929772537757992666999374604588790127975530122873470187110271780060824791609390873986895729367402864399538602316557663791807692645442700764740887671608747933138216143989264730626955663603641993471992103644511945718190783528281060932131751258353899047697447674287559072143800777968170258507094063594086913306879753389059316667539914991601422411651604225613374713547310647343571862806203756610059821114266372201457055370411434826558916592006431318618675355603844943942336731068000448204508901070387665097241034019429471834472017795006184196334746578003179562172652312260515437873010400419008217599076589273908525663151320264952874784547953912046937546243883694642111417983833853774024955301993965311874348848129228869215392351880657030921816168133256206511737012933826283183865221945375291997265052408671204649042315041226497798081685123856123364570562700366269814526015303473276591263247033702130304869927303141207032367373304710986978470114021886515552787489812333803829071444275716276463423949294514971343089264452328169607656463327285696812376151357817607999986679180105545454878289012248816598597272570925948079652241577444550912307491313366684230900025550171497683696109705780528862330591179775391147754023332420099006275825597599699812122716941268095213811700462232099174023733207713047051287396381154259583536752103228927453176235931801571854048905630343522414985020619915538139115136935142235718021691128424574333201620534272011664807098174673375839786850905803525243703149528531991272857939394308809706682862302541049699480759678855382395983858223668498161494813036127421664201645596785330647691406770167053790146394765097225648466740845257781167863260507088749161428399197211135387798138769613793639921291709395003618793725551871486484788585387553470083269293928862345357155254035816052219552709235915005750245290641351914665609739473205669665066663765533308726206584391001009263744922100926604382310542750274532281764656394360953698543040197230342703555280359722504706568121170340384059136154603002390920436262651151351681055234440945569984529781322528652405077248683186723591476164753892958010366356717117835606115654094598699946661326702532955290220388123583383723032668655151155280832451606119963623123159368990444982046355655654531187788360810986753130291096384798447746136833762337716177220799657236312838898290390470214761193809620455928400040894637680263068846954109516382758898182098466829159186867206312800962009616531051744728911128166868180560081524840986661889642696213888625364337303344395817270732906039499281135375308928373902158368464295127424209377871418460917887013062410347153268500453591409100975824936055127500607016260106083103553184363542690126746575412221712754889099033731860890003387297094874039177273558654215374501024297139709484515478618320854975204709460354931296094285532921998805934684432791554641991489899836540903897620544593082428405622341343872394412044333105686142815270317774266032564222559720247131211678369365510661119647618301720090517162705883162362817498774468604475676184347283034469571206303273851808738963554643011438672046217289173568152058719056901342858895065491122691968003961615656067242780791800990509786886687578577415634052968364015010688258216613722665731242400669844789474341700182863283329837653573642668797310742668920582104081845544026749185610143900314688870075168220430376683013821692400928457160353055577879275959782895700376265675019560149056536212382731042567481988050580990232224713608590190013660796554694437377605165926476416662508008208311329029923554580615083551217280355559900688891461800627260884634166307488267581751764772593235346926701746327813363273648538340219605355980291730958639481531081505037966302986692643433004805823653742354671328925511746479034263189655810668098705519015265765541792802673826305832133454479967099502227067264753157461779421980473150709322461213696519088084554260786005602196293594289337174975940243263754304125317231579332395769683588436277314892974738133181200134139714604086086042352548671841199627881191583294035572808184878602645234951047243000432203831177805464171134952171412560569742847368698599750211256857353565414370545270594694382129895369553371572861876984239064385927402861732692640321245166410247987961995748407892346024215592021583217595871080184444019553749047162153262038373790662049139846928943457093225781321524954046028331937312035858118968934265514408618960802269286673720291570924078926780957142406822484314824803411972284189935128317549329223392289689891516135502330580181408046496605571040949431670380204405966337124711349955192238626721066793389000189333375469927872714215354072938537394228151588585030337011671912070668436340568176961174277618979622072164216618648214646772673604984892245648370327908382243622208726007174871342043361472201919783634808214168057406495009183555698401767321107598321293784759574640987189581570369650980607432035445235418492010913242623338299287992391286921860058537828292296414705628759651568855434131743364429125063734774365194302672461475162978053575042878976336589019099040662019376541080967395773914215022608814521991864644354195384319489517089652079417794191178262593240053012071655580114638659179269856050859747129510934926048429939406283127542254061707319909619130176279187840308404785616685839456869606754764719058267923178883204681783499541753234811111764553977916300481200991883810783315420942912179102526436357260529280842890838646447114455637895467687172723853541945620151231205579433258917337107285381046294697448475219782163909885743381705845923347327826654858516881252488112959106148211363115827189380792948370593291995717452596702455515023782514140768232444349254314292218870474326578955533604971978663643702535083692288489088015400482778027025694124850516059810430613052748785300953613128727070402604818398567081945588786039237899657280598832238243822708886180737610610999926439268007524689685695299232384164435596671795427265451984018021559687587576356426528059401125965684688462317997438137528544756474503462254074434058660554749536012975238441110953764328994971000684520821594536612239974769575765020408030206126452772566539888179893440462118241422836669224538976988687523582434129067582480407308357487960260218379035666450970532489215801732910565981378819472592259871559787262909662749570110919965562735834365728296952336719952867493894936760370247973288128779371232643147561933044861810851110757618564601952546164498975057436699500420598784822975887299577001829249073238198398439804353135769964192314437111903995503028839839457572196166474450285964874294739874339554468159723012092970439000533572356646503438395652750054440564805267958052392357456893450549463808306735907942121971089276494486958162121103128774662384016786819168573649969835615748467942073900987575264720460235221561036253900334930441945906095379330001629646571918272918316390324783488096098410464922030422174790503606046698938435412592434351225205847954810180152025725108319641155046920735123301995850531063540689629368324259778149240410809282100453327634843181436207956766409529479334292807902648809699378438555692274193865102474431386373787468500095501585133402111282548434482989532818350545052915204693755591942559797481615952629465104343461304807263925356700192562750812745388721206406423528231715492877701469680566904383694566566890164145660226105878414060381009429953558426657479826718920277483865376455032499224216660233134365282413578143763190278202667694488685778579700822043058642568359816506255656663335054850157217313014569614733445333396720184020366917556030209990000559567035074117658807087021796172407555662504051032526335162881972850609285168505330609358675077860978672093094777827842212127763172077833517284253326539735938045843816434814617076381261888317877609522857066323030435038635452644188860362957517539940039287315776579248670863752015257816956952219271695513143874449010452755172838587352300115380539310557518416849525344533637958162448481480805064456604141624845263667808919533879639331292443035893507772276446805895852278472646594074605318075325212827956556852535756298826199183558404514601908628253792922122432577129615282350810105252565771142447477824465100472485456895455849097530955083075628572743643186417533000867032816059733327728140725055816045634724503573073121661107119902908373727226508506806306271606415700554327641838070653389865848922519805986009631839487915923736975614530973653666736393586469448444042388802862080659780361904466815324056522407814603784416881528542878358497759763163332012600530893257159275659845000246399089388977483273982460072089250110009240184602982890898526266342929716999865449462067481141277367900186393050020533569827510937428330656129708147223974666971072281325927853079565989079054931374539786690667138050260237477944952687362308786908581617006523801229354382553985608712144962604984971707005327114090948501839273966557212903291913514401647820830614488065143450774006620311244916862397862289975817831084362861992301929507416041293329571679734351326047799770106994869436593928343422961674866315917048920121459431063169102021835103958099770594743870255366436721726071404092608742794532793948352306137852022170226390375295589570457389426358574655971936222759757431961265670099488585494986661291332063785216389865961188120760391211497257530756222104752050987660653573474708948388368329163439239141208345674037499835878914806148771342383478915434868823247295593056819627001369250156379461558447301914113214699741745935253976207955272781032588828029081652142194886621728916308376498249135491340368049543770594673272343074579631137630551258057582412836206091077488986532176488809380351659643158893686573289884218292873338758135098469044894240425167214907098468617308748786031881499334436041786883199261361270992152186242907694349680632523268775084313177717132494009315748980981139042688887017943613504822489781684647482181212785897343541040981203804631949327403314845257664771636601158179000634797832058377750313441656453144306073353284564724310579323638927152334453978670756272687638909684814880912833121396374924334549343118124752706005662911353328732168595597239330208679549883353350839162725078715234691159417395297040880715221138613816456125170050821221289203673820926906167411152833735590399187932228822055236781624396417724382601604860589200103323892659394274368513861092329262368477370488379017307078660909607314230746385628598521976312048745692177596355537133080173863094444729920864370535601599899324920427593297176710457635146808562027109131161151503397253862169413498532892358133920812327503928252171924938045559337753171269832065888261667167666628331808604531245433569230738396024472358949108185209249479161430327395113782699720444704440050418754448233659821608333365372250195578691261861977783411744446816696352221418224896421168640520328091514055069104954810793121812710405841177381556245693688530539224569510257379774756574472884636405815375310287214155094471017830124090611971683398139008018364164324862249708858460988629760921922024477467529041654948265873108612410597086744232319121324815600175790057018079491242122906919517118803899502749571382900699449681007395042270411818649717520957643856930609573063855912912999200940410400665028189091131647834302273298201359348171633133403582773487265902335012620287662350265674070415869804236242957790080696269020703553595604942942329646394827196490538226631750428569152280476974413341150370093958980668137917559714099969233571997104676990921482095875023405848261999883185330048209467365998478540798128404102548990862661648381998213751052372847194044699221216188670941798998644951965289814373696592937984907792287142786072275335420360294093223666614128314217596653336138713303008445234417037084309874842671430213820909005020508583559772041389582184305653035157203710759564702580673931937596359807056184613664005547688336775332246080600622050413480388006286152286371752237852565708851882166117009275849192474528944197283668152655212811245019786127164477508646879492754025423092184111536044823581552142193633296668092452561225582743965016796081060856071196834317406594857176615104829574309904345420634443024993994887806810054613781820916704501747368125147635872393143502689685106539661706137261545960988558356874322673408577389557559903752866700139725668794859472352639125611152091177220734694287369153654712043702471166856947988399135153070583596053178712670131856462754677900100323384949124865093687787725885652811860906962975740652042402755186628109780718414457625980946293891568842225182114653917570340750742586390280897784140372791558157438974055755983808489989637213093943545424493341753759142849109716651773106918706808440646838011188930441977215679265434369417598405379805443413102350358318636675922390962075452346301212482744225263846230721164207600092418670490721612358843082122942790298004606206572168247481096307598255949815675792552891199873541983836044090129753094916056491394851295534565767499056960400801838934803251166089992841611371927833723793275346239720375496292412440567389007600900807965159672371977518360234899078227893084306789451157384839548872035828695200446140239775178883604258568419208975305999997036267604903533344599780299949758962822044015184563561913069382872711950297120548613395206436723937918732326157486216739069845974329494576887026169306988635246755562282457311553587830098643445768681361262757975271105999422135919157740575938825626707520663088997785763217433771252843004704605955078170239837614575763235039290604338022731633038004007855853790598149700146115363587283847891805552178251468767306891698242693156785913549110359885606637180295146924030334404077167591062352349886493016927152265246405711475395768468037023706864915956810732023012225222117688059471377551135763224806049874564376913312053595013776683368947745395945302831344718943651971990383778565939882063461642991062398486756268126062221030622980856827921034082044120924453028394406965861394613653269764774982562056287570173628688929505183148103906547403842266664538332585704776577923201771278983829489488100278313618227610329785921339496530973565879167789891212094683020574269838800592620925967332177948841673299100855090004100993740477870977048705214720812306810516450931514259377318582400171274057299862295643402109412393539866584780420306001492070937170518457026792193009327263992894941402209413497621250583494255362151654252460872580545230114535609773203676059600785217127110744762959962426011616648937721914034030355591030605273267557752877294012181699447293902322567660467577234890130285118894923641980075497989864208119375887694249774794767521270237072813394478406376994152376065035305548183162916016232709510709086043438398345148059322197496954044466648249886932233938937882426059744937262810628754896552033661598653746815975484985355817311203691652351798262350708899022755270753223943391362930770844950392274670414453793192384256860044936116755637156578085315002309529538114842005545593810283290108265628310005710477514771854653918018423772915886833537592060282839498442727647879376038118639639130177269843346854643628699699716774978777184098547832679478431638354041172311799522150408120308436380180673702321134615330524268241343747972927416533144847994984521870775263838470088136581124036196510019233925534233581492887205923697864282909496063288214182890068532538119876307972261740771513234325684673473706777231019968772981879122770887038480142302742607248251659065166461948279430890620887204223564183165794261438413412969819163060607935502382492558697838847599527420945369693573582353604031961731099562761490577861573368376800591552435647566212739365225946673025722954331519260425961389924465030808573452273316786269178041013177911973728362151651845890495927211803934640708455342242459670357080970362119095425774147060479718296970390432236835818866988931972320905471829725172696632724316718497100080674704148448970631652048708342479242097316205343346520928253737847050727146988024651791047632386329613764081543766037141594860494871177030952348290379384181481090288620553674634991336880216098127770227092242162965415734179045017758726394768802946411368064969525027679466723978755958079716233805667859783149208652514009959671605236379657479274517442711192081229787590696905447425783306553629356869003720360134136933565357143509270330717002123670910279295238661186239430785885612024661507379541212087591815616976813413009883785689771154831248885184291018570171574132655535863566222432344158157683368682584066876191173638084120521126752797922525695058248051401195484531884478705048445540061664058744921104661738678431721957696685323765508150083657807082523957345893607101240870721705900047885392034973939901859513719332334267099544019549532224589271972283568418371141011100658477132390871700132250885350164013326709706198373198619737061688766448590708480868078324573031268690756417020507561199676266334269689694470023688233717074601340309423099166531808791441249985386945808871215931829527555737097358628478222475269804758070060727471898012286287793250632913022455864315013686729671772071398744200356234183706177816550792110962864208800849264574769178748549462131609908519443724894709691052667611072961515497384141176709194676733263895263798124697196277963730823249891350887969077756753547189049660505284664608824784498193619502344529843300742667103795814238108204377951947818533719453759117083127651593254638964559680735870562342661422200203007782054107182336908830889229600820747178658678817450369491109151702073818722241599563169109118124117045701267338491570736518167513433227826706228430743195746190591718762639397975613597451573655770541080650710991120057783216417100235927028455229257619468211706553010146323636869266771534668844548361913065778081841818962396883134575873447488130879454449892252540643341794384076380766273975132062058720901570815534520663928671743894593747163690344060563890752843597684368138767207647405671717941162906822358738266596307489635796339454042534819231775612917966578439813464694689015219525443539636735906989403502682990333396896639716981257385052789687668174805670725465418033710919210992202016873727452184591178697192646657709681163392303363182591597400042658972698617273289428844517313659814909269023414385320362908363447971475325941663641145467596036599785319072927388815384494663077719817668390560726237839895450915708003902190291206743032113168912531540492637747127470068214536405441587217033785417036436805220376328503335072002585977802336139933100827701313609911401449875549246315005794488144815832516092443751359141276106951783231789078276856622307643686269384757724426814323192781107978101645076451732479121197974009096167926026864442673974183457183714581525979426352909689991521823007158844283972812597322096477180664483013831487690231697812752858386922192350943105563669511052683580895128960862959426351003143752415428724831573598934870683806153713874147370416921368922123917915424479618316754410872308019453064102954975544196821413408064702895874323922416812029113949489758714699525747338120390409190362862894162887546752376676229138705859961736963582633634537264262837632727408590044979272043380606543963962663749780046285190821803816814980662994366389654860478256231693056308076619860075857551153292374490881447385398904211325063438702940845040159873724745146161191924812772701013358263310328564611222300559754782012301989012956590947044365819498176366285901280853031856004441523750684241340022509971711492522056725784669113418521829657595928887507003273134460075456192877754335007467083940168498836610033226235115241089045672926249913811473234853643184937900708993186210023891951251055740980227674716485465818277035228951150008380128823108515770396711836269110117420049661108407319073222941612355509862381330165140262253893126512406415032666394007045609656106455836692888372357906740042287128030471087418897287810416703733676436447538343970778137653976778109229272184273301331230590144182210153023349612634589706150363903939785803624673814148001109270695758725019597794025807930691468155975614645592041507881422708813217695263495050877423467242999161975647272496829299620831137881396548572029527787586007913624079401854440185004312610970814676082965218026703990850097633389787391166160599267812261436506863241544098781191240069669833890714459030887417851116144267133895627422204509135597268176670913018218333912943513380968275416789244091077494900928965048446798572386450965236297638812932618396197138398746543388990802674315056221608042498452382321180221222207288505831080478784396120044648521452603719877889360705604421959784335955835872255783206818597938763358874765969490109745583746685623145634875662809502170506791339487458700478147050394803071222640756594895887734962852633753680770490180947377831438535556411951158271005287201886615841836294604236354780480193610315573888243931127530935149209003156890273196822083607218342942952837810503707991715018107032047585859494531135257405207440493100542205248056704080769697242055768561781270571844001820318997664205062273897549126314768454243672100830011720163703509810943985237566803744679170018360581044019142095769012317940800750072816509437432139406176738765126343838947679414615750854779304897928538542945871683950945699995905756231166731754983204827078436045407695750825127308803433120229476943850934494046275279989079604386882393005929312229014348390562623109484427163851886241904540965171690701354361903993402559100318947141016586246957722032385453149398073333125631328232094704079367528195482243387055891073440325974529582512802159635250092260798119273552083518712103127980395866147150291099264783245250982975626606946699239188442172298212400349546282919356296788704965986066932532995584022041717809873912245489055866737364085355754023393067990834639005912712113382373872585575457908188655876463477720509111340927595827757627117385223412713040917263617787992871793331429762142228846533660368484172085838911913321459069864717346613114032399537157556073351689925561844595937372193380828723112154998850363611245419437758621907943768147910075258660795768498594244573735555312574371219096146922083051699247730036428062987681894962610827943323334012425036668547704383997387731218687382862228205878027740772057345117543124106446505302108117272554126066422707783614966818175149547208555125481698166242652323146665051466799464337835117558794455526783912474840740209758563953122109557361130077880797105811784493752601922407038572719550973242376684063495238234570438366387399790042978355601107954913518024782000558214807129710735000435899176870928373126755952485386811406810071990043963087303456918579582981436597532584036609827343499255960146527491529848884062338885057603965523381038075913315544384126837273050111805400507643649755875939796392071875192820902690474717124745643803445414731859035937318049257614796571282676207936363817491256553888316631655088735753087236449165659877247467199609870999238457662287497835918558596343030279914489310258816801261871086227300236414462697682456967249329344375211636124510550820876813853844497596404077798659437539197850182238387510484920598426162270020716135519322533356196794149329774297561300072274650529213088332184903636840403425849330030897337912879436335870513240968294807797394538244878410913520110582042207598922732148776164403083948121098228060270559598476113155488828362740439383928742074627194095534232705605689854079857833288130390763594965942773899003139229212195119101544119444426763825175202432044429737459325048896080405969400472704642795543984873188422396367350096765482250616756929748986444938809026185966877827066634350741619166434773786513183732486890762650531197390028790426071670542844709811566128998476496877383782910133399610314104929993904469461676637407269069281581166251994932747713501967049681155785179563728605649289644149016727048602442474518287003056772961320684788462717250327612728721055112931669794199019996341275342842590841495078732962002354740686473221910024849177963173631806266198765306311817487368301060518894074919622859481035960002062504549571801747371627321777771735677204778340454793261655762775376032961631389496514509529890940087799938353364563658134669395401255373496147105750358635358449291317282551660285499162708503069131177455809181979654766595990830635936720822623143159756851894891067929419829196887181893739244553334545268379097619035870269752113065032743962447735703961819466298941984938399004929164547904557433542685888830228482271639593163222827219390256144970367940249392290805044473897417138033229178122242430920097863870240335737224897093426482572781375965865987974575939546437542618677763956322294625372353300738678375361532960046539946179494349996145894580744264582121853813827529377235088030292063232288923887357999463511145787047215507590434541660367672151624851189522302172545683337058452318788128734644622908353675000699285558009955421072066903237846614596694973196364958137717559459324781465603177446179632322533952815081583995389640868761752482848349726070249920238982135466139583473993263270995949444665659111298986431216588005019593044131581338530342074333618924727035700932546587244270123690980428052791732825723146927000716295213682997071367235974928010555996236314108302502130116634544786479673287620433539149654577209355063964654486074907127502424234131461746735109251343962701868396775088990018263239012887060960163423060896960670090740228489130453213748304188113037168886921677815921965720718636501940248344198114280830601819976208890551774735232857739032041333159079531718121633558574305602933972301751830882853966122232887791756867833005827716839287824914182010082968488553393334842158018712152333255964707843071942718595745640830994470525245170562299404108165055959965477391618796408150054880896733329022228175909309185228729191198616382083040944035963125418489193538765333306875070345331690625750851452148279728071919049703853002626832074542170828358921845720162940674500122111096497384403027800112063528408828032337370010062353432004172274672589831393149319978143067758185703913414685004236141478654663805736601081636668442580120555921039973111926500713304844117951895203082663735462895307140822809619546228130164011353018588740873192810895787862293915585954389177827436975429499810947992528482827246458242857424342278170953905239146091830317474836904984408316413532655724288116972413768931782632957738986194431416931733994919634927191692433221320012065881383158984283126226394372389642805604999554682614751878068752335091555082030779395127627021291937118822303776407474759576831418936306077226423919074116338751103086799564992495464206516766594260442767719523797135018770564491008807127574082280107358756795933945686986539559369892538307975948802722063766437485355696098696283832681263852022038145201445888240047674951889809990183311342880104002885918920081599626147331469601420796584202107544094591638230262325928261265879265058227589356439547505464874994998085411359877857129302727581465869346062972427402619723520419084367137685476866382180511180579768539394558653243311620910513293225182849897021483644734495504198523099266243001228565197921346102371926140283578415831060270941556295258017028578952777275332013934449078187585783924531329420884206618717036557126386332907410595879516746098078405347841533096313950200997284939494266128362106997546006552677922194210814680594278108278388025495958979933076393351845994590586868330891790691400811045470756594948454418757547695675411417386123895038782034428318889832208080246482335576916798105483131394825241447545210974622861600656981548229066425836539820745081912354292745340541704411752292979094713969281068430625488361119303682154001571430216613974613221446143045375292865863209933300071505290934317623404438842755692839697135947183818579503695041790415722703721181204127710868314690931918726971597494072413086888390521592138979906010751924848265998367014619180357520253028786399481371557663313800101353855768965725706020328060602492543017828088103192283895767522057245459464522630871792852447546990394183849407908551762675734551700627878894094126208217961040270291711562585546187704267967049620506032933059400662241045875634588261293373635160398183148366836342885591714984712224731848911341869706937224333378612506662574896529820132529458228480660436347514795622958370231492804489158344277886450615893109695072346780177495577313072933460695109471997187454589028999420594478779120102490792059251489417771918913216361844905109938194095692778319597817984812300919385646830823310189460195278681502345576365964075377752720080215076793368887614405909092329878914891012176063531673731849363784152474989932981157184403284660195494246631799458712223535239947319530215093943996210434088816551503711807048188903402983983327002830914212420452234136015060241386657432575152179939434674689665590607135048621531872794726974371750125384074708400652588999786787431390642975650018575715823672492903193481618656300401378516840012179360853243163122429563272463969915428761200564804717387097286230709264808436242851827907116598783306573802881209369594781082946449273410081121795409595535791365564325634246710289592995710617743802743057448123674285970303354259212961156329913846007684345518052142413452745823964737774761646901872913355821959820020243189265091332733207778028585848885248383145703026093966539103365176266056783047855564279202689893934485339167139023764354329030903670045228501150792492769916043917225573448718479358538934547072124677392943097044970177814302202062510636027239816457310934563182530616587308476220232140230793855082900463585152678072095080541467137316248590133456176386801753610856793200567369974869949402684150788881155830331256862188908205684547923324013092110797635150495499323464906806705768190804782144346857261498521848766965196768382654573217632855402586635345838859436099540373017541522674426010102378542032272996532024550550593606899279318319323590495773937662275316777465867847077738469237098899466474244697797445595194722204745928137285374452742858125931454156965051767064170914739863397521717412788239825987007026267286638644759982109314935386706340914498155310445418282436749716120317335119830527089245373938612601005903467119299774994859940098421152234472262783476187178208605025731897138019167316549034702345200088320274282497660622484273659290937536753249845364149278471834150918571303320995011156898480299024631663451016421848091988885669104403286434674379244287418345428803293883044707963504723019293280429104554698997218424796006944539378362625371524367322580553517267173810481256047236156099672629183550423272135493928904755789035557406380608308343521698494480785925434821802390822717929672339983547368658374683548592413775791382781316250976902507230835975822508225495132075910235145932072367882657549860440244753050214442624362570651705489768784639418151944904402221632355392643569977836209020806148495704988723224962168302915342081093572587010390512466698561739515668408164016191042049556807609212389508606700594235236071878520804240514616880657544859588703455155280944393381356023434497761205889827788842265027279504765586637624417949341744187459145847379971808680769249818069002850912451472566065602484462939137345787832592789956120666239616527327555505740161722087418946702289265664045648916727822959344946965332465841360871733559248408754862743963739118641054146434595572597316587245802082609851755567117915981073871166804536473356413208081080202881148407030391369155035180413355901790337464044264114563048411830627920934275996076700169797348677947037770213429395522518897905395585467993648393911192559647681391926920387792207477642253768552426890812182070221030489366198694477270359123179611893664875709534036028031668635865532334013392903400272483222058292206216422971465587463771258027171605719331832558318792785382231985338151708309118288073992017323074890089202885760263098400119253338405089777315149942599761066466345902522062163746905988541836033445499705592420981261028062829892095565426222436959575104506085694446946685298956542119687933813304065418555153159759790790543660906613749690791173808125787037827709476643230998437373660818073221288607404671402539141648630536168372151295952618349614690656549504014757647973332407580926534741544088336029212075518241792182849599952489068762447122632706155462878098494019919151253918500643562995357379621856513903827846838326800707392571792909870128856072046150666389527923180355348066757404694701089512501136695729508734687872542797866139679218702928499537287816710204495987177569925899759272157274274481148094597705985962191612336809012095507365882550648730562619998706788519809464884045636651374288820557807508008103995521768445549252211727960367796776245141208599337954949637008194716959335356938812309373629264769176669428074051224680007843699730420205888096276221404046230534119111698034895116722084182524693156801222886195364479094659641987605507589018532505321102196801285798859340928965844509998706957748694789552478556154546123584317819825193478130515555546403808525897120062564201468075580480455902641134767984474132858609903106389626527878569968745838134765123886263433367722891354227839729690630900079765610492124978785997129047218404992776366018938055986608417921622257890384209612207079315124398170588884058085984540673727511289706873666033124078537785295394885187917547454679455539463793060701841656741962750896575093398034015632940235294119464635697788713771393931989013054980393395136170381629179505029791434660480214290248386290620971575454971568046195184078648505939910286699903674143736395758763007978299067271360464304175390727346294153609127171282530612696737262788166406284300000381128730052935634360400073315896120462464944992948021697448008727995095195337632010395972828729262732336503201354802372842365176607072429833366519768433684781987498802440180165209552638753712175586893129955867832992966893035270219029274632341857436602402882937205273741096961826647408821314074572811328887371844042740413223352056173187427303221560277590631083347616140122621373798009761125279058216654229006011886357584466267182093918093624369229494895963837403821402167355633575860214878140623148711558108682057229186774261976768001763659679869958698238510163531348576109352312105008031674630230640475165987871001328782059688954667248760454056674433355938919224877830032448032043592436669019243699538353751324690234996475278014486748041072971418212945094895814230192328213010698041506293477718362907113613737751593336282256598876550603575140606913361610555560764107119156751445929340766667886851863064415539680814164268379614762417035734302093852406427536068250648893328927749793016387024061114848815860189333921628233144404323434986515823017548006010983722004292892449660240136170209351908417216252144004275649852804908850408748277567634184363626336449642664818582389815595831403245485373089707847558750833064486726059029926916299793991398909691964842030912198700720581067921306660422442755597298512524069154030616037852979803596145431741339845745196004715524780205917624254642336582941779696516345509028994255536035154397682856556442612568662488000567191310582253176653788451749378617405656779748695019208587903666806236988167432342673652124445858152597233362655217883636618623303304200631100053004759129423854797757889330665075652203214410911283405715958818560354792160017248029555930350131594206440698368898992183222276833864513808437160298981665276078411396270368152190037626968662369955148406285660329530720923495008907590111200324748449072167335074637564825589898015885843291393423638827054564895528132357866682813368013928295103840673834675378008057426835709453883461326956724936655195467655782005792588731717354761147707006943857114799402720529082979279551786672453379109018230998598462664852037368240026713562511127803791557237352016693066056143105848663013314740058517320036836581935146649891608374924538639880191849111064956686977293703253359963336631709589592275896735255094221931540281365697641330124737751455261920164249313173449723596299424190967343092713250309466250241473008251885983570869000272929601728301903064055847095919671978610859968254952231898949664217080658732415299933179417909358381787023027497610177689676213759443372105963957686514835220281224451190802591270983055237181563994742559039310694385920563260011005822625432629990821320028943323618650013288851614098823944399802000638012527834670522089615339302398236928889577834531351589021821713068270905923831205680398872027552665477433256502729416975288841984041755110011832511704624768609060699945108879762501631773656630531839744131202142705828898457421295607052766158168387481384463126782041152591976392113145138847497766260905869508725713782596731164955989809682564132530085617868507909026761525576660150026650670748000990848766552276672069490684822300456114824751112280466542916119256254257948969341049002757444652037247075291487411481483126700237451749126184162899202235641527983661079508660595874556425057975746849788713319990619807845917573982889059516792897669836145807836966992375522260228357260457364491380838558927765764707963295643048458024859823246429479575984831294943924078447543210594536533956801594814000895478012932959668417276010411690833467788298978986195988829505037776972011222159783445250498921830443214567980144795476648742474504435259566594112865295832192059301051318233380649444651730068469569106829775186366562700948830131999550621628382503616270500911407962345086763982004141657781741529198610963579720263771972939517044339178069893009823877595506064273328802079993268985693341930901220326663330761756357755040589631439951795591145616956971086236766305296489064169559885414797237340289813847912215965121199153606319259765256679777112335201171292881653431510007360639308602928919930052206791053883599473777793968318898767410708381541600539248378449413617556017607534891993379497823879593330575661394346020359878177451690244014664176497085452888897413377544996685767591693421002734189499164169529148829000974270483367155860504269629113005844850568833712263400690668116292627124084657265595765189603374783390560146290630730851257900806283599810427886762630012722008380392856531195388156872360789310381769359000197065201352052247800885186095730141125546950380722529484681006421023397588869124332438566175376652442770615089188040875239771066556132226736997430122550917251747324987146696539026492686609345547265676446427390924408924284912457328037202522555512718329959714198482724614315991353444561912448585712617328423786869141008051997500305742730199209712096995230989031854978906210307497694875478435502382181833352404784087306589462273924161127753855985824564986880362531352918193965944237540216701860970491704790657819117693370250137862243441573790094025464454362409094555278336362099539662058906720427254541166977164487099624632793628454791081791484854337324748414812069544190897343400071982265358788756863970160426259412008698059601975681276523878748622167400253825394330782310009045664748162141907360501930637449253102403807944727151003813024721599891453225433880362555271279625068213997747820272517202307106447797406683510810068718487208068007275335481819569734748699360997028522068586755280082110324359901470026814302041122924989431740180617689508862919627043770398072469860971280110199576229479210294532221408452480457881409130956321363423997965168740256200443487010308770148628782470017171911833776838337807552087639051290719441012032243606939629202515422113811833093482786472499665448921857122556046259992316460786893589267855381968576505919929948395670301661070001600836519074094887639328212424308007198574011840686426539316138163395267236948782537870448332027778818425121779890511015405631067623011984962279283965405623773414568681241045723611056293331972072593683697274538048837723623548106623636879066601938575330575676801336674899696484852555358940369896818116079485955182272779479472170066519363976310970312030905872124830829420406013716232659785624080235964063880005021500964161384177206467248403158995757890589218444589898102823954101637246458037348899691150342288361642534846460962846420224418119334998788734172186641316827503587243634635239264501922261442321904999459468734432785940134159051298009348374327940602726829063966912327968174340476074938248749980588364838954463938098843524301089689281709020153526974428050107650538409562103715211966416291889712514174411257101574807152187581087983231590848439986077602643718423301638811688594652102825599000599839402535468999747439742945242445980813569312755939162170625303835098164302866481502337975255717834897205885224069025602110610169551938450893241852450642127404966076089986212632049900424931630150131462017166721353055009990150342087854181652973488940932381577434666226078990015118490917007839311910863674285386984547692503360001105613392560332027860967009077689168541497698139161304477578176988985351982202727622978592080432199868940983889253178714519935919883145403170033730712623052701492618167873040322233040590720786922071650588841155347512393832618943336257727001563707631946622828033754277862056247450382334750563336117176827178369193448448725632744859039883882236665403018922353375314242895165054056381334801737784839157941506798741844906498672118148908255984196087406043716843608418580027023896087263002647765719076471915139711373255278072833422971148354839507639011935657829211850768171258436833949124980543862333068646016727267971360952308709769779252847479873232397988153759919733455459483893848224974088281953696537844779973091207610639178736192544865374719809794702230463904027915565674341345979223053682863251142131835060255181257962564227778001740447569282251697414552898433085225398993168918246598897654082907208809052036661258873463105815330021832401478885315909874866360410270419580800631007316388956467018915714977689390595938116096187889827693292100733358030109609077342798035345442838415157257874337527567079076338251424755572424256007361867368641197290732349128879950567896211112049352039116662496019817123151539384277840126430200202898288040540889739403050723360703021286594065034719480165880347802865115592696833788312121608688603795264202897959312148406775215222433428502772991247699910185294233740604646621283543168940044577289136020116385946091372930454048313455097668900742741655611685866409017659891585936563290629031437942587911005957955186106935476812858354794202313970802763515679097623268043523164433783865369856312673746038446709822045587096333217396894145555570378739498604372201697824876463887332624918186896948963231280046841589531094277625189397106143860437552808860420681654663434840094375927749950856479792703446148304851394288572717709027252142626296520883780137877389968730509327823049336849180399144198898446189239849292398592511915714740107639540732841063003708876465845935289542252114387637765752019352458098114485754247965781361168260952135309802474078287499276093128792281737162881722346932351681142771385658353163190710892987119458085629012390291633937394781975954319064630970858605049776786087025249626489633658558848105445735577365675409140500575916463286034387917939606967701472512301963279763154168384081050448168736848137614828437125109542256500931336048788637008495183034445447257504403899133367758589800100449653114150186365920613122455458346816569516338177042022823756000625763611493917402689809773752242568219079175475670829830445222915950534802111819382401878546799621985458362362365496831192890735564429853530026408437578578329247987505023201504475080831916120324685289060510342577110048778403834238484446838036572397778344466332529279296654126918764202947805004800718010831543776071013424413034340449475929783121568251920159001634835522570976235913764869832864842992155790459196065815491124860293420734407391027357414450454838682740139093174429209821477112697683376408303707818770269822915246983763986122748125802950611045113201466042754879341058094101592817634622360127723741640329511208734673368148758565321382076786246286993938849931538962081691456535842891255173680046198962495025867800058013203930014650127917039547848964656889087189054693534661429026160951824730933680459976973188759010770329337732346010549341266735715685017614342456546454334885960048199004133212551795860059228808423468589764969931654263108591799133378737405627072170962557368938608020814580753795526523073326386814066122469185218041255410639662406493690418872266957203611272075942135558231251028443652876183952781364953491360863860104709546502233822628322544481235602670490163195327824900613810368581673330476331308002292862268320219659440295251612486720692680619399623361015100478203643600284399551921339472515888353031258878389664331446107034592730746166163621425493789782882907270186081208899206561878300072815101888867579312836470718374999311101650163385288967060566456993844272977372973081485235433318680203832955318685619091650208513135855597465701660131362117094130674862561096408195401966848465980819195839356751557378546232914222524010308975653561456602778461008069925950466302160636203902792258087892693362152540894481873558532140787638297259595194705266528498658642147614122166586159177100669083874421883139513071762134437190266512616147063402095738905895575486612405872740036750586992064026625593934062083934886732026291297048809218874298722856238915570094520563847574409213234931862598993935930811898012097508492225363573468004290991681253883548007088535621267379738402006698748623757707104112393651264615354915439691627355667757836140557236435288605159999066640548124446885301490249353752234910307632470642073025125083736633884770279528287828935795407874230180652962921077013233432268310013488954050422465548016083557766780258345268565257116437962260860573516067963554187091753380342242275041782846121906250690731616353499714229617301429297701183728485387911243275094887918869083735830219567308718748056816217440045901349878836174736188038003145350746285302071778333612098312973606840147761914636260489647090718127361040688475928233080951589178129141212501082052697254213207548431041615818806455717551045855086372215387069316075615740381636784318411580813563242797809174803929202712082840309438267203928387646182319478626299079147749327673527929189704615176969419889529043938626257744251662110029211023667000565700319744881030136939996087114128732522605399582344394057788558815771806051784797715951742403670715406542740279673640826510295480951462861792259873489014724195022144439200347375644553748486810072691000465099811109814177699236351334277572643710735090900087843372762324699575675131737127608301385745412964773091325591154941650476879651896667509770970278659693275064256138151453163780076033229640547763838044885742138937008932375513939769862237343538297851696227535248652174351005719531335428414393194446558513102814021100834474729684106244629287227594989407005257721674932985891544994167726299615204010886159006025801851486155770124185119442163713402664036759351894089996375819112200050738733786982771409556918938202119597008372197548750173078793349379814692759191428868354868610681112820909969790692776232006341580399352822738141567252329794261918650526390061780017607794793282665032320201702084918329817525769135383720316334682574758552714806677793707761809895027499763394602703736715878278496036620230748109691347831991692930255781127289658783988250684340902425217095675343329120584778769644030312379485123440154462652674474434759893794395813250932786623143489292192311013874247392881939421691779830606348578903984839799535614623813009796730393524416318835471148074892373334587374642089011042701663455184650908132032961789330662292468737324216331567812824212033465972154799232893808383239242828988785600532188350570811230572163907255457061229344037898515898455322586601247509320146439371168933142426698769018027396787988103131085050830357439779803177088669950514137234793322522695627275184462419252398920898600599443599911454128611857478132841515832152044499923664781737653909964689786054552181431172148434895615269115825159751013343302223816307052468271573348843139164586597909126785604719873880054865843424568395875261384382578100231144919037501697827474889499306131610386633514901324656155107918430666480055843141996228399211573779263097756174309533626201098109901904629736436670044125246808876995475753698407034070348705302858504446335660876313336760081832908848055853794966821505961338650993050788603449973934782173156611818580423505064441092182380883527512515962637872001883221222093864243535242118810143662981424184623955471980010746738743473238175430724450281147110936545570864955401364917605165916167903918192497752898436367857513101453091969315534138315955711348791969650632369809246745915870515767395758598566679558368347747703754877297166101156509636746737065329713650439176348057441269662935425892506178801208397545660921137365415537928616920623999597267597639116976858977882035086499852980461130052773153069229051324269089825881361054627082178682049298870139246953489384934728366469921887245225650545166396120642318443043127818194454866485860564601096765099970699632113439061638656725950970856781766721024675267460531031197995364492471819294743860066541510798695888712458792310463572718120112595943321238352129583661270787636351719730663956363299940363864390961220274194425415866124626446200554729151233513568940456524067254199004465099887702304013022115022440856016210788189335426362636384888200783040120541702990936481060158125219901410018043391510573880238195208149209015204554329640644393896510720318493091082140853108150681508200954352553391059595363256530932677157658210256485051534973827578565105061771703999207667025752553435377438124318213353752917141067661653461032061255188751317545587885204942770400576468849833995251700694276011233152017478599991053057654127640695176499186863898948077239352460754969855437111950360130713230281822488374330314711462006650523819273923352661001060362527905083662948930507656378829225003459009192900206867816599700512648358682428408699109106486586180836251092050565574320265128530415789503267420420397076790929660447268094095959745656701812190310241331547965924682227680493750803540453510385861180763326208074272364102593257449641813242572940085590693042293098454122838812871136359664325927596926145254058644938268029867775200372417804673642947697734911176720799230459640738441560223730714950472638785921573449205980326963767472874775970055036606083610366105791346501523860842278946885760563218802485474347474355507622861701293604965264869329421091893092299273013381644625700937378459747486251538900381995615967046408347041544068554010984964310715936679800374040532367744693956851705238925108146001438141379572305191704696616930752758814367595041418554529775042451348161514508473807948680587536343376693685749299777257670688384514863866793214346960493155791906195535331442619076235374487907714117267157075182200406783478843110773904015328756792907651191345042083524726610448399490733220101147078693604714287808812442629581226683978612056560309056712091493919994597130820148361166398465712137123232995760454160055754234131564899469769694307619465699082723101375488662536212535264583449759227385069404610351369048260103024269446595535056434282215220262160300006692725644330604661195470061965622408607262627710515527615450184435928989878447778268706818544402552746407870664753020227536021155409547050248297438675962794028631147922128203326726214457394131440824284013003037147236789934119879111817939010664841021841337438497194761543873658860058011147418492053378754558931594495960117040258866086936648838609867978014888801952505228386008847672472651042567049040407007848915858982372589375999248723126283846256698181477319031352757410904831689296131132162219959471022345679224401756305295501527874765780657876781450023077339971948186517210659040147954057146272476204301064468195855665259009792208642652525508792466945813761999788042207062935138123410244084031691735147085038062670064349593739403928991376642091595229470704245724273180317730457578349566956979351021820685745270364532599881022787623007681816953331205472446030232517558617777222989919662147156905139484830400365779419358035394412856671981619551830528101660896003329801474484619264853323038999400414068265790514204206747773433569365927300791328592961170231543873684479034235276050176996640423559623410365336060527311637827093113160469408395822534498432136683281814834225921059935777782193565592703643231370901785648559333970162157939716342667875878037458183883001864312405832290015761715026583348800976208980782562471575668833192303354722319257951423973887288106390235148846319223153558986203767605664197178668021227224700139998803698468697891151488418841095253656337163073874063278119002255492942762327211737200387122851853927444842828207081654791212550313064468437470551246451039243830260110915172059293829405370461059621061131579669895114051908265573675757653784457763564386121346194845026531785644303922567962699672431967001137230105948256416568604042434676239512171818043666078182923912520720378386835163629882896594685653365013475689075223358135285163318631088973729175991893757061776039610084627984095183755655360953174608862564608904750706772771540141658024103196072384839820888622586398623519859634661594702097310387179632476114405600232108466743231556208038756517475189344412389039470819481197414730951047173296786345845458899735115147338136428685500028979416548840549986909194401313466753548213570627008703869863528222939853455969903430255077194758105561489066110366680168534114391603861753572284261237465715191735138585849639446264544807776876453671085698756048276866274952210252226531405512508903177128361935836236947325152124356622404355140350416625061891917154577943315764883620797512963404815845537951890033684372265333594581032615885643041117767455521355340443239697871928582494448515847708995511952058098289315844047881059743180502020531874940650375060684111472296875755248034817941592658316555880284307044605084648160321029604058658578212251645878464178644272075227656333262013304923257987369861967264467253890075193569843998513875467400214758509036129414846693204993420475067277856902900608932571825071360787621778346264331673409646061565150503492821517427441500601334634727753723854833718639201138349980947087585776842640635963836984439055447912091301432247940634067617763085100433639222157216117472434600914679505449823243035741837394110437680182426141504341543051601297094475283072038185115514323571484348494636631143505815910830168345950258719170120669486036314280586666946229188695728009229346959692222194495674542121135471301795905436001833003027138133988885375843378831519476877284403551556663774962519660395438650287391103806405685582005887888521145046964765045510168710391394805473328202317946260327158116909364359821712390809999601415297397288995720411243508489233720356730869762010508370129082151608556090718984472567373517351479550408216880246123278082354805663586210771312084255430735200966005925893518672745890692596791531179259602621286461273973450886668867673956702992267258017959944941403098091825551354796402848321666348175495474263110158739958171358076352396483544601197051300136641986021716480953169660934042758154415335612294074089126774492118340790508764375325216555426963570878502691491276939253401106586769576192340092329791309575330047587204580524671615463272914562039957063137938209375548588157967078545365816601211269750894764334444442031010803059067381285160158766736394920517863713151000460095941187820457560217229868857790052676695411298613886856316984584164449862282207780574814860011874275281616673850827917496457077174139980706734079486327559818493648248188348666219914106254174207973465515300381102524498382140607298410041670886239636779666567166316895046169492671013903506409564166222504098221004582520414908319453483796782200684929523235226961847986034396641586221621319855579658307979438638407661806309513841961556957906834316435724118889247341712148704327241940956215167138605224427479932053635851819008768477023347682317859084042044365110916477161803040940001497712342574712478025012994340782566652257032364274352250834747570382930793817196886412050755258024626804460057526962353333893291561160684862673629848885406129811756858471830869403864014714759691150118882920794609520046454446781480938842467584400610802008018930388636590874941881359907487146544218003247769223788546129536265839648641598533404814935709525565174364939401707689326232627145035869704054957615532345895960298787129710323573644532088258586444282030987490352030848454530561519714743234376481983832460666430222206919082192813294409459873804816797833329477110457120047264859022560158433316869031776932796383872941801961478989868006601857086578675819781369841374132710233425500986856208547672785895709751513872279114271252525513306739749300391213736937537644082220424410672068466815850290471291600279583777704129286571498109437720290902501290209520091756908152888549747665801463904731869056063221553617693052672406400411548371524707431643021010019621249965656532019329779502664515212640788506008192118809801869032119548411643151607667115542131616433362266350636132791474297761615451632865114828584083530814140096096074846272835825070038551093434634825460089517486892635539740911204096247832694292572370316928828860112806155808933362500551521677059835839841287333059248437540971153327319376110002375306873201043861882369729871831815044078676907622472213868798627234981335253222808762230616440231138041875115030434532579328556651236266657237543916835946572277553921246328334636719071559067184211150276951569463192141023518408353119663261435025190319597470233493083146699466678051567010154945222850389337271670843460361659185380133339271715862353502831990929907377468004536393526916780873531445112913399844773085937723527847052973943247369242599179011419697115393729288758409850516612454140994313839505097930225589794123343033076324495991907025848029869535549758630222812238972044346661299181799555092564007909350249538490943099742519405669627548186836961346915366904757063833722674100093536004948067987609493583653359634932213531478189916073685897630822188125717443870072506583136614534484141648328724077041444702922016341859406529497929711669088436062865039834469803186860882122356662915089424373265846487889122185310687678822336927131031840595080043192626163201787712155261578631310626119549765257042198673583254820235768976077358328097399640270318682716075964638392095957750462055232911055113563502821742387401808855983042687145696119120399850563001627405794743715042533154927382552595722539693877843185076483451022397214538716483890928065371249314081659313932234977403919116065575637876214105986960216625544218179765576241104440520911489421837562565367529592562844993906452594526096414708452190379840533383881733043985251938365153646408786796498031832507337447697370120368227149502439601497816581856240992142670839018565204269350243695096155199741462624762844388551854759585087869988503015127432339875149565524204661558601708704706604937633927588779728201535789919111468169958527175124335411156609446777219344282641607397655803363224035990565745499961889262012112249249695211982716507534458923061958189911997872506946153289821206343109483928585896410293841821872960244483687887959695272997173744782793167581521086326038204887670714236523748069983113234699771523137634982920162336633323212451311907881847559576423452667014492675565809806340813632562976168916045798115526787717826383334626832650935400286962433431355330409095965713132334071915892924166913314422702732435402114725283393811432254099232599488779204512988508108054438208581846709700514249555523217069932374895779016058269283495315583980488172079026846943642870544745359645153598573279421573349562496719888871552670364258035854573430321613997929669761992844557553275435103516120288116109356654879067035174426256478342962327015084596460112088463435884815537370380747576536085262495822293860112391407870474303258092311058015892242412905816994689641495408164694086698492779211792368326922353002926000344934578830659613267964493014475310104795293494959702946718257265855439079568090625424675142603952509453244332029250780476113759006318481728461256053494304232261536995787057254829822351723766207153416795983581812715968371764026007932349285870604896539712125176154028663128280344512661039173747432425314499255993478383850815432067019279167810110853331825641830762257204210093334231991331017032959727035749155274794801106437413625154761993246147566285046256668328781214951120089216296519488424008340742045511528315174388049391754751437745359675626363001002042521741941211541378807141359115439872868361481717623596670520578377734234957166578441504008243848420255167465847240848408252826985954638929796337430568396051200354742522410772724376693982388709693984341087583688293188986285190368166647112816933105028388436485889413270855419962941161425792167815666542804263548972815098626889716018027212765081414998651507565195543106431340759818190130425565647614523101895482698001793757150880873684690397936119954232989854673891066342453464831365896553785286095921122371416877350453232732241298229968404022433607764763449753898417648867113701610870593982945468367956104618801731409779945299566756029552167881792186939180663636561849352290083949109432245491376781256407809301648103815865384700138967645610815029269745169673583100020062377785226321323131719257660998507132774738749705350475664205534190344190084869224144849471035734749239753889648340741284961074373701700270332139603267374465992893399913971501333072074450387427390184248476739999450839414272824327695043178785065432163803441803993213020895215367391222961462132543616180811702485246706562403540980242431830496082060722456411518110771361187650447406526466297977482635810606975171071547277803708317669996622784838746382472014938234085697445130556105965530601838640068209300736583129676670262028406235461903573824297597011195506742538682957910510770491981374497141372421220116853030085321525041194918691816071883155156421099239247262090471875297114811545148143226550522556766851467620977772159539206810926995226437298816914861418065533001843886063330397209422177816247309045965928444118846754325424139901003326675198794986410977789918301033191133996650670280118944751501685273177830223964063527877699712556472525417191741574723604112254966626463943358990360444811279670224068113995587581305239597542712195557802471919299740644430442933641266736577246936059491697192631580112434357355104612828732063278651880012873442435492834325306244376808340671117804036200033939515987232477225678931871663252131944204166832492592053185457024104850697189092036945465065305869248259438897303700512377748770811636522580748738094171938727988061933755568647841945693866871219681390897705506995935148379003795725705489186338699691960877564124856352457884604012917679799298479468369088715758147210655662054972037250727269236462491249876999942096825782171123953147910475462298243640180217409686730867832949327090795785786129918181718314108013569599472199094474103219116014121757724346591745207336081231196904655620953034093087434016633319923135965065419108594687594642874830028062119852640496571705201679374578810192078203268954476362870447482757179227985290118196987005703380394614650408206603829604828540225732947622803617343092280841648445582931221525648506392193839364039974420357325758279995547161494288192784466777431772514399898924752136659003059852061723039703442375762752737499414076882353206023612569448298086860773225851374973881386242108916770176683972529429906824080291046494774242857565200782735002597450792563207490345046078675508040532020322506953143643518449911396884918119705068469438842095883226295442666136967617959832721094108741599378147735814787328632485750045708714419625042412489919226981498369510955924566419021376503688828894075217781279348324744988413507376059394223917285947649092673586282513144039354634831378220427459279277560404096318175121308148447746049007911649126915970947620602712837492363908483088000989032017461785341358724698352264258126256445430085858019849815185352032756611951485508373831274282574804170288937337866231865765991861605704543882391445279291731987888719746440171447004026508092462691258457328357269059478029451935012800987618592657821462903317023793300819354242274341388194051153435217240559359392241803578667570665834761986565001501428852099897524007384981138451801317938779917559323747219877549981931589840837280152166983306056733683908657462981425790088978898877023192598177822494380681564363988956692601199469680302619005348421135026826570417029511278064012741825419847219772507946970724572337256818285942897533794122801026186574396805606162886228322329732609691281743859238848291256244930865861991510266660201189971921433342351308807333372633496753719736333643704133161023941251859227845933979679526418877382261821478932108350007720773304109443157428072126789415975527068353886614678223012086266536411205389798261707397831757556659753621034694485836345713916628335162980162211060080805963409247642637613928839422639779775574058109212799304609672746777068543738771442243797497975677326674897578744435795058846294785164959545924738258721486012799087262163239026530885164744263653122437704752392263696164105217056141953766500662839199622750010460442921185606454934274571877979258408502581732799270991431620650288469808965626639946592943285749933977363917541107884719443044342125906486534438696005135684260992429810436896961873574547719405953103551904115262460910560391556496953212662756797019175691156129499073137551655273469705368393654400217039547090947973554161297473834138685637989669452597453220198620345563164511113592734734935544684522384306237602702637653627619134423928236679503814270764687650828046850946610886902210193645663006512704989038833742217469177765288355085329966339072045775746304917113539485026534644936534766442790293618107361126059345362873448116643962099291580494442707236080073215979006647746391333040806603647289498931832337993397342626416186450321395379923481352320054956388211465056749898273697548976786839639750263257920813746344540621355056233449547124405897427500180056744600843658012552769832914818001271941324786471774157666799823316923471115799733093452638469942111333355818413965686774386521921567243024698267380934046960748017153395869063284824591585704136599674804961294822597421665143532180725273260691656170157507122248090074958595846798840947035811749527333431140048381760739046585972788021859456127689023369806029416466688155951563965307108858046925538588388997764540055754846747672551055959372266135797190907664613659483054610332010953816682806697290352953617268962212404029488336045900455107651413262988316582953602824871334573938385552708156103019747439214298590626601073819756437350206755093686403881365783231244999407122040951658696613149075826181378435846146499989364251764460854726186748299922882226275605542560189057415303245053274300877383378234973561499005286306782765854915064211502639740753271342847560760800115945018238002340488050682781492211204009651090730718069702775737174301346545759918367273412839175548257650020107495533375255476600115300186173103330304992275880847235500472453874259510537171543701204065937627509395503770583488939361225848063759816812510946531322922962039487302861489868786074884703377204953754752749801045390533879126402991704007201000845891399959471261217095655921640138093253328793150722905855773408873134689573878056303536046896360186571181623746813433786659073765407547359517473030035340307114136578666179480796210690435624621531128524350812982946602027926782203671007354225972891738631090931013763058640694433459358504622456238856130010798130663127071375170237007978914867121856847653719404584507248550032524729711589129867822183033616258757558742214906023377293763068570025724561394018809042373780603131887073775860622284332045407622042857108224577057705141034988450489159324863456905707293832598951721496476890181833480485526135853137445393193924231275403462088670997406724269699582992555232166784217385954126931488660966960730663940853941468893816754868371056369341455964142970108348520802809347580542994024074248625152015498711283779770301170210476456630176769654984214614760099025593491984685282474342035449053298283086254396796955245655926453179070793014654364850138913591460217595217042148984874719792311774333037556769868890507042295306880868875868765929760008445478001965467429647645433468717670551920535427419196190427176934239390271939217719585668529213297421260211457065112409313744973120077447872518897771663342076530097337695567352723211926591960298105778546668311601712783488852705569573152443193332722029597846116674054935589827378108348579602026008658294398101295778041798437516790114819709935938774607730613417063892287681356123031760965737512948316045334159153561211601537484111602536568459352715656008053947806845351476794969150033765609518810738588090966509103370905799638283417142891411289792536967059849315578986168044274429945197162235507871213335146364387251566486163650865469097043972480906581202727390556577771351305692173954541174841203098755498823970093007124221092433383246457167651427626229456454259759161365546622742110906686560722779250069142191195830493043267011818472391147978051283685887768882548910511346572193280095340689969109381786649798310833408648052771842101721301529455502174174402780650645601849045524308573744170344761284155844631364173097621818424228139615518108426451203435789515634597693041418164400023948336842445077726238893213807890959076006684344916355283675594770652868922777822937699514817884071534827988538535564190930230465680500388703974701779225348044461097286146122215148515720374367046993239159806968772255733053120303346342263264014917758493936862409260549121248601153448432641206035593384671783555329538093509062170363665621416560509311374007383614508030745634197710345343514973414214757827349106999323404588216898135041913468478904145095014785299988478970157066520947214399227924134806511742806032127979067054901729196021051179272022631661663186675529278044415304438990234522457078712978576252757688249561047197594552844753525324106475586889588725096762510307050684398218199820987652486273787113685714421111014945740198713277850834875936173608935317011060015018809514485601699169671502383985573475433990362712206057483169318627018966093077353569095059354553003337399605029698689489259905420050610770642981699823613553676223565441005447775767059394726820003668436293905955344028602026000260751401823371275328714041889775543858725782001679613202795302424727885211773267259754982266829034122315670465066577816621804658955026582427199586993205466644605551120448882586075845408926993904088721238422288321449465109253444989054249968824884515986791435729780009289419309669651327895306071634976891222391715136845308623544098897329887673198751535677042550462409975910437366944125668371599763834366178055045913987923310623486750387215593482269364438355776718404738502074066493994624438399236064905840805838255860383335847826637170941890642707200904830666097779716908133775312225020195234868128002880008053292629659151504508635321642244511055272413232656029592033195088858607075494662664069621167127267367039627348126879971261499611464466630831374404111196507533972310253359912031695070033123051773516142529862444554245893540936214123218070712390098753143134258652556988994254525085595897167063693741041979253969199703762341166816420013198713593053601582301341046543401054003082531882070090624778354105842494596069447284347636937934194377777399915183748269465685760598623904671298612636218525575843327785603111368111722883166074537069785727010275734460724895306106232800751677442048438142049975580189898980213686274847243548231260325756541437643128224330881403849823174810391467998572907112385905090960676765669604422045756985657058357323080234882765779710920899922527978297662941241791821729354476167012003102177266757785739452234806123422488522871984969903308533266634251131138491585042245285544821851966041207998396647691795323384560554671055352044242955452017442024264543798916427332575832063886173078131843297884993880243487094338199435361846802694910638339561596918315046463306319097848805131432401727219712682315370927297083642523445234673909222658741642422920533781428049416699161850955433871315128728805767712465139125927154740319946285856945320269105261295373770394749304667554663902955165251386929934802565682834055680873149891013763992884153986945615488768113982970993134312431076804709940396448206534408355070715685596675953423419468979609228968741430591969980679305965126752749403532461205841136977336233845391644979759564436313537288503535205045384736839114957890665942542631027537177728564187251054505848433747272077210080524047442270889476190408063901686597151809721521027435832719885453658839160177764866218815855391511868069063513079857019690742888175567920227143214082804324524910604054130330145964527796178376691040640677062420529039014757771342501499287028760138473413410880874874891501788146963030857615540532919508962469114051554189338113916898003055212361904463339400553270577627718098187937161027344198244871302341755781530953835624053821928858679481108334591093944568040955269728787737374439315238350918261720759610406041384036283568956576489720919880250770709638300647406972211330729313500660040559372156997163963863265173839442082945855918300082770239678002427163150313951749315184006319988934738990013061524427394101632757597794687914658076213053141001238888034076952197842995988345769175340861154366356196716005193100362900203324203770750768801924262234392076005816700470382271401673278614437812726017145865351727613341195575999042591242129277741908796269664991088775613405314282840172091641140773768390242678283977229207675239724172046159574837753874578772885612975305846555528098487322353569707284307891789107250946219087958198843847660979737524306768107900825195497036273719131832567575692134213590197396197732760353327651658326424694361835629049425885892002171660433452974961875448569640168085158148863931540198332877257647288544113042213378975824890072153624693158040604669317350281568131307505344187986980668627382196726623568568904128698817670740383689643556945112041065511964572479567913286953677709908525967856954447727100249511354003142879366842736866226978176480996912197756688153207570704736112482162944880142281757653294497897228511215927088745767625041243228920582585885119434471456395030226441094004777846775322126336185652873706665211186593277408990365258745225313273285803211829256623534928676814532619558000824166943127153473065180095245871769451897194877990593487943127051397417292049547646411268241340293237682770621557956976265008128808497053250766367126384522638994748046925102331201848556016110096800806558863576071347019821072102360438507295133440273490296969201715159097108656040851917625447537793579927066485036469433523153750084011946663607467724814622759121604533912054644166899560518770261070911354697731424315611971759080702715937432767649376000140355965128321060758985206753804395205595836969652716610513058202400782537928344540704822460672885862115500707837287050950346734323637153132193640650258664275927698858069751625712097005059830856612425565012814353840307411915126718709457564347510542670902621638809451856567836831385704709824487139180000805034176551496022953260058460183979457034533788191582614749987617296651231162142765214241720025398423077567915136131528642893771795787303659032152552065991900471687592499331964146583392314933406736621766815879675177752980254034144060398172179774228035254088795302802438959913917477460244662410331274185404085059308301020388616443568396745755670991337273013431195942685399949298681868946815429284951728094289398762314396189682223922510864552779139808867460588842432088174421558622338596442133052119122744472149407842446214471945514703759807117346573522786239961168875227006087377073162120576377943565794475107106187966317126051974922982135798449768513764254351286306867799936389183295293936586617482205864846763728481047595719223141176222385899361372184265334253369211454563105502511122781405638549457537775217654733080516343392474130078413607213443633869684193499474047822672002381660308057798777419454367938254564612803523907230293123251680554307983854268798693641695656462777826744142586627668170656915514260779424299686826233941503333753038876071905687752054142701122519460103905619382467818733228050186192991515161287421195553395459160358514711020941127686360614193175067350127316425569360717438436287234509799465574662639124489652554901355692174291285232176799348320398123825063653619304725935800995169045388928740660991232346327831506650956747305823371482472004111927950300538658286251473060856977640182720503787055407243433040119554063246100787353082565378726873958786655263800988379073658259390968318100891132171378285991063733718919530615562412806625172511375141412012345732561699966247651106256759174781563119372573668874976969997721413924068259135263582181942107467081242956395930442420665421240717583665498396442481873280188557178984854404376193598291565033414981594524394529391920519155457464592035661873893620556379289825350262657094634710580139531687322622692014646431729144641332160236196766058328506390021020821431678020479585777059620407398237312572368987426973461112584826802719923354665260232224901316281106826597326560829004234663127104990009788887528745034152677245491254441364877926967804053503514169942127433362606920632271556747990057134721351929193150785915881260296144757552785679752350000875040805298879546876549274455065145525063640843501374035278854221349809824580618092329553641458028295364452883693614080020040149198479147713199681088400387849977557922652411047841074670508443148056222540314612098606214813944886970263281413502675429018928497766660903226590187733219229956613368015764262584283307896786833778044183070674471830101898719480646498312644707544017866263667187062233978863089778872651965991245188362857341549954460303288247836404410650637844778142337485249514741071149778994634684477919296117483956942831697831310733834977569968919500421961405653036292673506071039322300265051263786355618997547909039964433658709605146944590015836711282919232106804330808474350283363200627662487782965337487509761077029495858246051223548197758118695650122845904601429795723253072890597643622975276052399319019434566749183312682402070434723033363483505447618426917594602418422955798054019819826837404734026090731493494404189702363730289261031471172097158399945421229352887498527505189941164635582429004689122214077993603918189306784550538721721015605024191891122513736063835161163547414844275815906630175019147616909369504547808686747190983228011879007867625985175570167346917364989302083949485585671770718852458295006366918876409673174894043801441167551396858682426323738012094065187611722252667872753155641062740642508286320956460605387287451415975403461304659957426212100425887324680816995735034121880432012558838550442029659412320970719228762424578040549903646583023051773711050732239847196438497910342482736033737306401684740223515425806801209785658107633459162505707278284902615611055410515860984761229519257912951402811316458206452649253204719912960305984436884717986719349981382729843917915930006109557577868543109738208647106962062386822569189792446916368759786749250191008275761566511914040888779860826391700389214703696705154727498091760394646869914304033904282921646138695458219937810015390964768875939477593186751388790676049214365721070129377920153031184590861104060345584711933851194857537800647321683905656680879233697577015640356092128122456193235391893739894599078574459380500190450247791237083494961482482101533440347280339661437072179761640563202711652766575912976881340430165934554678066196711468426448779137918861524648937452263134913891950153437255212977541172981362419337706753895237759222458093645980955113828419303622948086182970181016657627037553050173203780985652797805078539486852598786043013419371773160463191308328090565413743218454543249512650403414028165575870340271893986241866218993939585311686205736621713197573110307145723739955383515888986796188515479237258794530743583049867651161978873800152928724406338893350150104148793335686327081461046136942072440183271936289060061991783259060341198747502188292260315605608380706633992158220701686421377943329781396280701817229157915793432464971083999544653206742457879995201741179682412862703975181871891110281567193973588356226551672509627899557124891632825879994279008177189463957649322347278400875704656027269090002890545106858554904182288123709613313487868325352812770471177193389330871309046313713739559166224932758926861510545206756967359745168091059201812355770984554420139492959915655471311944168920985564381580208782656820840537986944697201488753441983779394950087993322807413095331583990314619170157505337433818201466803800991324348816394559240448672140343558547803935801755752635833956806414781762987724870820634350244814677708587227004142457734346834107191654727242283605822173738870795967562706552013291247227765868679171022848268728316123323123484178933003227504353456244190821719045072016405624876061042580601441393824836687249308923318070267926613997053762974529089098414543162768877728342747365517058691654262151178291269885945815225739146824855112318967431560229935876800347550495068613005721252656086519136839946019730097731247801150916558029095897244342196262316704647137132122602673912362428411514747048198581673132678841470425271380440144097934379862234625739892351183722129587015063971066584423497433039328253849134011737285876672294179521628495349032074531901844077179848064920294807458404614255521667288259608478289291209776899696759848411432537837450919541282053742972235707604993160316772475852886080481066472157510069826284948433022859091899376350449818195061051644818420890194927430864857962001994417581440964611894539500355378939672138833856634847023501082474277460703675027620485967920872671393583814038990101341510366243961130243363972749687073495769998132916633308351999981822779781582349500879504710374604974668567419440124266188701251622625303639987984841153943575048162126813819816509665144105607257284687602515068185242472375877791836776483344796386508340165809015983415501507977754205848552003078937294416724701597819346753510883194918697426031917151730283392364838062918101660813129999997150481541301421849447126544947981024885489824216490513422928396529192023339871614450295852939411448000245434973519111247458636112980291039114819384265543088866748122000565146798542816991797474013837999654721598659190240001205357757742763722347973294089185831768837667321445047113643542652328039545252215037215195799620248356241998484872082356707030385362801522050562346136107385998542654884282641958180063202534390069827754688534020205704645948350466859258211120812504983005211374446966434679885097981479971846156165030275723684401037403818454126670475129553278874791824261442527768356817864977104743734309233013916092512717350762327018194054201043644766685056300424847233288409978422863805362171361376165621916803275081596373928047433538762280730635684260247049963900554323821096196989111816863843913030401540553712164259729003537519065807675687264649018187561388724349226886220162330010390292475705446701911993311187754914221924865323001714638376853128546043361074109761613944390449730797414001960408763864583281961008374750991392249281052436572016717797322741283573187214953655730377209647002417377515117179781027660969815444868172121190304761121408752886513066460708133328388138951493913506621942857774382994226893965476688836420978093552413479548509510997209799282917141534325007544461756624340378335555929858014894110927026976211325848585958838563255924355410853630333676315136530383740431542767108513530415717641168401564818491451957026434605880125655928040009324116870103225095570086953905550307532724267799313913581251439807883707040001548564501389769380158874412028748576962807133108650575422863570310536566850189411991308007484654242174981934714602992390717693674882948514259307864019311031837046204318478984778176003292208195504401898145467046290779070091886955984537572191446926163703397631871176299715782728034106116427714514325659361184394692602311740450609585741450935454766575023072360190099929250295268845934950776342907875656988016630268747792939188768329077498958626286038840057532074417015407220857426510961424638539788852627985141679369110816195386500784991799567377815511707946536165609203573453477134414283203829568449405979557551628386168135151037395248153593371854754309489438572009692718710651121814326627571497060046299233077109565460005598392165564816359403352909416247222538917937805419722112882755215923475090834104206573625495186274716539497578414032416247132275502431812610923654741441353761264522233068433512659438454121342713367847806102852870021624514597844890851314340097381233924989192720852291536660021947456873601180463393134214537996413953640256045061797794369176099677808701447963355426635812786134793100597352896821513652668042832122531512695185180622299354047136884653608946747933397112779909940722961102274410189770392216858983514160099129755279725591542680758928270937940027679209117450641967867142401618826997902030725627855465390059078475004572471039776765754153713961063939793565912127427227624414937921518118427391378290449621301928021362872843937699745524661303432394112535885893213833425110301443638563724072304106130790848706284913959295886664472288682382802308164979972251559271960860515605960614104647216154831008259731591596762318444684751986183220136527292724478836393200924381437657649547793790437587997974682419326029230844119236374300058774934988068820025165615464952854155813362829028137474116803031753387800696484218595930968528733537646259996345657948236142295161969363122406575780441860719217894580034382548779057395451559499390699892634802791949449995652362035436783088688548661215995822170921567872812599160216363038668752819342412855292031422753585798341278470729622945728172432837121715475052631719545615859609761204372970385902087242621483011435423397317869930361664535288947253481523672869858052804842240111510182628624818013006403194441047049543562996246596902774419229504531502503974852450625378994826234758666852431163161135866870119467431537853401872691287683578296158176663275075709069807570716698289635956363701641394456058214831012019303361998149308154673697523504974653927058025341927944379238709738657401647035457846356126734174058606951489149605355371872892512560898801485417974609477115337466547304758127139481477409133343732452463197021075946869521716710277585822330748745551068746585147379907204461788969433670763773370564621292944700917341964207218818459479328688869511381544494241894682076603093776642957588711541092612143572664866521196981024212955662771531026012377913666913068420516237786838587252275835057263940750366315141178953187918423064486566688987460657045907667993874699239923686318455650082168090126920653574847042812548053251264151384910186444796474144278493675969432831609751288590419459363971399319407136664444269324128238189971809278972462776635906959168055888502539954727680082501682133284446306284644663190850944808316930196903168799539335488595053795471867077100680314702386383043818598360687937710923995623287027548317145592282507313947888783155008746785128020455355018490734911144875724455388914403606310341838944540413210096760346391120017213307556985016397801247723132527881680478990908638279314291552729452995941289752115999262098372553650577260439436920693794465395468200608083668257185612108356023907452117541221796093531428797209801247697720597676792598801183229713999850438419441554318876063238919426357742535582264295743366101929288951772154186748768733464999816810748946466500323433228451381220703919633663434889436182391343220110958686415900002028081440192788199378331548438393634017569571955700712190367910271096034760784603382443338026220077170931143568272831053744781063413046368849776334944640288278685088820408798897208276441388065356152227247643123982901934387079841860122090571448297329575425187442863795620456688882156800694584387305415745026136990927200919305024033085698161181215262299343537980909636470587870222522237249803687561480460761536431643326037742617931177728935803917247320512629709169266543826323955832574041977158763257576020155026533101502103760892692010238103898592355236425446523971729446841656301301530088145536342732282364640240967331819256913037831966273472016435820502201859459131877031318738172572965280465386306367651920671494905802464330176289165610720359024952690430368452826493966371176991224433929017677603787261727610385667714568085054328312761377750095451136255060185985867699743456239061794808991406194836527734665508903143500429448472494572559927441330409270491963574682713770084301903214979466098243501146830303947819641253040797722925313782447663360776345450895917572767728524595307385250895869231676627095773491413153727827822901863606230096625614657561447589748833145476683586063578363608963051129581292267680038056389602113532850505530073494445250830906109018015313974003959546408936128603680526133697941055333375468960294806451005706484970363970350047086012567838436533293491253019802946559167839941873115751659841547652240615848384470171831401170352841341732009514277908764897067853518227899195571173716037583338541334611329278294067875785163519123854393679915118948861298411172810708607825538582710883049659002357477619943462925719814405877652172893679761341574641944227057484053510022441758501829054780051194753819922982111192850070528366753691378625560176086002785676954590215925214934759802559172687574977619637139742946289226930861054048068504740940122856941972964349248891870546953271664623673528524703492140743373093562234894541625220851268604067154028309142384110410450871378742725411737457102623376125185055455681866043934724815373496221970274790068409824434931502001170855916748261072622062350772283565249230589430381467975174827656610678492553386745863381789815029003650973540893952790325783097873396606119163607556184016681847335660182266762485243975214577602106163367680184176021866777637440253234703824582492595052848646274147203631510893720010583231960062321369642383290625957841161814314116211526575740058104516299458250384213024770937428848925658321290157761288762073737925878510098456520599536361844667412750927724316884826648119648340615974468742469646036818256465317907341621229278886214382235587865371790177723014997568421343704437769294604125242133346892134783955866185927907823242924979346168673208172673547828932677498720736159393959483955937976809531807222894888040897380346557733119563570779296397846595063063498108733052646991031269381334604684758101958516425924639896346008648629059028426835801655834260943606923622641215954476128439752839045586371769228911253160859570369985913623463015181432522704997919252699830608501411126615897147747109133977794308237079941155745480172748396887522947635553305638219560349140809498871840709786088884893960698811415249045040086082175770872203486749157040170806352860213447609313692940387199335927027572969956074015897739709475232282141083902805146457408372393024298316116680439510155679738084398091089293944359418529978729774982873007173088875103387198812091010073761364147968975178720096799744916727953412262177602566042581822155961940641152907800977779677006628572414401786928753655758229648838298067066505347513809266181954990698878018934956302053974417762011073146865113222772067066681816105767769032443211827173947780406783413453624885991266935753854530185573000649274503720030828553518406070487910758513408169041292408982467773119855649975702196237071386727996161006098281487787760963369565697638063710410422760460303545319684855459982999215010392329038000079180533791706497648678991076310665149205962225152914895020799278895542374051889133785718125937520759635080912821880713475850631473342555463047079497677392052708994129204156449967054315546698983522094148941695690017008892306485489170059419808879473378821682678279244382366428554653017407207095951755339595849965996404108428662554958624930113904691532837868426223414963510493951709236762346091261787574858748956362224536751929594019765921051209430841935291126561080411632249296083113216841114715807115461481837736370149267908458769016143082348252592682864562558838819475257124460340724723638232473155177198607191321958416374106425234634979309520182384177138539765914264321527966267882596218052683273542433379647767705988901856280133910348441031393930131090242751350490944564004984046869885673468672460707700947427980657539959644107219995122623010299697729363738984189956363937031208427013283757894881441722643713139087486583009645596741329534225852802647889274712766935796181150013312265645893876177135669391172442610443104864369647679756674486759167748945761939498669139769847467940472183676429035801257454223706925658448857341434190335659527380223705435418665550374417178883359515802620538875960391586632910542881673141588960868625902914831473645149146760278602547258986442882277697695405484685243197322059026836368462879410919461418595011732714453108538251396988818932924287791503249871360324534716328695163975709953720945184297788842551435241713453635407542571552046264717765598100749954276754039951150585079271856628269685752438391853737875646832653098396730535484209467456344521356617417287162428868925639167027539688452437959528129726187217132746316981438483429144329803166964716251687390684036905798201626207812940092985030174796150196702109721787672851407741433629311486330091207505205817607249354637371867932294087892021031380768128453670738839176913998077394568488767694313640870264250511146845377054321526479851180590240169007693133670875516475930847112737932404675268545496805064922664521367211937539460419839526688998391736720980486530696719735873999094584107945031781515886955015970988818133885337135490229184991389300717112745272156735968429272499243506976264119449618155988678503107165464556553749776189140776800393168768650277878919675489910778138930810519759877482524636119730662468222141589157662405798874390234026061940937434174842343082971205458671940922309953647264432011577990208725933649721158720782735131860581793304954502251764520717946611661137113336629788510679315084597599905802843556396853860504223148927612269205738501153190782139681339997410130168516649236533307242147125844395574584024681664780192210292104593601094650459790931895754539377643951586613818516755467710877203254688194365484168543487059850869157609375302390213091038638612751680595080488818509329892462209061978726169235269274706035547114753090389373258377444439703243215994762172581624012673418844888642468433710377668961840230777385368842540741822060911551096037032739957497301804489332266030190033390940391873425757395952535219997678137469270745637048827825598125932220549342697732012646539727753167106149823731707555219013159256692179519201503547196517528737961245545012157582936058032286853410838218210290903824160103058666705592747360122409090188196820378221201401145704024044138878595119169188711182183214998744295213676239445986723055427509828679942031122396441082853039856285260638802218145458249251880863908400573746731056224115487473453583780318593303764144120553408543537350141074871561849913531980905021312335186341123931621737878906610469603674812102929585626625084951778771637568295680962735199694387892018456851381656727515186373354894063426725250493869507857817366183487142028280987724811360443534709353567405680911969934871433638215093428431341972108007925053170624311749131017156752513782966742499310075370664510915937011907247206103831022600164719223638504765394786293512548799868919241723514795008422066974028400218440358888546982012786166098735473768896814216589727222035226010880564875056493921768068858577464942457732110071280623112267866083452658404329388379445127764933073383524721204554273731117584057435645911156295849631542053803005930740798836527091291926172188348814201124671445619623003770107543188904711493392099685169986396156941452511157218066594392389507964231389169957368539059434155807192070937092035147449396545995404911230089639183005535636549896877109989705334922789578979021582054647710423637645498775789917850064744417139030486445831574265571417040859159037668670235025049579938608920113604591748448401067832366639890162023054839098849278067949651394260501970587084352179903597390531369864133545138331163722977002542492307574757681497855857106958049429660448279943935737623922770900495010488060059632815611330424949065678407224997443742980598133345735466753004963992022943304763347387776276867305759174581576729799390695492787240496824496808629897288437002523362789285701205443710556616245857587557711388186913383664536734084200800906107561371314986401930187720653232629465063233255817781775080576228739302040848008938780446737500467595166074348651065010678350322188127127619580571629540926798141638980502181071488744033132077862773030151010401290502530641563678723692889028492223015098850281224749763841410949591486670474735370278121987871491640800584237393159223215897139803741929607044385801097317623703748476397132243303363494918038827934742649642558784124317437791737099945258392958179295428468506705428744911729928431749152937870753226869769246973388948380897346548672130421836505320833119338011219220137191913043961812094972705738814023521977976555056509184585752879801168581413571858906203083742448214613633984976012269515277557250112403095669243290624749206130388820728535249485037573651309302683772540090576494139729449401830932261562873755184942909102354082102274267968681483785893149594252772372387226892793676725537078775774200523573013867804395225662244169659359718380845044983536610896641586431660275754194029751137697408727497727802268641008468074068260311638471780915382678481039776032157872382773177527014137971096215045519873546045890417373913206139037279494618727207550919744201785697753278784792473282722650031802836797066794513267495715152441451659049879529199655188170713711097342989252317344792860668198244743755777745552779562028641779026866869268239476759743136942445851194918433122388497478334274832410564151073707786032066019062032808368950643334461380656774829065664462589537367724134709802366013406433781262021897268403882091083217215823949669758415521706061162773766790868865617931805584335806108772162998716205452224240583895341655472069462580486507871646243217997605921112011454765995776807363149198003233456456329635679349473629586873932600280344799217310995481165316110083860504039557686243112847868604552125842785547846900411190608792128917360884922393972016824652147659099585035643048751672412251027462260835426086710117063665673931394599382091426714653670341402945460670486172825044510304663979019064080481999895896030941633209666548659978237519224770606566453662916341688101303340540519599175106723327285832032887662552546665176693102322898358911173244821925817391433266914326749809713516987487253954919551323786736851566703893849254285318137089346895528871333034220173240637781634628414444671869933643386195412427550794672896950476895566159593934532451368776079321598067963780206842234280609486255166977124851252821317416509005608963686501198522295500007590293961876585524277539972467151564203913368706548625485490237452493226229583029424706995649273742839928767054741252252812158197108955288959214437946793050808029405361403406492734846582382968475582407831197242864697205025205882608330307829803969218175968985830333445692731696892316117185285809574426537897162969563409643645635553383474732113524727854683897541581099062403696709149976344386600146990968000689626881621768080149478419027016967449889490820443062321920561720011740105495685391694870673505121471655433311834423331435408689576970881391785945261819395649099248473410006884259318169086884044840807214262868845300426283407236209491301109354132713083544289327693355776680884033093481216402808771746044440725855752475544344229260040477612085223796084028171019258688575988581496770475205134113310401781949543478550270156151711462325483685336004657119335807611482592785583068384645492712074036288774153540232353516701455000833056297575698718415117481949679480609610213507969075538529982071152287441790816450161117480510310627442229152633290338293019634732544355157144691462383753710835463000020875541890555943854599438895988844815385690129526903704213466705575059636637802579452938949800428362418696905358200010964298584638290653731640381839572354495956969816814204523962224164868635762978101564440900119703344617686677846909271545138117417071798258042059251980334465226055415757432660224332708317195671265316509391965329561215222203547991807853083920866814602236440628796675016445372248339379486303018656512384982409764764189028636474337319238872035384603792953532356658914018931009204277965904769593180788634913041197751291287012664454736577835531457040239259984214345923912139802175066263150755286076973977282182253960336009130669055227573990505294202767175700528166499970833643384655077059249470239600723321388795493771605475472919351959860147863168838569792904306228842787592458184192849263421463294264797697325475507326745620116288597100994559369736513362274218328326744392037709376804825804348916529727489564694812470825397635559105566798097280480142414254006593263109892710768945832606039961659257489956009296011912407762653801202583478734491106077718999998647911138042750138837226441544079431653087021609943804306363781056450327660350599072847565225624288765332951953384252488436931695235731142679731567688170674490808439229248879863152196598055075139755940288449452887288554211743959505609991616666742169006103754383034398666166978598425354233265059101932424212544690961124297688341987528187592834546028738393969353813236267883509014511214372333440458490832751403837816194886955193674190377081793203428837350988622283671624220833484677869322931937854188805611945597994600492464012248406776388389889794838924906695546308201109231045437656144419839975893434157098979015709855302200904634099922028173956483005017345485603937124748363412623268753199581781768813496948695584090688082029538505445201729495887630240995773957098986906175336319892846766289384800813935531561127787514563689407568181347860618166125589055581107614888090653222286168002251344181718233404313950712984873988719720485957309261731936554338061398185011135741357392526854436549129120350838738051534741358175026625568020556122542143135635017204582307492290072897319118463414165814663447822334717020361445548205475449132313796532532037299531377763149116601167712882517383037204335864438448455072452627389294392407202437025623041885729348093190620624113146150526113376924760063804369814800692183289220022719257323739811485637133548831046946037391532497043151301962973533605231108085986799693999478786006430600465700938672454497591561020621472595617587942671122230582212516297878511472176355666497895698310205380686320402211995007680352825896378319053679352227497177057231790992089427968368581800435312992068182702367761326010669529370237823468639763252802526104151600716058986896286255840433751004235152647692581486636886727361046535999293667952234821360929556011035772699083053653729054264212551398764051680342123092983385023612010100111948752141558009438715864238519069118399179205279020996654262936571211763176173722024586188403611638080221813741204331794634486493488155528853178794345554727997479912562470380111746863006753833883059979402157074916425510588653296746009655058580327285487979232823188153298884256960620231117309911538802516770526237912985664905211403304443655907860275522972200760086326747078169155318596552063378964665923498717480685450428297906465973910342175936058470344504005507141543558662446109726110834696129239680872750953579397322656738523590770642167296139406740382530634084326800520486848071814473082607027589200747558092210156340756343367224935755110587082294619101430786723799420527152163104744497474253014445337694856478211128465386951885233639854437252225572357950147580572901215871341618640072696075909061429591145316222801735838016708423594451652049089238759591381874188102568299738966375669578616890749319451185372701791285456665643356701869924520872870842560989295693094108739145797953663338221634052921924654640937264236265890228643259579482555185184716799463106244931070767786745663739907460063613195328907950221959412327157438483060674793885753058343444175892426958169394884587970276076903628383955484709896658582150838401783691277654968941700823462188747991169357959430279606695385080713291915382309565250844470973646887273203612717395944590085145402982724013231951191865377246793731321781972992350865493119749491295181615092155281603401332834841008721551287227139628313115413483799982754983750804519571809466085727714182250708354752179788487055004964162724673047281750299905700693577370371454052581034922078802890589260153303135736166246903800611130997601343448983982664125891227502985006000056824570775236856187169574538154228201826636381684515409211286066798639410880423412678968927477514070377697863424628815506966059254707641875243008936973141509603495624480140723573645910775760396189100988176398792886029614845019624892622946323526025606087027161721421558334295210416875518368700717146586976818689678308015171415659692519972943780655225900678367410042448231040408458453619076338702625340765968465517502393868148988605193928227122337916305188826259309429816237841160069142437290558782517264184711196403280414653733425807279374046425387761257078059476470858460285779919693976422430483273575597199888007676922326304210271323717234614529477985562047941777330648240132857189466810148479298211071297881063702195159443506050504992498207592528721711225584319630385583215613902271430972832975510480752788813830152289662720873234137976266314778301999347663614009281098012088727375970066054882288063588262507351519772043670439318845906610881825396572474249445737205833895501379362935114321071475192154510343419913845405708709531488201845311842729165394574158258501633187507638252163990628659809333965837194638924698957178149930572389870662898590578260785907594431060102905720770548670665758054161986179326420642481904494341540898780944149679926750512412692668216442743010900935179403364036825190911342952234033861157748390759450582201414901751539640978318288485104904955532623811125461546367662567451974909090357225702626397947333974018720015886615086296993252105049541790831190936485525664426352409455700361024818073758030100476780916773166491172876988504876419505784965504607052682259773859947585312996203244893020350170962710866981351233361172595136397562231372384338898893145361053410754727891331524262380816980112525631151115274926028936564192917438167442849628139560195203477615413330200678676631951126204107319661822541941516071424904192237731765122314272947668924888333093168349605759916581844250306033143569615351393869081703275071941741661067471447517545314821231414002785834216285656284562630853503330007995128360756287064656274661192912380162202133251144671328110391676852827184833300290468058937888799702417729965974548844808931066036784976961284358891193269551324469926952736531838642625151490632486547546866831080605115911277451997675629745541795550944965315095594454745584713639452209466867825044550192042415816822834673246677129066315182032690623846113919684518860368101170020052338911421008805847014415894964434700240771288118442145420654046940654642085436929437276335652756829757491923880048275591697405342389696120256578121486841134271102042662971461031205027525316808670687101093137848899066913564983889114858152192334604542540119720144370523378747470874094153727050383597889214684836890510475170071087140740239584084986088528304658437998401020611665161274585168479101700131219452981990815241484582773080027222825538561352679177666753552376037071553331816960734644928419499260809419016209195982864929753391974566380338266785923897493335317691980298871847050337351042894762341719947605662237501545586113794222095776874919525456738448342545439044980564955074586943406333553174157760023232193284332644492125672010177263105922734601165140234674957633620613150501567769613290783983535733888838219274487454239353951272464893436879433613656079714850657865885911435028470405752886349778009458626622393880397357125472575358716049742881556702905732642462381600333684915816504837066913953763994530899948425386513496588227856144800528777148103099250475422675534192757947146406728266399211948373236976103592850481568387985646968565553814052862710331834731233987508501391350724636781238113402775334622470233179636312487891296319930613290068351227700545645312533517378601583315853463726674366547485559843371952839969733902735775978653745043680389189171716200478363172281804013363079320606247447725303948236327548596892796668905982893607525210571335798018664991908584357498196309213728597774968585773477998733513935006590910077454103533219234458449291317487053303461214010270206921506647088421808252776253665973357078230250489836830075982361762085708110877600451515876599008059866865395646455130361880099986181883909121493242290072416072675032196419569306801385934862370387997563364333171321694116647325474751353611805650350291280770274199374763652066657391688047062948530113301086365626008530985793948485763487627742655627431404398903105316762976452835633887065007263804185826675662819502679578215730841247313719289143740645447586881512565298617822745405193094193107440349110558306653404393883267488993737382847195076449417892044870160880434191452324496564858409962314795425746819664858430872993631967324529437780101787863865470029624408883517232490662746202995338792668407657597968704059742712468785501793978590354175887526496961880613476848256757737518809026684431403611433204696283483910307114785926763715516701644075620826007029483663438046878161446732350474860023301538819917593227802052664546195842381206202397313877423708406422476520492583773757455412441617543566325831928151409626721666588956171907209988220538279658993435716771140001538280519165395127291169410788192726456053772872410199953608274685218672888275225343877081468186419494691424468772095724813960123748290015801247263480898743448207633044868776533239339836050676198057596979813292769040324916986950178616734683420921747182315028882400463309220501739761026897443228714909453697625559494574455327034177382191573139645130240956398455202322903116958236099740441038957684201881001547499565739834538851682346817494592308896663707071826930293389125528149651890790628780254839043973132587725046513672731502190844241868450137414202658812961888884794065356444791902259263482863439601458645214092373692783625044735300089015244084714526953027125805999439814913970506302143463126613233734642933815028545625698444571248877168264946643796395054940854023208041063228077742040143211565156630440278838152820871977523535068528448873203957052838335989517201271836102919832162386395296072611108123385196714937405079118596097380395660268264759746278066715565199610368949871057782207198683806652922330929376396266230191257884078109738399516517970750200566100496333622061085573610713671665728849546975789317810500094592124239260246094041997073451575649020120794668258044930608424296384867277851792831648575503770277589280052746668670668022636411260063393566080431660857026976738824907512769032716288374638163468403549121461292135661681823706658252571129131017629268567450484360114681772153200650027156294689719044806337953964533757372582608017456175744205111767692059214380509612954597070515232584993525678315226049535067127538196485773888556197430300488246566069613979461481893094206264525688536238353048754843156209538377405126953932657082495020699697351673071892530973267122393026558888042700325552495141687800318816967540577383286974535970415260461203512573302844959364387118055737531469339994225345628162578040266966414761161040635950623187277429718470673226956404711052124825920630768297941478959261286480529244692007478548141060758590729812864819511915330927322046422472323022065687103569054506738687286971883282397181593342269079526899930614995309009906978512446459864721918422368440983181020370335834445937110211372254808542619344365550926166439279268655926899336029984877551900597197569329972458800000257019491332917561470409974705875942631621128828407385781872612154459138339105605790013471356966717433077985050314039281550571535356089016531001799564703959865730679139295740988072463788160341347275674520871996881729407067060409840693846043627755789234775692603561383857327085262886205069294668974458250978279206262833196142583477966506974512359730213771604886579424295366476544334833834627395644237657252130594168654885638775537489039047395415645878037260278654513356589888761729972157839231275031799620002600216127903459449390735848965918357110172930556447132161399434190277853130893465384188615962148000348336337970357177086375568366042118470113208141457936121652542192487522327468591865509485137102176579841918388226509823931586446914950870190338916057554463698693714664758122787550581814433509057276797178002404418502533409329779061386564446008215995932352863554613099170554340523715522032406929146307461700092351201442197422038967552401587869052279932767958597453025308018132180812318055974445418001158877448163316850854908485060012258327793126618612063069514093519638229604108549985246424618116155980967074460700860184144628747522378590939412481506061389787688512017557763441402713967940514258428975895615638842699583486356524999931571875842441823212099792184675047853000066091097836213374138487658720535233209705616378308255990796642375577986255467901388170358451820739950999739750743184888811238946377136597595634271305757014003603486644478170619354336864041619753310996153851212710337526368669025981610027591770663533326199408976628097873919336741830539976847244154397087334772508035720650925703811095067629126467537475026729325444594617802070124793561129238502003468083331143803001394815073251255723283001566908564097850210442848368128598123638615369006515151225524528167197814323242545965522139094030926356062156330948270389636011246035954382448685801150745381782428680151742983734371174405671777648173776752590319913179198477073177277544413623219853767416178693849359393184773979503863508052056444876463669015093377827539153166072011306521534058120350135450736911251627522451144692908082473187298166472102534923132877199750352147199934047853371406862308862549711876535426659987069073528743740838713353876772799502785899383670002431065330520605299192158777698460521006380700531218187974831617401720767056085345932258970676803232350550111470415934311344051420703906604476508653868238923563553434639070133941698579574592209634861950763401453705322333288671893469355413032181040431164802506230281240264758211958260141452271660965161189518555275267413030135945760984201061700780709632395453995628462751786218757042701233327869906107542018051817167349227114089380167509201604124015743119986189212721849913510244629596662933369264772858911292932637909984508526280660522215356841846277133022507270191393014666821876758778063597413467084770359123485066829349017150387648007940983165988507850653161479785791696376148729695237480476767390190484053086362966244107049261334236584664089612200212943035584169937962394027760819067763410538187620938870463125228694854246896917438392425339307142532674876185904207408974163311731721768677316330356209327199812416990029003344867032346385312164014652377877167145779670597276162207903961522942738698148634557523897817828733527147428267676249728325508180935403908277712998220322984688026780025079502963172055328351695378432170346999598161572032948699357019731163269333509481361781582917275966419466744123784488496101494012564655421059247137006240853258002652182150860563709295204918622562306737331160188243933859166800761458328045476127657041615899814431924205092807544370851124109706377112652335433034708168074616943518719985062547599858237983122470242929865770474587514404930613585074332988476689193013867599762808288723093302951290187010422116689225412730012583201637526683496384780301810664394335477565804546819340012941493827465718218704225082918208413445118051131101466992811190183545686579317437558647908463181030266526889802820485688955064890097252367696885135611163222184774283204981662837644489252917728407951845729465366789444198250897434032297490287354663590163952439283208500795611271790027641717937370581943516798666631535292866878817221607280937925141010954277613152284822522084780499425103729648717790201759357770295181232534799450766420223777632875252075586457005096545532562958622115644612514718521897499182815263509964146806350335487392639266379147438202723362790126329042822574854385928455233059458231349029075106385877972409546231762026578774672688502730484855937876499439732635868409709566423083409303757954385258947534051207886401098685153551045066576674067149103903258651083823664633788358990259539197726053392789061847677481533870226898231589491653544364037915369951527804132647825308291976488839994929013840380084047032819244188674442660524593348238448653452033513701841025732499457977488960990763753909396675630414314660723850417954971281787340377903639553265929993032980563534309532652927775860530552443007246178227617358700744346930565606614219954566856653460000830399249240431352985745595476817301954581256947483062339289967131238144867608538536180464512533699061999037450070634386333571986084748799083531178559957837504092362726095542425741219956916203443160087975432679399167177155818849804468406834454246467580745304939922810562734393487351166383478029367474724452596836606392595737779299965770799343873513786923984353083376706808617346671686360484430928423853567175727374636599280088749115588913518333300482332738307500616813209882548632338302515067393313486956512690142543086894219745838837338158049897575894244932640110406572874948649600891827098211524523053283892876088314001707510148886129328758878587426639561688118923418968675427916125578997241616271299254970833703371763418214366561155943850625416762333732802353061266176083636297202416026379116822471421026681052873912717573300978558806893264303470024156520335609494877861293328348475227399553123956912887783214900319711221714633779063708697385600165456085785247044696717527860993547655662990523240095672608279133624131554352832608898914345410247454432109011178103957216035223159081883374421988600921768504817170710726918300518779693312738470655067438103668847000536300578791434433188630910553257095579788059728776975448389021559325788215738487053498261199275042544674070920963744038965353767217412015081597184807653286781335655588499900165762161165192647578912210977637524623888429158957893503563552769116659527122882773409917538119502145844499773180689236803240966859104483430956332548174385219875120181531479523872912579489824835742647482889032373744245695906969364344605850708898352895263472719622074930286127474931849094567830244102018744478061058609961317018642683509961625733821950463414941477440320748290274352203824468772053085975301838695110884585173284947339421234791504885302287145335757653737061239195798264325088588546465987503002246896589768023241031694607536165696806686595265112309620446077207149321792195198219543406953340487948442771746931880120274657982191728635212759258068665446803923536310070713330988489178165809273413320953334219606605335595611875874087207065812573739113830474846321727327406277770403994679866722254309203059716860075402491891296842554503590245824174737442248338099764725450745957279670738251798909084920544974610128289824457153818734622181705176003397039422213457124853625966019480173823839620550880377403804089966073198778988312314078240744760914407981905140059642008731685975985810912678149263481517155953493520733201937429298953745040633180044184200605621937481942569264833519008000450913785200521821638474608322998486593779541115829601236548808252152994496278355065202378316420493187619705820736234530267139734655119658591382912940044180461056902193861633931061634217618137853873722101482265224545417920309169746657151421879606171400155344669937239181390477139812411196915892034753043258090980977153826282031503298791457719395653409331847407430910875594125473718578160645422462036833965010771244412393708326045789241363104522804031435326894345373881249347584747086108592498727004116932267959502728229882256808182259716820997687124364190729213194655464896823949730509229029292469149109195261013104584563087439966999592602023388513218148969124937552006802446861209884050122759829245832924536111680177766948842327191114275177501732354786442648620491398178261176311458680158912553200000998422644882097550598594224985498445854515294263151848454322107814503610325748610217352624458661442137991024167289718624571424872234702178889594077990165932763843085758541593798756855721633036582288225594401824018013192272554057582852798463185157742538703378361438564735978150084925759626819024140376275540382977042314437564354174593666842114096701568257156366357015810684458836999337757387214156848553873713653175285430870416031324190689239472000851953568013709453726315329227677525480164636313661305749931315184629582161133763641488868198244902551458244998623268481030446591551736838723240993559015865719555833109396955093266256812069195544661877487307917206556881918486423424515306899883194110540235423724260400034696426719837696157398074882619225044783297359315331998612584553512356956706319198000867522410192844724760062674514749622039963426052330646916773486651499676896412033999146604193538027682946242582185423756320292724591085914382308419810928993854614697940410145756681443968441289539748419455230933162319018655273944472546971854700179210453572191375036166400650399568541565805232582108800178003949555059452658955762202153749538852479543834493984579642864648039506261457349484510121730175200304206718477695143267681076203080828044223039684842099382986481815135999575126311170431514666372269546243764459077703714232557340979719958380420818116612665651649401524586608666305841787793041414098188256054765405960217660691291827682835955766563726973533392639008550973188369718863836515270589430229635129717228133651049474409021464136397091834299665619194548544374954892024328332644235141698521694745184930583282498558172703836401134725674852739649502975513938260174174496255338679852723003822770750685583461976630817232170298196793487334411896977879191589118729215502382954789070495138066973944726375742547405021186262185522941543104851960069929034003266517006419244364552313802320383337574995007687272879162332928555963626642621110631850743204240644307360000139692013584550755386093729309739732457375108500937263712456175164696990362855623647044233761231946655442313829044496186672341933837521015768200938608389598948252200186089313682396905965971705781041901829540423221694392231973840318819082676027196931834687898824535535786849455976163876028498572946781927068843660456403601092960436941767312620544683552248828820209584434580304133850120453128961739139775563838128402108145237868362602065158674039509871149155657536275030794065356371981801728744615402124784724982398288253342981472898528310927910548300021867473286934581471948807530011736296785786762349867498222100562520986626362539597089949680391265282283597306175060021813789805433972830481195440244674810729975410177260431667027366457191729121277947446649359523180412131695470170771993083126522820635798045497565596811743097771187304230207566363901925448265532944070097348044026168491687141591186206401947034096441786000038818887986928658125105348436250908610270699812264834642353482182799181096439304355698309217751242559547744752893767950616066911458207133984864824638056693773487084499854119932058794112943395192361576044855058947443394505210501357987487012946544781091832383191737259278073241153499222785967927941820139488652817535496817802223365921059516905456461571269390780381245630909084275742272023463338313844679381124177945171901191484399842288940532329442843249894658967555947033554469384411153079921120180819186287424810705894683732672546888985169131401634424589434285071554171127955147901493819594683369548320561545103785909709024381392643510626742541741036019550741765213906969018714336573639226850873360178513614427880643026691822495037329664942533471523507751673349071833831970984148862206763633352771343745643366261693930715759556541629300667110374229202520964809614422042580809610856996905882670760948830652188563348416548544786302535293932013301016598197068702289259244362284443718623196908120750250050818657276524300526022748546709806659933706257416930541835833856584109705140191102626800743708337474269404566191380443098945354921419809247984770393975787938689346343154228536469111642669495700090211655638818619557381881909500396847522514057397589233739260540585062687635169436595856068632069388497522555944937831741985662309064285798284326867775175388638307648073206916672009654031597561469311581917265222010117279005989823159680026773637632199974780045169040457499073575243272392595104518130918515379959384299800809245338317333068765893811093331677610079702218774733312835369901160999179477223782761724466510697336380269040734341531882782584943480643092557659041080000586435278212451542326852798041599342957688374786501947084632108032279797869242895879209116693059000418848167526880585378473924399888343589829806543639804931049841215281850413363075457084267532241153471813609003311269663981787277582952935142223874409412355029622764658428327018458275551732106295149470965427727077891627709223055063408868561623789288840246928289158737728169495275335342754891444542940809698518634854485574367714500602981468147799490685338985617957381561733901578539410922321452569850633933762347794567862711477276200994395688223046605812918541158162083305245104420392280745576833257229475790999535540996505329746840841037108556173228324164725913755838540244578934809767827160588040629414556118030636275642972932700802520299623137749677532826881311425781537994654943111657869192810394832856286882199889101498492736315868302909511960479273030995026966806996654366713375379705202564511231560470699253919860334291020170650375874671135824615044928475560167604745559813773395188185641150444511824108187262808234118231084411249128822913741502653288416614287743920969537491475328695557738050798589413161629864417904211357480818212879985678457041931623037550143021624128267932377454837209543769924925332572017148657404419618749589209399472764652026465177305176151297297699904909024132647985396382857675483617853256277914907075747494527344799162338041493800534234837495718110968361595646408471659193740703348041467374653392455526210254786555535681646769869213211540036118162654096901229095194152823819118657212923176357276462691124740205580326071312608423617041302860675553931987407381257721667498510622238335917825867549204457175447509161769824175109198941287572235824948499276710399835498777548247781586453526419522198089137544001625663148989560807400639326257856760460939914500164435547469296349375043328498359592933744227148121875870329832231570171271034142735417085664651161654842051161764392968572118641494309733083818336050017649565251547300042482020740012560494607842389892820218298136540761318825508606966626998464926424677013337393143324180430985256868024950680598845810169186879858099319254946810733072359545574787359052026402250117912943814275678018229366373734149086402254531484580512664866570808487169656493367975845829806400611901980479283633791003788896913874736814073434727911506977680619330569305585198303205909056463252146154948700161276595036426313718974966597514343088003738538106012217067907749979312666647898672697450177452589534057204533322694450416777357816903789472226736509813333138341060593716083361636231702925285090451829038430954443682066868204343806519853780565764782382817011102072857977051818825494920251615996041565334650187747910393881561044591689816520800265444039988372283833579688504575509501506111925857469585775188347621072092476335307536382886501413288602515051930709283279592826589187431077195702674960361474195984654954472550883878976825455490123594237157770106278003072621991960908262046720082201958030917515804882998234931606719730379706937319674964864161434591474423007508587126049707718604346477712344121276181742650369572233688529336171721942466406236813082164940886892485064537848759898038609071239105751030713201179756566487358584001057565898397156537531762758023351262728474784335031650348327693906319578170711760473964997711167996121371087748608280074457966044707931012701204736841466788822932986158758681437305599667084809437888296398933142924994786726068036480309879740148072550231653714792797616105974876576931960679726126839914502810771715764237774926316685824096248031148709577643414555726687181989241022773424061413843342958218707491632586689760435881030602545092344942927110121117909760802821468069256200107324784603457777261228993862649733190435325695875510575707633724697956407927311684114646701822132537336692254741853526174652087272292245508050066531451987454823698885256292172208216108798842999956309814118201840495080610357981243485843843009791178357854419490029413058792983367649748122164824945314981812777366900788702500313088352412187971674835280936291788813462133300603287307591717254124688688207309473063017967485493857080235776716580908777255169781552830872356682329158728827122141586621694104307246442540903861147800337328994256205881760756772912142694867598388409540007795960005151287792690835855979116088921830847170566735039971310695869477399752546140581199318124972342903141812751564690102374060406221142736765822990303607383899495912376085443490813025048469373102983341848323365590425790998919594202121005050712288260725240686591796038658211288601765558878212173189644048042168313321506276565104922435096717031298273527129434247817473400908354698951097882481806577758977419943270325752010857489863782119170234942166677724058107946850381704294424180311485851355552775655955535256924069236523968618095610586945104819599350128134464485322041875157809272095821210867454638861701764902268001185318984734149669611062646760947467741155509882489014099345361166473046223692169263628521018740298244027963665084686076441796711819167657027385309536743797305028931490488368600322871025768287144788324147093118070925363903778718036360315448837191953260024435036396296775942469505598114103461957400060548358712073727560740005838190110314420725121383702758328381578364532643250667717223191843641699628847327530187052983273298614594763703477465950030675129695704555794479464871497830180170540758752961206207400586559986566717795453444714476002665769862865870263585522206571195216458073001640007180482877087275023882030711046511235042816800501339795606034398385674896258111217452096290454225932401506741743714809640491062234810446165012677958886473994386712499920858088762123087156333896108908338690016253213253637901974704934809098439423827861776979196045868552203496391871112533821231941800491390826277583842695602098333821245717933882345547274704878617454265633838829228708116814345496896801765878240295987932805544505193071661233270467331030527298649537061314180985709183981124849742328094172558532600234088057001786817396493992519079912440795598206746801489309233046249149708406721589237386937789718051663798109509074716680330988922117021083575620890182790694730554794529091644502083714984360034666678265974049356879030712959015677445102496142168795909130344911795033769389961813864094246726899437434631192451714667811279931704528250117405131541850120593526194280353702468118071916554101012087261640924473681843391155051080101710509623517779676815486842776453234988077375530806346826903650184689432987155700472068895094304668814587429894596452927294833774677585575468197217611533016349174958000304669900433830672822186668667220550357258292538802014777519560331006191312451044100449094540123639217393858230555969785897706662683297559904370911988295989714044684069724256866941202398046468898826497129458734563698968827764270114562673166039867108866325169625936692230111900811887995509246835266034553094706008471105832608853255882235681231456809159364439442464216576740777440495757469024164909713995108167605308531126778780296147358300102583913393937813782456673779322904790427980342833700343701067300030817932150966686825835541192749622225899007125457793482395450172000465610609467426950647240763407218058843889380950031478525379237369038608025408737933025829367056712542816744723793663895809053390705735303383359662072579394490217682282945657138691710321839968989734093217820541956428344818794679694152125851501183482310471574769048781399567896764794810039993898462083334227203396968506253450027357920552968640682646892764493080793240627822572237582450751470937722093797174741561371826346982397563320724285812852674395704836229528345125079497083115080432773176758848029701330177910344315025290078777079468958048069304850694670408543324815717455122175633437078849929812370393450334118802723442034053010367244158654865000392433939711506717442721154830979346554200435898221930008997506624098304229166700795920252919926241349597255264002019318607169358437606398719185710737476046084665584141398325948234645103128803610544241891968323217036106844561772475663121359782836466042778988354944394217868012052193295970743751805454532923246933285935288964723789448111268732667055092670506421214825602765736276345801818526727264941837388218854164288957553795741555107741725999423429621091200706604731952075189747935441504278344162618169938943494724745889715029288192842609923213861796704258989923654320824415969789407886094681733405211359485129716914735237156034334797718068316405388539508758000140396404999508543828431739072742412883877300243677420979122036630143834706557882836343304935363953313865842688884060768723438093211190351818479971187787390786080190336089167817281520604353699485161149937851778007545191277333650828230950675294702045321950082969720452044845669050501723958754711275009190627856688105100632250297837747788500914720029440745698749823791021238223795992586645754723463818725419671240023935505833818038256658622128657500375166435182663535549657855825936652024798919448589334381129519884371158340917783382484016921592868119199420826042169288498656782347984108978424386796488974694679645924688039908714899597620854986310205810656985662299828845129585523913421539985527762261643511413132103570972831726034821289873797184178981949960056299139712568143632480272514635797297620773555628960708375909724897398782295388521586266588648478054373890643655339095582772555827344288008381206171705415928175746505542843036661211604079177654645136175496238136211085483092091538366557180963274740247916980244404182281676846686476451626515456795017179252108114692780630682847756288741774641643159747167071652842822202750332957964278213432551870943851840761665751770373144790965146711382312962465151971194762461114762115524809071274777806604987934234972790327222981551793892242226940675328160401628222097428603846592808623278856424134223678197280482505439581155952894847961846565602726854560894738298017567646655510492765441706187566209302875034871640771956044249802677382252192077535625965519605151445370053253824234719639149558445179178688265387031202267301642596355598382289737416744142494054789136482326303073837229580669134645482547500622933121722575373951474116173790040104102112918730898145721981637739741880614617830033788912628692997027956157569762381979171332715914728253588629626618415582422143648037435838156445669154564745312110171408008931328807409902402713443106430002821984487319445419648354551859640646009918629587285013670692692689527457796276360903215495536064984855006851467879219846908998121530671885311901761001498991980446823843312793373040228861993453434076599278203886373037863443767732412214279693412277492756270597667508045323017420962759599990240345387185962691870922948814273743774433789062962114063804115577558026292040646945998973561900942600689694504671177710700227808258084018626880321129706989650680546962831996246982168442874915891637450979120999533217335186265264572908185889258314826229373293249397664003270972738378321444487033518087665959837392942200702793870626859808068761577940714393552003562462027623709117809928161692304050641886341793706904666390821508524236495488137418155740736135323891862117965602946663331487071140985727162917187156653490043960088466663440764132088855035128073252280572677103401689366704474958405543222408241451574038366032205347290123794129652340388299068509800328039057306117254985466753173813023092436514696224860723409710070972593400530890119786249106788196144925828621635976191255670001711498791419453621587897235257707533593183924663195503929801030100804807703527308037144853838198767631936782908866811058412684958180907341175441895380216084282663471462861734143575288862493395356602714811367837230764930423692274275317020351600178017802100111621055428561525719221098865941904026754049442356880649964263457068516557731418284010485450205030151663216521518715284642702465700684093848166618237358135614998110414048234003610519096562632784185922049087540781152986375788789366196924109944179623606062956631393663601142418572210719183499422742291158553980194493866143462804657651174096489916404041088015072659168044942392667230041233582865950852298828425566851781687519498321500932178909733300534317887512742134087795555673548259133629753073306993808948798820051678552586595379686358328472864754463296556777364983174768037180420651176641053178452174833968010633641070720440295544860595492558756221762663131257573880556273868943329259549045680040798879350971939911611644490575869816608851012854155485253150091757848532776439164302671437624306537440242289658484382311991409291742674442284862863723170793741862963752974360001122834080571522862235185400977109337986311347139557377534494812004833839900688089733771356927899741706298934532272667524575599284536810144530401238480395943713607123420171025545348642340419966733939251359965604035278556523661496890560422721817419042768610846506568263125208607620175834674238901684235813398465065205351487190561843606054655255629378462461564748056634932627234423627647343667573700720901983880107899828078288088386833927335630316573609369938374439856699047994000238422937529992393689306490635541084717279620634084456029763983204409398212903096071055159784624121933301402858702511855419385400959538499331879542368100398654870066796039643336978329932776901762170151580348556349617937149745092836706760608949754122003480670812799965817287450337067874125897427007171419937583665832631559557742655360410250509003904094836404577653320261988276688172725698965999806906013175492807363187383212250804494430646876774982236688526109786730191587161752504156821270173988789048483417172851783612705530299865480056194745864197001281597646340183423969189547693879015343595442701093801442557774409881146415594410281601184104386854103994882009526601667885139773005049152063101760207465620297690787244712102158481768485485047721589337085559208408637523169723023233651179527678587289244171362490079827857911586771362987263548554338778656804586261379094373773589675419949406658071303150506289580833307812306146734776840649157257657178044450843797000628071295776209036256047438170452587418569930610000991090528138330315677015807803973458773084640544951882362523229435484169756232214703995806688547519530188956252641235330712116133144179022133973878845211569041526474808053268334716186600365365866507953690693555787310872811400396346840878455654373798508050122161967445330329924367106498672713756130903203800409360993772603789885649067706635865006948176206432407598764925661832630056456637885100743019153930232114532776630446680463235511967205798851615289791758987990407326071555764018812208764942596833167687230046561756096713954339724952988476731746481971449262571214819062305850725510664093309533621573593792222374772036003029248276713065718401658103880779833590919119719208059261518745948171505212717518705639163375413669222317056803652304324999263809836709572444850842343927871799205661070543647760134443202380177870763493273996867546246193437737849729837136996385362193506137120881072560675111465667818089845268052051976644047484279591130170293610449926870159454791090705470919254017512546330019876923901644247341092860450200436835810131381891187088621207227946523724208802225976379871865341636249373720166454755096554277232457349994279311562552619965707644325408384844515824308901502129444428023624045637527599716693957621165488520664961075110510897512461115689032488652563473213053863783217409454174580757129414059932574694623789720078201122758510673857384419089235256875990790775687546498897869093916804707274061250286838375159614287003482350418553437814972346738051320491290360574618327566979479013235268400063412430923219948998869793922643679650240300557009172772270634033895254789333192360828935233018234189229515780182027260624997039781364472140654471209832273412953133961316754968637147950571155302353837018160183686293096483955181324816314434388872713038831137143252465092614707368488829544409647458517023907649184216536710895285258668982257889074685085552795521258734570277716139617712954066049055743922182712661130297084236494141339795447623722576974218239647080039546940301242221534538905681156700637525480444813643471182380178315751034606453375733379220967777549838386304608928497432268150954793896180908422534616917149395539451250937928863645384197308435852428860318426880898303036826247342756128223208832285609247969243025431500557161331338214724022695131621966678064536084055088617662608468957565240871398860043060032246461292075487038655995696810440794030931803978072628142539216063359134207479606886454802699931368399895371130429419444386817502324100827770515467159485963325691355298360195013226883646696593365269526133201308064791136022832855210044548867181583405882266896853530484800622144045655665545279091176782605598122928908271028478096147786559278243488457787713630438371210123187958055246412802557469236598662311502044750126959900633437425386530254004983932828485731223980640087912949729487526173613693305722099230933697532237663785912939224916126311899832942092430159886012263458033898230853394277450774851529045127377951711326979421194634173327800362766052476159595133232910326569482215569322614413717651846534198998558821199435429248902613963346930791342801577441291471761618578438148982320896757213965672514727495168319967081735383012344808904794918929545726143403115619550670785718354470756122569049834118018515371134905756857750462233766817467750879461938589956790144125006006896233705879445413439571838659095879992575325472580597133862832535714763701264122532877854906292344173085752541494418429682346842983096571166201185865181658267457934307297078069349753396267556829437199535231619887223346574289638163373063387095720860518362639571345387009532220649551119533128359547242298865259309696789587589486823498346254499663815999776069492951003544507826745790879611403788807343649596802614020528566277299324678265573280203794455243566558221403664025920048022384582993750578391338031239688955026779741538305812245250254522952107082553865306323623199903139941074925986022955535249253443947497213846364913458651025590551748924769607878819886876201224349020302158260443482739018151263204122170476338101344409005871322223412328161102609884759014865382270922054560266888426916977842152948928718797499726943263859413438473880271648880599922953699081999302433791738952177060834656306656774766590360590800691870159328183695789256676750214378132131882592658624769898514039578429242347695115942295242703558436705946384077557260755997340373423687074931460620879414204836685642596007900119455164047847941929237741917017465777237488109417311454289662514601302160855567791985828152654435028023581805440060783495650187977316060438455768043042954365009576454639667225402412013088015424979228362594780762315027314325583424686996760559788523235628782439509981825026471053111975134936935632000868451532643651583377344861973495495363905934978256431517385150380947697624030482674285150454124270335116140881957532658155631213497716817045955481348055900674654533148138669430644830894997649721090485791013429626837681279972119526303734987247535768674271310888053623733690069466244594435400098093318532982649261527276594984348607824922341558690761128879658735502859180282926194411534000502500555902292210307874649964214196864238344509752383133432252253990753806508865183331192111919963688002331763786334473738939244444939212278113720065794705813948925103371742055456285704806080455055574558492676387297954308509672866555469858510657172082719709758835052439923831073853652171472168588893319301775823855073430103720606242683778853463323997301089966522169256492419557636938521075725233594299742300021438923019340791341550464493714988194995576829451957333699313141183830591791197714475152619640283830599467827590411723817424733678813519732323674096806711109238014907453005968592884503554550326099852161381095939779081236243741900509635392032351249855336998629765658731283027300976854901067223442900599903631492335549075534164606383643913370027887231503062835343155320423005954277330947820685563019271457271313717494535907413445157584524917130962838527995397067901852778950645855198710797700271606928777637164370192979172942157105665745740805522992256976961532021728367479233314856684424964604016633236697175260616164139801019348898036944109659738687058288514571320990002666113826166106159207816144567958640353806010664276730118091864019622071397882983714835442909033711004619025853545484302715647120792244819162325490085804651417918943582014894160203368791944580071513904130350840048247533055906160261620589310750703213993001465071670342797551967458317627955642836344558324050588527454156870515313996998279917974475628679763375680772344141531235637710586104667415450121433394995033511219645914008309872085089621433918515408503569856302832503604468875485109489744329467682132070451173371523303584649001190161403999336647249803694735844326679439293299604122230905210116308346412488097678855680554552770602679385873975705965791474021028215159743690841666316923023720139018900925573209249352078144911921457533832402440561097989325487468860037685921706658914417099343933700618844520681352872954150519871225132044168982428640617846553699072420501474391878232223496845609481518918867005178336507074181897033618804565012692771229584949304046871445416058637174652067248909806872849846569528088063449555798734663274206617912425007092231406101741065322685269335499174392271017742062520758928831856671236987038714854398854908573647634514649500504753236415618404629363865790621973717498302980890280053918237271385766639773323247644085165364327735591519396681955899052530143272565441388270122144327405497520133631491791117311096978768158247159520981777732005100241896421518253624892665735849965344108984156920513274087135190174828340278682601321528328194728187563670655991599121050495040680569894924314327016732181202971684587705588335399283501846293343764325196767525929743130155161920747385567604596656183380288484575369569531979360814932498456731510081636390396086155698705776908086667528374086405164365170222240001423150018067278785491101320186016308757967206302653975158286477512865816994741941231488542980059226685750255886332478298840852383912031969887228698311575039040291007452090892128946015768216602793556521526854484170390933397088262712559755774087920253660155003057515572347385574448449782658808706529474544433655712898131489050151220962430816871450053852402331951439739839280607657182881375957497472342389491768552774721738815367119089836677382433619596396720705974546963537168213800603769562131920295838631302110797762377041060874385330493496657526150979672887330170726461027233407089489502888719267001008145208751606027742431553021088853962258597198789333814638713533350270447812099128130277843675666107284077559972687451878580898092134455597756544849041368881723516832655124670016326546700529543686657635229871922755386673149118449006080187321928590615139583806761265179441296896106437625227574516267308299142712529018211116050104060427216674873535149119698250652041435376655758115489319920629726436732048048637600497391394145377886526936606109655008170418812578565853504141266345202928189883357777872225664672459134636380982759828316705338557386250348659720378669723589975177311713264937309200817355606978874588241436194680029019695107022102559884888005658069811876918405992628177497567739184047535472903332540228080270968304370292966197481489344408861425144779277939934184839337026386980302024190614245294352987852517104432659523253872168724619737262065520621428711676166886330638678342801251600766973844926406012070871025376138608979175536686557791598078575685272189751407593672035054368324782866762002743215564263876950119673668030909514865230762023463405167467605077172091014367146482739535487142982727086700167706387258623323448448070790325086216307678125410403087639219181575481239781798645195222728001333582326831976625980150800288619988277667101634772126692028339108395121132634446263806610093833144549403794005310127669178056967578795588484738596010938475858429025287342059243300419984213602682422779204281927276141830275380598294179256034516674425404254347982471937699141140036489286190075814966279762848036805420829150508873765820625137169228179791258892675776162132074810257449618506769909417068071547683731675487429007433837315821975275331454063480704333377004194645183687293720777427843516470790055495143339616106362173960012773244812700088763444216824243612143112494407627494681075273872971094302623353432536541271688316675984119366807721251692074653121545194155975138911809501599764444378418436750903539347343234318398646634128291611837516810139274348806480170122645053903763308485306037061946698105849071122566283679620709994514427742863653677805885793427289833751805914130120852278192157160826238867549275838723516695584959133067831592881857999615443255646543264243122416036419097616171501444595361552454773842925138868102121239371846084554831649914863270833175225902725007629603457059376511145197699214440636500557280056052772232945856389642450761209605450638210157857836048468589011850900832404929159134481515986470277502087129393335652904592756292747853730146371324712101689297321622053881998897681293480323359080093616400375950331542049009475472580656946485324625880559166582417010411569946724471508434374198263739905062222082617138656452263255796006843186201180984393090687241887536157030917341573208130111889698777139727920256080995661015142648717936879962131087179823747170422161355739533675792088251687427372910627914922683025701667325182047816345140473993992269598315858653447416108614312358839515457206987985882398805840658971940312900511761222027964476948415573273074721590572232226760821658548399961627612027070294550989540583655109846376623171049472956610508078362635618688172704301553531602496146248747744081238129397814740006597540513211405204575009512875683074122074731842492646082796757279633874681830765367257925124046145775417821385594146114655481990023574409657532166125168916049310465967997529284179051936227030781866669522495366423251450453956668703547577087721289097438523444991704478570014264235752811266959457608927241694020710570940083287591429917146414750540945303946507785799712640275538348194087142891853927468050677956830404156892686708815204668558155057399182648455998958475621968496183977930812119140044524755666245863847953984438125718447983232916232740654159910632264603688746305155746388836946132119679725933698201487052740124776562709114776400129184514628760639781204655683439647316981699422563602531393860950506159173998789517053944665408314786399432123648414875906865004936766821121980807755076972834208679599939157884170787105390550368296407779675878193329406734282467201474023837856037426654321114251717735072068562299436442110692283025641750733949177649959389212024810672635878748349061722705338314087484677631956341824046246534069007453326679327858204515635058359155894633334978989286274255838875146843738400318090665675450120430064786676900174772430396314521767462175338231426010973399815338745638149946937007913605113283411782944598219421602919021611826692094410850231698528369957816412276294243523118335156555109045597441804540358204762402492419902732105164810949127779689365171425497887349890049098501869050241989261516865904699739989393390567014622416848144012061040165402565018365721042853955477705986169055722866199969071508487388397326867368118992938597857380065390643590590252343933210977821644527656538767623520067196506781846947874909217496261560038994859023399259059381284225589679316342331900545877943292349150514948534828119412195226108843946861439722258397482054228812007962627164402616570683232788945066687195571790706378173526036836652383018367612521662668374387905344735596311120636887007039981004223352994820033629309513557531561727462970872092634341899678593147693530525822109607328270727827120023901116451115638848660451772449349355514597883978841450303812431338156983532357646828301191780780003408289639850108812587531044816212067743566499674266563066401994824563935150411476818438879315376950615079657684440977159911257402854715216071683447122668732001426499453060321699767348289073616656557443103484032644006989247032299182225411144778591366131220132298864412406030042386216801962123392394697825897276393983038022286908259201367560470370475418213483772176582694909859086810374961625447737695617968312330988822019102087386656759657174881308014658046921941430523919231234221655770920654763765454448791609755712863908042344668233314400451451965863323398795557754933374456467845718974310668722732381643537823571914960565821699274165857396735504149929382700494387906328617446510726314591883560807356763224046172246430376990652982991330225189943135039985022480888750315235762689273193221071117083646268043542375773404603175534353814912476396562225112061045005116070764543324200665400862135182421890408184386438906094937419140235379563984927032624986340261331578489795307487204724130774124556772013552286766337673664423192891907172551123674830534071788962412292070188723191781301059061035237914024531930585059485274766223362152220915425652024575510524971783794564397406702073673808030393593169550617500294485753795109578199600280900488640029826886545629985616770463786606132284222180763678194006503343125889265359524655618169834752917831231187984952306137965386285374121039931615362097685008588262489984513692986268677038515383145326474610843605772665323243301286955154520008722955560642422461356502565075419837812160162215637809382094186445813318923699539418827060189165089132626036090595748037820478323615598698492600792338880392651930322605637371546914157075423685835739796166353566300689964029196401917144697245945462857839790935442253171232941269896651080749827500364004365715572231707647673225022650336709615719128392189297034429428605925075315337923065606529100759309748590481769331733292668010443209632291067050462178872580199194887028607409125438967002378213314951480255390239511940092060716623206658969951167864397443844460463899402201817113883342067127892227816932826803425142403971134654442139752897651885166870960582626723990425152704189219303731286435118710001224741278967484197952696659546629675202950115351935538977523517446582099443764834515812509017324287046781619477858326275724508700497834992676312876806609758727077465898203241357227152805432366115437345375528031785476152900878554402305044323808863518654332196465539477905314817682874655547433476829876462873366193834908418882056650521222740266266261113441402865529272661541431139209036276796574281944538811467590632369964284240418312120100530320291947775183631984670847996790298841339872441750942181686159230842081318801530160478897164988497599186255438445126272358129135765726754859900523706456400152973775106016356489530319237997418211475482637716180327071346359443604977993115690992646522989502760831590722493541903918879908047764416299342248338617732532707313831866351977864813006441988360773889528575721632652536815317120834239093687411684359745829103560980059581432240346182294953569194405968392178723454836842765979500933158270180853811850607616036883447361415652170934855879906519387332833404974906409160223813145823223930104924626330910935097802391442638476607818019366804355964081561948509034096238570917081189282265179255562702276023134908178042831127899091610592310109058134924517793012074908811292523355783641082010238986032120643290619782784968307911227390663432355884935309174366285450682632264597431203902743107634901600984231401561255912260342575964532869495439925848878843074745066100395416348094376794507360101141839301583979627526082786019189326237232324976235043522668192093682623992547673774267658919917864598125648885476694227270091952589080973689927136822503162420254958300722799084824759680094028909826190500424969309277699423258840653735520417016139221389109844391170947379802784084933222912520779349880843039399810053590676933066877813455823445725423370072669699616566349404827165852506712856588896430672308812275503762925347884198772536929091717790668746509796932102870861662656662118978410498661289745914671217037617706954048956074047550444298074880395742705125993794251359326440253309625927698859134113014980845852678184624027561169311612051160195184900862623568396708961242295152130145608008409479705702095408413901666477159756919402908224611704216073046671044040883821316784255156184661442968782279543129622636230563968410710413259573883666092709647921490002998979292252610129365258864063323277763712584201504306262931632190637143393850194493779319172989811481864614186438674246092449838529086530928764707885346716766697170926792741366200331477702245621535109910714136588350639935077416405095628830128529335765066823504496249072315541926076321541676634978441859432208645275102355526491000771828476689093332776369611811401888867104495820314454944902987396812285719973648210091006494194130050271494968168268202556708188803981630555179964535477730778059685694074238982862756632216708800598348822691482388955825812781725941642186312149875315043857225705927222291574156615110898286582478676579205024812833991156158548943326188757783204450327145707555689130334367626924645524567023872061781761710087898388506019372189026843169910860755205082623302038045701332605751051852591942832883306904980148193917765320330665439940673289454256645416833530411336018297194843772778911795614210097971104245278066741670900327291586630960413749678039090276255689349801389797536506781236400105921609670380715057329443889848826773999718422298710597887816016914948278863489302998720266989407780273622515795438282381340151393047624080862752258053347957578669436362436884526642936889510676719924430823898566977876147370601022118260614433700829676549391009321648384616035961100112894828627689887696887566116108557123910652467224422127457359237913756985962358414404943211100675559640879509092911191913824096906290432343601107700263396274520196684233395390058875742870632072574339425373925003401328620710188165663927446069419160868262182944254886553936533157116629784109036347026841542725020081617950798594279654754965910212285767462425619517438214706015386350102451315302336072924193545581260402209064830497008976509549796493506004613657535967806051208481749149239496771089918341700892728383545691733323846603611805126844505556334228965543249357440440777139619338206776626389364809874456582977086867811678061654743399446030004391862958138033643620895119489997272831372022858697311554558964347691769458802461259737263876439424812884100223801791423071316503934582210406973062980701786404050790579359193219706530782865064591175613778519016074854800614176237898426459107253354339036379449850977186976319033066057115604194075644734223894376454286540950326684713407110529216438647978255244149257638020162853125712192063165338495287440668378938518293397530262495691198789472573678148400021390715480450097780659930719461906130053503906426696617925456425604064384083762937694767589328702388714177036983724789366031837406664295591097291246191058474428172210789982866680129530419839615209855551889521583125285994511743253410254860101239733391317702300081077039416119293159329539851631943838712750722714713463068600732185732457602333991086314138529421422763566665324909484398740722690364058524378307696372099335072703274391129588687659545325427532181320684198318059691826422662132952377699022799222388182663718659139604500388416108237668632135401638763498745948239918761640930886223466805735179142249396872518126548655831820801274166678113632218311372201009214935805718084384115495904612822751079389225427039393449803603914245987302225946824438694649500077973672532937034056293983074876952605851251927439886343311918192520507609424399965820250998755352286896390646404149912275894903735888669231996641305125190200758894558796018717866539282927451887799840236753227185940217131867374258394256096237207125840925448369956254358003706861539238079799255916454144014494425746686401189119284195287066179506299894329594986239681225100006324070419817547242277700721332779778765986977316247548841785555748619690441444135873637841941372871002753302592951184777816551454925783238070958892843759345007661339665511726449619948500854641821562005430375911406231161984093945873487137907310653624330654065991065941423057767758276694881862818513261457966416131838307804892654368493728322540050010260118228914740411987269529494208491534634543904988204492958178379712553662316192692018889571312102004101435400152212486692759234012581284920426252459045914373063070154454960469880209459781810375284189410199064450740819960187929790424189012392172707674746067235320550551792323806648138485035037655974457263067540930728981042629983113748325667241014740235857482803831881554888376016239622355020569066824265099852044869501869032744455643492059842828842717486492710571716617022770214208645050076469439505570404059102484920079741467993910633620963643762861708969518107369755852195095366800382527342252246717685940369149214280078657643062269821312906870905267429441825762702537204180459361494325197404981068808979750431869976865080078774135345095263193300545218770910172010965924438041239827352374511066639084463135407255303362750381171376874816825164298491368354371749707737537863695874458190874018679097793796397171750564866082027885662114958294241874830516642863702965030040952575409138677511257423074948973809349028751832120530218860701297203303530512520772322993122501553195776749387150108195957561434591670504480729425952269963565739514906361148089892919781475835092408750230151035394498181068446898866328903961235977044376118104045772811834345736088034912538723033996557300864150130975723592914213810464852346632853667916456045126099840586243742320899340003747238258825101050266188346661946489472968873248577505846829741733623012141787252259468755045127630306837781651609486291190920893812794417900463178006089815138704914015911190374636619832914687076504382894307050524249409351787422760733623434592495224168904451910107116701555927490990468250467820644494615618116269538552939012416397903980073194860138861396758389309197161672608164372842026247416525658546076422519084973306199839774844835797908941261645801210711843551444512747638257956955978236728575538686707210069483983192139133263257846292481693070532921573862797932452681143799501494071361896861984193954355096485058681888041928668318266873053467839952761637241748420709154228311749370564477488446874822878540023299973158586257256438085955908803167223442506423456156901526625739502073284421416845588593147392105885732282437533323599993114152050799966639198056527290072291781399781726568211075850196198143012574218955574422327794893872661951412333231703833584411653063450998858318883994748145006091490739375588355623935179958227939279011394434639486612209803706074062794034394707842290402652338708234612871634315748936793108058780515790170460603285555654284293953012357526722879511925460777835555459969872089330097517472006976513673198776834617755329794126858570518952683812576742421154492799158405982705746987474214953638873006678533844533517029014922790074653551303261922018560127141878806178229184378583108664078187290045712184466878417171073413121247938471863863315016660720150361247205656183981810135148230729437367030522255888521371311767972499737953435492174394236251769087811635975433452308578812785160629807209554404843362250206666051277383180264243935724610690712105477394505905570236890441094792437381007429120946074289706071148380317344670432446771111371870766297397253282282607876678867485158614444234615652196111228972753772956991589890714281368142662616731235291477255664988556887837608573252116780765874013677922010617874510820427563448512741608755783512008567621287858537294459647392528493152905963380852363913794298303143969262628705362802141027182226449668095936509526365180458442832991197213363238395750307552584037541249160023381201076237066434088763640046121048305755666026923828001103123146186420252975906100827678403888419484502809134782041865896572313895699149051092028952692554048150628987767401503478322206678437882556546786888406421296946960212318907082309498728917058188924652597415613164470538622263217146761880277070760318825667961150609563323916324208962092917495513107406281284867613755185993867577782204168126353059848172350344647738016539206838163449327981222516952284314149282648348611907189702513367069289483512184382473871353073807298635540743550122325424535291222956819959180023437121257554557389531838866137255929904511316009952619981867688922822097697444169740302184006018850507353292748385791289630776594871824100551484511045365853631399695217103135529551775252656310503025192600087108441514318393813486179612518360684686800651817091505147962068559389713053304812268083345752802771862610270180956990050125485433006679144451455978941645169962634718495866875978704529033786738497288643492843262576151383692222963502723204493947631317215577273487195176911073456142849534875570260456916911832820653536836148751512654261903529955668111844810052570601326447446598659358405004585958547110271108297687463656100832939161271508070031393362852025853426791356196087183649577753755378387998731224049530422514631523192128344555884316674315286723972151645427383246339966087477354759959872370037908592556741238480122205216738110496205921814920583407947013248062759830374589140525155602144408962486564243265333143266530375652413305527206013449234867556460427657335981457037072568348769020036008810178204913658634603209972925416926790336074646199749195183780448018278997163218033234336202675502873689575401507585603878170933277826981020072058147268487458718935438912992530524497758350313716823914724692357538912901871362046457801284050929553257394144526211304135765637510489175514124965140231981127158133063172984416443692932967088143694235983746041051750492511060869623691407816021297923343528228455493952192278143198464882131517167235191378434125348422364549623557555167251117249362469039788853149854393579086388196126584477209584328361498164896854244013413517281532833084748119483181705689995756433973336606415470770500714100589809567830716711477437006733597705899973914164796115346909230690987695703005248917396819731371469136469833627093406430719834254029189023378361494757128339965994474558179975377324422207828101361520461858793990422492980932184674818657197020843941114411741146221077784512045951354973728415700093651975940069263807522638830037709418517854403327254823355221606227062761382171372580474965653168924206967180831509153405224816989710338416578061062922023187483412862397356985472856942261925660555189907789457555654392389741752494688152995327617044735625775070575787344490205344724601665481795896823155137041531870865478019442363611329329150078755245866001430555048705744094904464966142524142512592125617123237986197264042233302034175400035297635094029805853601765133836759374070884091318663487700612898397201070390471546980167186486572372108860998345439949988095056711586332383946039253486984188484766058054071049250975454819455673913371403664249017341377460642011931910504902253646514470168429030001349281236271062423047632433519349566621465273466515155254093473112080471946991947839723775660317931505327446387569000160868275301392029321013869661858445488409257745633952354556496710416358351574641190281977311920449557793652898281378062934872038906107708441526526516433291034399748811906068712557030956968591557255034377002750782566902780975697916059800912647382631809108539392443414030036462472263191257624522592291135495993696392545065236464636003174887849917100666709234696069826333150578350408660258547914528246384032579205265854865000871305001719281067439478848528935689112309922632029330690501409556431258068752909432549040213247095282953008431269662328303398282783793227758042342623855697149626663958284620118639891897511216923443214596480276672449740398597873944743741007188415137698514252785264900122292510037653891514564427016039327369316360616410026936761343215196452432752968865949372443480648693819858299661946250526006020178774054003677464624990757120709767124968493795347065858783734171804964047487579302485989696564259877372838230528285495139866483885421986129905870108238348655226491671905523841040048223047904416644462303147317153060855296265448560776742216093935490973819232738640943942480940265457867319332868871297126594836129328735114274451844352080185220261843190047475902106402017475691774926352784012166417231386166918840047339898812213337316269529335778031018545524740438178555717589662728538738054310912195205107390238871406813219829202999290495218741517269856778646318298860780360451165539391097236781060815683691992235978154862028500282515599485334166062138183075434458598297212181491520850783842436314232405874101164953231647987309903005147548567939147989521267578857371762789429371751265547871729034314690911702050784262011903399909909225339812008890159908558230424162528216444416837637193129349520959748872009499952032155578335230977153020959065042179735686036908996002806477590574989578054781774196753167329459643659763678167630048278069452541966261886912577584644788385727803630299895135894605500298738057739703919111555640971908343549515895247978486176250090071777491368038129432381366589078371162853065181687572858266650014946658613701781451653106932131241346210769901157139701907836357603120061360085171197237506375134383522085816648832280813226060014459737592090322114990746933269278561007846098972722095638270196584025049820133311312181434582271755532905526627474011219795586351452275662891265153733140566346428756702517188621009045683128383180389511808768096556530630174442742393852584412396645740654178304342464948145103682295819406315786722652435266202513447822289432930172962607673776987298485905866380376326169855820271909520408092429473256375888866470764497776644181021624403975202764349780170094301764961295162875739051668003992947929586251535066772887186225328738882926928905602000027267849797563813753537436814792343225478894271884050692883061121619060491780699789128571886630347882977607596968962738359017832325359743301493970738838306366632708614968521371797842199653919950790295403510295345209396855188032466575515484834347404405119446936725588685418386535118293117183730879041770493823569345251736367145876854301956544493503593570440906705824047684095184933217167387804188937684383208324357243096523702884273857158535108744628746062442380538865201239525487226144950410616853767949489447838643478418585633455275308860192689182858063668406239973890699424202456379216143361130594296229188319164842583614133432164575327859698838920368079532004005222328788867579526930763265391749264215594577264137059534077839142844836503715995580800241583689926857312549521388110896588906250305641345556779281666367098758201793006093892705599594727766735628893425107606612832188082466321612718718639578916094948006723063732340716253476685241412041789026943202988138041861421973724608649926273110037571865304116871981660598758398056404623677897240001162267758081472121601668420607877463697752611799840667133374863906474988337743432769061618173173202746837794874392884052343074025096544385476043649382372246585276107663156557560724160397361150946829827417932285880030667641145592261071628314328862711521574760762776127829297029974636359084575791244247931653626854268569283190324922243073540207204567828216512153622590301895504591610920546109836542515706736112064821786554364193973421468753443975114274571399143818398677669381208220406872612430656004155869019680558899434063357864437218860990872704731403467720721500064029372156552451366098841409165427128784612898737933128557415521874713602932558055049135591716202100939743047363297187937884050553947686462313906968098028246067686388300646660992586919519967570728206829629518610474228518169233711225371251686231386174669833107483795653984433591746387463841990346719949401458525120566806812595868797988611533538118915884571230562360427661334952150747953685895916704399514258163767167662675891215303258529369547859792813663546117619599918147921333877282031006686369534122971600146748347317297795565980556111309116474551847231005448303703925160706293633686343604017343271061193015435134596988167264737961801724607036002699028435849964501047233728151644132165286193914001398016963356450567567091745494854813420619180221386844284818308407951989111771332720650104592735352924385207573005692429239614810042647775266886363598186807793376100717822104750935113227378066556607622232466478027674391448319471640153723769237308947900097541477197152487961372270222107996655919965624692003934383488838198540818315552610137268768428397271799396229231734554734662138095084560231904061995025842295827739223129868697587216096121977793368105539018505565812582885249850002671920551571894876207384526079841960843407503390278965056826208758371924984020092663303535433507590674002620752151297957581892079634431265039733498696846953521804758900950433803755031044117598754635894397171657678588297762232442054507121820254567636797818253783421934245213582283315793720253836975775248336499856703825701964656536979602735373999239584890866496112643529555721196741515276971793378389178970585297673506409167251488628224677947180908125988456088511242776396423592905603746800546529146398212464106780169705785755834875430908633162740500815102990299759274837350056051705360841966814634620539034275087357699844111150416815237005813847289191530272187329667606521469787258109668198625237727987879730162483497144768134767787624236392931647168619529207914155966726053466142905490366465323661808317275943882834931948467142189585138426620172892520266209897207795268571701968850984342756854932391852760079060098511289705165222332059401485206308038196379413817331174922468234032961719861568996861378806824349722411554654765164859025157494225764511690679044649637341341267066214982144828143187648261770882410988827098298030116807200215702446600301461949894972725489744872176950379070475019270010460243811521706526965724687875052633274902492500767167882756818382073932947092954395408901037415958804364464815601019077207052173439648621007743671881667013994116615869355000663012718547387106161448753861641214462421528619510318963981283841685045552572441019909472158307767277660175049593003771575465076468431828936745365837973377627859427853676179569594057600023037319168797609389623850566378211536412256328783457593847538283884780225736877096005840843124445067664036606202080281306764125172986621739994787520683760452490970748793823246119443859394916226804820079752682728614058847102074549224646504972012351826762581215079858400892308822533760952556264931840527236843300632926097895990234799617960906478000345565855449074435704413392871961899333810649238326978025984815752125573961300928450294834245202602624775429869121268418458463908201471427062963166051976876103470850697517835557293065668744466480910764293416504010981532576789711403207430558367849333677960245268776280283753062419566501236806916171532291584137379051225419006882916861063940056878337574435928584935994352456836393518481508431302456616213660884839299382537575780271515144057490448418318344282030479475965933961774058870749521763595974176985050514061455134427507379570709000700075241114150422464869488585554767849545255275166122886792614689429551623839057029244400968518385483512270227017811770707528762329211637502066826690615286793192788775178508252562063981216551326843598448635222360625647534639712601569756162184339759178385435999547616036012025646251601202371640148357160922332523578389442427661462872366392693406496862740203994003222716377953927654131370891940603021793625412782892041092413584380965454570187848831121555761783332015805530196911154501738437839716072515564886743573484315639761385826515491763623446443621793579778468965555676879272879277211055818163620330827240076794252431004227541768840104927689640505381385061497114936099333053057110711942272487562150136658888637084491126174499680510760967503651236209126475255827195427123588954329042310122016853609457355238589599460611576212419549049979573339096732585382217044720097092065677482208737298842268784991328550960833155662744427703511393150259771789718478420003354658948953872609220963488480151431211476156535863316554844030736826916218056171105868424709436808341634322240464463257161152113235638043623858963349754947221852170124810783764370353048010346722011751040596440795254478904002736369540433178979126116067959488435356393974360645360215406770132335518842695498132008845678815971193585419160985748781113284612939635031048589481013055084578650550670880411877876217571036680119020395640557134411677626819986450996432699036302707645992508570931177822874021937170916132118160154322060167326901416389178490282604332338333715104432031379619818506920958423687649865945464538093532574206363704576579987203159776409337663929735438116252462689458235169348737074672528341798583206921040501759297319665055236866930920989311461671514600963714635519264635096517611220895464131042531950117799751923281729703198423602490082946561431702635590251871957999641997110455796015293327001337133163457119409343199570059896523839017218458259590261582148423820144429672939317432763067444436654096365263491557330918531796681063557066912578247644186841357623255272691436987794664743613490562787704162658086672804430134007774183765037508240316467830265568262025112331508023644876113728913764336134751192612209747090068450146444284622061623016764294701836410403185934289979235966659254790442983671857184616870579484571915225576130521244355710209253705826357246365222647155037595692252854113702465056465738334827270633986377229184200669532602296116683706964344054545396960188264474232014431614743024165783432435506191499032644099307489156161384175964873505803148588966938261059039249207112482276112397973039399269241734670147336354186512096634058988297211127645531692226287448407652272623903639373228847266659149319049341124883693097652663500303984421643969130344034333716394913400205227624789624909530465217877435815375447044539297745568774306511147695061771428407660288015195283222643178289988065849783466365752183163425558729672543407048207170690010931175248443185488679694160870438584633526674568269873130461779571104058921743020218611158872673607783075770125990691122722140785553780723556031007576896039684432510804929271541767425578181811342532312741111564201050017398789967169381017156430785247923954908239332028426278944081803970005531756481134145774128621230089383830610357837954414347398977946742744202062466372135664126344579140944674918235212741338307914054373395018774097979030219062006550659184510230741677436569444751663879440673148294997924299795518884353094878045413448432853241126852800580411850683396146061572434584441199643620685410671035127242571126859229630851906593765829509188956949995469486136318489250627165641026973107777470774777973382439810895933320573073628497136674828472960427889242204730847287179985542855430905577494477323167793367713898009244401273254381366945147105766454980490107420431958743507085589016326614156207186801639696035669805481380500331713347776881098361304634646365870250440411667630450148919465355639248582413769385994108793745875426044877491358275296276856481339934525153505166724531982494862930034318092359849117392586430551828568594589962122789882342852886560734291479578606919860352547655836372899899762126002617025860484122742568886791053700818802643971984913181915117941467801989358566865173935151616793903573848672983127465319429149513052658279116888326648032401438492896388448676355489226714122092955063587148348490413188243709784053972009953035325476986948243429619469245301809937643009583463449373708883608952181145834371957154300749174970545188268833993425647627848987770079616551984040763409706994647904801725347728703964780063145026257851481298420343546012631344369782405786115179522046449922904235103875645254592692845712262292898699654378318625638899580777797857667954223624449241701803344618119273990549914448718632861866587962142461839234873519880933031738246055913111553561080018275711917124043399694093325091591356594857836144426703321712646337524577525762242231453203086924077180392879020195921206773885813020009921570449408898635941343283461950176862208772619454357662704697287760493437921402535683968017671909235750736689351787111582784998049253940928342460335095075534970105775356389076890450322189342214340358597458217546460253837781086754123859523648884179960314266237563625798490182959051051943717983323047339746264076428398922337560845817886429155989194203718673424863860080491241380838953505191457194729786894432513092258230316938981407669658231469550096718257042921953608274911250344624574419261391219430240911770719789190570937959323632544783950667132100132344519646674115223492727561338531548241677669948884872950291876122527898090175915009620952121179933039688527769790485807970373038021828135727420689112642190074062832116892359332002348012611262639755744866262563062056127402710956686444560946544808208324703066935119846440369053279604019972653697304792776697881170371885005759991301144795856049995692591590609159290503426732218428064645504228126324898068466401866314686101232046371515719410482260259582904449575671020536674210292091038607622569750868927650439659599090781995391887481080958636672869456356392750447917350635265565079070350612354098955584868633778064768218249592122874548630704619660726789282974650213414731126197282758775669300240536525767052156144137585289777434443411318867985296415650370729148878244900447525454067168274046206176998518237389080445036894431381834399672951132694463090761694155962096008142824151786725176648439564393947344049740294826132917156834674901256218765954229134288138984111801424085492666482318140554244113886235609739155917256667203529970025348506762130303033849142323887195284765637408538595023658107067053631444577571706715319827119206587625466060345279850585857713533031163564242261673847815905711520469864748938871125373011106427603336475893818118548857939999952223639365918158325890001222080032959578485405556603217378318957032313332048621076483110978611583917621512263885134919283553423564607927910531489069876323310535203535079384181733280767858380848890391999006971278307912764000460169214096677098007322576628946564048990907610835134642317173508303188806357077280094605723551333095564736499930079918037558173581954181321679647140823067230857866711863185583214025666593891475348218035709881953823948219882050631560175457820932293649649288673909424149481570858661166277511110735217313341536082382200772574524246796908993986826343110901613528961503105901223704172600040295668510272974758966947567025483581343897322940382731367726120767471857684736947767421304261888182904322696143073469754882073903564963059566401754814288283563638611586346345577756968602220860205441563105731449449167142050450402213583165342597633591299044803254579221675120583087451693794851507897340151861234273412900935621939893481261078955270441931029836737082840562856354042465766071996286972359388686055679927837324222151055342448521067813836059602319435973638207410083098827725679479389100833686770127104853139713567979466074656690842590535227730375284396319551782822698515476826974487951701187138836783551934954569573064812483882654762784234864004074479807030719889308642858397868040859382699908031333875267104875013095485471226860054655435589680706883791620729110040129859424985559174768736592502247153575250211190758056608412585551391351529838097082136787495306478786519683276927922919151093324851065679103759600182614103959265514389068855109320032413277905453423919745200771272341882982647264882257127695635804928528623394830331843388186360563145915133708068686133807685797768983765979135064062593679336129090028726637776693717059071767568844987810023774238869726630716727279103203757639697938463871416734774142054178635788135748900440918918428980103539706464118187144371644580509109987606717783472818927725550146254342109399340231877666145568750677541263040797354064244811605513330901073907967978033629868181331853916808062675835823412537911128236993568174628414193622715300773877098635580511777979758323285997248072381746355295409737353069000432330759750571317734995626286785202386020605649161346475117525977970385116445519209418778104468126511619259833500837259200256919520980661034584688380095258225582468551496908110656952275995896289700552355785881925247098117325380001653452609477710697002144410582817582193530980692742237910885247291482989967430677239028841750188216251147204891766205515529900397634328460804625807779805459381097184198926844621122691854492125216779029724894775516564832391713858416628804721644781021226669777904460493456668560645319959028967706364755680791030481541203993513599997810206477959419132239485105672627700039704899896572175268912135504204954842293317034642895660556153240165851995544484890133152096503825339695845638534373388884075152335736992201468237691700163096315797113117990671776154099796052043547820002874468418896110782139223916476739359402590710733890805935988968896884099685190550787408468312446520365178860986713705392007294513394086352602349990812521476655702298663009167622467844502392164877698915345268648846357846856937647131586408733125498377336601306548010586070155863061188489612602872271947641825001550615520322281912151210468910033815220547799314024187238665242846766130017554312537475020915070317992938830184717188548562217633459605665941024887790153683797753945972142807723450648885936729417573537749213099403413581555170222533541378092098953446945933729732352280183669811240560478300647779844504368028848148634205917890646186074475230876008740505628461239302456902612300076136214115054774239674668131741225686597430614502035100259400042408774543395378533644168457835938853667981286173124963058950771322036890576076954466148380976163873391805594763625162071943829858713033866250061961627779234395410140674094765281680797184350746718744690874944158739905999735564194121613806485864617920450641948990767571186473965630065059469873321933049911456446852787611018851346980051257846239726494714767090004356813421132889252423497902513936301281606881549789622029927790803708282360135309964341710773119874072359682498085209693946528836402854686804281918862244044538048374892651676399459458798766554052896483903084900038360852741466423446750025700123784370667993428016429401543056086546992330703278381711744137281249957276949080408276520130108176568292410220050258608421376514950122710139341083102827770640846957837975721226432036367679131606492127188508315583729992071206584147193272777779762942854116204654167690230487761050528221415710530923295655855092428035432818060017789730567459407327158403898408938655981047655658094134147746746565303027754115033904320351748588801163166476611617705076577998222707520029002054941502405003480402647637332907609246457830187721491841592848128119567692372263064570748936406392719353662357124244320359626609168775725816190252383167824791662664947364853335868817044268817359843617567330083600050823301363636750402619299821490567443291706843163630361016446446640633789376075300467107288820897190080906717086740229673672933663876717630814674070629916370368429511139725447922683407255107112302260310470156145768017546680259708713993189824569606147150018667378539774443388058574160072119900095967554796298277617790016275595777419480256657236901707721573962791914940964822621779132683451874698885655619656397707404592559247536271915216272659696254248537244115646942239188357369272460079119494157762802267426347235400702683802991015529209649576396188556588000339604194761817177985293772444311346020007774047276527006113895324131558190870680784102733547323665443269965045915977353572979422083933993315992889932790818828316121585675447358305656027052194120523570778937842196661079780184739048122628942915745034421040394667576136752577235480131629602162160986472087440711028476614643191802289572147201929675596632849683780874276247459445939875840272356627592477907158448023260393406368222219903693603163743584288972483590733213291427803895975037433811899815016378358423165304655895145734421831894735986467987019596163110211971024494732778017298286892772409605653299330281000524929582115677122700127234116408157783097797739313508223071504626060910448827209728424429204928658419179359165684964752283846245717158666774112218008403902301990091688869949472933554593904302165333261082682823639319748287533354115647338680392554719894917990541733070487535015199937073867026841910045982230713987133323163333123622650225038601621345746835502346071210945788276768856801443234350316621890035346958308559791848593643217493440602470257191263146775183063652482805859351984308578232576618124384534867615142901902709870876923323201000181783763080015457447518828618336793171399128388298897381732906863041617832309171952298799201901057332178560373367866088750559757361879654901058281211609173048224502669234883529361393571248931477215888211691239363943253489904062869856598649010631896036819928492137722930766610292200722736924180998396573453613340994904053310714013440190478561159019385271922558299059942791660421939713048147974664124822222683139056641949848764964870257830238019363732475575180701778408732466480559493187793440456221130812566075054488760370492140827290878519136718685642379509809242013580081146872428979115862791964638548688059338863616291736389783764237339538395200702195927162864933818666262097381726899853729796874639077255891479358066731997737134385086684138641104209013280370270636478657254507081765528145636217550100210339260411922537518645517055237322603863201706944551135159451397131374527765385132368929205181491218702020948691797169224252240847638515536421525487922278865982405810483413127560174140254757590213962581187897488137742609775073283478151238683107834678701382714760345218824990906205336549651730219855516744397321161398955298216049682900448026307865352325012359031826303456569497862326739706262387278106779238561338087109607382303052814743998295065896557734421914261946152928925514627574716976125101960127425040181964712890997751548945627627078789396842775295951551298360065249143624995606108797155666233672906491910462350507715106676470009699762228244495751767616259009548225404651040921232304555240247876833711210187028903816760405857997526382640169460561206767750507620511025332485183451709939438165669862634341501170194759308164728473352880601125605614670475086292518430852454099420567626375442606791793620386733826556582235985731131684359556864469990421868339923118295801178528410812484326185866545175041951544408592994510958642995816590515174121298422101957894724660901162455636694891304611976580859013700228048834283137341389723420910271754465180954387327413545054212863283551799982099356776328794614909056843588361213510705624436817935038406040035992706396663305814059776279652128984230523704730274449119943721019353297793941309833103023847260247634518519391721125737667182428512831626011811636811062978089338586832054367233642506015492387072672846414118893355521841226077846531794816225226582668892642562185041044477707453476647725338029485620957155226323009768082243113354301179480626574288316279760978223149544674681458191178116026435217495258663132865829088297172598310775331804000983272388506356390972117689057371151356757316469158536200195754283054745673678255419139878549866979482489301260926147495208809144703685986624627819945748110841683516804652504105573824543082894261797898676766830528277128362489757639587561033787116880294432792312248706762931758862735468179950780015584107116975043720224988464092860693182242241314118930911258523056292976800524651523070852121443593324143319454593347370164086772280496941120543400865883248206840357398478773186587824298943526760106456991116454197329818590591327003591853752722975064065199414182277736222393698941224032517057712230029130980880787526741208692604932344731422474596514012374585868667295579661896528031747915041040957531381574524013279720444241797964501061927707027999305424474010105785231476795642703940127112125509636929370971307941990354153643290748919301391953245404993224300989551549577449287242971350625436055650015361644594820888575428702260300876953865504231296176950946757529096657909357765668620684759096020355116130662527663512530201962153124287062010735360836642778224922881217613078098887035997181611084689051094310634137763858714468761138230755620546067406473646107390998960796510967361688299768544528867511542872250791108428700677043994894683970987742362005141377972785240424026268074104267024025402220928726048517712949319078523396012912106615884048107755603039303700396408919404864549343573796579854218771439319833382868852188804337936607493924409845106336205454316780652821258370825280352579270334468451448444859355081654151837588297946016999124623043090911502278364116678243067056804297143827427530837594588809369617226038463843245450554754346429244257487716646163200548610320338600512224628024194359461547688346921311040875604630082677327572132088453112427871722175032603328518637314148146294135231540731328219589867687785385050346213762331752973903172504043927961847022389323755283699473576194509011553299497404294077986200263378573041240433416800321339367994363386754935151058945948096407154945591233490909413952715270600353661284524639493415988359603540479559800880229788281662225378280119067593458725470152584389734313434278637132056266407306784038194966800646715354030187886138301991121249453437306495550042966043524758404182648902244318260672352096721579880683518410454618658887205212904720263112346453967741659250772364163966105563376654981675928512311721607351604991690024785673316899670756598239760023695800968387055654208475964152990331220710567112391122938452471157893501930552994266646422678048829088524734259720607557774313916788772232379800780857289585741246681283376097927154120891602938412215620801352308948405711348528154090667430473796020984522303362734943220946029162006067612251517897817006689638470679474944968292893186544078408385981493464547032902151233699959943134654521728083917638181735005680585982431318260359629461499480247660550844835659644215866573778727780782673132060094129771300776917132107450795398490812301925904674760968374701530208438336996052504420863525612678531606807191128153272680085338960132121196810990298538268188410120999231547679137892952100153603020261592359009533365576963123158533186374574665823137088217695952334176466677543387081349295898534421377691882202655722603539150825012611415107743561033759880735491806434437040251771748645395811916167443611256643177499742141468534590907340787053290686119147663869298515861266801441332765255132513922595560600482920039925322637314453772625337869446813588616458480944779064884130059682917947272012788718047253269139924150091386700223784815173840373615149149783783415866230151067060792142325006070419001046228255676474148625789619071044881254269581441502515687610642786458158245842462471561990619949506062821801589715180915336020681755592202972909529754454466551073805722583175713906931058401317961759313558092045186061358588096173235268471263094001371434485022662440933491669149612245823633462958846989428002838075342718934233951185175184478276639453441032109199701361227084447588144926100159306869170488408211246255662524782369187199247940793785031885509690159386770012827551493428801242594893709514651507969474274959560190532061804847682199370304936166583271898173567798827858618069099659941464596083563430790748296174005304954605745696255027175597264175076925934885427476304006987588534778582890625895229951826888576157105315288682790181386049421209001714075227688482340479370351591745478899850566454137372414839694237591078247864340064766163908866679870896459567428213717244053984429686453956116406800195373001821952003700156904547665841863294156777702611444605940208816075295029581905952076836264611589502566088461480308939015008414854764363056874977121519221635504580041865775219862671100027138984264589945940390947500196586142958258553473655721354546604921043450431588637884123848378431421602101475939864612394047313832834381935251236984922326936127726890095542399271338572688735157587113925038201432889175500889036571561548753982141230661103055209082638076010419995635914970910269512014142155486544756562862754481606291479020263752513202367036242101209539169556817542262323773716553985732781191090378096117363463498926068479252321892674341404165643378276490974235028136109705634417499522682561043029469401086147500837432907199573033418460374021526781253328022287154834140093121240828065760188886049123563859989551091871913966778248602670498438218953982725489002308515411469742516223524590482759676527577942343823531124570231534311284584416931941631013660807938568742953876222639873133182655285321514202463182914753326647653674057953216421544098722724827624982644246851106061739345887845072348007068287131780365056515439097367412161053184150810367551152447127340997866299038655534890519786638550829966093883600084762594950419042787448449413687283594257144917164656967573689349152208686445858249016105104792815872680245003883790871820981794402026606502161391022523297031828949868409966826277379095753952485545926761937128494207153316408976785854348696595164490605981002009107727711501000986389780650751625947143137347881762282347994607330319220848520939522687692047812378504898866826269270448049754686564406529658254119920996045538892995708791703406774120714801499988078345843111899498080289182908856849321055052776577160156241533053524229985655415362200096060368429470827191180559783899571225294628079033630855856424222922260081169363845351140079890916775674380144129648244375533291109289464982523039129486060418720658883100835712124258241416196079678432132814678127630202552091918506171403298707821771949553451161143174435625937476638052794532668118685075455970847164437975818911778801864910712940352331459763208466396934953682910171554656577114237451140309001662639064534689837152862810632582478177732038485483900337377819790737492653760558471582044003138918998323792802453381957835595357027705453317205179496279058971477351261432691665630158980504277418016444706144587866514295055012921846348996979261207709075474661566776384501611716504030199804324558778117590274576145394665584808581185929981160585582915623279694982661554956935028743562291947126882566361276313818577874662355999840705934516487943041910834772316107804429152507195689105025124338792520457449017623891767897177512932012189351182743836161910807955116656276015007142115591760185350959439237578552445057596377738982241617139028597885111781512829082858679301164430490556414164820939382793576804188384213308571623054994460420908215829198139782981768640529681785873774971183833202391247189784830198727364796696034330762915743650326224905904124125209551726738317741448396621072503123033778840702821769057389744085694281879289135434854632440174194602530821585437513291402932019608056175359501082771276797656944008091620919761780216737449524532510711727504071174513580425785834202366141465448397026687295947981608736268593898639246329069454559372659353112947850616533717063414462527647490351037357992184055330327001234217919903485421467485840581989040409665935048598107375542848926600503643606256241700405045210654712500764400763473736602964235804902876836288806756903699895332059271584295873173787431742048450314629930729957716012244958333677090761767511600369272629374949198593840201237963803472096116873739747531262262545326325292537995570264668073641053237988407421123584545854100987264058797251720501688129706070684122947050201381783334042476305641049849798188969670210499182012610767039722750247047435289425158677335783173671779307928160832800148422805920764397700574031198950408742857960165048353190628183706413342000730022803460270589380749295233021214407319775119107255753297682303945640422792133192979072371108612153435694069813935055982384714910606533033028337549223312120377095011685679306677428397685134707260209988590716826769053550275056145059317066803569399435418081038971705906037343894866301805458477279424493587344885935618626270006177696204176139899825950521320700278880410307239763644233079332818741827536075116344997046186224678276011634930629631770587822914616609266404255071564193131629356542320793719167646035939655771744434898470545624916951372774069470588667033121336687853572127332843241694280958252570990933040517238970735739910852809261354824659605959594020230415346457865251991788535192236347619121793895285731416907525517886272727502832205897906285700683587104789942140205822572569755256803997850147751126940075786807369250574834243472339078946113193463867010573122153996059103791647176800059999905487004033719712684115455017029402846300299291210311629147108879646674898449223091113036213384646823451414111448804557341947561203821720678233499756622048002173336917927589778955212850981176506144662582257092453630120750663363827420724050848655710575620903013429275718513978488947974046589574407167988898947689146726458945041429242024099565412931501247897041243504688131238043298314401813626036938069025790930790399822930588860725932241368032926425419515866163146763543335598736882438144341347909910034937523246091406940130599938987226380371108083599417462035798724729214636479912840410311462173549455646820420845942177642863221545816271964788745719072264252513438520327137125334795985484229881860096912210582821296070516665491703175633700566058695880425652796552075823153587257516977015047844625002705127913585196204139518170465470784980658408105049310948047688372252059570278952672318975785798067161405984456401672229700428242726562946162463974343177281333922650763444426156844334029024744847064683932539694588272620783070493189562987056113569353614591111405223972624798270149246519913967116298160973900291267724275742086556800720785034821461129681577383505387635912625602483209784875282909234511572990613000870081897280107031598551223680878913928123300678257997926922503445501717051594211380031978418478408645597938417829825427235866528954912662382276402307381750557930187184730091967707530801799840999852586836623619736178620828758083642288128043624138517392563587839515493670425542478942419610181700356511248722536406278901848723693489679836840174647766580809285845592787098157286895123058060429040885883718055875364131277643204569747215851951447736770006148484600315127540058321217369924664856405640941325598152336257949849061049899673921225968641264784331690585645495266868011925578020196258843114394059575064133839121532763337299455056784363238411019730777415722809764337600518619122801844153734261996212409202421793577989727676662702307783505652042012284061358693363301863601134940121590349979359376164510154052465612572643887500181037427860817509166831588393441176795128322632526438230438052216786041447075468201035925555255331898504739002326198650339647609859964596554199740401296602319019395427928702630582501030220224584942667204240206760152554228306834162087189633268405768332647126428861618326027284800056527734638879517969577892877607124250936450350766056461616980830853117127279945755432912599100316812912182922407598148506646629117071384165669136754527756937126986092021550979756622647321519364445112336930601019183538335928652295857128032491024335684244137589142080753087008458025895281699337333425446237153780655243771115340946255429207882169408500622945840591385315222695265797586720178530801874367125584290816909489501490401349767590025145992598251760640057563875351222580627770785409209310676169002991934232726344471375849882147095928589253870524989203001406472489483846736253598713997735426209479734594153324200484802977986854782582722207642451042656934174699827056714569789894401798971565671027265280449630802329436698404409445596026957411404974150801601734548435906216332627848418974819794171747968101249301298029547811458086397878005741419998703338801664836589355029305555855121394399191820936797718448723636254219250776525674949119357808183652693669319677039834103636257165745321592692367540297699030030862561071368293186985232874341826012928582091047430986276375158472622967599310341406707860934596183006189694770624348391957758839243160954110189948660425560574793438733655469919292485672788466588582684298006298854848856118447496684247990617917391209753563226253387083629147692229887247544630785617372817689609523101120674485927687383286109444579468296458768899798485375638917157778156121512942469603085781861659790875237249280904456721003428961940954680956887149937628577936024062196676097280890405319323648705971304961798192854296385584882111959990723078966513637279972158614917491826033688402081703555792785141742722301709564946911932782070220460573929769840680917747940131729616826593440736097797671651773060630306760360128732443792509066125700697674832177908984190600762442655332038462569779874993433305008836536954831276666544901332226689480498469206218795879323646519400973621627484456193251977739738482346696145950451338219647095732714247153182140519552902796582915919250771091219363675259894914261503946307987527346190171558000994661669558499883250251707980094315771740127167913010801331095062594819996351463654880864600181592776977361728999098100315661478429956802254224733855832047211499782002145583413242679259374693625967024644779252763523866226953068165445874197431917747008170095742631301401979135811821210551167729912614035696585990157306326449909534909985383014563971174311255552051262018664949187527209549503475815434065383960649812670764704430550202399246288401939936797147950856821360234172796467011890062161978727436189637771865032848775756874216401267374768057059343910204129580212494464563555279275975802848267874858353494878717826116812066761003821457074510866665131958123635173250821486742251491675778309930361866619799074709256090764899548336223255660754913325383518196823436200997285214728206114725461840939428831214965397417207411872262243239730332002647593107811185770138006769926853340969883101377122387408115201542751333224736995068732648652698621510716165044433830533829355262312391672750113132572531479518991809219781535343481268592594203955402465462876895029687278008416950402329122040358466545061780040014303231296451385357873106117212708134085297081778087512058261879448602606155779333496690760040849254529283407580509971193984840417846393598034730841309493811074204663005904461333068372822479782131088595037969631545259974619767678155931287792982548483645929057488846271292027837909378405599711591462209748440027786599655542718850611397776066491474823834534327178497527564683631735177119248381620866564886794972825458354146596786783807788985606062203861855726379153242665192189127848790096164952145194610260062313812476753511474318045179166369671104407698184544964845115830535889033283186135124720015485536180132732796178024326498930330939848742388335495718286779227046335790258440018902538995617214085064461967458581741251126044417215464984914369337263055812240586344175087439045697638384476145425985246911179428061973007944557145894415486140604796253613270824926827636560098731970181142951158236747161858397878551040990998961329925652080736805203317252082316480125267038328320915343786755453208538752740960997818430793538266605039356765961099218815897052776159551590050209239649603708318800836265851966346153589004284134285378672655206866073423777542826886023850862467621399410756054324560393246543875225904590988730357632643878685795415133783020580500457460446066985142078438414915406375225056165040967633256287274402742266745865781517435986026288600478005655486384999792569549282126862916880686978114759668285644939135444816128966148768922726347476283482040694752461031289442456746471316892346696829460460772051066608849599721504091337088159787821857338717211789095073148650753642636504313722792649234475135538714656345855247590320677458381825847240579088966650762469936862221035830253200853349049218782955186580625311918060119191179938690449262346790748321457428659741880007965715969341735541506370418791366500566266360560953131121757526184853648546156444646701968407629745215854012507563579821570492195236868220657247910481503350248443776089115774686560535953430161165057445458477011436755301284272148206125632689222531955690505566086195616854137820362983188799586763694785082902811310660543819626451611521078292096690474344420649795099655587919382297069909995577847360737554535375980113034780280718331795274398370331670989716858116176680327438469697571600324958003450750729408497488853518050317887314463124488362411392525706084568718736788983563657250284818066919087675234690989008857218481388488930064823426191357083339618595904606619193331294693237291727765761570879343557005176150837595490204055367776412434982916522135478317833517835535436669270965582626309681896052372413934174219700390636306140786316980208746967455220195052389205446466143595598269453876460137625516048603172664871531813869981936965731332433609798313670440729610397722420967378770367568537736860354244167703360410250429756921820757928199163020500109380149137417814656533740832206868057997055782229552728895626822752171819616768838238407397529854450477442544789622973116703252208199548689406120004506226196121608386261480839717689834004250031753735458216112601085874880134676457310270968332636259237985219697726214926060332979572301363719558688978653751816265847494856651732285172838062350668092981285905875110766988026819685138514980165268599495780958676465141982394158467992571721276259471010791246710109634448182573743992484668458232088934146960120684556019124137447838538088019239726075861801745115644526401263067632977805167823668605742966584664031704734281852742050396887672929191969342475516801392310459973145212806381871826391079105259869443242679740642935595035296063724502104489069612489159432277505533643758646841917282674944747833361181506419783543662498150046004408432754549312461542704444393380824871622833322407952120146527018150073289272506595325869802181070892128946484996984327041706084553149256034124624962940990088105173155622059117724137211641701890145191713310447700818166115691316851170542687017880792447024075051127098371916140983432151788292368227797166822567089389570567235675771487726582242679572608259962378115303139643652143386247632324413825746958131992493567713973144821663690587222292559709451799162292070519932748294255927555955272768963302489200670987309544343793408283007729962389427079224294467608695977949801893434904881395569575477269377161639584460759241069606876435854339845636286998939422826978539604388845244908871989626955848988875708703667088304900762815523973688643416416838287733792377338301843134872921601322250337096596479094657369248390382978900477211465282823839097060000728974255865997042177069303227765184401013258503087067897661456063332235599463616565677555466230864810780302978574763418027019719003347127749839688826424378003482578952651920488299782740946930478096840965093512441713855759803781271704901592047812574792997388067461906804078589828863896697424017458322707985175053548925871113698321655932326665133531355499235247730798363769693806789681066551082879161640196537886129833771975885546853189597775746848948865358510900347888936853885990290268117093058390049475235066146221705460763508420908833581717670163744047275372108949492229773582175342436472381636600446925793213524919111055543896556181131528186528004073746180501580346951200400195839079628095387321908168100327058991729967261030539836991200080830130988024532576979187971332064844653860221302998030984109334559916276429185853115601451804291516782542765778142827127081241770502378416813841971706209249601831908315609670783724638027648008642586036082894999400602131156238640062099313822066449132984982792573536832477060050957404956445499427059378168077064945903983663097119899435971437508335816735767455933556366296564355720739905479085194041057462771967271213801091696790944328243053864017350187173500818525255849258416489785084024845946355406053208439523227035647366366705735479646698768322081423790709381406437020048145227186449599343647872397064315596585173201528147725237425497624563240938119861557870597721218809365715840047755218412875091450910461127079813615225115170949253335066406257937020052286066094722932104256521801281954499132944008110627301090495401130187722958450352080161684529232425294123298932337624120302360490142682486994218808721258706690579531833591492144364092875518921742001631507517402639239574567888792179073829392453056538316509869081438335566747251313339965689195211755380323365067102822565541071503222156938141128150749158752212198452685371302714359195846535639830813681947067948178333493564928440178474464624317316118735874267588146785259817265500311864887576101414085127284018259541088310059249292647559142642843312200391821811652378993598956286488547915810295177495294016920437236064047331593420484140936599211209970831090087532186869740430490128065129172149249314706838357930753180895827075570555496746476615124739667806247831755474811075960603023119743231712345210041269564811409153300405080941070707042078948087665894666766737775270380739901246600611789155956674409930338002931326021286798929967792349412845161155747169163950657177216947003756072534852162424942999315596461420928093252389948020755932589759562261115832403557037771987022166963769338739170835874973656915834075680765754839300728849898037653268337131656646094935370140465407742683385729148600367822257268428592765094709311286714117300422917668975004232645321678565747286125137512564316087459725005935619954018976846276436797824403659559020665982334417039123630202440442280836136083453782299896857321747472418253484292676533418861704083753803273124730089748351995767430859418054607016196215205721243964881246021263354381911927336253689546244366629078375697621107287967634043416350452971718173568751551247780416836869061812189738076131277580587395070083861496771766281032040227179404220667345480639706254104014533631867947725171793646033973042922467638966517116767729272430646696460171409006822705884535928642140051584316954693813125315723232656019356584903954077581471062718803805441464212744267255778955348114429789836688170939759909667845891969580856712616946332812225489088639622347475934710163038630951510092015645310733852314765155413517861826259553575687437467840365847344088805637896072201781547205884146984536990100487967683235818363028975783047950908583856834946583632171504343181917563932113944093559448699766554343645350159942688996844455235132360248484654604828314817828374429903951899401222936947324566196834655854630654265993722575113031313829853587221743388748623803611720532560422064268945384576225151009388080473266722844806425075513082435045883020091878826829166433517330964890908142948061427478005196503522411664665383806661876284569424255645816438696088362813427231275327048245782938189482804792970513069139205897316095677692782693874345902800132843027566404196025237761887973275849678583309452728401202063252739766653366100360957617529995478835508656509241524963240760039884191035383292358766944609173891377058353386788890250483000340180948000867997672122358729005359883616422884464135275815587689141535077332561741589293677894755885265869305220061018238416173984250833444423307944659597784953196244618979907166209545121476822753981526944894207588283967616778424617477405772764498586275571456494127337989213113786016507337651211942963943687048962075529858517908114401164843512314595537686402641044794511592867046037619847286509800033076553002075375694569669382083844220420946028831578364088546661282696900415842681462640728576587663175539965089536706238201012366188727679753784481390718724447440210475905449141137296404765498494831965728071964943135450285464642046941330624820949980130110452180652839481245846791473142731888106875265172121321302723568296179254642781819740009486595592630822132912008705178928554544431200108421551773819946048973680044749984275307475547713138378200723520020656905903417456123259768908312995067456929267535919386922284019489486457695677287191000810348723616749937858645859873101517418039883500517343635387434124042969864984437731428214099134105052283014359747522930974695693998319566082433805708359031493508576382912880053380756034673004818287641947614063016691346958029021586255032068509428315358749157379599049381750379361773313830595797750438505296661657073700927010358337570392971256682067103024165909976617917250823381437658113037692427473040083822841785776292816835186663558867251017740914709730722567511175333930473211301937564565145632114153313478833328429187887739591064478907203059437032004624950216619843931295630228442250855509397283724146298660714592783747265139495097428303202973695468470437475594363848957607096961284597294648738215545233858991229207112021466582266666005518607432512947298126606192716532742991147720412915234680709438171972119447001740911810112828455365282722071693055756893559252403205418866840686726477134971808152980571642760317023067100349017917802152571451421937510103346663112379173540977427617015254115125512173214587645405115291314595624872927805108632017006744453768941843834442744613665151363332003086953673759651849294635259092922088943755417133592080367616263228994690233232488275845790136888717129326084096923249274621195959004549115193901894819757774867558707780269834262117971295430219261419845875982527095200001263452734781056994254505509712554897789747382514490257072098257747679348628784077411560880997049160394236640402435071161067132531268387471644567948518332114972039813647474278867795128682569438016717354536778714426568477877108441254714685786003973310177066402619044955069187834299959996424591911709842925904681955732234750958732474693701643588259336501087310325445448240110392456166220929729991111720547477768951725875284053640702170963679019864299497509979776345383727519842134068108144679281670556175371437586418243409629449287910228586011139034381862195307238323049403238806474105135911342494597160973458595387943785604231251154868457812794577903892214069229485459253011800667953964360341039249712633078438422488760649650737548755928116641555764798808907308575857866263241100675179031772097972076403132622188965434598663720518208941564553861678277181885503086146805490842318777844224371022479405817997676810941339742801222748852389109226502562316439607428497748199922375996225337957351266196668443359049729200716419115236767181062288572741931036044115811171601388656917954046525551102104551376163944393295385155413518088802770004032478819767233992668407995965178424887039890794444527923870034653281530088609857755751959725473789384420057664504474862740004121909099272290782034781507329886434355417669791074742901113748356613030254970979919898196197167865418243867546427827135254756782215867832034743706144102982290660444096079171457489898016829748585353094103431504037642322114325545386410225752398332930083960142145493187875422982221466412573556361186527013325430917859756511571214940045840762847306718453102618623498552341168658646849072147040117424709258408552046524245024076906820455235884966777624723565241095923307511659080335940428036398797738471299227960357789786062961065346355911305353968513160645365137749137162124281269159354885826922211662628828169902961133114325625817977695209337375817052541479317863389753273794384394378929937322312759030477109502041026755403681569385851159301200285375870634196286098515605998852163634871773255340819920269080736351630765074458829492765835517697218247353526565173683960941636920089747002004291576275539672684123757138431165495786208597046242847065280137663925093530618766868227531287281370199136542783274644933251527033076402317671618712092089171250795170321771230792169044941866689004123584939573087643040991367456476448898470135800041128875106371358642300683601396798287256659691733173075318820528227803418096396316930455871777364790536536103689638231300288080563802350302055764332745191086860729067847666371201385312090744429052572495676069139719066709840218176018672161568217844613838013335713913769164727122583394569634627078330889483064887167886447192606081567514317582204607025908698199964991490030650630656823503721585386226003015263089628410583802371469650549393226546586448563098831881129696799961376077165559913974300725269183733055356615063357152881702121113265534346789072604503115420622506463784049333764849630299055780150828574678513585236832839887707546541694441418963478268103703731336073533508022661516883625278244908228588816836942876540599860505730582009533297854078463319503860433827605335962442511114820422636359648105112367460282383298570622497672002570347649668476734773358246468286908180222799285914759540115171701185066314510604324151276065874230783173821511475995667246821596732068228067860916574339813792326572397947639219764806168166886203258763058705845220824835854055162277797017023080893074748487901523018377462677344728582582838669781936536669065389619758398935559902021845541305475270402660089682621605320508893206469646960966011804982115393249782268803142786024481168040171187573126604183273157403420292599444744755903765682697509692651696383566998194873013287380491183743248123628132675716802336529967750710907547718987673853131510252321541825631380893524434788658791618453669073076653095861010551177402108341644534185913346225053664422159025097882122073504736228513484608591611981414893181138215227852177534481900475444109853897592637287414718013669503818133962851397169231265030742637881241686717544392113017495084072856738459728845173057475304462971012143819702383993368005184827323472896806556663545149215934171828032941174898816030433628535008068675694649645631907984700788897745479134058442921750007383366971832916533352076659543709288994195994499738941973148339978108531313640610546238467491351539654929261250176999674582363633045520388827486867632732215691644563631774396260875336302803469296102011555897777278342690510444659657211859694390017273912315051098032727614667001831327920168733132450273811587249210456449732006709917292713156595749510606064624984402357044732479425520081225404287333370197488158636740743017361356024044531825698441683026587386162487038236031880783192642790446216670142871536681418700195884588261944091764764682568319114819240968272725090032649712124544889741417143321304001290174141422114119045410198370538380204496221175608778645329558609038673023838348186452862870237913749244538088329487291996548636415707036839441700892103436742770917100947754924200716667252690237093504075202553082536545517921569981232511767677259795143572772713358042691409652771711784970964829478371977608882008537469958608606124472592675993182764664194456240942132335990188667857019553426350190630270162777943971687346360778760166564634762412430311678283821711782813859360602111464427967705053187619234542427671909152627177606815912704069010015126039163742200824886601243102366984853370866258585772578120881703498967585439448843706386260389459236154875706478379675086981142227841151797610883245736767505766636472584003302403513491821225236829123331893349782861887322207237245909572449320636073520655616054260960478329671305021431307302067579467081145039877190843942894333811865071001352486786200704315252360147984742589677441685826202174689048557938446029742881210587293820661274338710413402798788140616371432206477639732820089842892641349888494485694862138154230400354854949517458827606020067400947266695950439971401299573230996924423868388613855053176831000795586535705544469021432944867928619815866522957534726622031989696644683668684406218536840261446823228680036343968427220224476808982905739706406927850777286272633133560348572356603007976621718993623575699840746568534726259241595653611723953188653518071575238031516126696596054863535770172142814501726035176400750948174201099709283270381286694364273089196295644231679794536945046586462638840180168926963508166866192738729814480917177281407501255921059086071562537360373960549004194445069971403531407156538372262108571954827145389498090628708323063047145756423843058874540398905877359919369722686765158153785278479838252508847821811594023169008172142558732718958703534697562223618327337901746063386588315468645449386475370646586447794928258234088279473877513802616998808632989823477514019973788328224921896064530592516507641779103728609750899930816944489847937257150783370062299787789468227066755029239216015281967464646037824973063784947130862149511776211782621508752004470472350418404720774875727420299422125434072251420738332677032522718368191657551126016097852173882244465952013426200548278352154888204808323244028266170237955742533818159614322708333659762478282124244888443363287409434017084304367539018396647884091969265115849966716864192821462377551492093051899480749888435273871766136376786418744658923359142432212826496222097807399445505423158761118395643109308013536247170435936360815394715105475027752321436314171302695451141474254202906993128486792515014765351993259760690167378721860753404004056510878259127297456179065530925120005600088716775965128771157628555381500249215228441971022483662608564302465284967451506904221552472540186124154345293682370489637487280919326399841072765705747726855743100049501025508304706334616313676208436381198651478134553750187587565834094023447421817858075950471732484451248824883121925395345936907905784421585367475648460835361171978889075013251916188369855374295254449412421117149616111819267109428727813782004044852257002442789024486450733555983753731894044819237581197164007224047123929401702163513797808310840069622335030249760121768251413468657099419738974885823936208964055081187949519586647212579891373977061942385390508309707921439287749125573673095372971215926805822163446068988549172719240706004343691508067035367703264913543324269424910251985966872569647126229131093636759851875528000066058137649465383173609568929678039214987892317780345071165320856050010114642092936575806623847483384065789211651769659018586379514870681815012113743259991223291909694764143441820997814185613313571431782501001589254732093757516847390098586459739555326089561601098895257392222833350676196967096201221912771969784254567851263003601885073882960427226416772288973173654674674532043467265019339410064713217381408143416827349026224716040059723806083903791407220143873884592634883093238437322617913079958875368857746740971661469407804167489615365163502019912248591576257574204448435542535887168999984600096724378859008862996332749600285473727325157459279129273347468119196743313098833511162686545779671422984641292515043913667810072591675905133195017493081144738394791210106349026352420319563159650566090958974293690340530221169970430073714201299717347286760125042397443001119909876819926144587742635684473379662352002765558194638038915601090056479512973465324720908806735038528003162931538912796175163015981151441728176429625637612962295649281767067171306707091566720876189940654860600100961576236789278565472236885605612257200910912098263602157977675628938446091600753765272569401504516949686693406985308467061041670301647271269507102702197505901418371504173720429390230054273823293328332340807568382502092176459378837076844464415749663572577715515661743137492118435866314497719624136143834997825444500277037848083408451473418192725724374102925577172580609727946423672863055685065008837435141025455331564787540842975548047032355487463600791940865716961397610776617761984868432637038219577241575455388222734921974206213325792684211023786565352216110816732448007868668747159388691688549289006258812098441698008286748953948647273308183586448035566278529228513696968313590545074427789052170013132159343807042653561296701348468882069319906391661818335467797128477230094081592016117907414432549943959385463055493894107331130300553316088153549280121392290397688685747924990705124737520380006281813485423556126111702983022327046200736740795753680016759505863526223875964296674286925053535054803675133926536572348009733775252480744838319529049351779574365501622358860979054730765953769303847287896618867362853415859922979832972682363793250010217944790222859735073769091659613139788012680368636134570613854874805261434356628848249290607323601722193052889405868696486105339702972520947203825362132628370704335833762509941386904574593481161214880532200662711800303738220940470671813302756525363985541413951037751574983244342295937310901547539822663296277786002563192322812174044029423650742942288387787610080945543002716360612325685527788564333684024547511729677284989250638423990723646352284063462570623567802146731133984777390210246759957324166281557978146022176223063323675888030874534936574387868546351720900143794348363980564731582429640423810211014162412162152883049432170957975609167858346552429869943871218442492839255929317266916922144407643535067834273873261594289362563217046549003857574485708410527477822481560453050026225231456914077448706327704112501406697114272326505840351077383519963695934461678092882658650858679465219807016815922816990437767780764614303546783798371981270451447501636033575845281067588901954483772636332760413781581303618516203400055370416288291826373997713982829359040319231500218209477788572842032870546081971243287620257164436336514179618627093050948707544978283212583101452480287207209386499052488036136037235614517473800410585955893264312954280916363009550233239019535163322675658744976993667844908158354191407445257680962170711082935729247930703273672485280346517853465484143568420158739099278272846655802704813904698250343637962927176229764366227736736655025859170839701270535643843908676076706701214919094494855101717854191665144109126638555335081594014212299094736757107406070505805693425721378613826210486797393608403428394262054118523255849385395067003636180628886810314925446359499235705853428740734718368421158661849689621758581605208763344609736365440489653554941779357101451114181961942595668268117631703007953296698307984088552067867217734639423541039568071252909241178593361281533226834261276889553312758469143484004938020954889149575623140792740228581681512706475463808635477492269352391225358079722655344051542057548837549779101805864808730278462526285447152356800189781623774147219210325901709554496062834198687804494793967764326248376016113171806339662751044413687784072041548806614869282731089260163773142181629375507296314958452013014340377142828103133659456685902900165505513010947023872751803995644369720462330254608810914645820145406138567912975590806338594303598708108591404461185809263129238089918724862549899058423307321126144779381923295060546151632336656559625356316530718836241938053737603972245339040452906754638999902308610045549708762441712152014711353979927868199016903070408776641945891215238220836907316426015940367249794995160284957120227163762908930669645099718328462815145905838656414338981197053064646429404893707195031434938227676083831168264190701735501361287353802550058889100229457975922886787669009072086372621231344181585151260238674347346946035272780676614495600722808743345226356063878980442546956962345358834936260611658860832196590171855214174428277073291948708947468343641998585869268528487160980644287941822150602619328002586396679365295973988401703548718557874887798574965988587505812839270420485263860387995167653729704854653748735667819554486921441312151958608731407279626505336205042087144753752846334023530692119697651407416092182252232766565551237467247990650239890266290789975408469175043609742922934035301755855025814288010758341969417142983833404731247478781106998590266678885119981916393400910938188578656892431047198998991271872173197826942644594007304213532816982428367040179761154913979321488735831589577299403387857489307106652001706277461474487511945977361408000570412670245871557961749329386700727142298606707733055893799211014560103292790576547081031441857143492819692872905230548201631398586458026509533578700468131145642758564216982875286163074683172762175552551476085310909620959958662110547071803756685881214490670191942112761219533837642564617273363443372498383562640931495240138183129516516228793159995111771353026199552870714337354539165080218638033122418571904560927023791286663460633835049139684334311434268016449146129185095394550087209731441859682849790621414994680259660290728745509305706068005209563085870506065811705664129644547455632442330683506585531820823783643645310194682988717234068164291035837565350155287628542590083629918498980084247889498987029510922492188986092367453069635911295536519553437966765317495135825165473346494567841668288235182755307946359836539660416048021671832789127516253704316792426419667482464033279839506280588258430958974379222893223489738115366829543058342710062767490499810472094529062535704349137352141493147805337204913380364300814800106395319757423941212751977121327108142865516246199712462332509468922312974581649284514842002670182963341486242267658141623011592767254940600407680070895517906373790985612524041546768483066253114520778962339261810598870009072872404088732505319431676456765753236008676584222270174868690374991435171854043122300761217900783414467639605624762668423767032651374707823603377614349344771092274382346269069624213355906352000064493828615109209576601609030488970319684777184921084721057767344383149884192963450170201180518934511657191046573339113229330774127517362672825360649868914740967341491344447339922278057571067042618153659276426776523806940871142702660485903278621425708865889548639639512219116330501555475627325527742389943273373273632622191007851852985407783931272536042120886379270233523399047290701945589447838505850915249178310229470003938105184918815767851447526353541330545229346500948255676242941705746945269558849794555135255148124972007144024502019305500440299880528466227883181657898028758877541187564626997481049028545059558126895561120205295515616574729220903072667599967713185908166040633301631248362714092860127377689549062013614467922432629087841862518191136579134857795614765652013061769617583507979409095029118508146677107030677394987383629711669011787520318428068585921214221808307096784367806017509228349615233523248496952101864932097019506358712668941178192752104020322104905126205889765639742638300568102559407288230577821615063488027488072692922172087908384595350165787441948467469379697559996675947066321553299923701373971886915850559505314433928984057597096910081907490620398393201852806030168068381195477484198024133996870826644670798213397236743183146183528501111729994026302292433413161568866576265198263014637179819344856788034650598867556949315645695437185620852069989241351110000513106440617255080810667991122356260280069282486533451323025619581977561563363255420191012551806450933610129669602788679178016708390783425841606200750383725238720317214743265668419717522767819278974460871972067855686422683257655675646474572075376573913817886526851147995921468896333249890668017840129678008380500719371591440485932123311796215872885187007385987187681842686980714859104579623850282060863258276748103133873490588840220017692113293199030915491756534382684758565381316746642196855420173894626604958285107907564775330870015460359168651259297166509311802209999554733173511355258253713187368221613906042328530989977394904721232286992185877642000851903564579072690886153613564658779042701531300705555488349926207621482937363849458249079624798773004769494709886003203686737649764536912434337769154245263581173224960023045921678681828503848728306563655923155340137904320645644980680354794649431683029901332863120751866114998669046591901745980486691867094991519221881957159441576461982493467672746381763836229465574169602930009232766967249096717677548316512450046813992525430599950530470835270082772953229536345088945569138069109508174402898681536302403717855597865076453789881201573879833845499546671634118177169293736230311835912710482736783890024800864083362406457973218126938789024514513201916096370111414358421124216611310066435621891075125465992322349832794840890322312566001334866314489980005520680239219266292181078497645284348049343511630181537871619129929309396556404248167188797465594274933559123900095389471354419688246031304559580964252411605719783803123675236530786567136815082381014512313341506062959931082248185944393467771686297901687343686397814335631497184071999778524885639229252212884050198403678992373219436040004019479303556907602524831226912217830942469153612206718519947765483263711688083824683236285720054072666648263519799025783630981666731978483976998358146506120686614362267167467621821789178394271941888751454713581982536608021457341433746772637311373134340270921865841826648844014709359849742734210425381431147004657809467893367413315414068289096572347787727022260037028212337870786821140598882268527941595505006223366987996202595447037607725721700955259939203665026029567051567719046171996257935273578404088107847025678279799285191544933356213944901807843471081266694242593096262361255146510257374964476578536398887696861818687289624739859952454233729782047715004364923695296063797423274632427262270066624811308113596447503340597371411131743931076358886138327253418124924488000258194348299825570893870808178838145301305320609059686759835688633122325747941663821864556572158462723441554601447971054011502789484282308661989903659619081708776760262076165785654177424806109540058860757992017222139483502381475533100538422134006033371745530397925719260075462808628132749915772888113818755204977063145904174824192321773855490769137823322405424256088656074832977970035871735984616780218072821037520186652664740075074102342308424863316626319502248866576910445694510643545765454578133871675309984023604903064454105769054135816404381471920729685960369357595089584687293670924877702896075186217084022552266850471424218815537884835581922584285204292605399425092049656658832953053992586797169628119328136641695678568071988273757609128429188011211658827770430231895288775945316509008458931445989354706136670100211203552844528945458918871232367828236114505187832916061625178916892411059512793614825450012841248010518769067245694552108500095191890592826235910913562568098573745493314907786952685047746822465180750444692243317825536019178156600548558253014100364202587652262427309843112544187368599322899340391961317006835423798551043684656512961163750213150445704673778306318443225202003468171739937584823820347809497313145715028962014974596973247869393504468112601915764559568647033751188138058601214119169165040185465886894001660518312384927444151064312529802993699085803300529900036685880507265698474738797448921949703053575919510810492707149468606971910900107942636279730504845272574213163353814948723644723030468453776747097263636253192833381115085801951292420659396960990550324284442305369630641271341951866921836410338637800180530645712068881528725819830157280997773081289702154284563424101476613683197497478682680314822765080115000448487916367807077461606686540500370668951313140547154889511618224744798818969046192924102940952566440873499820695690833186000599987287224847311257938987711699019551336183988007499749991355785429127376327575664966625016688724390782751384052576023388669721788214462246428832967841972678163232047763479538768992662992751042775523169960002469514003744266815669670846230319202133566197425263160687361303154254342640462418539397248466105074948241810497519001914177555334851130507959057299142283222504312354165537758633153754841001316573585785078741220307246563224456165342217574483218040420417831911417771128808377703767249914096186574770889231866206467382879133112355626407698603786019638116050098053497329950146991216633659040478130751862726573638249017821732376560305688603865855560854214164870054648781031716404409788058990966038302172794684135897441086536438014186705644003541395845505523748316842480744113468479837370839256007768146258727237830370275144771300700338535987676164313437232187384122365527177691763716401294548534758403084976128642947966557778414801161695761679340840288211228470835342940937664121145435213072237311848729836766247807458512137681749959205387457269853234256807890898285208643262598909053970212307311396122526765644043639912690763977348378982607012388783264211837180376061250127072953413567811603127496658907108940283407921045505846339008391970331198840192146906793708078470845231255568567852912538250384258683780903895339748816032881809502716159683034825624262448455919463078889135874202247913458654418991897826501031540220858465855069986076895579162305416946226877792343185596854310383974896536690053997984055930958333286281605431996593943101546628377762913492591622074788811741728080375022835447434663951744934156286255882377252320549779302178073144600722441156546189303476207435855159049055945112749820189357726347977448798512378103792789385160693110288553666012038686624443358013364151298353335260948796713827993685623532300180482800719997126679674199676091322409497428563202422286183700101633000470257568954146617286616963745526967609840520767254631152432131224950817705937755535123315382441166705034672629857405531886540046827577446841085658159643484267647029642945048880193961123318027526252549353700805128861204588880309814914543072356432640702005729832325612994178225125437674456623982708392178866829688541202088620105993105002561857440875746653277611236522542813777003641305174258793029580777931086155250780129347650625942628847403515717518548998622063367430085938399279414703673480076363748658839479254059905523850939580947495616198452199595494228984433350205001352590637400322229256408859578660395767037516160840945275895476797647819845055550836654292510744069732180626837350518177624523527952622265031976570954325007031104807441104300418811534715267664926103087985141959757709748752282073029847127336748334997679883013627034194499774824605101937463814305971104109895938962056207899147523177931282831641677146937694681092216489836931543358975609590767557897497944841820679581975485916778445610704576746774563289205184176587447617174827108594741699295902820671810251864929738645113803734076986266549465287032493530168688282742269622244594637260598579973321887313477872104421295400196873987910373811738657350075864455104265640423145293896298568179962012870391297020367587456689019933704832197764509989516278781774983212457583527752670547605431282452702082277533801110216061849745035723367487660480822198536827991554028654322463991257019472637395182924249358311998150592855667650896519177252730409563285453136814710643611999485157481924140383306902262316711136949675665080102232611874226091860435004339113537279812840130923821252485414794141285773464022945370416691304165216156266451926467779563273342941887625288119415939383877330508418455975523609027084803192217314084557751571444796334579539505458045901562194707696861393550253143371831963532778511491796232349803684847206658301331940325689307135993738935985566049752491123365516823286232433236480065634422180920204797494697854996345871796944626813164233110401005222524576314287781242713271090066368422192640968274456673485377854111096139010133905544732966028913466489125265718723332651262690111310981152641202226239436148453845421633971950842513556964349991650824897741906562130447294858750598355403582758366867236248528048381350782102202774902613484670307546584196158315481742240757008560279878437551367487177802723426773285928429728145162244869943928207880914458821180510978891360077839292270220157165997632181832355752616597199646331181051536706989661184524597172335493507113016514090960954073243026571186287568808511087252850213693588138725756706260044790861806606437562349367001265054566735840463414718171708296213781194987640669136686618202531264240231126818358792774799195793858056000954577014791981690937391349282176975923555099070149170167409843790065536166660348645331710586746105967329652927828985700720194472304078855954928995122767505702813990970251235730852909949538685644724262678617794415333317946995839810918575204664127361722643098572627589450298494303669049572474318973066041041847531364144612923618825517483396087876441941359488430156044653729312783451050164729642560343464901262289596429864091857250057900816633859776028013112221554033154949822042929101832341507714136966422611724895874841232225896325633803028363639512113565317211019570858998008780755349756111559033144578377237252750134754584320728330504321695419739958249238276088761897353156413559231093887952561061708547645162742115482658926608928617052067064342314785124164990373626171646489710048869038798110711664821143656054121786535759869149900487690374501744918005335613480383329912473740540646036196877269018279123868881887080193428231922128554228838379287364996693610479224057205679774302676465941064803437743550979864967656905269252014248366406461120310143094048449199022100505772066764996427595320338284266853110889877715870538047605413887577183019415163586445236723167533489320492784296097263124958380541852890552715361074345035422853695397284191474066321979601238430869103698518777038616606371428632546632808776661647812351812255036376548282107701676568320348996536530310898894175852501408626496837081145939384278353950059455275173964309545965398981062831286063594536839344736488620169369010215450270647578553060678149832007297182628695722435193963439059138483176767726198374517498081323103918900291754294969424041779242538272848654057163372747779479359784095358322013654612852881840109225478143995080128485791331191602727663770905914412077164696242667536932002329730398787527856652256548248419587444712850468915158935813145766967374431978192625266781022104355223333464838662149786229008162998650687644915811512607378161114958132461498646833746922339678500060566819602913396020002121287866087019290773880021987219053054378323363458659595057376227305007796929109682856149143132275072748448172376989916917062688066565702893080212813425690940768587555295670656546864639093401386349286576085509837432722693496702651366390437843082314545082824538697914989613152737644097325970219456961777051847583817540050772366090488716574418526915527037300056250801559644175555055509210479743033437288657471662875987524291053349128184260225140610399035406452174578803809061493195301513272761613994098446737363032169967445178178186760082824118349212572252316627972896629355467066304424859145937029296180679393899215994507641552549912153314247935561842964714827454224842937715802770725255181017219410231223450258455383270238218521269145304843415360312799003941564088653393290257329683411701810795245784532417152509774643375201768813126424640579136608314048376282439813928701322513509118124212695604247374661518680285487990457750253905976873198635140887607825284751021748295317401849013045174284178025280783701260505519487681931669601357468211587124041670336369927131943516566340876069533551531557088250026431334457860321892403034431727654149034364810062360960506767257476943035353034940953021099902044336976757559208881293063034770411037465468398645973860918179048825674657056216758433913406033604408317285984853622714023366108626659474825000592157360675327801773725233972679444610963727389084121234793303987780246464486542823378054795820970078353738655356109739483467265724263889367765698581601734430554407197739528308523762772885953320365394187119721780628827994775627266857172478362611309648252910725529681642386451218519081308170999778347399241222021769703472764590827087466307725602867373348045437930362881540584551829900854161670133537977455134127516345507992523974194478404515378222710878763391808050157593955650426554070793219121789863554042054143960063208037809035566588045157356772410123177735948102471036333172415840529706254961350627311994916954079211233334233677647739219205774398189216688811434988654002011905046916941548071434982051768230212277578750125398190156282059716980618319025933097848379351771967822093307969660527443626076497870512572512927443442117266767890595335437316530832162889842772392673992956325643708218919833176523011610912048416631694634181686714421524504536787535582352474575760039497354937031394804507242860451978072434899539557416598603758387694592070965891255914187901981685032984549598477481525812943349121427670552957781692673277581248112601326988629515960420619141412411912296205777429555153448852126529402522421195494921022918370213652151042417294587030758763198312834764757116310745117841917813558270464073695984605609819848443351419675056160576332485641850438737531936086099031276147980615660004702439873325775089037562215912334919287143126742430288028513245290500594138606719407259791940263934971098052949750675248212365591889355948171344641269434885774099744445136259472767785643629156589483341638187655172002185693328358102126386969589303486082741348543216992991157790257202145244823108655136816893268795234403818615364544944100378749991087480523360153910153736046230502008558547489580427813591796964149477929367931448844391476857698517697070696318852345963035466074285377408290704499893405647684770039582713539631348637825426850343656138203655546543175720818297092901825027188230615965683952575619612668316107334713135194961018262223116143484032662507632450180465307669698563380373480481851734140043361287708340065351929777147695423122936703876265520169485637628160163994285174635794189438765060003045335620377264772485349927375598287222432633881122216521807605073642016222214678922979830880216635088599120967433862970603160150843620607276477607187098472314351568862623829388809518788509461215493904120459768256677246238540468735843190438109778095942492322206487410485098362098408717591398361582077946669339379656293962344806879201369844032149010594549004344976311590255086050291944496146601429060442434247432321117298033892025633989077307567281603390955873686655029395060636510676801050887334949265578247784148889290181048783360978192234099871745843808501292278876103540996900217225310916208365600390314850128099728896934548125567680682056342792977850887282172571334834572998355194269937625102712967259640861794566053521864212323689053789512700614164808896222599231310684791293993683465205954387556449447655741843969007071509630560334415730106528326446143255445863696841063628223302310044475197396487574116689481610553527166389492667666605453961784138755929135395184802947294736361993132412386088968886097975282140987281137345040605559638703669925066695315022117519889714321195157918209519347976161009859614467831135815870162888944811662563503670934917608152637091790589508206715624977759094766354420216531203129416008638354152404389771486870677969207035638855118580075198786411848434904530151546045523394274633034132256492121406302209970883147249252289745418890338306252303227611785165773575361467133727614558008036237464566634291026166224490672866540223325569979565878384859086999874129121287476212278979179818030701795703252115309157511701969417752176054854745630245378456015842956785305916806890281481785283389860401681286578420914113887019223373962024806564001203511617227846426572765263799970351949942494588974837832949032916566897161629150455347045764711671499494975890707894955058689538562165854842129529937482904530068261218661368448474106698525416432556805966271079546296776368092992878749089733919012303382205905479352378272956733600256968827873845715867062654729263397001428050344644416041006888870589784060995418098781389420336517981826032681489964724679788096998160943792020586892850735114803294336109630318666026551649053260778397723702487419530338802626757495830324099838597336180088321017727788726314749074873705101695577548647493222245982976484871111698470543567801508997610904627738698692345408203748086884810732267992979063750072349239765570179746177169188412307514979516328454107601517140063868793463800502361996379578369117255660107558651195001075003417391521416162378828513086294791522829251746234671865356591350342715002146254730542831262226730153199431519126401896178677318978086195246593839470264080378614128074464097038096627346905207607781769999821903656208627608596317162301652958713039886809713593282924679211342217984545054702652148565215042204806656766691345859501877400322507458553662401605228585009487305745360036720469418295152587617475182881684428282093204202536407194224830683493195588427368990814475534172885081786283397800746928427151900201428282115115544745695036238558650344893438817772333315827834239078472494502147904708611411136083518363034925027631779279590722618274127877832537749049991786284494067172160226288664057423940720058270074624825570276470090878977255148734491543817028255552916672864902400653322206545176792569978696284705446685256824249321881818455560599948973363433713813281476800944299380745379760648441993689297035959117458221513935399184204797540928675156995826057558394608189795820083685832602318904015144769888526393370958959856594809934130803876358845127152297268670708910120772368588314810465878050772118701611535966787434624959124475615804066800343089317690529830199304075249464734282145228142134705645456039627897349040344600951358467119945090524450126352156721455083481997651274394848884476292509491203419626796535095175394658728780636100127694989857740029462721947738332639348872699639506362926279437865101756557706483786748034337424122043898027048302245850225178188627970402776454805106551822115130944057038892711740569147547649962348915461197519491615887373796690342257067120936891020483545404785762094736527827071774595707705406720514042768076276493213836466436245371672868922587233181626936861892774013444920144836377771225888299170681392044580777383741917422225927882081019524184762234418954687738512465501812078761709632374332132037623669337804326085588286006377640898893464664519114199229673741922926126326071282386865345406172779200705903796751913073286315838019083434562040554495908404019222335047713009917647132993643721424339140784039039306048125604053904236721202202231966050702088193879255474472679421607148221348657476629822777947526394260531742170873669504354763046725030831933568640830521501133108430353816766392460061163629794273838265704316487017936396436382246687115083094887543394799516297482737873024225272363005467019442574611696330616269347831630870757055018932264082284533144245804354293637643400722889728534862868523628833112582249063606529886229104574345384967705651965911847335547615553205745793373318557841598018141928552902845359689306698004417864129540680048514700563629069572549853344293409813419673431864040699343192791657269223876602989755957011847024314989930100411457466534956582377335674305022179025776041012934447230427239690342300604383017584664683889834800073519947166996354320374566381933547565221526372494377726600567882420187406988168305842880580474465396865533919955133681258926240705299663950069343697603363154818462926296379585132850922573567960160814808435919975727347830782066141993334807286723060824919310374673733105075581582451012098403784979507433417312926017741876079017588175786863084097977268111017957402445464490136266280314910143378914000088267669650430450043550668282948455924948243760619028540939316567931520930696571868322040494801035992314284878863397033948827599324682306979052571096533569287979839265588445401961172375992350735510597910762330295187338952896255130332560551526372103319753297706053401767149066472726789261651874044709602049123701487253288892120156541796694504932821836296580576289937220808151714253374296885171386927670870968487337974638347379321437527866762014047517225495232883901121398426390143272018687542168098194086778101649197715390216629400883145986776991493609618363763754079923446609923072350122845056934040287359040468944127236594460276264782652371179255617528064374419836762401295462850291780917023579856318058343819681014059300722310587329967306387654195770263762381978118875126533335215330992386179886123092981382738238422107224078593145430575614259763162152527560687249938301213077188508047595840876538479281298587399158154514924964576571487004435944564393886771847758191029126198310030207340409271311747498677092339527883228019175605438386924867571906660030394923737256356319389113314681471407129749526630392405259649327701838663134002750133356950455132994767670232089726761870796806320027392001734943058545869382843242967260362998409508881805093429761026037810023363080043424091457605411884688109482128097101688543466291986304410619549716282390118459346796739250747541704107988077762263328154114949845357426574232514847227386118646143621870906585445190795686202072113365023303204666943140035665227308344969437240663000009908701351059433820104600245396906946916734644111727337705444336679910039915507745139986984231156690281965998627650360228011887102626654989927247919219155266603169924582176146246592588413123912949536892097803905405918201720844111086935604848991656122346587601872333034497220675358016020507735103190773904624426621772670240253408618418490924026394277875091874289008474955366077822564407741449052278321508910304936224503350421644864001943486152301943206945829782248159491831312051165494676430639250603887610373831915078133094939434080576637538404688807630308659338627338937200174066466739662512913937607001405052772547464122834580148329642521146735025340885533956650308269955718624888835805970590719174133173850410625955680636337282239083310955825585776740021808727650109845464846573987790707967787869001603094398859663495866713082925165957003068226070339006546335352890090004346366984045917269732011603960266138783293312684296354593215900399648653822361785500350262540298009416785063503150153718226731314109006556467664578920365085477626298748383807294137713011138241865998391830500795104652340881769158862998984825957811873552209206013511593444573420246119252750963611452900700716308584416964534105517186108932611761094807684315273187324178770733207808537365682007414255888343239447091369772281396239030767876765795784597754855005032033375539436964022702461973425785234497074298675966806323755852423438415684806405794681279636556756847167634217490543794909309012560975844933171669862183541480461345716528304789758141905648294482750308758014849771194542894911202410247553884983486866892759197070465805091227294525846269308323281871354381456566031330664891154124088481969879417705419519046101923631554877014610137793297587670683289365048733629103812576497967550503539154994066304306387954523216394179430992721452819981935033257216516616990345852236753683212631825765509023015928652828754242764148613942761206988001666807387670740301366118791831542355112078869294775585581632659915616724024250644711252135884992696249490440626108313361183236891158860128559188394351716965412040262872654297134999301871153893206976620840323552068208484839789515662262269224311308694794617598510727048649031709447919805479627834814879103397172848696464259151753467980697897807748489887076429849755105168112760926428111488154464392767431645239215736858685900508834782539911890277375953130038611259652042875069591586397967712963824726291476671041738139258537072757056585983779227397786549660869792115119648094853054164685916731075168638818343099848021141268611939077719191170439469833579689012585785801253386324271461003494137086344944665409303665899074001847329718023050260746103806376424226729002337846896307221020187797433567677748267414822797040891508830563260427687825815483825980953050498254874962582974928053490355837947829718776489117850138276638414031455712198086487885286100707520956698461177033437525330327065251101473169444156210757674480957883673339621602543898937322886789021742262766452619608147050370106980992006190836312346965008238663866290296482988636121911251585639908522331308182828860753271555669152694947445658247529269682623613550833258266017835961116289698945416537770684328497481342526380410470523740410572054026161660356815620355259609125555197792613214002309545323017899423372162743840135368328704797538773240816609758020580165182415622286113158804769979367128338657237669482565661868372368132649214609890150216293712408658051554424170548473833268521522735395443043583179076824063000022544251378239460165371257853690560327890450978221232674558764692647237491618064415984319315702875208697703230161299264339901579884736586051794081346541122501370719168719730857125850545858737652695718383713532031704010648679126104120005002044539289210381697294379105418043313472684241140357812736749063440096219058823571714270957282197256453952560414052939217619385857603586736775155905409400899411006274030414288567857765880930824881796921830137240733923110512399269654974107925022454576615329607324661735517065627274322493372619632130792945871979184174147984523690699289274902278761411636010298967746483929987202739233433676444408646214852265211906378867502883931114807086881308947968829220749334499708881012761490531403304393346048167868783552539201449592252203343076457364674064541602551583406196880358210276772261037397368070767112065628939378672759477875195789233688477467830624885954323128415014107300440484789354073756913611465691610182202222454430713806311099095338698733222102568329286051645843618462900476310952191424916242257566441414009298915573853540037504260324058390838929285202254894143664640224823590923041179607141077060353874094462712236702942061000532513721881674172532060178747766384645264230384130005315470045839691275351106964942982780162307920630883378838801812449658665946135028619462084710032476739355774958295365681142779598764408041207775236746938218482558660162191089027273446880498600795139308936127030663392963590151307145599463259145585956184493734979595540433305050140258536238386651462287475218722963806172664526936554556649582718468900430336424501238634050335291254380686585277206565713525007460798594663070050737239426653454409115318920361399426856413279140394976731320005246774422087695086844091888646084505927694982051001036749295509553982105479204943718559633315063903246062906379496579609887255095562856583124631366035344909351174935173750083724402855505463293199120784085548461921909734038950237525133534400184980420856417613844830138765781881308924736805465847739381874868767695789088071570742777512543418179570356974331123675603760175021419585773483038248318340397200295680520146630174304738182458302699383376341337628721414016385323438031068023838688226687219004800914953679493276768020858131441406721341716091311010002737212752335869180731384119652754118697540188080182205225547855546278522370992564555622923168638535306378247468439374335382952077380912245751003746201585051337828022419035175847983139679452314744608920915955067182617620959185262343253743278100451296846917653711693021925971160505232408088995614642930600469098439992610644397807376283395519172374181549517734538282553309562260215226399850524135921084016417242478360048230499065813182982199055393999289857097873682373115454997712961927922497924637514140739665084557144082046824308079550934801008933225090088944467197088911439002461203143288392246543294892947212370259162453782182402616225203803137998078096913797014364382368882805111614455603304903371809993492554809576372739300424151846649071446011334117455007973609198021093595691282879290685812667766621526921856753179364856292112661423215960002041574314966725162714923517882621228881543724501543994783810761876473062281363477699194047510426615623896182515494805292393472926399285948613286984746063578286847517727668211121937540136211647931968982720622319883428908519818627702526467864504755177566016498030286617003941959773450050035930984034979288680985981095295873256893876439341423153304238473927848397585516722710997179563007514228551032523035651817593589702444360046637546211379584395131868550507954986871846269826832270320604042675103226118360063717523083087758473131498966994911630577102716116514925231488941379037230389755798911028754452930715556720800456771900516811072055042775052712326242292073226677552132225347657068446686969958671823846260314073848786809004168189546262314074636067990419454973895895304703736370783602935624442903068739250098086929735481301831783193680973942095806917900979198268915827165623853861869523265184495117355733097366382015206119933756366991030426269385643236337213487222898282154927864052436446983225460824035008148426088096807027509705150305695545818800948660665163424284903972373102064826786674965162426908726232229791318693593924237356084583773047781266328637678870216863282794827208097442082175505534664228409805427481179804666642218772045936425596516444159459812709629248609035260686312560295491998299457881051627886359090209121052638704495615832242488567134110849065247833123197311630939537782621913777163767413154639725177768212890543908669205644894467000375403280930705996102678094425217413905338160770087014273581815466809608359664873749062336433686966730908672606742996018501834615997369065852848504765713998898573863892503162297047314992754740123782383075616134059255645755663751912627939084601940388067277994873439309082258811674227833280945910306580917375951234628014370637532633109220939784802408225000355836687588940078360386638180255479852563133738358378489312537433814871967577851380034277052375410689572871673263505062546821174752577222386772573612499385375831862483200077442336342478407556895600203524363141919784902161638155084251111486221779261973518265121337947352310715786520668395970039158397251177012541118409524445003205667634608296177680383466144444864579597485562633536525601715818164495130184901448694194106272792512273523611574201571920168306181442231288896647668467487307788763406736546304285524364677976826049654033959845274050014727789490115393329137221956633135509226901815489601243508895353762663929412332155931013650240144659296717935287272459215037455770953084068041117117760660436641647737930109942385859519905735833295978644536089249991207646159911714774173486494036707950026946864892658620972299943655476359940025936964736034034469136069747298874201260260583888369283164432549809693098588573666171740651415466339285502590836390385112674616438188565752388256330553599388658462394159771032048255455767807033628131630495343848218140495682535215329994922437086647469613398097153936915452575292935324666137073839440736791040282824979739630336824071366103648586130097702538820917110428517197260760428211490875845726363008092859001332243873292783816243719571434002292336945254742937706222935265575957948379318486663634950013714766820740631176683682355341414750394409782140369461579863445003366532031964300026006186816200761024783956496913190148592422203748755406584026163745026797830053063843426534911750555689060774585719826273741907887455809063964497881513476530741607337319088633921491058080424723313623631706008803891130559562786380552895808556677779681135447208154668401449513701549816819974469783179374019488762719394659583305275614128488295093625581845236698351880987953374516705689392162865782656749686916140277554445318378677908464464506299391086339942333158973230756345045038760086585007192894584354626145289336346663703395236029164037983055434290826450155894448801284928503694827012054281876950118914140435606979734599151243813140008038574370535885219573066951729351758694664687053787224709014925441925181168719074894353469265812409588114096403779500411153486890092280262488247129756211334707709089088757667106005534359854285946182984260732472729387279289268818691005244432387248692192000416452934367888483789544105443354208444306611834262791797529541922861681542169465477544093776956063177648777510098859012589137524562354041712126890167704776063896431426753852415739483871766654129230151438503398301939387830681298930637059322717958309773828585297021096638161574196345492196680454433576960052967881507724279577107150334142747725592955487382967719713778619983643489419248002889522379950921082363482293024151498934173936338659079410310118342418256479801713649643222544505981328137652433221320799268577558639406198717863815655713113118791638605939031048647427366719551242855241044417666375739517347918911320229997410979185521445795287847404776069689086735221010338409122881706607823000501760364685638743020225683797657470623377130420336147179055919749309115740866879633311203037009282314201788620781375345466744870786585956807656967579320211347638031131917660828468208946691057237442464716365076409699363454139694894700335289095985258224376007201032687342866503101800134062826893932811788071775011151526711973656085623419834687535235408815215424979294882699558434029541041664756826973186928842562653947964901189769287402799499408521179704864914413627816518510826610972027205349890451125362621442078966372544646865249939920913568039865731446858308724090040754460522395645825327285559960313843174164662153689551990811015593609879344488231114573471855687674311417100048465999954755347623012469572124519987197341002626460403218651693136273235847729777829154774943987251276662127232498017822013677816945073098576249117808791897658342837686510612875418600267948270687646634293024793456500540719876200045237278902619161770619645450145368379748973031011190178172451331147274123071078583293708439879453377716931400139807736883136127620110723340083651114361602383316952495185198684657619915777097854393482941212391015637786877001548445035176073056817603189069593301047530952711083327

    Process finished with exit code 0

  • Custom User Avatar

    Why go over the whole 2d array over and over again to check for 0s, check for redundants, when you can just check everything by going over the array just for one time.

  • Custom User Avatar

    "The Lift never changes direction until there are no more people wanting to get on/off in the direction it is already travelling"
    "When called, the Lift will stop at a floor even if it is full, although unless somebody gets off nobody else can get on!"
    I think these two rules explain why this will happen

  • Custom User Avatar

    This comment is hidden because it contains spoiler information about the solution

  • Custom User Avatar

    This comment is hidden because it contains spoiler information about the solution